diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..79d7674 --- /dev/null +++ b/.gitignore @@ -0,0 +1,41 @@ +# use glob syntax. +syntax: glob +*.ser +*.class +*~ +*.bak +*.off +*.old +.DS_Store + +# logs +derby.log + +# eclipse conf file +.settings +.classpath +.project +.manager + +# building +target +build +null +tmp* +dist +test-output + +# other scm +.svn +.CVS +.hg* + +# switch to regexp syntax. +# syntax: regexp +# ^\.pc/ + + +# IntelliJ +*.iml +*.ipr +*.iws diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..60ceacb --- /dev/null +++ b/pom.xml @@ -0,0 +1,163 @@ + + + 4.0.0 + com.liftcode + frothy + 1.0-SNAPSHOT + war + frothy + 2007 + + 2.7.5 + + + + + scala-tools.org + Scala-Tools Maven2 Repository + http://scala-tools.org/repo-releases + + + scala-tools.org.snapshots + Scala-Tools Maven2 Repository for Snapshots + http://scala-tools.org/repo-snapshots + + + + + + + scala-tools.org + Scala-Tools Maven2 Repository + http://scala-tools.org/repo-releases + + + + + + org.scala-lang + scala-library + ${scala.version} + + + net.liftweb + lift-core + 1.1-SNAPSHOT + + + org.apache.derby + derby + 10.4.2.0 + + + javax.servlet + servlet-api + 2.5 + provided + + + junit + junit + 4.5 + test + + + org.mortbay.jetty + jetty + [6.1.6, 6.1.19) + test + + + + org.scala-lang + scala-compiler + ${scala.version} + test + + + + + src/main/scala + src/test/scala + + + org.scala-tools + maven-scala-plugin + + + + compile + testCompile + + + + + ${scala.version} + + + + org.mortbay.jetty + maven-jetty-plugin + + / + 5 + + + + net.sf.alchim + yuicompressor-maven-plugin + + + + compress + + + + + true + + + + org.apache.maven.plugins + maven-idea-plugin + + true + + + + org.apache.maven.plugins + maven-eclipse-plugin + + true + + org.scala-lang:scala-library + + + ch.epfl.lamp.sdt.launching.SCALA_CONTAINER + + + ch.epfl.lamp.sdt.core.scalanature + org.eclipse.jdt.core.javanature + + + ch.epfl.lamp.sdt.core.scalabuilder + + + + + + + + + org.scala-tools + maven-scala-plugin + + ${scala.version} + + + + + diff --git a/src/main/scala/bootstrap/liftweb/Boot.scala b/src/main/scala/bootstrap/liftweb/Boot.scala new file mode 100644 index 0000000..cdc9960 --- /dev/null +++ b/src/main/scala/bootstrap/liftweb/Boot.scala @@ -0,0 +1,87 @@ +package bootstrap.liftweb + +import _root_.net.liftweb.util._ +import _root_.net.liftweb.http._ +import _root_.net.liftweb.http.provider._ +import _root_.net.liftweb.sitemap._ +import _root_.net.liftweb.sitemap.Loc._ +import Helpers._ +import _root_.net.liftweb.mapper.{DB, ConnectionManager, Schemifier, DefaultConnectionIdentifier, ConnectionIdentifier} +import _root_.java.sql.{Connection, DriverManager} + + +/** + * A class that's instantiated early and run. It allows the application + * to modify lift's environment + */ +class Boot { + def boot { + // where to search snippet + LiftRules.addToPackages("com.liftcode") + + // Build SiteMap + val entries = Menu(Loc("Home", List("index"), "Home")) :: + Menu(Loc("Cappucinno", List("capp"), "Cappucinno")) :: + Nil + + LiftRules.setSiteMap(SiteMap(entries:_*)) + + /* + * Show the spinny image when an Ajax call starts + */ + LiftRules.ajaxStart = + Full(() => LiftRules.jsArtifacts.show("ajax-loader").cmd) + + /* + * Make the spinny image go away when it ends + */ + LiftRules.ajaxEnd = + Full(() => LiftRules.jsArtifacts.hide("ajax-loader").cmd) + + LiftRules.early.append(makeUtf8) + + LiftRules.useXhtmlMimeType = false + + // We serve Cappuccino files with wicked friendly + // mime types + LiftRules.liftRequest.append { + case Req( _, "j", GetRequest) => true + case Req( _, "sj", GetRequest) => true + case Req( _, "plist", GetRequest) => true + } + + LiftRules.statelessDispatchTable.prepend { + case r @ Req( _, "j", GetRequest) => ObjJServer.serve(r) + case r @ Req( _, "sj", GetRequest) => ObjJServer.serve(r) + case r @ Req( _, "plist", GetRequest) => ObjJServer.serve(r) + } + } + + /** + * Force the request to be UTF-8 + */ + private def makeUtf8(req: HTTPRequest) { + req.setCharacterEncoding("UTF-8") + } + +} + +object ObjJServer { + def serve(req: Req)(): Box[LiftResponse] = + for { + url <- LiftRules.getResource(req.path.wholePath.mkString("/", "/", "")) + urlConn <- tryo(url.openConnection) + lastModified = ResourceServer.calcLastModified(urlConn) + } yield { + req.testFor304(lastModified, "Expires" -> toInternetDate(millis + 30.days)) openOr { + val stream = url.openStream + StreamingResponse(stream, () => stream.close, urlConn.getContentLength, + (if (lastModified == 0L) Nil else + List(("Last-Modified", toInternetDate(lastModified)))) ::: + List(("Expires", toInternetDate(millis + 30.days)), + ("Content-Type","application/text")), Nil, + 200) + } + } + +} diff --git a/src/main/scala/com/liftcode/comet/.keep b/src/main/scala/com/liftcode/comet/.keep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/scala/com/liftcode/comet/Clock.scala b/src/main/scala/com/liftcode/comet/Clock.scala new file mode 100644 index 0000000..91176e5 --- /dev/null +++ b/src/main/scala/com/liftcode/comet/Clock.scala @@ -0,0 +1,37 @@ +/* + * Clock.scala + * + * To change this template, choose Tools | Template Manager + * and open the template in the editor. + */ + +package com.liftcode.comet + +import net.liftweb._ +import http._ +import js._ +import JsCmds._ +import JE._ +import util._ +import Helpers._ + +class Clock extends CometActor { + + override def localSetup() { + super.localSetup() + ActorPing.schedule(this, 'Ping , 3 seconds) + } + + override def highPriority = { + case 'Ping => + partialUpdate(currentTime) + ActorPing.schedule(this, 'Ping , 3 seconds) + } + + def currentTime: JsCmd = JsRaw("clockCallback("+(""+now).encJs+");") + + def render = { + val str: String = """var f = function() {try {"""+(currentTime.toJsCmd)+"""} catch (e) {setTimeout(f, 50);}}; f();""" + OnLoad(JsRaw(str)) + } +} diff --git a/src/main/scala/com/liftcode/lib/.keep b/src/main/scala/com/liftcode/lib/.keep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/scala/com/liftcode/model/.keep b/src/main/scala/com/liftcode/model/.keep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/scala/com/liftcode/model/User.scala b/src/main/scala/com/liftcode/model/User.scala new file mode 100644 index 0000000..b6437a1 --- /dev/null +++ b/src/main/scala/com/liftcode/model/User.scala @@ -0,0 +1,35 @@ +/* +package com.liftcode.model + +import _root_.net.liftweb.mapper._ +import _root_.net.liftweb.util._ + +/** + * The singleton that has methods for accessing the database + */ +object User extends User with MetaMegaProtoUser[User] { + override def dbTableName = "users" // define the DB table name + override def screenWrap = Full( + ) + // define the order fields will appear in forms and output + override def fieldOrder = List(id, firstName, lastName, email, + locale, timezone, password, textArea) + + // comment this line out to require email validations + override def skipEmailValidation = true +} + +/** + * An O-R mapped "User" class that includes first name, last name, password and we add a "Personal Essay" to it + */ +class User extends MegaProtoUser[User] { + def getSingleton = User // what's the "meta" server + + // define an additional field for a personal essay + object textArea extends MappedTextarea(this, 2048) { + override def textareaRows = 10 + override def textareaCols = 50 + override def displayName = "Personal Essay" + } +} +*/ \ No newline at end of file diff --git a/src/main/scala/com/liftcode/snippet/.keep b/src/main/scala/com/liftcode/snippet/.keep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/scala/com/liftcode/snippet/CalAjaxCall.scala b/src/main/scala/com/liftcode/snippet/CalAjaxCall.scala new file mode 100644 index 0000000..1aec84e --- /dev/null +++ b/src/main/scala/com/liftcode/snippet/CalAjaxCall.scala @@ -0,0 +1,37 @@ +/* + * YakScript.scala + * + * To change this template, choose Tools | Template Manager + * and open the template in the editor. + */ + +package com.liftcode.snippet + +import net.liftweb._ +import http._ +import js._ +import JsCmds._ +import JE._ +import util._ +import Helpers._ + +import scala.xml._ + +object JsonVar extends SessionVar(S.functionLifespan(true){S.buildJsonFunc{ + case JsonCmd("hello", _, s: String, _) => + JsRaw(""" + ajaxCallback("""+("at: "+now+" we got "+s).encJs+"""); + """) + + case x => + println("Got x via json: "+x) + Noop + } + }) + +class CapAjaxCall { + def render(in: NodeSeq): NodeSeq = Script( + Function("performAjaxCall", List("param"), JsonVar.is._1("hello", JsVar("param"))) & + JsonVar.is._2 + ) +} diff --git a/src/main/scala/com/liftcode/view/.keep b/src/main/scala/com/liftcode/view/.keep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/webapp/AppController.j b/src/main/webapp/AppController.j new file mode 100644 index 0000000..2a6efb6 --- /dev/null +++ b/src/main/webapp/AppController.j @@ -0,0 +1,126 @@ +/* + * AppController.j + * NewApplication + * + * Created by You on July 5, 2009. + * Copyright 2009, Your Company All rights reserved. + */ + +@import + + +@implementation AppController : CPObject +{ + CPTextField label; + CPTextField input; + CPTextField clock; + + AppController controllerInstance; +} + +- (void)applicationDidFinishLaunching:(CPNotification)aNotification +{ + AppController.controllerInstance = self; + var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() styleMask:CPBorderlessBridgeWindowMask], + contentView = [theWindow contentView]; + + label = [[CPTextField alloc] initWithFrame:CGRectMakeZero()]; + + [label setStringValue:@"Hello World!"]; + [label setFont:[CPFont boldSystemFontOfSize:24.0]]; + [label setAlignment:CPCenterTextAlignment]; + [label sizeToFit]; + + [label setAutoresizingMask:CPViewMinXMargin | CPViewMaxXMargin | CPViewMinYMargin | CPViewMaxYMargin]; + [label setCenter:[contentView center]]; + + [contentView addSubview:label]; + + input = [[CPTextField alloc] initWithFrame: CGRectMake( + CGRectGetWidth([contentView bounds])/2.0 - 350, + CGRectGetMaxY([label frame]) + 10, + 80, 24 + )]; + + [input setStringValue:@"Send me to the server"]; + [input setFont:[CPFont boldSystemFontOfSize:18.0]]; + + [input sizeToFit]; + + [input setAutoresizingMask:CPViewMinXMargin | CPViewMaxXMargin | CPViewMinYMargin | CPViewMaxYMargin]; + [input setEditable: YES]; + [input setBezeled: YES]; + + [contentView addSubview:input]; + + var button = [[CPButton alloc] initWithFrame: CGRectMake( + CGRectGetWidth([contentView bounds])/2.0 - 40, + CGRectGetMaxY([label frame]) + 10, + 80, 24 + )]; + + [button setAutoresizingMask:CPViewMinXMargin | + CPViewMaxXMargin | + CPViewMinYMargin | + CPViewMaxYMargin]; + + [button setTitle:"Click Me"]; + + [button setTarget:self]; + [button setAction:@selector(swap:)]; + + [contentView addSubview:button]; + + clock = [[CPTextField alloc] initWithFrame:CGRectMake( + CGRectGetWidth([contentView bounds])/2.0 - 100, + CGRectGetMaxY([label frame]) + 40, + 80, 24 + )]; + + [clock setStringValue:@""]; + [clock setFont:[CPFont boldSystemFontOfSize:24.0]]; + + [clock sizeToFit]; + + [clock setAutoresizingMask:CPViewMinXMargin | CPViewMaxXMargin | CPViewMinYMargin | CPViewMaxYMargin]; + [clock setAlignment:CPCenterTextAlignment]; + [contentView addSubview:clock]; + + + [theWindow orderFront:self]; + + // Uncomment the following line to turn on the standard menu bar. + // [CPMenu setMenuBarVisible:YES]; +} + +- (void)swap:(id)sender +{ + performAjaxCall([input stringValue]); + [input setStringValue: ""]; + + if ([label stringValue] == "Hello World!") + [label setStringValue:"Goodbye!"]; + else + [label setStringValue:"Hello World!"]; +} + +- (id)buttonCallback:(id)what { + [label setStringValue:what]; + [label sizeToFit]; + return self; +} + +- (id)clockCallback:(id)what { + [clock setStringValue:what]; + [clock sizeToFit]; + return self; +} + +@end + +function ajaxCallback(what) { + [AppController.controllerInstance buttonCallback: what]; +} + +function clockCallback(time) { + [AppController.controllerInstance clockCallback: time]; +} diff --git a/src/main/webapp/Frameworks/AppKit/Info.plist b/src/main/webapp/Frameworks/AppKit/Info.plist new file mode 100644 index 0000000..2b5c10b --- /dev/null +++ b/src/main/webapp/Frameworks/AppKit/Info.plist @@ -0,0 +1,118 @@ + + + + + CPBundleExecutable + AppKit.sj + CPBundleIdentifier + com.280n.AppKit + CPBundleInfoDictionaryVersion + 6.0 + CPBundleName + AppKit + CPBundlePackageType + FMWK + CPBundlePlatforms + + browser + rhino + + CPBundleReplacedFiles + + _CPBorderlessBridgeWindowView.j + _CPBorderlessWindowView.j + _CPCibClassSwapper.j + _CPCibConnector.j + _CPCibCustomObject.j + _CPCibCustomResource.j + _CPCibCustomView.j + _CPCibKeyedUnarchiver.j + _CPCibObjectData.j + _CPCibWindowTemplate.j + _CPHUDWindowView.j + _CPImageAndTextView.j + _CPStandardWindowView.j + _CPWindowView.j + AppKit.j + CAAnimation.j + CABackingStore.j + CAFlashLayer.j + CALayer.j + CAMediaTimingFunction.j + CGAffineTransform.j + CGColor.j + CGColorSpace.j + CGContext.j + CGGeometry.j + CGGradient.j + CGPath.j + CPAlert.j + CPAnimation.j + CPApplication.j + CPBezierPath.j + CPButton.j + CPButtonBar.j + CPCheckBox.j + CPCib.j + CPCibLoading.j + CPClipView.j + CPCollectionView.j + CPColor.j + CPColorPanel.j + CPColorPicker.j + CPColorWell.j + CPCompatibility.j + CPControl.j + CPCookie.j + CPDocument.j + CPDocumentController.j + CPDOMDisplayServer.j + CPDOMWindowBridge.j + CPDOMWindowLayer.j + CPDragServer.j + CPEvent.j + CPFlashMovie.j + CPFlashView.j + CPFont.j + CPFontManager.j + CPGeometry.j + CPGraphicsContext.j + CPImage.j + CPImageView.j + CPMenu.j + CPMenuItem.j + CPOutlineView.j + CPPanel.j + CPPasteboard.j + CPPopUpButton.j + CPProgressIndicator.j + CPRadio.j + CPResponder.j + CPScroller.j + CPScrollView.j + CPSecureTextField.j + CPSegmentedControl.j + CPShadow.j + CPShadowView.j + CPSlider.j + CPSliderColorPicker.j + CPSplitView.j + CPStringDrawing.j + CPTableColumn.j + CPTableView.j + CPTabView.j + CPTabViewItem.j + CPTextField.j + CPTheme.j + CPThemeBlend.j + CPToolbar.j + CPToolbarItem.j + CPView.j + CPWebView.j + CPWindow.j + CPWindowController.j + + CPBundleVersion + 0.7.1 + + diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Aristo.sj b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Aristo.sj new file mode 100644 index 0000000..265f30b --- /dev/null +++ b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Aristo.sj @@ -0,0 +1 @@ +@STATIC;1.0;p;17;Aristo.keyedthemet;73929;280NPLIST;1.0;D;K;4;$topD;K;4;rootD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;7;CPThemeK;8;$classesA;S;7;CPThemeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;14;CPThemeNameKeyD;K;6;CP$UIDd;1;3E;K;20;CPThemeAttributesKeyD;K;6;CP$UIDd;1;5E;E;S;6;AristoD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;buttonD;K;6;CP$UIDd;1;6E;K;12;popup-buttonD;K;6;CP$UIDd;1;7E;K;8;scrollerD;K;6;CP$UIDd;1;8E;K;9;textfieldD;K;6;CP$UIDd;1;9E;K;5;radioD;K;6;CP$UIDd;2;10E;K;9;check-boxD;K;6;CP$UIDd;2;11E;K;17;segmented-controlD;K;6;CP$UIDd;2;12E;K;6;sliderD;K;6;CP$UIDd;2;13E;K;10;button-barD;K;6;CP$UIDd;2;14E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;max-sizeD;K;6;CP$UIDd;2;16E;K;8;min-sizeD;K;6;CP$UIDd;2;17E;K;13;image-scalingD;K;6;CP$UIDd;2;18E;K;14;image-positionD;K;6;CP$UIDd;2;19E;K;18;text-shadow-offsetD;K;6;CP$UIDd;2;20E;K;17;text-shadow-colorD;K;6;CP$UIDd;2;21E;K;4;fontD;K;6;CP$UIDd;2;22E;K;10;text-colorD;K;6;CP$UIDd;2;23E;K;15;line-break-modeD;K;6;CP$UIDd;2;24E;K;18;vertical-alignmentD;K;6;CP$UIDd;2;25E;K;9;alignmentD;K;6;CP$UIDd;2;26E;K;11;bezel-colorD;K;6;CP$UIDd;2;27E;K;13;content-insetD;K;6;CP$UIDd;2;28E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;max-sizeD;K;6;CP$UIDd;2;29E;K;8;min-sizeD;K;6;CP$UIDd;2;30E;K;13;image-scalingD;K;6;CP$UIDd;2;31E;K;14;image-positionD;K;6;CP$UIDd;2;32E;K;18;text-shadow-offsetD;K;6;CP$UIDd;2;33E;K;17;text-shadow-colorD;K;6;CP$UIDd;2;34E;K;4;fontD;K;6;CP$UIDd;2;35E;K;10;text-colorD;K;6;CP$UIDd;2;36E;K;15;line-break-modeD;K;6;CP$UIDd;2;37E;K;18;vertical-alignmentD;K;6;CP$UIDd;2;38E;K;9;alignmentD;K;6;CP$UIDd;2;39E;K;11;bezel-colorD;K;6;CP$UIDd;2;40E;K;13;content-insetD;K;6;CP$UIDd;2;41E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;19;minimum-knob-lengthD;K;6;CP$UIDd;2;42E;K;10;knob-insetD;K;6;CP$UIDd;2;43E;K;11;track-insetD;K;6;CP$UIDd;2;44E;K;19;increment-line-sizeD;K;6;CP$UIDd;2;45E;K;19;decrement-line-sizeD;K;6;CP$UIDd;2;46E;K;10;knob-colorD;K;6;CP$UIDd;2;47E;K;20;increment-line-colorD;K;6;CP$UIDd;2;48E;K;20;decrement-line-colorD;K;6;CP$UIDd;2;49E;K;15;knob-slot-colorD;K;6;CP$UIDd;2;50E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;fontD;K;6;CP$UIDd;2;51E;K;10;text-colorD;K;6;CP$UIDd;2;52E;K;9;alignmentD;K;6;CP$UIDd;2;53E;K;11;bezel-colorD;K;6;CP$UIDd;2;54E;K;13;content-insetD;K;6;CP$UIDd;2;55E;K;11;bezel-insetD;K;6;CP$UIDd;2;56E;K;8;max-sizeD;K;6;CP$UIDd;2;57E;K;8;min-sizeD;K;6;CP$UIDd;2;58E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;min-sizeD;K;6;CP$UIDd;2;59E;K;13;image-scalingD;K;6;CP$UIDd;2;60E;K;14;image-positionD;K;6;CP$UIDd;2;61E;K;4;fontD;K;6;CP$UIDd;2;62E;K;18;vertical-alignmentD;K;6;CP$UIDd;2;63E;K;9;alignmentD;K;6;CP$UIDd;2;64E;K;11;bezel-colorD;K;6;CP$UIDd;2;65E;K;13;content-insetD;K;6;CP$UIDd;2;66E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;min-sizeD;K;6;CP$UIDd;2;67E;K;13;image-scalingD;K;6;CP$UIDd;2;68E;K;14;image-positionD;K;6;CP$UIDd;2;69E;K;4;fontD;K;6;CP$UIDd;2;70E;K;18;vertical-alignmentD;K;6;CP$UIDd;2;71E;K;9;alignmentD;K;6;CP$UIDd;2;72E;K;11;bezel-colorD;K;6;CP$UIDd;2;73E;K;13;content-insetD;K;6;CP$UIDd;2;74E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;18;text-shadow-offsetD;K;6;CP$UIDd;2;75E;K;17;text-shadow-colorD;K;6;CP$UIDd;2;76E;K;4;fontD;K;6;CP$UIDd;2;77E;K;10;text-colorD;K;6;CP$UIDd;2;78E;K;15;line-break-modeD;K;6;CP$UIDd;2;79E;K;14;default-heightD;K;6;CP$UIDd;2;80E;K;17;divider-thicknessD;K;6;CP$UIDd;2;81E;K;19;divider-bezel-colorD;K;6;CP$UIDd;2;82E;K;26;center-segment-bezel-colorD;K;6;CP$UIDd;2;83E;K;25;right-segment-bezel-colorD;K;6;CP$UIDd;2;84E;K;24;left-segment-bezel-colorD;K;6;CP$UIDd;2;85E;K;13;content-insetD;K;6;CP$UIDd;2;86E;K;11;bezel-insetD;K;6;CP$UIDd;2;87E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;11;track-colorD;K;6;CP$UIDd;2;88E;K;11;track-widthD;K;6;CP$UIDd;2;89E;K;9;knob-sizeD;K;6;CP$UIDd;2;90E;K;10;knob-colorD;K;6;CP$UIDd;2;91E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;11;bezel-colorD;K;6;CP$UIDd;2;92E;E;E;D;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;93E;K;5;valueD;K;6;CP$UIDd;2;95E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;96E;K;5;valueD;K;6;CP$UIDd;2;97E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;98E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;100E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;101E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;103E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;104E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;107E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;110E;K;6;valuesD;K;6;CP$UIDd;3;111E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;112E;K;5;valueD;K;6;CP$UIDd;3;113E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;114E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;115E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;116E;K;6;valuesD;K;6;CP$UIDd;3;117E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;118E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;119E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;93E;K;5;valueD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;96E;K;5;valueD;K;6;CP$UIDd;3;121E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;98E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;100E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;101E;K;5;valueD;K;6;CP$UIDd;3;122E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;104E;K;5;valueD;K;6;CP$UIDd;3;123E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;107E;K;5;valueD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;110E;K;5;valueD;K;6;CP$UIDd;3;124E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;112E;K;5;valueD;K;6;CP$UIDd;3;113E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;114E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;115E;K;5;valueD;K;6;CP$UIDd;3;125E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;116E;K;6;valuesD;K;6;CP$UIDd;3;126E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;118E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;127E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;128E;K;6;valuesD;K;6;CP$UIDd;3;129E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;130E;K;6;valuesD;K;6;CP$UIDd;3;131E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;132E;K;6;valuesD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;134E;K;6;valuesD;K;6;CP$UIDd;3;135E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;136E;K;6;valuesD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;138E;K;6;valuesD;K;6;CP$UIDd;3;139E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;140E;K;6;valuesD;K;6;CP$UIDd;3;141E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;142E;K;6;valuesD;K;6;CP$UIDd;3;143E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;144E;K;6;valuesD;K;6;CP$UIDd;3;145E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;107E;K;6;valuesD;K;6;CP$UIDd;3;146E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;110E;K;5;stateD;K;6;CP$UIDd;3;147E;K;5;valueD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;115E;K;5;valueD;K;6;CP$UIDd;3;125E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;116E;K;6;valuesD;K;6;CP$UIDd;3;149E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;118E;K;6;valuesD;K;6;CP$UIDd;3;150E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;151E;K;6;valuesD;K;6;CP$UIDd;3;152E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;93E;K;5;stateD;K;6;CP$UIDd;3;153E;K;5;valueD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;96E;K;5;stateD;K;6;CP$UIDd;3;153E;K;5;valueD;K;6;CP$UIDd;3;155E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;96E;K;5;valueD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;98E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;100E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;107E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;114E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;115E;K;6;valuesD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;116E;K;6;valuesD;K;6;CP$UIDd;3;158E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;118E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;159E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;96E;K;5;valueD;K;6;CP$UIDd;3;160E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;98E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;100E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;107E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;114E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;115E;K;6;valuesD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;116E;K;6;valuesD;K;6;CP$UIDd;3;162E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;118E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;101E;K;5;valueD;K;6;CP$UIDd;3;164E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;104E;K;5;valueD;K;6;CP$UIDd;3;165E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;107E;K;5;valueD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;110E;K;5;valueD;K;6;CP$UIDd;3;166E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;112E;K;5;valueD;K;6;CP$UIDd;3;113E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;167E;K;5;valueD;K;6;CP$UIDd;3;168E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;169E;K;5;valueD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;171E;K;6;valuesD;K;6;CP$UIDd;3;172E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;173E;K;6;valuesD;K;6;CP$UIDd;3;174E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;175E;K;6;valuesD;K;6;CP$UIDd;3;176E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;177E;K;6;valuesD;K;6;CP$UIDd;3;178E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;118E;K;5;valueD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;151E;K;5;valueD;K;6;CP$UIDd;3;180E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;181E;K;6;valuesD;K;6;CP$UIDd;3;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;183E;K;5;valueD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;185E;K;6;valuesD;K;6;CP$UIDd;3;186E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;138E;K;6;valuesD;K;6;CP$UIDd;3;187E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;116E;K;5;valueD;K;6;CP$UIDd;3;188E;E;S;8;max-sizeD;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;189E;E;S;8;min-sizeD;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;190E;E;S;13;image-scalingd;1;2S;14;image-positionS;18;text-shadow-offsetS;8;borderedD;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;191E;E;S;17;text-shadow-colorD;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;193E;E;S;4;fontD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;108E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;194E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;195E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;196E;E;S;10;text-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;7;defaultD;K;6;CP$UIDd;3;197E;K;6;normalD;K;6;CP$UIDd;3;198E;E;E;S;15;line-break-moded;1;4S;18;vertical-alignmentS;9;alignmentS;11;bezel-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;28;highlighted+bordered+defaultD;K;6;CP$UIDd;3;199E;K;16;bordered+defaultD;K;6;CP$UIDd;3;200E;K;20;highlighted+borderedD;K;6;CP$UIDd;3;201E;K;8;borderedD;K;6;CP$UIDd;3;202E;E;E;S;13;content-insetD;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;203E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;189E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;204E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;191E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;205E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;206E;E;d;1;0D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;19;bordered+pulls-downD;K;6;CP$UIDd;3;207E;K;8;borderedD;K;6;CP$UIDd;3;208E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;209E;E;S;19;minimum-knob-lengthD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;210E;K;8;verticalD;K;6;CP$UIDd;3;210E;E;E;S;10;knob-insetD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;211E;K;8;verticalD;K;6;CP$UIDd;3;212E;E;E;S;11;track-insetD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;213E;K;8;verticalD;K;6;CP$UIDd;3;214E;E;E;S;19;increment-line-sizeD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;215E;K;8;verticalD;K;6;CP$UIDd;3;216E;E;E;S;19;decrement-line-sizeD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;217E;K;8;verticalD;K;6;CP$UIDd;3;218E;E;E;S;10;knob-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;219E;K;8;verticalD;K;6;CP$UIDd;3;220E;E;E;S;20;increment-line-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;221E;K;11;highlightedD;K;6;CP$UIDd;3;222E;K;8;disabledD;K;6;CP$UIDd;3;223E;K;17;disabled+verticalD;K;6;CP$UIDd;3;224E;K;20;highlighted+verticalD;K;6;CP$UIDd;3;225E;K;8;verticalD;K;6;CP$UIDd;3;226E;E;E;S;20;decrement-line-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;227E;K;11;highlightedD;K;6;CP$UIDd;3;228E;K;8;disabledD;K;6;CP$UIDd;3;229E;K;17;disabled+verticalD;K;6;CP$UIDd;3;230E;K;20;highlighted+verticalD;K;6;CP$UIDd;3;231E;K;8;verticalD;K;6;CP$UIDd;3;232E;E;E;S;15;knob-slot-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;233E;K;8;disabledD;K;6;CP$UIDd;3;234E;K;17;disabled+verticalD;K;6;CP$UIDd;3;235E;K;8;verticalD;K;6;CP$UIDd;3;236E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;237E;K;7;bezeledD;K;6;CP$UIDd;3;237E;E;E;S;11;placeholderD;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;238E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;15;bezeled+roundedD;K;6;CP$UIDd;3;239E;K;23;bezeled+editing+roundedD;K;6;CP$UIDd;3;240E;K;15;bezeled+editingD;K;6;CP$UIDd;3;241E;K;7;bezeledD;K;6;CP$UIDd;3;242E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;15;bezeled+roundedD;K;6;CP$UIDd;3;243E;K;7;bezeledD;K;6;CP$UIDd;3;244E;E;E;S;11;bezel-insetD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;15;bezeled+roundedD;K;6;CP$UIDd;3;245E;K;23;bezeled+editing+roundedD;K;6;CP$UIDd;3;246E;K;15;bezeled+editingD;K;6;CP$UIDd;3;247E;K;7;bezeledD;K;6;CP$UIDd;3;248E;E;E;S;15;bezeled+roundedD;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;249E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;250E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;251E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;borderedD;K;6;CP$UIDd;3;125E;K;6;normalD;K;6;CP$UIDd;3;125E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;17;selected+borderedD;K;6;CP$UIDd;3;252E;K;8;borderedD;K;6;CP$UIDd;3;253E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;254E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;251E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;borderedD;K;6;CP$UIDd;3;125E;K;6;normalD;K;6;CP$UIDd;3;125E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;17;selected+borderedD;K;6;CP$UIDd;3;255E;K;8;borderedD;K;6;CP$UIDd;3;256E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;254E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;191E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;257E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;258E;E;S;14;default-heightd;2;24S;17;divider-thicknessd;1;1S;19;divider-bezel-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;11;highlightedD;K;6;CP$UIDd;3;259E;K;8;selectedD;K;6;CP$UIDd;3;260E;K;8;disabledD;K;6;CP$UIDd;3;261E;K;6;normalD;K;6;CP$UIDd;3;259E;E;E;S;26;center-segment-bezel-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;20;highlighted+selectedD;K;6;CP$UIDd;3;262E;K;11;highlightedD;K;6;CP$UIDd;3;263E;K;8;selectedD;K;6;CP$UIDd;3;264E;K;8;disabledD;K;6;CP$UIDd;3;265E;K;6;normalD;K;6;CP$UIDd;3;266E;E;E;S;25;right-segment-bezel-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;20;highlighted+selectedD;K;6;CP$UIDd;3;267E;K;11;highlightedD;K;6;CP$UIDd;3;268E;K;8;selectedD;K;6;CP$UIDd;3;269E;K;8;disabledD;K;6;CP$UIDd;3;270E;K;6;normalD;K;6;CP$UIDd;3;271E;E;E;S;24;left-segment-bezel-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;20;highlighted+selectedD;K;6;CP$UIDd;3;272E;K;11;highlightedD;K;6;CP$UIDd;3;273E;K;8;selectedD;K;6;CP$UIDd;3;274E;K;8;disabledD;K;6;CP$UIDd;3;275E;K;6;normalD;K;6;CP$UIDd;3;276E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;277E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;278E;E;S;11;track-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;circularD;K;6;CP$UIDd;3;279E;K;8;verticalD;K;6;CP$UIDd;3;280E;K;6;normalD;K;6;CP$UIDd;3;281E;E;E;S;11;track-widthd;1;5S;9;knob-sizeD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;circularD;K;6;CP$UIDd;3;282E;K;6;normalD;K;6;CP$UIDd;3;283E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;circularD;K;6;CP$UIDd;3;284E;K;20;highlighted+circularD;K;6;CP$UIDd;3;284E;K;11;highlightedD;K;6;CP$UIDd;3;285E;K;6;normalD;K;6;CP$UIDd;3;286E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;288E;E;S;24;{"width":-1,"height":24}S;23;{"width":0,"height":24}S;22;{"width":0,"height":1}D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;170E;E;E;S;5;Ariald;2;12T;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;290E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;291E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;292E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;293E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;294E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;295E;E;S;39;{"top":0,"right":5,"bottom":0,"left":5}S;24;{"width":32,"height":24}D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;298E;E;S;40;{"top":0,"right":32,"bottom":0,"left":5}d;2;19D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;299E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;300E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;301E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;302E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;306E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;307E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;309E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;310E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;311E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;312E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;313E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;314E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;315E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;316E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;317E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;318E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;319E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;320E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;322E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;323E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;324E;E;D;K;6;$classD;K;6;CP$UIDd;3;108E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;194E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;195E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;326E;D;K;6;CP$UIDd;3;327E;D;K;6;CP$UIDd;3;328E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;329E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;330E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;332E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;333E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;334E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;335E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;336E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;278E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;278E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;337E;E;S;24;{"width":-1,"height":30}S;23;{"width":0,"height":30}S;23;{"width":0,"height":17}D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;338E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;339E;E;S;40;{"top":0,"right":0,"bottom":0,"left":20}D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;342E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;343E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;344E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;345E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;346E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;347E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;348E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;349E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;350E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;351E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;352E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;353E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;354E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;355E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;356E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;357E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;358E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;359E;E;S;39;{"top":0,"right":4,"bottom":0,"left":4}S;39;{"top":0,"right":0,"bottom":0,"left":0}D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;360E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;361E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;362E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;363E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;364E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;365E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;367E;E;D;K;10;$classnameS;16;CPThreePartImageK;8;$classesA;S;16;CPThreePartImageS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;368E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;f;18;0.9411764705882353D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;369E;D;K;6;CP$UIDd;3;370E;D;K;6;CP$UIDd;3;371E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;372E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;373E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;374E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;375E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;f;19;0.30980392156862746D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;376E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;377E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;S;39;{"top":2,"right":0,"bottom":0,"left":0}S;39;{"top":0,"right":1,"bottom":0,"left":1}S;43;{"top":0,"right":-10,"bottom":0,"left":-11}S;41;{"top":-9,"right":0,"bottom":-9,"left":0}S;24;{"width":31,"height":17}S;24;{"width":17,"height":30}S;24;{"width":32,"height":17}D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;378E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;379E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;196E;E;D;K;10;$classnameS;20;_CPCibCustomResourceK;8;$classesA;S;20;_CPCibCustomResourceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;381E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;382E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;383E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;384E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;385E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;387E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;388E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;389E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;391E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;392E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;393E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;394E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;395E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;396E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;397E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;398E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;399E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;400E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;401E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;402E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;403E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;404E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;405E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;406E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;407E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;408E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;409E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;410E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;411E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;412E;E;F;f;18;0.7411764705882353f;18;0.7803921568627451f;18;0.8274509803921568D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;413E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;414E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;10;$classnameS;15;CPNinePartImageK;8;$classesA;S;15;CPNinePartImageS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;331E;K;29;CPNinePartImageImageSlicesKeyD;K;6;CP$UIDd;3;415E;E;D;K;6;$classD;K;6;CP$UIDd;3;331E;K;29;CPNinePartImageImageSlicesKeyD;K;6;CP$UIDd;3;416E;E;S;41;{"top":9,"right":14,"bottom":6,"left":14}S;39;{"top":9,"right":7,"bottom":5,"left":8}S;39;{"top":4,"right":4,"bottom":4,"left":4}S;39;{"top":4,"right":4,"bottom":3,"left":4}D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;417E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;418E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;419E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;420E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;421E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;422E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;423E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;424E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;425E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;426E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;427E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;428E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;429E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;430E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;431E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;432E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;433E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;434E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;435E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;436E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;437E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;438E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;439E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;440E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;441E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;442E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;443E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;444E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;445E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;446E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;447E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;448E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;449E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;450E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;451E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;452E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;453E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;454E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;455E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;456E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;457E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;458E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;459E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;196E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;460E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;S;22;{"width":5,"height":5}S;24;{"width":23,"height":24}D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;461E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;462E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;463E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;464E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;465E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;466E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;467E;D;K;6;CP$UIDd;3;468E;D;K;6;CP$UIDd;3;469E;E;E;f;20;0.050980392156862744f;3;0.2f;19;0.27450980392156865D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;470E;D;K;6;CP$UIDd;3;471E;D;K;6;CP$UIDd;3;472E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;473E;D;K;6;CP$UIDd;3;474E;D;K;6;CP$UIDd;3;475E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;476E;D;K;6;CP$UIDd;3;477E;D;K;6;CP$UIDd;3;478E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;479E;D;K;6;CP$UIDd;3;480E;D;K;6;CP$UIDd;3;481E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;482E;D;K;6;CP$UIDd;3;483E;D;K;6;CP$UIDd;3;484E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;485E;D;K;6;CP$UIDd;3;486E;D;K;6;CP$UIDd;3;487E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;488E;D;K;6;CP$UIDd;3;489E;D;K;6;CP$UIDd;3;490E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;491E;D;K;6;CP$UIDd;3;492E;D;K;6;CP$UIDd;3;493E;E;E;S;7;CPImageS;24;scroller-right-arrow.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;494E;E;E;S;36;scroller-right-arrow-highlighted.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;495E;E;E;S;33;scroller-right-arrow-disabled.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;496E;E;E;S;32;scroller-down-arrow-disabled.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;497E;E;E;S;35;scroller-down-arrow-highlighted.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;498E;E;E;S;23;scroller-down-arrow.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;499E;E;E;S;23;scroller-left-arrow.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;500E;E;E;S;35;scroller-left-arrow-highlighted.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;501E;E;E;S;32;scroller-left-arrow-disabled.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;502E;E;E;S;30;scroller-up-arrow-disabled.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;503E;E;E;S;33;scroller-up-arrow-highlighted.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;504E;E;E;S;21;scroller-up-arrow.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;505E;E;E;S;29;scroller-horizontal-track.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;506E;E;E;S;38;scroller-horizontal-track-disabled.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;507E;E;E;S;36;scroller-vertical-track-disabled.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;508E;E;E;S;27;scroller-vertical-track.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;509E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;510E;D;K;6;CP$UIDd;3;511E;D;K;6;CP$UIDd;3;512E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;513E;D;K;6;CP$UIDd;3;514E;D;K;6;CP$UIDd;3;515E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;516E;D;K;6;CP$UIDd;3;517E;D;K;6;CP$UIDd;3;518E;D;K;6;CP$UIDd;3;519E;D;K;6;CP$UIDd;3;520E;D;K;6;CP$UIDd;3;521E;D;K;6;CP$UIDd;3;522E;D;K;6;CP$UIDd;3;523E;D;K;6;CP$UIDd;3;524E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;525E;D;K;6;CP$UIDd;3;526E;D;K;6;CP$UIDd;3;527E;D;K;6;CP$UIDd;3;528E;D;K;6;CP$UIDd;3;529E;D;K;6;CP$UIDd;3;530E;D;K;6;CP$UIDd;3;531E;D;K;6;CP$UIDd;3;532E;D;K;6;CP$UIDd;3;533E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;534E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;535E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;536E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;537E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;E;E;S;35;segmented-control-bezel-divider.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;538E;E;E;S;47;segmented-control-bezel-highlighted-divider.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;539E;E;E;S;44;segmented-control-bezel-inactive-divider.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;540E;E;E;S;53;segmented-control-bezel-pushed-highlighted-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;541E;E;E;S;41;segmented-control-bezel-pushed-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;542E;E;E;S;46;segmented-control-bezel-highlighted-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;543E;E;E;S;43;segmented-control-bezel-inactive-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;544E;E;E;S;34;segmented-control-bezel-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;545E;E;E;S;52;segmented-control-bezel-pushed-highlighted-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;546E;E;E;S;40;segmented-control-bezel-pushed-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;547E;E;E;S;45;segmented-control-bezel-highlighted-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;548E;E;E;S;42;segmented-control-bezel-inactive-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;549E;E;E;S;33;segmented-control-bezel-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;550E;E;E;S;51;segmented-control-bezel-pushed-highlighted-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;551E;E;E;S;39;segmented-control-bezel-pushed-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;552E;E;E;S;44;segmented-control-bezel-highlighted-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;553E;E;E;S;41;segmented-control-bezel-inactive-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;554E;E;E;S;32;segmented-control-bezel-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;555E;E;E;S;25;slider-circular-bezel.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;556E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;557E;D;K;6;CP$UIDd;3;558E;D;K;6;CP$UIDd;3;559E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;560E;D;K;6;CP$UIDd;3;561E;D;K;6;CP$UIDd;3;562E;E;E;S;24;slider-circular-knob.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;563E;E;E;S;20;knob-highlighted.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;564E;E;E;S;8;knob.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;565E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;566E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;567E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;566E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;568E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;569E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;570E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;571E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;572E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;573E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;574E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;575E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;576E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;577E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;578E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;579E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;580E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;581E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;582E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;583E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;584E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;585E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;586E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;587E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;588E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;589E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;590E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;591E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;592E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;593E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;594E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;589E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;595E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;591E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;596E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;597E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;598E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;589E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;599E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;591E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;600E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;601E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;602E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;603E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;604E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;605E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;606E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;607E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;608E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;609E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;610E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;611E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;612E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;613E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;614E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;615E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;616E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;616E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;616E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;617E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;618E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;619E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;620E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;621E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;622E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;623E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;624E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;625E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;626E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;627E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;628E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;629E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;630E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;631E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;632E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;633E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;634E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;635E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;636E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;637E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;638E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;639E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;640E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;641E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;642E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;643E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;644E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;645E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;646E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;647E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;648E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;649E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;650E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;651E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;652E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;653E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;654E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;655E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;656E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;657E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;658E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;659E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;660E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;661E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;662E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;663E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;664E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;665E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;666E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;667E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;668E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;669E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;670E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;671E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;672E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;675E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;676E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;677E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;678E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;679E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;680E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;681E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;682E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;683E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;684E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;685E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;686E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;687E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;363E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;364E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;364E;E;S;19;buttonbar-bezel.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;688E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;689E;E;E;S;25;buttonbar-bezel-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;690E;E;E;S;41;default-button-bezel-highlighted-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;691E;E;E;S;43;default-button-bezel-highlighted-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;692E;E;E;S;42;default-button-bezel-highlighted-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;693E;E;E;S;29;default-button-bezel-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;694E;E;E;S;31;default-button-bezel-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;695E;E;E;S;30;default-button-bezel-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;696E;E;E;S;33;button-bezel-highlighted-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;697E;E;E;S;35;button-bezel-highlighted-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;698E;E;E;S;34;button-bezel-highlighted-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;699E;E;E;S;21;button-bezel-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;700E;E;E;S;23;button-bezel-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;701E;E;E;S;22;button-bezel-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;702E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;703E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;704E;E;E;S;31;popup-bezel-right-pullsdown.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;705E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;706E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;707E;E;E;S;21;popup-bezel-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;708E;E;E;S;33;scroller-horizontal-knob-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;709E;E;E;S;35;scroller-horizontal-knob-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;710E;E;E;S;34;scroller-horizontal-knob-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;711E;E;E;S;30;scroller-vertical-knob-top.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;712E;E;E;S;33;scroller-vertical-knob-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;713E;E;E;S;33;scroller-vertical-knob-bottom.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;714E;E;E;S;23;{"width":1,"height":17}S;23;{"width":17,"height":1}S;32;textfield-bezel-rounded-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;715E;E;E;S;34;textfield-bezel-rounded-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;716E;E;E;S;33;textfield-bezel-rounded-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;717E;E;E;S;40;textfield-bezel-rounded-focused-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;718E;E;E;S;42;textfield-bezel-rounded-focused-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;719E;E;E;S;41;textfield-bezel-rounded-focused-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;720E;E;E;S;36;textfield-bezel-square-focused-0.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;721E;E;E;S;36;textfield-bezel-square-focused-1.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;722E;E;E;S;36;textfield-bezel-square-focused-2.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;723E;E;E;S;36;textfield-bezel-square-focused-3.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;724E;E;E;S;36;textfield-bezel-square-focused-4.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;725E;E;E;S;36;textfield-bezel-square-focused-5.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;726E;E;E;S;36;textfield-bezel-square-focused-6.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;727E;E;E;S;36;textfield-bezel-square-focused-7.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;728E;E;E;S;36;textfield-bezel-square-focused-8.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;729E;E;E;S;28;textfield-bezel-square-0.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;730E;E;E;S;28;textfield-bezel-square-1.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;731E;E;E;S;28;textfield-bezel-square-2.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;732E;E;E;S;28;textfield-bezel-square-3.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;733E;E;E;S;28;textfield-bezel-square-4.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;734E;E;E;S;28;textfield-bezel-square-5.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;735E;E;E;S;28;textfield-bezel-square-6.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;736E;E;E;S;28;textfield-bezel-square-7.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;737E;E;E;S;28;textfield-bezel-square-8.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;738E;E;E;S;24;radio-bezel-selected.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;739E;E;E;S;15;radio-bezel.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;740E;E;E;S;28;check-box-bezel-selected.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;741E;E;E;S;19;check-box-bezel.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;742E;E;E;S;23;{"width":1,"height":24}S;23;{"width":4,"height":24}S;24;{"width":34,"height":34}S;22;vertical-track-top.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;743E;E;E;S;25;vertical-track-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;744E;E;E;S;25;vertical-track-bottom.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;745E;E;E;S;25;horizontal-track-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;746E;E;E;S;27;horizontal-track-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;747E;E;E;S;26;horizontal-track-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;748E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;749E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;749E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;750E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;751E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;751E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;752E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;753E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;754E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;755E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;756E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;757E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;758E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;759E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;758E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;760E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;761E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;762E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;761E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;763E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;764E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;763E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;765E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;766E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;765E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;767E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;768E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;767E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;769E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;764E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;769E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;770E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;771E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;770E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;772E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;772E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;773E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;773E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;774E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;775E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;776E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;777E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;766E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;777E;E;S;23;{"width":1,"height":26}S;24;{"width":13,"height":26}S;24;{"width":27,"height":24}S;24;{"width":11,"height":15}S;23;{"width":1,"height":15}S;23;{"width":9,"height":15}S;23;{"width":15,"height":8}S;23;{"width":15,"height":1}S;24;{"width":15,"height":10}S;24;{"width":13,"height":22}S;23;{"width":1,"height":22}S;23;{"width":1,"height":30}S;22;{"width":6,"height":7}S;22;{"width":1,"height":7}S;22;{"width":6,"height":1}S;22;{"width":1,"height":1}S;22;{"width":6,"height":5}S;22;{"width":1,"height":5}S;22;{"width":2,"height":3}S;22;{"width":1,"height":3}S;22;{"width":2,"height":1}S;22;{"width":2,"height":2}S;22;{"width":1,"height":2}S;24;{"width":17,"height":17}S;24;{"width":15,"height":16}S;22;{"width":5,"height":6}S;22;{"width":5,"height":1}S;22;{"width":5,"height":4}S;22;{"width":4,"height":5}E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E;p;21;Aristo-HUD.keyedthemet;6757;280NPLIST;1.0;D;K;4;$topD;K;4;rootD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;7;CPThemeK;8;$classesA;S;7;CPThemeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;14;CPThemeNameKeyD;K;6;CP$UIDd;1;3E;K;20;CPThemeAttributesKeyD;K;6;CP$UIDd;1;5E;E;S;10;Aristo-HUDD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;buttonD;K;6;CP$UIDd;1;6E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;max-sizeD;K;6;CP$UIDd;1;8E;K;8;min-sizeD;K;6;CP$UIDd;1;9E;K;13;image-scalingD;K;6;CP$UIDd;2;10E;K;14;image-positionD;K;6;CP$UIDd;2;11E;K;4;fontD;K;6;CP$UIDd;2;12E;K;10;text-colorD;K;6;CP$UIDd;2;13E;K;15;line-break-modeD;K;6;CP$UIDd;2;14E;K;18;vertical-alignmentD;K;6;CP$UIDd;2;15E;K;9;alignmentD;K;6;CP$UIDd;2;16E;K;11;bezel-colorD;K;6;CP$UIDd;2;17E;K;13;content-insetD;K;6;CP$UIDd;2;18E;E;E;D;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;19E;K;5;valueD;K;6;CP$UIDd;2;21E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;22E;K;5;valueD;K;6;CP$UIDd;2;23E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;24E;K;5;valueD;K;6;CP$UIDd;2;25E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;26E;K;5;valueD;K;6;CP$UIDd;2;25E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;27E;K;5;stateD;K;6;CP$UIDd;2;28E;K;5;valueD;K;6;CP$UIDd;2;30E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;31E;K;5;valueD;K;6;CP$UIDd;2;33E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;34E;K;5;valueD;K;6;CP$UIDd;2;35E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;36E;K;5;valueD;K;6;CP$UIDd;2;25E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;37E;K;5;valueD;K;6;CP$UIDd;2;25E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;38E;K;6;valuesD;K;6;CP$UIDd;2;39E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;40E;K;5;stateD;K;6;CP$UIDd;2;28E;K;5;valueD;K;6;CP$UIDd;2;41E;E;S;8;max-sizeD;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;42E;E;S;8;min-sizeD;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;43E;E;S;13;image-scalingd;1;2S;14;image-positionS;4;fontS;8;borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;13;CPFontNameKeyD;K;6;CP$UIDd;2;44E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;45E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;46E;E;S;10;text-colorD;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;2;48E;E;S;15;line-break-moded;1;4S;18;vertical-alignmentS;9;alignmentS;11;bezel-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;20;highlighted+borderedD;K;6;CP$UIDd;2;49E;K;8;borderedD;K;6;CP$UIDd;2;50E;E;E;S;13;content-insetD;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;51E;E;S;24;{"width":-1,"height":20}S;23;{"width":0,"height":20}S;5;Ariald;2;11F;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;52E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;2;54E;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;2;55E;E;S;39;{"top":2,"right":5,"bottom":4,"left":5}d;1;1D;K;10;$classnameS;16;CPThreePartImageK;8;$classesA;S;16;CPThreePartImageS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;2;56E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;2;46E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;2;57E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;2;46E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;E;E;D;K;10;$classnameS;20;_CPCibCustomResourceK;8;$classesA;S;20;_CPCibCustomResourceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;2;65E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;2;66E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;2;65E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;2;68E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;2;65E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;2;70E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;2;71E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;2;65E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;2;72E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;2;73E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;2;65E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;2;74E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;2;75E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;2;65E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;2;76E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;2;77E;E;S;7;CPImageS;37;HUD/button-bezel-highlighted-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;2;78E;E;E;S;39;HUD/button-bezel-highlighted-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;2;79E;E;E;S;38;HUD/button-bezel-highlighted-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;2;80E;E;E;S;25;HUD/button-bezel-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;2;81E;E;E;S;27;HUD/button-bezel-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;2;82E;E;E;S;26;HUD/button-bezel-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;2;83E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;84E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;85E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;84E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;84E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;85E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;84E;E;S;24;{"width":13,"height":20}S;23;{"width":1,"height":20}E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Info.plist b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Info.plist new file mode 100644 index 0000000..2b14d98 --- /dev/null +++ b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Info.plist @@ -0,0 +1 @@ +280NPLIST;1.0;D;K;12;CPBundleNameS;6;AristoK;18;CPBundleIdentifierS;6;AristoK;21;CPBundleReplacedFilesA;S;17;Aristo.keyedthemeS;21;Aristo-HUD.keyedthemeE;K;18;CPBundleExecutableS;9;Aristo.sjE; \ No newline at end of file diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-center.png new file mode 100644 index 0000000..6b3e348 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-center.png new file mode 100644 index 0000000..0f35e8c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-left.png new file mode 100644 index 0000000..fe9f274 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-right.png new file mode 100644 index 0000000..809339a Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-left.png new file mode 100644 index 0000000..6c10bf5 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-right.png new file mode 100644 index 0000000..91439ae Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-center.png new file mode 100644 index 0000000..9d33b4a Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-center.png new file mode 100644 index 0000000..0d03b41 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-left.png new file mode 100644 index 0000000..1f0dfad Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-right.png new file mode 100644 index 0000000..ee90e94 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-left.png new file mode 100644 index 0000000..43b127c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-right.png new file mode 100644 index 0000000..b7d5b55 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel-right.png new file mode 100644 index 0000000..c6b22ff Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel.png new file mode 100644 index 0000000..72f5b73 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/check-box-bezel-selected.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/check-box-bezel-selected.png new file mode 100644 index 0000000..e8fd934 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/check-box-bezel-selected.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/check-box-bezel.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/check-box-bezel.png new file mode 100644 index 0000000..1541ecb Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/check-box-bezel.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-center.png new file mode 100644 index 0000000..73f7c1e Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-center.png new file mode 100644 index 0000000..1c064ca Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-left.png new file mode 100644 index 0000000..0b0ab90 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-right.png new file mode 100644 index 0000000..eaa4a61 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-left.png new file mode 100644 index 0000000..fead580 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-right.png new file mode 100644 index 0000000..9e3a174 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/horizontal-track-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/horizontal-track-center.png new file mode 100644 index 0000000..67f2ec8 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/horizontal-track-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/horizontal-track-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/horizontal-track-left.png new file mode 100644 index 0000000..bf628c5 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/horizontal-track-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/horizontal-track-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/horizontal-track-right.png new file mode 100644 index 0000000..3255821 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/horizontal-track-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/knob-highlighted.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/knob-highlighted.png new file mode 100644 index 0000000..4154b0f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/knob-highlighted.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/knob.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/knob.png new file mode 100644 index 0000000..9272760 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/knob.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-arrows-pullsdown.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-arrows-pullsdown.png new file mode 100644 index 0000000..4403da2 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-arrows-pullsdown.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-arrows.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-arrows.png new file mode 100644 index 0000000..16abca2 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-arrows.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right-pullsdown.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right-pullsdown.png new file mode 100644 index 0000000..dde750f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right-pullsdown.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right.png new file mode 100644 index 0000000..cd89b2f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/radio-bezel-selected.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/radio-bezel-selected.png new file mode 100644 index 0000000..96fa554 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/radio-bezel-selected.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/radio-bezel.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/radio-bezel.png new file mode 100644 index 0000000..90cf20c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/radio-bezel.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-disabled.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-disabled.png new file mode 100644 index 0000000..f6f3020 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-disabled.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-highlighted.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-highlighted.png new file mode 100644 index 0000000..00f3466 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-highlighted.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow.png new file mode 100644 index 0000000..e5a516a Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-center.png new file mode 100644 index 0000000..514e235 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-left.png new file mode 100644 index 0000000..8975054 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-right.png new file mode 100644 index 0000000..2e34e2c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track-disabled.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track-disabled.png new file mode 100644 index 0000000..cd90029 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track-disabled.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track.png new file mode 100644 index 0000000..3043f26 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-disabled.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-disabled.png new file mode 100644 index 0000000..34e8f9b Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-disabled.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-highlighted.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-highlighted.png new file mode 100644 index 0000000..3c88f8e Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-highlighted.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow.png new file mode 100644 index 0000000..ff8c145 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-disabled.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-disabled.png new file mode 100644 index 0000000..2d154f2 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-disabled.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-highlighted.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-highlighted.png new file mode 100644 index 0000000..b924bb1 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-highlighted.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow.png new file mode 100644 index 0000000..1ad602e Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-disabled.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-disabled.png new file mode 100644 index 0000000..7da7d03 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-disabled.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-highlighted.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-highlighted.png new file mode 100644 index 0000000..52c58d7 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-highlighted.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow.png new file mode 100644 index 0000000..ce98d9f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-bottom.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-bottom.png new file mode 100644 index 0000000..93be370 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-bottom.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-center.png new file mode 100644 index 0000000..0e71759 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-top.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-top.png new file mode 100644 index 0000000..297b28a Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-top.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track-disabled.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track-disabled.png new file mode 100644 index 0000000..a3b3544 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track-disabled.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track.png new file mode 100644 index 0000000..9a2c7d9 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-center.png new file mode 100644 index 0000000..f45b3fa Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-divider.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-divider.png new file mode 100644 index 0000000..73048d7 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-divider.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-center.png new file mode 100644 index 0000000..15a88e7 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-divider.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-divider.png new file mode 100644 index 0000000..497350b Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-divider.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-left.png new file mode 100644 index 0000000..e7ec7cd Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-right.png new file mode 100644 index 0000000..0fab603 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-center.png new file mode 100644 index 0000000..6a7b478 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-divider.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-divider.png new file mode 100644 index 0000000..74f4ba8 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-divider.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-left.png new file mode 100644 index 0000000..cac1774 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-right.png new file mode 100644 index 0000000..d04835d Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-left.png new file mode 100644 index 0000000..c287590 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-center.png new file mode 100644 index 0000000..5b7021c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-center.png new file mode 100644 index 0000000..f9f6a6e Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-left.png new file mode 100644 index 0000000..aca1e6a Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-right.png new file mode 100644 index 0000000..07b36cf Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-left.png new file mode 100644 index 0000000..f293920 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-right.png new file mode 100644 index 0000000..f337117 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-right.png new file mode 100644 index 0000000..27898ba Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/slider-circular-bezel.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/slider-circular-bezel.png new file mode 100644 index 0000000..0025fc9 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/slider-circular-bezel.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/slider-circular-knob.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/slider-circular-knob.png new file mode 100644 index 0000000..7d9fb3b Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/slider-circular-knob.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/spinner.gif b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/spinner.gif new file mode 100644 index 0000000..06dbc2b Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/spinner.gif differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-center.png new file mode 100644 index 0000000..2ffc73c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-center.png new file mode 100644 index 0000000..b5dad6f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-left.png new file mode 100644 index 0000000..b44bf2c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-right.png new file mode 100644 index 0000000..aeed868 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-left.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-left.png new file mode 100644 index 0000000..c4d22bf Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-left.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-right.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-right.png new file mode 100644 index 0000000..8281342 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-right.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-0.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-0.png new file mode 100644 index 0000000..adb302c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-0.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-1.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-1.png new file mode 100644 index 0000000..e1444f4 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-1.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-2.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-2.png new file mode 100644 index 0000000..549bd1e Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-2.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-3.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-3.png new file mode 100644 index 0000000..204fe57 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-3.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-4.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-4.png new file mode 100644 index 0000000..1f343f5 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-4.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-5.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-5.png new file mode 100644 index 0000000..168ffa2 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-5.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-6.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-6.png new file mode 100644 index 0000000..733370f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-6.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-7.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-7.png new file mode 100644 index 0000000..8b3c225 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-7.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-8.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-8.png new file mode 100644 index 0000000..06f50ab Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-8.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-0.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-0.png new file mode 100644 index 0000000..6cbc8fe Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-0.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-1.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-1.png new file mode 100644 index 0000000..5f88644 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-1.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-2.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-2.png new file mode 100644 index 0000000..348aa40 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-2.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-3.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-3.png new file mode 100644 index 0000000..f747470 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-3.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-4.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-4.png new file mode 100644 index 0000000..1f343f5 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-4.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-5.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-5.png new file mode 100644 index 0000000..438c5b2 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-5.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-6.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-6.png new file mode 100644 index 0000000..98b3c50 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-6.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-7.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-7.png new file mode 100644 index 0000000..f9e23aa Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-7.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-8.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-8.png new file mode 100644 index 0000000..c9148da Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-8.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/vertical-track-bottom.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/vertical-track-bottom.png new file mode 100644 index 0000000..c43104a Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/vertical-track-bottom.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/vertical-track-center.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/vertical-track-center.png new file mode 100644 index 0000000..13b8743 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/vertical-track-center.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/vertical-track-top.png b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/vertical-track-top.png new file mode 100644 index 0000000..96fdefc Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/vertical-track-top.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPAlert/LICENSE b/src/main/webapp/Frameworks/AppKit/Resources/CPAlert/LICENSE new file mode 100644 index 0000000..4fa7dc4 --- /dev/null +++ b/src/main/webapp/Frameworks/AppKit/Resources/CPAlert/LICENSE @@ -0,0 +1,58 @@ +These graphics come from the Tango Desktop Project (http://tango.freedesktop.org/Tango_Desktop_Project). +They are released under the Creative Commons Attribution Share-Alike license, full text below. + + +(license available from CC here: http://creativecommons.org/licenses/by-sa/2.5/) + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Collective Work" means a work, such as a periodical issue, anthology or encyclopedia, in which the Work in its entirety in unmodified form, along with a number of other contributions, constituting separate and independent works in themselves, are assembled into a collective whole. A work that constitutes a Collective Work will not be considered a Derivative Work (as defined below) for the purposes of this License. +"Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which the Work may be recast, transformed, or adapted, except that a work that constitutes a Collective Work will not be considered a Derivative Work for the purpose of this License. For the avoidance of doubt, where the Work is a musical composition or sound recording, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered a Derivative Work for the purpose of this License. +"Licensor" means the individual or entity that offers the Work under the terms of this License. +"Original Author" means the individual or entity who created the Work. +"Work" means the copyrightable work of authorship offered under the terms of this License. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. +2. Fair Use Rights. Nothing in this license is intended to reduce, limit, or restrict any rights arising from fair use, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to reproduce the Work, to incorporate the Work into one or more Collective Works, and to reproduce the Work as incorporated in the Collective Works; +to create and reproduce Derivative Works; +to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission the Work including as incorporated in Collective Works; +to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission Derivative Works. +For the avoidance of doubt, where the work is a musical composition: + +Performance Royalties Under Blanket Licenses. Licensor waives the exclusive right to collect, whether individually or via a performance rights society (e.g. ASCAP, BMI, SESAC), royalties for the public performance or public digital performance (e.g. webcast) of the Work. +Mechanical Rights and Statutory Royalties. Licensor waives the exclusive right to collect, whether individually or via a music rights society or designated agent (e.g. Harry Fox Agency), royalties for any phonorecord You create from the Work ("cover version") and distribute, subject to the compulsory license created by 17 USC Section 115 of the US Copyright Act (or the equivalent in other jurisdictions). +Webcasting Rights and Statutory Royalties. For the avoidance of doubt, where the Work is a sound recording, Licensor waives the exclusive right to collect, whether individually or via a performance-rights society (e.g. SoundExchange), royalties for the public digital performance (e.g. webcast) of the Work, subject to the compulsory license created by 17 USC Section 114 of the US Copyright Act (or the equivalent in other jurisdictions). +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. All rights not expressly granted by Licensor are hereby reserved. + +4. Restrictions.The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may distribute, publicly display, publicly perform, or publicly digitally perform the Work only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy or phonorecord of the Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Work itself to be made subject to the terms of this License. If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any credit as required by clause 4(c), as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any credit as required by clause 4(c), as requested. +You may distribute, publicly display, publicly perform, or publicly digitally perform a Derivative Work only under the terms of this License, a later version of this License with the same License Elements as this License, or a Creative Commons iCommons license that contains the same License Elements as this License (e.g. Attribution-ShareAlike 2.5 Japan). You must include a copy of, or the Uniform Resource Identifier for, this License or other license specified in the previous sentence with every copy or phonorecord of each Derivative Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Derivative Works that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder, and You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Derivative Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Derivative Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Derivative Work itself to be made subject to the terms of this License. +If you distribute, publicly display, publicly perform, or publicly digitally perform the Work or any Derivative Works or Collective Works, You must keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or (ii) if the Original Author and/or Licensor designate another party or parties (e.g. a sponsor institute, publishing entity, journal) for attribution in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; the title of the Work if supplied; to the extent reasonably practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and in the case of a Derivative Work, a credit identifying the use of the Work in the Derivative Work (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). Such credit may be implemented in any reasonable manner; provided, however, that in the case of a Derivative Work or Collective Work, at a minimum such credit will appear where any other comparable authorship credit appears and in a manner at least as prominent as such other comparable authorship credit. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE MATERIALS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Derivative Works or Collective Works from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You distribute or publicly digitally perform the Work or a Collective Work, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +Each time You distribute or publicly digitally perform a Derivative Work, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPAlert/dialog-error.png b/src/main/webapp/Frameworks/AppKit/Resources/CPAlert/dialog-error.png new file mode 100644 index 0000000..aa4ae75 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPAlert/dialog-error.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPAlert/dialog-information.png b/src/main/webapp/Frameworks/AppKit/Resources/CPAlert/dialog-information.png new file mode 100644 index 0000000..cbaf6db Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPAlert/dialog-information.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPAlert/dialog-warning.png b/src/main/webapp/Frameworks/AppKit/Resources/CPAlert/dialog-warning.png new file mode 100644 index 0000000..47d84e4 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPAlert/dialog-warning.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/New.png b/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/New.png new file mode 100644 index 0000000..058a6ca Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/New.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/NewHighlighted.png b/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/NewHighlighted.png new file mode 100644 index 0000000..6697edd Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/NewHighlighted.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/Open.png b/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/Open.png new file mode 100644 index 0000000..15c6cda Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/Open.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/OpenHighlighted.png b/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/OpenHighlighted.png new file mode 100644 index 0000000..17b5a2b Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/OpenHighlighted.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/Save.png b/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/Save.png new file mode 100644 index 0000000..bdefaef Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/Save.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/SaveHighlighted.png b/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/SaveHighlighted.png new file mode 100644 index 0000000..cbba05f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPApplication/SaveHighlighted.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewBottomLeftShadow.png b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewBottomLeftShadow.png new file mode 100644 index 0000000..7b1d88f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewBottomLeftShadow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewBottomRightShadow.png b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewBottomRightShadow.png new file mode 100644 index 0000000..e9d60da Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewBottomRightShadow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewBottomShadow.png b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewBottomShadow.png new file mode 100644 index 0000000..6500896 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewBottomShadow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewLeftShadow.png b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewLeftShadow.png new file mode 100644 index 0000000..6fcbb96 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewLeftShadow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewRightShadow.png b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewRightShadow.png new file mode 100644 index 0000000..7b93553 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewRightShadow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewTopLeftShadow.png b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewTopLeftShadow.png new file mode 100644 index 0000000..7185727 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewTopLeftShadow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewTopRightShadow.png b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewTopRightShadow.png new file mode 100644 index 0000000..e597c5e Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewTopRightShadow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewTopShadow.png b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewTopShadow.png new file mode 100644 index 0000000..483e391 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewTopShadow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPMenuItem/CPMenuItemOnState.png b/src/main/webapp/Frameworks/AppKit/Resources/CPMenuItem/CPMenuItemOnState.png new file mode 100644 index 0000000..7ea275e Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPMenuItem/CPMenuItemOnState.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPMenuItem/CPMenuItemOnStateHighlighted.png b/src/main/webapp/Frameworks/AppKit/Resources/CPMenuItem/CPMenuItemOnStateHighlighted.png new file mode 100644 index 0000000..78f90ed Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPMenuItem/CPMenuItemOnStateHighlighted.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarBarRegular.png b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarBarRegular.png new file mode 100644 index 0000000..5a47190 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarBarRegular.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarHUDBarSmall.png b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarHUDBarSmall.png new file mode 100644 index 0000000..5bc78a0 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarHUDBarSmall.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular0.png b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular0.png new file mode 100644 index 0000000..34c84d7 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular0.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular1.png b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular1.png new file mode 100644 index 0000000..f555903 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular1.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular2.png b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular2.png new file mode 100644 index 0000000..81e575f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular2.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall0.png b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall0.png new file mode 100644 index 0000000..ee28212 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall0.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall1.png b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall1.png new file mode 100644 index 0000000..5f8f753 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall1.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall2.png b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall2.png new file mode 100644 index 0000000..612a5ac Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall2.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif new file mode 100644 index 0000000..0d2567c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottom.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottom.png new file mode 100644 index 0000000..1739840 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottom.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomLeft.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomLeft.png new file mode 100644 index 0000000..0fa178f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomLeft.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomRight.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomRight.png new file mode 100644 index 0000000..8015c51 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomRight.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyLeft.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyLeft.png new file mode 100644 index 0000000..2ef546f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyLeft.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyRight.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyRight.png new file mode 100644 index 0000000..aec43cd Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyRight.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyTop.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyTop.png new file mode 100644 index 0000000..039ea08 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyTop.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopLeft.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopLeft.png new file mode 100644 index 0000000..7fedc4e Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopLeft.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopRight.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopRight.png new file mode 100644 index 0000000..4914a6a Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopRight.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightBottom.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightBottom.png new file mode 100644 index 0000000..6500896 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightBottom.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightBottomLeft.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightBottomLeft.png new file mode 100644 index 0000000..7b1d88f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightBottomLeft.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightBottomRight.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightBottomRight.png new file mode 100644 index 0000000..e9d60da Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightBottomRight.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightLeft.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightLeft.png new file mode 100644 index 0000000..9e2c8e3 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightLeft.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightRight.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightRight.png new file mode 100644 index 0000000..7b93553 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightRight.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightTop.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightTop.png new file mode 100644 index 0000000..e930dc7 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightTop.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightTopLeft.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightTopLeft.png new file mode 100644 index 0000000..7185727 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightTopLeft.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightTopRight.png b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightTopRight.png new file mode 100644 index 0000000..e597c5e Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightTopRight.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPSplitView/CPSplitViewHorizontal.png b/src/main/webapp/Frameworks/AppKit/Resources/CPSplitView/CPSplitViewHorizontal.png new file mode 100644 index 0000000..6a016f6 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPSplitView/CPSplitViewHorizontal.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPSplitView/CPSplitViewVertical.png b/src/main/webapp/Frameworks/AppKit/Resources/CPSplitView/CPSplitViewVertical.png new file mode 100644 index 0000000..ed3225a Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPSplitView/CPSplitViewVertical.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBackgroundCenter.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBackgroundCenter.png new file mode 100644 index 0000000..f442c81 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBackgroundCenter.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBorder.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBorder.png new file mode 100644 index 0000000..722ba60 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBorder.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBorderLeft.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBorderLeft.png new file mode 100644 index 0000000..9ea5bc2 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBorderLeft.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBorderRight.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBorderRight.png new file mode 100644 index 0000000..0072a22 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBorderRight.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelBackgroundCenter.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelBackgroundCenter.png new file mode 100644 index 0000000..0368070 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelBackgroundCenter.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelBackgroundLeft.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelBackgroundLeft.png new file mode 100644 index 0000000..2536791 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelBackgroundLeft.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelBackgroundRight.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelBackgroundRight.png new file mode 100644 index 0000000..1878fd8 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelBackgroundRight.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelSelectedCenter.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelSelectedCenter.png new file mode 100644 index 0000000..0934e18 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelSelectedCenter.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelSelectedLeft.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelSelectedLeft.png new file mode 100644 index 0000000..dec4cb5 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelSelectedLeft.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelSelectedRight.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelSelectedRight.png new file mode 100644 index 0000000..5180605 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelSelectedRight.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelsViewCenter.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelsViewCenter.png new file mode 100644 index 0000000..e037d82 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelsViewCenter.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelsViewLeft.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelsViewLeft.png new file mode 100644 index 0000000..9ac0cb8 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelsViewLeft.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelsViewRight.png b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelsViewRight.png new file mode 100644 index 0000000..fa36e51 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelsViewRight.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator0.png b/src/main/webapp/Frameworks/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator0.png new file mode 100644 index 0000000..a525ea3 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator0.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator1.png b/src/main/webapp/Frameworks/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator1.png new file mode 100644 index 0000000..d3e6f1f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator1.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator2.png b/src/main/webapp/Frameworks/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator2.png new file mode 100644 index 0000000..9fcb695 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator2.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow0.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow0.png new file mode 100644 index 0000000..0c18720 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow0.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow1.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow1.png new file mode 100644 index 0000000..109156c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow1.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow2.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow2.png new file mode 100644 index 0000000..e8bc754 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow2.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow3.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow3.png new file mode 100644 index 0000000..ca07535 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow3.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow4.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow4.png new file mode 100644 index 0000000..c8ebdd5 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow4.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow5.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow5.png new file mode 100644 index 0000000..239b403 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow5.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow6.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow6.png new file mode 100644 index 0000000..624d998 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow6.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow7.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow7.png new file mode 100644 index 0000000..80b9a75 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow7.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow8.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow8.png new file mode 100644 index 0000000..eb82b4b Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow8.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground0.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground0.png new file mode 100644 index 0000000..f43a3aa Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground0.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground1.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground1.png new file mode 100644 index 0000000..ee4dba5 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground1.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground2.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground2.png new file mode 100644 index 0000000..76f41a6 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground2.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground3.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground3.png new file mode 100644 index 0000000..a38e4da Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground3.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground4.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground4.png new file mode 100644 index 0000000..83d2305 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground4.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground5.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground5.png new file mode 100644 index 0000000..b49ebef Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground5.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground6.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground6.png new file mode 100644 index 0000000..a2cebe4 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground6.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground7.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground7.png new file mode 100644 index 0000000..d1b3faf Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground7.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground8.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground8.png new file mode 100644 index 0000000..60e25e8 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground8.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardCLoseButtonHighlighted.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardCLoseButtonHighlighted.png new file mode 100644 index 0000000..e2cf52e Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardCLoseButtonHighlighted.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardCloseButton.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardCloseButton.png new file mode 100644 index 0000000..cd922a5 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardCloseButton.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop0.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop0.png new file mode 100644 index 0000000..1b0bfd7 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop0.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop1.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop1.png new file mode 100644 index 0000000..05e7096 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop1.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop2.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop2.png new file mode 100644 index 0000000..f0bafb8 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop2.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/CPWindowResizeIndicator.png b/src/main/webapp/Frameworks/AppKit/Resources/CPWindowResizeIndicator.png new file mode 100644 index 0000000..bac884d Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/CPWindowResizeIndicator.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/FIXME_ImageShadow.png b/src/main/webapp/Frameworks/AppKit/Resources/FIXME_ImageShadow.png new file mode 100644 index 0000000..2b3e46c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/FIXME_ImageShadow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/HUDTheme/WindowClose.png b/src/main/webapp/Frameworks/AppKit/Resources/HUDTheme/WindowClose.png new file mode 100644 index 0000000..4d3d405 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/HUDTheme/WindowClose.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/HUDTheme/WindowCloseActive.png b/src/main/webapp/Frameworks/AppKit/Resources/HUDTheme/WindowCloseActive.png new file mode 100644 index 0000000..f422823 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/HUDTheme/WindowCloseActive.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuBarWindow/_CPMenuBarWindowBackground.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuBarWindow/_CPMenuBarWindowBackground.png new file mode 100644 index 0000000..00656af Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuBarWindow/_CPMenuBarWindowBackground.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow1.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow1.png new file mode 100644 index 0000000..9055cb9 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow1.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow3.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow3.png new file mode 100644 index 0000000..1ec560b Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow3.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow4.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow4.png new file mode 100644 index 0000000..0d46be3 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow4.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow5.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow5.png new file mode 100644 index 0000000..c70019c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow5.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow7.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow7.png new file mode 100644 index 0000000..82c60c2 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow7.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreAbove.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreAbove.png new file mode 100644 index 0000000..6a093be Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreAbove.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreBelow.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreBelow.png new file mode 100644 index 0000000..cac3e0e Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreBelow.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded0.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded0.png new file mode 100644 index 0000000..34841cb Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded0.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded2.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded2.png new file mode 100644 index 0000000..12342f6 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded2.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded6.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded6.png new file mode 100644 index 0000000..94eae6f Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded6.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded8.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded8.png new file mode 100644 index 0000000..e2935bb Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded8.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPToolbarView/_CPToolbarViewBackground.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPToolbarView/_CPToolbarViewBackground.png new file mode 100644 index 0000000..25cfcc4 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPToolbarView/_CPToolbarViewBackground.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsAlternateImage.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsAlternateImage.png new file mode 100644 index 0000000..17e951c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsAlternateImage.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsImage.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsImage.png new file mode 100644 index 0000000..6b19961 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsImage.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/_CPWindowView/_CPWindowViewResizeIndicator.png b/src/main/webapp/Frameworks/AppKit/Resources/_CPWindowView/_CPWindowViewResizeIndicator.png new file mode 100644 index 0000000..bac884d Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/_CPWindowView/_CPWindowViewResizeIndicator.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/brightness_bar.png b/src/main/webapp/Frameworks/AppKit/Resources/brightness_bar.png new file mode 100644 index 0000000..3848c2c Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/brightness_bar.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/color_well.png b/src/main/webapp/Frameworks/AppKit/Resources/color_well.png new file mode 100644 index 0000000..0701699 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/color_well.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/slider_button.png b/src/main/webapp/Frameworks/AppKit/Resources/slider_button.png new file mode 100644 index 0000000..602d7db Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/slider_button.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/slider_button_h.png b/src/main/webapp/Frameworks/AppKit/Resources/slider_button_h.png new file mode 100644 index 0000000..1f493e3 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/slider_button_h.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/wheel.png b/src/main/webapp/Frameworks/AppKit/Resources/wheel.png new file mode 100644 index 0000000..81d06b2 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/wheel.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/wheel_black.png b/src/main/webapp/Frameworks/AppKit/Resources/wheel_black.png new file mode 100644 index 0000000..a5f4259 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/wheel_black.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/wheel_button.png b/src/main/webapp/Frameworks/AppKit/Resources/wheel_button.png new file mode 100644 index 0000000..8cca49e Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/wheel_button.png differ diff --git a/src/main/webapp/Frameworks/AppKit/Resources/wheel_button_h.png b/src/main/webapp/Frameworks/AppKit/Resources/wheel_button_h.png new file mode 100644 index 0000000..f580569 Binary files /dev/null and b/src/main/webapp/Frameworks/AppKit/Resources/wheel_button_h.png differ diff --git a/src/main/webapp/Frameworks/AppKit/browser.platform/AppKit.sj b/src/main/webapp/Frameworks/AppKit/browser.platform/AppKit.sj new file mode 100644 index 0000000..a68f337 --- /dev/null +++ b/src/main/webapp/Frameworks/AppKit/browser.platform/AppKit.sj @@ -0,0 +1,22227 @@ +@STATIC;1.0;p;31;_CPBorderlessBridgeWindowView.ji;15;_CPWindowView.jc;1901; +var _1=nil; +var _2=objj_allocateClassPair(_CPWindowView,"_CPBorderlessBridgeWindowView"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_toolbarBackgroundView")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("tile"),function(_4,_5){ +with(_4){ +objj_msgSendSuper({receiver:_4,super_class:objj_getClass("_CPWindowView")},"tile"); +var _6=objj_msgSend(_4,"window"),_7=objj_msgSend(_4,"bounds"); +objj_msgSend(objj_msgSend(_6,"contentView"),"setFrame:",CGRectMake(0,objj_msgSend(_4,"toolbarMaxY"),CGRectGetWidth(_7),CGRectGetHeight(_7)-objj_msgSend(_4,"toolbarMaxY"))); +if(!objj_msgSend(objj_msgSend(_6,"toolbar"),"isVisible")){ +objj_msgSend(_toolbarBackgroundView,"removeFromSuperview"); +_toolbarBackgroundView=nil; +return; +} +if(!_toolbarBackgroundView){ +_toolbarBackgroundView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_toolbarBackgroundView,"setBackgroundColor:",objj_msgSend(objj_msgSend(_4,"class"),"toolbarBackgroundColor")); +objj_msgSend(_toolbarBackgroundView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_4,"addSubview:positioned:relativeTo:",_toolbarBackgroundView,CPWindowBelow,nil); +} +var _8=CGRectMakeZero(); +_8.origin=CGPointMakeCopy(objj_msgSend(_4,"toolbarOffset")); +_8.size=objj_msgSend(_toolbarView,"frame").size; +objj_msgSend(_toolbarBackgroundView,"setFrame:",_8); +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("toolbarBackgroundColor"),function(_9,_a){ +with(_9){ +if(!_1){ +_1=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_CPBorderlessBridgeWindowView,"class")),"pathForResource:","_CPToolbarView/_CPToolbarViewBackground.png"),CGSizeMake(1,59))); +} +return _1; +} +})]); +p;25;_CPBorderlessWindowView.ji;15;_CPWindowView.jc;188; +var _1=objj_allocateClassPair(_CPWindowView,"_CPBorderlessWindowView"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +p;20;_CPCibClassSwapper.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;1259; +var _1="_CPCibClassSwapperClassNameKey",_2="_CPCibClassSwapperOriginalClassNameKey"; +var _3=objj_allocateClassPair(CPObject,"_CPCibClassSwapper"),_4=_3.isa; +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("allocObjectWithCoder:className:"),function(_5,_6,_7,_8){ +with(_5){ +var _9=objj_msgSend(_7,"classForClassName:",_8); +if(!_9){ +_9=objj_lookUpClass(_8); +if(!_9){ +return nil; +} +} +return objj_msgSend(_9,"alloc"); +} +}),new objj_method(sel_getUid("allocWithCoder:"),function(_a,_b,_c){ +with(_a){ +if(objj_msgSend(_c,"respondsToSelector:",sel_getUid("usesOriginalClasses"))&&objj_msgSend(_c,"usesOriginalClasses")){ +var _d=objj_msgSend(_c,"decodeObjectForKey:",_2),_e=objj_msgSend(_a,"allocObjectWithCoder:className:",_c,_d); +}else{ +var _d=objj_msgSend(_c,"decodeObjectForKey:",_1),_e=objj_msgSend(_a,"allocObjectWithCoder:className:",_c,_d); +if(!_e){ +CPLog.error("Unable to find class "+_d+" in cib file."); +_e=objj_msgSend(_a,"allocObjectWithCoder:className:",_c,objj_msgSend(_c,"decodeObjectForKey:",_2)); +} +} +if(!_e){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"Unable to find class "+_d+" in cib file."); +} +return _e; +} +})]); +p;17;_CPCibConnector.jI;21;Foundation/CPObject.jI;29;Foundation/CPKeyValueCoding.jc;3017; +var _1="_CPCibConnectorSourceKey",_2="_CPCibConnectorDestinationKey",_3="_CPCibConnectorLabelKey"; +var _4=objj_allocateClassPair(CPObject,"_CPCibConnector"),_5=_4.isa; +class_addIvars(_4,[new objj_ivar("_source"),new objj_ivar("_destination"),new objj_ivar("_label")]); +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("replaceObjects:"),function(_6,_7,_8){ +with(_6){ +var _9=_8[objj_msgSend(_source,"hash")]; +if(_9!==undefined){ +_source=_9; +} +_9=_8[objj_msgSend(_destination,"hash")]; +if(_9!==undefined){ +_destination=_9; +} +} +})]); +var _4=objj_getClass("_CPCibConnector"); +if(!_4){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"_CPCibConnector\"")); +} +var _5=_4.isa; +class_addMethods(_4,[new objj_method(sel_getUid("initWithCoder:"),function(_a,_b,_c){ +with(_a){ +_a=objj_msgSendSuper({receiver:_a,super_class:objj_getClass("CPObject")},"init"); +if(_a){ +_source=objj_msgSend(_c,"decodeObjectForKey:",_1); +_destination=objj_msgSend(_c,"decodeObjectForKey:",_2); +_label=objj_msgSend(_c,"decodeObjectForKey:",_3); +} +return _a; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_d,_e,_f){ +with(_d){ +objj_msgSend(_f,"encodeObject:forKey:",_source,_1); +objj_msgSend(_f,"encodeObject:forKey:",_destination,_2); +objj_msgSend(_f,"encodeObject:forKey:",_label,_3); +} +})]); +var _4=objj_allocateClassPair(_CPCibConnector,"_CPCibControlConnector"),_5=_4.isa; +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("establishConnection"),function(_10,_11){ +with(_10){ +var _12=_label; +if(!objj_msgSend(_12,"hasSuffix:",":")){ +_12+=":"; +} +var _13=CPSelectorFromString(_12); +if(!_13){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"-["+objj_msgSend(_10,"className")+" "+_11+"] selector "+_12+" does not exist."); +} +if(objj_msgSend(_source,"respondsToSelector:",sel_getUid("setAction:"))){ +objj_msgSend(_source,sel_getUid("setAction:"),_13); +}else{ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"-["+objj_msgSend(_10,"className")+" "+_11+"] "+objj_msgSend(_source,"description")+" does not respond to setAction:"); +} +if(objj_msgSend(_source,"respondsToSelector:",sel_getUid("setTarget:"))){ +objj_msgSend(_source,sel_getUid("setTarget:"),_destination); +}else{ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"-["+objj_msgSend(_10,"className")+" "+_11+"] "+objj_msgSend(_source,"description")+" does not respond to setTarget:"); +} +} +})]); +var _4=objj_allocateClassPair(_CPCibConnector,"_CPCibOutletConnector"),_5=_4.isa; +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("establishConnection"),function(_14,_15){ +with(_14){ +objj_msgSend(_source,"setValue:forKey:",_destination,_label); +} +})]); +p;20;_CPCibCustomObject.jI;21;Foundation/CPObject.jc;1478; +var _1="_CPCibCustomObjectClassName"; +var _2=objj_allocateClassPair(CPObject,"_CPCibCustomObject"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_className")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("customClassName"),function(_4,_5){ +with(_4){ +return _className; +} +}),new objj_method(sel_getUid("description"),function(_6,_7){ +with(_6){ +return objj_msgSendSuper({receiver:_6,super_class:objj_getClass("CPObject")},"description")+" ("+objj_msgSend(_6,"customClassName")+")"; +} +})]); +var _2=objj_getClass("_CPCibCustomObject"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"_CPCibCustomObject\"")); +} +var _3=_2.isa; +class_addMethods(_2,[new objj_method(sel_getUid("initWithCoder:"),function(_8,_9,_a){ +with(_8){ +_8=objj_msgSendSuper({receiver:_8,super_class:objj_getClass("CPObject")},"init"); +if(_8){ +_className=objj_msgSend(_a,"decodeObjectForKey:",_1); +} +return _8; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_b,_c,_d){ +with(_b){ +objj_msgSend(_d,"encodeObject:forKey:",_className,_1); +} +}),new objj_method(sel_getUid("_cibInstantiate"),function(_e,_f){ +with(_e){ +var _10=CPClassFromString(_className); +if(_10===objj_msgSend(CPApplication,"class")){ +return objj_msgSend(CPApplication,"sharedApplication"); +} +return objj_msgSend(objj_msgSend(_10,"alloc"),"init"); +} +})]); +p;22;_CPCibCustomResource.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;2848; +var _1="_CPCibCustomResourceClassNameKey",_2="_CPCibCustomResourceResourceNameKey",_3="_CPCibCustomResourcePropertiesKey"; +var _4=objj_allocateClassPair(CPObject,"_CPCibCustomResource"),_5=_4.isa; +class_addIvars(_4,[new objj_ivar("_className"),new objj_ivar("_resourceName"),new objj_ivar("_properties")]); +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("initWithClassName:resourceName:properties:"),function(_6,_7,_8,_9,_a){ +with(_6){ +_6=objj_msgSendSuper({receiver:_6,super_class:objj_getClass("CPObject")},"init"); +if(_6){ +_className=_8; +_resourceName=_9; +_properties=_a; +} +return _6; +} +}),new objj_method(sel_getUid("initWithCoder:"),function(_b,_c,_d){ +with(_b){ +_b=objj_msgSendSuper({receiver:_b,super_class:objj_getClass("CPObject")},"init"); +if(_b){ +_className=objj_msgSend(_d,"decodeObjectForKey:",_1); +_resourceName=objj_msgSend(_d,"decodeObjectForKey:",_2); +_properties=objj_msgSend(_d,"decodeObjectForKey:",_3); +} +return _b; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_e,_f,_10){ +with(_e){ +objj_msgSend(_10,"encodeObject:forKey:",_className,_1); +objj_msgSend(_10,"encodeObject:forKey:",_resourceName,_2); +objj_msgSend(_10,"encodeObject:forKey:",_properties,_3); +} +}),new objj_method(sel_getUid("awakeAfterUsingCoder:"),function(_11,_12,_13){ +with(_11){ +if(objj_msgSend(_13,"respondsToSelector:",sel_getUid("bundle"))&&(!objj_msgSend(_13,"respondsToSelector:",sel_getUid("awakenCustomResources"))||objj_msgSend(_13,"awakenCustomResources"))){ +if(_className==="CPImage"){ +return objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(_13,"bundle"),"pathForResource:",_resourceName),objj_msgSend(_properties,"objectForKey:","size")); +} +} +return _11; +} +})]); +class_addMethods(_5,[new objj_method(sel_getUid("imageResourceWithName:size:"),function(_14,_15,_16,_17){ +with(_14){ +return objj_msgSend(objj_msgSend(_14,"alloc"),"initWithClassName:resourceName:properties:","CPImage",_16,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",_17,"size")); +} +})]); +var _4=objj_getClass("_CPCibCustomResource"); +if(!_4){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"_CPCibCustomResource\"")); +} +var _5=_4.isa; +class_addMethods(_4,[new objj_method(sel_getUid("filename"),function(_18,_19){ +with(_18){ +return objj_msgSend(objj_msgSend(CPBundle,"mainBundle"),"pathForResource:",_resourceName); +} +}),new objj_method(sel_getUid("size"),function(_1a,_1b){ +with(_1a){ +return objj_msgSend(_properties,"objectForKey:","size"); +} +}),new objj_method(sel_getUid("isThreePartImage"),function(_1c,_1d){ +with(_1c){ +return NO; +} +}),new objj_method(sel_getUid("isNinePartImage"),function(_1e,_1f){ +with(_1e){ +return NO; +} +})]); +p;18;_CPCibCustomView.ji;8;CPView.jc;2703; +var _1=objj_allocateClassPair(CPView,"_CPCibCustomView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_className")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("customClassName"),function(_3,_4){ +with(_3){ +return _className; +} +})]); +var _5="_CPCibCustomViewClassNameKey"; +var _1=objj_getClass("_CPCibCustomView"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"_CPCibCustomView\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_6,_7,_8){ +with(_6){ +_6=objj_msgSendSuper({receiver:_6,super_class:objj_getClass("CPView")},"initWithCoder:",_8); +if(_6){ +_className=objj_msgSend(_8,"decodeObjectForKey:",_5); +} +return _6; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_9,_a,_b){ +with(_9){ +objj_msgSendSuper({receiver:_9,super_class:objj_getClass("CPView")},"encodeWithCoder:",_b); +objj_msgSend(_b,"encodeObject:forKey:",_className,_5); +} +}),new objj_method(sel_getUid("drawRect:"),function(_c,_d,_e){ +with(_c){ +var _f=objj_msgSend(_c,"bounds"),_10=objj_msgSend(objj_msgSend(CPGraphicsContext,"currentContext"),"graphicsPort"); +CGContextSetLineWidth(_10,1); +CGContextSetStrokeColor(_10,objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",169/255,173/255,178/255,1)); +CGContextStrokeRect(_10,CGRectInset(CGRectIntegral(_f),0.5,0.5)); +CGContextSetFillColor(_10,objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",224/255,236/255,250/255,1)); +CGContextFillRect(_10,CGRectInset(_f,2,2)); +} +}),new objj_method(sel_getUid("_cibInstantiate"),function(_11,_12){ +with(_11){ +var _13=CPClassFromString(_className); +if(!_13){ +_13=objj_msgSend(CPView,"class"); +} +if(_13===objj_msgSend(_11,"class")){ +_className="CPView"; +return _11; +} +var _14=objj_msgSend(objj_msgSend(_13,"alloc"),"initWithFrame:",objj_msgSend(_11,"frame")); +if(_14){ +objj_msgSend(_14,"setBounds:",objj_msgSend(_11,"bounds")); +var _15=objj_msgSend(objj_msgSend(_11,"subviews"),"copy"),_16=0,_17=_15.length; +for(;_16<_17;++_16){ +objj_msgSend(_14,"addSubview:",_15[_16]); +} +objj_msgSend(_14,"setAutoresizingMask:",objj_msgSend(_11,"autoresizingMask")); +objj_msgSend(_14,"setAutoresizesSubviews:",objj_msgSend(_11,"autoresizesSubviews")); +objj_msgSend(_14,"setHitTests:",objj_msgSend(_11,"hitTests")); +objj_msgSend(_14,"setHidden:",objj_msgSend(_11,"isHidden")); +objj_msgSend(_14,"setAlphaValue:",objj_msgSend(_11,"alphaValue")); +objj_msgSend(_superview,"replaceSubview:with:",_11,_14); +objj_msgSend(_14,"setBackgroundColor:",objj_msgSend(_11,"backgroundColor")); +} +return _14; +} +})]); +p;23;_CPCibKeyedUnarchiver.jI;30;Foundation/CPKeyedUnarchiver.jc;1054; +var _1=objj_allocateClassPair(CPKeyedUnarchiver,"_CPCibKeyedUnarchiver"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_bundle"),new objj_ivar("_awakenCustomResources")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initForReadingWithData:bundle:awakenCustomResources:"),function(_3,_4,_5,_6,_7){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPKeyedUnarchiver")},"initForReadingWithData:",_5); +if(_3){ +_bundle=_6; +_awakenCustomResources=_7; +objj_msgSend(_3,"setDelegate:",_3); +} +return _3; +} +}),new objj_method(sel_getUid("bundle"),function(_8,_9){ +with(_8){ +return _bundle; +} +}),new objj_method(sel_getUid("awakenCustomResources"),function(_a,_b){ +with(_a){ +return _awakenCustomResources; +} +}),new objj_method(sel_getUid("replaceObjectAtUID:withObject:"),function(_c,_d,_e,_f){ +with(_c){ +_objects[_e]=_f; +} +}),new objj_method(sel_getUid("objectAtUID:"),function(_10,_11,_12){ +with(_10){ +return _objects[_12]; +} +})]); +p;18;_CPCibObjectData.jI;20;Foundation/CPArray.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.ji;7;CPCib.ji;17;_CPCibConnector.jc;6115; +var _1=objj_allocateClassPair(CPObject,"_CPCibObjectData"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_namesKeys"),new objj_ivar("_namesValues"),new objj_ivar("_accessibilityConnectors"),new objj_ivar("_accessibilityOidsKeys"),new objj_ivar("_accessibilityOidsValues"),new objj_ivar("_classesKeys"),new objj_ivar("_classesValues"),new objj_ivar("_connections"),new objj_ivar("_fontManager"),new objj_ivar("_framework"),new objj_ivar("_nextOid"),new objj_ivar("_objectsKeys"),new objj_ivar("_objectsValues"),new objj_ivar("_oidKeys"),new objj_ivar("_oidValues"),new objj_ivar("_fileOwner"),new objj_ivar("_visibleWindows"),new objj_ivar("_replacementObjects")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("init"),function(_3,_4){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_namesKeys=[]; +_namesValues=[]; +_classesKeys=[]; +_classesValues=[]; +_connections=[]; +_framework=""; +_nextOid=[]; +_objectsKeys=[]; +_objectsValues=[]; +_oidKeys=[]; +_oidValues=[]; +_fileOwner=nil; +_visibleWindows=objj_msgSend(CPSet,"set"); +} +return _3; +} +}),new objj_method(sel_getUid("mainMenu"),function(_5,_6){ +with(_5){ +var _7=objj_msgSend(_namesValues,"indexOfObjectIdenticalTo:","MainMenu"); +if(_7===CPNotFound){ +_7=objj_msgSend(_namesValues,"indexOfObjectIdenticalTo:","Main Menu"); +if(_7===CPNotFound){ +return nil; +} +} +return _namesKeys[_7]; +} +}),new objj_method(sel_getUid("displayVisibleWindows"),function(_8,_9){ +with(_8){ +var _a=nil,_b=objj_msgSend(_visibleWindows,"objectEnumerator"); +while(_a=objj_msgSend(_b,"nextObject")){ +objj_msgSend(_replacementObjects[objj_msgSend(_a,"hash")],"makeKeyAndOrderFront:",_8); +} +} +})]); +var _c="_CPCibObjectDataNamesKeysKey",_d="_CPCibObjectDataNamesValuesKey",_e="_CPCibObjectDataAccessibilityConnectors",_f="_CPCibObjectDataAccessibilityOidsKeys",_10="_CPCibObjectDataAccessibilityOidsValues",_11="_CPCibObjectDataClassesKeysKey",_12="_CPCibObjectDataClassesValuesKey",_13="_CPCibObjectDataConnectionsKey",_14="_CPCibObjectDataFontManagerKey",_15="_CPCibObjectDataFrameworkKey",_16="_CPCibObjectDataNextOidKey",_17="_CPCibObjectDataObjectsKeysKey",_18="_CPCibObjectDataObjectsValuesKey",_19="_CPCibObjectDataOidKeysKey",_1a="_CPCibObjectDataOidValuesKey",_1b="_CPCibObjectDataFileOwnerKey",_1c="_CPCibObjectDataVisibleWindowsKey"; +var _1=objj_getClass("_CPCibObjectData"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"_CPCibObjectData\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_1d,_1e,_1f){ +with(_1d){ +_1d=objj_msgSendSuper({receiver:_1d,super_class:objj_getClass("CPObject")},"init"); +if(_1d){ +_replacementObjects={}; +_namesKeys=objj_msgSend(_1f,"decodeObjectForKey:",_c); +_namesValues=objj_msgSend(_1f,"decodeObjectForKey:",_d); +_classesKeys=objj_msgSend(_1f,"decodeObjectForKey:",_11); +_classesValues=objj_msgSend(_1f,"decodeObjectForKey:",_12); +_connections=objj_msgSend(_1f,"decodeObjectForKey:",_13); +_framework=objj_msgSend(_1f,"decodeObjectForKey:",_15); +_nextOid=objj_msgSend(_1f,"decodeIntForKey:",_16); +_objectsKeys=objj_msgSend(_1f,"decodeObjectForKey:",_17); +_objectsValues=objj_msgSend(_1f,"decodeObjectForKey:",_18); +_oidKeys=objj_msgSend(_1f,"decodeObjectForKey:",_19); +_oidValues=objj_msgSend(_1f,"decodeObjectForKey:",_1a); +_fileOwner=objj_msgSend(_1f,"decodeObjectForKey:",_1b); +_visibleWindows=objj_msgSend(_1f,"decodeObjectForKey:",_1c); +} +return _1d; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_20,_21,_22){ +with(_20){ +objj_msgSend(_22,"encodeObject:forKey:",_namesKeys,_c); +objj_msgSend(_22,"encodeObject:forKey:",_namesValues,_d); +objj_msgSend(_22,"encodeObject:forKey:",_classesKeys,_11); +objj_msgSend(_22,"encodeObject:forKey:",_classesValues,_12); +objj_msgSend(_22,"encodeObject:forKey:",_connections,_13); +objj_msgSend(_22,"encodeObject:forKey:",_framework,_15); +objj_msgSend(_22,"encodeInt:forKey:",_nextOid,_16); +objj_msgSend(_22,"encodeObject:forKey:",_objectsKeys,_17); +objj_msgSend(_22,"encodeObject:forKey:",_objectsValues,_18); +objj_msgSend(_22,"encodeObject:forKey:",_oidKeys,_19); +objj_msgSend(_22,"encodeObject:forKey:",_oidValues,_1a); +objj_msgSend(_22,"encodeObject:forKey:",_fileOwner,_1b); +objj_msgSend(_22,"encodeObject:forKey:",_visibleWindows,_1c); +} +}),new objj_method(sel_getUid("instantiateWithOwner:topLevelObjects:"),function(_23,_24,_25,_26){ +with(_23){ +var _27=objj_msgSend(_objectsKeys,"count"); +while(_27--){ +var _28=_objectsKeys[_27],_29=_objectsValues[_27],_2a=_28; +if(objj_msgSend(_28,"respondsToSelector:",sel_getUid("_cibInstantiate"))){ +var _2a=objj_msgSend(_28,"_cibInstantiate"); +if(_2a!==_28){ +_replacementObjects[objj_msgSend(_28,"hash")]=_2a; +if(objj_msgSend(_2a,"isKindOfClass:",objj_msgSend(CPView,"class"))){ +var _2b=objj_msgSend(_2a,"superview"); +if(objj_msgSend(_2b,"isKindOfClass:",objj_msgSend(CPClipView,"class"))){ +var _2c=objj_msgSend(_2b,"superview"); +if(objj_msgSend(_2c,"isKindOfClass:",objj_msgSend(CPScrollView,"class"))){ +objj_msgSend(_2c,"setDocumentView:",_2a); +} +} +} +} +} +if(_26&&_29===_fileOwner&&_28!==_fileOwner){ +_26.push(_2a); +} +} +} +}),new objj_method(sel_getUid("establishConnectionsWithOwner:topLevelObjects:"),function(_2d,_2e,_2f,_30){ +with(_2d){ +_replacementObjects[objj_msgSend(_fileOwner,"hash")]=_2f; +var _31=0,_32=_connections.length; +for(;_31<_32;++_31){ +var _33=_connections[_31]; +objj_msgSend(_33,"replaceObjects:",_replacementObjects); +objj_msgSend(_33,"establishConnection"); +} +} +}),new objj_method(sel_getUid("awakeWithOwner:topLevelObjects:"),function(_34,_35,_36,_37){ +with(_34){ +var _38=objj_msgSend(_objectsKeys,"count"); +while(_38--){ +var _39=_objectsKeys[_38],_3a=_replacementObjects[objj_msgSend(_39,"hash")]; +if(_3a){ +_39=_3a; +} +if(_39!==_36&&objj_msgSend(_39,"respondsToSelector:",sel_getUid("awakeFromCib"))){ +objj_msgSend(_39,"awakeFromCib"); +} +} +if(objj_msgSend(_36,"respondsToSelector:",sel_getUid("awakeFromCib"))){ +objj_msgSend(_36,"awakeFromCib"); +} +} +})]); +p;22;_CPCibWindowTemplate.jI;21;Foundation/CPObject.jc;3174; +var _1="_CPCibWindowTemplateMinSizeKey",_2="_CPCibWindowTemplateMaxSizeKey",_3="_CPCibWindowTemplateViewClassKey",_4="_CPCibWindowTemplateWindowClassKey",_5="_CPCibWindowTemplateWindowRectKey",_6="_CPCibWindowTempatStyleMaskKey",_7="_CPCibWindowTemplateWindowTitleKey",_8="_CPCibWindowTemplateWindowViewKey",_9="_CPCibWindowTemplateWindowIsFullBridgeKey"; +var _a=objj_allocateClassPair(CPObject,"_CPCibWindowTemplate"),_b=_a.isa; +class_addIvars(_a,[new objj_ivar("_minSize"),new objj_ivar("_maxSize"),new objj_ivar("_viewClass"),new objj_ivar("_windowClass"),new objj_ivar("_windowRect"),new objj_ivar("_windowStyleMask"),new objj_ivar("_windowTitle"),new objj_ivar("_windowView"),new objj_ivar("_windowIsFullBridge")]); +objj_registerClassPair(_a); +objj_addClassForBundle(_a,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_a,[new objj_method(sel_getUid("initWithCoder:"),function(_c,_d,_e){ +with(_c){ +_c=objj_msgSendSuper({receiver:_c,super_class:objj_getClass("CPObject")},"init"); +if(_c){ +if(objj_msgSend(_e,"containsValueForKey:",_1)){ +_minSize=objj_msgSend(_e,"decodeSizeForKey:",_1); +} +if(objj_msgSend(_e,"containsValueForKey:",_2)){ +_maxSize=objj_msgSend(_e,"decodeSizeForKey:",_2); +} +_viewClass=objj_msgSend(_e,"decodeObjectForKey:",_3); +_windowClass=objj_msgSend(_e,"decodeObjectForKey:",_4); +_windowRect=objj_msgSend(_e,"decodeRectForKey:",_5); +_windowStyleMask=objj_msgSend(_e,"decodeIntForKey:",_6); +_windowTitle=objj_msgSend(_e,"decodeObjectForKey:",_7); +_windowView=objj_msgSend(_e,"decodeObjectForKey:",_8); +_windowIsFullBridge=objj_msgSend(_e,"decodeObjectForKey:",_9); +} +return _c; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_f,_10,_11){ +with(_f){ +if(_minSize){ +objj_msgSend(_11,"encodeSize:forKey:",_minSize,_1); +} +if(_maxSize){ +objj_msgSend(_11,"encodeSize:forKey:",_maxSize,_2); +} +objj_msgSend(_11,"encodeObject:forKey:",_viewClass,_3); +objj_msgSend(_11,"encodeObject:forKey:",_windowClass,_4); +objj_msgSend(_11,"encodeRect:forKey:",_windowRect,_5); +objj_msgSend(_11,"encodeInt:forKey:",_windowStyleMask,_6); +objj_msgSend(_11,"encodeObject:forKey:",_windowTitle,_7); +objj_msgSend(_11,"encodeObject:forKey:",_windowView,_8); +objj_msgSend(_11,"encodeObject:forKey:",_windowIsFullBridge,_9); +} +}),new objj_method(sel_getUid("windowClass"),function(_12,_13){ +with(_12){ +return _windowClass; +} +}),new objj_method(sel_getUid("_cibInstantiate"),function(_14,_15){ +with(_14){ +var _16=CPClassFromString(objj_msgSend(_14,"windowClass")); +var _17=objj_msgSend(objj_msgSend(_16,"alloc"),"initWithContentRect:styleMask:",_windowRect,_windowStyleMask); +if(_minSize){ +objj_msgSend(_17,"setMinSize:",_minSize); +} +if(_maxSize){ +objj_msgSend(_17,"setMaxSize:",_maxSize); +} +objj_msgSend(_17,"setLevel:",CPFloatingWindowLevel); +objj_msgSend(_17,"setTitle:",_windowTitle); +objj_msgSend(_windowView,"setAutoresizesSubviews:",NO); +objj_msgSend(_17,"setContentView:",_windowView); +objj_msgSend(_windowView,"setAutoresizesSubviews:",YES); +if(objj_msgSend(_viewClass,"isKindOfClass:",objj_msgSend(CPToolbar,"class"))){ +objj_msgSend(_17,"setToolbar:",_viewClass); +} +objj_msgSend(_17,"setFullBridge:",_windowIsFullBridge); +return _17; +} +})]); +p;18;_CPHUDWindowView.jc;6989; +var _1=nil,_2=nil; +var _3=26; +var _4=objj_allocateClassPair(_CPWindowView,"_CPHUDWindowView"),_5=_4.isa; +class_addIvars(_4,[new objj_ivar("_toolbarView"),new objj_ivar("_titleField"),new objj_ivar("_closeButton")]); +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("contentRectForFrameRect:"),function(_6,_7,_8){ +with(_6){ +var _9=objj_msgSend(objj_msgSend(_6,"class"),"contentRectForFrameRect:",_8); +if(objj_msgSend(objj_msgSend(objj_msgSend(_6,"window"),"toolbar"),"isVisible")){ +toolbarHeight=CGRectGetHeight(objj_msgSend(objj_msgSend(_6,"toolbarView"),"frame")); +_9.origin.y+=toolbarHeight; +_9.size.height-=toolbarHeight; +} +return _9; +} +}),new objj_method(sel_getUid("frameRectForContentRect:"),function(_a,_b,_c){ +with(_a){ +var _d=objj_msgSend(objj_msgSend(_a,"class"),"frameRectForContentRect:",_c); +if(objj_msgSend(objj_msgSend(objj_msgSend(_a,"window"),"toolbar"),"isVisible")){ +toolbarHeight=CGRectGetHeight(objj_msgSend(objj_msgSend(_a,"toolbarView"),"frame")); +_d.origin.y-=toolbarHeight; +_d.size.height+=toolbarHeight; +} +return _d; +} +}),new objj_method(sel_getUid("initWithFrame:styleMask:"),function(_e,_f,_10,_11){ +with(_e){ +_e=objj_msgSendSuper({receiver:_e,super_class:objj_getClass("_CPWindowView")},"initWithFrame:styleMask:",_10,_11); +if(_e){ +var _12=objj_msgSend(_e,"bounds"); +objj_msgSend(_e,"setBackgroundColor:",_1); +_titleField=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_titleField,"setHitTests:",NO); +objj_msgSend(_titleField,"setFont:",objj_msgSend(CPFont,"systemFontOfSize:",11)); +objj_msgSend(_titleField,"setTextColor:",objj_msgSend(CPColor,"whiteColor")); +objj_msgSend(_titleField,"setTextShadowColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(_titleField,"setTextShadowOffset:",CGSizeMake(0,1)); +objj_msgSend(_titleField,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_titleField,"setLineBreakMode:",CPLineBreakByTruncatingTail); +objj_msgSend(_titleField,"setAlignment:",CPCenterTextAlignment); +objj_msgSend(_titleField,"setStringValue:","Untitled"); +objj_msgSend(_titleField,"sizeToFit"); +objj_msgSend(_titleField,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_titleField,"setStringValue:",""); +objj_msgSend(_titleField,"setFrame:",CGRectMake(20,3,CGRectGetWidth(objj_msgSend(_e,"bounds"))-40,CGRectGetHeight(objj_msgSend(_titleField,"frame")))); +objj_msgSend(_e,"addSubview:",_titleField); +if(_styleMask&CPClosableWindowMask){ +var _13=objj_msgSend(_CPHUDWindowViewCloseImage,"size"); +_closeButton=objj_msgSend(objj_msgSend(CPButton,"alloc"),"initWithFrame:",CGRectMake(4,4,_13.width,_13.height)); +objj_msgSend(_closeButton,"setBordered:",NO); +objj_msgSend(_closeButton,"setImage:",_CPHUDWindowViewCloseImage); +objj_msgSend(_closeButton,"setAlternateImage:",_CPHUDWindowViewCloseActiveImage); +objj_msgSend(_e,"addSubview:",_closeButton); +} +objj_msgSend(_e,"setResizeIndicatorOffset:",CGSizeMake(5,5)); +} +return _e; +} +}),new objj_method(sel_getUid("viewDidMoveToWindow"),function(_14,_15){ +with(_14){ +objj_msgSend(_closeButton,"setTarget:",objj_msgSend(_14,"window")); +objj_msgSend(_closeButton,"setAction:",sel_getUid("performClose:")); +} +}),new objj_method(sel_getUid("setTitle:"),function(_16,_17,_18){ +with(_16){ +objj_msgSend(_titleField,"setStringValue:",_18); +} +}),new objj_method(sel_getUid("toolbarView"),function(_19,_1a){ +with(_19){ +return _toolbarView; +} +}),new objj_method(sel_getUid("toolbarLabelColor"),function(_1b,_1c){ +with(_1b){ +return objj_msgSend(CPColor,"whiteColor"); +} +}),new objj_method(sel_getUid("toolbarLabelShadowColor"),function(_1d,_1e){ +with(_1d){ +return objj_msgSend(CPColor,"blackColor"); +} +}),new objj_method(sel_getUid("toolbarOffset"),function(_1f,_20){ +with(_1f){ +return CGSizeMake(0,_3); +} +}),new objj_method(sel_getUid("tile"),function(_21,_22){ +with(_21){ +objj_msgSendSuper({receiver:_21,super_class:objj_getClass("_CPWindowView")},"tile"); +var _23=objj_msgSend(_21,"window"),_24=objj_msgSend(_21,"bounds"),_25=CGRectGetWidth(_24); +objj_msgSend(_titleField,"setFrame:",CGRectMake(20,3,_25-40,CGRectGetHeight(objj_msgSend(_titleField,"frame")))); +var _26=objj_msgSend(_21,"toolbarMaxY"); +objj_msgSend(objj_msgSend(_23,"contentView"),"setFrameOrigin:",CGPointMake(0,_26,_25,CGRectGetHeight(_24)-_26)); +} +})]); +class_addMethods(_5,[new objj_method(sel_getUid("initialize"),function(_27,_28){ +with(_27){ +if(_27!=objj_msgSend(_CPHUDWindowView,"class")){ +return; +} +var _29=objj_msgSend(CPBundle,"bundleForClass:",_27); +_1=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_29,"pathForResource:","CPWindow/HUD/CPWindowHUDBackground0.png"),CPSizeMake(6,78)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_29,"pathForResource:","CPWindow/HUD/CPWindowHUDBackground1.png"),CPSizeMake(1,78)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_29,"pathForResource:","CPWindow/HUD/CPWindowHUDBackground2.png"),CPSizeMake(6,78)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_29,"pathForResource:","CPWindow/HUD/CPWindowHUDBackground3.png"),CPSizeMake(6,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_29,"pathForResource:","CPWindow/HUD/CPWindowHUDBackground4.png"),CPSizeMake(1,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_29,"pathForResource:","CPWindow/HUD/CPWindowHUDBackground5.png"),CPSizeMake(6,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_29,"pathForResource:","CPWindow/HUD/CPWindowHUDBackground6.png"),CPSizeMake(6,6)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_29,"pathForResource:","CPWindow/HUD/CPWindowHUDBackground7.png"),CPSizeMake(6,6)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_29,"pathForResource:","CPWindow/HUD/CPWindowHUDBackground8.png"),CPSizeMake(6,6))])); +_CPHUDWindowViewCloseImage=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_29,"pathForResource:","HUDTheme/WindowClose.png"),CPSizeMake(20,20)); +_CPHUDWindowViewCloseActiveImage=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_29,"pathForResource:","HUDTheme/WindowCloseActive.png"),CPSizeMake(20,20)); +} +}),new objj_method(sel_getUid("contentRectForFrameRect:"),function(_2a,_2b,_2c){ +with(_2a){ +var _2d=CGRectMakeCopy(_2c),_2e=_3; +_2d.origin.y+=_2e; +_2d.size.height-=_2e; +return _2d; +} +}),new objj_method(sel_getUid("frameRectForContentRect:"),function(_2f,_30,_31){ +with(_2f){ +var _32=CGRectMakeCopy(_31),_33=_3; +_32.origin.y-=_33; +_32.size.height+=_33; +return _32; +} +})]); +p;21;_CPImageAndTextView.jI;21;Foundation/CPString.ji;9;CPColor.ji;8;CPFont.ji;9;CPImage.ji;13;CPTextField.ji;8;CPView.jc;12437; +CPTopVerticalTextAlignment=1,CPCenterVerticalTextAlignment=2,CPBottomVerticalTextAlignment=3; +var _1=1<<0,_2=1<<1,_3=1<<2,_4=1<<3,_5=1<<4,_6=1<<5,_7=1<<6,_8=1<<7,_9=1<<8,_a=1<<9,_b=1<<10; +var _c=3,_d=5; +var _e=objj_allocateClassPair(CPView,"_CPImageAndTextView"),_f=_e.isa; +class_addIvars(_e,[new objj_ivar("_alignment"),new objj_ivar("_verticalAlignment"),new objj_ivar("_lineBreakMode"),new objj_ivar("_textColor"),new objj_ivar("_font"),new objj_ivar("_textShadowColor"),new objj_ivar("_textShadowOffset"),new objj_ivar("_imagePosition"),new objj_ivar("_imageScaling"),new objj_ivar("_image"),new objj_ivar("_text"),new objj_ivar("_textSize"),new objj_ivar("_flags"),new objj_ivar("_DOMImageElement"),new objj_ivar("_DOMTextElement"),new objj_ivar("_DOMTextShadowElement")]); +objj_registerClassPair(_e); +objj_addClassForBundle(_e,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_e,[new objj_method(sel_getUid("initWithFrame:control:"),function(_10,_11,_12,_13){ +with(_10){ +_10=objj_msgSendSuper({receiver:_10,super_class:objj_getClass("CPView")},"initWithFrame:",_12); +if(_10){ +_textShadowOffset={width:0,height:0}; +objj_msgSend(_10,"setVerticalAlignment:",CPTopVerticalTextAlignment); +if(_13){ +objj_msgSend(_10,"setLineBreakMode:",objj_msgSend(_13,"lineBreakMode")); +objj_msgSend(_10,"setTextColor:",objj_msgSend(_13,"textColor")); +objj_msgSend(_10,"setAlignment:",objj_msgSend(_13,"alignment")); +objj_msgSend(_10,"setVerticalAlignment:",objj_msgSend(_13,"verticalAlignment")); +objj_msgSend(_10,"setFont:",objj_msgSend(_13,"font")); +objj_msgSend(_10,"setImagePosition:",objj_msgSend(_13,"imagePosition")); +objj_msgSend(_10,"setImageScaling:",objj_msgSend(_13,"imageScaling")); +}else{ +objj_msgSend(_10,"setLineBreakMode:",CPLineBreakByClipping); +objj_msgSend(_10,"setAlignment:",CPCenterTextAlignment); +objj_msgSend(_10,"setFont:",objj_msgSend(CPFont,"systemFontOfSize:",12)); +objj_msgSend(_10,"setImagePosition:",CPNoImage); +objj_msgSend(_10,"setImageScaling:",CPScaleNone); +} +_textSize=NULL; +} +return _10; +} +}),new objj_method(sel_getUid("initWithFrame:"),function(_14,_15,_16){ +with(_14){ +return objj_msgSend(_14,"initWithFrame:control:",_16,nil); +} +}),new objj_method(sel_getUid("setAlignment:"),function(_17,_18,_19){ +with(_17){ +if(_alignment===_19){ +return; +} +_alignment=_19; +switch(_alignment){ +case CPLeftTextAlignment: +_DOMElement.style.textAlign="left"; +break; +case CPRightTextAlignment: +_DOMElement.style.textAlign="right"; +break; +case CPCenterTextAlignment: +_DOMElement.style.textAlign="center"; +break; +case CPJustifiedTextAlignment: +_DOMElement.style.textAlign="justify"; +break; +case CPNaturalTextAlignment: +_DOMElement.style.textAlign=""; +break; +} +} +}),new objj_method(sel_getUid("alignment"),function(_1a,_1b){ +with(_1a){ +return _alignment; +} +}),new objj_method(sel_getUid("setVerticalAlignment:"),function(_1c,_1d,_1e){ +with(_1c){ +if(_verticalAlignment===_1e){ +return; +} +_verticalAlignment=_1e; +_flags|=_5; +objj_msgSend(_1c,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("verticalAlignment"),function(_1f,_20){ +with(_1f){ +return _verticalAlignment; +} +}),new objj_method(sel_getUid("setLineBreakMode:"),function(_21,_22,_23){ +with(_21){ +if(_lineBreakMode===_23){ +return; +} +_lineBreakMode=_23; +_flags|=_6; +objj_msgSend(_21,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("lineBreakMode"),function(_24,_25){ +with(_24){ +return _lineBreakMode; +} +}),new objj_method(sel_getUid("setImagePosition:"),function(_26,_27,_28){ +with(_26){ +if(_imagePosition==_28){ +return; +} +_imagePosition=_28; +_flags|=_a; +objj_msgSend(_26,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("imagePosition"),function(_29,_2a){ +with(_29){ +return _imagePosition; +} +}),new objj_method(sel_getUid("setImageScaling:"),function(_2b,_2c,_2d){ +with(_2b){ +if(_imageScaling==_2d){ +return; +} +_imageScaling=_2d; +_flags|=_b; +objj_msgSend(_2b,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("imageScaling"),function(_2e,_2f){ +with(_2e){ +return _imageScaling; +} +}),new objj_method(sel_getUid("setTextColor:"),function(_30,_31,_32){ +with(_30){ +if(_textColor===_32){ +return; +} +_textColor=_32; +_DOMElement.style.color=objj_msgSend(_textColor,"cssString"); +} +}),new objj_method(sel_getUid("textColor"),function(_33,_34){ +with(_33){ +return _textColor; +} +}),new objj_method(sel_getUid("setFont:"),function(_35,_36,_37){ +with(_35){ +if(_font===_37){ +return; +} +_font=_37; +_flags|=_8; +_textSize=NULL; +objj_msgSend(_35,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("font"),function(_38,_39){ +with(_38){ +return _font; +} +}),new objj_method(sel_getUid("setTextShadowColor:"),function(_3a,_3b,_3c){ +with(_3a){ +if(_textShadowColor===_3c){ +return; +} +_textShadowColor=_3c; +_flags|=_9; +objj_msgSend(_3a,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("textShadowColor"),function(_3d,_3e){ +with(_3d){ +return _textShadowColor; +} +}),new objj_method(sel_getUid("setTextShadowOffset:"),function(_3f,_40,_41){ +with(_3f){ +if((_textShadowOffset.width==_41.width&&_textShadowOffset.height==_41.height)){ +return; +} +_textShadowOffset={width:_41.width,height:_41.height}; +objj_msgSend(_3f,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("textShadowOffset"),function(_42,_43){ +with(_42){ +return _textShadowOffset; +} +}),new objj_method(sel_getUid("setImage:"),function(_44,_45,_46){ +with(_44){ +if(_image==_46){ +return; +} +_image=_46; +_flags|=_2; +objj_msgSend(_44,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("image"),function(_47,_48){ +with(_47){ +return _image; +} +}),new objj_method(sel_getUid("setText:"),function(_49,_4a,_4b){ +with(_49){ +if(_text===_4b){ +return; +} +_text=_4b; +_flags|=_3; +_textSize=NULL; +objj_msgSend(_49,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("text"),function(_4c,_4d){ +with(_4c){ +return _text; +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_4e,_4f){ +with(_4e){ +var _50=_imagePosition!==CPImageOnly&&(objj_msgSend(_text,"length")>0),_51=!!_DOMTextElement; +if(_50!==_51){ +if(_51){ +_DOMElement.removeChild(_DOMTextElement); +_DOMTextElement=NULL; +_51=NO; +}else{ +_DOMTextElement=document.createElement("div"); +var _52=_DOMTextElement.style; +_52.position="absolute"; +_52.whiteSpace="pre"; +_52.cursor="default"; +_52.zIndex=200; +_52.overflow="hidden"; +_DOMElement.appendChild(_DOMTextElement); +_51=YES; +_flags|=_3|_8|_6; +} +} +var _52=_51?_DOMTextElement.style:nil; +var _53=_51&&!!_textShadowColor,_54=!!_DOMTextShadowElement; +if(_53!==_54){ +if(_54){ +_DOMElement.removeChild(_DOMTextShadowElement); +_DOMTextShadowElement=NULL; +_54=NO; +}else{ +_DOMTextShadowElement=document.createElement("div"); +var _55=_DOMTextShadowElement.style; +_55.font=objj_msgSend(_font?_font:objj_msgSend(CPFont,"systemFontOfSize:",12),"cssString"); +_55.position="absolute"; +_55.whiteSpace=_52.whiteSpace; +_55.cursor="default"; +_55.zIndex=150; +_55.textOverflow=_52.textOverflow; +if(document.attachEvent){ +_55.overflow=_52.overflow; +_55.wordWrap=_52.wordWrap; +}else{ +_55.overflowX=_52.overflowX; +_55.overflowY=_52.overflowY; +} +_DOMElement.appendChild(_DOMTextShadowElement); +_54=YES; +_flags|=_3; +} +} +var _55=_54?_DOMTextShadowElement.style:nil; +if(_51){ +if(_flags&_3){ +if(CPFeatureIsCompatible(CPJavascriptInnerTextFeature)){ +_DOMTextElement.innerText=_text; +if(_DOMTextShadowElement){ +_DOMTextShadowElement.innerText=_text; +} +}else{ +if(CPFeatureIsCompatible(CPJavascriptTextContentFeature)){ +_DOMTextElement.textContent=_text; +if(_DOMTextShadowElement){ +_DOMTextShadowElement.textContent=_text; +} +} +} +} +if(_flags&_8){ +var _56=objj_msgSend(_font?_font:objj_msgSend(CPFont,"systemFontOfSize:",12),"cssString"); +_52.font=_56; +if(_55){ +_55.font=_56; +} +} +if(_flags&_6){ +switch(_lineBreakMode){ +case CPLineBreakByClipping: +_52.overflow="hidden"; +_52.textOverflow="clip"; +_52.whiteSpace="pre"; +if(document.attachEvent){ +_52.wordWrap="normal"; +} +break; +case CPLineBreakByTruncatingHead: +case CPLineBreakByTruncatingMiddle: +case CPLineBreakByTruncatingTail: +_52.textOverflow="ellipsis"; +_52.whiteSpace="nowrap"; +_52.overflow="hidden"; +if(document.attachEvent){ +_52.wordWrap="normal"; +} +break; +case CPLineBreakByCharWrapping: +case CPLineBreakByWordWrapping: +if(document.attachEvent){ +_52.whiteSpace="pre"; +_52.wordWrap="break-word"; +}else{ +_52.whiteSpace="-o-pre-wrap"; +_52.whiteSpace="-pre-wrap"; +_52.whiteSpace="-moz-pre-wrap"; +_52.whiteSpace="pre-wrap"; +} +_52.overflow="hidden"; +_52.textOverflow="clip"; +break; +} +if(_55){ +if(document.attachEvent){ +_55.wordWrap=_52.wordWrap; +_55.overflow=_52.overflow; +}else{ +_55.overflowX=_52.overflowX; +_55.overflowY=_52.overflowY; +} +_55.whiteSpace=_52.whiteSpace; +_55.textOverflow=_52.textOverflow; +} +} +} +var _57=_image!==nil&&_imagePosition!==CPNoImage,_58=!!_DOMImageElement; +if(_57!==_58){ +if(_58){ +_DOMElement.removeChild(_DOMImageElement); +_DOMImageElement=NULL; +_58=NO; +}else{ +_DOMImageElement=document.createElement("img"); +var _59=_DOMImageElement.style; +_59.top="0px"; +_59.left="0px"; +_59.position="absolute"; +_59.zIndex=100; +_DOMElement.appendChild(_DOMImageElement); +_58=YES; +} +} +var _5a=objj_msgSend(_4e,"bounds").size,_5b={origin:{x:0,y:0},size:{width:_5a.width,height:_5a.height}}; +if(_58){ +if(!_59){ +var _59=_DOMImageElement.style; +} +if(_flags&_2){ +_DOMImageElement.src=objj_msgSend(_image,"filename"); +} +var _5c=_5a.width/2,_5d=_5a.height/2,_5e=objj_msgSend(_image,"size"),_5f=_5e.width,_60=_5e.height; +if(_imageScaling===CPScaleToFit){ +_5f=_5a.width; +_60=_5a.height; +}else{ +if(_imageScaling===CPScaleProportionally){ +var _61=MIN(MIN(_5a.width,_5f)/_5f,MIN(_5a.height,_60)/_60); +_5f*=_61; +_60*=_61; +} +} +_DOMImageElement.width=_5f; +_DOMImageElement.height=_60; +_59.width=_5f+"px"; +_59.height=_60+"px"; +if(_imagePosition===CPImageBelow){ +_59.left=FLOOR(_5c-_5f/2)+"px"; +_59.top=FLOOR(_5a.height-_60)+"px"; +_5b.size.height=_5a.height-_60-_d; +}else{ +if(_imagePosition===CPImageAbove){ +if(!_DOMImageElement.CPDOMDisplayContext){ +_DOMImageElement.CPDOMDisplayContext=[]; +} +var _62=_DOMImageElement.CPDOMDisplayContext[0]; +if(!(_62>=0)){ +_62=_DOMImageElement.CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_62]=0; +CPDOMDisplayServerInstructions[_62+1]=_DOMImageElement; +CPDOMDisplayServerInstructions[_62+2]=NULL; +CPDOMDisplayServerInstructions[_62+3]=FLOOR(_5c-_5f/2); +CPDOMDisplayServerInstructions[_62+4]=0; +_5b.origin.y+=_60+_d; +_5b.size.height=_5a.height-_60-_d; +}else{ +if(_imagePosition===CPImageLeft){ +_59.top=FLOOR(_5d-_60/2)+"px"; +_59.left="0px"; +_5b.origin.x=_5f+_c; +_5b.size.width-=_5f+_c; +}else{ +if(_imagePosition===CPImageRight){ +_59.top=FLOOR(_5d-_60/2)+"px"; +_59.left=FLOOR(_5a.width-_5f)+"px"; +_5b.size.width-=_5f+_c; +}else{ +if(_imagePosition===CPImageOnly){ +_59.top=FLOOR(_5d-_60/2)+"px"; +_59.left=FLOOR(_5c-_5f/2)+"px"; +} +} +} +} +} +} +if(_51){ +var _63=(_5b.origin.x),_64=(_5b.origin.y),_65=(_5b.size.width),_66=(_5b.size.height); +if(_verticalAlignment!==CPTopVerticalTextAlignment){ +if(!_textSize){ +if(_lineBreakMode===CPLineBreakByCharWrapping||_lineBreakMode===CPLineBreakByWordWrapping){ +_textSize=objj_msgSend(_text,"sizeWithFont:inWidth:",_font,_65); +}else{ +_textSize=objj_msgSend(_text,"sizeWithFont:",_font); +} +} +if(_verticalAlignment===CPCenterVerticalTextAlignment){ +_64=_64+(_66-_textSize.height)/2; +_66=_textSize.height; +}else{ +_64=_64+_66-_textSize.height; +_66=_textSize.height; +} +} +_52.top=ROUND(_64)+"px"; +_52.left=ROUND(_63)+"px"; +_52.width=ROUND(_65)+"px"; +_52.height=ROUND(_66)+"px"; +if(_55){ +if(_flags&_9){ +_55.color=objj_msgSend(_textShadowColor,"cssString"); +} +_55.top=ROUND(_64+_textShadowOffset.height)+"px"; +_55.left=ROUND(_63+_textShadowOffset.width)+"px"; +_55.width=ROUND(_65)+"px"; +_55.height=ROUND(_66)+"px"; +} +} +_flags=0; +} +}),new objj_method(sel_getUid("sizeToFit"),function(_67,_68){ +with(_67){ +var _69=CGSizeMakeZero(); +if((_imagePosition!==CPNoImage)&&_image){ +var _6a=objj_msgSend(_image,"size"); +_69.width+=_6a.width; +_69.height+=_6a.height; +} +if((_imagePosition!==CPImageOnly)&&objj_msgSend(_text,"length")>0){ +if(!_textSize){ +_textSize=objj_msgSend(_text,"sizeWithFont:",_font?_font:objj_msgSend(CPFont,"systemFontOfSize:",12)); +} +if(_imagePosition===CPImageLeft||_imagePosition===CPImageRight){ +_69.width+=_textSize.width+_c; +_69.height=MAX(_69.height,_textSize.height); +}else{ +if(_imagePosition===CPImageAbove||_imagePosition===CPImageBelow){ +_69.width=MAX(_69.width,_textSize.width); +_69.height+=_textSize.height+_d; +}else{ +_69.width=MAX(_69.width,_textSize.width); +_69.height=MAX(_69.height,_textSize.height); +} +} +} +objj_msgSend(_67,"setFrameSize:",_69); +} +})]); +p;23;_CPStandardWindowView.ji;15;_CPWindowView.jc;9845; +var _1=41; +var _2=nil,_3=nil; +var _4=objj_allocateClassPair(CPView,"_CPTexturedWindowHeadView"),_5=_4.isa; +class_addIvars(_4,[new objj_ivar("_gradientView"),new objj_ivar("_solidView"),new objj_ivar("_dividerView")]); +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("initWithFrame:"),function(_6,_7,_8){ +with(_6){ +_6=objj_msgSendSuper({receiver:_6,super_class:objj_getClass("CPView")},"initWithFrame:",_8); +if(_6){ +var _9=objj_msgSend(_6,"class"),_a=objj_msgSend(_6,"bounds"); +_gradientView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,0,CGRectGetWidth(_a),_1)); +objj_msgSend(_gradientView,"setBackgroundColor:",objj_msgSend(_9,"gradientColor")); +objj_msgSend(_6,"addSubview:",_gradientView); +_solidView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,_1,CGRectGetWidth(_a),CGRectGetHeight(_a)-_1)); +objj_msgSend(_solidView,"setBackgroundColor:",objj_msgSend(_9,"solidColor")); +objj_msgSend(_6,"addSubview:",_solidView); +} +return _6; +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_b,_c,_d){ +with(_b){ +var _e=objj_msgSend(_b,"bounds"); +objj_msgSend(_gradientView,"setFrameSize:",CGSizeMake(CGRectGetWidth(_e),_1)); +objj_msgSend(_solidView,"setFrameSize:",CGSizeMake(CGRectGetWidth(_e),CGRectGetHeight(_e)-_1)); +} +})]); +class_addMethods(_5,[new objj_method(sel_getUid("gradientColor"),function(_f,_10){ +with(_f){ +if(!_2){ +var _11=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_CPWindowView,"class")); +_2=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPThreePartImage,"alloc"),"initWithImageSlices:isVertical:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_11,"pathForResource:","CPWindow/Standard/CPWindowStandardTop0.png"),CGSizeMake(6,41)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_11,"pathForResource:","CPWindow/Standard/CPWindowStandardTop1.png"),CGSizeMake(1,41)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_11,"pathForResource:","CPWindow/Standard/CPWindowStandardTop2.png"),CGSizeMake(6,41))],NO)); +} +return _2; +} +}),new objj_method(sel_getUid("solidColor"),function(_12,_13){ +with(_12){ +if(!_3){ +_3=objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",195/255,195/255,195/255,1); +} +return _3; +} +})]); +var _14=nil,_15=nil,_16=nil,_17=nil,_18=nil; +var _19=41; +STANDARD_TITLEBAR_HEIGHT=25; +var _4=objj_allocateClassPair(_CPWindowView,"_CPStandardWindowView"),_5=_4.isa; +class_addIvars(_4,[new objj_ivar("_headView"),new objj_ivar("_dividerView"),new objj_ivar("_bodyView"),new objj_ivar("_toolbarView"),new objj_ivar("_titleField"),new objj_ivar("_closeButton")]); +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("contentRectForFrameRect:"),function(_1a,_1b,_1c){ +with(_1a){ +var _1d=objj_msgSend(objj_msgSend(_1a,"class"),"contentRectForFrameRect:",_1c),_1e=objj_msgSend(objj_msgSend(_1a,"window"),"toolbar"); +if(objj_msgSend(_1e,"isVisible")){ +toolbarHeight=CGRectGetHeight(objj_msgSend(objj_msgSend(_1e,"_toolbarView"),"frame")); +_1d.origin.y+=toolbarHeight; +_1d.size.height-=toolbarHeight; +} +return _1d; +} +}),new objj_method(sel_getUid("frameRectForContentRect:"),function(_1f,_20,_21){ +with(_1f){ +var _22=objj_msgSend(objj_msgSend(_1f,"class"),"frameRectForContentRect:",_21),_23=objj_msgSend(objj_msgSend(_1f,"window"),"toolbar"); +if(objj_msgSend(_23,"isVisible")){ +toolbarHeight=CGRectGetHeight(objj_msgSend(objj_msgSend(_23,"_toolbarView"),"frame")); +_22.origin.y-=toolbarHeight; +_22.size.height+=toolbarHeight; +} +return _22; +} +}),new objj_method(sel_getUid("initWithFrame:styleMask:"),function(_24,_25,_26,_27){ +with(_24){ +_24=objj_msgSendSuper({receiver:_24,super_class:objj_getClass("_CPWindowView")},"initWithFrame:styleMask:",_26,_27); +if(_24){ +var _28=objj_msgSend(_24,"class"),_29=objj_msgSend(_24,"bounds"); +_headView=objj_msgSend(objj_msgSend(_CPTexturedWindowHeadView,"alloc"),"initWithFrame:",CGRectMake(0,0,CGRectGetWidth(_29),objj_msgSend(objj_msgSend(_24,"class"),"titleBarHeight"))); +objj_msgSend(_headView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_headView,"setHitTests:",NO); +objj_msgSend(_24,"addSubview:",_headView); +_dividerView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,CGRectGetMaxY(objj_msgSend(_headView,"frame")),CGRectGetWidth(_29),1)); +objj_msgSend(_dividerView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_dividerView,"setBackgroundColor:",objj_msgSend(_28,"dividerBackgroundColor")); +objj_msgSend(_dividerView,"setHitTests:",NO); +objj_msgSend(_24,"addSubview:",_dividerView); +var y=CGRectGetMaxY(objj_msgSend(_dividerView,"frame")); +_bodyView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,y,CGRectGetWidth(_29),CGRectGetHeight(_29)-y)); +objj_msgSend(_bodyView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +objj_msgSend(_bodyView,"setBackgroundColor:",objj_msgSend(_28,"bodyBackgroundColor")); +objj_msgSend(_bodyView,"setHitTests:",NO); +objj_msgSend(_24,"addSubview:",_bodyView); +objj_msgSend(_24,"setResizeIndicatorOffset:",CGSizeMake(2,2)); +_titleField=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_titleField,"setFont:",objj_msgSend(CPFont,"boldSystemFontOfSize:",12)); +objj_msgSend(_titleField,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_titleField,"setLineBreakMode:",CPLineBreakByTruncatingTail); +objj_msgSend(_titleField,"setAlignment:",CPCenterTextAlignment); +objj_msgSend(_titleField,"setTextShadowColor:",objj_msgSend(CPColor,"whiteColor")); +objj_msgSend(_titleField,"setTextShadowOffset:",CGSizeMake(0,1)); +objj_msgSend(_titleField,"setStringValue:","Untitled"); +objj_msgSend(_titleField,"sizeToFit"); +objj_msgSend(_titleField,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_titleField,"setStringValue:",""); +objj_msgSend(_24,"addSubview:",_titleField); +if(_styleMask&CPClosableWindowMask){ +if(!_17){ +var _2b=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPWindow,"class")); +_17=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_2b,"pathForResource:","CPWindow/Standard/CPWindowStandardCloseButton.png"),CGSizeMake(16,16)); +_18=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_2b,"pathForResource:","CPWindow/Standard/CPWindowStandardCloseButtonHighlighted.png"),CGSizeMake(16,16)); +} +_closeButton=objj_msgSend(objj_msgSend(CPButton,"alloc"),"initWithFrame:",CGRectMake(8,7,16,16)); +objj_msgSend(_closeButton,"setBordered:",NO); +objj_msgSend(_closeButton,"setImage:",_17); +objj_msgSend(_closeButton,"setAlternateImage:",_18); +objj_msgSend(_24,"addSubview:",_closeButton); +} +objj_msgSend(_24,"tile"); +} +return _24; +} +}),new objj_method(sel_getUid("viewDidMoveToWindow"),function(_2c,_2d){ +with(_2c){ +objj_msgSend(_closeButton,"setTarget:",objj_msgSend(_2c,"window")); +objj_msgSend(_closeButton,"setAction:",sel_getUid("performClose:")); +} +}),new objj_method(sel_getUid("toolbarOffset"),function(_2e,_2f){ +with(_2e){ +return CGSizeMake(0,objj_msgSend(objj_msgSend(_2e,"class"),"titleBarHeight")); +} +}),new objj_method(sel_getUid("tile"),function(_30,_31){ +with(_30){ +objj_msgSendSuper({receiver:_30,super_class:objj_getClass("_CPWindowView")},"tile"); +var _32=objj_msgSend(_30,"window"),_33=objj_msgSend(_30,"bounds"),_34=CGRectGetWidth(_33); +objj_msgSend(_headView,"setFrameSize:",CGSizeMake(_34,objj_msgSend(_30,"toolbarMaxY"))); +objj_msgSend(_dividerView,"setFrame:",CGRectMake(0,CGRectGetMaxY(objj_msgSend(_headView,"frame")),_34,1)); +var _35=CGRectGetMaxY(objj_msgSend(_dividerView,"frame")); +objj_msgSend(_bodyView,"setFrame:",CGRectMake(0,_35,_34,CGRectGetHeight(_33)-_35)); +objj_msgSend(_titleField,"setFrame:",CGRectMake(10,3,_34-20,CGRectGetHeight(objj_msgSend(_titleField,"frame")))); +objj_msgSend(objj_msgSend(_32,"contentView"),"setFrameOrigin:",CGPointMake(0,CGRectGetMaxY(objj_msgSend(_dividerView,"frame")))); +} +}),new objj_method(sel_getUid("setTitle:"),function(_36,_37,_38){ +with(_36){ +objj_msgSend(_titleField,"setStringValue:",_38); +} +}),new objj_method(sel_getUid("mouseDown:"),function(_39,_3a,_3b){ +with(_39){ +if(CGRectContainsPoint(objj_msgSend(_headView,"frame"),objj_msgSend(_39,"convertPoint:fromView:",objj_msgSend(_3b,"locationInWindow"),nil))){ +return objj_msgSend(_39,"trackMoveWithEvent:",_3b); +} +objj_msgSendSuper({receiver:_39,super_class:objj_getClass("_CPWindowView")},"mouseDown:",_3b); +} +})]); +class_addMethods(_5,[new objj_method(sel_getUid("bodyBackgroundColor"),function(_3c,_3d){ +with(_3c){ +if(!_14){ +_14=objj_msgSend(CPColor,"colorWithWhite:alpha:",0.96,1); +} +return _14; +} +}),new objj_method(sel_getUid("dividerBackgroundColor"),function(_3e,_3f){ +with(_3e){ +if(!_15){ +_15=objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",125/255,125/255,125/255,1); +} +return _15; +} +}),new objj_method(sel_getUid("titleColor"),function(_40,_41){ +with(_40){ +if(!_16){ +_16=objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",44/255,44/255,44/255,1); +} +return _16; +} +}),new objj_method(sel_getUid("contentRectForFrameRect:"),function(_42,_43,_44){ +with(_42){ +var _45=CGRectMakeCopy(_44),_46=objj_msgSend(_42,"titleBarHeight")+1; +_45.origin.y+=_46; +_45.size.height-=_46; +return _45; +} +}),new objj_method(sel_getUid("frameRectForContentRect:"),function(_47,_48,_49){ +with(_47){ +var _4a=CGRectMakeCopy(_49),_4b=objj_msgSend(_47,"titleBarHeight")+1; +_4a.origin.y-=_4b; +_4a.size.height+=_4b; +return _4a; +} +}),new objj_method(sel_getUid("titleBarHeight"),function(_4c,_4d){ +with(_4c){ +return STANDARD_TITLEBAR_HEIGHT; +} +})]); +p;15;_CPWindowView.ji;8;CPView.ji;13;CPImageView.jc;9039; +var _1=nil; +var _2=objj_allocateClassPair(CPView,"_CPWindowView"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_styleMask"),new objj_ivar("_resizeIndicator"),new objj_ivar("_resizeIndicatorOffset"),new objj_ivar("_toolbarView"),new objj_ivar("_resizeFrame"),new objj_ivar("_mouseDraggedPoint"),new objj_ivar("_cachedScreenFrame")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("contentRectForFrameRect:"),function(_4,_5,_6){ +with(_4){ +return objj_msgSend(objj_msgSend(_4,"class"),"contentRectForFrameRect:",_6); +} +}),new objj_method(sel_getUid("frameRectForContentRect:"),function(_7,_8,_9){ +with(_7){ +return objj_msgSend(objj_msgSend(_7,"class"),"frameRectForContentRect:",_9); +} +}),new objj_method(sel_getUid("initWithFrame:styleMask:"),function(_a,_b,_c,_d){ +with(_a){ +_a=objj_msgSendSuper({receiver:_a,super_class:objj_getClass("CPView")},"initWithFrame:",_c); +if(_a){ +_styleMask=_d; +_resizeIndicatorOffset=CGSizeMake(0,0); +_toolbarOffset=CGSizeMake(0,0); +objj_msgSend(_a,"setShowsResizeIndicator:",!(_styleMask&CPBorderlessBridgeWindowMask)&&(_styleMask&CPResizableWindowMask)); +} +return _a; +} +}),new objj_method(sel_getUid("setTitle:"),function(_e,_f,_10){ +with(_e){ +} +}),new objj_method(sel_getUid("acceptsFirstMouse:"),function(_11,_12,_13){ +with(_11){ +return YES; +} +}),new objj_method(sel_getUid("mouseDown:"),function(_14,_15,_16){ +with(_14){ +var _17=objj_msgSend(_14,"window"); +if((_styleMask&CPResizableWindowMask)&&_resizeIndicator){ +var _18=objj_msgSend(_resizeIndicator,"frame"); +if(CGRectContainsPoint(_18,objj_msgSend(_14,"convertPoint:fromView:",objj_msgSend(_16,"locationInWindow"),nil))){ +return objj_msgSend(_14,"trackResizeWithEvent:",_16); +} +} +if(objj_msgSend(_17,"isMovableByWindowBackground")){ +objj_msgSend(_14,"trackMoveWithEvent:",_16); +}else{ +objj_msgSendSuper({receiver:_14,super_class:objj_getClass("CPView")},"mouseDown:",_16); +} +} +}),new objj_method(sel_getUid("trackResizeWithEvent:"),function(_19,_1a,_1b){ +with(_19){ +var _1c=objj_msgSend(_1b,"locationInWindow"),_1d=objj_msgSend(_1b,"type"); +if(_1d===CPLeftMouseUp){ +return; +} +var _1e=objj_msgSend(_19,"window"); +if(_1d===CPLeftMouseDown){ +var _1f=objj_msgSend(_1e,"frame"); +_resizeFrame=CGRectMake(_1c.x,_1c.y,CGRectGetWidth(_1f),CGRectGetHeight(_1f)); +}else{ +if(_1d===CPLeftMouseDragged){ +objj_msgSend(_1e,"setFrameSize:",CGSizeMake(CGRectGetWidth(_resizeFrame)+_1c.x-CGRectGetMinX(_resizeFrame),CGRectGetHeight(_resizeFrame)+_1c.y-CGRectGetMinY(_resizeFrame))); +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_19,sel_getUid("trackResizeWithEvent:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +}),new objj_method(sel_getUid("_pointWithinScreenFrame:"),function(_20,_21,_22){ +with(_20){ +var _23=_cachedScreenFrame; +if(!_23){ +_23=objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"visibleFrame"); +} +var _24=CGPointMake(0,0); +_24.x=MIN(MAX(_22.x,-_frame.size.width+4),CGRectGetMaxX(_23)-4); +_24.y=MIN(MAX(_22.y,0),CGRectGetMaxY(_23)-8); +return _24; +} +}),new objj_method(sel_getUid("trackMoveWithEvent:"),function(_25,_26,_27){ +with(_25){ +var _28=objj_msgSend(_27,"type"); +if(_28===CPLeftMouseUp){ +_cachedScreenFrame=nil; +return; +}else{ +if(_28===CPLeftMouseDown){ +_mouseDraggedPoint=objj_msgSend(objj_msgSend(_25,"window"),"convertBaseToBridge:",objj_msgSend(_27,"locationInWindow")); +_cachedScreenFrame=objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"visibleFrame"); +}else{ +if(_28===CPLeftMouseDragged){ +var _29=objj_msgSend(_25,"window"),_2a=objj_msgSend(_29,"frame"),_2b=objj_msgSend(_29,"convertBaseToBridge:",objj_msgSend(_27,"locationInWindow")),_2c=objj_msgSend(_25,"_pointWithinScreenFrame:",CGPointMake((_2a.origin.x)+(_2b.x-_mouseDraggedPoint.x),(_2a.origin.y)+(_2b.y-_mouseDraggedPoint.y))); +objj_msgSend(_29,"setFrameOrigin:",_2c); +_mouseDraggedPoint=objj_msgSend(_25,"_pointWithinScreenFrame:",_2b); +} +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_25,sel_getUid("trackMoveWithEvent:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +}),new objj_method(sel_getUid("setShowsResizeIndicator:"),function(_2d,_2e,_2f){ +with(_2d){ +if(_2f){ +var _30=objj_msgSend(_1,"size"),_31=objj_msgSend(_2d,"frame").size; +_resizeIndicator=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CGRectMake(_31.width-_30.width-_resizeIndicatorOffset.width,_31.height-_30.height-_resizeIndicatorOffset.height,_30.width,_30.height)); +objj_msgSend(_resizeIndicator,"setImage:",_1); +objj_msgSend(_resizeIndicator,"setAutoresizingMask:",CPViewMinXMargin|CPViewMinYMargin); +objj_msgSend(_2d,"addSubview:",_resizeIndicator); +}else{ +objj_msgSend(_resizeIndicator,"removeFromSuperview"); +_resizeIndicator=nil; +} +} +}),new objj_method(sel_getUid("showsResizeIndicator"),function(_32,_33){ +with(_32){ +return _resizeIndicator!==nil; +} +}),new objj_method(sel_getUid("setResizeIndicatorOffset:"),function(_34,_35,_36){ +with(_34){ +if(CGSizeEqualToSize(_resizeIndicatorOffset,_36)){ +return; +} +_resizeIndicatorOffset=_36; +if(!_resizeIndicator){ +return; +} +var _37=objj_msgSend(_resizeIndicator,"frame").size,_38=objj_msgSend(_34,"frame").size; +objj_msgSend(_resizeIndicator,"setFrameOrigin:",CGPointMake(_38.width-_37.width-_36.width,_38.height-_37.height-_36.height)); +} +}),new objj_method(sel_getUid("resizeIndicatorOffset"),function(_39,_3a){ +with(_39){ +return _resizeIndicatorOffset; +} +}),new objj_method(sel_getUid("windowDidChangeDocumentEdited"),function(_3b,_3c){ +with(_3b){ +} +}),new objj_method(sel_getUid("windowDidChangeDocumentSaving"),function(_3d,_3e){ +with(_3d){ +} +}),new objj_method(sel_getUid("showsToolbar"),function(_3f,_40){ +with(_3f){ +return YES; +} +}),new objj_method(sel_getUid("toolbarOffset"),function(_41,_42){ +with(_41){ +return CGSizeMakeZero(); +} +}),new objj_method(sel_getUid("toolbarLabelColor"),function(_43,_44){ +with(_43){ +return objj_msgSend(CPColor,"blackColor"); +} +}),new objj_method(sel_getUid("toolbarMaxY"),function(_45,_46){ +with(_45){ +if(!_toolbarView||objj_msgSend(_toolbarView,"isHidden")){ +return objj_msgSend(_45,"toolbarOffset").height; +} +return CGRectGetMaxY(objj_msgSend(_toolbarView,"frame")); +} +}),new objj_method(sel_getUid("toolbarView"),function(_47,_48){ +with(_47){ +return _toolbarView; +} +}),new objj_method(sel_getUid("tile"),function(_49,_4a){ +with(_49){ +var _4b=objj_msgSend(_49,"window"),_4c=objj_msgSend(_49,"bounds"),_4d=CGRectGetWidth(_4c); +if(objj_msgSend(objj_msgSend(_4b,"toolbar"),"isVisible")){ +var _4e=objj_msgSend(_49,"toolbarView"),_4f=objj_msgSend(_49,"toolbarOffset"); +objj_msgSend(_4e,"setFrame:",CGRectMake(_4f.width,_4f.height,_4d,CGRectGetHeight(objj_msgSend(_4e,"frame")))); +} +if(objj_msgSend(_49,"showsResizeIndicator")){ +var _50=objj_msgSend(_resizeIndicator,"frame").size,_51=objj_msgSend(_49,"bounds").size; +objj_msgSend(_resizeIndicator,"setFrameOrigin:",CGPointMake(_51.width-_50.width-_resizeIndicatorOffset.width,_51.height-_50.height-_resizeIndicatorOffset.height)); +} +} +}),new objj_method(sel_getUid("noteToolbarChanged"),function(_52,_53){ +with(_52){ +var _54=objj_msgSend(_52,"window"),_55=objj_msgSend(_54,"toolbar"),_56=objj_msgSend(_55,"_toolbarView"); +if(_toolbarView!==_56){ +objj_msgSend(_toolbarView,"removeFromSuperview"); +if(_56){ +objj_msgSend(_56,"removeFromSuperview"); +objj_msgSend(_56,"setLabelColor:",objj_msgSend(_52,"toolbarLabelColor")); +if(objj_msgSend(_52,"respondsToSelector:",sel_getUid("toolbarLabelShadowColor"))){ +objj_msgSend(_56,"setLabelShadowColor:",objj_msgSend(_52,"toolbarLabelShadowColor")); +} +objj_msgSend(_52,"addSubview:",_56); +} +_toolbarView=_56; +} +objj_msgSend(_56,"setHidden:",!objj_msgSend(_52,"showsToolbar")||!objj_msgSend(_55,"isVisible")); +if(_54){ +var _57=objj_msgSend(_52,"convertRect:toView:",objj_msgSend(objj_msgSend(_54,"contentView"),"frame"),nil); +_57.origin=objj_msgSend(_54,"convertBaseToBridge:",_57.origin); +objj_msgSend(_52,"setAutoresizesSubviews:",NO); +objj_msgSend(_54,"setFrame:",objj_msgSend(_54,"frameRectForContentRect:",_57)); +objj_msgSend(_52,"setAutoresizesSubviews:",YES); +} +objj_msgSend(_52,"tile"); +} +}),new objj_method(sel_getUid("didAddSubview:"),function(_58,_59,_5a){ +with(_58){ +if(!_resizeIndicator||_5a===_resizeIndicator){ +return; +} +objj_msgSend(_58,"addSubview:",_resizeIndicator); +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("initialize"),function(_5b,_5c){ +with(_5b){ +if(_5b!=objj_msgSend(_CPWindowView,"class")){ +return; +} +_1=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPWindow,"class")),"pathForResource:","_CPWindowView/_CPWindowViewResizeIndicator.png"),CGSizeMake(12,12)); +} +}),new objj_method(sel_getUid("contentRectForFrameRect:"),function(_5d,_5e,_5f){ +with(_5d){ +return CGRectMakeCopy(_5f); +} +}),new objj_method(sel_getUid("frameRectForContentRect:"),function(_60,_61,_62){ +with(_60){ +return CGRectMakeCopy(_62); +} +})]); +p;8;AppKit.ji;9;CALayer.ji;9;CPAlert.ji;13;CPAnimation.ji;15;CPApplication.ji;14;CPBezierPath.ji;10;CPButton.ji;13;CPButtonBar.ji;12;CPCheckBox.ji;7;CPCib.ji;14;CPCibLoading.ji;12;CPClipView.ji;18;CPCollectionView.ji;9;CPColor.ji;14;CPColorPanel.ji;13;CPColorWell.ji;17;CPCompatibility.ji;11;CPControl.ji;10;CPCookie.ji;12;CPDocument.ji;22;CPDocumentController.ji;9;CPEvent.ji;14;CPFlashMovie.ji;13;CPFlashView.ji;8;CPFont.ji;15;CPFontManager.ji;12;CPGeometry.ji;9;CPImage.ji;13;CPImageView.ji;8;CPMenu.ji;12;CPMenuItem.ji;9;CPPanel.ji;14;CPPasteboard.ji;15;CPPopUpButton.ji;21;CPProgressIndicator.ji;9;CPRadio.ji;13;CPResponder.ji;14;CPScrollView.ji;12;CPScroller.ji;19;CPSecureTextField.ji;20;CPSegmentedControl.ji;10;CPShadow.ji;10;CPSlider.ji;13;CPSplitView.ji;11;CPTabView.ji;15;CPTableColumn.ji;13;CPTableView.ji;13;CPTextField.ji;11;CPToolbar.ji;15;CPToolbarItem.ji;8;CPView.ji;11;CPWebView.ji;10;CPWindow.ji;20;CPWindowController.jp;13;CAAnimation.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.ji;23;CAMediaTimingFunction.jc;3790; +var _1=objj_allocateClassPair(CPObject,"CAAnimation"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_isRemovedOnCompletion"),new objj_ivar("_delegate")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("init"),function(_3,_4){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_isRemovedOnCompletion=YES; +} +return _3; +} +}),new objj_method(sel_getUid("shouldArchiveValueForKey:"),function(_5,_6,_7){ +with(_5){ +return YES; +} +}),new objj_method(sel_getUid("setRemovedOnCompletion:"),function(_8,_9,_a){ +with(_8){ +_isRemovedOnCompletion=_a; +} +}),new objj_method(sel_getUid("removedOnCompletion"),function(_b,_c){ +with(_b){ +return _isRemovedOnCompletion; +} +}),new objj_method(sel_getUid("isRemovedOnCompletion"),function(_d,_e){ +with(_d){ +return _isRemovedOnCompletion; +} +}),new objj_method(sel_getUid("timingFunction"),function(_f,_10){ +with(_f){ +return nil; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_11,_12,_13){ +with(_11){ +_delegate=_13; +} +}),new objj_method(sel_getUid("delegate"),function(_14,_15){ +with(_14){ +return _delegate; +} +}),new objj_method(sel_getUid("runActionForKey:object:arguments:"),function(_16,_17,_18,_19,_1a){ +with(_16){ +objj_msgSend(_19,"addAnimation:forKey:",_16,_18); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("animation"),function(_1b,_1c){ +with(_1b){ +return objj_msgSend(objj_msgSend(_1b,"alloc"),"init"); +} +}),new objj_method(sel_getUid("defaultValueForKey:"),function(_1d,_1e,_1f){ +with(_1d){ +return nil; +} +})]); +var _1=objj_allocateClassPair(CAAnimation,"CAPropertyAnimation"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_keyPath"),new objj_ivar("_isCumulative"),new objj_ivar("_isAdditive")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("setKeyPath:"),function(_20,_21,_22){ +with(_20){ +_keyPath=_22; +} +}),new objj_method(sel_getUid("keyPath"),function(_23,_24){ +with(_23){ +return _keyPath; +} +}),new objj_method(sel_getUid("setCumulative:"),function(_25,_26,_27){ +with(_25){ +_isCumulative=_27; +} +}),new objj_method(sel_getUid("cumulative"),function(_28,_29){ +with(_28){ +return _isCumulative; +} +}),new objj_method(sel_getUid("isCumulative"),function(_2a,_2b){ +with(_2a){ +return _isCumulative; +} +}),new objj_method(sel_getUid("setAdditive:"),function(_2c,_2d,_2e){ +with(_2c){ +_isAdditive=_2e; +} +}),new objj_method(sel_getUid("additive"),function(_2f,_30){ +with(_2f){ +return _isAdditive; +} +}),new objj_method(sel_getUid("isAdditive"),function(_31,_32){ +with(_31){ +return _isAdditive; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("animationWithKeyPath:"),function(_33,_34,_35){ +with(_33){ +var _36=objj_msgSend(_33,"animation"); +objj_msgSend(_36,"setKeyPath:",_35); +return _36; +} +})]); +var _1=objj_allocateClassPair(CAPropertyAnimation,"CABasicAnimation"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_fromValue"),new objj_ivar("_toValue"),new objj_ivar("_byValue")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("setFromValue:"),function(_37,_38,_39){ +with(_37){ +_fromValue=_39; +} +}),new objj_method(sel_getUid("fromValue"),function(_3a,_3b){ +with(_3a){ +return _fromValue; +} +}),new objj_method(sel_getUid("setToValue:"),function(_3c,_3d,_3e){ +with(_3c){ +_toValue=_3e; +} +}),new objj_method(sel_getUid("toValue"),function(_3f,_40){ +with(_3f){ +return _toValue; +} +}),new objj_method(sel_getUid("setByValue:"),function(_41,_42,_43){ +with(_41){ +_byValue=_43; +} +}),new objj_method(sel_getUid("byValue"),function(_44,_45){ +with(_44){ +return _byValue; +} +})]); +p;16;CABackingStore.ji;12;CGGeometry.ji;17;CPCompatibility.jc;599; +CABackingStoreGetContext=function(_1){ +return _1.context; +}; +if(CPFeatureIsCompatible(CPHTMLCanvasFeature)){ +CABackingStoreCreate=function(){ +var _2=document.createElement("canvas"); +_2.style.position="absolute"; +return {context:_2.getContext("2d"),buffer:_2,_image:_2}; +}; +CABackingStoreSetSize=function(_3,_4){ +var _5=_3.buffer; +_5.width=_4.width; +_5.height=_4.height; +_5.style.width=_4.width+"px"; +_5.style.height=_4.height+"px"; +}; +}else{ +CABackingStoreCreate=function(){ +var _6=CGBitmapGraphicsContextCreate(); +_6.buffer=""; +return {context:_6}; +}; +CABackingStoreSetSize=function(_7,_8){ +}; +} +p;14;CAFlashLayer.ji;9;CALayer.ji;14;CPFlashMovie.jc;803; +var _1=objj_allocateClassPair(CALayer,"CAFlashLayer"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_flashMovie")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("setFlashMovie:"),function(_3,_4,_5){ +with(_3){ +if(_flashMovie==_5){ +return; +} +_flashMovie=_5; +_DOMElement.innerHTML=""; +} +}),new objj_method(sel_getUid("flashMovie"),function(_6,_7){ +with(_6){ +return _flashMovie; +} +})]); +p;9;CALayer.jI;21;Foundation/CPObject.jI;23;AppKit/CABackingStore.jI;18;AppKit/CGContext.jI;19;AppKit/CGGeometry.ji;12;CGGeometry.jc;24770; +CGAffineTransformMake=function(a,b,c,d,tx,ty){ +return {a:a,b:b,c:c,d:d,tx:tx,ty:ty}; +}; +CGAffineTransformMakeIdentity=function(){ +return {a:1,b:0,c:0,d:1,tx:0,ty:0}; +}; +CGAffineTransformMakeCopy=function(_7){ +return {a:_7.a,b:_7.b,c:_7.c,d:_7.d,tx:_7.tx,ty:_7.ty}; +}; +CGAffineTransformMakeScale=function(sx,sy){ +return {a:sx,b:0,c:0,d:sy,tx:0,ty:0}; +}; +CGAffineTransformMakeTranslation=function(tx,ty){ +return {a:1,b:0,c:0,d:1,tx:tx,ty:ty}; +}; +CGAffineTransformTranslate=function(_c,tx,ty){ +return {a:_c.a,b:_c.b,c:_c.c,d:_c.d,tx:_c.tx+_c.a*tx+_c.c*ty,ty:_c.ty+_c.b*tx+_c.d*ty}; +}; +CGAffineTransformScale=function(_f,sx,sy){ +return {a:_f.a*sx,b:_f.b*sx,c:_f.c*sy,d:_f.d*sy,tx:_f.tx,ty:_f.ty}; +}; +CGAffineTransformConcat=function(lhs,rhs){ +return {a:lhs.a*rhs.a+lhs.b*rhs.c,b:lhs.a*rhs.b+lhs.b*rhs.d,c:lhs.c*rhs.a+lhs.d*rhs.c,d:lhs.c*rhs.b+lhs.d*rhs.d,tx:lhs.tx*rhs.a+lhs.ty*rhs.c+rhs.tx,ty:lhs.tx*rhs.b+lhs.ty*rhs.d+rhs.ty}; +}; +CGPointApplyAffineTransform=function(_14,_15){ +return {x:_14.x*_15.a+_14.y*_15.c+_15.tx,y:_14.x*_15.b+_14.y*_15.d+_15.ty}; +}; +CGSizeApplyAffineTransform=function(_16,_17){ +return {width:_16.width*_17.a+_16.height*_17.c,height:_16.width*_17.b+_16.height*_17.d}; +}; +CGAffineTransformIsIdentity=function(_18){ +return (_18.a==1&&_18.b==0&&_18.c==0&&_18.d==1&&_18.tx==0&&_18.ty==0); +}; +CGAffineTransformEqualToTransform=function(lhs,rhs){ +return (lhs.a==rhs.a&&lhs.b==rhs.b&&lhs.c==rhs.c&&lhs.d==rhs.d&&lhs.tx==rhs.tx&&lhs.ty==rhs.ty); +}; +CGStringCreateWithCGAffineTransform=function(_1b){ +return (" [[ "+_1b.a+", "+_1b.b+", 0 ], [ "+_1b.c+", "+_1b.d+", 0 ], [ "+_1b.tx+", "+_1b.ty+", 1]]"); +}; +CGAffineTransformCreateCopy=function(_1c){ +return {a:_1c.a,b:_1c.b,c:_1c.c,d:_1c.d,tx:_1c.tx,ty:_1c.ty}; +}; +CGAffineTransformMakeRotation=function(_1d){ +var sin=SIN(_1d),cos=COS(_1d); +return {a:cos,b:sin,c:-sin,d:cos,tx:0,ty:0}; +}; +CGAffineTransformRotate=function(_20,_21){ +var sin=SIN(_21),cos=COS(_21); +return {a:_20.a*cos+_20.c*sin,b:_20.b*cos+_20.d*sin,c:_20.c*cos-_20.a*sin,d:_20.d*cos-_20.b*sin,tx:_20.tx,ty:_20.ty}; +}; +CGAffineTransformInvert=function(_24){ +var _25=1/(_24.a*_24.d-_24.b*_24.c); +return {a:_25*_24.d,b:-_25*_24.b,c:-_25*_24.c,d:_25*_24.a,tx:_25*(_24.c*_24.ty-_24.d*_24.tx),ty:_25*(_24.b*_24.tx-_24.a*_24.ty)}; +}; +CGRectApplyAffineTransform=function(_26,_27){ +var top=(_26.origin.y),_29=(_26.origin.x),_2a=(_26.origin.x+_26.size.width),_2b=(_26.origin.y+_26.size.height),_2c=CGPointApplyAffineTransform({x:_29,y:top},_27),_2d=CGPointApplyAffineTransform({x:_2a,y:top},_27),_2e=CGPointApplyAffineTransform({x:_29,y:_2b},_27),_2f=CGPointApplyAffineTransform({x:_2a,y:_2b},_27),_30=MIN(_2c.x,_2d.x,_2e.x,_2f.x),_31=MAX(_2c.x,_2d.x,_2e.x,_2f.x),_32=MIN(_2c.y,_2d.y,_2e.y,_2f.y),_33=MAX(_2c.y,_2d.y,_2e.y,_2f.y); +return {origin:{x:_30,y:_32},size:{width:(_31-_30),height:(_33-_32)}}; +}; +CPStringFromCGAffineTransform=function(_34){ +return "{"+_34.a+", "+_34.b+", "+_34.c+", "+_34.d+", "+_34.tx+", "+_34.ty+"}"; +}; +var _35=1,_36=2,_37=4,_38=8,_39=16; +var _3a=NO; +var _3b=1,_3c=2,_3d=4,_3e=8,_3f=16,_40=_3d|_3b|_3c; +var _41=nil; +var _42=objj_allocateClassPair(CPObject,"CALayer"),_43=_42.isa; +class_addIvars(_42,[new objj_ivar("_frame"),new objj_ivar("_bounds"),new objj_ivar("_position"),new objj_ivar("_zPosition"),new objj_ivar("_anchorPoint"),new objj_ivar("_affineTransform"),new objj_ivar("_sublayerTransform"),new objj_ivar("_sublayerTransformForSublayers"),new objj_ivar("_backingStoreFrame"),new objj_ivar("_standardBackingStoreFrame"),new objj_ivar("_hasSublayerTransform"),new objj_ivar("_hasCustomBackingStoreFrame"),new objj_ivar("_opacity"),new objj_ivar("_isHidden"),new objj_ivar("_backgroundColor"),new objj_ivar("_superlayer"),new objj_ivar("_sublayers"),new objj_ivar("_runLoopUpdateMask"),new objj_ivar("_needsDisplayOnBoundsChange"),new objj_ivar("_delegate"),new objj_ivar("_delegateRespondsToDisplayLayerSelector"),new objj_ivar("_delegateRespondsToDrawLayerInContextSelector"),new objj_ivar("_DOMElement"),new objj_ivar("_DOMContentsElement"),new objj_ivar("_contents"),new objj_ivar("_context"),new objj_ivar("_owningView"),new objj_ivar("_transformToLayer"),new objj_ivar("_transformFromLayer")]); +objj_registerClassPair(_42); +objj_addClassForBundle(_42,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_42,[new objj_method(sel_getUid("init"),function(_44,_45){ +with(_44){ +_44=objj_msgSendSuper({receiver:_44,super_class:objj_getClass("CPObject")},"init"); +if(_44){ +_frame=CGRectMakeZero(); +_backingStoreFrame=CGRectMakeZero(); +_standardBackingStoreFrame=CGRectMakeZero(); +_bounds=CGRectMakeZero(); +_position=CGPointMakeZero(); +_zPosition=0; +_anchorPoint=CGPointMake(0.5,0.5); +_affineTransform=CGAffineTransformMakeIdentity(); +_sublayerTransform=CGAffineTransformMakeIdentity(); +_transformToLayer=CGAffineTransformMakeIdentity(); +_transformFromLayer=CGAffineTransformMakeIdentity(); +_opacity=1; +_isHidden=NO; +_masksToBounds=NO; +_sublayers=[]; +_DOMElement=document.createElement("div"); +_DOMElement.style.overflow="visible"; +_DOMElement.style.position="absolute"; +_DOMElement.style.visibility="visible"; +_DOMElement.style.top="0px"; +_DOMElement.style.left="0px"; +_DOMElement.style.zIndex=0; +_DOMElement.style.width="0px"; +_DOMElement.style.height="0px"; +} +return _44; +} +}),new objj_method(sel_getUid("setBounds:"),function(_46,_47,_48){ +with(_46){ +if(CGRectEqualToRect(_bounds,_48)){ +return; +} +var _49=_bounds.origin; +_bounds={origin:{x:_48.origin.x,y:_48.origin.y},size:{width:_48.size.width,height:_48.size.height}}; +if(_hasSublayerTransform){ +_CALayerUpdateSublayerTransformForSublayers(_46); +} +_CALayerRecalculateGeometry(_46,_35); +} +}),new objj_method(sel_getUid("bounds"),function(_4a,_4b){ +with(_4a){ +return _bounds; +} +}),new objj_method(sel_getUid("setPosition:"),function(_4c,_4d,_4e){ +with(_4c){ +if(CGPointEqualToPoint(_position,_4e)){ +return; +} +_position={x:_4e.x,y:_4e.y}; +_CALayerRecalculateGeometry(_4c,_36); +} +}),new objj_method(sel_getUid("position"),function(_4f,_50){ +with(_4f){ +return _position; +} +}),new objj_method(sel_getUid("setZPosition:"),function(_51,_52,_53){ +with(_51){ +if(_zPosition==_53){ +return; +} +_zPosition=_53; +objj_msgSend(_51,"registerRunLoopUpdateWithMask:",_3d); +} +}),new objj_method(sel_getUid("setAnchorPoint:"),function(_54,_55,_56){ +with(_54){ +_56={x:_56.x,y:_56.y}; +_56.x=MIN(1,MAX(0,_56.x)); +_56.y=MIN(1,MAX(0,_56.y)); +if(CGPointEqualToPoint(_anchorPoint,_56)){ +return; +} +_anchorPoint=_56; +if(_hasSublayerTransform){ +_CALayerUpdateSublayerTransformForSublayers(_54); +} +if(_owningView){ +_position=CGPointMake((_bounds.size.width)*_anchorPoint.x,(_bounds.size.height)*_anchorPoint.y); +} +_CALayerRecalculateGeometry(_54,_37); +} +}),new objj_method(sel_getUid("anchorPoint"),function(_57,_58){ +with(_57){ +return _anchorPoint; +} +}),new objj_method(sel_getUid("setAffineTransform:"),function(_59,_5a,_5b){ +with(_59){ +if(CGAffineTransformEqualToTransform(_affineTransform,_5b)){ +return; +} +_affineTransform={a:_5b.a,b:_5b.b,c:_5b.c,d:_5b.d,tx:_5b.tx,ty:_5b.ty}; +_CALayerRecalculateGeometry(_59,_38); +} +}),new objj_method(sel_getUid("affineTransform"),function(_5c,_5d){ +with(_5c){ +return _affineTransform; +} +}),new objj_method(sel_getUid("setSublayerTransform:"),function(_5e,_5f,_60){ +with(_5e){ +if(CGAffineTransformEqualToTransform(_sublayerTransform,_60)){ +return; +} +var _61=_hasSublayerTransform; +_sublayerTransform={a:_60.a,b:_60.b,c:_60.c,d:_60.d,tx:_60.tx,ty:_60.ty}; +_hasSublayerTransform=!(_sublayerTransform.a==1&&_sublayerTransform.b==0&&_sublayerTransform.c==0&&_sublayerTransform.d==1&&_sublayerTransform.tx==0&&_sublayerTransform.ty==0); +if(_hasSublayerTransform){ +_CALayerUpdateSublayerTransformForSublayers(_5e); +var _62=_sublayers.length; +while(_62--){ +_CALayerRecalculateGeometry(_sublayers[_62],_39); +} +} +} +}),new objj_method(sel_getUid("sublayerTransform"),function(_63,_64){ +with(_63){ +return _sublayerTransform; +} +}),new objj_method(sel_getUid("transformToLayer"),function(_65,_66){ +with(_65){ +return _transformToLayer; +} +}),new objj_method(sel_getUid("setFrame:"),function(_67,_68,_69){ +with(_67){ +alert("FIXME IMPLEMENT"); +} +}),new objj_method(sel_getUid("frame"),function(_6a,_6b){ +with(_6a){ +if(!_frame){ +_frame=objj_msgSend(_6a,"convertRect:toLayer:",_bounds,_superlayer); +} +return _frame; +} +}),new objj_method(sel_getUid("backingStoreFrame"),function(_6c,_6d){ +with(_6c){ +return _backingStoreFrame; +} +}),new objj_method(sel_getUid("setBackingStoreFrame:"),function(_6e,_6f,_70){ +with(_6e){ +_hasCustomBackingStoreFrame=(_70!=nil); +if(_70==nil){ +_70=CGRectMakeCopy(_standardBackingStoreFrame); +}else{ +if(_superlayer){ +_70=objj_msgSend(_superlayer,"convertRect:toLayer:",_70,nil); +var _71=objj_msgSend(_superlayer,"bounds"),_72=objj_msgSend(_superlayer,"convertRect:toLayer:",_71,nil); +_70.origin.x-=(_72.origin.x); +_70.origin.y-=(_72.origin.y); +}else{ +_70=CGRectMakeCopy(_70); +} +} +if(!CGPointEqualToPoint(_backingStoreFrame.origin,_70.origin)){ +objj_msgSend(_6e,"registerRunLoopUpdateWithMask:",_3b); +} +if(!CGSizeEqualToSize(_backingStoreFrame.size,_70.size)){ +objj_msgSend(_6e,"registerRunLoopUpdateWithMask:",_3c); +} +_backingStoreFrame=_70; +} +}),new objj_method(sel_getUid("contents"),function(_73,_74){ +with(_73){ +return _contents; +} +}),new objj_method(sel_getUid("setContents:"),function(_75,_76,_77){ +with(_75){ +if(_contents==_77){ +return; +} +_contents=_77; +objj_msgSend(_75,"composite"); +} +}),new objj_method(sel_getUid("composite"),function(_78,_79){ +with(_78){ +if(_3a&&!_contents||!_context){ +return; +} +CGContextClearRect(_context,{origin:{x:0,y:0},size:{width:(_backingStoreFrame.size.width),height:(_backingStoreFrame.size.height)}}); +var _7a=_transformFromLayer; +if(_superlayer){ +var _7b=_CALayerGetTransform(_superlayer,nil),_7c=CGPointApplyAffineTransform(_superlayer._bounds.origin,_7b); +_7a=CGAffineTransformConcat(_7a,_7b); +_7a.tx-=_7c.x; +_7a.ty-=_7c.y; +} +_7a.tx-=(_backingStoreFrame.origin.x); +_7a.ty-=(_backingStoreFrame.origin.y); +CGContextSaveGState(_context); +CGContextConcatCTM(_context,_7a); +if(_3a){ +_context.drawImage(_contents.buffer,(_bounds.origin.x),(_bounds.origin.y)); +}else{ +objj_msgSend(_78,"drawInContext:",_context); +} +CGContextRestoreGState(_context); +} +}),new objj_method(sel_getUid("display"),function(_7d,_7e){ +with(_7d){ +if(!_context){ +_context=CGBitmapGraphicsContextCreate(); +_DOMContentsElement=_context.DOMElement; +_DOMContentsElement.style.zIndex=-100; +_DOMContentsElement.style.overflow="hidden"; +_DOMContentsElement.style.position="absolute"; +_DOMContentsElement.style.visibility="visible"; +_DOMContentsElement.width=ROUND((_backingStoreFrame.size.width)); +_DOMContentsElement.height=ROUND((_backingStoreFrame.size.height)); +_DOMContentsElement.style.top="0px"; +_DOMContentsElement.style.left="0px"; +_DOMContentsElement.style.width=ROUND((_backingStoreFrame.size.width))+"px"; +_DOMContentsElement.style.height=ROUND((_backingStoreFrame.size.height))+"px"; +_DOMElement.appendChild(_DOMContentsElement); +} +if(_3a){ +if(_delegateRespondsToDisplayLayerSelector){ +return objj_msgSend(_delegate,"displayInLayer:",_7d); +} +if((_backingStoreFrame.size.width)==0||(_backingStoreFrame.size.height)==0){ +return; +} +if(!_contents){ +_contents=CABackingStoreCreate(); +} +CABackingStoreSetSize(_contents,_bounds.size); +objj_msgSend(_7d,"drawInContext:",CABackingStoreGetContext(_contents)); +} +objj_msgSend(_7d,"composite"); +} +}),new objj_method(sel_getUid("drawInContext:"),function(_7f,_80,_81){ +with(_7f){ +if(_backgroundColor){ +CGContextSetFillColor(_81,_backgroundColor); +CGContextFillRect(_81,_bounds); +} +if(_delegateRespondsToDrawLayerInContextSelector){ +objj_msgSend(_delegate,"drawLayer:inContext:",_7f,_81); +} +} +}),new objj_method(sel_getUid("opacity"),function(_82,_83){ +with(_82){ +return _opacity; +} +}),new objj_method(sel_getUid("setOpacity:"),function(_84,_85,_86){ +with(_84){ +if(_opacity==_86){ +return; +} +_opacity=_86; +_DOMElement.style.opacity=_86; +_DOMElement.style.filter="alpha(opacity="+_86*100+")"; +} +}),new objj_method(sel_getUid("setHidden:"),function(_87,_88,_89){ +with(_87){ +_isHidden=_89; +_DOMElement.style.display=_89?"none":"block"; +} +}),new objj_method(sel_getUid("hidden"),function(_8a,_8b){ +with(_8a){ +return _isHidden; +} +}),new objj_method(sel_getUid("isHidden"),function(_8c,_8d){ +with(_8c){ +return _isHidden; +} +}),new objj_method(sel_getUid("setMasksToBounds:"),function(_8e,_8f,_90){ +with(_8e){ +if(_masksToBounds==_90){ +return; +} +_masksToBounds=_90; +_DOMElement.style.overflow=_masksToBounds?"hidden":"visible"; +} +}),new objj_method(sel_getUid("setBackgroundColor:"),function(_91,_92,_93){ +with(_91){ +_backgroundColor=_93; +objj_msgSend(_91,"setNeedsDisplay"); +} +}),new objj_method(sel_getUid("backgroundColor"),function(_94,_95){ +with(_94){ +return _backgroundColor; +} +}),new objj_method(sel_getUid("sublayers"),function(_96,_97){ +with(_96){ +return _sublayers; +} +}),new objj_method(sel_getUid("superlayer"),function(_98,_99){ +with(_98){ +return _superlayer; +} +}),new objj_method(sel_getUid("addSublayer:"),function(_9a,_9b,_9c){ +with(_9a){ +objj_msgSend(_9a,"insertSublayer:atIndex:",_9c,_sublayers.length); +return; +if(_DOMContentsElement&&_9c._zPosition>_DOMContentsElement.style.zIndex){ +_DOMContentsElement.style.zIndex-=100; +} +objj_msgSend(_sublayers,"addObject:",_9c); +_DOMElement.appendChild(_9c._DOMElement); +} +}),new objj_method(sel_getUid("removeFromSuperlayer"),function(_9d,_9e){ +with(_9d){ +if(_owningView){ +objj_msgSend(_owningView,"setLayer:",nil); +} +if(!_superlayer){ +return; +} +_superlayer._DOMElement.removeChild(_DOMElement); +objj_msgSend(_superlayer._sublayers,"removeObject:",_9d); +_superlayer=nil; +} +}),new objj_method(sel_getUid("insertSublayer:atIndex:"),function(_9f,_a0,_a1,_a2){ +with(_9f){ +if(!_a1){ +return; +} +var _a3=objj_msgSend(_a1,"superlayer"); +if(_a3==_9f){ +var _a4=objj_msgSend(_sublayers,"indexOfObjectIdenticalTo:",_a1); +if(_a4==_a2){ +return; +} +objj_msgSend(_sublayers,"removeObjectAtIndex:",_a4); +if(_a4<_a2){ +--_a2; +} +}else{ +if(_a3!=nil){ +objj_msgSend(_a1,"removeFromSuperlayer"); +} +} +if(_DOMContentsElement&&_a1._zPosition>_DOMContentsElement.style.zIndex){ +_DOMContentsElement.style.zIndex-=100; +} +objj_msgSend(_sublayers,"insertObject:atIndex:",_a1,_a2); +if(_a2>=_sublayers.length-1){ +_DOMElement.appendChild(_a1._DOMElement); +}else{ +_DOMElement.insertBefore(_a1._DOMElement,_sublayers[_a2+1]._DOMElement); +} +_a1._superlayer=_9f; +if(_9f!=_a3){ +_CALayerRecalculateGeometry(_a1,268435455); +} +} +}),new objj_method(sel_getUid("insertSublayer:below:"),function(_a5,_a6,_a7,_a8){ +with(_a5){ +var _a9=_a8?objj_msgSend(_sublayers,"indexOfObjectIdenticalTo:",_a8):0; +objj_msgSend(_a5,"insertSublayer:atIndex:",_a7,_a9==CPNotFound?_sublayers.length:_a9); +} +}),new objj_method(sel_getUid("insertSublayer:above:"),function(_aa,_ab,_ac,_ad){ +with(_aa){ +var _ae=_ad?objj_msgSend(_sublayers,"indexOfObjectIdenticalTo:",_ad):_sublayers.length; +if(_ae==CPNotFound){ +objj_msgSend(CPException,"raise:reason:","CALayerNotFoundException","aSublayer is not a sublayer of this layer"); +} +objj_msgSend(_sublayers,"insertObject:atIndex:",_ac,_ae==CPNotFound?_sublayers.length:_ae+1); +} +}),new objj_method(sel_getUid("replaceSublayer:with:"),function(_af,_b0,_b1,_b2){ +with(_af){ +if(_b1==_b2){ +return; +} +if(_b1._superlayer!=_af){ +alert("EXCEPTION"); +return; +} +if(_DOMContentsElement&&_b2._zPosition>_DOMContentsElement.style.zIndex){ +_DOMContentsElement.style.zIndex-=100; +} +objj_msgSend(_sublayers,"replaceObjectAtIndex:withObject:",objj_msgSend(_sublayers,"indexOfObjectIdenticalTo:",_b1),_b2); +_DOMElement.replaceChild(_b1._DOMElement,_b2._DOMElement); +} +}),new objj_method(sel_getUid("registerRunLoopUpdateWithMask:"),function(_b3,_b4,_b5){ +with(_b3){ +if(_41==nil){ +_41={}; +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"performSelector:target:argument:order:modes:",sel_getUid("runLoopUpdateLayers"),CALayer,nil,0,[CPDefaultRunLoopMode]); +} +_runLoopUpdateMask|=_b5; +_41[objj_msgSend(_b3,"hash")]=_b3; +} +}),new objj_method(sel_getUid("setNeedsComposite"),function(_b6,_b7){ +with(_b6){ +objj_msgSend(_b6,"registerRunLoopUpdateWithMask:",_3f); +} +}),new objj_method(sel_getUid("setNeedsDisplay"),function(_b8,_b9){ +with(_b8){ +objj_msgSend(_b8,"registerRunLoopUpdateWithMask:",_3e); +} +}),new objj_method(sel_getUid("setNeedsDisplayOnBoundsChange:"),function(_ba,_bb,_bc){ +with(_ba){ +_needsDisplayOnBoundsChange=_bc; +} +}),new objj_method(sel_getUid("needsDisplayOnBoundsChange"),function(_bd,_be){ +with(_bd){ +return _needsDisplayOnBoundsChange; +} +}),new objj_method(sel_getUid("setNeedsDisplayInRect:"),function(_bf,_c0,_c1){ +with(_bf){ +_dirtyRect=_c1; +objj_msgSend(_bf,"display"); +} +}),new objj_method(sel_getUid("convertPoint:fromLayer:"),function(_c2,_c3,_c4,_c5){ +with(_c2){ +return CGPointApplyAffineTransform(_c4,_CALayerGetTransform(_c5,_c2)); +} +}),new objj_method(sel_getUid("convertPoint:toLayer:"),function(_c6,_c7,_c8,_c9){ +with(_c6){ +return CGPointApplyAffineTransform(_c8,_CALayerGetTransform(_c6,_c9)); +} +}),new objj_method(sel_getUid("convertRect:fromLayer:"),function(_ca,_cb,_cc,_cd){ +with(_ca){ +return CGRectApplyAffineTransform(_cc,_CALayerGetTransform(_cd,_ca)); +} +}),new objj_method(sel_getUid("convertRect:toLayer:"),function(_ce,_cf,_d0,_d1){ +with(_ce){ +return CGRectApplyAffineTransform(_d0,_CALayerGetTransform(_ce,_d1)); +} +}),new objj_method(sel_getUid("containsPoint:"),function(_d2,_d3,_d4){ +with(_d2){ +return (_d4.x>=(_bounds.origin.x)&&_d4.y>=(_bounds.origin.y)&&_d4.x<(_bounds.origin.x+_bounds.size.width)&&_d4.y<(_bounds.origin.y+_bounds.size.height)); +} +}),new objj_method(sel_getUid("hitTest:"),function(_d5,_d6,_d7){ +with(_d5){ +if(_isHidden){ +return nil; +} +var _d8=CGPointApplyAffineTransform(_d7,_transformToLayer); +if(!(_d8.x>=(_bounds.origin.x)&&_d8.y>=(_bounds.origin.y)&&_d8.x<(_bounds.origin.x+_bounds.size.width)&&_d8.y<(_bounds.origin.y+_bounds.size.height))){ +return nil; +} +var _d9=nil,_da=_sublayers.length; +while(_da--){ +if(_d9=objj_msgSend(_sublayers[_da],"hitTest:",_d8)){ +return _d9; +} +} +return _d5; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_db,_dc,_dd){ +with(_db){ +if(_delegate==_dd){ +return; +} +_delegate=_dd; +_delegateRespondsToDisplayLayerSelector=objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("displayLayer:")); +_delegateRespondsToDrawLayerInContextSelector=objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("drawLayer:inContext:")); +if(_delegateRespondsToDisplayLayerSelector||_delegateRespondsToDrawLayerInContextSelector){ +objj_msgSend(_db,"setNeedsDisplay"); +} +} +}),new objj_method(sel_getUid("delegate"),function(_de,_df){ +with(_de){ +return _delegate; +} +}),new objj_method(sel_getUid("_setOwningView:"),function(_e0,_e1,_e2){ +with(_e0){ +_owningView=_e2; +if(_owningView){ +_owningView=_e2; +_bounds.size=CGSizeMakeCopy(objj_msgSend(_owningView,"bounds").size); +_position=CGPointMake((_bounds.size.width)*_anchorPoint.x,(_bounds.size.height)*_anchorPoint.y); +} +_CALayerRecalculateGeometry(_e0,_36|_35); +} +}),new objj_method(sel_getUid("_owningViewBoundsChanged"),function(_e3,_e4){ +with(_e3){ +_bounds.size=CGSizeMakeCopy(objj_msgSend(_owningView,"bounds").size); +_position=CGPointMake((_bounds.size.width)*_anchorPoint.x,(_bounds.size.height)*_anchorPoint.y); +_CALayerRecalculateGeometry(_e3,_36|_35); +} +}),new objj_method(sel_getUid("_update"),function(_e5,_e6){ +with(_e5){ +window.loop=true; +var _e7=_runLoopUpdateMask; +if(_e7&_40){ +_CALayerUpdateDOM(_e5,_e7); +} +if(_e7&_3e){ +objj_msgSend(_e5,"display"); +}else{ +if(_e7&_3c||_e7&_3f){ +objj_msgSend(_e5,"composite"); +} +} +_runLoopUpdateMask=0; +window.loop=false; +} +})]); +class_addMethods(_43,[new objj_method(sel_getUid("layer"),function(_e8,_e9){ +with(_e8){ +return objj_msgSend(objj_msgSend(objj_msgSend(_e8,"class"),"alloc"),"init"); +} +}),new objj_method(sel_getUid("runLoopUpdateLayers"),function(_ea,_eb){ +with(_ea){ +if(window.oops){ +alert(window.latest); +objj_debug_print_backtrace(); +} +window.loop=true; +for(hash in _41){ +var _ec=_41[hash],_ed=_ec._runLoopUpdateMask; +if(_ed&_40){ +_CALayerUpdateDOM(_ec,_ed); +} +if(_ed&_3e){ +objj_msgSend(_ec,"display"); +}else{ +if(_ed&_3c||_ed&_3f){ +objj_msgSend(_ec,"composite"); +} +} +_ec._runLoopUpdateMask=0; +} +window.loop=false; +_41=nil; +} +})]); +_CALayerUpdateSublayerTransformForSublayers=function(_ee){ +var _ef=_ee._bounds,_f0=_ee._anchorPoint,_f1=(_ef.size.width)*_f0.x,_f2=(_ef.size.height)*_f0.y; +_ee._sublayerTransformForSublayers=CGAffineTransformConcat(CGAffineTransformMakeTranslation(-_f1,-_f2),CGAffineTransformConcat(_ee._sublayerTransform,CGAffineTransformMakeTranslation(_f1,_f2))); +}; +_CALayerUpdateDOM=function(_f3,_f4){ +var _f5=_f3._DOMElement.style; +if(_f4&_3d){ +_f5.zIndex=_f3._zPosition; +} +var _f6=_f3._backingStoreFrame; +if(_f4&_3b){ +_f5.top=ROUND((_f6.origin.y))+"px"; +_f5.left=ROUND((_f6.origin.x))+"px"; +} +if(_f4&_3c){ +var _f7=MAX(0,ROUND((_f6.size.width))),_f8=MAX(0,ROUND((_f6.size.height))),_f9=_f3._DOMContentsElement; +_f5.width=_f7+"px"; +_f5.height=_f8+"px"; +if(_f9){ +_f9.width=_f7; +_f9.height=_f8; +_f9.style.width=_f7+"px"; +_f9.style.height=_f8+"px"; +} +} +}; +_CALayerRecalculateGeometry=function(_fa,_fb){ +var _fc=_fa._bounds,_fd=_fa._superlayer,_fe=(_fc.size.width),_ff=(_fc.size.height),_100=_fa._position,_101=_fa._anchorPoint,_102=_fa._affineTransform,_103={width:_fa._backingStoreFrame.width,height:_fa._backingStoreFrame.height},_104=_fa._hasCustomBackingStoreFrame; +_fa._transformFromLayer=CGAffineTransformConcat(CGAffineTransformMakeTranslation(-_fe*_101.x-(_fa._bounds.origin.x),-_ff*_101.y-(_fa._bounds.origin.y)),CGAffineTransformConcat(_102,CGAffineTransformMakeTranslation(_100.x,_100.y))); +if(_fd&&_fd._hasSublayerTransform){ +var tx=_fa._transformFromLayer.tx*_fd._sublayerTransformForSublayers.a+_fa._transformFromLayer.ty*_fd._sublayerTransformForSublayers.c+_fd._sublayerTransformForSublayers.tx; +_fa._transformFromLayer.ty=_fa._transformFromLayer.tx*_fd._sublayerTransformForSublayers.b+_fa._transformFromLayer.ty*_fd._sublayerTransformForSublayers.d+_fd._sublayerTransformForSublayers.ty; +_fa._transformFromLayer.tx=tx; +var a=_fa._transformFromLayer.a*_fd._sublayerTransformForSublayers.a+_fa._transformFromLayer.b*_fd._sublayerTransformForSublayers.c,b=_fa._transformFromLayer.a*_fd._sublayerTransformForSublayers.b+_fa._transformFromLayer.b*_fd._sublayerTransformForSublayers.d,c=_fa._transformFromLayer.c*_fd._sublayerTransformForSublayers.a+_fa._transformFromLayer.d*_fd._sublayerTransformForSublayers.c; +_fa._transformFromLayer.d=_fa._transformFromLayer.c*_fd._sublayerTransformForSublayers.b+_fa._transformFromLayer.d*_fd._sublayerTransformForSublayers.d; +_fa._transformFromLayer.a=a; +_fa._transformFromLayer.b=b; +_fa._transformFromLayer.c=c; +} +_fa._transformToLayer=CGAffineTransformInvert(_fa._transformFromLayer); +_fa._frame=nil; +_fa._standardBackingStoreFrame=objj_msgSend(_fa,"convertRect:toLayer:",_fc,nil); +if(_fd){ +var _fc=objj_msgSend(_fd,"bounds"),_109=objj_msgSend(_fd,"convertRect:toLayer:",_fc,nil); +_fa._standardBackingStoreFrame.origin.x-=(_109.origin.x); +_fa._standardBackingStoreFrame.origin.y-=(_109.origin.y); +} +var _10a=_fa._standardBackingStoreFrame.origin,size=_fa._standardBackingStoreFrame.size; +_10a.x=FLOOR(_10a.x); +_10a.y=FLOOR(_10a.y); +size.width=CEIL(size.width)+1; +size.height=CEIL(size.height)+1; +if(!_104){ +var _10c=CGRectMakeCopy(_fa._standardBackingStoreFrame); +if(ROUND((_10c.origin.x))!=ROUND((_fa._backingStoreFrame.origin.x))||ROUND((_10c.origin.y))!=ROUND((_fa._backingStoreFrame.origin.y))){ +objj_msgSend(_fa,"registerRunLoopUpdateWithMask:",_3b); +} +if(((_10c.size.width)!=ROUND((_fa._backingStoreFrame.size.width))||(_10c.size.height)!=ROUND((_fa._backingStoreFrame.size.height)))){ +objj_msgSend(_fa,"registerRunLoopUpdateWithMask:",_3c); +} +_fa._backingStoreFrame=_10c; +} +if(_fb&_35&&_fa._needsDisplayOnBoundsChange){ +objj_msgSend(_fa,"setNeedsDisplay"); +}else{ +if(_104||(_fb&~(_36|_37))){ +objj_msgSend(_fa,"setNeedsComposite"); +} +} +var _10d=_fa._sublayers,_10e=0,_10f=_10d.length; +for(;_10e<_10f;++_10e){ +_CALayerRecalculateGeometry(_10d[_10e],_fb); +} +}; +_CALayerGetTransform=function(_110,_111){ +var _112=CGAffineTransformMakeIdentity(); +if(_110){ +var _113=_110; +while(_113&&_113!=_111){ +var _114=_113._transformFromLayer; +var tx=_112.tx*_114.a+_112.ty*_114.c+_114.tx; +_112.ty=_112.tx*_114.b+_112.ty*_114.d+_114.ty; +_112.tx=tx; +var a=_112.a*_114.a+_112.b*_114.c,b=_112.a*_114.b+_112.b*_114.d,c=_112.c*_114.a+_112.d*_114.c; +_112.d=_112.c*_114.b+_112.d*_114.d; +_112.a=a; +_112.b=b; +_112.c=c; +_113=_113._superlayer; +} +if(_113==_111){ +return _112; +} +} +var _119=[],_113=_111; +while(_113){ +_119.push(_113); +_113=_113._superlayer; +} +var _11a=_119.length; +while(_11a--){ +var _11b=_119[_11a]._transformToLayer; +var tx=_112.tx*_11b.a+_112.ty*_11b.c+_11b.tx; +_112.ty=_112.tx*_11b.b+_112.ty*_11b.d+_11b.ty; +_112.tx=tx; +var a=_112.a*_11b.a+_112.b*_11b.c,b=_112.a*_11b.b+_112.b*_11b.d,c=_112.c*_11b.a+_112.d*_11b.c; +_112.d=_112.c*_11b.b+_112.d*_11b.d; +_112.a=a; +_112.b=b; +_112.c=c; +} +return _112; +}; +p;23;CAMediaTimingFunction.jI;21;Foundation/CPObject.jI;25;Foundation/CPDictionary.jI;21;Foundation/CPString.jc;2072; +kCAMediaTimingFunctionLinear="kCAMediaTimingFunctionLinear"; +kCAMediaTimingFunctionEaseIn="kCAMediaTimingFunctionEaseIn"; +kCAMediaTimingFunctionEaseOut="kCAMediaTimingFunctionEaseOut"; +kCAMediaTimingFunctionEaseInEaseOut="kCAMediaTimingFunctionEaseInEaseOut"; +var _1=nil; +var _2=objj_allocateClassPair(CPObject,"CAMediaTimingFunction"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_c1x"),new objj_ivar("_c1y"),new objj_ivar("_c2x"),new objj_ivar("_c2y")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithControlPoints::::"),function(_4,_5,_6,_7,_8,_9){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPObject")},"init"); +if(_4){ +_c1x=_6; +_c1y=_7; +_c2x=_8; +_c2y=_9; +} +return _4; +} +}),new objj_method(sel_getUid("getControlPointAtIndex:values:"),function(_a,_b,_c,_d){ +with(_a){ +if(_c==0){ +_d[0]=0; +_d[1]=0; +}else{ +if(_c==1){ +_d[0]=_c1x; +_d[1]=_c1y; +}else{ +if(_c==2){ +_d[0]=_c2x; +_d[1]=_c2y; +}else{ +_d[0]=1; +_d[1]=1; +} +} +} +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("functionWithName:"),function(_e,_f,_10){ +with(_e){ +if(!_1){ +_1=objj_msgSend(CPDictionary,"dictionary"); +objj_msgSend(_1,"setObject:forKey:",objj_msgSend(CAMediaTimingFunction,"functionWithControlPoints::::",0,0,1,1),kCAMediaTimingFunctionLinear); +objj_msgSend(_1,"setObject:forKey:",objj_msgSend(CAMediaTimingFunction,"functionWithControlPoints::::",0.42,0,1,1),kCAMediaTimingFunctionEaseIn); +objj_msgSend(_1,"setObject:forKey:",objj_msgSend(CAMediaTimingFunction,"functionWithControlPoints::::",0,0,0.58,1),kCAMediaTimingFunctionEaseOut); +objj_msgSend(_1,"setObject:forKey:",objj_msgSend(CAMediaTimingFunction,"functionWithControlPoints::::",0.42,0,0.58,1),kCAMediaTimingFunctionEaseInEaseOut); +} +return objj_msgSend(_1,"objectForKey:",_10); +} +}),new objj_method(sel_getUid("functionWithControlPoints::::"),function(_11,_12,c1x,c1y,c2x,c2y){ +with(_11){ +return objj_msgSend(objj_msgSend(_11,"alloc"),"initWithControlPoints::::",c1x,c1y,c2x,c2y); +} +})]); +p;19;CGAffineTransform.ji;12;CGGeometry.jc;2950; +CGAffineTransformMake=function(a,b,c,d,tx,ty){ +return {a:a,b:b,c:c,d:d,tx:tx,ty:ty}; +}; +CGAffineTransformMakeIdentity=function(){ +return {a:1,b:0,c:0,d:1,tx:0,ty:0}; +}; +CGAffineTransformMakeCopy=function(_7){ +return {a:_7.a,b:_7.b,c:_7.c,d:_7.d,tx:_7.tx,ty:_7.ty}; +}; +CGAffineTransformMakeScale=function(sx,sy){ +return {a:sx,b:0,c:0,d:sy,tx:0,ty:0}; +}; +CGAffineTransformMakeTranslation=function(tx,ty){ +return {a:1,b:0,c:0,d:1,tx:tx,ty:ty}; +}; +CGAffineTransformTranslate=function(_c,tx,ty){ +return {a:_c.a,b:_c.b,c:_c.c,d:_c.d,tx:_c.tx+_c.a*tx+_c.c*ty,ty:_c.ty+_c.b*tx+_c.d*ty}; +}; +CGAffineTransformScale=function(_f,sx,sy){ +return {a:_f.a*sx,b:_f.b*sx,c:_f.c*sy,d:_f.d*sy,tx:_f.tx,ty:_f.ty}; +}; +CGAffineTransformConcat=function(lhs,rhs){ +return {a:lhs.a*rhs.a+lhs.b*rhs.c,b:lhs.a*rhs.b+lhs.b*rhs.d,c:lhs.c*rhs.a+lhs.d*rhs.c,d:lhs.c*rhs.b+lhs.d*rhs.d,tx:lhs.tx*rhs.a+lhs.ty*rhs.c+rhs.tx,ty:lhs.tx*rhs.b+lhs.ty*rhs.d+rhs.ty}; +}; +CGPointApplyAffineTransform=function(_14,_15){ +return {x:_14.x*_15.a+_14.y*_15.c+_15.tx,y:_14.x*_15.b+_14.y*_15.d+_15.ty}; +}; +CGSizeApplyAffineTransform=function(_16,_17){ +return {width:_16.width*_17.a+_16.height*_17.c,height:_16.width*_17.b+_16.height*_17.d}; +}; +CGAffineTransformIsIdentity=function(_18){ +return (_18.a==1&&_18.b==0&&_18.c==0&&_18.d==1&&_18.tx==0&&_18.ty==0); +}; +CGAffineTransformEqualToTransform=function(lhs,rhs){ +return (lhs.a==rhs.a&&lhs.b==rhs.b&&lhs.c==rhs.c&&lhs.d==rhs.d&&lhs.tx==rhs.tx&&lhs.ty==rhs.ty); +}; +CGStringCreateWithCGAffineTransform=function(_1b){ +return (" [[ "+_1b.a+", "+_1b.b+", 0 ], [ "+_1b.c+", "+_1b.d+", 0 ], [ "+_1b.tx+", "+_1b.ty+", 1]]"); +}; +CGAffineTransformCreateCopy=function(_1c){ +return {a:_1c.a,b:_1c.b,c:_1c.c,d:_1c.d,tx:_1c.tx,ty:_1c.ty}; +}; +CGAffineTransformMakeRotation=function(_1d){ +var sin=SIN(_1d),cos=COS(_1d); +return {a:cos,b:sin,c:-sin,d:cos,tx:0,ty:0}; +}; +CGAffineTransformRotate=function(_20,_21){ +var sin=SIN(_21),cos=COS(_21); +return {a:_20.a*cos+_20.c*sin,b:_20.b*cos+_20.d*sin,c:_20.c*cos-_20.a*sin,d:_20.d*cos-_20.b*sin,tx:_20.tx,ty:_20.ty}; +}; +CGAffineTransformInvert=function(_24){ +var _25=1/(_24.a*_24.d-_24.b*_24.c); +return {a:_25*_24.d,b:-_25*_24.b,c:-_25*_24.c,d:_25*_24.a,tx:_25*(_24.c*_24.ty-_24.d*_24.tx),ty:_25*(_24.b*_24.tx-_24.a*_24.ty)}; +}; +CGRectApplyAffineTransform=function(_26,_27){ +var top=(_26.origin.y),_29=(_26.origin.x),_2a=(_26.origin.x+_26.size.width),_2b=(_26.origin.y+_26.size.height),_2c=CGPointApplyAffineTransform({x:_29,y:top},_27),_2d=CGPointApplyAffineTransform({x:_2a,y:top},_27),_2e=CGPointApplyAffineTransform({x:_29,y:_2b},_27),_2f=CGPointApplyAffineTransform({x:_2a,y:_2b},_27),_30=MIN(_2c.x,_2d.x,_2e.x,_2f.x),_31=MAX(_2c.x,_2d.x,_2e.x,_2f.x),_32=MIN(_2c.y,_2d.y,_2e.y,_2f.y),_33=MAX(_2c.y,_2d.y,_2e.y,_2f.y); +return {origin:{x:_30,y:_32},size:{width:(_31-_30),height:(_33-_32)}}; +}; +CPStringFromCGAffineTransform=function(_34){ +return "{"+_34.a+", "+_34.b+", "+_34.c+", "+_34.d+", "+_34.tx+", "+_34.ty+"}"; +}; +p;9;CGColor.ji;14;CGColorSpace.jc;2065; +var _1=0; +CFHashCode=function(_2){ +if(!_2.hash){ +_2.hash=++_1; +} +return _2; +}; +kCGColorWhite="kCGColorWhite"; +kCGColorBlack="kCGColorBlack"; +kCGColorClear="kCGColorClear"; +var _3={}; +CGColorGetConstantColor=function(_4){ +alert("FIX ME"); +}; +CGColorRetain=function(_5){ +return _5; +}; +CGColorRelease=function(){ +}; +CGColorCreate=function(_6,_7){ +if(!_6||!_7){ +return NULL; +} +var _7=_7.slice(); +CGColorSpaceStandardizeComponents(_6,_7); +var _8=CFHashCode(_6)+_7.join(""); +if(_3[_8]){ +return _3[_8]; +} +return _3[_8]={colorspace:_6,pattern:NULL,components:_7}; +}; +CGColorCreateCopy=function(_9){ +return _9; +}; +CGColorCreateGenericGray=function(_a,_b){ +return CGColorCreate(0,[_a,_b]); +}; +CGColorCreateGenericRGB=function(_c,_d,_e,_f){ +return CGColorCreate(0,[_c,_d,_e,_f]); +}; +CGColorCreateGenericCMYK=function(_10,_11,_12,_13,_14){ +return CGColorCreate(0,[_10,_11,_12,_13,_14]); +}; +CGColorCreateCopyWithAlpha=function(_15,_16){ +var _17=_15.components; +if(!_15||_16==_17[_17.length-1]){ +return _15; +} +if(_15.pattern){ +var _18=CGColorCreateWithPattern(_15.colorspace,_15.pattern,_17); +}else{ +var _18=CGColorCreate(_15.colorspace,_17); +} +_18.components[_17.length-1]=_16; +return _18; +}; +CGColorCreateWithPattern=function(_19,_1a,_1b){ +if(!_19||!_1a||!_1b){ +return NULL; +} +return {colorspace:_19,pattern:_1a,components:_1b.slice()}; +}; +CGColorEqualToColor=function(lhs,rhs){ +if(lhs==rhs){ +return true; +} +if(!lhs||!rhs){ +return false; +} +var _1e=lhs.components,_1f=rhs.components,_20=_1e.length; +if(_20!=_1f.length){ +return false; +} +while(_20--){ +if(_1e[_20]!=_1f[_20]){ +return false; +} +} +if(lhs.pattern!=rhs.pattern){ +return false; +} +if(CGColorSpaceEqualToColorSpace(lhs.colorspace,rhs.colorspace)){ +return false; +} +return true; +}; +CGColorGetAlpha=function(_21){ +var _22=_21.components; +return _22[_22.length-1]; +}; +CGColorGetColorSpace=function(_23){ +return _23.colorspace; +}; +CGColorGetComponents=function(_24){ +return _24.components; +}; +CGColorGetNumberOfComponents=function(_25){ +return _25.components.length; +}; +CGColorGetPattern=function(_26){ +return _26.pattern; +}; +p;14;CGColorSpace.jc;3502; +kCGColorSpaceModelUnknown=-1; +kCGColorSpaceModelMonochrome=0; +kCGColorSpaceModelRGB=1; +kCGColorSpaceModelCMYK=2; +kCGColorSpaceModelLab=3; +kCGColorSpaceModelDeviceN=4; +kCGColorSpaceModelIndexed=5; +kCGColorSpaceModelPattern=6; +kCGColorSpaceGenericGray="CGColorSpaceGenericGray"; +kCGColorSpaceGenericRGB="CGColorSpaceGenericRGB"; +kCGColorSpaceGenericCMYK="CGColorSpaceGenericCMYK"; +kCGColorSpaceGenericRGBLinear="CGColorSpaceGenericRGBLinear"; +kCGColorSpaceGenericRGBHDR="CGColorSpaceGenericRGBHDR"; +kCGColorSpaceAdobeRGB1998="CGColorSpaceAdobeRGB1998"; +kCGColorSpaceSRGB="CGColorSpaceSRGB"; +var _1={}; +CGColorSpaceCreateCalibratedGray=function(_2,_3,_4){ +return {model:kCGColorSpaceModelMonochrome,count:1,base:NULL}; +}; +CGColorSpaceCreateCalibratedRGB=function(_5,_6,_7){ +return {model:kCGColorSpaceModelRGB,count:1,base:NULL}; +}; +CGColorSpaceCreateICCBased=function(_8,_9,_a,_b){ +return NULL; +}; +CGColorSpaceCreateLab=function(_c,_d,_e){ +return NULL; +}; +CGColorSpaceCreateDeviceCMYK=function(){ +return CGColorSpaceCreateWithName(kCGColorSpaceGenericCMYK); +}; +CGColorSpaceCreateDeviceGray=function(){ +return CGColorSpaceCreateWithName(kCGColorSpaceGenericGray); +}; +CGColorSpaceCreateDeviceRGB=function(){ +return CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB); +}; +CGColorSpaceCreateWithPlatformColorSpace=function(){ +return NULL; +}; +CGColorSpaceCreateIndexed=function(_f,_10,_11){ +return NULL; +}; +CGColorSpaceCreatePattern=function(_12){ +if(_12){ +return {model:kCGColorSpaceModelPattern,count:_12.count,base:_12}; +} +return {model:kCGColorSpaceModelPattern,count:0,base:NULL}; +}; +CGColorSpaceCreateWithName=function(_13){ +var _14=_1[_13]; +if(_14){ +return _14; +} +switch(_13){ +case kCGColorSpaceGenericGray: +return _1[_13]={model:kCGColorSpaceModelMonochrome,count:1,base:NULL}; +case kCGColorSpaceGenericRGB: +return _1[_13]={model:kCGColorSpaceModelRGB,count:3,base:NULL}; +case kCGColorSpaceGenericCMYK: +return _1[_13]={model:kCGColorSpaceModelCMYK,count:4,base:NULL}; +case kCGColorSpaceGenericRGBLinear: +return _1[_13]={model:kCGColorSpaceModelRGB,count:3,base:NULL}; +case kCGColorSpaceGenericRGBHDR: +return _1[_13]={model:kCGColorSpaceModelRGB,count:3,base:NULL}; +case kCGColorSpaceAdobeRGB1998: +return _1[_13]={model:kCGColorSpaceModelRGB,count:3,base:NULL}; +case kCGColorSpaceSRGB: +return _1[_13]={model:kCGColorSpaceModelRGB,count:3,base:NULL}; +} +return NULL; +}; +CGColorSpaceCopyICCProfile=function(_15){ +return NULL; +}; +CGColorSpaceGetNumberOfComponents=function(_16){ +return _16.count; +}; +CGColorSpaceGetTypeID=function(_17){ +}; +CGColorSpaceGetModel=function(_18){ +return _18.model; +}; +CGColorSpaceGetBaseColorSpace=function(_19){ +}; +CGColorSpaceGetColorTableCount=function(_1a){ +}; +CGColorSpaceGetColorTable=function(_1b){ +}; +CGColorSpaceRelease=function(_1c){ +}; +CGColorSpaceRetain=function(_1d){ +return _1d; +}; +CGColorSpaceStandardizeComponents=function(_1e,_1f){ +var _20=_1e.count; +if(_20>_1f.length){ +_1f[_20]=1; +return; +} +var _21=_1f[_20]; +if(_21<0){ +_1f[_20]=0; +}else{ +if(_21>1){ +_1f[_20]=1; +}else{ +_1f[_20]=ROUND(_21*1000)/1000; +} +} +if(_1e.base){ +_1e=_1e.base; +} +switch(_1e.model){ +case kCGColorSpaceModelMonochrome: +case kCGColorSpaceModelRGB: +case kCGColorSpaceModelCMYK: +case kCGColorSpaceModelDeviceN: +while(_20--){ +if(_20>_1f.length){ +_1f[_20]=1; +return; +} +var _21=_1f[_20]; +if(_21<0){ +_1f[_20]=0; +}else{ +if(_21>1){ +_1f[_20]=1; +}else{ +_1f[_20]=ROUND(_21*255)/255; +} +} +} +break; +case kCGColorSpaceModelIndexed: +case kCGColorSpaceModelLab: +case kCGColorSpaceModelPattern: +break; +} +}; +p;11;CGContext.ji;12;CGGeometry.ji;19;CGAffineTransform.ji;8;CGPath.jc;20322; +kCGLineCapButt=0; +kCGLineCapRound=1; +kCGLineCapSquare=2; +kCGLineJoinMiter=0; +kCGLineJoinRound=1; +kCGLineJoinBevel=2; +kCGPathFill=0; +kCGPathEOFill=1; +kCGPathStroke=2; +kCGPathFillStroke=3; +kCGPathEOFillStroke=4; +kCGBlendModeNormal=0; +kCGBlendModeMultiply=1; +kCGBlendModeScreen=2; +kCGBlendModeOverlay=3; +kCGBlendModeDarken=4; +kCGBlendModeLighten=5; +kCGBlendModeColorDodge=6; +kCGBlendModeColorBurn=7; +kCGBlendModeSoftLight=8; +kCGBlendModeHardLight=9; +kCGBlendModeDifference=10; +kCGBlendModeExclusion=11; +kCGBlendModeHue=12; +kCGBlendModeSaturation=13; +kCGBlendModeColor=14; +kCGBlendModeLuminosity=15; +kCGBlendModeClear=16; +kCGBlendModeCopy=17; +kCGBlendModeSourceIn=18; +kCGBlendModeSourceOut=19; +kCGBlendModeSourceAtop=20; +kCGBlendModeDestinationOver=21; +kCGBlendModeDestinationIn=22; +kCGBlendModeDestinationOut=23; +kCGBlendModeDestinationAtop=24; +kCGBlendModeXOR=25; +kCGBlendModePlusDarker=26; +kCGBlendModePlusLighter=27; +CGContextRelease=function(){ +}; +CGContextRetain=function(_1){ +return _1; +}; +if(!CPFeatureIsCompatible(CPHTMLCanvasFeature)){ +CGGStateCreate=function(){ +return {alpha:1,strokeStyle:"#000",fillStyle:"#ccc",lineWidth:1,lineJoin:kCGLineJoinMiter,lineCap:kCGLineCapButt,miterLimit:10,globalAlpha:1,blendMode:kCGBlendModeNormal,shadowOffset:{width:0,height:0},shadowBlur:0,shadowColor:NULL,CTM:{a:1,b:0,c:0,d:1,tx:0,ty:0}}; +}; +CGGStateCreateCopy=function(_2){ +return {alpha:_2.alpha,strokeStyle:_2.strokeStyle,fillStyle:_2.fillStyle,lineWidth:_2.lineWidth,lineJoin:_2.lineJoin,lineCap:_2.lineCap,miterLimit:_2.miterLimit,globalAlpha:_2.globalAlpha,blendMode:_2.blendMode,shadowOffset:_2.shadowOffset,shadowBlur:_2.shadowBlur,shadowColor:_2.shadowColor,CTM:{a:_2.CTM.a,b:_2.CTM.b,c:_2.CTM.c,d:_2.CTM.d,tx:_2.CTM.tx,ty:_2.CTM.ty}}; +}; +CGBitmapGraphicsContextCreate=function(){ +return {DOMElement:document.createElement("div"),path:NULL,gState:CGGStateCreate(),gStateStack:[]}; +}; +CGContextSaveGState=function(_3){ +_3.gStateStack.push(CGGStateCreateCopy(_3.gState)); +}; +CGContextRestoreGState=function(_4){ +_4.gState=_4.gStateStack.pop(); +}; +CGContextSetLineCap=function(_5,_6){ +_5.gState.lineCap=_6; +}; +CGContextSetLineJoin=function(_7,_8){ +_7.gState.lineJoin=_8; +}; +CGContextSetLineWidth=function(_9,_a){ +_9.gState.lineWidth=_a; +}; +CGContextSetMiterLimit=function(_b,_c){ +_b.gState.miterLimit=_c; +}; +CGContextSetBlendMode=function(_d,_e){ +_d.gState.blendMode=_e; +}; +CGContextAddArc=function(_f,x,y,_12,_13,_14,_15){ +CGPathAddArc(_f.path,_f.gState.CTM,x,y,_12,_13,_14,_15); +}; +CGContextAddArcToPoint=function(_16,x1,y1,x2,y2,_1b){ +CGPathAddArcToPoint(_16.path,_16.gState.CTM,x1,y1,x2,y2,_1b); +}; +CGContextAddCurveToPoint=function(_1c,_1d,_1e,_1f,_20,x,y){ +CGPathAddCurveToPoint(_1c.path,_1c.gState.CTM,_1d,_1e,_1f,_20,x,y); +}; +CGContextAddLines=function(_23,_24,_25){ +CGPathAddLines(_23.path,_23.gState.CTM,_24,_25); +}; +CGContextAddLineToPoint=function(_26,x,y){ +CGPathAddLineToPoint(_26.path,_26.gState.CTM,x,y); +}; +CGContextAddPath=function(_29,_2a){ +if(!_29||CGPathIsEmpty(_2a)){ +return; +} +if(!_29.path){ +_29.path=CGPathCreateMutable(); +} +CGPathAddPath(_29.path,_29.gState.CTM,_2a); +}; +CGContextAddQuadCurveToPoint=function(_2b,cpx,cpy,x,y){ +CGPathAddQuadCurveToPoint(_2b.path,_2b.gState.CTM,cpx,cpy,x,y); +}; +CGContextAddRect=function(_30,_31){ +CGPathAddRect(_30.path,_30.gState.CTM,_31); +}; +CGContextAddRects=function(_32,_33,_34){ +CGPathAddRects(_32.path,_32.gState.CTM,_33,_34); +}; +CGContextBeginPath=function(_35){ +_35.path=CGPathCreateMutable(); +}; +CGContextClosePath=function(_36){ +CGPathCloseSubpath(_36.path); +}; +CGContextMoveToPoint=function(_37,x,y){ +if(!_37.path){ +_37.path=CGPathCreateMutable(); +} +CGPathMoveToPoint(_37.path,_37.gState.CTM,x,y); +}; +CGContextFillRect=function(_3a,_3b){ +CGContextFillRects(_3a,[_3b],1); +}; +CGContextFillRects=function(_3c,_3d,_3e){ +if(arguments[2]===undefined){ +var _3e=_3d.length; +} +CGContextBeginPath(_3c); +CGContextAddRects(_3c,_3d,_3e); +CGContextClosePath(_3c); +CGContextDrawPath(_3c,kCGPathFill); +}; +CGContextStrokeRect=function(_3f,_40){ +CGContextBeginPath(_3f); +CGContextAddRect(_3f,_40); +CGContextClosePath(_3f); +CGContextDrawPath(_3f,kCGPathStroke); +}; +CGContextStrokeRectWithWidth=function(_41,_42,_43){ +CGContextSaveGState(_41); +CGContextSetLineWidth(_41,_43); +CGContextStrokeRect(_41,_42); +CGContextRestoreGState(_41); +}; +CGContextConcatCTM=function(_44,_45){ +var CTM=_44.gState.CTM; +var tx=CTM.tx*_45.a+CTM.ty*_45.c+_45.tx; +CTM.ty=CTM.tx*_45.b+CTM.ty*_45.d+_45.ty; +CTM.tx=tx; +var a=CTM.a*_45.a+CTM.b*_45.c,b=CTM.a*_45.b+CTM.b*_45.d,c=CTM.c*_45.a+CTM.d*_45.c; +CTM.d=CTM.c*_45.b+CTM.d*_45.d; +CTM.a=a; +CTM.b=b; +CTM.c=c; +}; +CGContextGetCTM=function(_4b){ +return _4b.gState.CTM; +}; +CGContextRotateCTM=function(_4c,_4d){ +var _4e=_4c.gState; +_4e.CTM=CGAffineTransformRotate(_4e.CTM,_4d); +}; +CGContextScaleCTM=function(_4f,sx,sy){ +var _52=_4f.gState; +_52.CTM={a:_52.CTM.a*sx,b:_52.CTM.b*sx,c:_52.CTM.c*sy,d:_52.CTM.d*sy,tx:_52.CTM.tx,ty:_52.CTM.ty}; +}; +CGContextTranslateCTM=function(_53,tx,ty){ +var _56=_53.gState; +_56.CTM={a:_56.CTM.a,b:_56.CTM.b,c:_56.CTM.c,d:_56.CTM.d,tx:_56.CTM.tx+_56.CTM.a*tx+_56.CTM.c*ty,ty:_56.CTM.ty+_56.CTM.b*tx+_56.CTM.d*ty}; +}; +CGContextSetShadow=function(_57,_58,_59){ +var _5a=_57.gState; +_5a.shadowOffset={width:_58.width,height:_58.height}; +_5a.shadowBlur=_59; +_5a.shadowColor=objj_msgSend(CPColor,"shadowColor"); +}; +CGContextSetShadowWithColor=function(_5b,_5c,_5d,_5e){ +var _5f=_5b.gState; +_5f.shadowOffset={width:_5c.width,height:_5c.height}; +_5f.shadowBlur=_5d; +_5f.shadowColor=_5e; +}; +CGContextSetAlpha=function(_60,_61){ +_60.gState.alpha=MAX(MIN(_61,1),0); +}; +} +CGContextEOFillPath=function(_62){ +CGContextDrawPath(_62,kCGPathEOFill); +}; +CGContextFillPath=function(_63){ +CGContextDrawPath(_63,kCGPathFill); +}; +var _64=4*((SQRT2-1)/3); +CGContextAddEllipseInRect=function(_65,_66){ +CGContextAddPath(_65,CGPathWithEllipseInRect(_66)); +}; +CGContextFillEllipseInRect=function(_67,_68){ +CGContextBeginPath(_67); +CGContextAddEllipseInRect(_67,_68); +CGContextClosePath(_67); +CGContextFillPath(_67); +}; +CGContextStrokeEllipseInRect=function(_69,_6a){ +CGContextBeginPath(_69); +CGContextAddEllipseInRect(_69,_6a); +CGContextClosePath(_69); +CGContextStrokePath(_69); +}; +CGContextStrokePath=function(_6b){ +CGContextDrawPath(_6b,kCGPathStroke); +}; +CGContextStrokeLineSegments=function(_6c,_6d,_6e){ +var i=0; +if(arguments["count"]==NULL){ +var _6e=_6d.length; +} +CGContextBeginPath(_6c); +for(;i<_6e;i+=2){ +CGContextMoveToPoint(_6c,_6d[i].x,_6d[i].y); +CGContextAddLineToPoint(_6c,_6d[i+1].x,_6d[i+1].y); +} +CGContextStrokePath(_6c); +}; +CGContextSetFillColor=function(_70,_71){ +if(_71){ +_70.gState.fillStyle=objj_msgSend(_71,"cssString"); +} +}; +CGContextSetStrokeColor=function(_72,_73){ +if(_73){ +_72.gState.strokeStyle=objj_msgSend(_73,"cssString"); +} +}; +CGContextFillRoundedRectangleInRect=function(_74,_75,_76,ne,se,sw,nw){ +CGContextAddPath(_74,CGPathWithRoundedRectangleInRect(_75,_76,_76,ne,se,sw,nw)); +CGContextFillPath(_74); +}; +CGContextStrokeRoundedRectangleInRect=function(_7b,_7c,_7d,ne,se,sw,nw){ +CGContextAddPath(_7b,CGPathWithRoundedRectangleInRect(_7c,_7d,_7d,ne,se,sw,nw)); +CGContextStrokePath(_7b); +}; +if(CPFeatureIsCompatible(CPHTMLCanvasFeature)){ +var _82=["butt","round","square"],_83=["miter","round","bevel"],_84=["source-over","source-over","source-over","source-over","darker","lighter","source-over","source-over","source-over","source-over","source-over","source-over","source-over","source-over","source-over","source-over","source-over","copy","source-in","source-out","source-atop","destination-over","destination-in","destination-out","destination-atop","xor","source-over","source-over"]; +CGContextSaveGState=function(_85){ +_85.save(); +}; +CGContextRestoreGState=function(_86){ +_86.restore(); +}; +CGContextSetLineCap=function(_87,_88){ +_87.lineCap=_82[_88]; +}; +CGContextSetLineJoin=function(_89,_8a){ +_89.lineJoin=_83[_8a]; +}; +CGContextSetLineWidth=function(_8b,_8c){ +_8b.lineWidth=_8c; +}; +CGContextSetMiterLimit=function(_8d,_8e){ +_8d.miterLimit=_8e; +}; +CGContextSetBlendMode=function(_8f,_90){ +_8f.globalCompositeOperation=_84[_90]; +}; +CGContextAddArc=function(_91,x,y,_94,_95,_96,_97){ +_91.arc(x,y,_94,_95,_96,!_97); +}; +CGContextAddArcToPoint=function(_98,x1,y1,x2,y2,_9d){ +_98.arcTo(x1,y1,x2,y2,_9d); +}; +CGContextAddCurveToPoint=function(_9e,_9f,_a0,_a1,_a2,x,y){ +_9e.bezierCurveTo(_9f,_a0,_a1,_a2,x,y); +}; +CGContextAddLineToPoint=function(_a5,x,y){ +_a5.lineTo(x,y); +}; +CGContextAddPath=function(_a8,_a9){ +if(!_a8||CGPathIsEmpty(_a9)){ +return; +} +var _aa=_a9.elements,i=0,_ac=_a9.count; +for(;i<_ac;++i){ +var _ad=_aa[i],_ae=_ad.type; +switch(_ae){ +case kCGPathElementMoveToPoint: +_a8.moveTo(_ad.x,_ad.y); +break; +case kCGPathElementAddLineToPoint: +_a8.lineTo(_ad.x,_ad.y); +break; +case kCGPathElementAddQuadCurveToPoint: +_a8.quadraticCurveTo(_ad.cpx,_ad.cpy,_ad.x,_ad.y); +break; +case kCGPathElementAddCurveToPoint: +_a8.bezierCurveTo(_ad.cp1x,_ad.cp1y,_ad.cp2x,_ad.cp2y,_ad.x,_ad.y); +break; +case kCGPathElementCloseSubpath: +_a8.closePath(); +break; +case kCGPathElementAddArc: +_a8.arc(_ad.x,_ad.y,_ad.radius,_ad.startAngle,_ad.endAngle,_ad.clockwise); +break; +case kCGPathElementAddArcTo: +break; +} +} +}; +CGContextAddRect=function(_af,_b0){ +_af.rect((_b0.origin.x),(_b0.origin.y),(_b0.size.width),(_b0.size.height)); +}; +CGContextAddRects=function(_b1,_b2,_b3){ +var i=0; +if(arguments["count"]==NULL){ +var _b3=_b2.length; +} +for(;i<_b3;++i){ +var _b5=_b2[i]; +_b1.rect((_b5.origin.x),(_b5.origin.y),(_b5.size.width),(_b5.size.height)); +} +}; +CGContextBeginPath=function(_b6){ +_b6.beginPath(); +}; +CGContextClosePath=function(_b7){ +_b7.closePath(); +}; +CGContextMoveToPoint=function(_b8,x,y){ +_b8.moveTo(x,y); +}; +CGContextClearRect=function(_bb,_bc){ +_bb.clearRect((_bc.origin.x),(_bc.origin.y),(_bc.size.width),(_bc.size.height)); +}; +CGContextDrawPath=function(_bd,_be){ +if(_be==kCGPathFill||_be==kCGPathFillStroke){ +_bd.fill(); +}else{ +if(_be==kCGPathEOFill||_be==kCGPathEOFillStroke){ +alert("not implemented!!!"); +} +} +if(_be==kCGPathStroke||_be==kCGPathFillStroke||_be==kCGPathEOFillStroke){ +_bd.stroke(); +} +}; +CGContextFillRect=function(_bf,_c0){ +_bf.fillRect((_c0.origin.x),(_c0.origin.y),(_c0.size.width),(_c0.size.height)); +}; +CGContextFillRects=function(_c1,_c2,_c3){ +var i=0; +if(arguments["count"]==NULL){ +var _c3=_c2.length; +} +for(;i<_c3;++i){ +var _c5=_c2[i]; +_c1.fillRect((_c5.origin.x),(_c5.origin.y),(_c5.size.width),(_c5.size.height)); +} +}; +CGContextStrokeRect=function(_c6,_c7){ +_c6.strokeRect((_c7.origin.x),(_c7.origin.y),(_c7.size.width),(_c7.size.height)); +}; +CGContextClip=function(_c8){ +_c8.clip(); +}; +CGContextClipToRect=function(_c9,_ca){ +_c9.beginPath(); +_c9.rect((_ca.origin.x),(_ca.origin.y),(_ca.size.width),(_ca.size.height)); +_c9.closePath(); +_c9.clip(); +}; +CGContextClipToRects=function(_cb,_cc,_cd){ +if(arguments["count"]==NULL){ +var _cd=_cc.length; +} +_cb.beginPath(); +CGContextAddRects(_cb,_cc,_cd); +_cb.clip(); +}; +CGContextSetAlpha=function(_ce,_cf){ +_ce.globalAlpha=_cf; +}; +CGContextSetFillColor=function(_d0,_d1){ +_d0.fillStyle=objj_msgSend(_d1,"cssString"); +}; +CGContextSetStrokeColor=function(_d2,_d3){ +_d2.strokeStyle=objj_msgSend(_d3,"cssString"); +}; +CGContextSetShadow=function(_d4,_d5,_d6){ +_d4.shadowOffsetX=_d5.width; +_d4.shadowOffsetY=_d5.height; +_d4.shadowBlur=_d6; +}; +CGContextSetShadowWithColor=function(_d7,_d8,_d9,_da){ +_d7.shadowOffsetX=_d8.width; +_d7.shadowOffsetY=_d8.height; +_d7.shadowBlur=_d9; +_d7.shadowColor=objj_msgSend(_da,"cssString"); +}; +CGContextRotateCTM=function(_db,_dc){ +_db.rotate(_dc); +}; +CGContextScaleCTM=function(_dd,sx,sy){ +_dd.scale(sx,sy); +}; +CGContextTranslateCTM=function(_e0,tx,ty){ +_e0.translate(tx,ty); +}; +eigen=function(_e3){ +alert("IMPLEMENT ME!"); +}; +if(CPFeatureIsCompatible(CPJavaScriptCanvasTransformFeature)){ +CGContextConcatCTM=function(_e4,_e5){ +_e4.transform(_e5.a,_e5.b,_e5.c,_e5.d,_e5.tx,_e5.ty); +}; +}else{ +CGContextConcatCTM=function(_e6,_e7){ +var a=_e7.a,b=_e7.b,c=_e7.c,d=_e7.d,tx=_e7.tx,ty=_e7.ty,sx=1,sy=1,a1=0,a2=0; +if(b==0&&c==0){ +sx=a; +sy=d; +}else{ +if(a*b==-c*d){ +var _f2=(a*d<0||b*c>0)?-1:1,a2=(ATAN2(b,d)+ATAN2(-_f2*c,_f2*a))/2,cos=COS(a2),sin=SIN(a2); +if(cos==0){ +sx=-c/sin; +sy=b/sin; +}else{ +if(sin==0){ +sx=a/cos; +sy=d/cos; +}else{ +abs_cos=ABS(cos); +abs_sin=ABS(sin); +sx=(abs_cos*a/cos+abs_sin*-c/sin)/(abs_cos+abs_sin); +sy=(abs_cos*d/cos+abs_sin*b/sin)/(abs_cos+abs_sin); +} +} +}else{ +if(a*c==-b*d){ +var _f2=(a*d<0||b*c>0)?-1:1; +a1=(Math.atan2(_f2*b,_f2*a)+Math.atan2(-c,d))/2,cos=COS(a1),sin=SIN(a1); +if(cos==0){ +sx=b/sin; +sy=-c/sin; +}else{ +if(sin==0){ +sx=a/cos; +sy=d/cos; +}else{ +abs_cos=ABS(cos); +abs_sin=ABS(sin); +sx=(abs_cos*a/cos+abs_sin*b/sin)/(abs_cos+abs_sin); +sy=(abs_cos*d/cos+abs_sin*-c/sin)/(abs_cos+abs_sin); +} +} +}else{ +var _f5=CGAffineTransformMake(a,c,b,d,0,0),u=eigen(CGAffineTransformConcat(_e7,_f5)),v=eigen(CGAffineTransformConcat(_f5,_e7)),U=CGAffineTransformMake(u.vector_1.x,u.vector_2.x,u.vector_1.y,u.vector_2.y,0,0),VT=CGAffineTransformMake(v.vector_1.x,v.vector_1.y,v.vector_2.x,v.vector_2.y,0,0),S=CGAffineTransformConcat(CGAffineTransformConcat(CGAffineTransformInvert(U),_e7),CGAffineTransformInvert(VT)); +a=VT.a; +b=VT.b; +c=VT.c; +d=VT.d; +var _f2=(a*d<0||b*c>0)?-1:1,a2=(ATAN2(b,d)+ATAN2(-_f2*c,_f2*a))/2,cos=COS(a2),sin=SIN(a2); +if(cos==0){ +sx=-c/sin; +sy=b/sin; +}else{ +if(sin==0){ +sx=a/cos; +sy=d/cos; +}else{ +abs_cos=ABS(cos); +abs_sin=ABS(sin); +sx=(abs_cos*a/cos+abs_sin*-c/sin)/(abs_cos+abs_sin); +sy=(abs_cos*d/cos+abs_sin*b/sin)/(abs_cos+abs_sin); +} +} +S.a*=sx; +S.d*=sy; +a=U.a; +b=U.b; +c=U.c; +d=U.d; +var _f2=(a*d<0||b*c>0)?-1:1; +a1=(Math.atan2(_f2*b,_f2*a)+Math.atan2(-c,d))/2,cos=COS(a1),sin=SIN(a1); +if(cos==0){ +sx=b/sin; +sy=-c/sin; +}else{ +if(sin==0){ +sx=a/cos; +sy=d/cos; +}else{ +abs_cos=ABS(cos); +abs_sin=ABS(sin); +sx=(abs_cos*a/cos+abs_sin*b/sin)/(abs_cos+abs_sin); +sy=(abs_cos*d/cos+abs_sin*-c/sin)/(abs_cos+abs_sin); +} +} +sx=S.a*sx; +sy=S.d*sy; +} +} +} +if(tx!=0||ty!=0){ +CGContextTranslateCTM(_e6,tx,ty); +} +if(a1!=0){ +CGContextRotateCTM(_e6,a1); +} +if(sx!=1||sy!=1){ +CGContextScaleCTM(_e6,sx,sy); +} +if(a2!=0){ +CGContextRotateCTM(_e6,a2); +} +}; +} +CGContextDrawImage=function(_fb,_fc,_fd){ +_fb.drawImage(_fd._image,(_fc.origin.x),(_fc.origin.y),(_fc.size.width),(_fc.size.height)); +}; +to_string=function(_fe){ +return "rgba("+ROUND(_fe.components[0]*255)+", "+ROUND(_fe.components[1]*255)+", "+ROUND(255*_fe.components[2])+", "+_fe.components[3]+")"; +}; +CGContextDrawLinearGradient=function(_ff,_100,_101,_102,_103){ +var _104=_100.colors,_105=_104.length,_106=_ff.createLinearGradient(_101.x,_101.y,_102.x,_102.y); +while(_105--){ +_106.addColorStop(_100.locations[_105],to_string(_104[_105])); +} +_ff.fillStyle=_106; +_ff.fill(); +}; +CGBitmapGraphicsContextCreate=function(){ +var _107=document.createElement("canvas"),_108=_107.getContext("2d"); +_108.DOMElement=_107; +return _108; +}; +}else{ +if(CPFeatureIsCompatible(CPVMLFeature)){ +var _109=["f","t"],_10a=["flat","round","square"],_10b=["miter","round","bevel"],_10c=[" m "," l ","qb"," c "," x ",[" at "," wa "]]; +var _10d=CGBitmapGraphicsContextCreate; +CGBitmapGraphicsContextCreate=function(){ +document.namespaces.add("cg_vml_","urn:schemas-microsoft-com:vml"); +document.createStyleSheet().cssText="cg_vml_\\:*{behavior:url(#default#VML)}"; +CGBitmapGraphicsContextCreate=_10d; +return _10d(); +}; +CGContextClearRect=function(_10e,_10f){ +if(_10e.buffer!=nil){ +_10e.buffer=""; +}else{ +_10e.DOMElement.innerHTML=""; +} +_10e.path=NULL; +}; +var W=10,H=10,Z=10,Z_2=Z/2; +CGContextDrawImage=function(_114,_115,_116){ +var _117=""; +if(_116.buffer!=nil){ +_117=_116.buffer; +}else{ +var ctm=_114.gState.CTM,_119=CGPointApplyAffineTransform(_115.origin,ctm),_11a=ctm.a==ctm.d&&ctm.b==-ctm.c,vml=[""); +_117=vml.join(""); +} +if(_114.buffer!=nil){ +_114.buffer+=_117; +}else{ +_114.DOMElement.insertAdjacentHTML("BeforeEnd",_117); +} +}; +CGContextDrawPath=function(_11d,_11e){ +if(!_11d||CGPathIsEmpty(_11d.path)){ +return; +} +var _11f=_11d.path.elements,i=0,_121=_11d.path.count,_122=_11d.gState,fill=(_11e==kCGPathFill||_11e==kCGPathFillStroke)?1:0,_124=(_11e==kCGPathStroke||_11e==kCGPathFillStroke)?1:0,_125=_122.alpha,vml=["=x){ +if(_12f.y"); +if(_122.gradient){ +vml.push(_122.gradient); +}else{ +if(fill){ +vml.push(""); +} +} +if(_124){ +vml.push(""); +} +var _131=_122.shadowColor; +if(_131){ +var _132=_122.shadowOffset; +vml.push(""); +} +vml.push(""); +_11d.path=NULL; +if(_11d.buffer!=nil){ +_11d.buffer+=vml.join(""); +}else{ +_11d.DOMElement.insertAdjacentHTML("BeforeEnd",vml.join("")); +} +}; +to_string=function(_133){ +return "rgb("+ROUND(_133.components[0]*255)+", "+ROUND(_133.components[1]*255)+", "+ROUND(255*_133.components[2])+")"; +}; +CGContextDrawLinearGradient=function(_134,_135,_136,_137,_138){ +if(!_134||!_135){ +return; +} +var vml=nil; +if(_135.vml_gradient){ +var _13a=objj_msgSend(objj_msgSend(_135.vml_gradient,"stops"),"sortedArrayUsingSelector:",sel_getUid("comparePosition:")),_13b=objj_msgSend(_13a,"count"); +vml=[""); +}else{ +var _13d=_135.colors,_13b=_13d.length; +vml=[""); +} +_134.gState.gradient=vml.join(""); +console.log(vml.join("")); +}; +} +} +p;12;CGGeometry.jc;5815; +CGPointMake=function(x,y){ +return {x:x,y:y}; +}; +CGPointMakeZero=function(){ +return {x:0,y:0}; +}; +CGPointMakeCopy=function(_3){ +return {x:_3.x,y:_3.y}; +}; +CGPointCreateCopy=function(_4){ +return {x:_4.x,y:_4.y}; +}; +CGPointEqualToPoint=function(_5,_6){ +return (_5.x==_6.x&&_5.y==_6.y); +}; +CGStringFromPoint=function(_7){ +return ("{"+_7.x+", "+_7.y+"}"); +}; +CGSizeMake=function(_8,_9){ +return {width:_8,height:_9}; +}; +CGSizeMakeZero=function(){ +return {width:0,height:0}; +}; +CGSizeMakeCopy=function(_a){ +return {width:_a.width,height:_a.height}; +}; +CGSizeCreateCopy=function(_b){ +return {width:_b.width,height:_b.height}; +}; +CGSizeEqualToSize=function(_c,_d){ +return (_c.width==_d.width&&_c.height==_d.height); +}; +CGStringFromSize=function(_e){ +return ("{"+_e.width+", "+_e.height+"}"); +}; +CGRectMake=function(x,y,_11,_12){ +return {origin:{x:x,y:y},size:{width:_11,height:_12}}; +}; +CGRectMakeZero=function(){ +return {origin:{x:0,y:0},size:{width:0,height:0}}; +}; +CGRectMakeCopy=function(_13){ +return {origin:{x:_13.origin.x,y:_13.origin.y},size:{width:_13.size.width,height:_13.size.height}}; +}; +CGRectCreateCopy=function(_14){ +return {origin:{x:_14.origin.x,y:_14.origin.y},size:{width:_14.size.width,height:_14.size.height}}; +}; +CGRectEqualToRect=function(_15,_16){ +return ((_15.origin.x==_16.origin.x&&_15.origin.y==_16.origin.y)&&(_15.size.width==_16.size.width&&_15.size.height==_16.size.height)); +}; +CGStringFromRect=function(_17){ +return ("{"+("{"+_17.origin.x+", "+_17.origin.y+"}")+", "+("{"+_17.size.width+", "+_17.size.height+"}")+"}"); +}; +CGRectOffset=function(_18,dX,dY){ +return {origin:{x:_18.origin.x+dX,y:_18.origin.y+dY},size:{width:_18.size.width,height:_18.size.height}}; +}; +CGRectInset=function(_1b,dX,dY){ +return {origin:{x:_1b.origin.x+dX,y:_1b.origin.y+dY},size:{width:_1b.size.width-2*dX,height:_1b.size.height-2*dY}}; +}; +CGRectGetHeight=function(_1e){ +return (_1e.size.height); +}; +CGRectGetMaxX=function(_1f){ +return (_1f.origin.x+_1f.size.width); +}; +CGRectGetMaxY=function(_20){ +return (_20.origin.y+_20.size.height); +}; +CGRectGetMidX=function(_21){ +return (_21.origin.x+(_21.size.width)/2); +}; +CGRectGetMidY=function(_22){ +return (_22.origin.y+(_22.size.height)/2); +}; +CGRectGetMinX=function(_23){ +return (_23.origin.x); +}; +CGRectGetMinY=function(_24){ +return (_24.origin.y); +}; +CGRectGetWidth=function(_25){ +return (_25.size.width); +}; +CGRectIsEmpty=function(_26){ +return (_26.size.width<=0||_26.size.height<=0); +}; +CGRectIsNull=function(_27){ +return (_27.size.width<=0||_27.size.height<=0); +}; +CGRectContainsPoint=function(_28,_29){ +return (_29.x>=(_28.origin.x)&&_29.y>=(_28.origin.y)&&_29.x<(_28.origin.x+_28.size.width)&&_29.y<(_28.origin.y+_28.size.height)); +}; +CGInsetMake=function(top,_2b,_2c,_2d){ +return {top:(top),right:(_2b),bottom:(_2c),left:(_2d)}; +}; +CGInsetMakeZero=function(){ +return {top:(0),right:(0),bottom:(0),left:(0)}; +}; +CGInsetMakeCopy=function(_2e){ +return {top:(_2e.top),right:(_2e.right),bottom:(_2e.bottom),left:(_2e.left)}; +}; +CGInsetIsEmpty=function(_2f){ +return ((_2f).top===0&&(_2f).right===0&&(_2f).bottom===0&&(_2f).left===0); +}; +CGRectContainsRect=function(_30,_31){ +var _32=CGRectUnion(_30,_31); +return ((_32.origin.x==_30.origin.x&&_32.origin.y==_30.origin.y)&&(_32.size.width==_30.size.width&&_32.size.height==_30.size.height)); +}; +CGRectIntersectsRect=function(_33,_34){ +var _35=CGRectIntersection(_33,_34); +return !(_35.size.width<=0||_35.size.height<=0); +}; +CGRectIntegral=function(_36){ +_36=CGRectStandardize(_36); +var x=FLOOR((_36.origin.x)),y=FLOOR((_36.origin.y)); +_36.size.width=CEIL((_36.origin.x+_36.size.width))-x; +_36.size.height=CEIL((_36.origin.y+_36.size.height))-y; +_36.origin.x=x; +_36.origin.y=y; +return _36; +}; +CGRectIntersection=function(_39,_3a){ +var _3b={origin:{x:MAX((_39.origin.x),(_3a.origin.x)),y:MAX((_39.origin.y),(_3a.origin.y))},size:{width:0,height:0}}; +_3b.size.width=MIN((_39.origin.x+_39.size.width),(_3a.origin.x+_3a.size.width))-(_3b.origin.x); +_3b.size.height=MIN((_39.origin.y+_39.size.height),(_3a.origin.y+_3a.size.height))-(_3b.origin.y); +return (_3b.size.width<=0||_3b.size.height<=0)?{origin:{x:0,y:0},size:{width:0,height:0}}:_3b; +}; +CGRectStandardize=function(_3c){ +var _3d=(_3c.size.width),_3e=(_3c.size.height),_3f=_3c; +if(_3d<0){ +if(_3f==_3c){ +_3f={origin:{x:_3c.origin.x,y:_3c.origin.y},size:{width:_3c.size.width,height:_3c.size.height}}; +} +_3f.origin.x+=_3d; +_3f.size.width=-_3d; +} +if(_3e<0){ +if(_3f==_3c){ +_3f={origin:{x:_3c.origin.x,y:_3c.origin.y},size:{width:_3c.size.width,height:_3c.size.height}}; +} +_3f.origin.y+=_3e; +_3f.size.height=-_3e; +} +return _3f; +}; +CGRectUnion=function(_40,_41){ +var _42=MIN((_40.origin.x),(_41.origin.x)),_43=MIN((_40.origin.y),(_41.origin.y)),_44=MAX((_40.origin.x+_40.size.width),(_41.origin.x+_41.size.width)),_45=MAX((_40.origin.y+_40.size.height),(_41.origin.y+_41.size.height)); +return {origin:{x:_42,y:_43},size:{width:_44-_42,height:_45-_43}}; +}; +CGPointFromString=function(_46){ +var _47=_46.indexOf(","); +return {x:parseInt(_46.substr(1,_47-1)),y:parseInt(_46.substring(_47+1,_46.length))}; +}; +CGSizeFromString=function(_48){ +var _49=_48.indexOf(","); +return {width:parseInt(_48.substr(1,_49-1)),height:parseInt(_48.substring(_49+1,_48.length))}; +}; +CGRectFromString=function(_4a){ +var _4b=_4a.indexOf(",",_4a.indexOf(",")+1); +return {origin:CGPointFromString(_4a.substr(1,_4b-1)),size:CGSizeFromString(_4a.substring(_4b+2,_4a.length))}; +}; +CGPointFromEvent=function(_4c){ +return {x:_4c.clientX,y:_4c.clientY}; +}; +CGInsetFromString=function(_4d){ +var _4e=_4d.substr(1,_4d.length-2).split(","); +return {top:(parseFloat(_4e[0])),right:(parseFloat(_4e[1])),bottom:(parseFloat(_4e[2])),left:(parseFloat(_4e[3]))}; +}; +CGInsetFromCPString=CGInsetFromString; +CPStringFromCGInset=function(_4f){ +return "{"+_4f.top+", "+_4f.left+", "+_4f.bottom+", "+_4f.right+"}"; +}; +p;12;CGGradient.ji;9;CGColor.ji;14;CGColorSpace.jc;497; +kCGGradientDrawsBeforeStartLocation=1<<0; +kCGGradientDrawsAfterEndLocation=1<<1; +CGGradientCreateWithColorComponents=function(_1,_2,_3,_4){ +if(arguments["count"]==NULL){ +var _4=_3.length; +} +var _5=[]; +while(_4--){ +var _6=_4*4; +_5[_4]=CGColorCreate(_1,_2.slice(_6,_6+4)); +} +return CGGradientCreateWithColors(_1,_5,_3); +}; +CGGradientCreateWithColors=function(_7,_8,_9){ +return {colorspace:_7,colors:_8,locations:_9}; +}; +CGGradientRelease=function(){ +}; +CGGradientRetain=function(_a){ +return _a; +}; +p;8;CGPath.ji;12;CGGeometry.ji;19;CGAffineTransform.jc;7354; +kCGPathElementMoveToPoint=0; +kCGPathElementAddLineToPoint=1; +kCGPathElementAddQuadCurveToPoint=2; +kCGPathElementAddCurveToPoint=3; +kCGPathElementCloseSubpath=4; +kCGPathElementAddArc=5; +kCGPathElementAddArcToPoint=6; +CGPathCreateMutable=function(){ +return {count:0,start:NULL,current:NULL,elements:[]}; +}; +CGPathCreateMutableCopy=function(_1){ +var _2=CGPathCreateMutable(); +CGPathAddPath(_2,_1); +return _2; +}; +CGPathCreateCopy=function(_3){ +return CGPathCreateMutableCopy(_3); +}; +CGPathRelease=function(_4){ +}; +CGPathRetain=function(_5){ +return _5; +}; +CGPathAddArc=function(_6,_7,x,y,_a,_b,_c,_d){ +if(_7&&!(_7.a==1&&_7.b==0&&_7.c==0&&_7.d==1&&_7.tx==0&&_7.ty==0)){ +var _e={x:x,y:y},_f={x:COS(_c),y:SIN(_c)},_10={x:COS(_b),y:SIN(_b)}; +_f={x:_f.x*_7.a+_f.y*_7.c+_7.tx,y:_f.x*_7.b+_f.y*_7.d+_7.ty}; +_10={x:_10.x*_7.a+_10.y*_7.c+_7.tx,y:_10.x*_7.b+_10.y*_7.d+_7.ty}; +_e={x:_e.x*_7.a+_e.y*_7.c+_7.tx,y:_e.x*_7.b+_e.y*_7.d+_7.ty}; +x=_e.x; +y=_e.y; +var _11=_c,_12=_b; +_c=ATAN2(_f.y-_7.ty,_f.x-_7.tx); +_b=ATAN2(_10.y-_7.ty,_10.x-_7.tx); +if(_c==_b&&_11!=_12){ +if(_12>_11){ +_c=_c-PI2; +}else{ +_b=_b-PI2; +} +} +_a={width:_a,height:0}; +_a={width:_a.width*_7.a+_a.height*_7.c,height:_a.width*_7.b+_a.height*_7.d}; +_a=SQRT(_a.width*_a.width+_a.height*_a.height); +} +_6.current={x:x+_a*COS(_c),y:y+_a*SIN(_c)}; +_6.elements[_6.count++]={type:kCGPathElementAddArc,x:x,y:y,radius:_a,startAngle:_b,endAngle:_c}; +}; +CGPathAddArcToPoint=function(_13,_14,x1,y1,x2,y2,_19){ +}; +CGPathAddCurveToPoint=function(_1a,_1b,_1c,_1d,_1e,_1f,x,y){ +var cp1={x:_1c,y:_1d},cp2={x:_1e,y:_1f},end={x:x,y:y}; +if(_1b){ +cp1={x:cp1.x*_1b.a+cp1.y*_1b.c+_1b.tx,y:cp1.x*_1b.b+cp1.y*_1b.d+_1b.ty}; +cp2={x:cp2.x*_1b.a+cp2.y*_1b.c+_1b.tx,y:cp2.x*_1b.b+cp2.y*_1b.d+_1b.ty}; +end={x:end.x*_1b.a+end.y*_1b.c+_1b.tx,y:end.x*_1b.b+end.y*_1b.d+_1b.ty}; +} +_1a.current=end; +_1a.elements[_1a.count++]={type:kCGPathElementAddCurveToPoint,cp1x:cp1.x,cp1y:cp1.y,cp2x:cp2.x,cp2y:cp2.y,x:end.x,y:end.y}; +}; +CGPathAddLines=function(_25,_26,_27,_28){ +var i=1; +if(arguments["count"]==NULL){ +var _28=_27.length; +} +if(!_25||_28<2){ +return; +} +CGPathMoveToPoint(_25,_26,_27[0].x,_27[0].y); +for(;i<_28;++i){ +CGPathAddLineToPoint(_25,_26,_27[i].x,_27[i].y); +} +}; +CGPathAddLineToPoint=function(_2a,_2b,x,y){ +var _2e={x:x,y:y}; +if(_2b!=NULL){ +_2e={x:_2e.x*_2b.a+_2e.y*_2b.c+_2b.tx,y:_2e.x*_2b.b+_2e.y*_2b.d+_2b.ty}; +} +_2a.elements[_2a.count++]={type:kCGPathElementAddLineToPoint,x:_2e.x,y:_2e.y}; +_2a.current=_2e; +}; +CGPathAddPath=function(_2f,_30,_31){ +for(var i=0,_33=_31.count;i<_33;++i){ +var _34=_31.elements[i]; +switch(_34.type){ +case kCGPathElementAddLineToPoint: +CGPathAddLineToPoint(_2f,_30,_34.x,_34.y); +break; +case kCGPathElementAddCurveToPoint: +CGPathAddCurveToPoint(_2f,_30,_34.cp1x,_34.cp1y,_34.cp2x,_34.cp2y,_34.x,_34.y); +break; +case kCGPathElementAddArc: +CGPathAddArc(_2f,_30,_34.x,_34.y,_34.radius,_34.startAngle,_34.endAngle,_34.isClockwise); +break; +case kCGPathElementAddQuadCurveToPoint: +CGPathAddQuadCurveToPoint(_2f,_30,_34.cpx,_34.cpy,_34.x,_34.y); +break; +case kCGPathElementMoveToPoint: +CGPathMoveToPoint(_2f,_30,_34.x,_34.y); +break; +case kCGPathElementCloseSubpath: +CGPathCloseSubpath(_2f); +break; +} +} +}; +CGPathAddQuadCurveToPoint=function(_35,_36,cpx,cpy,x,y){ +var cp={x:cpx,y:cpy},end={x:x,y:y}; +if(_36){ +cp={x:control.x*_36.a+control.y*_36.c+_36.tx,y:control.x*_36.b+control.y*_36.d+_36.ty}; +end={x:end.x*_36.a+end.y*_36.c+_36.tx,y:end.x*_36.b+end.y*_36.d+_36.ty}; +} +_35.elements[_35.count++]={type:kCGPathElementAddQuadCurveToPoint,cpx:cp.x,cpy:cp.y,x:end.x,y:end.y}; +_35.current=end; +}; +CGPathAddRect=function(_3d,_3e,_3f){ +CGPathAddRects(_3d,_3e,[_3f],1); +}; +CGPathAddRects=function(_40,_41,_42,_43){ +var i=0; +if(arguments["count"]==NULL){ +var _43=_42.length; +} +for(;i<_43;++i){ +var _45=_42[i]; +CGPathMoveToPoint(_40,_41,(_45.origin.x),(_45.origin.y)); +CGPathAddLineToPoint(_40,_41,(_45.origin.x+_45.size.width),(_45.origin.y)); +CGPathAddLineToPoint(_40,_41,(_45.origin.x+_45.size.width),(_45.origin.y+_45.size.height)); +CGPathAddLineToPoint(_40,_41,(_45.origin.x),(_45.origin.y+_45.size.height)); +CGPathCloseSubpath(_40); +} +}; +CGPathMoveToPoint=function(_46,_47,x,y){ +var _4a={x:x,y:y},_4b=_46.count; +if(_47!=NULL){ +_4a={x:_4a.x*_47.a+_4a.y*_47.c+_47.tx,y:_4a.x*_47.b+_4a.y*_47.d+_47.ty}; +} +_46.start=_4a; +_46.current=_4a; +var _4c=_46.elements[_4b-1]; +if(_4b!=0&&_4c.type==kCGPathElementMoveToPoint){ +_4c.x=_4a.x; +_4c.y=_4a.y; +}else{ +_46.elements[_46.count++]={type:kCGPathElementMoveToPoint,x:_4a.x,y:_4a.y}; +} +}; +var _4d=4*((SQRT2-1)/3); +CGPathWithEllipseInRect=function(_4e){ +var _4f=CGPathCreateMutable(); +if((_4e.size.width)==(_4e.size.height)){ +CGPathAddArc(_4f,nil,(_4e.origin.x+(_4e.size.width)/2),(_4e.origin.y+(_4e.size.height)/2),(_4e.size.width)/2,0,2*PI,YES); +}else{ +var _50={width:(_4e.size.width)/2,height:(_4e.size.height)/2},_51={x:(_4e.origin.x)+_50.width,y:(_4e.origin.y)+_50.height}; +CGPathMoveToPoint(_4f,nil,_51.x,_51.y-_50.height); +CGPathAddCurveToPoint(_4f,nil,_51.x+(_4d*_50.width),_51.y-_50.height,_51.x+_50.width,_51.y-(_4d*_50.height),_51.x+_50.width,_51.y); +CGPathAddCurveToPoint(_4f,nil,_51.x+_50.width,_51.y+(_4d*_50.height),_51.x+(_4d*_50.width),_51.y+_50.height,_51.x,_51.y+_50.height); +CGPathAddCurveToPoint(_4f,nil,_51.x-(_4d*_50.width),_51.y+_50.height,_51.x-_50.width,_51.y+(_4d*_50.height),_51.x-_50.width,_51.y); +CGPathAddCurveToPoint(_4f,nil,_51.x-_50.width,_51.y-(_4d*_50.height),_51.x-(_4d*_50.width),_51.y-_50.height,_51.x,_51.y-_50.height); +} +CGPathCloseSubpath(_4f); +return _4f; +}; +CGPathWithRoundedRectangleInRect=function(_52,_53,_54,ne,se,sw,nw){ +var _59=CGPathCreateMutable(),_5a=(_52.origin.x),_5b=(_52.origin.x+_52.size.width),_5c=(_52.origin.y),_5d=(_52.origin.y+_52.size.height); +CGPathMoveToPoint(_59,nil,_5a+_53,_5c); +if(ne){ +CGPathAddLineToPoint(_59,nil,_5b-_53,_5c); +CGPathAddCurveToPoint(_59,nil,_5b-_53,_5c,_5b,_5c,_5b,_5c+_53); +}else{ +CGPathAddLineToPoint(_59,nil,_5b,_5c); +} +if(se){ +CGPathAddLineToPoint(_59,nil,_5b,_5d-_53); +CGPathAddCurveToPoint(_59,nil,_5b,_5d-_53,_5b,_5d,_5b-_53,_5d); +}else{ +CGPathAddLineToPoint(_59,nil,_5b,_5d); +} +if(sw){ +CGPathAddLineToPoint(_59,nil,_5a+_53,_5d); +CGPathAddCurveToPoint(_59,nil,_5a+_53,_5d,_5a,_5d,_5a,_5d-_53); +}else{ +CGPathAddLineToPoint(_59,nil,_5a,_5d); +} +if(nw){ +CGPathAddLineToPoint(_59,nil,_5a,_5c+_53); +CGPathAddCurveToPoint(_59,nil,_5a,_5c+_53,_5a,_5c,_5a+_53,_5c); +}else{ +CGPathAddLineToPoint(_59,nil,_5a,_5c); +} +CGPathCloseSubpath(_59); +return _59; +}; +CGPathCloseSubpath=function(_5e){ +var _5f=_5e.count; +if(_5f==0||_5e.elements[_5f-1].type==kCGPathElementCloseSubpath){ +return; +} +_5e.elements[_5e.count++]={type:kCGPathElementCloseSubpath,points:[_5e.start]}; +}; +CGPathEqualToPath=function(_60,_61){ +if(_60==_61){ +return YES; +} +if(_60.count!=_61.count||!(_60.start.x==_61.start.x&&_60.start.y==_61.start.y)||!(_60.current.x==_61.current.x&&_60.current.y==_61.current.y)){ +return NO; +} +var i=0,_63=_60.count; +for(;i<_63;++i){ +var _64=_60[i],_65=_61[i]; +if(_64.type!=_65.type){ +return NO; +} +if((_64.type==kCGPathElementAddArc||_64.type==kCGPathElementAddArcToPoint)&&_64.radius!=_65.radius){ +return NO; +} +var j=_64.points.length; +while(j--){ +if(!(_64.points[j].x==_65.points[j].x&&_64.points[j].y==_65.points[j].y)){ +return NO; +} +} +} +return YES; +}; +CGPathGetCurrentPoint=function(_67){ +return {x:_67.current.x,y:_67.current.y}; +}; +CGPathIsEmpty=function(_68){ +return !_68||_68.count==0; +}; +p;9;CPAlert.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jI;22;AppKit/CPApplication.jI;17;AppKit/CPButton.jI;16;AppKit/CPColor.jI;15;AppKit/CPFont.jI;16;AppKit/CPImage.jI;20;AppKit/CPImageView.jI;16;AppKit/CPPanel.jI;20;AppKit/CPTextField.jc;5572; +CPWarningAlertStyle=0; +CPInformationalAlertStyle=1; +CPCriticalAlertStyle=2; +var _1,_2,_3; +var _4=objj_allocateClassPair(CPObject,"CPAlert"),_5=_4.isa; +class_addIvars(_4,[new objj_ivar("_alertPanel"),new objj_ivar("_messageLabel"),new objj_ivar("_alertImageView"),new objj_ivar("_alertStyle"),new objj_ivar("_windowTitle"),new objj_ivar("_windowStyle"),new objj_ivar("_buttonCount"),new objj_ivar("_buttons"),new objj_ivar("_delegate")]); +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("init"),function(_6,_7){ +with(_6){ +_6=objj_msgSendSuper({receiver:_6,super_class:objj_getClass("CPObject")},"init"); +if(_6){ +_buttonCount=0; +_buttons=objj_msgSend(CPArray,"array"); +_alertStyle=CPWarningAlertStyle; +_messageLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CGRectMake(57,10,220,80)); +objj_msgSend(_messageLabel,"setFont:",objj_msgSend(CPFont,"systemFontOfSize:",12)); +objj_msgSend(_messageLabel,"setLineBreakMode:",CPLineBreakByWordWrapping); +objj_msgSend(_messageLabel,"setAlignment:",CPJustifiedTextAlignment); +_alertImageView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CGRectMake(15,12,32,32)); +objj_msgSend(_6,"setWindowStyle:",nil); +} +return _6; +} +}),new objj_method(sel_getUid("setWindowStyle:"),function(_8,_9,_a){ +with(_8){ +_windowStyle=_a; +_alertPanel=objj_msgSend(objj_msgSend(CPPanel,"alloc"),"initWithContentRect:styleMask:",CGRectMake(0,0,300,130),_a?_a|CPTitledWindowMask:CPTitledWindowMask); +objj_msgSend(_alertPanel,"setFloatingPanel:",YES); +objj_msgSend(_alertPanel,"center"); +objj_msgSend(_messageLabel,"setTextColor:",(_a==CPHUDBackgroundWindowMask)?objj_msgSend(CPColor,"whiteColor"):objj_msgSend(CPColor,"blackColor")); +var _b=objj_msgSend(_buttons,"count"); +for(var i=0;i<_b;i++){ +var _d=_buttons[i]; +objj_msgSend(_d,"setFrameSize:",CGSizeMake(objj_msgSend(_d,"frame").size.width,(_a==CPHUDBackgroundWindowMask)?20:24)); +objj_msgSend(_d,"setBezelStyle:",(_a==CPHUDBackgroundWindowMask)?CPHUDBezelStyle:CPRoundedBezelStyle); +objj_msgSend(objj_msgSend(_alertPanel,"contentView"),"addSubview:",_d); +} +objj_msgSend(objj_msgSend(_alertPanel,"contentView"),"addSubview:",_messageLabel); +objj_msgSend(objj_msgSend(_alertPanel,"contentView"),"addSubview:",_alertImageView); +} +}),new objj_method(sel_getUid("setTitle:"),function(_e,_f,_10){ +with(_e){ +_windowTitle=_10; +} +}),new objj_method(sel_getUid("title"),function(_11,_12){ +with(_11){ +return _windowTitle; +} +}),new objj_method(sel_getUid("windowStyle"),function(_13,_14){ +with(_13){ +return _windowStyle; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_15,_16,_17){ +with(_15){ +_delegate=_17; +} +}),new objj_method(sel_getUid("delegate"),function(_18,_19){ +with(_18){ +return _delegate; +} +}),new objj_method(sel_getUid("setAlertStyle:"),function(_1a,_1b,_1c){ +with(_1a){ +_alertStyle=_1c; +} +}),new objj_method(sel_getUid("alertStyle"),function(_1d,_1e){ +with(_1d){ +return _alertStyle; +} +}),new objj_method(sel_getUid("setMessageText:"),function(_1f,_20,_21){ +with(_1f){ +objj_msgSend(_messageLabel,"setStringValue:",_21); +} +}),new objj_method(sel_getUid("messageText"),function(_22,_23){ +with(_22){ +return objj_msgSend(_messageLabel,"stringValue"); +} +}),new objj_method(sel_getUid("addButtonWithTitle:"),function(_24,_25,_26){ +with(_24){ +var _27=objj_msgSend(objj_msgSend(CPButton,"alloc"),"initWithFrame:",CGRectMake(200-(_buttonCount*90),98,80,(_windowStyle==CPHUDBackgroundWindowMask)?20:24)); +objj_msgSend(_27,"setTitle:",_26); +objj_msgSend(_27,"setTarget:",_24); +objj_msgSend(_27,"setTag:",_buttonCount); +objj_msgSend(_27,"setAction:",sel_getUid("_notifyDelegate:")); +objj_msgSend(_27,"setBezelStyle:",(_windowStyle==CPHUDBackgroundWindowMask)?CPHUDBezelStyle:CPRoundRectBezelStyle); +objj_msgSend(objj_msgSend(_alertPanel,"contentView"),"addSubview:",_27); +if(_buttonCount==0){ +objj_msgSend(_alertPanel,"setDefaultButton:",_27); +} +_buttonCount++; +objj_msgSend(_buttons,"addObject:",_27); +} +}),new objj_method(sel_getUid("runModal"),function(_28,_29){ +with(_28){ +var _2a; +switch(_alertStyle){ +case CPWarningAlertStyle: +objj_msgSend(_alertImageView,"setImage:",_1); +_2a="Warning"; +break; +case CPInformationalAlertStyle: +objj_msgSend(_alertImageView,"setImage:",_2); +_2a="Information"; +break; +case CPCriticalAlertStyle: +objj_msgSend(_alertImageView,"setImage:",_3); +_2a="Error"; +break; +} +objj_msgSend(_alertPanel,"setTitle:",_windowTitle?_windowTitle:_2a); +objj_msgSend(CPApp,"runModalForWindow:",_alertPanel); +} +}),new objj_method(sel_getUid("_notifyDelegate:"),function(_2b,_2c,_2d){ +with(_2b){ +if(_delegate&&objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("alertDidEnd:returnCode:"))){ +objj_msgSend(_delegate,"alertDidEnd:returnCode:",_2b,objj_msgSend(_2d,"tag")); +} +objj_msgSend(CPApp,"abortModal"); +objj_msgSend(_alertPanel,"close"); +} +})]); +class_addMethods(_5,[new objj_method(sel_getUid("initialize"),function(_2e,_2f){ +with(_2e){ +if(_2e!=CPAlert){ +return; +} +var _30=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_2e,"class")); +_1=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_30,"pathForResource:","CPAlert/dialog-warning.png"),CGSizeMake(32,32)); +_2=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_30,"pathForResource:","CPAlert/dialog-information.png"),CGSizeMake(32,32)); +_3=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_30,"pathForResource:","CPAlert/dialog-error.png"),CGSizeMake(32,32)); +} +})]); +p;13;CPAnimation.jI;21;Foundation/CPObject.ji;23;CAMediaTimingFunction.jc;4269; +CPAnimationEaseInOut=0; +CPAnimationEaseIn=1; +CPAnimationEaseOut=2; +CPAnimationLinear=3; +ACTUAL_FRAME_RATE=0; +var _1=objj_allocateClassPair(CPObject,"CPAnimation"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_lastTime"),new objj_ivar("_duration"),new objj_ivar("_animationCurve"),new objj_ivar("_timingFunction"),new objj_ivar("_frameRate"),new objj_ivar("_progress"),new objj_ivar("_delegate"),new objj_ivar("_timer")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithDuration:animationCurve:"),function(_3,_4,_5,_6){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_progress=0; +_duration=MAX(0,_5); +_animationCurve=_6; +_frameRate=60; +} +return _3; +} +}),new objj_method(sel_getUid("setAnimationCurve:"),function(_7,_8,_9){ +with(_7){ +switch(_animationCurve){ +case CPAnimationEaseInOut: +timingFunctionName=kCAMediaTimingFunctionEaseInEaseOut; +break; +case CPAnimationEaseIn: +timingFunctionName=kCAMediaTimingFunctionEaseIn; +break; +case CPAnimationEaseOut: +timingFunctionName=kCAMediaTimingFunctionEaseOut; +break; +case CPAnimationLinear: +timingFunctionName=kCAMediaTimingFunctionLinear; +break; +default: +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"Invalid value provided for animation curve"); +break; +} +_animationCurve=_9; +_timingFunction=objj_msgSend(CAMediaTimingFunction,"functionWithName:",timingFunctionName); +} +}),new objj_method(sel_getUid("animationCurve"),function(_a,_b){ +with(_a){ +return _animationCurve; +} +}),new objj_method(sel_getUid("setDuration:"),function(_c,_d,_e){ +with(_c){ +if(_e<0){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"aDuration can't be negative"); +} +_duration=_e; +} +}),new objj_method(sel_getUid("duration"),function(_f,_10){ +with(_f){ +return _duration; +} +}),new objj_method(sel_getUid("setFrameRate:"),function(_11,_12,_13){ +with(_11){ +if(_13<0){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"frameRate can't be negative"); +} +_frameRate=_13; +} +}),new objj_method(sel_getUid("frameRate"),function(_14,_15){ +with(_14){ +return _frameRate; +} +}),new objj_method(sel_getUid("delegate"),function(_16,_17){ +with(_16){ +return _delegate; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_18,_19,_1a){ +with(_18){ +_delegate=_1a; +} +}),new objj_method(sel_getUid("startAnimation"),function(_1b,_1c){ +with(_1b){ +if(_timer||_delegate&&objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("animationShouldStart"))&&!objj_msgSend(_delegate,"animationShouldStart:",_1b)){ +return; +} +if(_progress===1){ +_progress=0; +} +ACTUAL_FRAME_RATE=0; +_lastTime=new Date(); +_timer=objj_msgSend(CPTimer,"scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:",0,_1b,sel_getUid("animationTimerDidFire:"),nil,YES); +} +}),new objj_method(sel_getUid("animationTimerDidFire:"),function(_1d,_1e,_1f){ +with(_1d){ +var _20=new Date(),_21=MIN(1,objj_msgSend(_1d,"currentProgress")+(_20-_lastTime)/(_duration*1000)); +_lastTime=_20; +++ACTUAL_FRAME_RATE; +objj_msgSend(_1d,"setCurrentProgress:",_21); +if(_21===1){ +objj_msgSend(_timer,"invalidate"); +_timer=nil; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("animationDidEnd:"))){ +objj_msgSend(_delegate,"animationDidEnd:",_1d); +} +} +} +}),new objj_method(sel_getUid("stopAnimation"),function(_22,_23){ +with(_22){ +if(!_timer){ +return; +} +objj_msgSend(_timer,"invalidate"); +_timer=nil; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("animationDidStop:"))){ +objj_msgSend(_delegate,"animationDidStop:",_22); +} +} +}),new objj_method(sel_getUid("isAnimating"),function(_24,_25){ +with(_24){ +return _timer; +} +}),new objj_method(sel_getUid("setCurrentProgress:"),function(_26,_27,_28){ +with(_26){ +_progress=_28; +} +}),new objj_method(sel_getUid("currentProgress"),function(_29,_2a){ +with(_29){ +return _progress; +} +}),new objj_method(sel_getUid("currentValue"),function(_2b,_2c){ +with(_2b){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("animation:valueForProgress:"))){ +return objj_msgSend(_delegate,"animation:valueForProgress:",_2b,_progress); +} +if(_animationCurve==CPAnimationLinear){ +return _progress; +} +alert("IMPLEMENT ANIMATION CURVES!!!"); +} +})]); +p;15;CPApplication.jI;21;Foundation/CPBundle.ji;17;CPCompatibility.ji;9;CPEvent.ji;8;CPMenu.ji;13;CPResponder.ji;22;CPDocumentController.ji;14;CPThemeBlend.jc;17444; +var _1="CPMainCibFile",_2="Main cib file base name"; +CPApp=nil; +CPApplicationWillFinishLaunchingNotification="CPApplicationWillFinishLaunchingNotification"; +CPApplicationDidFinishLaunchingNotification="CPApplicationDidFinishLaunchingNotification"; +CPRunStoppedResponse=-1000; +CPRunAbortedResponse=-1001; +CPRunContinuesResponse=-1002; +var _3=objj_allocateClassPair(CPResponder,"CPApplication"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_eventListeners"),new objj_ivar("_currentEvent"),new objj_ivar("_windows"),new objj_ivar("_keyWindow"),new objj_ivar("_mainWindow"),new objj_ivar("_mainMenu"),new objj_ivar("_documentController"),new objj_ivar("_currentSession"),new objj_ivar("_delegate"),new objj_ivar("_namedArgs"),new objj_ivar("_args"),new objj_ivar("_fullArgsString")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("init"),function(_5,_6){ +with(_5){ +_5=objj_msgSendSuper({receiver:_5,super_class:objj_getClass("CPResponder")},"init"); +if(_5){ +_eventListeners=[]; +_windows=[]; +objj_msgSend(_windows,"addObject:",nil); +_mainMenu=objj_msgSend(objj_msgSend(CPMenu,"alloc"),"initWithTitle:","MainMenu"); +objj_msgSend(_mainMenu,"setAutoenablesItems:",NO); +var _7=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPApplication,"class")),_8=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","New",sel_getUid("newDocument:"),"N"); +objj_msgSend(_8,"setImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7,"pathForResource:","CPApplication/New.png"),CGSizeMake(16,16))); +objj_msgSend(_8,"setAlternateImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7,"pathForResource:","CPApplication/NewHighlighted.png"),CGSizeMake(16,16))); +objj_msgSend(_mainMenu,"addItem:",_8); +var _9=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Open",sel_getUid("openDocument:"),"O"); +objj_msgSend(_9,"setImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7,"pathForResource:","CPApplication/Open.png"),CGSizeMake(16,16))); +objj_msgSend(_9,"setAlternateImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7,"pathForResource:","CPApplication/OpenHighlighted.png"),CGSizeMake(16,16))); +objj_msgSend(_mainMenu,"addItem:",_9); +var _a=objj_msgSend(objj_msgSend(CPMenu,"alloc"),"initWithTitle:","Save"),_b=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Save",sel_getUid("saveDocument:"),nil); +objj_msgSend(_b,"setImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7,"pathForResource:","CPApplication/Save.png"),CGSizeMake(16,16))); +objj_msgSend(_b,"setAlternateImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7,"pathForResource:","CPApplication/SaveHighlighted.png"),CGSizeMake(16,16))); +objj_msgSend(_a,"addItem:",objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Save",sel_getUid("saveDocument:"),"S")); +objj_msgSend(_a,"addItem:",objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Save As",sel_getUid("saveDocumentAs:"),nil)); +objj_msgSend(_b,"setSubmenu:",_a); +objj_msgSend(_mainMenu,"addItem:",_b); +var _c=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Edit",nil,nil),_d=objj_msgSend(objj_msgSend(CPMenu,"alloc"),"initWithTitle:","Edit"),_e=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Undo",sel_getUid("undo:"),CPUndoKeyEquivalent),_f=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Redo",sel_getUid("redo:"),CPRedoKeyEquivalent); +objj_msgSend(_e,"setKeyEquivalentModifierMask:",CPUndoKeyEquivalentModifierMask); +objj_msgSend(_f,"setKeyEquivalentModifierMask:",CPRedoKeyEquivalentModifierMask); +objj_msgSend(_d,"addItem:",_e); +objj_msgSend(_d,"addItem:",_f); +objj_msgSend(_d,"addItem:",objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Cut",sel_getUid("cut:"),"X")),objj_msgSend(_d,"addItem:",objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Copy",sel_getUid("copy:"),"C")),objj_msgSend(_d,"addItem:",objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Paste",sel_getUid("paste:"),"V")); +objj_msgSend(_c,"setSubmenu:",_d); +objj_msgSend(_c,"setHidden:",YES); +objj_msgSend(_mainMenu,"addItem:",_c); +objj_msgSend(_mainMenu,"addItem:",objj_msgSend(CPMenuItem,"separatorItem")); +} +return _5; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_10,_11,_12){ +with(_10){ +if(_delegate==_12){ +return; +} +var _13=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(_delegate){ +objj_msgSend(_13,"removeObserver:name:object:",_delegate,CPApplicationWillFinishLaunchingNotification,_10); +objj_msgSend(_13,"removeObserver:name:object:",_delegate,CPApplicationDidFinishLaunchingNotification,_10); +} +_delegate=_12; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("applicationWillFinishLaunching:"))){ +objj_msgSend(_13,"addObserver:selector:name:object:",_delegate,sel_getUid("applicationWillFinishLaunching:"),CPApplicationWillFinishLaunchingNotification,_10); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("applicationDidFinishLaunching:"))){ +objj_msgSend(_13,"addObserver:selector:name:object:",_delegate,sel_getUid("applicationDidFinishLaunching:"),CPApplicationDidFinishLaunchingNotification,_10); +} +} +}),new objj_method(sel_getUid("delegate"),function(_14,_15){ +with(_14){ +return _delegate; +} +}),new objj_method(sel_getUid("finishLaunching"),function(_16,_17){ +with(_16){ +var _18=objj_msgSend(CPBundle,"mainBundle"),_19=objj_msgSend(_18,"objectForInfoDictionaryKey:","CPBundleDocumentTypes"); +if(objj_msgSend(_19,"count")>0){ +_documentController=objj_msgSend(CPDocumentController,"sharedDocumentController"); +} +var _1a=objj_msgSend(_18,"objectForInfoDictionaryKey:","CPApplicationDelegateClass"); +if(_1a){ +var _1b=objj_getClass(_1a); +if(_1b){ +if(objj_msgSend(_documentController,"class")==_1b){ +objj_msgSend(_16,"setDelegate:",_documentController); +}else{ +objj_msgSend(_16,"setDelegate:",objj_msgSend(objj_msgSend(_1b,"alloc"),"init")); +} +} +} +var _1c=objj_msgSend(CPNotificationCenter,"defaultCenter"); +objj_msgSend(_1c,"postNotificationName:object:",CPApplicationWillFinishLaunchingNotification,_16); +if(_documentController){ +objj_msgSend(_documentController,"newDocument:",_16); +} +objj_msgSend(_1c,"postNotificationName:object:",CPApplicationDidFinishLaunchingNotification,_16); +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +}),new objj_method(sel_getUid("run"),function(_1d,_1e){ +with(_1d){ +objj_msgSend(_1d,"finishLaunching"); +} +}),new objj_method(sel_getUid("runModalForWindow:"),function(_1f,_20,_21){ +with(_1f){ +objj_msgSend(_1f,"runModalSession:",objj_msgSend(_1f,"beginModalSessionForWindow:",_21)); +} +}),new objj_method(sel_getUid("stopModalWithCode:"),function(_22,_23,_24){ +with(_22){ +if(!_currentSession){ +return; +} +_currentSession._state=_24; +_currentSession=_currentSession._previous; +objj_msgSend(_22,"_removeRunModalLoop"); +} +}),new objj_method(sel_getUid("_removeRunModalLoop"),function(_25,_26){ +with(_25){ +var _27=_eventListeners.length; +while(_27--){ +if(_eventListeners[_27]._callback===_28){ +_eventListeners.splice(_27,1); +return; +} +} +} +}),new objj_method(sel_getUid("stopModal"),function(_29,_2a){ +with(_29){ +objj_msgSend(_29,"stopModalWithCode:",CPRunStoppedResponse); +} +}),new objj_method(sel_getUid("abortModal"),function(_2b,_2c){ +with(_2b){ +objj_msgSend(_2b,"stopModalWithCode:",CPRunAbortedResponse); +} +}),new objj_method(sel_getUid("beginModalSessionForWindow:"),function(_2d,_2e,_2f){ +with(_2d){ +return _30(_2f,0); +} +}),new objj_method(sel_getUid("runModalSession:"),function(_31,_32,_33){ +with(_31){ +_33._previous=_currentSession; +_currentSession=_33; +var _34=_33._window; +objj_msgSend(_34,"center"); +objj_msgSend(_34,"makeKeyAndOrderFront:",_31); +objj_msgSend(CPApp,"setCallback:forNextEventMatchingMask:untilDate:inMode:dequeue:",_28,CPAnyEventMask,nil,0,NO); +} +}),new objj_method(sel_getUid("modalWindow"),function(_35,_36){ +with(_35){ +if(!_currentSession){ +return nil; +} +return _currentSession._window; +} +}),new objj_method(sel_getUid("_handleKeyEquivalent:"),function(_37,_38,_39){ +with(_37){ +if(objj_msgSend(_mainMenu,"performKeyEquivalent:",_39)){ +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("sendEvent:"),function(_3a,_3b,_3c){ +with(_3a){ +if(objj_msgSend(_3c,"type")==CPKeyDown&&objj_msgSend(_3c,"modifierFlags")&(CPCommandKeyMask|CPControlKeyMask)&&objj_msgSend(objj_msgSend(_3c,"characters"),"length")>0&&objj_msgSend(_3a,"_handleKeyEquivalent:",_3c)){ +return; +} +if(_eventListeners.length){ +if(_eventListeners[_eventListeners.length-1]._mask&(1<CPOnState){ +_d=CPOnState; +}else{ +if(_d=0){ +_4e.width=MIN(_4e.width,_51.width); +} +if(_51.height>=0){ +_4e.height=MIN(_4e.height,_51.height); +} +objj_msgSend(_4c,"setFrameSize:",_4e); +} +}),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_52,_53,_54){ +with(_52){ +if(_54==="bezel-view"){ +return objj_msgSend(_52,"bezelRectForBounds:",objj_msgSend(_52,"bounds")); +}else{ +if(_54==="content-view"){ +return objj_msgSend(_52,"contentRectForBounds:",objj_msgSend(_52,"bounds")); +} +} +return objj_msgSendSuper({receiver:_52,super_class:objj_getClass("CPControl")},"rectForEphemeralSubviewNamed:",_54); +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_55,_56,_57){ +with(_55){ +if(_57==="bezel-view"){ +var _58=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +objj_msgSend(_58,"setHitTests:",NO); +return _58; +}else{ +return objj_msgSend(objj_msgSend(_CPImageAndTextView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +} +return objj_msgSendSuper({receiver:_55,super_class:objj_getClass("CPControl")},"createEphemeralSubviewNamed:",_57); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_59,_5a){ +with(_59){ +var _5b=objj_msgSend(_59,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","bezel-view",CPWindowBelow,"content-view"); +if(_5b){ +objj_msgSend(_5b,"setBackgroundColor:",objj_msgSend(_59,"currentValueForThemeAttribute:","bezel-color")); +} +var _5c=objj_msgSend(_59,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","content-view",CPWindowAbove,"bezel-view"); +if(_5c){ +objj_msgSend(_5c,"setText:",(objj_msgSend(_59,"hasThemeState:",CPThemeStateHighlighted)&&_alternateTitle)?_alternateTitle:_title); +objj_msgSend(_5c,"setImage:",(objj_msgSend(_59,"hasThemeState:",CPThemeStateHighlighted)&&_alternateImage)?_alternateImage:_image); +objj_msgSend(_5c,"setFont:",objj_msgSend(_59,"currentValueForThemeAttribute:","font")); +objj_msgSend(_5c,"setTextColor:",objj_msgSend(_59,"currentValueForThemeAttribute:","text-color")); +objj_msgSend(_5c,"setAlignment:",objj_msgSend(_59,"currentValueForThemeAttribute:","alignment")); +objj_msgSend(_5c,"setVerticalAlignment:",objj_msgSend(_59,"currentValueForThemeAttribute:","vertical-alignment")); +objj_msgSend(_5c,"setLineBreakMode:",objj_msgSend(_59,"currentValueForThemeAttribute:","line-break-mode")); +objj_msgSend(_5c,"setTextShadowColor:",objj_msgSend(_59,"currentValueForThemeAttribute:","text-shadow-color")); +objj_msgSend(_5c,"setTextShadowOffset:",objj_msgSend(_59,"currentValueForThemeAttribute:","text-shadow-offset")); +objj_msgSend(_5c,"setImagePosition:",objj_msgSend(_59,"currentValueForThemeAttribute:","image-position")); +objj_msgSend(_5c,"setImageScaling:",objj_msgSend(_59,"currentValueForThemeAttribute:","image-scaling")); +} +} +}),new objj_method(sel_getUid("setDefaultButton:"),function(_5d,_5e,_5f){ +with(_5d){ +if(_5f){ +objj_msgSend(_5d,"setThemeState:",CPThemeStateDefault); +}else{ +objj_msgSend(_5d,"unsetThemeState:",CPThemeStateDefault); +} +} +}),new objj_method(sel_getUid("setBordered:"),function(_60,_61,_62){ +with(_60){ +if(_62){ +objj_msgSend(_60,"setThemeState:",CPThemeStateBordered); +}else{ +objj_msgSend(_60,"unsetThemeState:",CPThemeStateBordered); +} +} +}),new objj_method(sel_getUid("isBordered"),function(_63,_64){ +with(_63){ +return objj_msgSend(_63,"hasThemeState:",CPThemeStateBordered); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("buttonWithTitle:"),function(_65,_66,_67){ +with(_65){ +return objj_msgSend(_65,"buttonWithTitle:theme:",_67,objj_msgSend(CPTheme,"defaultTheme")); +} +}),new objj_method(sel_getUid("buttonWithTitle:theme:"),function(_68,_69,_6a,_6b){ +with(_68){ +var _6c=objj_msgSend(objj_msgSend(_68,"alloc"),"init"); +objj_msgSend(_6c,"setTheme:",_6b); +objj_msgSend(_6c,"setTitle:",_6a); +objj_msgSend(_6c,"sizeToFit"); +return _6c; +} +}),new objj_method(sel_getUid("themeClass"),function(_6d,_6e){ +with(_6d){ +return "button"; +} +}),new objj_method(sel_getUid("themeAttributes"),function(_6f,_70){ +with(_6f){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[{top:(0),right:(0),bottom:(0),left:(0)},{top:(0),right:(0),bottom:(0),left:(0)},nil],["bezel-inset","content-inset","bezel-color"]); +} +})]); +var _1=objj_getClass("CPButton"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPButton\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("setBezelStyle:"),function(_71,_72,_73){ +with(_71){ +} +}),new objj_method(sel_getUid("bezelStyle"),function(_74,_75){ +with(_74){ +} +})]); +var _76="CPButtonImageKey",_77="CPButtonAlternateImageKey",_78="CPButtonTitleKey",_79="CPButtonAlternateTitleKey",_7a="CPButtonIsBorderedKey"; +var _1=objj_getClass("CPButton"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPButton\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_7b,_7c,_7d){ +with(_7b){ +_7b=objj_msgSendSuper({receiver:_7b,super_class:objj_getClass("CPControl")},"initWithCoder:",_7d); +if(_7b){ +_controlSize=CPRegularControlSize; +objj_msgSend(_7b,"setImage:",objj_msgSend(_7d,"decodeObjectForKey:",_76)); +objj_msgSend(_7b,"setAlternateImage:",objj_msgSend(_7d,"decodeObjectForKey:",_77)); +objj_msgSend(_7b,"setTitle:",objj_msgSend(_7d,"decodeObjectForKey:",_78)); +objj_msgSend(_7b,"setAlternateTitle:",objj_msgSend(_7d,"decodeObjectForKey:",_79)); +objj_msgSend(_7b,"setNeedsLayout"); +objj_msgSend(_7b,"setNeedsDisplay:",YES); +} +return _7b; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_7e,_7f,_80){ +with(_7e){ +objj_msgSendSuper({receiver:_7e,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_80); +objj_msgSend(_80,"encodeObject:forKey:",_image,_76); +objj_msgSend(_80,"encodeObject:forKey:",_alternateImage,_77); +objj_msgSend(_80,"encodeObject:forKey:",_title,_78); +objj_msgSend(_80,"encodeObject:forKey:",_alternateTitle,_79); +} +})]); +i;12;CPCheckBox.ji;9;CPRadio.jp;13;CPButtonBar.jI;15;AppKit/CPView.jc;1693; +var _1=objj_allocateClassPair(CPControl,"CPButtonBar"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_3,_4,_5){ +with(_3){ +if(_5==="bezel-view"){ +return objj_msgSend(_3,"bounds"); +} +return objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPControl")},"rectForEphemeralSubviewNamed:",_5); +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_6,_7,_8){ +with(_6){ +if(_8==="bezel-view"){ +var _9=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +objj_msgSend(_9,"setHitTests:",NO); +return _9; +} +return objj_msgSendSuper({receiver:_6,super_class:objj_getClass("CPControl")},"createEphemeralSubviewNamed:",_8); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_a,_b){ +with(_a){ +var _c=objj_msgSend(_a,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","bezel-view",CPWindowBelow,""); +if(_c){ +objj_msgSend(_c,"setBackgroundColor:",objj_msgSend(_a,"currentValueForThemeAttribute:","bezel-color")); +} +} +}),new objj_method(sel_getUid("addSubview:"),function(_d,_e,_f){ +with(_d){ +objj_msgSendSuper({receiver:_d,super_class:objj_getClass("CPControl")},"addSubview:",_f); +objj_msgSend(_f,"setAutoresizingMask:",CPViewMinXMargin); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("themeClass"),function(_10,_11){ +with(_10){ +return "button-bar"; +} +}),new objj_method(sel_getUid("themeAttributes"),function(_12,_13){ +with(_12){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[nil],["bezel-color"]); +} +})]); +p;12;CPCheckBox.ji;10;CPButton.jc;1040; +var _1=objj_allocateClassPair(CPButton,"CPCheckBox"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPButton")},"initWithFrame:",_5); +if(_3){ +objj_msgSend(_3,"setHighlightsBy:",CPContentsCellMask); +objj_msgSend(_3,"setShowsStateBy:",CPContentsCellMask); +objj_msgSend(_3,"setImagePosition:",CPImageLeft); +objj_msgSend(_3,"setAlignment:",CPLeftTextAlignment); +objj_msgSend(_3,"setBordered:",YES); +} +return _3; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("checkBoxWithTitle:theme:"),function(_6,_7,_8,_9){ +with(_6){ +return objj_msgSend(_6,"buttonWithTitle:theme:",_8,_9); +} +}),new objj_method(sel_getUid("checkBoxWithTitle:"),function(_a,_b,_c){ +with(_a){ +return objj_msgSend(_a,"buttonWithTitle:",_c); +} +}),new objj_method(sel_getUid("themeClass"),function(_d,_e){ +with(_d){ +return "check-box"; +} +})]); +p;7;CPCib.jI;21;Foundation/CPObject.jI;28;Foundation/CPURLConnection.jI;25;Foundation/CPURLRequest.ji;20;_CPCibClassSwapper.ji;20;_CPCibCustomObject.ji;22;_CPCibCustomResource.ji;18;_CPCibCustomView.ji;23;_CPCibKeyedUnarchiver.ji;18;_CPCibObjectData.ji;22;_CPCibWindowTemplate.jc;4170; +CPCibOwner="CPCibOwner",CPCibTopLevelObjects="CPCibTopLevelObjects",CPCibReplacementClasses="CPCibReplacementClasses"; +var _1="CPCibObjectDataKey"; +var _2=objj_allocateClassPair(CPObject,"CPCib"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_data"),new objj_ivar("_bundle"),new objj_ivar("_awakenCustomResources"),new objj_ivar("_loadDelegate")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithContentsOfURL:"),function(_4,_5,_6){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPObject")},"init"); +if(_4){ +_data=objj_msgSend(CPURLConnection,"sendSynchronousRequest:returningResponse:error:",objj_msgSend(CPURLRequest,"requestWithURL:",_6),nil,nil); +_awakenCustomResources=YES; +} +return _4; +} +}),new objj_method(sel_getUid("initWithContentsOfURL:loadDelegate:"),function(_7,_8,_9,_a){ +with(_7){ +_7=objj_msgSendSuper({receiver:_7,super_class:objj_getClass("CPObject")},"init"); +if(_7){ +objj_msgSend(CPURLConnection,"connectionWithRequest:delegate:",objj_msgSend(CPURLRequest,"requestWithURL:",_9),_7); +_awakenCustomResources=YES; +_loadDelegate=_a; +} +return _7; +} +}),new objj_method(sel_getUid("initWithCibNamed:bundle:loadDelegate:"),function(_b,_c,_d,_e,_f){ +with(_b){ +if(!objj_msgSend(_d,"hasSuffix:",".cib")){ +_d=objj_msgSend(_d,"stringByAppendingString:",".cib"); +} +_b=objj_msgSend(_b,"initWithContentsOfURL:loadDelegate:",objj_msgSend(_e||objj_msgSend(CPBundle,"mainBundle"),"pathForResource:",_d),_f); +if(_b){ +_bundle=_e; +} +return _b; +} +}),new objj_method(sel_getUid("_setAwakenCustomResources:"),function(_10,_11,_12){ +with(_10){ +_awakenCustomResources=_12; +} +}),new objj_method(sel_getUid("_awakenCustomResources"),function(_13,_14){ +with(_13){ +return _awakenCustomResources; +} +}),new objj_method(sel_getUid("instantiateCibWithExternalNameTable:"),function(_15,_16,_17){ +with(_15){ +var _18=_bundle,_19=objj_msgSend(_17,"objectForKey:",CPCibOwner); +if(!_18&&_19){ +_18=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_19,"class")); +} +var _1a=objj_msgSend(objj_msgSend(_CPCibKeyedUnarchiver,"alloc"),"initForReadingWithData:bundle:awakenCustomResources:",_data,_18,_awakenCustomResources),_1b=objj_msgSend(_17,"objectForKey:",CPCibReplacementClasses); +if(_1b){ +var key=nil,_1d=objj_msgSend(_1b,"keyEnumerator"); +while(key=objj_msgSend(_1d,"nextObject")){ +objj_msgSend(_1a,"setClass:forClassName:",objj_msgSend(_1b,"objectForKey:",key),key); +} +} +var _1e=objj_msgSend(_1a,"decodeObjectForKey:",_1); +if(!_1e||!objj_msgSend(_1e,"isKindOfClass:",objj_msgSend(_CPCibObjectData,"class"))){ +return NO; +} +var _1f=objj_msgSend(_17,"objectForKey:",CPCibTopLevelObjects); +objj_msgSend(_1e,"instantiateWithOwner:topLevelObjects:",_19,_1f); +objj_msgSend(_1e,"establishConnectionsWithOwner:topLevelObjects:",_19,_1f); +objj_msgSend(_1e,"awakeWithOwner:topLevelObjects:",_19,_1f); +var _20; +if((_20=objj_msgSend(_1e,"mainMenu"))!=nil){ +objj_msgSend(CPApp,"setMainMenu:",_20); +objj_msgSend(CPMenu,"setMenuBarVisible:",YES); +} +objj_msgSend(_1e,"displayVisibleWindows"); +return YES; +} +}),new objj_method(sel_getUid("instantiateCibWithOwner:topLevelObjects:"),function(_21,_22,_23,_24){ +with(_21){ +return objj_msgSend(_21,"instantiateCibWithExternalNameTable:",objj_msgSend(CPDictionary,"dictionaryWithObjectsAndKeys:",_23,CPCibOwner,_24,CPCibTopLevelObjects)); +} +})]); +var _2=objj_getClass("CPCib"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPCib\"")); +} +var _3=_2.isa; +class_addMethods(_2,[new objj_method(sel_getUid("connection:didReceiveData:"),function(_25,_26,_27,_28){ +with(_25){ +_data=objj_msgSend(CPData,"dataWithString:",_28); +} +}),new objj_method(sel_getUid("connection:didFailWithError:"),function(_29,_2a,_2b,_2c){ +with(_29){ +alert("cib: connection failed."); +_loadDelegate=nil; +} +}),new objj_method(sel_getUid("connectionDidFinishLoading:"),function(_2d,_2e,_2f){ +with(_2d){ +if(objj_msgSend(_loadDelegate,"respondsToSelector:",sel_getUid("cibDidFinishLoading:"))){ +objj_msgSend(_loadDelegate,"cibDidFinishLoading:",_2d); +} +_loadDelegate=nil; +} +})]); +p;14;CPCibLoading.jI;21;Foundation/CPBundle.jI;25;Foundation/CPDictionary.jI;21;Foundation/CPString.jc;1850; +var _1="CPCibOwner"; +var _2={}; +var _3=objj_getClass("CPObject"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPObject\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("awakeFromCib"),function(_5,_6){ +with(_5){ +} +})]); +var _3=objj_getClass("CPBundle"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPBundle\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("loadCibFile:externalNameTable:loadDelegate:"),function(_7,_8,_9,_a,_b){ +with(_7){ +var _c=objj_msgSend(objj_msgSend(CPCib,"alloc"),"initWithCibNamed:bundle:loadDelegate:",_9,_7,objj_msgSend(_7,"class")); +_2[objj_msgSend(_c,"hash")]={loadDelegate:_b,externalNameTable:_a}; +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("loadCibFile:externalNameTable:loadDelegate:"),function(_d,_e,_f,_10,_11){ +with(_d){ +var cib=objj_msgSend(objj_msgSend(CPCib,"alloc"),"initWithContentsOfURL:loadDelegate:",_f,_d); +_2[objj_msgSend(cib,"hash")]={loadDelegate:_11,externalNameTable:_10}; +} +}),new objj_method(sel_getUid("loadCibNamed:owner:loadDelegate:"),function(_13,_14,_15,_16,_17){ +with(_13){ +var _18=_16?objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_16,"class")):objj_msgSend(CPBundle,"mainBundle"),_19=objj_msgSend(_18,"pathForResource:",_15); +objj_msgSend(_13,"loadCibFile:externalNameTable:loadDelegate:",_19,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",_16,_1),_17); +} +}),new objj_method(sel_getUid("cibDidFinishLoading:"),function(_1a,_1b,_1c){ +with(_1a){ +var _1d=_2[objj_msgSend(_1c,"hash")]; +delete _2[objj_msgSend(_1c,"hash")]; +objj_msgSend(_1c,"instantiateCibWithExternalNameTable:",_1d.externalNameTable); +objj_msgSend(_1d.loadDelegate,"cibDidFinishLoading:",_1c); +} +})]); +p;12;CPClipView.ji;8;CPView.jc;4242; +var _1=objj_allocateClassPair(CPView,"CPClipView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_documentView")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("setDocumentView:"),function(_3,_4,_5){ +with(_3){ +if(_documentView==_5){ +return; +} +var _6=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(_documentView){ +objj_msgSend(_6,"removeObserver:name:object:",_3,CPViewFrameDidChangeNotification,_documentView); +objj_msgSend(_6,"removeObserver:name:object:",_3,CPViewBoundsDidChangeNotification,_documentView); +objj_msgSend(_documentView,"removeFromSuperview"); +} +_documentView=_5; +if(_documentView){ +objj_msgSend(_3,"addSubview:",_documentView); +objj_msgSend(_documentView,"setPostsFrameChangedNotifications:",YES); +objj_msgSend(_documentView,"setPostsBoundsChangedNotifications:",YES); +objj_msgSend(_6,"addObserver:selector:name:object:",_3,sel_getUid("viewFrameChanged:"),CPViewFrameDidChangeNotification,_documentView); +objj_msgSend(_6,"addObserver:selector:name:object:",_3,sel_getUid("viewBoundsChanged:"),CPViewBoundsDidChangeNotification,_documentView); +} +} +}),new objj_method(sel_getUid("documentView"),function(_7,_8){ +with(_7){ +return _documentView; +} +}),new objj_method(sel_getUid("constrainScrollPoint:"),function(_9,_a,_b){ +with(_9){ +if(!_documentView){ +return {x:0,y:0}; +} +var _c=objj_msgSend(_documentView,"frame"); +_b.x=MAX(0,MIN(_b.x,MAX((_c.size.width)-(_bounds.size.width),0))); +_b.y=MAX(0,MIN(_b.y,MAX((_c.size.height)-(_bounds.size.height),0))); +return _b; +} +}),new objj_method(sel_getUid("setBoundsOrigin:"),function(_d,_e,_f){ +with(_d){ +if((_bounds.origin.x==_f.x&&_bounds.origin.y==_f.y)){ +return; +} +objj_msgSendSuper({receiver:_d,super_class:objj_getClass("CPView")},"setBoundsOrigin:",_f); +var _10=objj_msgSend(_d,"superview"); +if(objj_msgSend(_10,"isKindOfClass:",objj_msgSend(CPScrollView,"class"))){ +objj_msgSend(_10,"reflectScrolledClipView:",_d); +} +} +}),new objj_method(sel_getUid("scrollToPoint:"),function(_11,_12,_13){ +with(_11){ +objj_msgSend(_11,"setBoundsOrigin:",objj_msgSend(_11,"constrainScrollPoint:",_13)); +} +}),new objj_method(sel_getUid("viewBoundsChanged:"),function(_14,_15,_16){ +with(_14){ +objj_msgSend(_14,"_constrainScrollPoint"); +} +}),new objj_method(sel_getUid("viewFrameChanged:"),function(_17,_18,_19){ +with(_17){ +objj_msgSend(_17,"_constrainScrollPoint"); +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_1a,_1b,_1c){ +with(_1a){ +objj_msgSendSuper({receiver:_1a,super_class:objj_getClass("CPView")},"resizeSubviewsWithOldSize:",_1c); +objj_msgSend(_1a,"_constrainScrollPoint"); +} +}),new objj_method(sel_getUid("_constrainScrollPoint"),function(_1d,_1e){ +with(_1d){ +var _1f=objj_msgSend(_1d,"bounds").origin; +objj_msgSend(_1d,"scrollToPoint:",_1f); +if(!CGPointEqualToPoint(_1f,objj_msgSend(_1d,"bounds").origin)){ +return; +} +var _20=objj_msgSend(_1d,"superview"); +if(objj_msgSend(_20,"isKindOfClass:",objj_msgSend(CPScrollView,"class"))){ +objj_msgSend(_20,"reflectScrolledClipView:",_1d); +} +} +}),new objj_method(sel_getUid("autoscroll:"),function(_21,_22,_23){ +with(_21){ +var _24=objj_msgSend(_21,"bounds"),_25=objj_msgSend(_21,"convertPoint:fromView:",objj_msgSend(_23,"locationInWindow"),nil); +if(CPRectContainsPoint(_24,_25)){ +return NO; +} +var _26=CGRectMakeZero(); +_26.origin=_25; +_26.size=CPSizeMake(10,10); +return objj_msgSend(_documentView,"scrollRectToVisible:",_26); +} +})]); +var _27="CPScrollViewDocumentView"; +var _1=objj_getClass("CPClipView"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPClipView\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_28,_29,_2a){ +with(_28){ +if(_28=objj_msgSendSuper({receiver:_28,super_class:objj_getClass("CPView")},"initWithCoder:",_2a)){ +objj_msgSend(_28,"setDocumentView:",objj_msgSend(_2a,"decodeObjectForKey:",_27)); +} +return _28; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_2b,_2c,_2d){ +with(_2b){ +objj_msgSendSuper({receiver:_2b,super_class:objj_getClass("CPView")},"encodeWithCoder:",_2d); +objj_msgSend(_2d,"encodeObject:forKey:",_documentView,_27); +} +})]); +p;18;CPCollectionView.jI;20;Foundation/CPArray.jI;19;Foundation/CPData.jI;23;Foundation/CPIndexSet.jI;28;Foundation/CPKeyedArchiver.jI;30;Foundation/CPKeyedUnarchiver.jI;15;AppKit/CPView.jc;13723; +var _1=objj_allocateClassPair(CPView,"CPCollectionView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_content"),new objj_ivar("_items"),new objj_ivar("_itemData"),new objj_ivar("_itemPrototype"),new objj_ivar("_itemForDragging"),new objj_ivar("_cachedItems"),new objj_ivar("_maxNumberOfRows"),new objj_ivar("_maxNumberOfColumns"),new objj_ivar("_minItemSize"),new objj_ivar("_maxItemSize"),new objj_ivar("_tileWidth"),new objj_ivar("_isSelectable"),new objj_ivar("_allowsMultipleSelection"),new objj_ivar("_allowsEmptySelection"),new objj_ivar("_selectionIndexes"),new objj_ivar("_itemSize"),new objj_ivar("_horizontalMargin"),new objj_ivar("_verticalMargin"),new objj_ivar("_numberOfRows"),new objj_ivar("_numberOfColumns"),new objj_ivar("_delegate")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPView")},"initWithFrame:",_5); +if(_3){ +_items=[]; +_content=[]; +_cachedItems=[]; +_itemSize=CGSizeMakeZero(); +_minItemSize=CGSizeMakeZero(); +_maxItemSize=CGSizeMakeZero(); +_verticalMargin=5; +_tileWidth=-1; +_selectionIndexes=objj_msgSend(CPIndexSet,"indexSet"); +_allowsEmptySelection=YES; +_isSelectable=YES; +} +return _3; +} +}),new objj_method(sel_getUid("setItemPrototype:"),function(_6,_7,_8){ +with(_6){ +_itemData=objj_msgSend(CPKeyedArchiver,"archivedDataWithRootObject:",_8); +_itemForDragging=_8; +_itemPrototype=_8; +objj_msgSend(_6,"reloadContent"); +} +}),new objj_method(sel_getUid("itemPrototype"),function(_9,_a){ +with(_9){ +return _itemPrototype; +} +}),new objj_method(sel_getUid("newItemForRepresentedObject:"),function(_b,_c,_d){ +with(_b){ +var _e=nil; +if(_cachedItems.length){ +_e=_cachedItems.pop(); +}else{ +_e=objj_msgSend(CPKeyedUnarchiver,"unarchiveObjectWithData:",_itemData); +} +objj_msgSend(_e,"setRepresentedObject:",_d); +objj_msgSend(objj_msgSend(_e,"view"),"setFrameSize:",_itemSize); +return _e; +} +}),new objj_method(sel_getUid("acceptsFirstResponder"),function(_f,_10){ +with(_f){ +return YES; +} +}),new objj_method(sel_getUid("isFirstResponder"),function(_11,_12){ +with(_11){ +return objj_msgSend(objj_msgSend(_11,"window"),"firstResponder")==_11; +} +}),new objj_method(sel_getUid("setContent:"),function(_13,_14,_15){ +with(_13){ +if(_content==_15){ +return; +} +_content=_15; +objj_msgSend(_13,"reloadContent"); +} +}),new objj_method(sel_getUid("content"),function(_16,_17){ +with(_16){ +return _content; +} +}),new objj_method(sel_getUid("items"),function(_18,_19){ +with(_18){ +return _items; +} +}),new objj_method(sel_getUid("setSelectable:"),function(_1a,_1b,_1c){ +with(_1a){ +if(_isSelectable==_1c){ +return; +} +_isSelectable=_1c; +if(!_isSelectable){ +var _1d=CPNotFound; +while((_1d=objj_msgSend(_selectionIndexes,"indexGreaterThanIndex:",_1d))!=CPNotFound){ +objj_msgSend(_items[_1d],"setSelected:",NO); +} +} +} +}),new objj_method(sel_getUid("isSelected"),function(_1e,_1f){ +with(_1e){ +return _isSelected; +} +}),new objj_method(sel_getUid("setAllowsEmptySelection:"),function(_20,_21,_22){ +with(_20){ +_allowsEmptySelection=_22; +} +}),new objj_method(sel_getUid("allowsEmptySelection"),function(_23,_24){ +with(_23){ +return _allowsEmptySelection; +} +}),new objj_method(sel_getUid("setAllowsMultipleSelection:"),function(_25,_26,_27){ +with(_25){ +_allowsMultipleSelection=_27; +} +}),new objj_method(sel_getUid("allowsMultipleSelection"),function(_28,_29){ +with(_28){ +return _allowsMultipleSelection; +} +}),new objj_method(sel_getUid("setSelectionIndexes:"),function(_2a,_2b,_2c){ +with(_2a){ +if(_selectionIndexes==_2c||!_isSelectable){ +return; +} +var _2d=CPNotFound; +while((_2d=objj_msgSend(_selectionIndexes,"indexGreaterThanIndex:",_2d))!=CPNotFound){ +objj_msgSend(_items[_2d],"setSelected:",NO); +} +_selectionIndexes=_2c; +var _2d=CPNotFound; +while((_2d=objj_msgSend(_selectionIndexes,"indexGreaterThanIndex:",_2d))!=CPNotFound){ +objj_msgSend(_items[_2d],"setSelected:",YES); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("collectionViewDidChangeSelection:"))){ +objj_msgSend(_delegate,"collectionViewDidChangeSelection:",_2a); +} +} +}),new objj_method(sel_getUid("selectionIndexes"),function(_2e,_2f){ +with(_2e){ +return _selectionIndexes; +} +}),new objj_method(sel_getUid("reloadContent"),function(_30,_31){ +with(_30){ +var _32=_items.length; +while(_32--){ +objj_msgSend(objj_msgSend(_items[_32],"view"),"removeFromSuperview"); +_cachedItems.push(_items[_32]); +} +_items=[]; +if(!_itemData||!_content){ +return; +} +var _33=0; +_32=_content.length; +for(;_33<_32;++_33){ +_items.push(objj_msgSend(_30,"newItemForRepresentedObject:",_content[_33])); +objj_msgSend(_30,"addSubview:",objj_msgSend(_items[_33],"view")); +} +objj_msgSend(_30,"tile"); +} +}),new objj_method(sel_getUid("tile"),function(_34,_35){ +with(_34){ +var _36=CGRectGetWidth(objj_msgSend(_34,"bounds")); +if(!objj_msgSend(_content,"count")||_36==_tileWidth){ +return; +} +var _37=CGSizeMakeCopy(_minItemSize); +_numberOfColumns=MAX(1,FLOOR(_36/_37.width)); +if(_maxNumberOfColumns>0){ +_numberOfColumns=MIN(_maxNumberOfColumns,_numberOfColumns); +} +var _38=_36-_numberOfColumns*_37.width,_39=NO; +if(_38>0&&_37.width<_maxItemSize.width){ +_37.width=MIN(_maxItemSize.width,_37.width+FLOOR(_38/_numberOfColumns)); +} +if(_maxNumberOfColumns==1&&_37.width<_maxItemSize.width&&_37.width<_36){ +_37.width=MIN(_maxItemSize.width,_36); +} +if(!CGSizeEqualToSize(_itemSize,_37)){ +_itemSize=_37; +_39=YES; +} +var _3a=0,_3b=_items.length; +if(_maxNumberOfColumns>0&&_maxNumberOfRows>0){ +_3b=MIN(_3b,_maxNumberOfColumns*_maxNumberOfRows); +} +_numberOfRows=CEIL(_3b/_numberOfColumns); +_horizontalMargin=FLOOR((_36-_numberOfColumns*_37.width)/(_numberOfColumns+1)); +var x=_horizontalMargin,y=-_37.height; +for(;_3a<_3b;++_3a){ +if(_3a%_numberOfColumns==0){ +x=_horizontalMargin; +y+=_verticalMargin+_37.height; +} +var _3e=objj_msgSend(_items[_3a],"view"); +objj_msgSend(_3e,"setFrameOrigin:",CGPointMake(x,y)); +if(_39){ +objj_msgSend(_3e,"setFrameSize:",_itemSize); +} +x+=_37.width+_horizontalMargin; +} +_tileWidth=_36; +objj_msgSend(_34,"setFrameSize:",CGSizeMake(_36,y+_37.height+_verticalMargin)); +_tileWidth=-1; +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_3f,_40,_41){ +with(_3f){ +objj_msgSend(_3f,"tile"); +} +}),new objj_method(sel_getUid("setMaxNumberOfRows:"),function(_42,_43,_44){ +with(_42){ +if(_maxNumberOfRows==_44){ +return; +} +_maxNumberOfRows=_44; +objj_msgSend(_42,"tile"); +} +}),new objj_method(sel_getUid("maxNumberOfRows"),function(_45,_46){ +with(_45){ +return _maxNumberOfRows; +} +}),new objj_method(sel_getUid("setMaxNumberOfColumns:"),function(_47,_48,_49){ +with(_47){ +if(_maxNumberOfColumns==_49){ +return; +} +_maxNumberOfColumns=_49; +objj_msgSend(_47,"tile"); +} +}),new objj_method(sel_getUid("maxNumberOfColumns"),function(_4a,_4b){ +with(_4a){ +return _maxNumberOfColumns; +} +}),new objj_method(sel_getUid("numberOfRows"),function(_4c,_4d){ +with(_4c){ +return _numberOfRows; +} +}),new objj_method(sel_getUid("numberOfColumns"),function(_4e,_4f){ +with(_4e){ +return _numberOfColumns; +} +}),new objj_method(sel_getUid("setMinItemSize:"),function(_50,_51,_52){ +with(_50){ +if(CGSizeEqualToSize(_minItemSize,_52)){ +return; +} +_minItemSize=CGSizeMakeCopy(_52); +objj_msgSend(_50,"tile"); +} +}),new objj_method(sel_getUid("minItemSize"),function(_53,_54){ +with(_53){ +return _minItemSize; +} +}),new objj_method(sel_getUid("setMaxItemSize:"),function(_55,_56,_57){ +with(_55){ +if(CGSizeEqualToSize(_maxItemSize,_57)){ +return; +} +_maxItemSize=CGSizeMakeCopy(_57); +objj_msgSend(_55,"tile"); +} +}),new objj_method(sel_getUid("maxItemSize"),function(_58,_59){ +with(_58){ +return _maxItemSize; +} +}),new objj_method(sel_getUid("mouseUp:"),function(_5a,_5b,_5c){ +with(_5a){ +if(objj_msgSend(_selectionIndexes,"count")&&objj_msgSend(_5c,"clickCount")==2&&objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("collectionView:didDoubleClickOnItemAtIndex:"))){ +objj_msgSend(_delegate,"collectionView:didDoubleClickOnItemAtIndex:",_5a,objj_msgSend(_selectionIndexes,"firstIndex")); +} +} +}),new objj_method(sel_getUid("mouseDown:"),function(_5d,_5e,_5f){ +with(_5d){ +var _60=objj_msgSend(_5d,"convertPoint:fromView:",objj_msgSend(_5f,"locationInWindow"),nil),row=FLOOR(_60.y/(_itemSize.height+_verticalMargin)),_62=FLOOR(_60.x/(_itemSize.width+_horizontalMargin)),_63=row*_numberOfColumns+_62; +if(_63>=0&&_63<_items.length){ +objj_msgSend(_5d,"setSelectionIndexes:",objj_msgSend(CPIndexSet,"indexSetWithIndex:",_63)); +}else{ +if(_allowsEmptySelection){ +objj_msgSend(_5d,"setSelectionIndexes:",objj_msgSend(CPIndexSet,"indexSet")); +} +} +} +}),new objj_method(sel_getUid("mouseDragged:"),function(_64,_65,_66){ +with(_64){ +if(!objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("collectionView:dragTypesForItemsAtIndexes:"))){ +return; +} +if(!objj_msgSend(_selectionIndexes,"count")){ +return; +} +var _67=objj_msgSend(_delegate,"collectionView:dragTypesForItemsAtIndexes:",_64,_selectionIndexes); +objj_msgSend(objj_msgSend(CPPasteboard,"pasteboardWithName:",CPDragPboard),"declareTypes:owner:",_67,_64); +var _68=objj_msgSend(_64,"convertPoint:fromView:",objj_msgSend(_66,"locationInWindow"),nil); +objj_msgSend(_itemForDragging,"setRepresentedObject:",_content[objj_msgSend(_selectionIndexes,"firstIndex")]); +var _69=objj_msgSend(_itemForDragging,"view"),_6a=objj_msgSend(_69,"frame"); +objj_msgSend(_69,"setFrameSize:",_itemSize); +objj_msgSend(_69,"setAlphaValue:",0.7); +objj_msgSend(_64,"dragView:at:offset:event:pasteboard:source:slideBack:",_69,objj_msgSend(objj_msgSend(_items[objj_msgSend(_selectionIndexes,"firstIndex")],"view"),"frame").origin,CGPointMakeZero(),_66,nil,_64,YES); +} +}),new objj_method(sel_getUid("pasteboard:provideDataForType:"),function(_6b,_6c,_6d,_6e){ +with(_6b){ +objj_msgSend(_6d,"setData:forType:",objj_msgSend(_delegate,"collectionView:dataForItemsAtIndexes:forType:",_6b,_selectionIndexes,_6e),_6e); +} +}),new objj_method(sel_getUid("setVerticalMargin:"),function(_6f,_70,_71){ +with(_6f){ +if(_verticalMargin==_71){ +return; +} +_verticalMargin=_71; +objj_msgSend(_6f,"tile"); +} +}),new objj_method(sel_getUid("verticalMargin"),function(_72,_73){ +with(_72){ +return _verticalMargin; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_74,_75,_76){ +with(_74){ +_delegate=_76; +} +}),new objj_method(sel_getUid("delegate"),function(_77,_78){ +with(_77){ +return _delegate; +} +})]); +var _1=objj_allocateClassPair(CPObject,"CPCollectionViewItem"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_representedObject"),new objj_ivar("_view"),new objj_ivar("_isSelected")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("setRepresentedObject:"),function(_79,_7a,_7b){ +with(_79){ +if(_representedObject==_7b){ +return; +} +_representedObject=_7b; +objj_msgSend(_view,"setRepresentedObject:",_7b); +} +}),new objj_method(sel_getUid("representedObject"),function(_7c,_7d){ +with(_7c){ +return _representedObject; +} +}),new objj_method(sel_getUid("setView:"),function(_7e,_7f,_80){ +with(_7e){ +_view=_80; +} +}),new objj_method(sel_getUid("view"),function(_81,_82){ +with(_81){ +return _view; +} +}),new objj_method(sel_getUid("setSelected:"),function(_83,_84,_85){ +with(_83){ +if(_isSelected==_85){ +return; +} +_isSelected=_85; +objj_msgSend(_view,"setSelected:",_isSelected); +} +}),new objj_method(sel_getUid("isSelected"),function(_86,_87){ +with(_86){ +return _isSelected; +} +}),new objj_method(sel_getUid("collectionView"),function(_88,_89){ +with(_88){ +return objj_msgSend(_view,"superview"); +} +})]); +var _8a="CPCollectionViewMinItemSizeKey",_8b="CPCollectionViewMaxItemSizeKey",_8c="CPCollectionViewVerticalMarginKey"; +var _1=objj_getClass("CPCollectionView"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPCollectionView\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_8d,_8e,_8f){ +with(_8d){ +_8d=objj_msgSendSuper({receiver:_8d,super_class:objj_getClass("CPView")},"initWithCoder:",_8f); +if(_8d){ +_items=[]; +_content=[]; +_cachedItems=[]; +_itemSize=CGSizeMakeZero(); +_minItemSize=objj_msgSend(_8f,"decodeSizeForKey:",_8a); +_maxItemSize=objj_msgSend(_8f,"decodeSizeForKey:",_8b); +_verticalMargin=objj_msgSend(_8f,"decodeSizeForKey:",_8c); +_tileWidth=-1; +_selectionIndexes=objj_msgSend(CPIndexSet,"indexSet"); +} +return _8d; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_90,_91,_92){ +with(_90){ +objj_msgSendSuper({receiver:_90,super_class:objj_getClass("CPView")},"encodeWithCoder:",_92); +objj_msgSend(_92,"encodeSize:forKey:",_minItemSize,_8a); +objj_msgSend(_92,"encodeSize:forKey:",_maxItemSize,_8b); +objj_msgSend(_92,"encodeSize:forKey:",_verticalMargin,_8c); +} +})]); +var _93="CPCollectionViewItemViewKey"; +var _1=objj_getClass("CPCollectionViewItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPCollectionViewItem\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("copy"),function(_94,_95){ +with(_94){ +} +})]); +var _93="CPCollectionViewItemViewKey"; +var _1=objj_getClass("CPCollectionViewItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPCollectionViewItem\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_96,_97,_98){ +with(_96){ +_96=objj_msgSendSuper({receiver:_96,super_class:objj_getClass("CPObject")},"init"); +if(_96){ +_view=objj_msgSend(_98,"decodeObjectForKey:",_93); +} +return _96; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_99,_9a,_9b){ +with(_99){ +objj_msgSend(_9b,"encodeObject:forKey:",_view,_93); +} +})]); +p;9;CPColor.jI;21;Foundation/CPObject.ji;9;CGColor.ji;17;CPCompatibility.ji;9;CPImage.jc;12886; +var _1=0,_2=1,_3=2,_4=3; +var _5=0,_6=1,_7=2; +var _8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12; +var _13=objj_allocateClassPair(CPObject,"CPColor"),_14=_13.isa; +class_addIvars(_13,[new objj_ivar("_components"),new objj_ivar("_patternImage"),new objj_ivar("_cssString")]); +objj_registerClassPair(_13); +objj_addClassForBundle(_13,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_13,[new objj_method(sel_getUid("_initWithCSSString:"),function(_15,_16,_17){ +with(_15){ +if(_17.indexOf("rgb")==CPNotFound){ +return nil; +} +_15=objj_msgSendSuper({receiver:_15,super_class:objj_getClass("CPObject")},"init"); +var _18=_17.indexOf("("); +var _19=_17.substring(_18+1).split(","); +_components=[parseInt(_19[0],10)/255,parseInt(_19[1],10)/255,parseInt(_19[2],10)/255,_19[3]?parseInt(_19[3],10)/255:1]; +_cssString=_17; +return _15; +} +}),new objj_method(sel_getUid("_initWithRGBA:"),function(_1a,_1b,_1c){ +with(_1a){ +_1a=objj_msgSendSuper({receiver:_1a,super_class:objj_getClass("CPObject")},"init"); +if(_1a){ +_components=_1c; +if(!CPFeatureIsCompatible(CPCSSRGBAFeature)&&_components[3]!=1&&window.Base64&&window.CRC32){ +var _1d=[137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,1,0,0,0,1,8,3,0,0,0,40,203,52,187,0,0,3,0,80,76,84,69,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,137,153,85,0,0,0,1,116,82,78,83,0,64,230,216,102,0,0,0,16,73,68,65,84,120,218,98,96,0,0,0,0,255,255,3,0,0,2,0,1,36,127,36,241,0,0,0,0,73,69,78,68,174,66,96,130,255]; +var _1e=41; +var _1f=42; +var _20=43; +var _21=821; +var _22=809; +var _23=822; +var _24=37; +var _25=817; +_1d[_1e]=Math.round(_components[0]*255); +_1d[_1f]=Math.round(_components[1]*255); +_1d[_20]=Math.round(_components[2]*255); +_1d[_21]=Math.round(_components[3]*255); +var _26=integerToBytes(CRC32.getCRC(_1d,_24,4+768),4); +var _27=integerToBytes(CRC32.getCRC(_1d,_25,4+1),4); +for(var i=0;i<4;i++){ +_1d[_22+i]=_26[i]; +_1d[_23+i]=_27[i]; +} +var _29=Base64.encode(_1d); +_cssString="url(\"data:image/png;base64,"+_29+"\")"; +}else{ +var _2a=CPFeatureIsCompatible(CPCSSRGBAFeature)&&_components[3]!=1; +_cssString=(_2a?"rgba(":"rgb(")+parseInt(_components[0]*255)+", "+parseInt(_components[1]*255)+", "+parseInt(_components[2]*255)+(_2a?(", "+_components[3]):"")+")"; +} +} +return _1a; +} +}),new objj_method(sel_getUid("_initWithPatternImage:"),function(_2b,_2c,_2d){ +with(_2b){ +_2b=objj_msgSendSuper({receiver:_2b,super_class:objj_getClass("CPObject")},"init"); +if(_2b){ +_patternImage=_2d; +_cssString="url(\""+objj_msgSend(_patternImage,"filename")+"\")"; +} +return _2b; +} +}),new objj_method(sel_getUid("patternImage"),function(_2e,_2f){ +with(_2e){ +return _patternImage; +} +}),new objj_method(sel_getUid("alphaComponent"),function(_30,_31){ +with(_30){ +return _components[3]; +} +}),new objj_method(sel_getUid("blueComponent"),function(_32,_33){ +with(_32){ +return _components[2]; +} +}),new objj_method(sel_getUid("greenComponent"),function(_34,_35){ +with(_34){ +return _components[1]; +} +}),new objj_method(sel_getUid("redComponent"),function(_36,_37){ +with(_36){ +return _components[0]; +} +}),new objj_method(sel_getUid("components"),function(_38,_39){ +with(_38){ +return _components; +} +}),new objj_method(sel_getUid("colorWithAlphaComponent:"),function(_3a,_3b,_3c){ +with(_3a){ +var _3d=_components.slice(); +_3d[_3d.length-1]=_3c; +return objj_msgSend(objj_msgSend(objj_msgSend(_3a,"class"),"alloc"),"_initWithRGBA:",_3d); +} +}),new objj_method(sel_getUid("hsbComponents"),function(_3e,_3f){ +with(_3e){ +var red=ROUND(_components[_1]*255),_41=ROUND(_components[_2]*255),_42=ROUND(_components[_3]*255); +var max=MAX(red,_41,_42),min=MIN(red,_41,_42),_45=max-min; +var _46=max/255,_47=(max!=0)?_45/max:0; +var hue; +if(_47==0){ +hue=0; +}else{ +var rr=(max-red)/_45; +var gr=(max-_41)/_45; +var br=(max-_42)/_45; +if(red==max){ +hue=br-gr; +}else{ +if(_41==max){ +hue=2+rr-br; +}else{ +hue=4+gr-rr; +} +} +hue/=6; +if(hue<0){ +hue++; +} +} +return [ROUND(hue*360),ROUND(_47*100),ROUND(_46*100)]; +} +}),new objj_method(sel_getUid("cssString"),function(_4c,_4d){ +with(_4c){ +return _cssString; +} +}),new objj_method(sel_getUid("hexString"),function(_4e,_4f){ +with(_4e){ +return rgbToHex(objj_msgSend(_4e,"redComponent"),objj_msgSend(_4e,"greenComponent"),objj_msgSend(_4e,"blueComponent")); +} +}),new objj_method(sel_getUid("isEqual:"),function(_50,_51,_52){ +with(_50){ +if(!_52){ +return NO; +} +if(_52===_50){ +return YES; +} +return objj_msgSend(_52,"isKindOfClass:",CPColor)&&objj_msgSend(_52,"cssString")===objj_msgSend(_50,"cssString"); +} +}),new objj_method(sel_getUid("description"),function(_53,_54){ +with(_53){ +return objj_msgSendSuper({receiver:_53,super_class:objj_getClass("CPObject")},"description")+" "+objj_msgSend(_53,"cssString"); +} +})]); +class_addMethods(_14,[new objj_method(sel_getUid("colorWithRed:green:blue:alpha:"),function(_55,_56,red,_58,_59,_5a){ +with(_55){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[red,_58,_59,_5a]); +} +}),new objj_method(sel_getUid("colorWithCalibratedRed:green:blue:alpha:"),function(_5b,_5c,red,_5e,_5f,_60){ +with(_5b){ +return objj_msgSend(_5b,"colorWithRed:green:blue:alpha:",red,_5e,_5f,_60); +} +}),new objj_method(sel_getUid("colorWithWhite:alpha:"),function(_61,_62,_63,_64){ +with(_61){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[_63,_63,_63,_64]); +} +}),new objj_method(sel_getUid("colorWithCalibratedWhite:alpha:"),function(_65,_66,_67,_68){ +with(_65){ +return objj_msgSend(_65,"colorWithWhite:alpha:",_67,_68); +} +}),new objj_method(sel_getUid("colorWithHue:saturation:brightness:"),function(_69,_6a,hue,_6c,_6d){ +with(_69){ +return objj_msgSend(_69,"colorWithHue:saturation:brightness:alpha:",hue,_6c,_6d,1); +} +}),new objj_method(sel_getUid("colorWithHue:saturation:brightness:alpha:"),function(_6e,_6f,hue,_71,_72,_73){ +with(_6e){ +if(_71===0){ +return objj_msgSend(CPColor,"colorWithCalibratedWhite:alpha:",_72/100,_73); +} +var f=hue%60,p=(_72*(100-_71))/10000,q=(_72*(6000-_71*f))/600000,t=(_72*(6000-_71*(60-f)))/600000,b=_72/100; +switch(FLOOR(hue/60)){ +case 0: +return objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",b,t,p,_73); +case 1: +return objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",q,b,p,_73); +case 2: +return objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",p,b,t,_73); +case 3: +return objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",p,q,b,_73); +case 4: +return objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",t,p,b,_73); +case 5: +return objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",b,p,q,_73); +} +} +}),new objj_method(sel_getUid("colorWithHexString:"),function(_79,_7a,hex){ +with(_79){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",hexToRGB(hex)); +} +}),new objj_method(sel_getUid("blackColor"),function(_7c,_7d){ +with(_7c){ +if(!_8){ +_8=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[0,0,0,1]); +} +return _8; +} +}),new objj_method(sel_getUid("blueColor"),function(_7e,_7f){ +with(_7e){ +if(!_b){ +_b=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[0,0,1,1]); +} +return _b; +} +}),new objj_method(sel_getUid("darkGrayColor"),function(_80,_81){ +with(_80){ +if(!_f){ +_f=objj_msgSend(CPColor,"colorWithCalibratedWhite:alpha:",1/3,1); +} +return _f; +} +}),new objj_method(sel_getUid("grayColor"),function(_82,_83){ +with(_82){ +if(!_d){ +_d=objj_msgSend(CPColor,"colorWithCalibratedWhite:alpha:",0.5,1); +} +return _d; +} +}),new objj_method(sel_getUid("greenColor"),function(_84,_85){ +with(_84){ +if(!_a){ +_a=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[0,1,0,1]); +} +return _a; +} +}),new objj_method(sel_getUid("lightGrayColor"),function(_86,_87){ +with(_86){ +if(!_e){ +_e=objj_msgSend(CPColor,"colorWithCalibratedWhite:alpha:",2/3,1); +} +return _e; +} +}),new objj_method(sel_getUid("redColor"),function(_88,_89){ +with(_88){ +if(!_9){ +_9=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[1,0,0,1]); +} +return _9; +} +}),new objj_method(sel_getUid("whiteColor"),function(_8a,_8b){ +with(_8a){ +if(!_10){ +_10=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[1,1,1,1]); +} +return _10; +} +}),new objj_method(sel_getUid("yellowColor"),function(_8c,_8d){ +with(_8c){ +if(!_c){ +_c=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[1,1,0,1]); +} +return _c; +} +}),new objj_method(sel_getUid("shadowColor"),function(_8e,_8f){ +with(_8e){ +if(!_11){ +_11=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[0,0,0,1/3]); +} +return _11; +} +}),new objj_method(sel_getUid("clearColor"),function(_90,_91){ +with(_90){ +if(!_12){ +_12=objj_msgSend(_90,"colorWithCalibratedWhite:alpha:",0,0); +} +return _12; +} +}),new objj_method(sel_getUid("colorWithPatternImage:"),function(_92,_93,_94){ +with(_92){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithPatternImage:",_94); +} +}),new objj_method(sel_getUid("colorWithCSSString:"),function(_95,_96,_97){ +with(_95){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithCSSString:",_97); +} +})]); +var _13=objj_getClass("CPColor"); +if(!_13){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPColor\"")); +} +var _14=_13.isa; +class_addMethods(_13,[new objj_method(sel_getUid("set"),function(_98,_99){ +with(_98){ +objj_msgSend(_98,"setFill"); +objj_msgSend(_98,"setStroke"); +} +}),new objj_method(sel_getUid("setFill"),function(_9a,_9b){ +with(_9a){ +var ctx=objj_msgSend(objj_msgSend(CPGraphicsContext,"currentContext"),"graphicsPort"); +CGContextSetFillColor(ctx,_9a); +} +}),new objj_method(sel_getUid("setStroke"),function(_9d,_9e){ +with(_9d){ +var ctx=objj_msgSend(objj_msgSend(CPGraphicsContext,"currentContext"),"graphicsPort"); +CGContextSetStrokeColor(ctx,_9d); +} +})]); +var _a0="CPColorComponentsKey",_a1="CPColorPatternImageKey"; +var _13=objj_getClass("CPColor"); +if(!_13){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPColor\"")); +} +var _14=_13.isa; +class_addMethods(_13,[new objj_method(sel_getUid("initWithCoder:"),function(_a2,_a3,_a4){ +with(_a2){ +if(objj_msgSend(_a4,"containsValueForKey:",_a1)){ +return objj_msgSend(_a2,"_initWithPatternImage:",objj_msgSend(_a4,"decodeObjectForKey:",_a1)); +} +return objj_msgSend(_a2,"_initWithRGBA:",objj_msgSend(_a4,"decodeObjectForKey:",_a0)); +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_a5,_a6,_a7){ +with(_a5){ +if(_patternImage){ +objj_msgSend(_a7,"encodeObject:forKey:",_patternImage,_a1); +}else{ +objj_msgSend(_a7,"encodeObject:forKey:",_components,_a0); +} +} +})]); +var _a8="0123456789ABCDEF"; +hexToRGB=function(hex){ +if(hex.length==3){ +hex=hex.charAt(0)+hex.charAt(0)+hex.charAt(1)+hex.charAt(1)+hex.charAt(2)+hex.charAt(2); +} +if(hex.length!=6){ +return null; +} +hex=hex.toUpperCase(); +for(var i=0;i=0;i--){ +_b0[i]=_ae&255; +_ae=_ae>>8; +} +return _b0; +}; +rgbToHex=function(r,g,b){ +return byteToHex(r)+byteToHex(g)+byteToHex(b); +}; +byteToHex=function(n){ +if(!n||isNaN(n)){ +return "00"; +} +n=ROUND(MIN(255,MAX(0,256*n))); +return _a8.charAt((n-n%16)/16)+_a8.charAt(n%16); +}; +p;14;CPColorPanel.ji;10;CPButton.ji;10;CPCookie.ji;9;CPPanel.ji;8;CPView.jc;16229; +CPColorPanelColorDidChangeNotification="CPColorPanelColorDidChangeNotification"; +var _1=20,_2=32,_3=14,_4=32,_5=12; +var _6=nil,_7=[]; +CPWheelColorPickerMode=1; +CPSliderColorPickerMode=2; +CPColorPickerViewWidth=265,CPColorPickerViewHeight=370; +var _8=objj_allocateClassPair(CPPanel,"CPColorPanel"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_toolbar"),new objj_ivar("_swatchView"),new objj_ivar("_previewView"),new objj_ivar("_opacitySlider"),new objj_ivar("_colorPickers"),new objj_ivar("_currentView"),new objj_ivar("_activePicker"),new objj_ivar("_color"),new objj_ivar("_target"),new objj_ivar("_action"),new objj_ivar("_mode")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("init"),function(_a,_b){ +with(_a){ +_a=objj_msgSendSuper({receiver:_a,super_class:objj_getClass("CPPanel")},"initWithContentRect:styleMask:",CGRectMake(500,50,219,370),(CPTitledWindowMask|CPClosableWindowMask|CPResizableWindowMask)); +if(_a){ +objj_msgSend(objj_msgSend(_a,"contentView"),"setBackgroundColor:",objj_msgSend(CPColor,"colorWithWhite:alpha:",0.95,1)); +objj_msgSend(_a,"setTitle:","Color Panel"); +objj_msgSend(_a,"setLevel:",CPFloatingWindowLevel); +objj_msgSend(_a,"setFloatingPanel:",YES); +objj_msgSend(_a,"setBecomesKeyOnlyIfNeeded:",YES); +objj_msgSend(_a,"setMinSize:",CGSizeMake(219,342)); +objj_msgSend(_a,"setMaxSize:",CGSizeMake(323,537)); +} +return _a; +} +}),new objj_method(sel_getUid("setColor:"),function(_c,_d,_e){ +with(_c){ +_color=_e; +objj_msgSend(_previewView,"setBackgroundColor:",_color); +objj_msgSend(CPApp,"sendAction:to:from:",sel_getUid("changeColor:"),nil,_c); +if(_target&&_action){ +objj_msgSend(CPApp,"sendAction:to:from:",_action,_target,_c); +} +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPColorPanelColorDidChangeNotification,_c); +objj_msgSend(_activePicker,"setColor:",_color); +objj_msgSend(_opacitySlider,"setFloatValue:",objj_msgSend(_color,"alphaComponent")); +} +}),new objj_method(sel_getUid("setColor:updatePicker:"),function(_f,_10,_11,_12){ +with(_f){ +objj_msgSend(_f,"setColor:",_11); +if(_12){ +objj_msgSend(_activePicker,"setColor:",_color); +} +} +}),new objj_method(sel_getUid("color"),function(_13,_14){ +with(_13){ +return _color; +} +}),new objj_method(sel_getUid("opacity"),function(_15,_16){ +with(_15){ +return objj_msgSend(_opacitySlider,"floatValue"); +} +}),new objj_method(sel_getUid("setTarget:"),function(_17,_18,_19){ +with(_17){ +_target=_19; +} +}),new objj_method(sel_getUid("target"),function(_1a,_1b){ +with(_1a){ +return _target; +} +}),new objj_method(sel_getUid("setAction:"),function(_1c,_1d,_1e){ +with(_1c){ +_action=_1e; +} +}),new objj_method(sel_getUid("action"),function(_1f,_20){ +with(_1f){ +return _action; +} +}),new objj_method(sel_getUid("setMode:"),function(_21,_22,_23){ +with(_21){ +_mode=_23; +} +}),new objj_method(sel_getUid("_setPicker:"),function(_24,_25,_26){ +with(_24){ +var _27=_colorPickers[objj_msgSend(_26,"tag")],_28=objj_msgSend(_27,"provideNewView:",NO); +if(!_28){ +_28=objj_msgSend(_27,"provideNewView:",YES); +} +if(_28==_currentView){ +return; +} +if(_currentView){ +objj_msgSend(_28,"setFrame:",objj_msgSend(_currentView,"frame")); +}else{ +var _29=(_2+10+_1+5+_3+32),_2a=objj_msgSend(objj_msgSend(_24,"contentView"),"bounds"); +objj_msgSend(_28,"setFrameSize:",CPSizeMake(_2a.size.width-10,_2a.size.height-_29)); +objj_msgSend(_28,"setFrameOrigin:",CPPointMake(5,_29)); +} +objj_msgSend(_currentView,"removeFromSuperview"); +objj_msgSend(objj_msgSend(_24,"contentView"),"addSubview:",_28); +_currentView=_28; +_activePicker=_27; +objj_msgSend(_27,"setColor:",objj_msgSend(_24,"color")); +} +}),new objj_method(sel_getUid("mode"),function(_2b,_2c){ +with(_2b){ +return _mode; +} +}),new objj_method(sel_getUid("orderFront:"),function(_2d,_2e,_2f){ +with(_2d){ +objj_msgSend(_2d,"_loadContentsIfNecessary"); +objj_msgSendSuper({receiver:_2d,super_class:objj_getClass("CPPanel")},"orderFront:",_2f); +} +}),new objj_method(sel_getUid("_loadContentsIfNecessary"),function(_30,_31){ +with(_30){ +if(_toolbar){ +return; +} +if(!_color){ +_color=objj_msgSend(CPColor,"whiteColor"); +} +_colorPickers=[]; +var _32=objj_msgSend(_7,"count"); +for(var i=0;i<_32;i++){ +var _34=_7[i],_35=objj_msgSend(objj_msgSend(_34,"alloc"),"initWithPickerMask:colorPanel:",0,_30); +_colorPickers.push(_35); +} +var _36=objj_msgSend(_30,"contentView"),_37=objj_msgSend(_36,"bounds"); +_toolbar=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,6,CGRectGetWidth(_37),_2)); +objj_msgSend(_toolbar,"setAutoresizingMask:",CPViewWidthSizable); +var _38=_32*_4+(_32-1)*_5,_39=(CGRectGetWidth(_37)-_38)/2,_3a=nil; +for(var i=0;i<_32;i++){ +var _3b=objj_msgSend(_colorPickers[i],"provideNewButtonImage"),_3c=objj_msgSend(_colorPickers[i],"provideNewAlternateButtonImage"),_3d=objj_msgSend(objj_msgSend(CPButton,"alloc"),"initWithFrame:",CGRectMake(_39+i*(_4+_5),0,_4,_4)); +objj_msgSend(_3d,"setTag:",i); +objj_msgSend(_3d,"setTarget:",_30); +objj_msgSend(_3d,"setAction:",sel_getUid("_setPicker:")); +objj_msgSend(_3d,"setBordered:",NO); +objj_msgSend(_3d,"setAutoresizingMask:",CPViewMinXMargin|CPViewMaxXMargin); +objj_msgSend(_3d,"setImage:",_3b); +objj_msgSend(_3d,"setAlternateImage:",_3c); +objj_msgSend(_toolbar,"addSubview:",_3d); +if(!_3a){ +_3a=_3d; +} +} +var _3e=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(76,_2+10,CGRectGetWidth(_37)-86,_1)); +_previewView=objj_msgSend(objj_msgSend(_CPColorPanelPreview,"alloc"),"initWithFrame:",CGRectInset(objj_msgSend(_3e,"bounds"),2,2)); +objj_msgSend(_previewView,"setColorPanel:",_30); +objj_msgSend(_previewView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_3e,"setBackgroundColor:",objj_msgSend(CPColor,"colorWithWhite:alpha:",0.8,1)); +objj_msgSend(_3e,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_3e,"addSubview:",_previewView); +var _3f=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(10,_2+10,60,15)); +objj_msgSend(_3f,"setStringValue:","Preview:"); +objj_msgSend(_3f,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(_3f,"setAlignment:",CPRightTextAlignment); +var _40=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(76,_2+10+_1+5,CGRectGetWidth(_37)-86,_3+2)); +objj_msgSend(_40,"setBackgroundColor:",objj_msgSend(CPColor,"colorWithWhite:alpha:",0.8,1)); +objj_msgSend(_40,"setAutoresizingMask:",CPViewWidthSizable); +_swatchView=objj_msgSend(objj_msgSend(_CPColorPanelSwatches,"alloc"),"initWithFrame:",CGRectInset(objj_msgSend(_40,"bounds"),1,1)); +objj_msgSend(_swatchView,"setColorPanel:",_30); +objj_msgSend(_swatchView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_40,"addSubview:",_swatchView); +var _41=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(10,_2+8+_1+6,60,15)); +objj_msgSend(_41,"setStringValue:","Swatches:"); +objj_msgSend(_41,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(_41,"setAlignment:",CPRightTextAlignment); +var _42=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(10,_2+_1+35,60,20)); +objj_msgSend(_42,"setStringValue:","Opacity:"); +objj_msgSend(_42,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(_42,"setAlignment:",CPRightTextAlignment); +_opacitySlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CGRectMake(76,_2+_1+34,CGRectGetWidth(_37)-86,20)); +objj_msgSend(_opacitySlider,"setMinValue:",0); +objj_msgSend(_opacitySlider,"setMaxValue:",1); +objj_msgSend(_opacitySlider,"setTarget:",_30); +objj_msgSend(_opacitySlider,"setAction:",sel_getUid("setOpacity:")); +objj_msgSend(_36,"addSubview:",_toolbar); +objj_msgSend(_36,"addSubview:",_3e); +objj_msgSend(_36,"addSubview:",_3f); +objj_msgSend(_36,"addSubview:",_40); +objj_msgSend(_36,"addSubview:",_41); +objj_msgSend(_36,"addSubview:",_42); +objj_msgSend(_36,"addSubview:",_opacitySlider); +_target=nil; +_action=nil; +_activePicker=nil; +objj_msgSend(_previewView,"setBackgroundColor:",_color); +if(_3a){ +objj_msgSend(_30,"_setPicker:",_3a); +} +} +}),new objj_method(sel_getUid("setOpacity:"),function(_43,_44,_45){ +with(_43){ +var _46=objj_msgSend(objj_msgSend(_43,"color"),"components"),_47=objj_msgSend(_45,"floatValue"); +objj_msgSend(_43,"setColor:updatePicker:",objj_msgSend(_color,"colorWithAlphaComponent:",_47),YES); +} +})]); +class_addMethods(_9,[new objj_method(sel_getUid("provideColorPickerClass:"),function(_48,_49,_4a){ +with(_48){ +_7.push(_4a); +} +}),new objj_method(sel_getUid("sharedColorPanel"),function(_4b,_4c){ +with(_4b){ +if(!_6){ +_6=objj_msgSend(objj_msgSend(CPColorPanel,"alloc"),"init"); +} +return _6; +} +}),new objj_method(sel_getUid("setPickerMode:"),function(_4d,_4e,_4f){ +with(_4d){ +var _50=objj_msgSend(CPColorPanel,"sharedColorPanel"); +objj_msgSend(_50,"setMode:",_4f); +} +})]); +CPColorDragType="CPColorDragType"; +var _51="CPColorPanelSwatchesCookie"; +var _8=objj_allocateClassPair(CPView,"_CPColorPanelSwatches"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_swatches"),new objj_ivar("_dragColor"),new objj_ivar("_colorPanel"),new objj_ivar("_swatchCookie")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("initWithFrame:"),function(_52,_53,_54){ +with(_52){ +_52=objj_msgSendSuper({receiver:_52,super_class:objj_getClass("CPView")},"initWithFrame:",_54); +objj_msgSend(_52,"setBackgroundColor:",objj_msgSend(CPColor,"grayColor")); +objj_msgSend(_52,"registerForDraggedTypes:",objj_msgSend(CPArray,"arrayWithObjects:",CPColorDragType)); +var _55=objj_msgSend(CPColor,"whiteColor"); +_swatchCookie=objj_msgSend(objj_msgSend(CPCookie,"alloc"),"initWithName:",_51); +var _56=objj_msgSend(_52,"startingColorList"); +_swatches=[]; +for(var i=0;i<50;i++){ +var _58=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(13*i+1,1,12,12)),_59=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectInset(objj_msgSend(_58,"bounds"),1,1)); +objj_msgSend(_58,"setBackgroundColor:",_55); +objj_msgSend(_59,"setBackgroundColor:",(i<_56.length)?_56[i]:_55); +objj_msgSend(_58,"addSubview:",_59); +objj_msgSend(_52,"addSubview:",_58); +_swatches.push(_58); +} +return _52; +} +}),new objj_method(sel_getUid("isOpaque"),function(_5a,_5b){ +with(_5a){ +return YES; +} +}),new objj_method(sel_getUid("startingColorList"),function(_5c,_5d){ +with(_5c){ +var _5e=objj_msgSend(_swatchCookie,"value"); +if(_5e==""){ +return [objj_msgSend(CPColor,"blackColor"),objj_msgSend(CPColor,"darkGrayColor"),objj_msgSend(CPColor,"grayColor"),objj_msgSend(CPColor,"lightGrayColor"),objj_msgSend(CPColor,"whiteColor"),objj_msgSend(CPColor,"redColor"),objj_msgSend(CPColor,"greenColor"),objj_msgSend(CPColor,"blueColor"),objj_msgSend(CPColor,"yellowColor")]; +} +var _5e=eval(_5e); +var _5f=[]; +for(var i=0;i<_5e.length;i++){ +_5f.push(objj_msgSend(CPColor,"colorWithHexString:",_5e[i])); +} +return _5f; +} +}),new objj_method(sel_getUid("saveColorList"),function(_61,_62){ +with(_61){ +var _63=[]; +for(var i=0;i<_swatches.length;i++){ +_63.push(objj_msgSend(objj_msgSend(objj_msgSend(_swatches[i],"subviews")[0],"backgroundColor"),"hexString")); +} +var _65=new Date(); +_65.setYear(2019); +objj_msgSend(_swatchCookie,"setValue:expires:domain:",JSON.stringify(_63),_65,nil); +} +}),new objj_method(sel_getUid("setColorPanel:"),function(_66,_67,_68){ +with(_66){ +_colorPanel=_68; +} +}),new objj_method(sel_getUid("colorPanel"),function(_69,_6a){ +with(_69){ +return _colorPanel; +} +}),new objj_method(sel_getUid("colorAtIndex:"),function(_6b,_6c,_6d){ +with(_6b){ +return objj_msgSend(objj_msgSend(_swatches[_6d],"subviews")[0],"backgroundColor"); +} +}),new objj_method(sel_getUid("setColor:atIndex:"),function(_6e,_6f,_70,_71){ +with(_6e){ +objj_msgSend(objj_msgSend(_swatches[_71],"subviews")[0],"setBackgroundColor:",_70); +objj_msgSend(_6e,"saveColorList"); +} +}),new objj_method(sel_getUid("mouseUp:"),function(_72,_73,_74){ +with(_72){ +var _75=objj_msgSend(_72,"convertPoint:fromView:",objj_msgSend(_74,"locationInWindow"),nil); +if(_75.x>objj_msgSend(_72,"bounds").size.width-1||_75.x<1){ +return NO; +} +objj_msgSend(_colorPanel,"setColor:updatePicker:",objj_msgSend(_72,"colorAtIndex:",FLOOR(_75.x/13)),YES); +} +}),new objj_method(sel_getUid("mouseDragged:"),function(_76,_77,_78){ +with(_76){ +var _79=objj_msgSend(_76,"convertPoint:fromView:",objj_msgSend(_78,"locationInWindow"),nil); +if(_79.x>objj_msgSend(_76,"bounds").size.width-1||_79.x<1){ +return NO; +} +objj_msgSend(objj_msgSend(CPPasteboard,"pasteboardWithName:",CPDragPboard),"declareTypes:owner:",objj_msgSend(CPArray,"arrayWithObject:",CPColorDragType),_76); +var _7a=_swatches[FLOOR(_79.x/13)]; +_dragColor=objj_msgSend(objj_msgSend(_7a,"subviews")[0],"backgroundColor"); +var _7b=CPRectCreateCopy(objj_msgSend(_7a,"bounds")); +var _7c=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",_7b); +dragFillView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectInset(_7b,1,1)); +objj_msgSend(_7c,"setBackgroundColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(dragFillView,"setBackgroundColor:",_dragColor); +objj_msgSend(_7c,"addSubview:",dragFillView); +objj_msgSend(_76,"dragView:at:offset:event:pasteboard:source:slideBack:",_7c,CPPointMake(_79.x-_7b.size.width/2,_79.y-_7b.size.height/2),CPPointMake(0,0),_78,nil,_76,YES); +} +}),new objj_method(sel_getUid("pasteboard:provideDataForType:"),function(_7d,_7e,_7f,_80){ +with(_7d){ +if(_80==CPColorDragType){ +objj_msgSend(_7f,"setData:forType:",_dragColor,_80); +} +} +}),new objj_method(sel_getUid("performDragOperation:"),function(_81,_82,_83){ +with(_81){ +var _84=objj_msgSend(_81,"convertPoint:fromView:",objj_msgSend(_83,"draggingLocation"),nil),_85=objj_msgSend(_83,"draggingPasteboard"),_86=nil; +if(!objj_msgSend(_85,"availableTypeFromArray:",[CPColorDragType])||_84.x>objj_msgSend(_81,"bounds").size.width-1||_84.x<1){ +return NO; +} +objj_msgSend(_81,"setColor:atIndex:",objj_msgSend(_85,"dataForType:",CPColorDragType),FLOOR(_84.x/13)); +} +})]); +var _8=objj_allocateClassPair(CPView,"_CPColorPanelPreview"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_colorPanel")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("initWithFrame:"),function(_87,_88,_89){ +with(_87){ +_87=objj_msgSendSuper({receiver:_87,super_class:objj_getClass("CPView")},"initWithFrame:",_89); +objj_msgSend(_87,"registerForDraggedTypes:",objj_msgSend(CPArray,"arrayWithObjects:",CPColorDragType)); +return _87; +} +}),new objj_method(sel_getUid("setColorPanel:"),function(_8a,_8b,_8c){ +with(_8a){ +_colorPanel=_8c; +} +}),new objj_method(sel_getUid("colorPanel"),function(_8d,_8e){ +with(_8d){ +return _colorPanel; +} +}),new objj_method(sel_getUid("performDragOperation:"),function(_8f,_90,_91){ +with(_8f){ +var _92=objj_msgSend(_91,"draggingPasteboard"); +if(!objj_msgSend(_92,"availableTypeFromArray:",[CPColorDragType])){ +return NO; +} +var _93=objj_msgSend(_92,"dataForType:",CPColorDragType); +objj_msgSend(_colorPanel,"setColor:updatePicker:",_93,YES); +} +}),new objj_method(sel_getUid("isOpaque"),function(_94,_95){ +with(_94){ +return YES; +} +}),new objj_method(sel_getUid("mouseDragged:"),function(_96,_97,_98){ +with(_96){ +var _99=objj_msgSend(_96,"convertPoint:fromView:",objj_msgSend(_98,"locationInWindow"),nil); +objj_msgSend(objj_msgSend(CPPasteboard,"pasteboardWithName:",CPDragPboard),"declareTypes:owner:",objj_msgSend(CPArray,"arrayWithObject:",CPColorDragType),_96); +var _9a=CPRectMake(0,0,15,15); +var _9b=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",_9a); +dragFillView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectInset(_9a,1,1)); +objj_msgSend(_9b,"setBackgroundColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(dragFillView,"setBackgroundColor:",objj_msgSend(_96,"backgroundColor")); +objj_msgSend(_9b,"addSubview:",dragFillView); +objj_msgSend(_96,"dragView:at:offset:event:pasteboard:source:slideBack:",_9b,CPPointMake(_99.x-_9a.size.width/2,_99.y-_9a.size.height/2),CPPointMake(0,0),_98,nil,_96,YES); +} +}),new objj_method(sel_getUid("pasteboard:provideDataForType:"),function(_9c,_9d,_9e,_9f){ +with(_9c){ +if(_9f==CPColorDragType){ +objj_msgSend(_9e,"setData:forType:",objj_msgSend(_9c,"backgroundColor"),_9f); +} +} +})]); +i;15;CPColorPicker.ji;21;CPSliderColorPicker.jc;155; +objj_msgSend(CPColorPanel,"provideColorPickerClass:",CPColorWheelColorPicker); +objj_msgSend(CPColorPanel,"provideColorPickerClass:",CPSliderColorPicker); +p;15;CPColorPicker.jI;21;Foundation/CPObject.ji;14;CPColorPanel.jc;10196; +var _1=objj_allocateClassPair(CPObject,"CPColorPicker"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_panel"),new objj_ivar("_mask")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithPickerMask:colorPanel:"),function(_3,_4,_5,_6){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +_panel=_6; +_mask=_5; +return _3; +} +}),new objj_method(sel_getUid("colorPanel"),function(_7,_8){ +with(_7){ +return _panel; +} +}),new objj_method(sel_getUid("provideNewButtonImage"),function(_9,_a){ +with(_9){ +return nil; +} +}),new objj_method(sel_getUid("setMode:"),function(_b,_c,_d){ +with(_b){ +return; +} +}),new objj_method(sel_getUid("setColor:"),function(_e,_f,_10){ +with(_e){ +return; +} +})]); +var _1=objj_allocateClassPair(CPColorPicker,"CPColorWheelColorPicker"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_pickerView"),new objj_ivar("_brightnessSlider"),new objj_ivar("_hueSaturationView"),new objj_ivar("_cachedColor")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithPickerMask:colorPanel:"),function(_11,_12,_13,_14){ +with(_11){ +return objj_msgSendSuper({receiver:_11,super_class:objj_getClass("CPColorPicker")},"initWithPickerMask:colorPanel:",_13,_14); +} +}),new objj_method(sel_getUid("initView"),function(_15,_16){ +with(_15){ +aFrame=CPRectMake(0,0,CPColorPickerViewWidth,CPColorPickerViewHeight); +_pickerView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",aFrame); +objj_msgSend(_pickerView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +_brightnessSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CGRectMake(0,(aFrame.size.height-34),aFrame.size.width,15)); +objj_msgSend(_brightnessSlider,"setValue:forThemeAttribute:",15,"track-width"); +objj_msgSend(_brightnessSlider,"setValue:forThemeAttribute:",objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPColorPicker,"class")),"pathForResource:","brightness_bar.png"))),"track-color"); +objj_msgSend(_brightnessSlider,"setMinValue:",0); +objj_msgSend(_brightnessSlider,"setMaxValue:",100); +objj_msgSend(_brightnessSlider,"setFloatValue:",100); +objj_msgSend(_brightnessSlider,"setTarget:",_15); +objj_msgSend(_brightnessSlider,"setAction:",sel_getUid("brightnessSliderDidChange:")); +objj_msgSend(_brightnessSlider,"setAutoresizingMask:",CPViewWidthSizable|CPViewMinYMargin); +_hueSaturationView=objj_msgSend(objj_msgSend(__CPColorWheel,"alloc"),"initWithFrame:",CPRectMake(0,0,aFrame.size.width,aFrame.size.height-38)); +objj_msgSend(_hueSaturationView,"setDelegate:",_15); +objj_msgSend(_hueSaturationView,"setAutoresizingMask:",(CPViewWidthSizable|CPViewHeightSizable)); +objj_msgSend(_pickerView,"addSubview:",_hueSaturationView); +objj_msgSend(_pickerView,"addSubview:",_brightnessSlider); +} +}),new objj_method(sel_getUid("brightnessSliderDidChange:"),function(_17,_18,_19){ +with(_17){ +objj_msgSend(_17,"updateColor"); +} +}),new objj_method(sel_getUid("colorWheelDidChange:"),function(_1a,_1b,_1c){ +with(_1a){ +objj_msgSend(_1a,"updateColor"); +} +}),new objj_method(sel_getUid("updateColor"),function(_1d,_1e){ +with(_1d){ +var hue=objj_msgSend(_hueSaturationView,"angle"),_20=objj_msgSend(_hueSaturationView,"distance"),_21=objj_msgSend(_brightnessSlider,"floatValue"); +objj_msgSend(_hueSaturationView,"setWheelBrightness:",_21/100); +objj_msgSend(_brightnessSlider,"setBackgroundColor:",objj_msgSend(CPColor,"colorWithHue:saturation:brightness:",hue,_20,100)); +var _22=objj_msgSend(_1d,"colorPanel"),_23=objj_msgSend(_22,"opacity"); +_cachedColor=objj_msgSend(CPColor,"colorWithHue:saturation:brightness:alpha:",hue,_20,_21,_23); +objj_msgSend(objj_msgSend(_1d,"colorPanel"),"setColor:",_cachedColor); +} +}),new objj_method(sel_getUid("supportsMode:"),function(_24,_25,_26){ +with(_24){ +return (_26==CPWheelColorPickerMode)?YES:NO; +} +}),new objj_method(sel_getUid("currentMode"),function(_27,_28){ +with(_27){ +return CPWheelColorPickerMode; +} +}),new objj_method(sel_getUid("provideNewView:"),function(_29,_2a,_2b){ +with(_29){ +if(_2b){ +objj_msgSend(_29,"initView"); +} +return _pickerView; +} +}),new objj_method(sel_getUid("setColor:"),function(_2c,_2d,_2e){ +with(_2c){ +if(objj_msgSend(_2e,"isEqual:",_cachedColor)){ +return; +} +var hsb=objj_msgSend(_2e,"hsbComponents"); +objj_msgSend(_hueSaturationView,"setPositionToColor:",_2e); +objj_msgSend(_brightnessSlider,"setFloatValue:",hsb[2]); +objj_msgSend(_hueSaturationView,"setWheelBrightness:",hsb[2]/100); +objj_msgSend(_brightnessSlider,"setBackgroundColor:",objj_msgSend(CPColor,"colorWithHue:saturation:brightness:",hsb[0],hsb[1],100)); +} +}),new objj_method(sel_getUid("provideNewButtonImage"),function(_30,_31){ +with(_30){ +return objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",CPColorPicker),"pathForResource:","wheel_button.png"),CGSizeMake(32,32)); +} +}),new objj_method(sel_getUid("provideNewAlternateButtonImage"),function(_32,_33){ +with(_32){ +return objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",CPColorPicker),"pathForResource:","wheel_button_h.png"),CGSizeMake(32,32)); +} +})]); +var _1=objj_allocateClassPair(CPView,"__CPColorWheel"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_wheelImage"),new objj_ivar("_blackWheelImage"),new objj_ivar("_crosshair"),new objj_ivar("_delegate"),new objj_ivar("_angle"),new objj_ivar("_distance"),new objj_ivar("_radius")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_34,_35,_36){ +with(_34){ +_34=objj_msgSendSuper({receiver:_34,super_class:objj_getClass("CPView")},"initWithFrame:",_36); +var _37=objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",CPColorPicker),"pathForResource:","wheel.png"); +_wheelImage=new Image(); +_wheelImage.src=_37; +_wheelImage.style.position="absolute"; +_37=objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",CPColorPicker),"pathForResource:","wheel_black.png"); +_blackWheelImage=new Image(); +_blackWheelImage.src=_37; +_blackWheelImage.style.opacity="0"; +_blackWheelImage.style.filter="alpha(opacity=0)"; +_blackWheelImage.style.position="absolute"; +_DOMElement.appendChild(_wheelImage); +_DOMElement.appendChild(_blackWheelImage); +objj_msgSend(_34,"setWheelSize:",_36.size); +_crosshair=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(_radius-2,_radius-2,4,4)); +objj_msgSend(_crosshair,"setBackgroundColor:",objj_msgSend(CPColor,"blackColor")); +var _38=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectInset(objj_msgSend(_crosshair,"bounds"),1,1)); +objj_msgSend(_38,"setBackgroundColor:",objj_msgSend(CPColor,"whiteColor")); +objj_msgSend(_crosshair,"addSubview:",_38); +objj_msgSend(_34,"addSubview:",_crosshair); +return _34; +} +}),new objj_method(sel_getUid("setWheelBrightness:"),function(_39,_3a,_3b){ +with(_39){ +_blackWheelImage.style.opacity=1-_3b; +_blackWheelImage.style.filter="alpha(opacity="+(1-_3b)*100+")"; +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_3c,_3d,_3e){ +with(_3c){ +objj_msgSendSuper({receiver:_3c,super_class:objj_getClass("CPView")},"setFrameSize:",_3e); +objj_msgSend(_3c,"setWheelSize:",_3e); +} +}),new objj_method(sel_getUid("setWheelSize:"),function(_3f,_40,_41){ +with(_3f){ +var min=MIN(_41.width,_41.height); +_blackWheelImage.style.width=min; +_blackWheelImage.style.height=min; +_blackWheelImage.width=min; +_blackWheelImage.height=min; +_blackWheelImage.style.top=(_41.height-min)/2+"px"; +_blackWheelImage.style.left=(_41.width-min)/2+"px"; +_wheelImage.style.width=min; +_wheelImage.style.height=min; +_wheelImage.width=min; +_wheelImage.height=min; +_wheelImage.style.top=(_41.height-min)/2+"px"; +_wheelImage.style.left=(_41.width-min)/2+"px"; +_radius=min/2; +objj_msgSend(_3f,"setAngle:distance:",objj_msgSend(_3f,"degreesToRadians:",_angle),(_distance/100)*_radius); +} +}),new objj_method(sel_getUid("setDelegate:"),function(_43,_44,_45){ +with(_43){ +_delegate=_45; +} +}),new objj_method(sel_getUid("delegate"),function(_46,_47){ +with(_46){ +return _delegate; +} +}),new objj_method(sel_getUid("angle"),function(_48,_49){ +with(_48){ +return _angle; +} +}),new objj_method(sel_getUid("distance"),function(_4a,_4b){ +with(_4a){ +return _distance; +} +}),new objj_method(sel_getUid("mouseDown:"),function(_4c,_4d,_4e){ +with(_4c){ +objj_msgSend(_4c,"reposition:",_4e); +} +}),new objj_method(sel_getUid("mouseDragged:"),function(_4f,_50,_51){ +with(_4f){ +objj_msgSend(_4f,"reposition:",_51); +} +}),new objj_method(sel_getUid("reposition:"),function(_52,_53,_54){ +with(_52){ +var _55=objj_msgSend(_52,"bounds"),_56=objj_msgSend(_52,"convertPoint:fromView:",objj_msgSend(_54,"locationInWindow"),nil); +var _57=CGRectGetMidX(_55); +var _58=CGRectGetMidY(_55); +var _59=MIN(SQRT((_56.x-_57)*(_56.x-_57)+(_56.y-_58)*(_56.y-_58)),_radius); +var _5a=ATAN2(_56.y-_58,_56.x-_57); +objj_msgSend(_52,"setAngle:distance:",_5a,_59); +objj_msgSend(_delegate,"colorWheelDidChange:",_52); +} +}),new objj_method(sel_getUid("setAngle:distance:"),function(_5b,_5c,_5d,_5e){ +with(_5b){ +var _5f=objj_msgSend(_5b,"bounds"); +var _60=CGRectGetMidX(_5f); +var _61=CGRectGetMidY(_5f); +_angle=objj_msgSend(_5b,"radiansToDegrees:",_5d); +_distance=(_5e/_radius)*100; +objj_msgSend(_crosshair,"setFrameOrigin:",CPPointMake(COS(_5d)*_5e+_60-2,SIN(_5d)*_5e+_61-2)); +} +}),new objj_method(sel_getUid("setPositionToColor:"),function(_62,_63,_64){ +with(_62){ +var hsb=objj_msgSend(_64,"hsbComponents"),_66=objj_msgSend(_62,"bounds"); +var _67=objj_msgSend(_62,"degreesToRadians:",hsb[0]),_68=(hsb[1]/100)*_radius; +objj_msgSend(_62,"setAngle:distance:",_67,_68); +} +}),new objj_method(sel_getUid("radiansToDegrees:"),function(_69,_6a,_6b){ +with(_69){ +return ((-_6b/PI)*180+360)%360; +} +}),new objj_method(sel_getUid("degreesToRadians:"),function(_6c,_6d,_6e){ +with(_6c){ +return -(((_6e-360)/180)*PI); +} +})]); +p;13;CPColorWell.jI;21;Foundation/CPString.ji;8;CPView.ji;9;CPColor.ji;14;CPColorPanel.jc;5916; +var _1="_CPColorWellDidBecomeExclusiveNotification"; +var _2=objj_allocateClassPair(CPControl,"CPColorWell"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_active"),new objj_ivar("_bordered"),new objj_ivar("_color"),new objj_ivar("_wellView")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithFrame:"),function(_4,_5,_6){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPControl")},"initWithFrame:",_6); +if(_4){ +_active=NO; +_bordered=YES; +_color=objj_msgSend(CPColor,"whiteColor"); +objj_msgSend(_4,"drawBezelWithHighlight:",NO); +objj_msgSend(_4,"drawWellInside:",CGRectInset(objj_msgSend(_4,"bounds"),3,3)); +objj_msgSend(_4,"_registerForNotifications"); +} +return _4; +} +}),new objj_method(sel_getUid("_registerForNotifications"),function(_7,_8){ +with(_7){ +var _9=objj_msgSend(CPNotificationCenter,"defaultCenter"); +objj_msgSend(_9,"addObserver:selector:name:object:",_7,sel_getUid("colorWellDidBecomeExclusive:"),_1,nil); +objj_msgSend(_9,"addObserver:selector:name:object:",_7,sel_getUid("colorPanelWillClose:"),CPWindowWillCloseNotification,objj_msgSend(CPColorPanel,"sharedColorPanel")); +} +}),new objj_method(sel_getUid("isBordered"),function(_a,_b){ +with(_a){ +return _bordered; +} +}),new objj_method(sel_getUid("setBordered:"),function(_c,_d,_e){ +with(_c){ +if(_bordered==_e){ +return; +} +_bordered=_e; +objj_msgSend(_c,"drawWellInside:",CGRectInset(objj_msgSend(_c,"bounds"),3,3)); +} +}),new objj_method(sel_getUid("color"),function(_f,_10){ +with(_f){ +return _color; +} +}),new objj_method(sel_getUid("setColor:"),function(_11,_12,_13){ +with(_11){ +if(_color==_13){ +return; +} +_color=_13; +objj_msgSend(_11,"drawWellInside:",CGRectInset(objj_msgSend(_11,"bounds"),3,3)); +} +}),new objj_method(sel_getUid("takeColorFrom:"),function(_14,_15,_16){ +with(_14){ +objj_msgSend(_14,"setColor:",objj_msgSend(_16,"color")); +} +}),new objj_method(sel_getUid("activate:"),function(_17,_18,_19){ +with(_17){ +if(_19){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",_1,_17); +} +if(objj_msgSend(_17,"isActive")){ +return; +} +_active=YES; +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"addObserver:selector:name:object:",_17,sel_getUid("colorPanelDidChangeColor:"),CPColorPanelColorDidChangeNotification,objj_msgSend(CPColorPanel,"sharedColorPanel")); +} +}),new objj_method(sel_getUid("deactivate"),function(_1a,_1b){ +with(_1a){ +if(!objj_msgSend(_1a,"isActive")){ +return; +} +_active=NO; +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"removeObserver:name:object:",_1a,CPColorPanelColorDidChangeNotification,objj_msgSend(CPColorPanel,"sharedColorPanel")); +} +}),new objj_method(sel_getUid("isActive"),function(_1c,_1d){ +with(_1c){ +return _active; +} +}),new objj_method(sel_getUid("drawBezelWithHighlight:"),function(_1e,_1f,_20){ +with(_1e){ +} +}),new objj_method(sel_getUid("drawWellInside:"),function(_21,_22,_23){ +with(_21){ +if(!_wellView){ +_wellView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",_23); +objj_msgSend(_wellView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +objj_msgSend(_21,"addSubview:",_wellView); +}else{ +objj_msgSend(_wellView,"setFrame:",_23); +} +objj_msgSend(_wellView,"setBackgroundColor:",_color); +} +}),new objj_method(sel_getUid("colorPanelDidChangeColor:"),function(_24,_25,_26){ +with(_24){ +objj_msgSend(_24,"takeColorFrom:",objj_msgSend(_26,"object")); +objj_msgSend(_24,"sendAction:to:",objj_msgSend(_24,"action"),objj_msgSend(_24,"target")); +} +}),new objj_method(sel_getUid("colorWellDidBecomeExclusive:"),function(_27,_28,_29){ +with(_27){ +if(_27!=objj_msgSend(_29,"object")){ +objj_msgSend(_27,"deactivate"); +} +} +}),new objj_method(sel_getUid("colorPanelWillClose:"),function(_2a,_2b,_2c){ +with(_2a){ +objj_msgSend(_2a,"deactivate"); +} +}),new objj_method(sel_getUid("mouseDown:"),function(_2d,_2e,_2f){ +with(_2d){ +objj_msgSend(_2d,"drawBezelWithHighlight:",YES); +} +}),new objj_method(sel_getUid("mouseDragged:"),function(_30,_31,_32){ +with(_30){ +objj_msgSend(_30,"drawBezelWithHighlight:",CGRectContainsPoint(objj_msgSend(_30,"bounds"),objj_msgSend(_30,"convertPoint:fromView:",objj_msgSend(_32,"locationInWindow"),nil))); +} +}),new objj_method(sel_getUid("mouseUp:"),function(_33,_34,_35){ +with(_33){ +objj_msgSend(_33,"drawBezelWithHighlight:",NO); +if(!CGRectContainsPoint(objj_msgSend(_33,"bounds"),objj_msgSend(_33,"convertPoint:fromView:",objj_msgSend(_35,"locationInWindow"),nil))){ +return; +} +objj_msgSend(_33,"activate:",YES); +var _36=objj_msgSend(CPColorPanel,"sharedColorPanel"); +objj_msgSend(_36,"setColor:",_color); +objj_msgSend(_36,"orderFront:",_33); +} +})]); +var _37="CPColorWellColorKey",_38="CPColorWellBorderedKey"; +var _2=objj_getClass("CPColorWell"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPColorWell\"")); +} +var _3=_2.isa; +class_addMethods(_2,[new objj_method(sel_getUid("initWithCoder:"),function(_39,_3a,_3b){ +with(_39){ +_39=objj_msgSendSuper({receiver:_39,super_class:objj_getClass("CPControl")},"initWithCoder:",_3b); +if(_39){ +_active=NO; +_bordered=objj_msgSend(_3b,"decodeObjectForKey:",_38); +_color=objj_msgSend(_3b,"decodeObjectForKey:",_37); +objj_msgSend(_39,"drawBezelWithHighlight:",NO); +objj_msgSend(_39,"drawWellInside:",CGRectInset(objj_msgSend(_39,"bounds"),3,3)); +objj_msgSend(_39,"_registerForNotifications"); +} +return _39; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_3c,_3d,_3e){ +with(_3c){ +var _3f=_subviews; +_subviews=objj_msgSend(_subviews,"copy"); +objj_msgSend(_subviews,"removeObjectIdenticalTo:",_wellView); +objj_msgSendSuper({receiver:_3c,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_3e); +_subviews=_3f; +objj_msgSend(_3e,"encodeObject:forKey:",_color,_37); +objj_msgSend(_3e,"encodeObject:forKey:",_bordered,_38); +} +})]); +p;17;CPCompatibility.ji;9;CPEvent.jc;3005; +CPUnknownBrowserEngine=0; +CPGeckoBrowserEngine=1; +CPInternetExplorerBrowserEngine=2; +CPKHTMLBrowserEngine=3; +CPOperaBrowserEngine=4; +CPWebKitBrowserEngine=5; +CPCSSRGBAFeature=1<<5; +CPHTMLCanvasFeature=1<<6; +CPHTMLContentEditableFeature=1<<7; +CPJavascriptInnerTextFeature=1<<8; +CPJavascriptTextContentFeature=1<<9; +CPJavascriptClipboardEventsFeature=1<<10; +CPJavascriptClipboardAccessFeature=1<<11; +CPJavaScriptCanvasDrawFeature=1<<12; +CPJavaScriptCanvasTransformFeature=1<<13; +CPVMLFeature=1<<14; +CPJavascriptRemedialKeySupport=1<<15; +CPJavaScriptShadowFeature=1<<20; +CPJavaScriptNegativeMouseWheelValues=1<<22; +CPJavaScriptMouseWheelValues_8_15=1<<23; +CPOpacityRequiresFilterFeature=1<<24; +CPInputTypeCanBeChangedFeature=1<<25; +var _1="",_2=CPUnknownBrowserEngine,_3=0; +_3|=CPInputTypeCanBeChangedFeature; +if(typeof window!="undfined"&&typeof window.navigator!="undefined"){ +_1=window.navigator.userAgent; +} +if(window.opera){ +_2=CPOperaBrowserEngine; +_3|=CPJavaScriptCanvasDrawFeature; +}else{ +if(window.attachEvent){ +_2=CPInternetExplorerBrowserEngine; +_3|=CPVMLFeature; +_3|=CPJavascriptRemedialKeySupport; +_3|=CPJavaScriptShadowFeature; +_3|=CPOpacityRequiresFilterFeature; +_3&=~CPInputTypeCanBeChangedFeature; +}else{ +if(_1.indexOf("AppleWebKit/")!=-1){ +_2=CPWebKitBrowserEngine; +_3|=CPCSSRGBAFeature; +_3|=CPHTMLContentEditableFeature; +_3|=CPJavascriptClipboardEventsFeature; +_3|=CPJavascriptClipboardAccessFeature; +_3|=CPJavaScriptShadowFeature; +var _4=_1.indexOf("AppleWebKit/")+"AppleWebKit/".length,_5=_1.indexOf(" ",_4),_6=parseFloat(_1.substring(_4,_5),10); +if(_1.indexOf("Plainview")==-1&&_6>=525.14||_1.indexOf("Chrome")!=-1){ +_3|=CPJavascriptRemedialKeySupport; +} +}else{ +if(_1.indexOf("KHTML")!=-1){ +_2=CPKHTMLBrowserEngine; +}else{ +if(_1.indexOf("Gecko")!==-1){ +_2=CPGeckoBrowserEngine; +_3|=CPJavaScriptCanvasDrawFeature; +var _7=_1.indexOf("Firefox"),_6=(_7===-1)?2:parseFloat(_1.substring(_7+"Firefox".length+1)); +if(_6>=3){ +_3|=CPCSSRGBAFeature; +} +if(_6<3){ +_3|=CPJavaScriptMouseWheelValues_8_15; +} +} +} +} +} +} +if(typeof document!="undefined"){ +var _8=document.createElement("canvas"); +if(_8&&_8.getContext){ +_3|=CPHTMLCanvasFeature; +var _9=document.createElement("canvas").getContext("2d"); +if(_9&&_9.setTransform&&_9.transform){ +_3|=CPJavaScriptCanvasTransformFeature; +} +} +var _a=document.createElement("div"); +if(_a.innerText!=undefined){ +_3|=CPJavascriptInnerTextFeature; +}else{ +if(_a.textContent!=undefined){ +_3|=CPJavascriptTextContentFeature; +} +} +} +CPFeatureIsCompatible=function(_b){ +return _3&_b; +}; +CPBrowserIsEngine=function(_c){ +return _2==_c; +}; +if(_1.indexOf("Mac")!=-1){ +CPPlatformActionKeyMask=CPCommandKeyMask; +CPUndoKeyEquivalent="Z"; +CPRedoKeyEquivalent="Z"; +CPUndoKeyEquivalentModifierMask=CPCommandKeyMask; +CPRedoKeyEquivalentModifierMask=CPCommandKeyMask|CPShiftKeyMask; +}else{ +CPPlatformActionKeyMask=CPControlKeyMask; +CPUndoKeyEquivalent="Z"; +CPRedoKeyEquivalent="Y"; +CPUndoKeyEquivalentModifierMask=CPControlKeyMask; +CPRedoKeyEquivalentModifierMask=CPControlKeyMask; +} +p;11;CPControl.ji;8;CPFont.ji;10;CPShadow.ji;8;CPView.jc;17855; +CPLeftTextAlignment=0; +CPRightTextAlignment=1; +CPCenterTextAlignment=2; +CPJustifiedTextAlignment=3; +CPNaturalTextAlignment=4; +CPRegularControlSize=0; +CPSmallControlSize=1; +CPMiniControlSize=2; +CPControlNormalBackgroundColor="CPControlNormalBackgroundColor"; +CPControlSelectedBackgroundColor="CPControlSelectedBackgroundColor"; +CPControlHighlightedBackgroundColor="CPControlHighlightedBackgroundColor"; +CPControlDisabledBackgroundColor="CPControlDisabledBackgroundColor"; +CPControlTextDidBeginEditingNotification="CPControlTextDidBeginEditingNotification"; +CPControlTextDidChangeNotification="CPControlTextDidChangeNotification"; +CPControlTextDidEndEditingNotification="CPControlTextDidEndEditingNotification"; +var _1=objj_msgSend(CPColor,"blackColor"); +var _2=objj_allocateClassPair(CPView,"CPControl"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_value"),new objj_ivar("_target"),new objj_ivar("_action"),new objj_ivar("_sendActionOn"),new objj_ivar("_continuousTracking"),new objj_ivar("_trackingWasWithinFrame"),new objj_ivar("_trackingMouseDownFlags"),new objj_ivar("_previousTrackingLocation"),new objj_ivar("_ephemeralSubviewsForNames"),new objj_ivar("_ephereralSubviews"),new objj_ivar("_toolTip")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithFrame:"),function(_4,_5,_6){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPView")},"initWithFrame:",_6); +if(_4){ +_sendActionOn=CPLeftMouseUpMask; +_trackingMouseDownFlags=0; +} +return _4; +} +}),new objj_method(sel_getUid("setAction:"),function(_7,_8,_9){ +with(_7){ +_action=_9; +} +}),new objj_method(sel_getUid("action"),function(_a,_b){ +with(_a){ +return _action; +} +}),new objj_method(sel_getUid("setTarget:"),function(_c,_d,_e){ +with(_c){ +_target=_e; +} +}),new objj_method(sel_getUid("target"),function(_f,_10){ +with(_f){ +return _target; +} +}),new objj_method(sel_getUid("sendAction:to:"),function(_11,_12,_13,_14){ +with(_11){ +objj_msgSend(CPApp,"sendAction:to:from:",_13,_14,_11); +} +}),new objj_method(sel_getUid("sendActionOn:"),function(_15,_16,_17){ +with(_15){ +var _18=_sendActionOn; +_sendActionOn=_17; +return _18; +} +}),new objj_method(sel_getUid("isContinuous"),function(_19,_1a){ +with(_19){ +return (_sendActionOn&CPPeriodicMask)!==0; +} +}),new objj_method(sel_getUid("setContinuous:"),function(_1b,_1c,_1d){ +with(_1b){ +if(_1d){ +_sendActionOn|=CPPeriodicMask; +}else{ +_sendActionOn&=~CPPeriodicMask; +} +} +}),new objj_method(sel_getUid("tracksMouseOutsideOfFrame"),function(_1e,_1f){ +with(_1e){ +return NO; +} +}),new objj_method(sel_getUid("trackMouse:"),function(_20,_21,_22){ +with(_20){ +var _23=objj_msgSend(_22,"type"),_24=objj_msgSend(_20,"convertPoint:fromView:",objj_msgSend(_22,"locationInWindow"),nil); +isWithinFrame=objj_msgSend(_20,"tracksMouseOutsideOfFrame")||CGRectContainsPoint(objj_msgSend(_20,"bounds"),_24); +if(_23===CPLeftMouseUp){ +objj_msgSend(_20,"stopTracking:at:mouseIsUp:",_previousTrackingLocation,_24,YES); +_trackingMouseDownFlags=0; +}else{ +if(_23===CPLeftMouseDown){ +_trackingMouseDownFlags=objj_msgSend(_22,"modifierFlags"); +_continuousTracking=objj_msgSend(_20,"startTrackingAt:",_24); +}else{ +if(_23===CPLeftMouseDragged){ +if(isWithinFrame){ +if(!_trackingWasWithinFrame){ +_continuousTracking=objj_msgSend(_20,"startTrackingAt:",_24); +}else{ +if(_continuousTracking){ +_continuousTracking=objj_msgSend(_20,"continueTracking:at:",_previousTrackingLocation,_24); +} +} +}else{ +objj_msgSend(_20,"stopTracking:at:mouseIsUp:",_previousTrackingLocation,_24,NO); +} +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_20,sel_getUid("trackMouse:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +if((_sendActionOn&(1<<_23))&&isWithinFrame){ +objj_msgSend(_20,"sendAction:to:",_action,_target); +} +_trackingWasWithinFrame=isWithinFrame; +_previousTrackingLocation=_24; +} +}),new objj_method(sel_getUid("performClick:"),function(_25,_26,_27){ +with(_25){ +objj_msgSend(_25,"highlight:",YES); +objj_msgSend(_25,"setState:",objj_msgSend(_25,"nextState")); +objj_msgSend(_25,"sendAction:to:",objj_msgSend(_25,"action"),objj_msgSend(_25,"target")); +objj_msgSend(_25,"highlight:",NO); +} +}),new objj_method(sel_getUid("mouseDownFlags"),function(_28,_29){ +with(_28){ +return _trackingMouseDownFlags; +} +}),new objj_method(sel_getUid("startTrackingAt:"),function(_2a,_2b,_2c){ +with(_2a){ +objj_msgSend(_2a,"highlight:",YES); +return (_sendActionOn&CPPeriodicMask)||(_sendActionOn&CPLeftMouseDraggedMask); +} +}),new objj_method(sel_getUid("continueTracking:at:"),function(_2d,_2e,_2f,_30){ +with(_2d){ +return (_sendActionOn&CPPeriodicMask)||(_sendActionOn&CPLeftMouseDraggedMask); +} +}),new objj_method(sel_getUid("stopTracking:at:mouseIsUp:"),function(_31,_32,_33,_34,_35){ +with(_31){ +objj_msgSend(_31,"highlight:",NO); +} +}),new objj_method(sel_getUid("mouseDown:"),function(_36,_37,_38){ +with(_36){ +if(!objj_msgSend(_36,"isEnabled")){ +return; +} +objj_msgSend(_36,"trackMouse:",_38); +} +}),new objj_method(sel_getUid("objectValue"),function(_39,_3a){ +with(_39){ +return _value; +} +}),new objj_method(sel_getUid("setObjectValue:"),function(_3b,_3c,_3d){ +with(_3b){ +_value=_3d; +objj_msgSend(_3b,"setNeedsLayout"); +objj_msgSend(_3b,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("floatValue"),function(_3e,_3f){ +with(_3e){ +var _40=parseFloat(_value,10); +return isNaN(_40)?0:_40; +} +}),new objj_method(sel_getUid("setFloatValue:"),function(_41,_42,_43){ +with(_41){ +objj_msgSend(_41,"setObjectValue:",_43); +} +}),new objj_method(sel_getUid("doubleValue"),function(_44,_45){ +with(_44){ +var _46=parseFloat(_value,10); +return isNaN(_46)?0:_46; +} +}),new objj_method(sel_getUid("setDoubleValue:"),function(_47,_48,_49){ +with(_47){ +objj_msgSend(_47,"setObjectValue:",_49); +} +}),new objj_method(sel_getUid("intValue"),function(_4a,_4b){ +with(_4a){ +var _4c=parseInt(_value,10); +return isNaN(_4c)?0:_4c; +} +}),new objj_method(sel_getUid("setIntValue:"),function(_4d,_4e,_4f){ +with(_4d){ +objj_msgSend(_4d,"setObjectValue:",_4f); +} +}),new objj_method(sel_getUid("integerValue"),function(_50,_51){ +with(_50){ +var _52=parseInt(_value,10); +return isNaN(_52)?0:_52; +} +}),new objj_method(sel_getUid("setIntegerValue:"),function(_53,_54,_55){ +with(_53){ +objj_msgSend(_53,"setObjectValue:",_55); +} +}),new objj_method(sel_getUid("stringValue"),function(_56,_57){ +with(_56){ +return (_value===undefined||_value===nil)?"":String(_value); +} +}),new objj_method(sel_getUid("setStringValue:"),function(_58,_59,_5a){ +with(_58){ +objj_msgSend(_58,"setObjectValue:",_5a); +} +}),new objj_method(sel_getUid("takeDoubleValueFrom:"),function(_5b,_5c,_5d){ +with(_5b){ +if(objj_msgSend(_5d,"respondsToSelector:",sel_getUid("doubleValue"))){ +objj_msgSend(_5b,"setDoubleValue:",objj_msgSend(_5d,"doubleValue")); +} +} +}),new objj_method(sel_getUid("takeFloatValueFrom:"),function(_5e,_5f,_60){ +with(_5e){ +if(objj_msgSend(_60,"respondsToSelector:",sel_getUid("floatValue"))){ +objj_msgSend(_5e,"setFloatValue:",objj_msgSend(_60,"floatValue")); +} +} +}),new objj_method(sel_getUid("takeIntegerValueFrom:"),function(_61,_62,_63){ +with(_61){ +if(objj_msgSend(_63,"respondsToSelector:",sel_getUid("integerValue"))){ +objj_msgSend(_61,"setIntegerValue:",objj_msgSend(_63,"integerValue")); +} +} +}),new objj_method(sel_getUid("takeIntValueFrom:"),function(_64,_65,_66){ +with(_64){ +if(objj_msgSend(_66,"respondsToSelector:",sel_getUid("intValue"))){ +objj_msgSend(_64,"setIntValue:",objj_msgSend(_66,"intValue")); +} +} +}),new objj_method(sel_getUid("takeObjectValueFrom:"),function(_67,_68,_69){ +with(_67){ +if(objj_msgSend(_69,"respondsToSelector:",sel_getUid("objectValue"))){ +objj_msgSend(_67,"setObjectValue:",objj_msgSend(_69,"objectValue")); +} +} +}),new objj_method(sel_getUid("takeStringValueFrom:"),function(_6a,_6b,_6c){ +with(_6a){ +if(objj_msgSend(_6c,"respondsToSelector:",sel_getUid("stringValue"))){ +objj_msgSend(_6a,"setStringValue:",objj_msgSend(_6c,"stringValue")); +} +} +}),new objj_method(sel_getUid("textDidBeginEditing:"),function(_6d,_6e,_6f){ +with(_6d){ +if(objj_msgSend(_6f,"object")!=_6d){ +return; +} +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPControlTextDidBeginEditingNotification,_6d,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",objj_msgSend(_6f,"object"),"CPFieldEditor")); +} +}),new objj_method(sel_getUid("textDidChange:"),function(_70,_71,_72){ +with(_70){ +if(objj_msgSend(_72,"object")!=_70){ +return; +} +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPControlTextDidChangeNotification,_70,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",objj_msgSend(_72,"object"),"CPFieldEditor")); +} +}),new objj_method(sel_getUid("textDidEndEditing:"),function(_73,_74,_75){ +with(_73){ +if(objj_msgSend(_75,"object")!=_73){ +return; +} +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPControlTextDidEndEditingNotification,_73,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",objj_msgSend(_75,"object"),"CPFieldEditor")); +} +}),new objj_method(sel_getUid("setAlignment:"),function(_76,_77,_78){ +with(_76){ +objj_msgSend(_76,"setValue:forThemeAttribute:",_78,"alignment"); +} +}),new objj_method(sel_getUid("alignment"),function(_79,_7a){ +with(_79){ +return objj_msgSend(_79,"valueForThemeAttribute:","alignment"); +} +}),new objj_method(sel_getUid("setVerticalAlignment:"),function(_7b,_7c,_7d){ +with(_7b){ +objj_msgSend(_7b,"setValue:forThemeAttribute:",_7d,"vertical-alignment"); +} +}),new objj_method(sel_getUid("verticalAlignment"),function(_7e,_7f){ +with(_7e){ +return objj_msgSend(_7e,"valueForThemeAttribute:","vertical-alignment"); +} +}),new objj_method(sel_getUid("setLineBreakMode:"),function(_80,_81,_82){ +with(_80){ +objj_msgSend(_80,"setValue:forThemeAttribute:",_82,"line-break-mode"); +} +}),new objj_method(sel_getUid("lineBreakMode"),function(_83,_84){ +with(_83){ +return objj_msgSend(_83,"valueForThemeAttribute:","line-break-mode"); +} +}),new objj_method(sel_getUid("setTextColor:"),function(_85,_86,_87){ +with(_85){ +objj_msgSend(_85,"setValue:forThemeAttribute:",_87,"text-color"); +} +}),new objj_method(sel_getUid("textColor"),function(_88,_89){ +with(_88){ +return objj_msgSend(_88,"valueForThemeAttribute:","text-color"); +} +}),new objj_method(sel_getUid("setFont:"),function(_8a,_8b,_8c){ +with(_8a){ +objj_msgSend(_8a,"setValue:forThemeAttribute:",_8c,"font"); +} +}),new objj_method(sel_getUid("font"),function(_8d,_8e){ +with(_8d){ +return objj_msgSend(_8d,"valueForThemeAttribute:","font"); +} +}),new objj_method(sel_getUid("setTextShadowColor:"),function(_8f,_90,_91){ +with(_8f){ +objj_msgSend(_8f,"setValue:forThemeAttribute:",_91,"text-shadow-color"); +} +}),new objj_method(sel_getUid("textShadowColor"),function(_92,_93){ +with(_92){ +return objj_msgSend(_92,"valueForThemeAttribute:","text-shadow-color"); +} +}),new objj_method(sel_getUid("setTextShadowOffset:"),function(_94,_95,_96){ +with(_94){ +objj_msgSend(_94,"setValue:forThemeAttribute:",_96,"text-shadow-offset"); +} +}),new objj_method(sel_getUid("textShadowOffset"),function(_97,_98){ +with(_97){ +return objj_msgSend(_97,"valueForThemeAttribute:","text-shadow-offset"); +} +}),new objj_method(sel_getUid("setImagePosition:"),function(_99,_9a,_9b){ +with(_99){ +objj_msgSend(_99,"setValue:forThemeAttribute:",_9b,"image-position"); +} +}),new objj_method(sel_getUid("imagePosition"),function(_9c,_9d){ +with(_9c){ +return objj_msgSend(_9c,"valueForThemeAttribute:","image-position"); +} +}),new objj_method(sel_getUid("setImageScaling:"),function(_9e,_9f,_a0){ +with(_9e){ +objj_msgSend(_9e,"setValue:forThemeAttribute:",_a0,"image-scaling"); +} +}),new objj_method(sel_getUid("imageScaling"),function(_a1,_a2){ +with(_a1){ +return objj_msgSend(_a1,"valueForThemeAttribute:","image-scaling"); +} +}),new objj_method(sel_getUid("setEnabled:"),function(_a3,_a4,_a5){ +with(_a3){ +if(_a5){ +objj_msgSend(_a3,"unsetThemeState:",CPThemeStateDisabled); +}else{ +objj_msgSend(_a3,"setThemeState:",CPThemeStateDisabled); +} +} +}),new objj_method(sel_getUid("isEnabled"),function(_a6,_a7){ +with(_a6){ +return !objj_msgSend(_a6,"hasThemeState:",CPThemeStateDisabled); +} +}),new objj_method(sel_getUid("highlight:"),function(_a8,_a9,_aa){ +with(_a8){ +objj_msgSend(_a8,"setHighlighted:",_aa); +} +}),new objj_method(sel_getUid("setHighlighted:"),function(_ab,_ac,_ad){ +with(_ab){ +if(_ad){ +objj_msgSend(_ab,"setThemeState:",CPThemeStateHighlighted); +}else{ +objj_msgSend(_ab,"unsetThemeState:",CPThemeStateHighlighted); +} +} +}),new objj_method(sel_getUid("isHighlighted"),function(_ae,_af){ +with(_ae){ +return objj_msgSend(_ae,"hasThemeState:",CPThemeStateHighlighted); +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_b0,_b1,_b2){ +with(_b0){ +return nil; +} +}),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_b3,_b4,_b5){ +with(_b3){ +return {origin:{x:0,y:0},size:{width:0,height:0}}; +} +}),new objj_method(sel_getUid("layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:"),function(_b6,_b7,_b8,_b9,_ba){ +with(_b6){ +if(!_ephemeralSubviewsForNames){ +_ephemeralSubviewsForNames={}; +_ephemeralSubviews=objj_msgSend(CPSet,"set"); +} +var _bb=objj_msgSend(_b6,"rectForEphemeralSubviewNamed:",_b8); +if(_bb&&!(_bb.size.width<=0||_bb.size.height<=0)){ +if(!_ephemeralSubviewsForNames[_b8]){ +_ephemeralSubviewsForNames[_b8]=objj_msgSend(_b6,"createEphemeralSubviewNamed:",_b8); +objj_msgSend(_ephemeralSubviews,"addObject:",_ephemeralSubviewsForNames[_b8]); +if(_ephemeralSubviewsForNames[_b8]){ +objj_msgSend(_b6,"addSubview:positioned:relativeTo:",_ephemeralSubviewsForNames[_b8],_b9,_ephemeralSubviewsForNames[_ba]); +} +} +if(_ephemeralSubviewsForNames[_b8]){ +objj_msgSend(_ephemeralSubviewsForNames[_b8],"setFrame:",_bb); +} +}else{ +if(_ephemeralSubviewsForNames[_b8]){ +objj_msgSend(_ephemeralSubviewsForNames[_b8],"removeFromSuperview"); +objj_msgSend(_ephemeralSubviews,"removeObject:",_ephemeralSubviewsForNames[_b8]); +delete _ephemeralSubviewsForNames[_b8]; +} +} +return _ephemeralSubviewsForNames[_b8]; +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("themeAttributes"),function(_bc,_bd){ +with(_bc){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[CPLeftTextAlignment,CPTopVerticalTextAlignment,CPLineBreakByClipping,objj_msgSend(CPColor,"blackColor"),objj_msgSend(CPFont,"systemFontOfSize:",12),nil,{width:0,height:0},CPImageLeft,CPScaleToFit,{width:0,height:0},{width:-1,height:-1}],["alignment","vertical-alignment","line-break-mode","text-color","font","text-shadow-color","text-shadow-offset","image-position","image-scaling","min-size","max-size"]); +} +})]); +var _be="CPControlValueKey",_bf="CPControlControlStateKey",_c0="CPControlIsEnabledKey",_c1="CPControlTargetKey",_c2="CPControlActionKey",_c3="CPControlSendActionOnKey"; +var _c4="CPImageViewImageKey"; +var _2=objj_getClass("CPControl"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPControl\"")); +} +var _3=_2.isa; +class_addMethods(_2,[new objj_method(sel_getUid("initWithCoder:"),function(_c5,_c6,_c7){ +with(_c5){ +_c5=objj_msgSendSuper({receiver:_c5,super_class:objj_getClass("CPView")},"initWithCoder:",_c7); +if(_c5){ +objj_msgSend(_c5,"setObjectValue:",objj_msgSend(_c7,"decodeObjectForKey:",_be)); +objj_msgSend(_c5,"setTarget:",objj_msgSend(_c7,"decodeObjectForKey:",_c1)); +objj_msgSend(_c5,"setAction:",objj_msgSend(_c7,"decodeObjectForKey:",_c2)); +objj_msgSend(_c5,"sendActionOn:",objj_msgSend(_c7,"decodeIntForKey:",_c3)); +} +return _c5; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_c8,_c9,_ca){ +with(_c8){ +var _cb=objj_msgSend(_subviews,"count"),_cc; +subviews=nil; +if(_cb>0&&objj_msgSend(_ephemeralSubviews,"count")>0){ +subviews=objj_msgSend(_subviews.slice(0),"copy"); +while(_cb--){ +if(objj_msgSend(_ephemeralSubviews,"containsObject:",_subviews[_cb])){ +_subviews.splice(_cb,1); +} +} +} +objj_msgSendSuper({receiver:_c8,super_class:objj_getClass("CPView")},"encodeWithCoder:",_ca); +if(subviews){ +_subviews=subviews; +} +if(_value!==nil){ +objj_msgSend(_ca,"encodeObject:forKey:",_value,_be); +} +if(_target!==nil){ +objj_msgSend(_ca,"encodeConditionalObject:forKey:",_target,_c1); +} +if(_action!==NULL){ +objj_msgSend(_ca,"encodeObject:forKey:",_action,_c2); +} +objj_msgSend(_ca,"encodeInt:forKey:",_sendActionOn,_c3); +} +})]); +var _cd=[],_ce={},_cf={}; +_cd[CPRegularControlSize]="Regular"; +_cd[CPSmallControlSize]="Small"; +_cd[CPMiniControlSize]="Mini"; +_CPControlIdentifierForControlSize=function(_d0){ +return _cd[_d0]; +}; +_CPControlColorWithPatternImage=function(_d1,_d2){ +var _d3=1,_d4=arguments.length,_d5=""; +for(;_d3<_d4;++_d3){ +_d5+=arguments[_d3]; +} +var _d6=_ce[_d5]; +if(!_d6){ +var _d7=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPControl,"class")); +_d6=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_d7,"pathForResource:",_d2+"/"+_d5+".png"),_d1[_d5])); +_ce[_d5]=_d6; +} +return _d6; +}; +_CPControlThreePartImagePattern=function(_d8,_d9,_da){ +var _db=2,_dc=arguments.length,_dd=""; +for(;_db<_dc;++_db){ +_dd+=arguments[_db]; +} +var _de=_cf[_dd]; +if(!_de){ +var _df=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPControl,"class")),_e0=_da+"/"+_dd; +_d9=_d9[_dd]; +_de=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPThreePartImage,"alloc"),"initWithImageSlices:isVertical:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_df,"pathForResource:",_e0+"0.png"),_d9[0]),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_df,"pathForResource:",_e0+"1.png"),_d9[1]),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_df,"pathForResource:",_e0+"2.png"),_d9[2])],_d8)); +_cf[_dd]=_de; +} +return _de; +}; +p;10;CPCookie.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;1385; +var _1=objj_allocateClassPair(CPObject,"CPCookie"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_cookieName"),new objj_ivar("_cookieValue"),new objj_ivar("_expires")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithName:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +_cookieName=_5; +_cookieValue=objj_msgSend(_3,"_readCookieValue"); +return _3; +} +}),new objj_method(sel_getUid("value"),function(_6,_7){ +with(_6){ +return _cookieValue; +} +}),new objj_method(sel_getUid("name"),function(_8,_9){ +with(_8){ +return _cookieName; +} +}),new objj_method(sel_getUid("expires"),function(_a,_b){ +with(_a){ +return _expires; +} +}),new objj_method(sel_getUid("setValue:expires:domain:"),function(_c,_d,_e,_f,_10){ +with(_c){ +if(_f){ +var _11="; expires="+_f.toGMTString(); +}else{ +var _11=""; +} +if(_10){ +_10="; domain="+_10; +}else{ +_10=""; +} +document.cookie=_cookieName+"="+_e+_11+"; path=/"+_10; +} +}),new objj_method(sel_getUid("_readCookieValue"),function(_12,_13){ +with(_12){ +var _14=_cookieName+"="; +var ca=document.cookie.split(";"); +for(var i=0;i_31){ +_35=_36-1; +}else{ +low=_36+1; +} +} +objj_msgSend(_windowLevels,"insertObject:atIndex:",_31,_windowLevels[_36]>_31?_36:_36+1); +_33._DOMElement.style.zIndex=_31; +_DOMBodyElement.appendChild(_33._DOMElement); +} +return _33; +} +}),new objj_method(sel_getUid("order:window:relativeTo:"),function(_37,_38,_39,_3a,_3b){ +with(_37){ +var _3c=objj_msgSend(_37,"layerAtLevel:create:",objj_msgSend(_3a,"level"),_39!=CPWindowOut); +if(_39==CPWindowOut){ +return objj_msgSend(_3c,"removeWindow:",_3a); +} +objj_msgSend(_3c,"insertWindow:atIndex:",_3a,(_3b?(_39==CPWindowAbove?_3b._index+1:_3b._index):CPNotFound)); +} +}),new objj_method(sel_getUid("_dragHitTest:pasteboard:"),function(_3d,_3e,_3f,_40){ +with(_3d){ +var _41=_windowLevels,_42=_windowLayers,_43=_41.length; +while(_43--){ +if(_41[_43]>=CPDraggingWindowLevel){ +continue; +} +var _44=objj_msgSend(_42,"objectForKey:",_41[_43])._windows,_45=_44.length; +while(_45--){ +var _46=_44[_45]; +if(objj_msgSend(_46,"containsPoint:",_3f)){ +return objj_msgSend(_46,"_dragHitTest:pasteboard:",_3f,_40); +} +} +} +return nil; +} +}),new objj_method(sel_getUid("_propagateCurrentDOMEvent:"),function(_47,_48,_49){ +with(_47){ +StopDOMEventPropagation=!_49; +} +}),new objj_method(sel_getUid("hitTest:"),function(_4a,_4b,_4c){ +with(_4a){ +var _4d=_windowLevels,_4e=_windowLayers,_4f=_4d.length,_50=nil; +while(_4f--&&!_50){ +var _51=objj_msgSend(_4e,"objectForKey:",_4d[_4f])._windows,_52=_51.length; +while(_52--&&!_50){ +var _53=_51[_52]; +if(!_53._ignoresMouseEvents&&objj_msgSend(_53,"containsPoint:",_4c)){ +_50=_53; +} +} +} +return _50; +} +})]); +class_addMethods(_6,[new objj_method(sel_getUid("sharedDOMWindowBridge"),function(_54,_55){ +with(_54){ +if(!CPSharedDOMWindowBridge){ +CPSharedDOMWindowBridge=objj_msgSend(objj_msgSend(CPDOMWindowBridge,"alloc"),"_initWithDOMWindow:",window); +} +return CPSharedDOMWindowBridge; +} +})]); +var _2=function(_56){ +var _57=nil; +if(_56.outerWidth){ +_57=CGRectMake(0,0,_56.outerWidth,_56.outerHeight); +}else{ +_57=CGRectMake(0,0,-1,-1); +} +if(window.screenTop){ +_57.origin=CGPointMake(_56.screenLeft,_56.screenTop,0); +}else{ +if(window.screenX){ +_57.origin=CGPointMake(_56.screenX,_56.screenY,0); +} +} +if(_56.innerWidth){ +_57.size=CGSizeMake(_56.innerWidth,_56.innerHeight); +}else{ +if(document.documentElement&&document.documentElement.clientWidth){ +_57.size=CGSizeMake(_56.document.documentElement.clientWidth,_56.document.documentElement.clientHeight); +}else{ +_57.size=CGSizeMake(_56.document.body.clientWidth,_56.document.body.clientHeight); +} +} +return _57; +}; +var _58={},_59={},_5a={"8":1,"9":1,"37":1,"38":1,"39":1,"40":1,"46":1,"33":1,"34":1}; +var _5b=17; +var _5=objj_getClass("CPDOMWindowBridge"); +if(!_5){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPDOMWindowBridge\"")); +} +var _6=_5.isa; +class_addMethods(_5,[new objj_method(sel_getUid("preventCharacterKeysFromPropagating:"),function(_5c,_5d,_5e){ +with(_5c){ +for(var i=_5e.length;i>0;i--){ +_59[""+_5e[i-1].toLowerCase()]=YES; +} +} +}),new objj_method(sel_getUid("preventCharacterKeyFromPropagating:"),function(_60,_61,_62){ +with(_60){ +_59[_62.toLowerCase()]=YES; +} +}),new objj_method(sel_getUid("clearCharacterKeysToPreventFromPropagating"),function(_63,_64){ +with(_63){ +_59={}; +} +}),new objj_method(sel_getUid("preventKeyCodesFromPropagating:"),function(_65,_66,_67){ +with(_65){ +for(var i=_67.length;i>0;i--){ +_58[_67[i-1]]=YES; +} +} +}),new objj_method(sel_getUid("preventKeyCodeFromPropagating:"),function(_69,_6a,_6b){ +with(_69){ +_58[_6b]=YES; +} +}),new objj_method(sel_getUid("clearKeyCodesToPreventFromPropagating"),function(_6c,_6d){ +with(_6c){ +_58={}; +} +}),new objj_method(sel_getUid("_bridgeMouseEvent:"),function(_6e,_6f,_70){ +with(_6e){ +var _71=_overriddenEventType||_70.type; +if(_71===CPDOMEventDoubleClick){ +_overriddenEventType=CPDOMEventMouseDown; +objj_msgSend(_6e,"_bridgeMouseEvent:",_70); +_overriddenEventType=CPDOMEventMouseUp; +objj_msgSend(_6e,"_bridgeMouseEvent:",_70); +_overriddenEventType=nil; +return; +} +try{ +var _72,_73={x:_70.clientX,y:_70.clientY},_74=_70.timeStamp?_70.timeStamp:new Date(),_75=(_70.target||_70.srcElement),_76=0,_77=(_70.shiftKey?CPShiftKeyMask:0)|(_70.ctrlKey?CPControlKeyMask:0)|(_70.altKey?CPAlternateKeyMask:0)|(_70.metaKey?CPCommandKeyMask:0); +StopDOMEventPropagation=YES; +if(_mouseDownWindow){ +_76=objj_msgSend(_mouseDownWindow,"windowNumber"); +}else{ +var _78=objj_msgSend(_6e,"hitTest:",_73); +if((_70.type===CPDOMEventMouseDown)&&_78){ +_mouseDownWindow=_78; +} +_76=objj_msgSend(_78,"windowNumber"); +} +if(_76){ +var _79=CPApp._windows[_76]._frame; +_73.x-=(_79.origin.x); +_73.y-=(_79.origin.y); +} +switch(_71){ +case CPDOMEventMouseUp: +if(_mouseIsDown){ +_72=_CPEventFromNativeMouseEvent(_70,CPLeftMouseUp,_73,_77,_74,_76,nil,-1,_3(_lastMouseUp,_74,_73),0); +_mouseIsDown=NO; +_lastMouseUp=_72; +_mouseDownWindow=nil; +} +if(_DOMEventMode){ +_DOMEventMode=NO; +return; +} +break; +case CPDOMEventMouseDown: +if(_1[_75.tagName]&&_75!=_DOMFocusElement){ +_DOMEventMode=YES; +_mouseIsDown=YES; +objj_msgSend(CPApp,"sendEvent:",objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",CPLeftMouseDown,_73,_77,_74,_76,nil,-1,_3(_lastMouseDown,_74,_73),0)); +objj_msgSend(CPApp,"sendEvent:",objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",CPLeftMouseUp,_73,_77,_74,_76,nil,-1,_3(_lastMouseDown,_74,_73),0)); +return; +} +_72=_CPEventFromNativeMouseEvent(_70,CPLeftMouseDown,_73,_77,_74,_76,nil,-1,_3(_lastMouseDown,_74,_73),0); +_mouseIsDown=YES; +_lastMouseDown=_72; +break; +case CPDOMEventMouseMoved: +if(_DOMEventMode){ +return; +} +_72=_CPEventFromNativeMouseEvent(_70,_mouseIsDown?CPLeftMouseDragged:CPMouseMoved,_73,_77,_74,_76,nil,-1,1,0); +break; +} +if(_72){ +_72._DOMEvent=_70; +objj_msgSend(CPApp,"sendEvent:",_72); +} +if(StopDOMEventPropagation){ +_4(_70); +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +catch(anException){ +objj_exception_report(anException,{path:"CPDOMWindowBridge.j"}); +} +} +}),new objj_method(sel_getUid("_bridgeKeyEvent:"),function(_7a,_7b,_7c){ +with(_7a){ +try{ +var _7d,_7e=_7c.timeStamp?_7c.timeStamp:new Date(),_7f=(_7c.target||_7c.srcElement),_80=objj_msgSend(objj_msgSend(CPApp,"keyWindow"),"windowNumber"),_81=(_7c.shiftKey?CPShiftKeyMask:0)|(_7c.ctrlKey?CPControlKeyMask:0)|(_7c.altKey?CPAlternateKeyMask:0)|(_7c.metaKey?CPCommandKeyMask:0); +if(_1[_7f.tagName]&&_7f!=_DOMFocusElement&&_7f!=_DOMPasteboardElement){ +return; +} +StopDOMEventPropagation=!(_81&(CPControlKeyMask|CPCommandKeyMask))||_59[String.fromCharCode(_7c.keyCode||_7c.charCode).toLowerCase()]||_58[_7c.keyCode]; +var _82=NO,_83=NO; +switch(_7c.type){ +case CPDOMEventKeyDown: +_keyCode=_7c.keyCode; +var _84=String.fromCharCode(_keyCode).toLowerCase(); +if(_84=="v"&&(_81&CPPlatformActionKeyMask)){ +_DOMPasteboardElement.select(); +_DOMPasteboardElement.value=""; +_82=YES; +}else{ +if((_84=="c"||_84=="x")&&(_81&CPPlatformActionKeyMask)){ +_83=YES; +}else{ +if(!CPFeatureIsCompatible(CPJavascriptRemedialKeySupport)){ +return; +}else{ +if(!_5a[_keyCode]&&(_keyCode==_5b||!(_81&CPControlKeyMask))){ +return; +} +} +} +} +case CPDOMEventKeyPress: +if((_7c.target||_7c.srcElement)==_DOMPasteboardElement){ +return; +} +var _85=_keyCode,_86=_7c.keyCode||_7c.charCode,_87=(_charCodes[_85]!=nil); +_charCodes[_85]=_86; +var _84=String.fromCharCode(_86),_88=_84.toLowerCase(); +_7d=objj_msgSend(CPEvent,"keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:",CPKeyDown,location,_81,_7e,_80,nil,_84,_88,_87,_85); +if(_82){ +_pasteboardKeyDownEvent=_7d; +window.setNativeTimeout(function(){ +objj_msgSend(_7a,"_checkPasteboardElement"); +},0); +return; +} +break; +case CPDOMEventKeyUp: +var _85=_7c.keyCode,_86=_charCodes[_85]; +_charCodes[_85]=nil; +var _84=String.fromCharCode(_86),_88=_84.toLowerCase(); +if(!(_81&CPShiftKeyMask)){ +_84=_88; +} +_7d=objj_msgSend(CPEvent,"keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:",CPKeyUp,location,_81,_7e,_80,nil,_84,_88,NO,_85); +break; +} +if(_7d){ +_7d._DOMEvent=_7c; +objj_msgSend(CPApp,"sendEvent:",_7d); +if(_83){ +var _89=objj_msgSend(CPPasteboard,"generalPasteboard"),_8a=objj_msgSend(_89,"types"); +if(_8a.length){ +if(objj_msgSend(_8a,"indexOfObjectIdenticalTo:",CPStringPboardType)!=CPNotFound){ +_DOMPasteboardElement.value=objj_msgSend(_89,"stringForType:",CPStringPboardType); +}else{ +_DOMPasteboardElement.value=objj_msgSend(_89,"_generateStateUID"); +} +_DOMPasteboardElement.select(); +window.setNativeTimeout(function(){ +objj_msgSend(_7a,"_clearPasteboardElement"); +},0); +} +return; +} +} +if(StopDOMEventPropagation){ +_4(_7c); +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +catch(anException){ +objj_exception_report(anException,{path:"CPDOMWindowBridge.j"}); +} +} +}),new objj_method(sel_getUid("_bridgeScrollEvent:"),function(_8b,_8c,_8d){ +with(_8b){ +if(!_8d){ +_8d=window.event; +} +try{ +if(CPFeatureIsCompatible(CPJavaScriptMouseWheelValues_8_15)){ +var x=0,y=0,_90=_8d.target; +while(_90.nodeType!==1){ +_90=_90.parentNode; +} +if(_90.offsetParent){ +do{ +x+=_90.offsetLeft; +y+=_90.offsetTop; +}while(_90=_90.offsetParent); +} +var _91={x:(x+((_8d.clientX-8)/15)),y:(y+((_8d.clientY-8)/15))}; +}else{ +var _91={x:_8d.clientX,y:_8d.clientY}; +} +var _92=0,_93=0,_94=0,_95=_8d.timeStamp?_8d.timeStamp:new Date(),_96=(_8d.shiftKey?CPShiftKeyMask:0)|(_8d.ctrlKey?CPControlKeyMask:0)|(_8d.altKey?CPAlternateKeyMask:0)|(_8d.metaKey?CPCommandKeyMask:0); +StopDOMEventPropagation=YES; +_94=objj_msgSend(objj_msgSend(_8b,"hitTest:",_91),"windowNumber"); +if(!_94){ +return; +} +var _97=CPApp._windows[_94]._frame; +_91.x-=CGRectGetMinX(_97); +_91.y-=CGRectGetMinY(_97); +if(typeof _8d.wheelDeltaX!="undefined"){ +_92=_8d.wheelDeltaX/120; +_93=_8d.wheelDeltaY/120; +}else{ +if(_8d.wheelDelta){ +_93=_8d.wheelDelta/120; +}else{ +if(_8d.detail){ +_93=-_8d.detail/3; +}else{ +return; +} +} +} +if(!CPFeatureIsCompatible(CPJavaScriptNegativeMouseWheelValues)){ +_92=-_92; +_93=-_93; +} +var _98=objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",CPScrollWheel,_91,_96,_95,_94,nil,-1,1,0); +_98._DOMEvent=_8d; +_98._deltaX=ROUND(_92*1.5); +_98._deltaY=ROUND(_93*1.5); +objj_msgSend(CPApp,"sendEvent:",_98); +if(StopDOMEventPropagation){ +_4(_8d); +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +catch(anException){ +objj_exception_report(anException,{path:"CPDOMWindowBridge.j"}); +} +} +}),new objj_method(sel_getUid("_bridgeResizeEvent:"),function(_99,_9a,_9b){ +with(_99){ +try{ +var _9c=_frame.size; +_frame=_2(_DOMWindow); +_contentBounds.size=CGSizeCreateCopy(_frame.size); +var _9d=_windowLevels,_9e=_windowLayers,_9f=_9d.length; +while(_9f--){ +var _a0=objj_msgSend(_9e,"objectForKey:",_9d[_9f])._windows,_a1=_a0.length; +while(_a1--){ +objj_msgSend(_a0[_a1],"resizeWithOldBridgeSize:",_9c); +} +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +catch(anException){ +objj_exception_report(anException,{path:"CPDOMWindowBridge.j"}); +} +} +}),new objj_method(sel_getUid("_bridgeTouchEvent:"),function(_a2,_a3,_a4){ +with(_a2){ +try{ +if(_a4.touches&&(_a4.touches.length==1||(_a4.touches.length==0&&_a4.changedTouches.length==1))){ +var _a5={}; +switch(_a4.type){ +case CPDOMEventTouchStart: +_a5.type=CPDOMEventMouseDown; +break; +case CPDOMEventTouchEnd: +_a5.type=CPDOMEventMouseUp; +break; +case CPDOMEventTouchMove: +_a5.type=CPDOMEventMouseMoved; +break; +case CPDOMEventTouchCancel: +_a5.type=CPDOMEventMouseUp; +break; +} +var _a6=_a4.touches.length?_a4.touches[0]:_a4.changedTouches[0]; +_a5.clientX=_a6.clientX; +_a5.clientY=_a6.clientY; +_a5.timestamp=_a4.timestamp; +_a5.target=_a4.target; +_a5.shiftKey=_a5.ctrlKey=_a5.altKey=_a5.metaKey=false; +_a5.preventDefault=function(){ +if(_a4.preventDefault){ +_a4.preventDefault(); +} +}; +_a5.stopPropagation=function(){ +if(_a4.stopPropagation){ +_a4.stopPropagation(); +} +}; +objj_msgSend(_a2,"_bridgeMouseEvent:",_a5); +return; +}else{ +if(_a4.preventDefault){ +_a4.preventDefault(); +} +if(_a4.stopPropagation){ +_a4.stopPropagation(); +} +} +} +catch(e){ +objj_exception_report(e,{path:"CPDOMWindowBridge.j"}); +} +} +}),new objj_method(sel_getUid("_checkPasteboardElement"),function(_a7,_a8){ +with(_a7){ +try{ +var _a9=_DOMPasteboardElement.value; +if(objj_msgSend(_a9,"length")){ +var _aa=objj_msgSend(CPPasteboard,"generalPasteboard"); +if(objj_msgSend(_aa,"_stateUID")!=_a9){ +objj_msgSend(_aa,"declareTypes:owner:",[CPStringPboardType],_a7); +objj_msgSend(_aa,"setString:forType:",_a9,CPStringPboardType); +} +} +objj_msgSend(_a7,"_clearPasteboardElement"); +objj_msgSend(CPApp,"sendEvent:",_pasteboardKeyDownEvent); +_pasteboardKeyDownEvent=nil; +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +catch(anException){ +objj_exception_report(anException,{path:"CPDOMWindowBridge.j"}); +} +} +}),new objj_method(sel_getUid("_clearPasteboardElement"),function(_ab,_ac){ +with(_ab){ +_DOMPasteboardElement.value=""; +_DOMPasteboardElement.blur(); +} +})]); +var _ad=5,_ae=(typeof document!="undefined"&&document.addEventListener)?350:1000; +var _3=function(_af,_b0,_b1){ +if(!_af){ +return 1; +} +var _b2=objj_msgSend(_af,"locationInWindow"); +return (_b0-objj_msgSend(_af,"timestamp")<_ae&&ABS(_b2.x-_b1.x)<_ad&&ABS(_b2.y-_b1.y)<_ad)?objj_msgSend(_af,"clickCount")+1:1; +}; +var _4=function(_b3){ +_b3.cancelBubble=true; +_b3.returnValue=false; +if(_b3.preventDefault){ +_b3.preventDefault(); +} +if(_b3.stopPropagation){ +_b3.stopPropagation(); +} +if(_b3.type===CPDOMEventMouseDown){ +CPSharedDOMWindowBridge._DOMFocusElement.focus(); +CPSharedDOMWindowBridge._DOMFocusElement.blur(); +} +}; +p;18;CPDOMWindowLayer.jI;20;Foundation/CPArray.jI;21;Foundation/CPObject.jc;2416; +var _1=objj_allocateClassPair(CPObject,"CPDOMWindowLayer"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_level"),new objj_ivar("_windows"),new objj_ivar("_DOMElement")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithLevel:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_level=_5; +_windows=[]; +_DOMElement=document.createElement("div"); +_DOMElement.style.position="absolute"; +_DOMElement.style.top="0px"; +_DOMElement.style.left="0px"; +_DOMElement.style.width="1px"; +_DOMElement.style.height="1px"; +} +return _3; +} +}),new objj_method(sel_getUid("level"),function(_6,_7){ +with(_6){ +return _level; +} +}),new objj_method(sel_getUid("removeWindow:"),function(_8,_9,_a){ +with(_8){ +if(!_a._isVisible){ +return; +} +var _b=_a._index,_c=_windows.length-1; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=8; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_a._DOMElement; +objj_msgSend(_windows,"removeObjectAtIndex:",_a._index); +for(;_b<_c;++_b){ +_windows[_b]._index=_b; +_windows[_b]._DOMElement.style.zIndex=_b; +} +_a._isVisible=NO; +} +}),new objj_method(sel_getUid("insertWindow:atIndex:"),function(_d,_e,_f,_10){ +with(_d){ +var _11=objj_msgSend(_windows,"count"),_12=(_10==CPNotFound?_11:_10),_13=_f._isVisible; +if(_13){ +_12=MIN(_12,_f._index); +objj_msgSend(_windows,"removeObjectAtIndex:",_f._index); +}else{ +++_11; +} +if(_10==CPNotFound||_10>=_11){ +objj_msgSend(_windows,"addObject:",_f); +}else{ +objj_msgSend(_windows,"insertObject:atIndex:",_f,_10); +} +for(;_12<_11;++_12){ +_windows[_12]._index=_12; +_windows[_12]._DOMElement.style.zIndex=_12; +} +if(!_13){ +if(_f._DOMElement.CPDOMDisplayContext){ +_f._DOMElement.CPDOMDisplayContext[0]=-1; +} +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=6; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_f._DOMElement; +_f._isVisible=YES; +if(objj_msgSend(_f,"isFullBridge")){ +objj_msgSend(_f,"setFrame:",objj_msgSend(_f._bridge,"visibleFrame")); +} +} +} +}),new objj_method(sel_getUid("orderedWindows"),function(_14,_15){ +with(_14){ +return _windows; +} +})]); +p;14;CPDragServer.jI;15;AppKit/CPView.jI;16;AppKit/CPEvent.jI;21;AppKit/CPPasteboard.jI;20;AppKit/CPImageView.jc;7236; +var _1=nil; +var _2=nil,_3=nil,_4=nil,_5=nil,_6=nil,_7=nil,_8=nil,_9=nil,_a=nil,_b=nil; +var _c=NO,_d=NO,_e=NO,_f=NO,_10=NO; +var _11=function(){ +objj_msgSend(_3,"autoscroll:",_a); +}; +var _12=function(_13){ +_14(_13); +}; +var _14=function(_15){ +if(objj_msgSend(_15,"type")==CPLeftMouseUp){ +if(_b!==nil){ +clearInterval(_b); +} +_b=nil; +_6=objj_msgSend((objj_msgSend(_8,"isKindOfClass:",objj_msgSend(CPWindow,"class"))?_8:objj_msgSend(_8,"window")),"convertBridgeToBase:",objj_msgSend(objj_msgSend(_15,"window"),"convertBaseToBridge:",objj_msgSend(_15,"locationInWindow"))); +objj_msgSend(_2,"removeFromSuperview"); +objj_msgSend(_1._dragWindow,"orderOut:",nil); +if(_8&&(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("prepareForDragOperation:"))||objj_msgSend(_8,"prepareForDragOperation:",_9))&&(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("performDragOperation:"))||objj_msgSend(_8,"performDragOperation:",_9))&&objj_msgSend(_8,"respondsToSelector:",sel_getUid("concludeDragOperation:"))){ +objj_msgSend(_8,"concludeDragOperation:",_9); +} +if(_10){ +objj_msgSend(_3,"draggedImage:endedAt:operation:",objj_msgSend(_2,"image"),_6,NO); +}else{ +if(_f){ +objj_msgSend(_3,"draggedView:endedAt:operation:",_2,_6,NO); +} +} +_c=NO; +_8=nil; +return; +} +if(_b===nil){ +if(objj_msgSend(_3,"respondsToSelector:",sel_getUid("autoscroll:"))){ +_b=setInterval(_11,100); +} +} +_a=_15; +objj_msgSend(CPApp,"setCallback:forNextEventMatchingMask:untilDate:inMode:dequeue:",_14,CPMouseMovedMask|CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,0,NO); +var _16=objj_msgSend(_15,"locationInWindow"),_17=bridgeLocation=objj_msgSend(objj_msgSend(_15,"window"),"convertBaseToBridge:",_16); +var _18=objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"_dragHitTest:pasteboard:",bridgeLocation,_7); +_6=objj_msgSend((objj_msgSend(_18,"isKindOfClass:",objj_msgSend(CPWindow,"class"))?_18:objj_msgSend(_18,"window")),"convertBridgeToBase:",bridgeLocation); +if(_18!=_8){ +if(_8&&objj_msgSend(_8,"respondsToSelector:",sel_getUid("draggingExited:"))){ +objj_msgSend(_8,"draggingExited:",_9); +} +_8=_18; +if(_8&&objj_msgSend(_8,"respondsToSelector:",sel_getUid("draggingEntered:"))){ +objj_msgSend(_8,"draggingEntered:",_9); +} +}else{ +if(_8&&objj_msgSend(_8,"respondsToSelector:",sel_getUid("draggingUpdated:"))){ +objj_msgSend(_8,"draggingUpdated:",_9); +} +} +_16.x-=_5.x; +_16.y-=_5.y; +objj_msgSend(_2,"setFrameOrigin:",_16); +if(_e){ +objj_msgSend(_3,"draggedImage:movedTo:",objj_msgSend(_2,"image"),_16); +}else{ +if(_d){ +objj_msgSend(_3,"draggedView:movedTo:",_2,_16); +} +} +}; +var _19=objj_allocateClassPair(CPObject,"CPDraggingInfo"),_1a=_19.isa; +objj_registerClassPair(_19); +objj_addClassForBundle(_19,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_19,[new objj_method(sel_getUid("draggingSource"),function(_1b,_1c){ +with(_1b){ +return _3; +} +}),new objj_method(sel_getUid("draggingLocation"),function(_1d,_1e){ +with(_1d){ +return _6; +} +}),new objj_method(sel_getUid("draggingPasteboard"),function(_1f,_20){ +with(_1f){ +return _7; +} +}),new objj_method(sel_getUid("draggedImage"),function(_21,_22){ +with(_21){ +return objj_msgSend(_2,"image"); +} +}),new objj_method(sel_getUid("draggedImageLocation"),function(_23,_24){ +with(_23){ +return objj_msgSend(_23,"draggedViewLocation"); +} +}),new objj_method(sel_getUid("draggedViewLocation"),function(_25,_26){ +with(_25){ +return objj_msgSend((objj_msgSend(_8,"isKindOfClass:",objj_msgSend(CPWindow,"class"))?_8:objj_msgSend(_8,"window")),"convertBridgeToBase:",objj_msgSend(_2,"frame").origin); +} +}),new objj_method(sel_getUid("draggedView"),function(_27,_28){ +with(_27){ +return _2; +} +})]); +var _19=objj_allocateClassPair(CPObject,"CPDragServer"),_1a=_19.isa; +class_addIvars(_19,[new objj_ivar("_dragWindow"),new objj_ivar("_imageView")]); +objj_registerClassPair(_19); +objj_addClassForBundle(_19,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_19,[new objj_method(sel_getUid("init"),function(_29,_2a){ +with(_29){ +_29=objj_msgSendSuper({receiver:_29,super_class:objj_getClass("CPObject")},"init"); +if(_29){ +_dragWindow=objj_msgSend(objj_msgSend(CPWindow,"alloc"),"initWithContentRect:styleMask:",CPRectMakeZero(),CPBorderlessWindowMask); +objj_msgSend(_dragWindow,"setLevel:",CPDraggingWindowLevel); +} +return _29; +} +}),new objj_method(sel_getUid("dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:"),function(_2b,_2c,_2d,_2e,_2f,_30,_31,_32,_33,_34){ +with(_2b){ +var _35=objj_msgSend(_31,"locationInWindow"); +_2=_2d; +_3=_33; +_4=_2e; +_5=CPPointMake(_35.x-_2f.x,_35.y-_2f.y); +_7=objj_msgSend(CPPasteboard,"pasteboardWithName:",CPDragPboard); +objj_msgSend(_dragWindow,"setFrameSize:",CGSizeMakeCopy(objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"frame").size)); +objj_msgSend(_dragWindow,"orderFront:",_2b); +objj_msgSend(_2d,"setFrameOrigin:",_2f); +objj_msgSend(objj_msgSend(_dragWindow,"contentView"),"addSubview:",_2d); +if(_c){ +if(objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedImage:beganAt:"))){ +objj_msgSend(_3,"draggedImage:beganAt:",objj_msgSend(_2d,"image"),_2f); +} +_e=objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedImage:movedTo:")); +_10=objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedImage:endAt:operation:")); +_d=NO; +_f=NO; +}else{ +if(objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedView:beganAt:"))){ +objj_msgSend(_3,"draggedView:beganAt:",_2d,_2f); +} +_d=objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedView:movedTo:")); +_f=objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedView:endedAt:operation:")); +_e=NO; +_10=NO; +} +_12(_31); +} +}),new objj_method(sel_getUid("dragImage:fromWindow:at:offset:event:pasteboard:source:slideBack:"),function(_36,_37,_38,_39,_3a,_3b,_3c,_3d,_3e,_3f){ +with(_36){ +_c=YES; +if(!_imageView){ +_imageView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CPRectMakeZero()); +} +objj_msgSend(_imageView,"setImage:",_38); +objj_msgSend(_imageView,"setFrameSize:",CGSizeMakeCopy(objj_msgSend(_38,"size"))); +objj_msgSend(_36,"dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:",_imageView,_39,_3a,_3b,_3c,_3d,_3e,_3f); +} +})]); +class_addMethods(_1a,[new objj_method(sel_getUid("initialize"),function(_40,_41){ +with(_40){ +if(_40!=objj_msgSend(CPDragServer,"class")){ +return; +} +_9=objj_msgSend(objj_msgSend(CPDraggingInfo,"alloc"),"init"); +} +}),new objj_method(sel_getUid("sharedDragServer"),function(_42,_43){ +with(_42){ +if(!_1){ +_1=objj_msgSend(objj_msgSend(CPDragServer,"alloc"),"init"); +} +return _1; +} +})]); +var _19=objj_getClass("CPWindow"); +if(!_19){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPWindow\"")); +} +var _1a=_19.isa; +class_addMethods(_19,[new objj_method(sel_getUid("_dragHitTest:pasteboard:"),function(_44,_45,_46,_47){ +with(_44){ +if(!_inclusiveRegisteredDraggedTypes){ +return nil; +} +var _48={x:_46.x-(_frame.origin.x),y:_46.y-(_frame.origin.y)},_49=objj_msgSend(_windowView,"hitTest:",_48); +while(_49&&!objj_msgSend(_47,"availableTypeFromArray:",objj_msgSend(_49,"registeredDraggedTypes"))){ +_49=objj_msgSend(_49,"superview"); +} +if(_49){ +return _49; +} +if(objj_msgSend(_47,"availableTypeFromArray:",objj_msgSend(_44,"registeredDraggedTypes"))){ +return _44; +} +return nil; +} +})]); +p;9;CPEvent.jI;21;Foundation/CPObject.jc;8090; +CPLeftMouseDown=1; +CPLeftMouseUp=2; +CPRightMouseDown=3; +CPRightMouseUp=4; +CPMouseMoved=5; +CPLeftMouseDragged=6; +CPRightMouseDragged=7; +CPMouseEntered=8; +CPMouseExited=9; +CPKeyDown=10; +CPKeyUp=11; +CPFlagsChanged=12; +CPAppKitDefined=13; +CPSystemDefined=14; +CPApplicationDefined=15; +CPPeriodic=16; +CPCursorUpdate=17; +CPScrollWheel=22; +CPOtherMouseDown=25; +CPOtherMouseUp=26; +CPOtherMouseDragged=27; +CPTouchStart=28; +CPTouchMove=29; +CPTouchEnd=30; +CPTouchCancel=31; +CPAlphaShiftKeyMask=1<<16; +CPShiftKeyMask=1<<17; +CPControlKeyMask=1<<18; +CPAlternateKeyMask=1<<19; +CPCommandKeyMask=1<<20; +CPNumericPadKeyMask=1<<21; +CPHelpKeyMask=1<<22; +CPFunctionKeyMask=1<<23; +CPDeviceIndependentModifierFlagsMask=4294901760; +CPLeftMouseDownMask=1<=CPRectGetMinX(_20)&&_21.y>=CPRectGetMinY(_20)&&_21.x=0)){ +_24=_DOMImageElement.CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_24]=0; +CPDOMDisplayServerInstructions[_24+1]=_DOMImageElement; +CPDOMDisplayServerInstructions[_24+2]=NULL; +CPDOMDisplayServerInstructions[_24+3]=0; +CPDOMDisplayServerInstructions[_24+4]=0; +} +objj_msgSend(_21,"setNeedsLayout"); +objj_msgSend(_21,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("hideOrDisplayContents"),function(_25,_26){ +with(_25){ +if(!objj_msgSend(_25,"image")){ +_DOMImageElement.style.visibility="hidden"; +objj_msgSend(_shadowView,"setHidden:",YES); +}else{ +_DOMImageElement.style.visibility="visible"; +objj_msgSend(_shadowView,"setHidden:",NO); +} +} +}),new objj_method(sel_getUid("imageRect"),function(_27,_28){ +with(_27){ +return _imageRect; +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_29,_2a){ +with(_29){ +if(!objj_msgSend(_29,"image")){ +return; +} +var _2b=objj_msgSend(_29,"bounds"),_2c=objj_msgSend(_29,"image"),_2d=objj_msgSend(_29,"currentValueForThemeAttribute:","image-scaling"),x=0,y=0,_30=(_hasShadow?_7:0),_31=(_hasShadow?_6:0),_32=(_2b.size.width),_33=(_2b.size.height),_34=_32-_30,_35=_33-_31; +if(_2d===CPScaleToFit){ +_DOMImageElement.width=ROUND(_34); +_DOMImageElement.height=ROUND(_35); +}else{ +var _36=objj_msgSend(_2c,"size"); +if(_36.width==-1&&_36.height==-1){ +return; +} +if(_2d===CPScaleProportionally){ +if(_34>=_36.width&&_35>=_36.height){ +_34=_36.width; +_35=_36.height; +}else{ +var _37=_36.width/_36.height,_38=_34/_35; +if(_38>_37){ +_34=_35*_37; +}else{ +_35=_34/_37; +} +} +_DOMImageElement.width=ROUND(_34); +_DOMImageElement.height=ROUND(_35); +}else{ +_34=_36.width; +_35=_36.height; +} +if(_2d==CPScaleNone){ +_DOMImageElement.width=ROUND(_36.width); +_DOMImageElement.height=ROUND(_36.height); +} +var x=(_32-_34)/2,y=(_33-_35)/2; +if(!_DOMImageElement.CPDOMDisplayContext){ +_DOMImageElement.CPDOMDisplayContext=[]; +} +var _39=_DOMImageElement.CPDOMDisplayContext[0]; +if(!(_39>=0)){ +_39=_DOMImageElement.CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_39]=0; +CPDOMDisplayServerInstructions[_39+1]=_DOMImageElement; +CPDOMDisplayServerInstructions[_39+2]=NULL; +CPDOMDisplayServerInstructions[_39+3]=x; +CPDOMDisplayServerInstructions[_39+4]=y; +} +_imageRect={origin:{x:x,y:y},size:{width:_34,height:_35}}; +if(_hasShadow){ +objj_msgSend(_shadowView,"setFrame:",{origin:{x:x-_2,y:y-_4},size:{width:_34+_30,height:_35+_31}}); +} +} +}),new objj_method(sel_getUid("mouseDown:"),function(_3a,_3b,_3c){ +with(_3a){ +objj_msgSend(objj_msgSend(_3a,"nextResponder"),"mouseDown:",_3c); +} +}),new objj_method(sel_getUid("setEditable:"),function(_3d,_3e,_3f){ +with(_3d){ +if(_isEditable===_3f){ +return; +} +_isEditable=_3f; +if(_isEditable){ +objj_msgSend(_3d,"registerForDraggedTypes:",[CPImagesPboardType]); +}else{ +var _40=objj_msgSend(_3d,"registeredDraggedTypes"); +objj_msgSend(_3d,"unregisterDraggedTypes"); +objj_msgSend(_40,"removeObjectIdenticalTo:",CPImagesPboardType); +objj_msgSend(_3d,"registerForDraggedTypes:",_40); +} +} +}),new objj_method(sel_getUid("isEditable"),function(_41,_42){ +with(_41){ +return _isEditable; +} +}),new objj_method(sel_getUid("performDragOperation:"),function(_43,_44,_45){ +with(_43){ +var _46=objj_msgSend(CPKeyedUnarchiver,"unarchiveObjectWithData:",objj_msgSend(objj_msgSend(_45,"draggingPasteboard"),"dataForType:",CPImagesPboardType)); +if(objj_msgSend(_46,"count")){ +objj_msgSend(_43,"setImage:",_46[0]); +} +} +})]); +var _47="CPImageViewImageKey",_48="CPImageViewImageScalingKey",_49="CPImageViewHasShadowKey",_4a="CPImageViewIsEditableKey"; +var _8=objj_getClass("CPImageView"); +if(!_8){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPImageView\"")); +} +var _9=_8.isa; +class_addMethods(_8,[new objj_method(sel_getUid("initWithCoder:"),function(_4b,_4c,_4d){ +with(_4b){ +_DOMImageElement=document.createElement("img"); +_DOMImageElement.style.position="absolute"; +_DOMImageElement.style.left="0px"; +_DOMImageElement.style.top="0px"; +_DOMImageElement.style.visibility="hidden"; +_4b=objj_msgSendSuper({receiver:_4b,super_class:objj_getClass("CPControl")},"initWithCoder:",_4d); +if(_4b){ +_DOMElement.appendChild(_DOMImageElement); +objj_msgSend(_4b,"setHasShadow:",objj_msgSend(_4d,"decodeBoolForKey:",_49)); +if(objj_msgSend(_4d,"decodeBoolForKey:",_4a)||NO){ +objj_msgSend(_4b,"setEditable:",YES); +} +objj_msgSend(_4b,"setNeedsLayout"); +objj_msgSend(_4b,"setNeedsDisplay:",YES); +} +return _4b; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_4e,_4f,_50){ +with(_4e){ +if(_shadowView){ +var _51=_subviews; +_subviews=objj_msgSend(_subviews,"copy"); +objj_msgSend(_subviews,"removeObjectIdenticalTo:",_shadowView); +} +objj_msgSendSuper({receiver:_4e,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_50); +if(_shadowView){ +_subviews=_51; +} +objj_msgSend(_50,"encodeBool:forKey:",_hasShadow,_49); +if(_isEditable){ +objj_msgSend(_50,"encodeBool:forKey:",_isEditable,_4a); +} +} +})]); +p;8;CPMenu.jI;20;Foundation/CPArray.jI;25;Foundation/CPDictionary.jI;33;Foundation/CPNotificationCenter.jI;21;Foundation/CPString.ji;15;CPApplication.ji;12;CPClipView.ji;12;CPMenuItem.ji;9;CPPanel.jc;48184; +CPMenuDidAddItemNotification="CPMenuDidAddItemNotification"; +CPMenuDidChangeItemNotification="CPMenuDidChangeItemNotification"; +CPMenuDidRemoveItemNotification="CPMenuDidRemoveItemNotification"; +CPMenuDidEndTrackingNotification="CPMenuDidEndTrackingNotification"; +var _1=19; +var _2=NO,_3="",_4=nil,_5=1,_6=nil,_7=nil; +var _8=objj_allocateClassPair(CPObject,"CPMenu"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_supermenu"),new objj_ivar("_title"),new objj_ivar("_items"),new objj_ivar("_attachedMenu"),new objj_ivar("_autoenablesItems"),new objj_ivar("_showsStateColumn"),new objj_ivar("_delegate"),new objj_ivar("_highlightedIndex"),new objj_ivar("_menuWindow")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("menuBarHeight"),function(_a,_b){ +with(_a){ +if(_a==objj_msgSend(CPApp,"mainMenu")){ +return _1; +} +return 0; +} +}),new objj_method(sel_getUid("initWithTitle:"),function(_c,_d,_e){ +with(_c){ +_c=objj_msgSendSuper({receiver:_c,super_class:objj_getClass("CPObject")},"init"); +if(_c){ +_title=_e; +_items=[]; +_autoenablesItems=YES; +_showsStateColumn=YES; +} +return _c; +} +}),new objj_method(sel_getUid("init"),function(_f,_10){ +with(_f){ +return objj_msgSend(_f,"initWithTitle:",""); +} +}),new objj_method(sel_getUid("insertItem:atIndex:"),function(_11,_12,_13,_14){ +with(_11){ +var _15=objj_msgSend(_13,"menu"); +if(_15){ +if(_15!=_11){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Attempted to insert item into menu that was already in another menu."); +}else{ +return; +} +} +objj_msgSend(_13,"setMenu:",_11); +objj_msgSend(_items,"insertObject:atIndex:",_13,_14); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPMenuDidAddItemNotification,_11,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",_14,"CPMenuItemIndex")); +} +}),new objj_method(sel_getUid("insertItemWithTitle:action:keyEquivalent:atIndex:"),function(_16,_17,_18,_19,_1a,_1b){ +with(_16){ +var _1c=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:",_18,_19,_1a); +objj_msgSend(_16,"insertItem:atIndex:",_1c,_1b); +return _1c; +} +}),new objj_method(sel_getUid("addItem:"),function(_1d,_1e,_1f){ +with(_1d){ +objj_msgSend(_1d,"insertItem:atIndex:",_1f,objj_msgSend(_items,"count")); +} +}),new objj_method(sel_getUid("addItemWithTitle:action:keyEquivalent:"),function(_20,_21,_22,_23,_24){ +with(_20){ +return objj_msgSend(_20,"insertItemWithTitle:action:keyEquivalent:atIndex:",_22,_23,_24,objj_msgSend(_items,"count")); +} +}),new objj_method(sel_getUid("removeItem:"),function(_25,_26,_27){ +with(_25){ +objj_msgSend(_25,"removeItemAtIndex:",objj_msgSend(_items,"indexOfObjectIdenticalTo:",_27)); +} +}),new objj_method(sel_getUid("removeItemAtIndex:"),function(_28,_29,_2a){ +with(_28){ +if(_2a<0||_2a>=_items.length){ +return; +} +objj_msgSend(_items[_2a],"setMenu:",nil); +objj_msgSend(_items,"removeObjectAtIndex:",_2a); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPMenuDidRemoveItemNotification,_28,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",_2a,"CPMenuItemIndex")); +} +}),new objj_method(sel_getUid("itemChanged:"),function(_2b,_2c,_2d){ +with(_2b){ +if(objj_msgSend(_2d,"menu")!=_2b){ +return; +} +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPMenuDidChangeItemNotification,_2b,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",objj_msgSend(_items,"indexOfObjectIdenticalTo:",_2d),"CPMenuItemIndex")); +} +}),new objj_method(sel_getUid("menuWithTag:"),function(_2e,_2f,_30){ +with(_2e){ +var _31=objj_msgSend(_2e,"indexOfItemWithTag:",_30); +if(_31==CPNotFound){ +return nil; +} +return _items[_31]; +} +}),new objj_method(sel_getUid("menuWithTitle:"),function(_32,_33,_34){ +with(_32){ +var _35=objj_msgSend(_32,"indexOfItemWithTitle:",_34); +if(_35==CPNotFound){ +return nil; +} +return _items[_35]; +} +}),new objj_method(sel_getUid("itemAtIndex:"),function(_36,_37,_38){ +with(_36){ +return objj_msgSend(_items,"objectAtIndex:",_38); +} +}),new objj_method(sel_getUid("numberOfItems"),function(_39,_3a){ +with(_39){ +return objj_msgSend(_items,"count"); +} +}),new objj_method(sel_getUid("itemArray"),function(_3b,_3c){ +with(_3b){ +return _items; +} +}),new objj_method(sel_getUid("indexOfItem:"),function(_3d,_3e,_3f){ +with(_3d){ +if(objj_msgSend(_3f,"menu")!=_3d){ +return CPNotFound; +} +return objj_msgSend(_items,"indexOfObjectIdenticalTo:",_3f); +} +}),new objj_method(sel_getUid("indexOfItemWithTitle:"),function(_40,_41,_42){ +with(_40){ +var _43=0,_44=_items.length; +for(;_43<_44;++_43){ +if(objj_msgSend(_items[_43],"title")===_42){ +return _43; +} +} +return CPNotFound; +} +}),new objj_method(sel_getUid("indexOfItemWithTag:"),function(_45,_46,_47){ +with(_45){ +var _48=0,_49=_items.length; +for(;_48<_49;++_48){ +if(objj_msgSend(_items[_48],"tag")==_47){ +return _48; +} +} +return CPNotFound; +} +}),new objj_method(sel_getUid("indexOfItemWithTarget:andAction:"),function(_4a,_4b,_4c,_4d){ +with(_4a){ +var _4e=0,_4f=_items.length; +for(;_4e<_4f;++_4e){ +var _50=_items[_4e]; +if(objj_msgSend(_50,"target")==_4c&&(!_4d||objj_msgSend(_50,"action")==_4d)){ +return _4e; +} +} +return CPNotFound; +} +}),new objj_method(sel_getUid("indexOfItemWithRepresentedObject:"),function(_51,_52,_53){ +with(_51){ +var _54=0,_55=_items.length; +for(;_54<_55;++_54){ +if(objj_msgSend(objj_msgSend(_items[_54],"representedObject"),"isEqual:",_53)){ +return _54; +} +} +return CPNotFound; +} +}),new objj_method(sel_getUid("indexOfItemWithSubmenu:"),function(_56,_57,_58){ +with(_56){ +var _59=0,_5a=_items.length; +for(;_59<_5a;++_59){ +if(objj_msgSend(_items[_59],"submenu")==_58){ +return _59; +} +} +return CPNotFound; +} +}),new objj_method(sel_getUid("setSubmenu:forItem:"),function(_5b,_5c,_5d,_5e){ +with(_5b){ +objj_msgSend(_5e,"setTarget:",_5e); +objj_msgSend(_5e,"setAction:",sel_getUid("submenuAction:")); +objj_msgSend(_5e,"setSubmenu:",_5d); +} +}),new objj_method(sel_getUid("submenuAction:"),function(_5f,_60,_61){ +with(_5f){ +} +}),new objj_method(sel_getUid("attachedMenu"),function(_62,_63){ +with(_62){ +return _attachedMenu; +} +}),new objj_method(sel_getUid("isAttached"),function(_64,_65){ +with(_64){ +return _isAttached; +} +}),new objj_method(sel_getUid("locationOfSubmenu:"),function(_66,_67,_68){ +with(_66){ +} +}),new objj_method(sel_getUid("supermenu"),function(_69,_6a){ +with(_69){ +return _supermenu; +} +}),new objj_method(sel_getUid("setSupermenu:"),function(_6b,_6c,_6d){ +with(_6b){ +_supermenu=_6d; +} +}),new objj_method(sel_getUid("isTornOff"),function(_6e,_6f){ +with(_6e){ +return !_supermenu||_6e==objj_msgSend(CPApp,"mainMenu"); +} +}),new objj_method(sel_getUid("setAutoenablesItems:"),function(_70,_71,_72){ +with(_70){ +_autoenablesItems=_72; +} +}),new objj_method(sel_getUid("autoenablesItems"),function(_73,_74){ +with(_73){ +return _autoenablesItems; +} +}),new objj_method(sel_getUid("update"),function(_75,_76){ +with(_75){ +} +}),new objj_method(sel_getUid("setTitle:"),function(_77,_78,_79){ +with(_77){ +_title=_79; +} +}),new objj_method(sel_getUid("title"),function(_7a,_7b){ +with(_7a){ +return _title; +} +}),new objj_method(sel_getUid("setShowsStateColumn:"),function(_7c,_7d,_7e){ +with(_7c){ +_showsStateColumn=_7e; +} +}),new objj_method(sel_getUid("showsStateColumn"),function(_7f,_80){ +with(_7f){ +return _showsStateColumn; +} +}),new objj_method(sel_getUid("highlightedItem"),function(_81,_82){ +with(_81){ +return _highlightedIndex>=0?_items[_highlightedIndex]:nil; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_83,_84,_85){ +with(_83){ +_delegate=_85; +} +}),new objj_method(sel_getUid("delegate"),function(_86,_87){ +with(_86){ +return _delegate; +} +}),new objj_method(sel_getUid("cancelTracking"),function(_88,_89){ +with(_88){ +objj_msgSend(_menuWindow,"cancelTracking"); +} +}),new objj_method(sel_getUid("_setMenuWindow:"),function(_8a,_8b,_8c){ +with(_8a){ +_menuWindow=_8c; +} +}),new objj_method(sel_getUid("performKeyEquivalent:"),function(_8d,_8e,_8f){ +with(_8d){ +if(_autoenablesItems){ +objj_msgSend(_8d,"update"); +} +var _90=0,_91=_items.length,_92=objj_msgSend(_8f,"charactersIgnoringModifiers"),_93=objj_msgSend(_8f,"modifierFlags"); +for(;_90<_91;++_90){ +var _94=_items[_90],_95=objj_msgSend(_94,"keyEquivalentModifierMask"); +if((_93&(CPShiftKeyMask|CPAlternateKeyMask|CPCommandKeyMask|CPControlKeyMask))==_95&&objj_msgSend(_92,"caseInsensitiveCompare:",objj_msgSend(_94,"keyEquivalent"))==CPOrderedSame){ +if(objj_msgSend(_94,"isEnabled")){ +objj_msgSend(_8d,"performActionForItemAtIndex:",_90); +}else{ +} +return YES; +} +if(objj_msgSend(objj_msgSend(_94,"submenu"),"performKeyEquivalent:",_8f)){ +return YES; +} +} +return NO; +} +}),new objj_method(sel_getUid("performActionForItemAtIndex:"),function(_96,_97,_98){ +with(_96){ +var _99=_items[_98]; +objj_msgSend(CPApp,"sendAction:to:from:",objj_msgSend(_99,"action"),objj_msgSend(_99,"target"),_99); +} +}),new objj_method(sel_getUid("_itemIsHighlighted:"),function(_9a,_9b,_9c){ +with(_9a){ +return _items[_highlightedIndex]==_9c; +} +}),new objj_method(sel_getUid("_highlightItemAtIndex:"),function(_9d,_9e,_9f){ +with(_9d){ +var _a0=_highlightedIndex; +_highlightedIndex=_9f; +if(_a0!=CPNotFound){ +objj_msgSend(objj_msgSend(_items[_a0],"_menuItemView"),"highlight:",NO); +} +if(_highlightedIndex!=CPNotFound){ +objj_msgSend(objj_msgSend(_items[_highlightedIndex],"_menuItemView"),"highlight:",YES); +} +} +})]); +class_addMethods(_9,[new objj_method(sel_getUid("initialize"),function(_a1,_a2){ +with(_a1){ +objj_msgSend(objj_msgSend(_a1,"class"),"setMenuBarAttributes:",objj_msgSend(CPDictionary,"dictionary")); +} +}),new objj_method(sel_getUid("menuBarVisible"),function(_a3,_a4){ +with(_a3){ +return _2; +} +}),new objj_method(sel_getUid("setMenuBarVisible:"),function(_a5,_a6,_a7){ +with(_a5){ +if(_2==_a7){ +return; +} +_2=_a7; +if(_a7){ +if(!_7){ +_7=objj_msgSend(objj_msgSend(_CPMenuBarWindow,"alloc"),"init"); +} +objj_msgSend(_7,"setMenu:",objj_msgSend(CPApp,"mainMenu")); +objj_msgSend(_7,"setTitle:",_3); +objj_msgSend(_7,"setIconImage:",_4); +objj_msgSend(_7,"setIconImageAlphaValue:",_5); +objj_msgSend(_7,"setColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarBackgroundColor")); +objj_msgSend(_7,"setTextColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTextColor")); +objj_msgSend(_7,"setTitleColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTitleColor")); +objj_msgSend(_7,"setTextShadowColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTextShadowColor")); +objj_msgSend(_7,"setTitleShadowColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTitleShadowColor")); +objj_msgSend(_7,"setHighlightColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarHighlightColor")); +objj_msgSend(_7,"setHighlightTextColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarHighlightTextColor")); +objj_msgSend(_7,"setHighlightTextShadowColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarHighlightTextShadowColor")); +objj_msgSend(_7,"orderFront:",_a5); +}else{ +objj_msgSend(_7,"orderOut:",_a5); +} +objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"_bridgeResizeEvent:",nil); +} +}),new objj_method(sel_getUid("setMenuBarTitle:"),function(_a8,_a9,_aa){ +with(_a8){ +_3=_aa; +objj_msgSend(_7,"setTitle:",_3); +} +}),new objj_method(sel_getUid("menuBarTitle"),function(_ab,_ac){ +with(_ab){ +return _3; +} +}),new objj_method(sel_getUid("setMenuBarIconImage:"),function(_ad,_ae,_af){ +with(_ad){ +_CPMenuBarImage=_af; +objj_msgSend(_7,"setIconImage:",_af); +} +}),new objj_method(sel_getUid("menuBarIconImage"),function(_b0,_b1){ +with(_b0){ +return _CPMenuBarImage; +} +}),new objj_method(sel_getUid("setMenuBarAttributes:"),function(_b2,_b3,_b4){ +with(_b2){ +if(_6==_b4){ +return; +} +_6=objj_msgSend(_b4,"copy"); +var _b5=objj_msgSend(_b4,"objectForKey:","CPMenuBarTextColor"),_b6=objj_msgSend(_b4,"objectForKey:","CPMenuBarTitleColor"),_b7=objj_msgSend(_b4,"objectForKey:","CPMenuBarTextShadowColor"),_b8=objj_msgSend(_b4,"objectForKey:","CPMenuBarTitleShadowColor"),_b9=objj_msgSend(_b4,"objectForKey:","CPMenuBarHighlightColor"),_ba=objj_msgSend(_b4,"objectForKey:","CPMenuBarHighlightTextColor"),_bb=objj_msgSend(_b4,"objectForKey:","CPMenuBarHighlightTextShadowColor"); +if(!_b5&&_b6){ +objj_msgSend(_6,"setObject:forKey:",_b6,"CPMenuBarTextColor"); +}else{ +if(_b5&&!_b6){ +objj_msgSend(_6,"setObject:forKey:",_b5,"CPMenuBarTitleColor"); +}else{ +if(!_b5&&!_b6){ +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"colorWithRed:green:blue:alpha:",0.051,0.2,0.275,1),"CPMenuBarTextColor"); +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"colorWithRed:green:blue:alpha:",0.051,0.2,0.275,1),"CPMenuBarTitleColor"); +} +} +} +if(!_b7&&_b8){ +objj_msgSend(_6,"setObject:forKey:",_b8,"CPMenuBarTextShadowColor"); +}else{ +if(_b7&&!_b8){ +objj_msgSend(_6,"setObject:forKey:",_b7,"CPMenuBarTitleShadowColor"); +}else{ +if(!_b7&&!_b8){ +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"whiteColor"),"CPMenuBarTextShadowColor"); +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"whiteColor"),"CPMenuBarTitleShadowColor"); +} +} +} +if(!_b9){ +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",94/255,130/255,186/255,1),"CPMenuBarHighlightColor"); +} +if(!_ba){ +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"whiteColor"),"CPMenuBarHighlightTextColor"); +} +if(!_bb){ +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"blackColor"),"CPMenuBarHighlightTextShadowColor"); +} +if(_7){ +objj_msgSend(_7,"setColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarBackgroundColor")); +objj_msgSend(_7,"setTextColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTextColor")); +objj_msgSend(_7,"setTitleColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTitleColor")); +objj_msgSend(_7,"setTextShadowColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTextShadowColor")); +objj_msgSend(_7,"setTitleShadowColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTitleShadowColor")); +objj_msgSend(_7,"setHighlightColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarHighlightColor")); +objj_msgSend(_7,"setHighlightTextColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarHighlightTextColor")); +objj_msgSend(_7,"setHighlightTextShadowColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarHighlightTextShadowColor")); +} +} +}),new objj_method(sel_getUid("menuBarAttributes"),function(_bc,_bd){ +with(_bc){ +return _6; +} +}),new objj_method(sel_getUid("_setMenuBarIconImageAlphaValue:"),function(_be,_bf,_c0){ +with(_be){ +_5=_c0; +objj_msgSend(_7,"setIconImageAlphaValue:",_c0); +} +}),new objj_method(sel_getUid("menuBarHeight"),function(_c1,_c2){ +with(_c1){ +return _1; +} +}),new objj_method(sel_getUid("popUpContextMenu:withEvent:forView:"),function(_c3,_c4,_c5,_c6,_c7){ +with(_c3){ +objj_msgSend(_c3,"popUpContextMenu:withEvent:forView:withFont:",_c5,_c6,_c7,nil); +} +}),new objj_method(sel_getUid("popUpContextMenu:withEvent:forView:withFont:"),function(_c8,_c9,_ca,_cb,_cc,_cd){ +with(_c8){ +objj_msgSend(_c8,"_popUpContextMenu:withEvent:forView:withFont:forMenuBar:",_ca,_cb,_cc,_cd,NO); +} +}),new objj_method(sel_getUid("_popUpContextMenu:withEvent:forView:withFont:forMenuBar:"),function(_ce,_cf,_d0,_d1,_d2,_d3,_d4){ +with(_ce){ +var _d5=objj_msgSend(_d0,"delegate"); +if(objj_msgSend(_d5,"respondsToSelector:",sel_getUid("menuWillOpen:"))){ +objj_msgSend(_d5,"menuWillOpen:",_d0); +} +if(!_d3){ +_d3=objj_msgSend(CPFont,"systemFontOfSize:",12); +} +var _d6=objj_msgSend(_d2,"window"),_d7=objj_msgSend(_CPMenuWindow,"menuWindowWithMenu:font:",_d0,_d3); +objj_msgSend(_d7,"setDelegate:",_ce); +objj_msgSend(_d7,"setBackgroundStyle:",_d4?_CPMenuWindowMenuBarBackgroundStyle:_CPMenuWindowPopUpBackgroundStyle); +objj_msgSend(_d7,"setFrameOrigin:",objj_msgSend(objj_msgSend(_d1,"window"),"convertBaseToBridge:",objj_msgSend(_d1,"locationInWindow"))); +objj_msgSend(_d7,"orderFront:",_ce); +objj_msgSend(_d7,"beginTrackingWithEvent:sessionDelegate:didEndSelector:",_d1,_ce,sel_getUid("_menuWindowDidFinishTracking:highlightedItem:")); +} +}),new objj_method(sel_getUid("_menuWindowDidFinishTracking:highlightedItem:"),function(_d8,_d9,_da,_db){ +with(_d8){ +var _dc=objj_msgSend(_da,"menu"); +objj_msgSend(_CPMenuWindow,"poolMenuWindow:",_da); +var _dd=objj_msgSend(_dc,"delegate"); +if(objj_msgSend(_dd,"respondsToSelector:",sel_getUid("menuDidClose:"))){ +objj_msgSend(_dd,"menuDidClose:",_dc); +} +if(objj_msgSend(_db,"isEnabled")){ +objj_msgSend(CPApp,"sendAction:to:from:",objj_msgSend(_db,"action"),objj_msgSend(_db,"target"),_db); +} +} +})]); +var _de="CPMenuTitleKey",_df="CPMenuItemsKey",_e0="CPMenuShowsStateColumnKey"; +var _8=objj_getClass("CPMenu"); +if(!_8){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPMenu\"")); +} +var _9=_8.isa; +class_addMethods(_8,[new objj_method(sel_getUid("initWithCoder:"),function(_e1,_e2,_e3){ +with(_e1){ +_e1=objj_msgSendSuper({receiver:_e1,super_class:objj_getClass("CPObject")},"init"); +if(_e1){ +_title=objj_msgSend(_e3,"decodeObjectForKey:",_de); +_items=objj_msgSend(_e3,"decodeObjectForKey:",_df); +_showsStateColumn=!objj_msgSend(_e3,"containsValueForKey:",_e0)||objj_msgSend(_e3,"decodeBoolForKey:",_e0); +} +return _e1; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_e4,_e5,_e6){ +with(_e4){ +objj_msgSend(_e6,"encodeObject:forKey:",_title,_de); +objj_msgSend(_e6,"encodeObject:forKey:",_items,_df); +if(!_showsStateColumn){ +objj_msgSend(_e6,"encodeBool:forKey:",_showsStateColumn,_e0); +} +} +})]); +var _e7=[],_e8=5,_e9=[],_ea=-1,_eb=1,_ec=0; +_CPMenuWindowMenuBarBackgroundStyle=0; +_CPMenuWindowPopUpBackgroundStyle=1; +_CPMenuWindowAttachedMenuBackgroundStyle=2; +var _ed=500,_ee=5,_ef=1,_f0=1,_f1=5,_f2=16; +var _8=objj_allocateClassPair(CPWindow,"_CPMenuWindow"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_menuView"),new objj_ivar("_menuClipView"),new objj_ivar("_lastMouseOverMenuView"),new objj_ivar("_moreAboveView"),new objj_ivar("_moreBelowView"),new objj_ivar("_sessionDelegate"),new objj_ivar("_didEndSelector"),new objj_ivar("_startTime"),new objj_ivar("_scrollingState"),new objj_ivar("_lastScreenLocation"),new objj_ivar("_isShowingTopScrollIndicator"),new objj_ivar("_isShowingBottomScrollIndicator"),new objj_ivar("_trackingCanceled"),new objj_ivar("_unconstrainedFrame")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("init"),function(_f3,_f4){ +with(_f3){ +_f3=objj_msgSendSuper({receiver:_f3,super_class:objj_getClass("CPWindow")},"initWithContentRect:styleMask:",CGRectMakeZero(),CPBorderlessWindowMask); +if(_f3){ +objj_msgSend(_f3,"setLevel:",CPPopUpMenuWindowLevel); +objj_msgSend(_f3,"setHasShadow:",YES); +objj_msgSend(_f3,"setAcceptsMouseMovedEvents:",YES); +_unconstrainedFrame=CGRectMakeZero(); +var _f5=objj_msgSend(_f3,"contentView"); +_menuView=objj_msgSend(objj_msgSend(_CPMenuView,"alloc"),"initWithFrame:",CGRectMakeZero()); +_menuClipView=objj_msgSend(objj_msgSend(CPClipView,"alloc"),"initWithFrame:",CGRectMake(_ef,_ee,0,0)); +objj_msgSend(_menuClipView,"setDocumentView:",_menuView); +objj_msgSend(_f5,"addSubview:",_menuClipView); +_moreAboveView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_moreAboveView,"setImage:",_CPMenuWindowMoreAboveImage); +objj_msgSend(_moreAboveView,"setFrameSize:",objj_msgSend(_CPMenuWindowMoreAboveImage,"size")); +objj_msgSend(_f5,"addSubview:",_moreAboveView); +_moreBelowView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_moreBelowView,"setImage:",_CPMenuWindowMoreBelowImage); +objj_msgSend(_moreBelowView,"setFrameSize:",objj_msgSend(_CPMenuWindowMoreBelowImage,"size")); +objj_msgSend(_f5,"addSubview:",_moreBelowView); +} +return _f3; +} +}),new objj_method(sel_getUid("overlapOffsetWidth"),function(_f6,_f7){ +with(_f6){ +return _ef; +} +}),new objj_method(sel_getUid("setFont:"),function(_f8,_f9,_fa){ +with(_f8){ +objj_msgSend(_menuView,"setFont:",_fa); +} +}),new objj_method(sel_getUid("setBackgroundStyle:"),function(_fb,_fc,_fd){ +with(_fb){ +var _fe=_e9[_fd]; +if(!_fe){ +var _ff=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_fb,"class")); +if(_fd==_CPMenuWindowPopUpBackgroundStyle){ +_fe=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindowRounded0.png"),CGSizeMake(4,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow1.png"),CGSizeMake(1,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindowRounded2.png"),CGSizeMake(4,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow3.png"),CGSizeMake(4,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow4.png"),CGSizeMake(1,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow5.png"),CGSizeMake(4,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindowRounded6.png"),CGSizeMake(4,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow7.png"),CGSizeMake(1,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindowRounded8.png"),CGSizeMake(4,4))])); +}else{ +if(_fd==_CPMenuWindowMenuBarBackgroundStyle){ +_fe=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow3.png"),CGSizeMake(4,0)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow4.png"),CGSizeMake(1,0)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow5.png"),CGSizeMake(4,0)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow3.png"),CGSizeMake(4,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow4.png"),CGSizeMake(1,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow5.png"),CGSizeMake(4,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindowRounded6.png"),CGSizeMake(4,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow7.png"),CGSizeMake(1,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindowRounded8.png"),CGSizeMake(4,4))])); +} +} +_e9[_fd]=_fe; +} +objj_msgSend(_fb,"setBackgroundColor:",_fe); +} +}),new objj_method(sel_getUid("setMenu:"),function(self,_cmd,_102){ +with(self){ +objj_msgSend(_102,"_setMenuWindow:",self); +objj_msgSend(_menuView,"setMenu:",_102); +var _103=objj_msgSend(_menuView,"frame").size; +objj_msgSend(self,"setFrameSize:",CGSizeMake(_ef+_103.width+_f0,_ee+_103.height+_f1)); +objj_msgSend(_menuView,"scrollPoint:",CGPointMake(0,0)); +objj_msgSend(_menuClipView,"setFrame:",CGRectMake(_ef,_ee,_103.width,_103.height)); +} +}),new objj_method(sel_getUid("setMinWidth:"),function(self,_cmd,_106){ +with(self){ +var size=objj_msgSend(self,"frame").size; +objj_msgSend(self,"setFrameSize:",CGSizeMake(MAX(size.width,_106),size.height)); +} +}),new objj_method(sel_getUid("rectForItemAtIndex:"),function(self,_cmd,_10a){ +with(self){ +return objj_msgSend(_menuView,"convertRect:toView:",objj_msgSend(_menuView,"rectForItemAtIndex:",_10a),nil); +} +}),new objj_method(sel_getUid("orderFront:"),function(self,_cmd,_10d){ +with(self){ +objj_msgSend(self,"constrainToScreen"); +objj_msgSendSuper({receiver:self,super_class:objj_getClass("CPWindow")},"orderFront:",_10d); +} +}),new objj_method(sel_getUid("constrainToScreen"),function(self,_cmd){ +with(self){ +_unconstrainedFrame=CGRectMakeCopy(objj_msgSend(self,"frame")); +var _110=CGRectInset(objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"contentBounds"),5,5),_111=CGRectIntersection(_unconstrainedFrame,_110),_112=objj_msgSend(self,"convertBaseToBridge:",CGPointMake(_ef,_ee)); +_111.origin.x=CGRectGetMinX(_unconstrainedFrame); +_111.size.width=CGRectGetWidth(_unconstrainedFrame); +if(CGRectGetWidth(_111)>CGRectGetWidth(_110)){ +_111.size.width=CGRectGetWidth(_110); +} +if(CGRectGetMaxX(_111)>CGRectGetMaxX(_110)){ +_111.origin.x-=CGRectGetMaxX(_111)-CGRectGetMaxX(_110); +} +if(CGRectGetMinX(_111)CGRectGetMaxY(_111)-_f1; +if(_117){ +_113+=_f2; +var _119=objj_msgSend(_moreAboveView,"frame"); +objj_msgSend(_moreAboveView,"setFrameOrigin:",CGPointMake((CGRectGetWidth(_116)-CGRectGetWidth(_119))/2,(_ee+_f2-CGRectGetHeight(_119))/2)); +} +objj_msgSend(_moreAboveView,"setHidden:",!_117); +if(_118){ +_114+=_f2; +objj_msgSend(_moreBelowView,"setFrameOrigin:",CGPointMake((CGRectGetWidth(_116)-CGRectGetWidth(objj_msgSend(_moreBelowView,"frame")))/2,CGRectGetHeight(_116)-_f2-_f1)); +} +objj_msgSend(_moreBelowView,"setHidden:",!_118); +var _11a=CGRectMake(_ef,_113,CGRectGetWidth(_111)-_ef-_f0,CGRectGetHeight(_111)-_113-_114); +objj_msgSend(_menuClipView,"setFrame:",_11a); +objj_msgSend(_menuView,"setFrameSize:",CGSizeMake(CGRectGetWidth(_11a),CGRectGetHeight(objj_msgSend(_menuView,"frame")))); +objj_msgSend(_menuView,"scrollPoint:",CGPointMake(0,objj_msgSend(self,"convertBaseToBridge:",_11a.origin).y-_112.y)); +} +}),new objj_method(sel_getUid("cancelTracking"),function(self,_cmd){ +with(self){ +_trackingCanceled=YES; +} +}),new objj_method(sel_getUid("beginTrackingWithEvent:sessionDelegate:didEndSelector:"),function(self,_cmd,_11f,_120,_121){ +with(self){ +_startTime=objj_msgSend(_11f,"timestamp"); +_scrollingState=_ec; +_trackingCanceled=NO; +_sessionDelegate=_120; +_didEndSelector=_121; +objj_msgSend(self,"trackEvent:",_11f); +} +}),new objj_method(sel_getUid("trackEvent:"),function(self,_cmd,_124){ +with(self){ +var type=objj_msgSend(_124,"type"),_126=objj_msgSend(_124,"window"),_127=_126?objj_msgSend(_126,"convertBaseToBridge:",objj_msgSend(_124,"locationInWindow")):objj_msgSend(_124,"locationInWindow"); +if(type==CPPeriodic){ +var _128=CGRectInset(objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"contentBounds"),5,5); +if(_scrollingState==_ea){ +if(CGRectGetMinY(_unconstrainedFrame)CGRectGetHeight(_128)){ +_unconstrainedFrame.origin.y-=10; +} +} +} +objj_msgSend(self,"setFrame:",_unconstrainedFrame); +objj_msgSend(self,"constrainToScreen"); +_127=_lastScreenLocation; +} +_lastScreenLocation=_127; +var menu=objj_msgSend(_menuView,"menu"),_12a=objj_msgSend(self,"convertBridgeToBase:",_127),_12b=objj_msgSend(_menuView,"itemIndexAtPoint:",objj_msgSend(_menuView,"convertPoint:fromView:",_12a,nil)),_12c=objj_msgSend(objj_msgSend(menu,"itemAtIndex:",_12b),"view"); +if(_12c){ +if(!_lastMouseOverMenuView){ +objj_msgSend(menu,"_highlightItemAtIndex:",CPNotFound); +} +if(_lastMouseOverMenuView!=_12c){ +objj_msgSend(_12c,"mouseExited:",_124); +objj_msgSend(_lastMouseOverMenuView,"mouseEntered:",_124); +_lastMouseOverMenuView=_12c; +} +objj_msgSend(self,"sendEvent:",objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",type,_12a,objj_msgSend(_124,"modifierFlags"),objj_msgSend(_124,"timestamp"),objj_msgSend(self,"windowNumber"),nil,0,objj_msgSend(_124,"clickCount"),objj_msgSend(_124,"pressure"))); +}else{ +if(_lastMouseOverMenuView){ +objj_msgSend(_lastMouseOverMenuView,"mouseExited:",_124); +_lastMouseOverMenuView=nil; +} +objj_msgSend(menu,"_highlightItemAtIndex:",objj_msgSend(_menuView,"itemIndexAtPoint:",objj_msgSend(_menuView,"convertPoint:fromView:",objj_msgSend(self,"convertBridgeToBase:",_127),nil))); +if(type==CPMouseMoved||type==CPLeftMouseDragged||type==CPLeftMouseDown){ +var _12d=objj_msgSend(self,"frame"),_12e=_scrollingState; +_scrollingState=_ec; +if(_127.yCGRectGetMaxY(_12d)-_f1-_f2){ +_scrollingState=_eb; +} +} +if(_scrollingState!=_12e){ +if(_scrollingState==_ec){ +objj_msgSend(CPEvent,"stopPeriodicEvents"); +}else{ +if(_12e==_ec){ +objj_msgSend(CPEvent,"startPeriodicEventsAfterDelay:withPeriod:",0,0.04); +} +} +} +}else{ +if(type==CPLeftMouseUp&&(objj_msgSend(_124,"timestamp")-_startTime>_ed)){ +if(_scrollingState!=_ec){ +objj_msgSend(CPEvent,"stopPeriodicEvents"); +} +objj_msgSend(self,"cancelTracking"); +} +} +} +if(_trackingCanceled){ +objj_msgSend(CPEvent,"stopPeriodicEvents"); +var _12f=objj_msgSend(objj_msgSend(_menuView,"menu"),"highlightedItem"); +objj_msgSend(menu,"_highlightItemAtIndex:",CPNotFound); +objj_msgSend(_menuView,"setMenu:",nil); +objj_msgSend(self,"orderOut:",self); +if(_sessionDelegate&&_didEndSelector){ +objj_msgSend(_sessionDelegate,_didEndSelector,self,_12f); +} +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPMenuDidEndTrackingNotification,menu); +var _130=objj_msgSend(menu,"delegate"); +if(objj_msgSend(_130,"respondsToSelector:",sel_getUid("menuDidClose:"))){ +objj_msgSend(_130,"menuDidClose:",menu); +} +return; +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",self,sel_getUid("trackEvent:"),CPPeriodicMask|CPMouseMovedMask|CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +})]); +class_addMethods(_9,[new objj_method(sel_getUid("menuWindowWithMenu:font:"),function(self,_cmd,_133,_134){ +with(self){ +var _135=nil; +if(_e7.length){ +_135=_e7.pop(); +}else{ +_135=objj_msgSend(objj_msgSend(_CPMenuWindow,"alloc"),"init"); +} +objj_msgSend(_135,"setFont:",_134); +objj_msgSend(_135,"setMenu:",_133); +return _135; +} +}),new objj_method(sel_getUid("poolMenuWindow:"),function(self,_cmd,_138){ +with(self){ +if(!_138||_e7.length>=_e8){ +return; +} +_e7.push(_138); +} +}),new objj_method(sel_getUid("initialize"),function(self,_cmd){ +with(self){ +if(self!=objj_msgSend(_CPMenuWindow,"class")){ +return; +} +var _13b=objj_msgSend(CPBundle,"bundleForClass:",self); +_CPMenuWindowMoreAboveImage=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_13b,"pathForResource:","_CPMenuWindow/_CPMenuWindowMoreAbove.png"),CGSizeMake(38,18)); +_CPMenuWindowMoreBelowImage=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_13b,"pathForResource:","_CPMenuWindow/_CPMenuWindowMoreBelow.png"),CGSizeMake(38,18)); +} +})]); +var _8=objj_allocateClassPair(CPView,"_CPMenuView"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_menuItemViews"),new objj_ivar("_visibleMenuItemInfos"),new objj_ivar("_font")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("setFont:"),function(self,_cmd,_13e){ +with(self){ +_font=_13e; +} +}),new objj_method(sel_getUid("rectForItemAtIndex:"),function(self,_cmd,_141){ +with(self){ +return objj_msgSend(_menuItemViews[_141==CPNotFound?0:_141],"frame"); +} +}),new objj_method(sel_getUid("itemIndexAtPoint:"),function(self,_cmd,_144){ +with(self){ +var x=_144.x,_146=objj_msgSend(self,"bounds"); +if(xCGRectGetMaxX(_146)){ +return CPNotFound; +} +var y=_144.y,low=0,high=_visibleMenuItemInfos.length-1; +while(low<=high){ +var _14a=FLOOR(low+(high-low)/2),info=_visibleMenuItemInfos[_14a]; +frame=objj_msgSend(info.view,"frame"); +if(yCGRectGetMaxY(frame)){ +low=_14a+1; +}else{ +return info.index; +} +} +} +return CPNotFound; +} +}),new objj_method(sel_getUid("setMenu:"),function(self,_cmd,_14e){ +with(self){ +objj_msgSendSuper({receiver:self,super_class:objj_getClass("CPView")},"setMenu:",_14e); +objj_msgSend(_menuItemViews,"makeObjectsPerformSelector:",sel_getUid("removeFromSuperview")); +_menuItemViews=[]; +_visibleMenuItemInfos=[]; +var menu=objj_msgSend(self,"menu"); +if(!menu){ +return; +} +var _150=objj_msgSend(menu,"itemArray"),_151=0,_152=objj_msgSend(_150,"count"),_153=0,y=0,_155=objj_msgSend(menu,"showsStateColumn"); +for(;_151<_152;++_151){ +var item=_150[_151],view=objj_msgSend(item,"_menuItemView"); +_menuItemViews.push(view); +if(objj_msgSend(item,"isHidden")){ +continue; +} +_visibleMenuItemInfos.push({view:view,index:_151}); +objj_msgSend(view,"setFont:",_font); +objj_msgSend(view,"setShowsStateColumn:",_155); +objj_msgSend(view,"synchronizeWithMenuItem"); +objj_msgSend(view,"setFrameOrigin:",CGPointMake(0,y)); +objj_msgSend(self,"addSubview:",view); +var size=objj_msgSend(view,"minSize"),_159=size.width; +if(_153<_159){ +_153=_159; +} +y+=size.height; +} +for(_151=0;_151<_152;++_151){ +var view=_menuItemViews[_151]; +objj_msgSend(view,"setFrameSize:",CGSizeMake(_153,CGRectGetHeight(objj_msgSend(view,"frame")))); +} +objj_msgSend(self,"setAutoresizesSubviews:",NO); +objj_msgSend(self,"setFrameSize:",CGSizeMake(_153,y)); +objj_msgSend(self,"setAutoresizesSubviews:",YES); +} +})]); +var _1=29,_15a=10,_15b=10,_15c=10; +var _15d=nil,_15e=nil; +var _8=objj_allocateClassPair(CPPanel,"_CPMenuBarWindow"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_menu"),new objj_ivar("_highlightView"),new objj_ivar("_menuItemViews"),new objj_ivar("_trackingMenuItem"),new objj_ivar("_iconImageView"),new objj_ivar("_titleField"),new objj_ivar("_textColor"),new objj_ivar("_titleColor"),new objj_ivar("_textShadowColor"),new objj_ivar("_titleShadowColor"),new objj_ivar("_highlightColor"),new objj_ivar("_highlightTextColor"),new objj_ivar("_highlightTextShadowColor")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("init"),function(self,_cmd){ +with(self){ +var _161=CGRectGetWidth(objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"contentBounds")); +self=objj_msgSendSuper({receiver:self,super_class:objj_getClass("CPPanel")},"initWithContentRect:styleMask:",CGRectMake(0,0,_161,_1),CPBorderlessWindowMask); +if(self){ +objj_msgSend(self,"setLevel:",-1); +objj_msgSend(self,"setAutoresizingMask:",CPWindowWidthSizable); +var _162=objj_msgSend(self,"contentView"); +objj_msgSend(_162,"setAutoresizesSubviews:",NO); +objj_msgSend(self,"setBecomesKeyOnlyIfNeeded:",YES); +_iconImageView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CGRectMake(0,0,16,16)); +objj_msgSend(_162,"addSubview:",_iconImageView); +_titleField=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_titleField,"setFont:",objj_msgSend(CPFont,"boldSystemFontOfSize:",12)); +objj_msgSend(_titleField,"setAlignment:",CPCenterTextAlignment); +objj_msgSend(_titleField,"setTextShadowOffset:",CGSizeMake(0,1)); +objj_msgSend(_162,"addSubview:",_titleField); +} +return self; +} +}),new objj_method(sel_getUid("setTitle:"),function(self,_cmd,_165){ +with(self){ +var _166=objj_msgSend(objj_msgSend(CPBundle,"mainBundle"),"objectForInfoDictionaryKey:","CPBundleName"); +if(!objj_msgSend(_166,"length")){ +document.title=_165; +}else{ +if(objj_msgSend(_165,"length")){ +document.title=_165+" - "+_166; +}else{ +document.title=_166; +} +} +objj_msgSend(_titleField,"setStringValue:",_165); +objj_msgSend(_titleField,"sizeToFit"); +objj_msgSend(self,"tile"); +} +}),new objj_method(sel_getUid("setIconImage:"),function(self,_cmd,_169){ +with(self){ +objj_msgSend(_iconImageView,"setImage:",_169); +objj_msgSend(_iconImageView,"setHidden:",_169==nil); +objj_msgSend(self,"tile"); +} +}),new objj_method(sel_getUid("setIconImageAlphaValue:"),function(self,_cmd,_16c){ +with(self){ +objj_msgSend(_iconImageView,"setAlphaValue:",_16c); +} +}),new objj_method(sel_getUid("setColor:"),function(self,_cmd,_16f){ +with(self){ +if(!_16f){ +if(!_15d){ +_15d=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_CPMenuBarWindow,"class")),"pathForResource:","_CPMenuBarWindow/_CPMenuBarWindowBackground.png"),CGSizeMake(1,18))); +} +objj_msgSend(objj_msgSend(self,"contentView"),"setBackgroundColor:",_15d); +}else{ +objj_msgSend(objj_msgSend(self,"contentView"),"setBackgroundColor:",_16f); +} +} +}),new objj_method(sel_getUid("setTextColor:"),function(self,_cmd,_172){ +with(self){ +if(_textColor==_172){ +return; +} +_textColor=_172; +objj_msgSend(_menuItemViews,"makeObjectsPerformSelector:withObject:",sel_getUid("setTextColor:"),_textColor); +} +}),new objj_method(sel_getUid("setTitleColor:"),function(self,_cmd,_175){ +with(self){ +if(_titleColor==_175){ +return; +} +_titleColor=_175; +objj_msgSend(_titleField,"setTextColor:",_175?_175:objj_msgSend(CPColor,"blackColor")); +} +}),new objj_method(sel_getUid("setTextShadowColor:"),function(self,_cmd,_178){ +with(self){ +if(_textShadowColor==_178){ +return; +} +_textShadowColor=_178; +objj_msgSend(_menuItemViews,"makeObjectsPerformSelector:withObject:",sel_getUid("setTextShadowColor:"),_textShadowColor); +} +}),new objj_method(sel_getUid("setTitleShadowColor:"),function(self,_cmd,_17b){ +with(self){ +if(_titleShadowColor==_17b){ +return; +} +_titleShadowColor=_17b; +objj_msgSend(_titleField,"setTextShadowColor:",_17b?_17b:objj_msgSend(CPColor,"whiteColor")); +} +}),new objj_method(sel_getUid("setHighlightColor:"),function(self,_cmd,_17e){ +with(self){ +if(_highlightColor==_17e){ +return; +} +_highlightColor=_17e; +} +}),new objj_method(sel_getUid("setHighlightTextColor:"),function(self,_cmd,_181){ +with(self){ +if(_highlightTextColor==_181){ +return; +} +_highlightTextColor=_181; +objj_msgSend(_menuItemViews,"makeObjectsPerformSelector:withObject:",sel_getUid("setActivateColor:"),_highlightTextColor); +} +}),new objj_method(sel_getUid("setHighlightTextShadowColor:"),function(self,_cmd,_184){ +with(self){ +if(_highlightTextShadowColor==_184){ +return; +} +_highlightTextShadowColor=_184; +objj_msgSend(_menuItemViews,"makeObjectsPerformSelector:withObject:",sel_getUid("setActivateShadowColor:"),_highlightTextShadowColor); +} +}),new objj_method(sel_getUid("setMenu:"),function(self,_cmd,_187){ +with(self){ +if(_menu==_187){ +return; +} +var _188=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(_menu){ +objj_msgSend(_188,"removeObserver:name:object:",self,CPMenuDidAddItemNotification,_menu); +objj_msgSend(_188,"removeObserver:name:object:",self,CPMenuDidChangeItemNotification,_menu); +objj_msgSend(_188,"removeObserver:name:object:",self,CPMenuDidRemoveItemNotification,_menu); +var _189=objj_msgSend(_menu,"itemArray"),_18a=_189.length; +while(_18a--){ +objj_msgSend(objj_msgSend(_189[_18a],"_menuItemView"),"removeFromSuperview"); +} +} +_menu=_187; +if(_menu){ +objj_msgSend(_188,"addObserver:selector:name:object:",self,sel_getUid("menuDidAddItem:"),CPMenuDidAddItemNotification,_menu); +objj_msgSend(_188,"addObserver:selector:name:object:",self,sel_getUid("menuDidChangeItem:"),CPMenuDidChangeItemNotification,_menu); +objj_msgSend(_188,"addObserver:selector:name:object:",self,sel_getUid("menuDidRemoveItem:"),CPMenuDidRemoveItemNotification,_menu); +} +_menuItemViews=[]; +var _18b=objj_msgSend(self,"contentView"),_189=objj_msgSend(_menu,"itemArray"),_18a=_189.length; +for(index=0;index<_18a;++index){ +var item=_189[index],_18d=objj_msgSend(item,"_menuItemView"); +_menuItemViews.push(_18d); +objj_msgSend(_18d,"setShowsStateColumn:",NO); +objj_msgSend(_18d,"setBelongsToMenuBar:",YES); +objj_msgSend(_18d,"setFont:",_15e); +objj_msgSend(_18d,"setTextColor:",_textColor); +objj_msgSend(_18d,"setHidden:",objj_msgSend(item,"isHidden")); +objj_msgSend(_18d,"synchronizeWithMenuItem"); +objj_msgSend(_18b,"addSubview:",_18d); +} +objj_msgSend(self,"tile"); +} +}),new objj_method(sel_getUid("menuDidChangeItem:"),function(self,_cmd,_190){ +with(self){ +var _191=objj_msgSend(_menu,"itemAtIndex:",objj_msgSend(objj_msgSend(_190,"userInfo"),"objectForKey:","CPMenuItemIndex")),_192=objj_msgSend(_191,"_menuItemView"); +objj_msgSend(_192,"setHidden:",objj_msgSend(_191,"isHidden")); +objj_msgSend(_192,"synchronizeWithMenuItem"); +objj_msgSend(self,"tile"); +} +}),new objj_method(sel_getUid("menuDidAddItem:"),function(self,_cmd,_195){ +with(self){ +var _196=objj_msgSend(objj_msgSend(_195,"userInfo"),"objectForKey:","CPMenuItemIndex"),_197=objj_msgSend(_menu,"itemAtIndex:",_196),_198=objj_msgSend(_197,"_menuItemView"); +objj_msgSend(_menuItemViews,"insertObject:atIndex:",_198,_196); +objj_msgSend(_198,"setShowsStateColumn:",NO); +objj_msgSend(_198,"setBelongsToMenuBar:",YES); +objj_msgSend(_198,"setFont:",_15e); +objj_msgSend(_198,"setTextColor:",_textColor); +objj_msgSend(_198,"setHidden:",objj_msgSend(_197,"isHidden")); +objj_msgSend(_198,"synchronizeWithMenuItem"); +objj_msgSend(objj_msgSend(self,"contentView"),"addSubview:",_198); +objj_msgSend(self,"tile"); +} +}),new objj_method(sel_getUid("menuDidRemoveItem:"),function(self,_cmd,_19b){ +with(self){ +var _19c=objj_msgSend(objj_msgSend(_19b,"userInfo"),"objectForKey:","CPMenuItemIndex"),_19d=objj_msgSend(_menuItemViews,"objectAtIndex:",_19c); +objj_msgSend(_menuItemViews,"removeObjectAtIndex:",_19c); +objj_msgSend(_19d,"removeFromSuperview"); +objj_msgSend(self,"tile"); +} +}),new objj_method(sel_getUid("frameForMenuItem:"),function(self,_cmd,_1a0){ +with(self){ +var _1a1=objj_msgSend(objj_msgSend(_1a0,"_menuItemView"),"frame"); +_1a1.origin.x-=5; +_1a1.origin.y=0; +_1a1.size.width+=10; +_1a1.size.height=_1; +return _1a1; +} +}),new objj_method(sel_getUid("menuItemAtPoint:"),function(self,_cmd,_1a4){ +with(self){ +var _1a5=objj_msgSend(_menu,"itemArray"),_1a6=_1a5.length; +while(_1a6--){ +var item=_1a5[_1a6]; +if(objj_msgSend(item,"isHidden")||objj_msgSend(item,"isSeparatorItem")){ +continue; +} +if(CGRectContainsPoint(objj_msgSend(self,"frameForMenuItem:",item),_1a4)){ +return item; +} +} +return nil; +} +}),new objj_method(sel_getUid("mouseDown:"),function(self,_cmd,_1aa){ +with(self){ +_trackingMenuItem=objj_msgSend(self,"menuItemAtPoint:",objj_msgSend(_1aa,"locationInWindow")); +if(!objj_msgSend(_trackingMenuItem,"isEnabled")){ +return; +} +if(objj_msgSend(objj_msgSend(_trackingMenuItem,"_menuItemView"),"eventOnSubmenu:",_1aa)){ +return objj_msgSend(self,"showMenu:",_1aa); +} +if(objj_msgSend(_trackingMenuItem,"isEnabled")){ +objj_msgSend(self,"trackEvent:",_1aa); +} +} +}),new objj_method(sel_getUid("trackEvent:"),function(self,_cmd,_1ad){ +with(self){ +var type=objj_msgSend(_1ad,"type"); +if(type===CPPeriodic){ +return objj_msgSend(self,"showMenu:",_1ad); +} +var _1af=objj_msgSend(self,"frameForMenuItem:",_trackingMenuItem),_1b0=objj_msgSend(_trackingMenuItem,"_menuItemView"),_1b1=CGRectContainsPoint(_1af,objj_msgSend(_1ad,"locationInWindow")); +if(type==CPLeftMouseDown){ +if(objj_msgSend(_trackingMenuItem,"submenu")!=nil){ +var _1b2=objj_msgSend(_trackingMenuItem,"action"); +if(!_1b2||_1b2===sel_getUid("submenuAction:")){ +return objj_msgSend(self,"showMenu:",_1ad); +} +objj_msgSend(CPEvent,"startPeriodicEventsAfterDelay:withPeriod:",0,0.5); +} +objj_msgSend(_1b0,"highlight:",_1b1); +}else{ +if(type==CPLeftMouseDragged){ +if(!_1b1&&objj_msgSend(_trackingMenuItem,"submenu")){ +return objj_msgSend(self,"showMenu:",_1ad); +} +objj_msgSend(_1b0,"highlight:",_1b1); +}else{ +objj_msgSend(CPEvent,"stopPeriodicEvents"); +objj_msgSend(_1b0,"highlight:",NO); +if(_1b1){ +objj_msgSend(CPApp,"sendAction:to:from:",objj_msgSend(_trackingMenuItem,"action"),objj_msgSend(_trackingMenuItem,"target"),_trackingMenuItem); +} +return; +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",self,sel_getUid("trackEvent:"),CPPeriodicMask|CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +}),new objj_method(sel_getUid("showMenu:"),function(self,_cmd,_1b5){ +with(self){ +objj_msgSend(CPEvent,"stopPeriodicEvents"); +var _1b6=objj_msgSend(self,"frameForMenuItem:",_trackingMenuItem),_1b7=objj_msgSend(_trackingMenuItem,"_menuItemView"); +if(!_highlightView){ +_highlightView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",_1b6); +objj_msgSend(_highlightView,"setBackgroundColor:",_highlightColor?_highlightColor:objj_msgSend(CPColor,"colorWithRed:green:blue:alpha:",95/255,131/255,185/255,1)); +}else{ +objj_msgSend(_highlightView,"setFrame:",_1b6); +} +objj_msgSend(objj_msgSend(self,"contentView"),"addSubview:positioned:relativeTo:",_highlightView,CPWindowBelow,_1b7); +objj_msgSend(_1b7,"activate:",YES); +var _1b8=objj_msgSend(_trackingMenuItem,"submenu"); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"addObserver:selector:name:object:",self,sel_getUid("menuDidEndTracking:"),CPMenuDidEndTrackingNotification,_1b8); +objj_msgSend(CPMenu,"_popUpContextMenu:withEvent:forView:withFont:forMenuBar:",_1b8,objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",CPLeftMouseDown,CGPointMake(CGRectGetMinX(_1b6),CGRectGetMaxY(_1b6)),objj_msgSend(_1b5,"modifierFlags"),objj_msgSend(_1b5,"timestamp"),objj_msgSend(self,"windowNumber"),nil,0,objj_msgSend(_1b5,"clickCount"),objj_msgSend(_1b5,"pressure")),objj_msgSend(self,"contentView"),nil,YES); +} +}),new objj_method(sel_getUid("menuDidEndTracking:"),function(self,_cmd,_1bb){ +with(self){ +objj_msgSend(_highlightView,"removeFromSuperview"); +objj_msgSend(objj_msgSend(_trackingMenuItem,"_menuItemView"),"activate:",NO); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"removeObserver:name:object:",self,CPMenuDidEndTrackingNotification,objj_msgSend(_1bb,"object")); +} +}),new objj_method(sel_getUid("tile"),function(self,_cmd){ +with(self){ +var _1be=objj_msgSend(_menu,"itemArray"),_1bf=0,_1c0=_1be.length,x=_15b,y=0,_1c3=YES; +for(;_1bf<_1c0;++_1bf){ +var item=_1be[_1bf]; +if(objj_msgSend(item,"isSeparatorItem")){ +x=CGRectGetWidth(objj_msgSend(self,"frame"))-_15c; +_1c3=NO; +continue; +} +if(objj_msgSend(item,"isHidden")){ +continue; +} +var _1c5=objj_msgSend(item,"_menuItemView"),_1c6=objj_msgSend(_1c5,"frame"); +if(_1c3){ +objj_msgSend(_1c5,"setFrameOrigin:",CGPointMake(x,(_1-1-CGRectGetHeight(_1c6))/2)); +x+=CGRectGetWidth(objj_msgSend(_1c5,"frame"))+_15a; +}else{ +objj_msgSend(_1c5,"setFrameOrigin:",CGPointMake(x-CGRectGetWidth(_1c6),(_1-1-CGRectGetHeight(_1c6))/2)); +x=CGRectGetMinX(objj_msgSend(_1c5,"frame"))-_15a; +} +} +var _1c7=objj_msgSend(objj_msgSend(self,"contentView"),"bounds"),_1c8=objj_msgSend(_titleField,"frame"); +if(objj_msgSend(_iconImageView,"isHidden")){ +objj_msgSend(_titleField,"setFrameOrigin:",CGPointMake((CGRectGetWidth(_1c7)-CGRectGetWidth(_1c8))/2,(CGRectGetHeight(_1c7)-CGRectGetHeight(_1c8))/2)); +}else{ +var _1c9=objj_msgSend(_iconImageView,"frame"),_1ca=CGRectGetWidth(_1c9),_1cb=_1ca+CGRectGetWidth(_1c8); +objj_msgSend(_iconImageView,"setFrameOrigin:",CGPointMake((CGRectGetWidth(_1c7)-_1cb)/2,(CGRectGetHeight(_1c7)-CGRectGetHeight(_1c9))/2)); +objj_msgSend(_titleField,"setFrameOrigin:",CGPointMake((CGRectGetWidth(_1c7)-_1cb)/2+_1ca,(CGRectGetHeight(_1c7)-CGRectGetHeight(_1c8))/2)); +} +} +}),new objj_method(sel_getUid("setFrameSize:"),function(self,_cmd,_1ce){ +with(self){ +objj_msgSendSuper({receiver:self,super_class:objj_getClass("CPPanel")},"setFrameSize:",_1ce); +objj_msgSend(self,"tile"); +} +})]); +class_addMethods(_9,[new objj_method(sel_getUid("initialize"),function(self,_cmd){ +with(self){ +if(self!=objj_msgSend(_CPMenuBarWindow,"class")){ +return; +} +var _1d1=objj_msgSend(CPBundle,"bundleForClass:",self); +_15e=objj_msgSend(CPFont,"systemFontOfSize:",11); +} +})]); +p;12;CPMenuItem.jI;20;Foundation/CPCoder.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jI;16;AppKit/CPImage.jI;15;AppKit/CPMenu.jI;15;AppKit/CPView.jc;23006; +var _1=objj_allocateClassPair(CPObject,"CPMenuItem"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_isSeparator"),new objj_ivar("_title"),new objj_ivar("_font"),new objj_ivar("_target"),new objj_ivar("_action"),new objj_ivar("_isEnabled"),new objj_ivar("_isHidden"),new objj_ivar("_tag"),new objj_ivar("_state"),new objj_ivar("_image"),new objj_ivar("_alternateImage"),new objj_ivar("_onStateImage"),new objj_ivar("_offStateImage"),new objj_ivar("_mixedStateImage"),new objj_ivar("_submenu"),new objj_ivar("_menu"),new objj_ivar("_keyEquivalent"),new objj_ivar("_keyEquivalentModifierMask"),new objj_ivar("_mnemonicLocation"),new objj_ivar("_isAlternate"),new objj_ivar("_indentationLevel"),new objj_ivar("_toolTip"),new objj_ivar("_representedObject"),new objj_ivar("_view"),new objj_ivar("_menuItemView")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithTitle:action:keyEquivalent:"),function(_3,_4,_5,_6,_7){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_isSeparator=NO; +_title=_5; +_action=_6; +_isEnabled=YES; +_tag=0; +_state=CPOffState; +_keyEquivalent=_7||""; +_keyEquivalentModifierMask=CPPlatformActionKeyMask; +_mnemonicLocation=CPNotFound; +} +return _3; +} +}),new objj_method(sel_getUid("setEnabled:"),function(_8,_9,_a){ +with(_8){ +if(objj_msgSend(_menu,"autoenablesItems")){ +return; +} +_isEnabled=_a; +objj_msgSend(_menuItemView,"setDirty"); +objj_msgSend(_menu,"itemChanged:",_8); +} +}),new objj_method(sel_getUid("isEnabled"),function(_b,_c){ +with(_b){ +return _isEnabled; +} +}),new objj_method(sel_getUid("setHidden:"),function(_d,_e,_f){ +with(_d){ +if(_isHidden==_f){ +return; +} +_isHidden=_f; +objj_msgSend(_menu,"itemChanged:",_d); +} +}),new objj_method(sel_getUid("isHidden"),function(_10,_11){ +with(_10){ +return _isHidden; +} +}),new objj_method(sel_getUid("isHiddenOrHasHiddenAncestor"),function(_12,_13){ +with(_12){ +if(_isHidden){ +return YES; +} +var _14=objj_msgSend(_menu,"supermenu"); +if(objj_msgSend(objj_msgSend(_14,"itemAtIndex:",objj_msgSend(_14,"indexOfItemWithSubmenu:",_menu)),"isHiddenOrHasHiddenAncestor")){ +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("setTarget:"),function(_15,_16,_17){ +with(_15){ +_target=_17; +} +}),new objj_method(sel_getUid("target"),function(_18,_19){ +with(_18){ +return _target; +} +}),new objj_method(sel_getUid("setAction:"),function(_1a,_1b,_1c){ +with(_1a){ +_action=_1c; +} +}),new objj_method(sel_getUid("action"),function(_1d,_1e){ +with(_1d){ +return _action; +} +}),new objj_method(sel_getUid("setTitle:"),function(_1f,_20,_21){ +with(_1f){ +_mnemonicLocation=CPNotFound; +if(_title==_21){ +return; +} +_title=_21; +objj_msgSend(_menuItemView,"setDirty"); +objj_msgSend(_menu,"itemChanged:",_1f); +} +}),new objj_method(sel_getUid("title"),function(_22,_23){ +with(_22){ +return _title; +} +}),new objj_method(sel_getUid("setTextColor:"),function(_24,_25,_26){ +with(_24){ +} +}),new objj_method(sel_getUid("setFont:"),function(_27,_28,_29){ +with(_27){ +if(_font==_29){ +return; +} +_font=_29; +objj_msgSend(_menu,"itemChanged:",_27); +objj_msgSend(_menuItemView,"setDirty"); +} +}),new objj_method(sel_getUid("font"),function(_2a,_2b){ +with(_2a){ +return _font; +} +}),new objj_method(sel_getUid("setTag:"),function(_2c,_2d,_2e){ +with(_2c){ +_tag=_2e; +} +}),new objj_method(sel_getUid("tag"),function(_2f,_30){ +with(_2f){ +return _tag; +} +}),new objj_method(sel_getUid("setState:"),function(_31,_32,_33){ +with(_31){ +if(_state==_33){ +return; +} +_state=_33; +objj_msgSend(_menu,"itemChanged:",_31); +objj_msgSend(_menuItemView,"setDirty"); +} +}),new objj_method(sel_getUid("state"),function(_34,_35){ +with(_34){ +return _state; +} +}),new objj_method(sel_getUid("setImage:"),function(_36,_37,_38){ +with(_36){ +if(_image==_38){ +return; +} +_image=_38; +objj_msgSend(_menuItemView,"setDirty"); +objj_msgSend(_menu,"itemChanged:",_36); +} +}),new objj_method(sel_getUid("image"),function(_39,_3a){ +with(_39){ +return _image; +} +}),new objj_method(sel_getUid("setAlternateImage:"),function(_3b,_3c,_3d){ +with(_3b){ +_alternateImage=_3d; +} +}),new objj_method(sel_getUid("alternateImage"),function(_3e,_3f){ +with(_3e){ +return _alternateImage; +} +}),new objj_method(sel_getUid("setOnStateImage:"),function(_40,_41,_42){ +with(_40){ +if(_onStateImage==_42){ +return; +} +_onStateImage=_42; +objj_msgSend(_menu,"itemChanged:",_40); +} +}),new objj_method(sel_getUid("onStateImage"),function(_43,_44){ +with(_43){ +return _onStateImage; +} +}),new objj_method(sel_getUid("setOffStateImage:"),function(_45,_46,_47){ +with(_45){ +if(_offStateImage==_47){ +return; +} +_offStateImage=_47; +objj_msgSend(_menu,"itemChanged:",_45); +} +}),new objj_method(sel_getUid("offStateImage"),function(_48,_49){ +with(_48){ +return _offStateImage; +} +}),new objj_method(sel_getUid("setMixedStateImage:"),function(_4a,_4b,_4c){ +with(_4a){ +if(_mixedStateImage==_4c){ +return; +} +_mixedStateImage=_4c; +objj_msgSend(_menu,"itemChanged:",_4a); +} +}),new objj_method(sel_getUid("mixedStateImage"),function(_4d,_4e){ +with(_4d){ +return _mixedStateImage; +} +}),new objj_method(sel_getUid("setSubmenu:"),function(_4f,_50,_51){ +with(_4f){ +var _52=objj_msgSend(_submenu,"supermenu"); +if(_52==_4f){ +return; +} +if(_52){ +return alert("bad"); +} +objj_msgSend(_submenu,"setSupermenu:",_menu); +_submenu=_51; +objj_msgSend(_menuItemView,"setDirty"); +objj_msgSend(_menu,"itemChanged:",_4f); +} +}),new objj_method(sel_getUid("submenu"),function(_53,_54){ +with(_53){ +return _submenu; +} +}),new objj_method(sel_getUid("hasSubmenu"),function(_55,_56){ +with(_55){ +return _submenu?YES:NO; +} +}),new objj_method(sel_getUid("isSeparatorItem"),function(_57,_58){ +with(_57){ +return _isSeparator; +} +}),new objj_method(sel_getUid("setMenu:"),function(_59,_5a,_5b){ +with(_59){ +_menu=_5b; +} +}),new objj_method(sel_getUid("menu"),function(_5c,_5d){ +with(_5c){ +return _menu; +} +}),new objj_method(sel_getUid("setKeyEquivalent:"),function(_5e,_5f,_60){ +with(_5e){ +_keyEquivalent=_60||""; +} +}),new objj_method(sel_getUid("keyEquivalent"),function(_61,_62){ +with(_61){ +return _keyEquivalent; +} +}),new objj_method(sel_getUid("setKeyEquivalentModifierMask:"),function(_63,_64,_65){ +with(_63){ +_keyEquivalentModifierMask=_65; +} +}),new objj_method(sel_getUid("keyEquivalentModifierMask"),function(_66,_67){ +with(_66){ +return _keyEquivalentModifierMask; +} +}),new objj_method(sel_getUid("setMnemonicLocation:"),function(_68,_69,_6a){ +with(_68){ +_mnemonicLocation=_6a; +} +}),new objj_method(sel_getUid("mnemonicLocation"),function(_6b,_6c){ +with(_6b){ +return _mnemonicLocation; +} +}),new objj_method(sel_getUid("setTitleWithMnemonicLocation:"),function(_6d,_6e,_6f){ +with(_6d){ +var _70=objj_msgSend(_6f,"rangeOfString:","&").location; +if(_70==CPNotFound){ +objj_msgSend(_6d,"setTitle:",_6f); +}else{ +objj_msgSend(_6d,"setTitle:",objj_msgSend(_6f,"substringToIndex:",_70)+objj_msgSend(_6f,"substringFromIndex:",_70+1)); +objj_msgSend(_6d,"setMnemonicLocation:",_70); +} +} +}),new objj_method(sel_getUid("mnemonic"),function(_71,_72){ +with(_71){ +return _mnemonicLocation==CPNotFound?"":objj_msgSend(_title,"characterAtIndex:",_mnemonicLocation); +} +}),new objj_method(sel_getUid("setAlternate:"),function(_73,_74,_75){ +with(_73){ +_isAlternate=_75; +} +}),new objj_method(sel_getUid("isAlternate"),function(_76,_77){ +with(_76){ +return _isAlternate; +} +}),new objj_method(sel_getUid("setIndentationLevel:"),function(_78,_79,_7a){ +with(_78){ +if(_7a<0){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"setIndentationLevel: argument must be greater than 0."); +} +_indentationLevel=MIN(15,_7a); +} +}),new objj_method(sel_getUid("indentationLevel"),function(_7b,_7c){ +with(_7b){ +return _indentationLevel; +} +}),new objj_method(sel_getUid("setToolTip:"),function(_7d,_7e,_7f){ +with(_7d){ +_toolTip=_7f; +} +}),new objj_method(sel_getUid("toolTip"),function(_80,_81){ +with(_80){ +return _toolTip; +} +}),new objj_method(sel_getUid("setRepresentedObject:"),function(_82,_83,_84){ +with(_82){ +_representedObject=_84; +} +}),new objj_method(sel_getUid("representedObject"),function(_85,_86){ +with(_85){ +return _representedObject; +} +}),new objj_method(sel_getUid("setView:"),function(_87,_88,_89){ +with(_87){ +if(_view===_89){ +return; +} +_view=_89; +objj_msgSend(_menuItemView,"setDirty"); +objj_msgSend(_menu,"itemChanged:",_87); +} +}),new objj_method(sel_getUid("view"),function(_8a,_8b){ +with(_8a){ +return _view; +} +}),new objj_method(sel_getUid("isHighlighted"),function(_8c,_8d){ +with(_8c){ +return objj_msgSend(objj_msgSend(_8c,"menu"),"highlightedItem")==_8c; +} +}),new objj_method(sel_getUid("_menuItemView"),function(_8e,_8f){ +with(_8e){ +if(!_menuItemView){ +_menuItemView=objj_msgSend(objj_msgSend(_CPMenuItemView,"alloc"),"initWithFrame:forMenuItem:",CGRectMakeZero(),_8e); +} +return _menuItemView; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("separatorItem"),function(_90,_91){ +with(_90){ +var _92=objj_msgSend(objj_msgSend(_90,"alloc"),"initWithTitle:action:keyEquivalent:","",nil,nil); +_92._isSeparator=YES; +return _92; +} +})]); +var _93="CPMenuItemIsSeparatorKey",_94="CPMenuItemTitleKey",_95="CPMenuItemTargetKey",_96="CPMenuItemActionKey",_97="CPMenuItemIsEnabledKey",_98="CPMenuItemIsHiddenKey",_99="CPMenuItemTagKey",_9a="CPMenuItemStateKey",_9b="CPMenuItemImageKey",_9c="CPMenuItemAlternateImageKey",_9d="CPMenuItemSubmenuKey",_9e="CPMenuItemMenuKey",_9f="CPMenuItemRepresentedObjectKey",_a0="CPMenuItemViewKey"; +var _1=objj_getClass("CPMenuItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPMenuItem\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_a1,_a2,_a3){ +with(_a1){ +_a1=objj_msgSendSuper({receiver:_a1,super_class:objj_getClass("CPObject")},"init"); +if(_a1){ +_isSeparator=objj_msgSend(_a3,"containsValueForKey:",_93)&&objj_msgSend(_a3,"decodeBoolForKey:",_93); +_title=objj_msgSend(_a3,"decodeObjectForKey:",_94); +_target=objj_msgSend(_a3,"decodeObjectForKey:",_95); +_action=objj_msgSend(_a3,"decodeObjectForKey:",_96); +_isEnabled=objj_msgSend(_a3,"containsValueForKey:",(_97))?objj_msgSend(_a3,"decodeObjectForKey:",(_97)):(YES); +_isHidden=objj_msgSend(_a3,"containsValueForKey:",(_98))?objj_msgSend(_a3,"decodeObjectForKey:",(_98)):(NO); +_tag=objj_msgSend(_a3,"containsValueForKey:",(_99))?objj_msgSend(_a3,"decodeObjectForKey:",(_99)):(0); +_state=objj_msgSend(_a3,"containsValueForKey:",(_9a))?objj_msgSend(_a3,"decodeObjectForKey:",(_9a)):(CPOffState); +_image=objj_msgSend(_a3,"containsValueForKey:",(_9b))?objj_msgSend(_a3,"decodeObjectForKey:",(_9b)):(nil); +_alternateImage=objj_msgSend(_a3,"containsValueForKey:",(_9c))?objj_msgSend(_a3,"decodeObjectForKey:",(_9c)):(nil); +_submenu=objj_msgSend(_a3,"containsValueForKey:",(_9d))?objj_msgSend(_a3,"decodeObjectForKey:",(_9d)):(nil); +_menu=objj_msgSend(_a3,"containsValueForKey:",(_9e))?objj_msgSend(_a3,"decodeObjectForKey:",(_9e)):(nil); +_representedObject=objj_msgSend(_a3,"containsValueForKey:",(_9f))?objj_msgSend(_a3,"decodeObjectForKey:",(_9f)):(nil); +_view=objj_msgSend(_a3,"containsValueForKey:",(_a0))?objj_msgSend(_a3,"decodeObjectForKey:",(_a0)):(nil); +} +return _a1; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_a4,_a5,_a6){ +with(_a4){ +if(_isSeparator){ +objj_msgSend(_a6,"encodeBool:forKey:",_isSeparator,_93); +} +objj_msgSend(_a6,"encodeObject:forKey:",_title,_94); +objj_msgSend(_a6,"encodeObject:forKey:",_target,_95); +objj_msgSend(_a6,"encodeObject:forKey:",_action,_96); +if((_isEnabled)!==(YES)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_isEnabled),(_97)); +} +if((_isHidden)!==(NO)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_isHidden),(_98)); +} +if((_tag)!==(0)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_tag),(_99)); +} +if((_state)!==(CPOffState)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_state),(_9a)); +} +if((_image)!==(nil)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_image),(_9b)); +} +if((_alternateImage)!==(nil)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_alternateImage),(_9c)); +} +if((_submenu)!==(nil)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_submenu),(_9d)); +} +if((_menu)!==(nil)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_menu),(_9e)); +} +if((_representedObject)!==(nil)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_representedObject),(_9f)); +} +if((_view)!==(nil)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_view),(_a0)); +} +} +})]); +var _a7=3,_a8=16,_a9=14,_aa=17,_ab=4; +var _ac=nil,_ad=nil,_ae=[],_af=[]; +var _1=objj_allocateClassPair(CPView,"_CPMenuItemView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_menuItem"),new objj_ivar("_font"),new objj_ivar("_textColor"),new objj_ivar("_textShadowColor"),new objj_ivar("_activateColor"),new objj_ivar("_activateShadowColor"),new objj_ivar("_minSize"),new objj_ivar("_isDirty"),new objj_ivar("_showsStateColumn"),new objj_ivar("_belongsToMenuBar"),new objj_ivar("_stateView"),new objj_ivar("_imageAndTextView"),new objj_ivar("_submenuView")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:forMenuItem:"),function(_b0,_b1,_b2,_b3){ +with(_b0){ +_b0=objj_msgSendSuper({receiver:_b0,super_class:objj_getClass("CPView")},"initWithFrame:",_b2); +if(_b0){ +_menuItem=_b3; +_showsStateColumn=YES; +_isDirty=YES; +objj_msgSend(_b0,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_b0,"synchronizeWithMenuItem"); +} +return _b0; +} +}),new objj_method(sel_getUid("minSize"),function(_b4,_b5){ +with(_b4){ +return _minSize; +} +}),new objj_method(sel_getUid("setDirty"),function(_b6,_b7){ +with(_b6){ +_isDirty=YES; +} +}),new objj_method(sel_getUid("synchronizeWithMenuItem"),function(_b8,_b9){ +with(_b8){ +if(!_isDirty){ +return; +} +_isDirty=NO; +var _ba=objj_msgSend(_menuItem,"view"); +if(objj_msgSend(_menuItem,"isSeparatorItem")){ +var _bb=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,5,10,1)); +_ba=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,0,0,10)); +objj_msgSend(_ba,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_bb,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_bb,"setBackgroundColor:",objj_msgSend(CPColor,"lightGrayColor")); +objj_msgSend(_ba,"addSubview:",_bb); +} +if(_ba){ +objj_msgSend(_imageAndTextView,"removeFromSuperview"); +_imageAndTextView=nil; +objj_msgSend(_stateView,"removeFromSuperview"); +_stateView=nil; +objj_msgSend(_submenuView,"removeFromSuperview"); +_submenuView=nil; +_minSize=objj_msgSend(_ba,"frame").size; +objj_msgSend(_b8,"setFrameSize:",_minSize); +objj_msgSend(_b8,"addSubview:",_ba); +return; +} +var x=_belongsToMenuBar?0:(_a7+objj_msgSend(_menuItem,"indentationLevel")*_aa); +if(_showsStateColumn){ +if(!_stateView){ +_stateView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CGRectMake(x,(CGRectGetHeight(objj_msgSend(_b8,"frame"))-_a9)/2,_a9,_a9)); +objj_msgSend(_stateView,"setAutoresizingMask:",CPViewMinYMargin|CPViewMaxYMargin); +objj_msgSend(_b8,"addSubview:",_stateView); +} +var _bd=objj_msgSend(_menuItem,"state"); +switch(_bd){ +case CPOffState: +case CPOnState: +case CPMixedState: +objj_msgSend(_stateView,"setImage:",_ae[_bd]); +break; +default: +objj_msgSend(_stateView,"setImage:",nil); +} +x+=_a9; +}else{ +objj_msgSend(_stateView,"removeFromSuperview"); +_stateView=nil; +} +if(!_imageAndTextView){ +_imageAndTextView=objj_msgSend(objj_msgSend(_CPImageAndTextView,"alloc"),"initWithFrame:",CGRectMake(0,0,0,0)); +objj_msgSend(_imageAndTextView,"setImagePosition:",CPImageLeft); +objj_msgSend(_imageAndTextView,"setTextShadowOffset:",CGSizeMake(0,1)); +objj_msgSend(_b8,"addSubview:",_imageAndTextView); +} +var _be=objj_msgSend(_menuItem,"font"); +if(!_be){ +_be=_font; +} +objj_msgSend(_imageAndTextView,"setFont:",_be); +objj_msgSend(_imageAndTextView,"setVerticalAlignment:",CPCenterVerticalTextAlignment); +objj_msgSend(_imageAndTextView,"setImage:",objj_msgSend(_menuItem,"image")); +objj_msgSend(_imageAndTextView,"setText:",objj_msgSend(_menuItem,"title")); +objj_msgSend(_imageAndTextView,"setTextColor:",objj_msgSend(_b8,"textColor")); +objj_msgSend(_imageAndTextView,"setTextShadowColor:",objj_msgSend(_b8,"textShadowColor")); +objj_msgSend(_imageAndTextView,"setTextShadowOffset:",CGSizeMake(0,1)); +objj_msgSend(_imageAndTextView,"setFrameOrigin:",CGPointMake(x,_ab)); +objj_msgSend(_imageAndTextView,"sizeToFit"); +var _bf=objj_msgSend(_imageAndTextView,"frame"); +_bf.size.height+=2*_ab; +x+=CGRectGetWidth(_bf); +if(objj_msgSend(_menuItem,"hasSubmenu")){ +x+=3; +if(!_submenuView){ +_submenuView=objj_msgSend(objj_msgSend(_CPMenuItemArrowView,"alloc"),"initWithFrame:",CGRectMake(0,0,10,10)); +objj_msgSend(_b8,"addSubview:",_submenuView); +} +objj_msgSend(_submenuView,"setHidden:",NO); +objj_msgSend(_submenuView,"setColor:",_belongsToMenuBar?objj_msgSend(_b8,"textColor"):nil); +objj_msgSend(_submenuView,"setFrameOrigin:",CGPointMake(x,(CGRectGetHeight(_bf)-10)/2)); +x+=10; +}else{ +objj_msgSend(_submenuView,"setHidden:",YES); +} +_minSize=CGSizeMake(x+(_belongsToMenuBar?0:_a8)+3,CGRectGetHeight(_bf)); +objj_msgSend(_b8,"setFrameSize:",_minSize); +} +}),new objj_method(sel_getUid("overlapOffsetWidth"),function(_c0,_c1){ +with(_c0){ +return _a7+(objj_msgSend(objj_msgSend(_menuItem,"menu"),"showsStateColumn")?_a9:0); +} +}),new objj_method(sel_getUid("setShowsStateColumn:"),function(_c2,_c3,_c4){ +with(_c2){ +_showsStateColumn=_c4; +} +}),new objj_method(sel_getUid("setBelongsToMenuBar:"),function(_c5,_c6,_c7){ +with(_c5){ +_belongsToMenuBar=_c7; +} +}),new objj_method(sel_getUid("highlight:"),function(_c8,_c9,_ca){ +with(_c8){ +if(_belongsToMenuBar){ +objj_msgSend(_imageAndTextView,"setImage:",_ca?objj_msgSend(_menuItem,"alternateImage"):objj_msgSend(_menuItem,"image")); +}else{ +if(objj_msgSend(_menuItem,"isEnabled")){ +if(_ca){ +objj_msgSend(_c8,"setBackgroundColor:",_ac); +objj_msgSend(_imageAndTextView,"setTextColor:",objj_msgSend(CPColor,"whiteColor")); +objj_msgSend(_imageAndTextView,"setTextShadowColor:",_ad); +}else{ +objj_msgSend(_c8,"setBackgroundColor:",nil); +objj_msgSend(_imageAndTextView,"setTextColor:",objj_msgSend(_c8,"textColor")); +objj_msgSend(_imageAndTextView,"setTextShadowColor:",objj_msgSend(_c8,"textShadowColor")); +} +var _cb=objj_msgSend(_menuItem,"state"); +switch(_cb){ +case CPOffState: +case CPOnState: +case CPMixedState: +objj_msgSend(_stateView,"setImage:",_ca?_af[_cb]:_ae[_cb]); +break; +default: +objj_msgSend(_stateView,"setImage:",nil); +} +} +} +} +}),new objj_method(sel_getUid("activate:"),function(_cc,_cd,_ce){ +with(_cc){ +objj_msgSend(_imageAndTextView,"setImage:",objj_msgSend(_menuItem,"image")); +if(_ce){ +objj_msgSend(_imageAndTextView,"setTextColor:",objj_msgSend(_cc,"activateColor")||objj_msgSend(CPColor,"whiteColor")); +objj_msgSend(_imageAndTextView,"setTextShadowColor:",objj_msgSend(_cc,"activateShadowColor")||objj_msgSend(CPColor,"blackColor")); +objj_msgSend(_submenuView,"setColor:",objj_msgSend(_cc,"activateColor")||objj_msgSend(CPColor,"whiteColor")); +}else{ +objj_msgSend(_imageAndTextView,"setTextColor:",objj_msgSend(_cc,"textColor")); +objj_msgSend(_imageAndTextView,"setTextShadowColor:",objj_msgSend(_cc,"textShadowColor")); +objj_msgSend(_submenuView,"setColor:",objj_msgSend(_cc,"textColor")); +} +} +}),new objj_method(sel_getUid("eventOnSubmenu:"),function(_cf,_d0,_d1){ +with(_cf){ +if(!objj_msgSend(_menuItem,"hasSubmenu")){ +return NO; +} +return CGRectContainsPoint(objj_msgSend(_submenuView,"frame"),objj_msgSend(_cf,"convertPoint:fromView:",objj_msgSend(_d1,"locationInWindow"),nil)); +} +}),new objj_method(sel_getUid("isHidden"),function(_d2,_d3){ +with(_d2){ +return objj_msgSend(_menuItem,"isHidden"); +} +}),new objj_method(sel_getUid("menuItem"),function(_d4,_d5){ +with(_d4){ +return _menuItem; +} +}),new objj_method(sel_getUid("setFont:"),function(_d6,_d7,_d8){ +with(_d6){ +if(_font==_d8){ +return; +} +_font=_d8; +objj_msgSend(_d6,"setDirty"); +} +}),new objj_method(sel_getUid("setTextColor:"),function(_d9,_da,_db){ +with(_d9){ +if(_textColor==_db){ +return; +} +_textColor=_db; +objj_msgSend(_imageAndTextView,"setTextColor:",objj_msgSend(_d9,"textColor")); +objj_msgSend(_submenuView,"setColor:",objj_msgSend(_d9,"textColor")); +} +}),new objj_method(sel_getUid("textColor"),function(_dc,_dd){ +with(_dc){ +return objj_msgSend(_menuItem,"isEnabled")?(_textColor?_textColor:objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",70/255,69/255,69/255,1)):objj_msgSend(CPColor,"darkGrayColor"); +} +}),new objj_method(sel_getUid("setTextShadowColor:"),function(_de,_df,_e0){ +with(_de){ +if(_textShadowColor==_e0){ +return; +} +_textShadowColor=_e0; +objj_msgSend(_imageAndTextView,"setTextShadowColor:",objj_msgSend(_de,"textShadowColor")); +} +}),new objj_method(sel_getUid("textShadowColor"),function(_e1,_e2){ +with(_e1){ +return objj_msgSend(_menuItem,"isEnabled")?(_textShadowColor?_textShadowColor:objj_msgSend(CPColor,"colorWithWhite:alpha:",1,0.8)):objj_msgSend(CPColor,"colorWithWhite:alpha:",0.8,0.8); +} +}),new objj_method(sel_getUid("setActivateColor:"),function(_e3,_e4,_e5){ +with(_e3){ +_activateColor=_e5; +} +}),new objj_method(sel_getUid("activateColor"),function(_e6,_e7){ +with(_e6){ +return _activateColor; +} +}),new objj_method(sel_getUid("setActivateShadowColor:"),function(_e8,_e9,_ea){ +with(_e8){ +_activateShadowColor=_ea; +} +}),new objj_method(sel_getUid("activateShadowColor"),function(_eb,_ec){ +with(_eb){ +return _activateShadowColor; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("initialize"),function(_ed,_ee){ +with(_ed){ +if(_ed!=objj_msgSend(_CPMenuItemView,"class")){ +return; +} +_ac=objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",95/255,131/255,185/255,1); +_ad=objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",26/255,73/255,109/255,1); +var _ef=objj_msgSend(CPBundle,"bundleForClass:",_ed); +_ae[CPOffState]=nil; +_af[CPOffState]=nil; +_ae[CPOnState]=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ef,"pathForResource:","CPMenuItem/CPMenuItemOnState.png"),CGSizeMake(14,14)); +_af[CPOnState]=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ef,"pathForResource:","CPMenuItem/CPMenuItemOnStateHighlighted.png"),CGSizeMake(14,14)); +_ae[CPMixedState]=nil; +_af[CPMixedState]=nil; +} +}),new objj_method(sel_getUid("leftMargin"),function(_f0,_f1){ +with(_f0){ +return _a7+_a9; +} +})]); +var _1=objj_allocateClassPair(CPView,"_CPMenuItemArrowView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_color")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("setColor:"),function(_f2,_f3,_f4){ +with(_f2){ +if(_color==_f4){ +return; +} +_color=_f4; +objj_msgSend(_f2,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("drawRect:"),function(_f5,_f6,_f7){ +with(_f5){ +var _f8=objj_msgSend(objj_msgSend(CPGraphicsContext,"currentContext"),"graphicsPort"); +CGContextBeginPath(_f8); +CGContextMoveToPoint(_f8,1,4); +CGContextAddLineToPoint(_f8,9,4); +CGContextAddLineToPoint(_f8,5,8); +CGContextAddLineToPoint(_f8,1,4); +CGContextClosePath(_f8); +CGContextSetFillColor(_f8,_color); +CGContextFillPath(_f8); +} +})]); +p;15;CPOutlineView.ji;13;CPTableView.jc;2698; +var _1=objj_allocateClassPair(CPTableView,"CPOutlineView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_outlineDataSource"),new objj_ivar("_itemsByRow")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPTableView")},"initWithFrame:",_5); +if(_3){ +objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPTableView")},"setDataSource:",_3); +_itemsByRow=objj_msgSend(objj_msgSend(CPArray,"alloc"),"init"); +} +return _3; +} +}),new objj_method(sel_getUid("setDataSource:"),function(_6,_7,_8){ +with(_6){ +if(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("outlineView:child:ofItem"))){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Data source must implement 'outlineView:child:ofItem'"); +} +if(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("outlineView:isItemExpandable"))){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Data source must implement 'outlineView:isItemExpandable'"); +} +if(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("outlineView:numberOfChildrenOfItem"))){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Data source must implement 'outlineView:numberOfChildrenOfItem'"); +} +if(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("outlineView:objectValueForTableColumn:byItem"))){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Data source must implement 'outlineView:objectValueForTableColumn:byItem'"); +} +_outlineDataSource=_8; +objj_msgSend(_6,"reloadData"); +} +}),new objj_method(sel_getUid("reloadData"),function(_9,_a){ +with(_9){ +_numberOfVisibleItems=objj_msgSend(_outlineDataSource,"outlineView:numberOfChildrenOfItem:",_9,nil); +_numberOfRows=_numberOfVisibleItems; +var i=0; +for(;i<_numberOfVisibleItems;++i){ +_itemsByRow[i]=objj_msgSend(_outlineDataSource,"outlineView:child:ofItem:",_9,i,nil); +} +objj_msgSend(_9,"loadTableCellsInRect:",objj_msgSend(_9,"bounds")); +} +})]); +var _1=objj_getClass("CPOutlineView"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPOutlineView\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("numberOfRowsInTableView:"),function(_c,_d,_e){ +with(_c){ +return _numberOfVisibleItems; +} +}),new objj_method(sel_getUid("tableView:objectValueForTableColumn:row:"),function(_f,_10,_11,_12,_13){ +with(_f){ +return objj_msgSend(_outlineDataSource,"outlineView:objectValueForTableColumn:byItem:",_f,_12,_itemsByRow[_13]); +} +})]); +p;9;CPPanel.ji;10;CPWindow.jc;1152; +CPOKButton=1; +CPCancelButton=0; +var _1=objj_allocateClassPair(CPWindow,"CPPanel"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_becomesKeyOnlyIfNeeded"),new objj_ivar("_worksWhenModal")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("isFloatingPanel"),function(_3,_4){ +with(_3){ +return objj_msgSend(_3,"level")==CPFloatingWindowLevel; +} +}),new objj_method(sel_getUid("setFloatingPanel:"),function(_5,_6,_7){ +with(_5){ +objj_msgSend(_5,"setLevel:",_7?CPFloatingWindowLevel:CPNormalWindowLevel); +} +}),new objj_method(sel_getUid("becomesKeyOnlyIfNeeded"),function(_8,_9){ +with(_8){ +return _becomesKeyOnlyIfNeeded; +} +}),new objj_method(sel_getUid("setBecomesKeyOnlyIfNeeded:"),function(_a,_b,_c){ +with(_a){ +_becomesKeyOnlyIfNeeded=_c; +} +}),new objj_method(sel_getUid("worksWhenModal"),function(_d,_e){ +with(_d){ +return _worksWhenModal; +} +}),new objj_method(sel_getUid("setWorksWhenModal:"),function(_f,_10,_11){ +with(_f){ +_worksWhenModal=_11; +} +}),new objj_method(sel_getUid("canBecomeMainWindow"),function(_12,_13){ +with(_12){ +return NO; +} +})]); +p;14;CPPasteboard.jI;21;Foundation/CPObject.jI;20;Foundation/CPArray.jI;25;Foundation/CPDictionary.jI;40;Foundation/CPPropertyListSerialization.jc;4575; +CPGeneralPboard="CPGeneralPboard"; +CPFontPboard="CPFontPboard"; +CPRulerPboard="CPRulerPboard"; +CPFindPboard="CPFindPboard"; +CPDragPboard="CPDragPboard"; +CPColorPboardType="CPColorPboardType"; +CPFilenamesPboardType="CPFilenamesPboardType"; +CPFontPboardType="CPFontPboardType"; +CPHTMLPboardType="CPHTMLPboardType"; +CPStringPboardType="CPStringPboardType"; +CPURLPboardType="CPURLPboardType"; +CPImagesPboardType="CPImagesPboardType"; +CPVideosPboardType="CPVideosPboardType"; +CPImagePboardType="CPImagePboardType"; +var _1=nil; +var _2=objj_allocateClassPair(CPObject,"CPPasteboard"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_types"),new objj_ivar("_owners"),new objj_ivar("_provided"),new objj_ivar("_changeCount"),new objj_ivar("_stateUID")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("_initWithName:"),function(_4,_5,_6){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPObject")},"init"); +if(_4){ +_name=_6; +_types=[]; +_owners=objj_msgSend(CPDictionary,"dictionary"); +_provided=objj_msgSend(CPDictionary,"dictionary"); +_changeCount=0; +} +return _4; +} +}),new objj_method(sel_getUid("addTypes:owner:"),function(_7,_8,_9,_a){ +with(_7){ +var i=0,_c=_9.length; +for(;i<_c;++i){ +var _d=_9[i]; +if(!objj_msgSend(_owners,"objectForKey:",_d)){ +objj_msgSend(_types,"addObject:",_d); +objj_msgSend(_provided,"removeObjectForKey:",_d); +} +objj_msgSend(_owners,"setObject:forKey:",_a,_d); +} +return ++_changeCount; +} +}),new objj_method(sel_getUid("declareTypes:owner:"),function(_e,_f,_10,_11){ +with(_e){ +objj_msgSend(_types,"setArray:",_10); +_owners=objj_msgSend(CPDictionary,"dictionary"); +_provided=objj_msgSend(CPDictionary,"dictionary"); +var _12=_types.length; +while(_12--){ +objj_msgSend(_owners,"setObject:forKey:",_11,_types[_12]); +} +return ++_changeCount; +} +}),new objj_method(sel_getUid("setData:forType:"),function(_13,_14,_15,_16){ +with(_13){ +objj_msgSend(_provided,"setObject:forKey:",_15,_16); +return YES; +} +}),new objj_method(sel_getUid("setPropertyList:forType:"),function(_17,_18,_19,_1a){ +with(_17){ +return objj_msgSend(_17,"setData:forType:",objj_msgSend(CPPropertyListSerialization,"dataFromPropertyList:format:errorDescription:",_19,CPPropertyListXMLFormat_v1_0,nil),_1a); +} +}),new objj_method(sel_getUid("setString:forType:"),function(_1b,_1c,_1d,_1e){ +with(_1b){ +return objj_msgSend(_1b,"setPropertyList:forType:",_1d,_1e); +} +}),new objj_method(sel_getUid("availableTypeFromArray:"),function(_1f,_20,_21){ +with(_1f){ +return objj_msgSend(_types,"firstObjectCommonWithArray:",_21); +} +}),new objj_method(sel_getUid("types"),function(_22,_23){ +with(_22){ +return _types; +} +}),new objj_method(sel_getUid("changeCount"),function(_24,_25){ +with(_24){ +return _changeCount; +} +}),new objj_method(sel_getUid("dataForType:"),function(_26,_27,_28){ +with(_26){ +var _29=objj_msgSend(_provided,"objectForKey:",_28); +if(_29){ +return _29; +} +var _2a=objj_msgSend(_owners,"objectForKey:",_28); +if(_2a){ +objj_msgSend(_2a,"pasteboard:provideDataForType:",_26,_28); +++_changeCount; +return objj_msgSend(_provided,"objectForKey:",_28); +} +return nil; +} +}),new objj_method(sel_getUid("propertyListForType:"),function(_2b,_2c,_2d){ +with(_2b){ +var _2e=objj_msgSend(_2b,"dataForType:",_2d); +if(_2e){ +return objj_msgSend(CPPropertyListSerialization,"propertyListFromData:format:errorDescription:",_2e,CPPropertyListXMLFormat_v1_0,nil); +} +return nil; +} +}),new objj_method(sel_getUid("stringForType:"),function(_2f,_30,_31){ +with(_2f){ +return objj_msgSend(_2f,"propertyListForType:",_31); +} +}),new objj_method(sel_getUid("_generateStateUID"),function(_32,_33){ +with(_32){ +var _34=32; +_stateUID=""; +while(_34--){ +_stateUID+=FLOOR(RAND()*16).toString(16).toUpperCase(); +} +return _stateUID; +} +}),new objj_method(sel_getUid("_stateUID"),function(_35,_36){ +with(_35){ +return _stateUID; +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("initialize"),function(_37,_38){ +with(_37){ +if(_37!=objj_msgSend(CPPasteboard,"class")){ +return; +} +objj_msgSend(_37,"setVersion:",1); +_1=objj_msgSend(CPDictionary,"dictionary"); +} +}),new objj_method(sel_getUid("generalPasteboard"),function(_39,_3a){ +with(_39){ +return objj_msgSend(CPPasteboard,"pasteboardWithName:",CPGeneralPboard); +} +}),new objj_method(sel_getUid("pasteboardWithName:"),function(_3b,_3c,_3d){ +with(_3b){ +var _3e=objj_msgSend(_1,"objectForKey:",_3d); +if(_3e){ +return _3e; +} +_3e=objj_msgSend(objj_msgSend(CPPasteboard,"alloc"),"_initWithName:",_3d); +objj_msgSend(_1,"setObject:forKey:",_3e,_3d); +return _3e; +} +})]); +p;15;CPPopUpButton.ji;10;CPButton.ji;12;CPGeometry.ji;8;CPMenu.ji;12;CPMenuItem.jc;13753; +var _1=7; +CPPopUpButtonStatePullsDown=CPThemeState("pulls-down"); +var _2=objj_allocateClassPair(CPButton,"CPPopUpButton"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_selectedIndex"),new objj_ivar("_preferredEdge"),new objj_ivar("_menu")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithFrame:pullsDown:"),function(_4,_5,_6,_7){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPButton")},"initWithFrame:",_6); +if(_4){ +_selectedIndex=CPNotFound; +_preferredEdge=CPMaxYEdge; +objj_msgSend(_4,"setValue:forThemeAttribute:",CPImageLeft,"image-position"); +objj_msgSend(_4,"setValue:forThemeAttribute:",CPLeftTextAlignment,"alignment"); +objj_msgSend(_4,"setValue:forThemeAttribute:",CPLineBreakByTruncatingTail,"line-break-mode"); +objj_msgSend(_4,"setMenu:",objj_msgSend(objj_msgSend(CPMenu,"alloc"),"initWithTitle:","")); +objj_msgSend(_4,"setPullsDown:",_7); +} +return _4; +} +}),new objj_method(sel_getUid("initWithFrame:"),function(_8,_9,_a){ +with(_8){ +return objj_msgSend(_8,"initWithFrame:pullsDown:",_a,NO); +} +}),new objj_method(sel_getUid("setPullsDown:"),function(_b,_c,_d){ +with(_b){ +if(_d){ +var _e=objj_msgSend(_b,"setThemeState:",CPPopUpButtonStatePullsDown); +}else{ +var _e=objj_msgSend(_b,"unsetThemeState:",CPPopUpButtonStatePullsDown); +} +if(!_e){ +return; +} +var _f=objj_msgSend(_menu,"itemArray"); +if(objj_msgSend(_f,"count")<=0){ +return; +} +objj_msgSend(_f[0],"setHidden:",objj_msgSend(_b,"pullsDown")); +objj_msgSend(_b,"synchronizeTitleAndSelectedItem"); +} +}),new objj_method(sel_getUid("pullsDown"),function(_10,_11){ +with(_10){ +return objj_msgSend(_10,"hasThemeState:",CPPopUpButtonStatePullsDown); +} +}),new objj_method(sel_getUid("addItem:"),function(_12,_13,_14){ +with(_12){ +objj_msgSend(_menu,"addItem:",_14); +} +}),new objj_method(sel_getUid("addItemWithTitle:"),function(_15,_16,_17){ +with(_15){ +objj_msgSend(_menu,"addItemWithTitle:action:keyEquivalent:",_17,NULL,nil); +} +}),new objj_method(sel_getUid("addItemsWithTitles:"),function(_18,_19,_1a){ +with(_18){ +var _1b=0,_1c=objj_msgSend(_1a,"count"); +for(;_1b<_1c;++_1b){ +objj_msgSend(_18,"addItemWithTitle:",_1a[_1b]); +} +} +}),new objj_method(sel_getUid("insertItemWithTitle:atIndex:"),function(_1d,_1e,_1f,_20){ +with(_1d){ +var _21=objj_msgSend(_1d,"itemArray"),_22=objj_msgSend(_21,"count"); +while(_22--){ +if(objj_msgSend(_21[_22],"title")==_1f){ +objj_msgSend(_1d,"removeItemAtIndex:",_22); +} +} +objj_msgSend(_menu,"insertItemWithTitle:action:keyEquivalent:atIndex:",_1f,NULL,nil,_20); +} +}),new objj_method(sel_getUid("removeAllItems"),function(_23,_24){ +with(_23){ +var _25=objj_msgSend(_menu,"numberOfItems"); +while(_25--){ +objj_msgSend(_menu,"removeItemAtIndex:",0); +} +} +}),new objj_method(sel_getUid("removeItemWithTitle:"),function(_26,_27,_28){ +with(_26){ +objj_msgSend(_26,"removeItemAtIndex:",objj_msgSend(_26,"indexOfItemWithTitle:",_28)); +objj_msgSend(_26,"synchronizeTitleAndSelectedItem"); +} +}),new objj_method(sel_getUid("removeItemAtIndex:"),function(_29,_2a,_2b){ +with(_29){ +objj_msgSend(_menu,"removeItemAtIndex:",_2b); +objj_msgSend(_29,"synchronizeTitleAndSelectedItem"); +} +}),new objj_method(sel_getUid("selectedItem"),function(_2c,_2d){ +with(_2c){ +if(_selectedIndex<0){ +return nil; +} +return objj_msgSend(_menu,"itemAtIndex:",_selectedIndex); +} +}),new objj_method(sel_getUid("titleOfSelectedItem"),function(_2e,_2f){ +with(_2e){ +return objj_msgSend(objj_msgSend(_2e,"selectedItem"),"title"); +} +}),new objj_method(sel_getUid("indexOfSelectedItem"),function(_30,_31){ +with(_30){ +return _selectedIndex; +} +}),new objj_method(sel_getUid("objectValue"),function(_32,_33){ +with(_32){ +return _selectedIndex; +} +}),new objj_method(sel_getUid("selectItem:"),function(_34,_35,_36){ +with(_34){ +objj_msgSend(_34,"selectItemAtIndex:",objj_msgSend(_34,"indexOfItem:",_36)); +} +}),new objj_method(sel_getUid("selectItemAtIndex:"),function(_37,_38,_39){ +with(_37){ +if(_selectedIndex==_39){ +return; +} +if(_selectedIndex>=0&&!objj_msgSend(_37,"pullsDown")){ +objj_msgSend(objj_msgSend(_37,"selectedItem"),"setState:",CPOffState); +} +_selectedIndex=_39; +if(_selectedIndex>=0&&!objj_msgSend(_37,"pullsDown")){ +objj_msgSend(objj_msgSend(_37,"selectedItem"),"setState:",CPOnState); +} +objj_msgSend(_37,"synchronizeTitleAndSelectedItem"); +} +}),new objj_method(sel_getUid("selectItemWithTag:"),function(_3a,_3b,_3c){ +with(_3a){ +objj_msgSend(_3a,"selectItemAtIndex:",objj_msgSend(_3a,"indexOfItemWithTag:",_3c)); +} +}),new objj_method(sel_getUid("selectItemWithTitle:"),function(_3d,_3e,_3f){ +with(_3d){ +objj_msgSend(_3d,"selectItemAtIndex:",objj_msgSend(_3d,"indexOfItemWithTitle:",_3f)); +} +}),new objj_method(sel_getUid("setObjectValue:"),function(_40,_41,_42){ +with(_40){ +objj_msgSend(_40,"selectItemAtIndex:",objj_msgSend(_42,"intValue")); +} +}),new objj_method(sel_getUid("menu"),function(_43,_44){ +with(_43){ +return _menu; +} +}),new objj_method(sel_getUid("setMenu:"),function(_45,_46,_47){ +with(_45){ +if(_menu===_47){ +return; +} +var _48=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(_menu){ +objj_msgSend(_48,"removeObserver:name:object:",_45,CPMenuDidAddItemNotification,_menu); +objj_msgSend(_48,"removeObserver:name:object:",_45,CPMenuDidChangeItemNotification,_menu); +objj_msgSend(_48,"removeObserver:name:object:",_45,CPMenuDidRemoveItemNotification,_menu); +} +_menu=_47; +if(_menu){ +objj_msgSend(_48,"addObserver:selector:name:object:",_45,sel_getUid("menuDidAddItem:"),CPMenuDidAddItemNotification,_menu); +objj_msgSend(_48,"addObserver:selector:name:object:",_45,sel_getUid("menuDidChangeItem:"),CPMenuDidChangeItemNotification,_menu); +objj_msgSend(_48,"addObserver:selector:name:object:",_45,sel_getUid("menuDidRemoveItem:"),CPMenuDidRemoveItemNotification,_menu); +} +objj_msgSend(_45,"synchronizeTitleAndSelectedItem"); +} +}),new objj_method(sel_getUid("numberOfItems"),function(_49,_4a){ +with(_49){ +return objj_msgSend(_menu,"numberOfItems"); +} +}),new objj_method(sel_getUid("itemArray"),function(_4b,_4c){ +with(_4b){ +return objj_msgSend(_menu,"itemArray"); +} +}),new objj_method(sel_getUid("itemAtIndex:"),function(_4d,_4e,_4f){ +with(_4d){ +return objj_msgSend(_menu,"itemAtIndex:",_4f); +} +}),new objj_method(sel_getUid("itemTitleAtIndex:"),function(_50,_51,_52){ +with(_50){ +return objj_msgSend(objj_msgSend(_menu,"itemAtIndex:",_52),"title"); +} +}),new objj_method(sel_getUid("itemTitles"),function(_53,_54){ +with(_53){ +var _55=[],_56=objj_msgSend(_53,"itemArray"),_57=0,_58=objj_msgSend(_56,"count"); +for(;_57<_58;++_57){ +_56.push(objj_msgSend(_56[_57],"title")); +} +} +}),new objj_method(sel_getUid("itemWithTitle:"),function(_59,_5a,_5b){ +with(_59){ +return objj_msgSend(_menu,"itemAtIndex:",objj_msgSend(_menu,"indexOfItemWithTitle:",_5b)); +} +}),new objj_method(sel_getUid("lastItem"),function(_5c,_5d){ +with(_5c){ +return objj_msgSend(objj_msgSend(_menu,"itemArray"),"lastObject"); +} +}),new objj_method(sel_getUid("indexOfItem:"),function(_5e,_5f,_60){ +with(_5e){ +return objj_msgSend(_menu,"indexOfItem:",_60); +} +}),new objj_method(sel_getUid("indexOfItemWithTag:"),function(_61,_62,_63){ +with(_61){ +return objj_msgSend(_menu,"indexOfItemWithTag:",_63); +} +}),new objj_method(sel_getUid("indexOfItemWithTitle:"),function(_64,_65,_66){ +with(_64){ +return objj_msgSend(_menu,"indexOfItemWithTitle:",_66); +} +}),new objj_method(sel_getUid("indexOfItemWithRepresentedObject:"),function(_67,_68,_69){ +with(_67){ +return objj_msgSend(_menu,"indexOfItemWithRepresentedObject:",_69); +} +}),new objj_method(sel_getUid("indexOfItemWithTarget:action:"),function(_6a,_6b,_6c,_6d){ +with(_6a){ +return objj_msgSend(_menu,"indexOfItemWithTarget:action:",_6c,_6d); +} +}),new objj_method(sel_getUid("preferredEdge"),function(_6e,_6f){ +with(_6e){ +return _preferredEdge; +} +}),new objj_method(sel_getUid("setPreferredEdge:"),function(_70,_71,_72){ +with(_70){ +_preferredEdge=_72; +} +}),new objj_method(sel_getUid("setTitle:"),function(_73,_74,_75){ +with(_73){ +if(objj_msgSend(_73,"title")===_75){ +return; +} +if(objj_msgSend(_73,"pullsDown")){ +var _76=objj_msgSend(_menu,"itemArray"); +if(objj_msgSend(_76,"count")<=0){ +objj_msgSend(_73,"addItemWithTitle:",_75); +}else{ +objj_msgSend(_76[0],"setTitle:",_75); +objj_msgSend(_73,"synchronizeTitleAndSelectedItem"); +} +}else{ +var _77=objj_msgSend(_73,"indexOfItemWithTitle:",_75); +if(_77<0){ +objj_msgSend(_73,"addItemWithTitle:",_75); +_77=objj_msgSend(_73,"numberOfItems")-1; +} +objj_msgSend(_73,"selectItemAtIndex:",_77); +} +} +}),new objj_method(sel_getUid("setImage:"),function(_78,_79,_7a){ +with(_78){ +} +}),new objj_method(sel_getUid("synchronizeTitleAndSelectedItem"),function(_7b,_7c){ +with(_7b){ +var _7d=nil; +if(objj_msgSend(_7b,"pullsDown")){ +var _7e=objj_msgSend(_menu,"itemArray"); +if(objj_msgSend(_7e,"count")>0){ +_7d=_7e[0]; +} +}else{ +_7d=objj_msgSend(_7b,"selectedItem"); +} +objj_msgSendSuper({receiver:_7b,super_class:objj_getClass("CPButton")},"setImage:",objj_msgSend(_7d,"image")); +objj_msgSendSuper({receiver:_7b,super_class:objj_getClass("CPButton")},"setTitle:",objj_msgSend(_7d,"title")); +} +}),new objj_method(sel_getUid("menuDidAddItem:"),function(_7f,_80,_81){ +with(_7f){ +var _82=objj_msgSend(objj_msgSend(_81,"userInfo"),"objectForKey:","CPMenuItemIndex"); +if(_selectedIndex<0){ +objj_msgSend(_7f,"selectItemAtIndex:",0); +}else{ +if(_82==_selectedIndex){ +objj_msgSend(_7f,"synchronizeTitleAndSelectedItem"); +}else{ +if(_82<_selectedIndex){ +++_selectedIndex; +} +} +} +if(_82==0&&objj_msgSend(_7f,"pullsDown")){ +var _83=objj_msgSend(_menu,"itemArray"); +objj_msgSend(_83[0],"setHidden:",YES); +if(_83.length>0){ +objj_msgSend(_83[1],"setHidden:",NO); +} +} +var _84=objj_msgSend(_menu,"itemArray")[_82],_85=objj_msgSend(_84,"action"); +if(!_85||(_85===sel_getUid("_popUpItemAction:"))){ +objj_msgSend(_84,"setTarget:",_7f); +objj_msgSend(_84,"setAction:",sel_getUid("_popUpItemAction:")); +} +} +}),new objj_method(sel_getUid("menuDidChangeItem:"),function(_86,_87,_88){ +with(_86){ +var _89=objj_msgSend(objj_msgSend(_88,"userInfo"),"objectForKey:","CPMenuItemIndex"); +if(objj_msgSend(_86,"pullsDown")&&_89!=0){ +return; +} +if(!objj_msgSend(_86,"pullsDown")&&_89!=_selectedIndex){ +return; +} +objj_msgSend(_86,"synchronizeTitleAndSelectedItem"); +} +}),new objj_method(sel_getUid("menuDidRemoveItem:"),function(_8a,_8b,_8c){ +with(_8a){ +var _8d=objj_msgSend(_8a,"numberOfItems"); +if(_8d<=_selectedIndex){ +objj_msgSend(_8a,"selectItemAtIndex:",_8d-1); +} +} +}),new objj_method(sel_getUid("mouseDown:"),function(_8e,_8f,_90){ +with(_8e){ +if(!objj_msgSend(_8e,"isEnabled")){ +return; +} +objj_msgSend(_8e,"highlight:",YES); +var _91=objj_msgSend(_8e,"menu"),_92=objj_msgSend(_8e,"window"),_93=objj_msgSend(_CPMenuWindow,"menuWindowWithMenu:font:",_91,objj_msgSend(_8e,"font")); +objj_msgSend(_93,"setDelegate:",_8e); +objj_msgSend(_93,"setBackgroundStyle:",_CPMenuWindowPopUpBackgroundStyle); +if(objj_msgSend(_8e,"pullsDown")){ +var _94=objj_msgSend(_92,"convertBaseToBridge:",objj_msgSend(_8e,"convertPoint:toView:",CGPointMake(0,CGRectGetMaxY(objj_msgSend(_8e,"bounds"))),nil)); +}else{ +var _95=objj_msgSend(_8e,"convertRect:toView:",objj_msgSend(_8e,"contentRectForBounds:",objj_msgSend(_8e,"bounds")),nil),_94=objj_msgSend(_92,"convertBaseToBridge:",_95.origin),_96=objj_msgSend(_93,"rectForItemAtIndex:",_selectedIndex); +_94.x-=CGRectGetMinX(_96)+objj_msgSend(_93,"overlapOffsetWidth")+objj_msgSend(objj_msgSend(objj_msgSend(_91,"itemAtIndex:",_selectedIndex),"_menuItemView"),"overlapOffsetWidth"); +_94.y-=CGRectGetMinY(_96)+(CGRectGetHeight(_96)-CGRectGetHeight(_95))/2; +} +objj_msgSend(_93,"setFrameOrigin:",_94); +var _97=CGRectGetMaxX(objj_msgSend(_93,"frame")),_98=objj_msgSend(_92,"convertBaseToBridge:",CGPointMake(CGRectGetMaxX(objj_msgSend(_8e,"convertRect:toView:",objj_msgSend(_8e,"bounds"),nil)),0)).x; +if(_97<_98){ +objj_msgSend(_93,"setMinWidth:",CGRectGetWidth(objj_msgSend(_93,"frame"))+_98-_97-(objj_msgSend(_8e,"pullsDown")?0:_1)); +} +objj_msgSend(_93,"orderFront:",_8e); +objj_msgSend(_93,"beginTrackingWithEvent:sessionDelegate:didEndSelector:",_90,_8e,sel_getUid("menuWindowDidFinishTracking:highlightedItem:")); +} +}),new objj_method(sel_getUid("menuWindowDidFinishTracking:highlightedItem:"),function(_99,_9a,_9b,_9c){ +with(_99){ +objj_msgSend(_CPMenuWindow,"poolMenuWindow:",_9b); +objj_msgSend(_99,"highlight:",NO); +var _9d=objj_msgSend(_menu,"indexOfItem:",_9c); +if(_9d==CPNotFound){ +return; +} +objj_msgSend(_99,"selectItemAtIndex:",_9d); +objj_msgSend(CPApp,"sendAction:to:from:",objj_msgSend(_9c,"action"),objj_msgSend(_9c,"target"),_9c); +} +}),new objj_method(sel_getUid("_popUpItemAction:"),function(_9e,_9f,_a0){ +with(_9e){ +objj_msgSend(_9e,"sendAction:to:",objj_msgSend(_9e,"action"),objj_msgSend(_9e,"target")); +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("themeClass"),function(_a1,_a2){ +with(_a1){ +return "popup-button"; +} +})]); +var _a3="CPPopUpButtonMenuKey",_a4="CPPopUpButtonSelectedIndexKey",_a5="CPPopUpButtonPullsDownKey"; +var _2=objj_getClass("CPPopUpButton"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPPopUpButton\"")); +} +var _3=_2.isa; +class_addMethods(_2,[new objj_method(sel_getUid("initWithCoder:"),function(_a6,_a7,_a8){ +with(_a6){ +_a6=objj_msgSendSuper({receiver:_a6,super_class:objj_getClass("CPButton")},"initWithCoder:",_a8); +if(_a6){ +_selectedIndex=-1; +objj_msgSend(_a6,"setMenu:",objj_msgSend(_a8,"decodeObjectForKey:",_a3)); +objj_msgSend(_a6,"selectItemAtIndex:",objj_msgSend(_a8,"decodeObjectForKey:",_a4)); +} +return _a6; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_a9,_aa,_ab){ +with(_a9){ +objj_msgSendSuper({receiver:_a9,super_class:objj_getClass("CPButton")},"encodeWithCoder:",_ab); +objj_msgSend(_ab,"encodeObject:forKey:",_menu,_a3); +objj_msgSend(_ab,"encodeInt:forKey:",_selectedIndex,_a4); +} +})]); +p;21;CPProgressIndicator.jI;19;AppKit/CGGeometry.jI;20;AppKit/CPImageView.jI;15;AppKit/CPView.jc;8511; +CPProgressIndicatorBarStyle=0; +CPProgressIndicatorSpinningStyle=1; +CPProgressIndicatorHUDBarStyle=2; +var _1=nil,_2=nil,_3=nil,_4=nil; +var _5=objj_allocateClassPair(CPView,"CPProgressIndicator"),_6=_5.isa; +class_addIvars(_5,[new objj_ivar("_minValue"),new objj_ivar("_maxValue"),new objj_ivar("_doubleValue"),new objj_ivar("_controlSize"),new objj_ivar("_isIndeterminate"),new objj_ivar("_style"),new objj_ivar("_isAnimating"),new objj_ivar("_isDisplayedWhenStoppedSet"),new objj_ivar("_isDisplayedWhenStopped"),new objj_ivar("_barView")]); +objj_registerClassPair(_5); +objj_addClassForBundle(_5,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_5,[new objj_method(sel_getUid("initWithFrame:"),function(_7,_8,_9){ +with(_7){ +_7=objj_msgSendSuper({receiver:_7,super_class:objj_getClass("CPView")},"initWithFrame:",_9); +if(_7){ +_minValue=0; +_maxValue=100; +_doubleValue=0; +_style=CPProgressIndicatorBarStyle; +_isDisplayedWhenStoppedSet=NO; +_controlSize=CPRegularControlSize; +objj_msgSend(_7,"updateBackgroundColor"); +objj_msgSend(_7,"drawBar"); +} +return _7; +} +}),new objj_method(sel_getUid("setUsesThreadedAnimation:"),function(_a,_b,_c){ +with(_a){ +} +}),new objj_method(sel_getUid("startAnimation:"),function(_d,_e,_f){ +with(_d){ +_isAnimating=YES; +objj_msgSend(_d,"_hideOrDisplay"); +} +}),new objj_method(sel_getUid("stopAnimation:"),function(_10,_11,_12){ +with(_10){ +_isAnimating=NO; +objj_msgSend(_10,"_hideOrDisplay"); +} +}),new objj_method(sel_getUid("usesThreadedAnimation"),function(_13,_14){ +with(_13){ +return NO; +} +}),new objj_method(sel_getUid("incrementBy:"),function(_15,_16,_17){ +with(_15){ +objj_msgSend(_15,"setDoubleValue:",_doubleValue+_17); +} +}),new objj_method(sel_getUid("setDoubleValue:"),function(_18,_19,_1a){ +with(_18){ +_doubleValue=MIN(MAX(_1a,_minValue),_maxValue); +objj_msgSend(_18,"drawBar"); +} +}),new objj_method(sel_getUid("doubleValue"),function(_1b,_1c){ +with(_1b){ +return _doubleValue; +} +}),new objj_method(sel_getUid("setMinValue:"),function(_1d,_1e,_1f){ +with(_1d){ +_minValue=_1f; +} +}),new objj_method(sel_getUid("minValue"),function(_20,_21){ +with(_20){ +return _minValue; +} +}),new objj_method(sel_getUid("setMaxValue:"),function(_22,_23,_24){ +with(_22){ +_maxValue=_24; +} +}),new objj_method(sel_getUid("maxValue"),function(_25,_26){ +with(_25){ +return _maxValue; +} +}),new objj_method(sel_getUid("setControlSize:"),function(_27,_28,_29){ +with(_27){ +if(_controlSize==_29){ +return; +} +_controlSize=_29; +objj_msgSend(_27,"updateBackgroundColor"); +} +}),new objj_method(sel_getUid("controlSize"),function(_2a,_2b){ +with(_2a){ +return _controlSize; +} +}),new objj_method(sel_getUid("setControlTint:"),function(_2c,_2d,_2e){ +with(_2c){ +} +}),new objj_method(sel_getUid("controlTint"),function(_2f,_30){ +with(_2f){ +return 0; +} +}),new objj_method(sel_getUid("setBezeled:"),function(_31,_32,_33){ +with(_31){ +} +}),new objj_method(sel_getUid("isBezeled"),function(_34,_35){ +with(_34){ +return YES; +} +}),new objj_method(sel_getUid("setIndeterminate:"),function(_36,_37,_38){ +with(_36){ +if(_isIndeterminate==_38){ +return; +} +_isIndeterminate=_38; +objj_msgSend(_36,"updateBackgroundColor"); +} +}),new objj_method(sel_getUid("isIndeterminate"),function(_39,_3a){ +with(_39){ +return _isIndeterminate; +} +}),new objj_method(sel_getUid("setStyle:"),function(_3b,_3c,_3d){ +with(_3b){ +if(_style==_3d){ +return; +} +_style=_3d; +objj_msgSend(_3b,"updateBackgroundColor"); +} +}),new objj_method(sel_getUid("sizeToFit"),function(_3e,_3f){ +with(_3e){ +if(_style==CPProgressIndicatorSpinningStyle){ +objj_msgSend(_3e,"setFrameSize:",objj_msgSend(objj_msgSend(_1[_controlSize],"patternImage"),"size")); +}else{ +objj_msgSend(_3e,"setFrameSize:",CGSizeMake(CGRectGetWidth(objj_msgSend(_3e,"frame")),_4[_2+"BezelBorder"+_3[CPProgressIndicatorBarStyle]+_CPControlIdentifierForControlSize(_controlSize)][0].height)); +} +} +}),new objj_method(sel_getUid("setDisplayedWhenStopped:"),function(_40,_41,_42){ +with(_40){ +if(_isDisplayedWhenStoppedSet&&_isDisplayedWhenStopped==_42){ +return; +} +_isDisplayedWhenStoppedSet=YES; +_isDisplayedWhenStopped=_42; +objj_msgSend(_40,"_hideOrDisplay"); +} +}),new objj_method(sel_getUid("isDisplayedWhenStopped"),function(_43,_44){ +with(_43){ +if(_isDisplayedWhenStoppedSet){ +return _isDisplayedWhenStopped; +} +if(_style==CPProgressIndicatorBarStyle||_style==CPProgressIndicatorHUDBarStyle){ +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("_hideOrDisplay"),function(_45,_46){ +with(_45){ +objj_msgSend(_45,"setHidden:",!_isAnimating&&!objj_msgSend(_45,"isDisplayedWhenStopped")); +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_47,_48,_49){ +with(_47){ +objj_msgSendSuper({receiver:_47,super_class:objj_getClass("CPView")},"setFrameSize:",_49); +objj_msgSend(_47,"drawBar"); +} +}),new objj_method(sel_getUid("drawBar"),function(_4a,_4b){ +with(_4a){ +if(_style==CPProgressIndicatorSpinningStyle){ +return; +} +if(!_barView){ +_barView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(2,2,0,9)); +objj_msgSend(_barView,"setBackgroundColor:",objj_msgSend(CPColor,"redColor")); +objj_msgSend(_4a,"addSubview:",_barView); +} +objj_msgSend(_barView,"setBackgroundColor:",_CPControlColorWithPatternImage(_4,_2,"Bar",_3[_style],_CPControlIdentifierForControlSize(_controlSize))); +objj_msgSend(_barView,"setFrameSize:",CGSizeMake(CGRectGetWidth(objj_msgSend(_4a,"bounds"))*(_doubleValue-_minValue)/(_maxValue-_minValue)-4,9)); +} +}),new objj_method(sel_getUid("updateBackgroundColor"),function(_4c,_4d){ +with(_4c){ +if(YES){ +if(_style==CPProgressIndicatorSpinningStyle){ +objj_msgSend(_barView,"removeFromSuperview"); +_barView=nil; +objj_msgSend(_4c,"setBackgroundColor:",_1[_controlSize]); +}else{ +objj_msgSend(_4c,"setBackgroundColor:",_CPControlThreePartImagePattern(NO,_4,_2,"BezelBorder",_3[_style],_CPControlIdentifierForControlSize(_controlSize))); +objj_msgSend(_4c,"drawBar"); +} +}else{ +objj_msgSend(_4c,"setBackgroundColor:",nil); +} +} +})]); +class_addMethods(_6,[new objj_method(sel_getUid("initialize"),function(_4e,_4f){ +with(_4e){ +if(_4e!=objj_msgSend(CPProgressIndicator,"class")){ +return; +} +var _50=objj_msgSend(CPBundle,"bundleForClass:",_4e); +_1=[]; +_1[CPMiniControlSize]=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_50,"pathForResource:","CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"),CGSizeMake(64,64))); +_1[CPSmallControlSize]=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_50,"pathForResource:","CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"),CGSizeMake(64,64))); +_1[CPRegularControlSize]=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_50,"pathForResource:","CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"),CGSizeMake(64,64))); +CPProgressIndicatorBezelBorderViewPool=[]; +var _51=CPProgressIndicatorBarStyle,end=CPProgressIndicatorHUDBarStyle; +for(;_51<=end;++_51){ +CPProgressIndicatorBezelBorderViewPool[_51]=[]; +CPProgressIndicatorBezelBorderViewPool[_51][CPMiniControlSize]=[]; +CPProgressIndicatorBezelBorderViewPool[_51][CPSmallControlSize]=[]; +CPProgressIndicatorBezelBorderViewPool[_51][CPRegularControlSize]=[]; +} +_2=objj_msgSend(_4e,"className"); +_3=[]; +_3[CPProgressIndicatorBarStyle]="Bar"; +_3[CPProgressIndicatorSpinningStyle]="Spinny"; +_3[CPProgressIndicatorHUDBarStyle]="HUDBar"; +var _53=_CPControlIdentifierForControlSize(CPRegularControlSize),_54=_CPControlIdentifierForControlSize(CPSmallControlSize),_55=_CPControlIdentifierForControlSize(CPMiniControlSize); +_4=[]; +var _56=_2+"BezelBorder"+_3[CPProgressIndicatorBarStyle]; +_4[_56+_53]=[{width:3,height:15},{width:1,height:15},{width:3,height:15}]; +_4[_56+_54]=[{width:3,height:15},{width:1,height:15},{width:3,height:15}]; +_4[_56+_55]=[{width:3,height:15},{width:1,height:15},{width:3,height:15}]; +_56=_2+"Bar"+_3[CPProgressIndicatorBarStyle]; +_4[_56+_53]={width:1,height:9}; +_4[_56+_54]={width:1,height:9}; +_4[_56+_55]={width:1,height:9}; +_56=_2+"BezelBorder"+_3[CPProgressIndicatorHUDBarStyle]; +_4[_56+_53]=[{width:3,height:15},{width:1,height:15},{width:3,height:15}]; +_4[_56+_54]=[{width:3,height:15},{width:1,height:15},{width:3,height:15}]; +_4[_56+_55]=[{width:3,height:15},{width:1,height:15},{width:3,height:15}]; +_56=_2+"Bar"+_3[CPProgressIndicatorHUDBarStyle]; +_4[_56+_53]={width:1,height:9}; +_4[_56+_54]={width:1,height:9}; +_4[_56+_55]={width:1,height:9}; +} +})]); +p;9;CPRadio.jI;21;Foundation/CPObject.jI;18;Foundation/CPSet.ji;10;CPButton.jc;5034; +var _1=objj_allocateClassPair(CPButton,"CPRadio"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_radioGroup")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:radioGroup:"),function(_3,_4,_5,_6){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPButton")},"initWithFrame:",_5); +if(_3){ +objj_msgSend(_3,"setRadioGroup:",_6||objj_msgSend(CPRadioGroup,"new")); +objj_msgSend(_3,"setHighlightsBy:",CPContentsCellMask); +objj_msgSend(_3,"setShowsStateBy:",CPContentsCellMask); +objj_msgSend(_3,"setImagePosition:",CPImageLeft); +objj_msgSend(_3,"setAlignment:",CPLeftTextAlignment); +objj_msgSend(_3,"setBordered:",YES); +} +return _3; +} +}),new objj_method(sel_getUid("initWithFrame:"),function(_7,_8,_9){ +with(_7){ +return objj_msgSend(_7,"initWithFrame:radioGroup:",_9,nil); +} +}),new objj_method(sel_getUid("nextState"),function(_a,_b){ +with(_a){ +return CPOnState; +} +}),new objj_method(sel_getUid("setRadioGroup:"),function(_c,_d,_e){ +with(_c){ +if(_radioGroup===_e){ +return; +} +objj_msgSend(_radioGroup,"_removeRadio:",_c); +_radioGroup=_e; +objj_msgSend(_radioGroup,"_addRadio:",_c); +} +}),new objj_method(sel_getUid("radioGroup"),function(_f,_10){ +with(_f){ +return _radioGroup; +} +}),new objj_method(sel_getUid("setObjectValue:"),function(_11,_12,_13){ +with(_11){ +objj_msgSendSuper({receiver:_11,super_class:objj_getClass("CPButton")},"setObjectValue:",_13); +if(objj_msgSend(_11,"state")===CPOnState){ +objj_msgSend(_radioGroup,"_setSelectedRadio:",_11); +} +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("radioWithTitle:theme:"),function(_14,_15,_16,_17){ +with(_14){ +return objj_msgSend(_14,"buttonWithTitle:theme:",_16,_17); +} +}),new objj_method(sel_getUid("radioWithTitle:"),function(_18,_19,_1a){ +with(_18){ +return objj_msgSend(_18,"buttonWithTitle:",_1a); +} +}),new objj_method(sel_getUid("standardButtonWithTitle:"),function(_1b,_1c,_1d){ +with(_1b){ +var _1e=objj_msgSend(objj_msgSend(CPRadio,"alloc"),"init"); +objj_msgSend(_1e,"setTitle:",_1d); +return _1e; +} +}),new objj_method(sel_getUid("themeClass"),function(_1f,_20){ +with(_1f){ +return "radio"; +} +})]); +var _21="CPRadioRadioGroupKey"; +var _1=objj_getClass("CPRadio"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPRadio\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_22,_23,_24){ +with(_22){ +_22=objj_msgSendSuper({receiver:_22,super_class:objj_getClass("CPButton")},"initWithCoder:",_24); +if(_22){ +_radioGroup=objj_msgSend(_24,"decodeObjectForKey:",_21); +} +return _22; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_25,_26,_27){ +with(_25){ +objj_msgSendSuper({receiver:_25,super_class:objj_getClass("CPButton")},"encodeWithCoder:",_27); +objj_msgSend(_27,"encodeObject:forKey:",_radioGroup,_21); +} +})]); +var _1=objj_allocateClassPair(CPObject,"CPRadioGroup"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_radios"),new objj_ivar("_selectedRadio")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("init"),function(_28,_29){ +with(_28){ +_28=objj_msgSendSuper({receiver:_28,super_class:objj_getClass("CPObject")},"init"); +if(_28){ +_radios=objj_msgSend(CPSet,"set"); +_selectedRadio=nil; +} +return _28; +} +}),new objj_method(sel_getUid("_addRadio:"),function(_2a,_2b,_2c){ +with(_2a){ +objj_msgSend(_radios,"addObject:",_2c); +if(objj_msgSend(_2c,"state")===CPOnState){ +objj_msgSend(_2a,"_setSelectedRadio:",_2c); +} +} +}),new objj_method(sel_getUid("_removeRadio:"),function(_2d,_2e,_2f){ +with(_2d){ +if(_selectedRadio===_2f){ +_selectedRadio=nil; +} +objj_msgSend(_radios,"removeObject:",_2f); +} +}),new objj_method(sel_getUid("_setSelectedRadio:"),function(_30,_31,_32){ +with(_30){ +if(_selectedRadio===_32){ +return; +} +objj_msgSend(_selectedRadio,"setState:",CPOffState); +_selectedRadio=_32; +} +}),new objj_method(sel_getUid("selectedRadio"),function(_33,_34){ +with(_33){ +return _selectedRadio; +} +}),new objj_method(sel_getUid("radios"),function(_35,_36){ +with(_35){ +return objj_msgSend(_radios,"allObjects"); +} +})]); +var _37="CPRadioGroupRadiosKey",_38="CPRadioGroupSelectedRadioKey"; +var _1=objj_getClass("CPRadioGroup"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPRadioGroup\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_39,_3a,_3b){ +with(_39){ +_39=objj_msgSendSuper({receiver:_39,super_class:objj_getClass("CPObject")},"init"); +if(_39){ +_radios=objj_msgSend(_3b,"decodeObjectForKey:",_37); +_selectedRadio=objj_msgSend(_3b,"decodeObjectForKey:",_38); +} +return _39; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_3c,_3d,_3e){ +with(_3c){ +objj_msgSend(_3e,"encodeObject:forKey:",_radios,_37); +objj_msgSend(_3e,"encodeObject:forKey:",_selectedRadio,_38); +} +})]); +p;13;CPResponder.jI;21;Foundation/CPObject.jc;5510; +CPDeleteKeyCode=8; +CPTabKeyCode=9; +CPReturnKeyCode=13; +CPEscapeKeyCode=27; +CPLeftArrowKeyCode=37; +CPUpArrowKeyCode=38; +CPRightArrowKeyCode=39; +CPDownArrowKeyCode=40; +var _1=objj_allocateClassPair(CPObject,"CPResponder"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_menu"),new objj_ivar("_nextResponder")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("acceptsFirstResponder"),function(_3,_4){ +with(_3){ +return NO; +} +}),new objj_method(sel_getUid("becomeFirstResponder"),function(_5,_6){ +with(_5){ +return YES; +} +}),new objj_method(sel_getUid("resignFirstResponder"),function(_7,_8){ +with(_7){ +return YES; +} +}),new objj_method(sel_getUid("setNextResponder:"),function(_9,_a,_b){ +with(_9){ +_nextResponder=_b; +} +}),new objj_method(sel_getUid("nextResponder"),function(_c,_d){ +with(_c){ +return _nextResponder; +} +}),new objj_method(sel_getUid("interpretKeyEvents:"),function(_e,_f,_10){ +with(_e){ +var _11,_12=0; +while(_11=_10[_12++]){ +switch(objj_msgSend(_11,"keyCode")){ +case CPLeftArrowKeyCode: +objj_msgSend(_e,"moveBackward:",_e); +break; +case CPRightArrowKeyCode: +objj_msgSend(_e,"moveForward:",_e); +break; +case CPUpArrowKeyCode: +objj_msgSend(_e,"moveUp:",_e); +break; +case CPDownArrowKeyCode: +objj_msgSend(_e,"moveDown:",_e); +break; +case CPDeleteKeyCode: +objj_msgSend(_e,"deleteBackward:",_e); +break; +case CPReturnKeyCode: +case 3: +objj_msgSend(_e,"insertLineBreak:",_e); +break; +case CPEscapeKeyCode: +objj_msgSend(_e,"cancel:",_e); +break; +case CPTabKeyCode: +var _13=objj_msgSend(_11,"modifierFlags")&CPShiftKeyMask; +if(!_13){ +objj_msgSend(_e,"insertTab:",_e); +}else{ +objj_msgSend(_e,"insertBackTab:",_e); +} +break; +default: +objj_msgSend(_e,"insertText:",objj_msgSend(_11,"characters")); +} +} +} +}),new objj_method(sel_getUid("mouseDown:"),function(_14,_15,_16){ +with(_14){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_15,_16); +} +}),new objj_method(sel_getUid("mouseDragged:"),function(_17,_18,_19){ +with(_17){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_18,_19); +} +}),new objj_method(sel_getUid("mouseUp:"),function(_1a,_1b,_1c){ +with(_1a){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_1b,_1c); +} +}),new objj_method(sel_getUid("mouseMoved:"),function(_1d,_1e,_1f){ +with(_1d){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_1e,_1f); +} +}),new objj_method(sel_getUid("mouseEntered:"),function(_20,_21,_22){ +with(_20){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_21,_22); +} +}),new objj_method(sel_getUid("mouseExited:"),function(_23,_24,_25){ +with(_23){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_24,_25); +} +}),new objj_method(sel_getUid("scrollWheel:"),function(_26,_27,_28){ +with(_26){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_27,_28); +} +}),new objj_method(sel_getUid("keyDown:"),function(_29,_2a,_2b){ +with(_29){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_2a,_2b); +} +}),new objj_method(sel_getUid("keyUp:"),function(_2c,_2d,_2e){ +with(_2c){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_2d,_2e); +} +}),new objj_method(sel_getUid("performKeyEquivalent:"),function(_2f,_30,_31){ +with(_2f){ +return NO; +} +}),new objj_method(sel_getUid("deleteBackward:"),function(_32,_33,_34){ +with(_32){ +} +}),new objj_method(sel_getUid("insertLineBreak:"),function(_35,_36,_37){ +with(_35){ +objj_msgSend(_35,"insertNewline:",_37); +} +}),new objj_method(sel_getUid("insertNewline:"),function(_38,_39,_3a){ +with(_38){ +objj_msgSend(_38,"insertNewline:",_3a); +} +}),new objj_method(sel_getUid("cancel:"),function(_3b,_3c,_3d){ +with(_3b){ +} +}),new objj_method(sel_getUid("insertTab:"),function(_3e,_3f,_40){ +with(_3e){ +} +}),new objj_method(sel_getUid("insertBackTab:"),function(_41,_42,_43){ +with(_41){ +} +}),new objj_method(sel_getUid("insertText:"),function(_44,_45,_46){ +with(_44){ +} +}),new objj_method(sel_getUid("doCommandBySelector:"),function(_47,_48,_49){ +with(_47){ +if(objj_msgSend(_47,"respondsToSelector:",_49)){ +objj_msgSend(_47,"performSelector:",_49); +}else{ +objj_msgSend(_nextResponder,"doCommandBySelector:",_49); +} +} +}),new objj_method(sel_getUid("tryToPerform:with:"),function(_4a,_4b,_4c,_4d){ +with(_4a){ +if(objj_msgSend(_4a,"respondsToSelector:",_4c)){ +objj_msgSend(_4a,"performSelector:withObject:",_4c,_4d); +return YES; +} +return objj_msgSend(_nextResponder,"tryToPerform:with:",_4c,_4d); +} +}),new objj_method(sel_getUid("setMenu:"),function(_4e,_4f,_50){ +with(_4e){ +_menu=_50; +} +}),new objj_method(sel_getUid("menu"),function(_51,_52){ +with(_51){ +return _menu; +} +}),new objj_method(sel_getUid("undoManager"),function(_53,_54){ +with(_53){ +return objj_msgSend(_nextResponder,"performSelector:",_54); +} +}),new objj_method(sel_getUid("noResponderFor:"),function(_55,_56,_57){ +with(_55){ +} +})]); +var _58="CPResponderNextResponderKey"; +var _1=objj_getClass("CPResponder"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPResponder\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_59,_5a,_5b){ +with(_59){ +_59=objj_msgSendSuper({receiver:_59,super_class:objj_getClass("CPObject")},"init"); +if(_59){ +_nextResponder=objj_msgSend(_5b,"decodeObjectForKey:",_58); +} +return _59; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_5c,_5d,_5e){ +with(_5c){ +if(_nextResponder!==nil){ +objj_msgSend(_5e,"encodeConditionalObject:forKey:",_nextResponder,_58); +} +} +})]); +p;12;CPScroller.ji;11;CPControl.jc;15280; +CPScrollerNoPart=0; +CPScrollerDecrementPage=1; +CPScrollerKnob=2; +CPScrollerIncrementPage=3; +CPScrollerDecrementLine=4; +CPScrollerIncrementLine=5; +CPScrollerKnobSlot=6; +CPScrollerIncrementArrow=0; +CPScrollerDecrementArrow=1; +CPNoScrollerParts=0; +CPOnlyScrollerArrows=1; +CPAllScrollerParts=2; +var _1=[CPScrollerKnobSlot,CPScrollerDecrementLine,CPScrollerIncrementLine,CPScrollerKnob],_2={},_3={}; +_2[CPScrollerDecrementLine]="decrement-line"; +_2[CPScrollerIncrementLine]="increment-line"; +_2[CPScrollerKnobSlot]="knob-slot"; +_2[CPScrollerKnob]="knob"; +var _4=objj_allocateClassPair(CPControl,"CPScroller"),_5=_4.isa; +class_addIvars(_4,[new objj_ivar("_controlSize"),new objj_ivar("_usableParts"),new objj_ivar("_partRects"),new objj_ivar("_isVertical"),new objj_ivar("_knobProportion"),new objj_ivar("_hitPart"),new objj_ivar("_trackingPart"),new objj_ivar("_trackingFloatValue"),new objj_ivar("_trackingStartPoint")]); +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("isVertical"),function(_6,_7){ +with(_6){ +return _isVertical; +} +}),new objj_method(sel_getUid("initWithFrame:"),function(_8,_9,_a){ +with(_8){ +_8=objj_msgSendSuper({receiver:_8,super_class:objj_getClass("CPControl")},"initWithFrame:",_a); +if(_8){ +_controlSize=CPRegularControlSize; +_partRects=[]; +objj_msgSend(_8,"setFloatValue:knobProportion:",0,1); +_hitPart=CPScrollerNoPart; +objj_msgSend(_8,"_recalculateIsVertical"); +} +return _8; +} +}),new objj_method(sel_getUid("setControlSize:"),function(_b,_c,_d){ +with(_b){ +if(_controlSize==_d){ +return; +} +_controlSize=_d; +objj_msgSend(_b,"setNeedsLayout"); +objj_msgSend(_b,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("controlSize"),function(_e,_f){ +with(_e){ +return _controlSize; +} +}),new objj_method(sel_getUid("setFloatValue:"),function(_10,_11,_12){ +with(_10){ +objj_msgSendSuper({receiver:_10,super_class:objj_getClass("CPControl")},"setFloatValue:",MIN(1,MAX(0,_12))); +objj_msgSend(_10,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("setFloatValue:knobProportion:"),function(_13,_14,_15,_16){ +with(_13){ +_knobProportion=MIN(1,MAX(0.0001,_16)); +objj_msgSend(_13,"setFloatValue:",_15); +} +}),new objj_method(sel_getUid("knobProportion"),function(_17,_18){ +with(_17){ +return _knobProportion; +} +}),new objj_method(sel_getUid("currentValueForThemeAttribute:"),function(_19,_1a,_1b){ +with(_19){ +var _1c=_themeState; +if(_2[_hitPart]+"-color"!==_1b){ +_1c&=~CPThemeStateHighlighted; +} +return objj_msgSend(_19,"valueForThemeAttribute:inState:",_1b,_1c); +} +}),new objj_method(sel_getUid("rectForPart:"),function(_1d,_1e,_1f){ +with(_1d){ +if(_1f==CPScrollerNoPart){ +return {origin:{x:0,y:0},size:{width:0,height:0}}; +} +return _partRects[_1f]; +} +}),new objj_method(sel_getUid("testPart:"),function(_20,_21,_22){ +with(_20){ +_22=objj_msgSend(_20,"convertPoint:fromView:",_22,nil); +if(CGRectContainsPoint(objj_msgSend(_20,"rectForPart:",CPScrollerKnob),_22)){ +return CPScrollerKnob; +} +if(CGRectContainsPoint(objj_msgSend(_20,"rectForPart:",CPScrollerDecrementPage),_22)){ +return CPScrollerDecrementPage; +} +if(CGRectContainsPoint(objj_msgSend(_20,"rectForPart:",CPScrollerIncrementPage),_22)){ +return CPScrollerIncrementPage; +} +if(CGRectContainsPoint(objj_msgSend(_20,"rectForPart:",CPScrollerDecrementLine),_22)){ +return CPScrollerDecrementLine; +} +if(CGRectContainsPoint(objj_msgSend(_20,"rectForPart:",CPScrollerIncrementLine),_22)){ +return CPScrollerIncrementLine; +} +if(CGRectContainsPoint(objj_msgSend(_20,"rectForPart:",CPScrollerKnobSlot),_22)){ +return CPScrollerKnobSlot; +} +return CPScrollerNoPart; +} +}),new objj_method(sel_getUid("checkSpaceForParts"),function(_23,_24){ +with(_23){ +var _25=objj_msgSend(_23,"bounds"); +if(_knobProportion===1){ +_usableParts=CPNoScrollerParts; +_partRects[CPScrollerDecrementPage]={origin:{x:0,y:0},size:{width:0,height:0}}; +_partRects[CPScrollerKnob]={origin:{x:0,y:0},size:{width:0,height:0}}; +_partRects[CPScrollerIncrementPage]={origin:{x:0,y:0},size:{width:0,height:0}}; +_partRects[CPScrollerDecrementLine]={origin:{x:0,y:0},size:{width:0,height:0}}; +_partRects[CPScrollerIncrementLine]={origin:{x:0,y:0},size:{width:0,height:0}}; +_partRects[CPScrollerKnobSlot]={origin:{x:_25.origin.x,y:_25.origin.y},size:{width:_25.size.width,height:_25.size.height}}; +return; +} +_usableParts=CPAllScrollerParts; +var _26=objj_msgSend(_23,"currentValueForThemeAttribute:","knob-inset"),_27=objj_msgSend(_23,"currentValueForThemeAttribute:","track-inset"),_28=(_25.size.width),_29=(_25.size.height); +if(objj_msgSend(_23,"isVertical")){ +var _2a=objj_msgSend(_23,"currentValueForThemeAttribute:","decrement-line-size"),_2b=objj_msgSend(_23,"currentValueForThemeAttribute:","increment-line-size"),_2c=_2a.height+_27.top,_2d=_2b.height+_27.bottom,_2e=_29-_2c-_2d,_2f=objj_msgSend(_23,"currentValueForThemeAttribute:","minimum-knob-length"),_30=_28-_26.left-_26.right,_31=MAX(_2f,(_2e*_knobProportion)),_32=_2c+(_2e-_31)*objj_msgSend(_23,"floatValue"); +_partRects[CPScrollerDecrementPage]={origin:{x:0,y:_2c},size:{width:_28,height:_32-_2c}}; +_partRects[CPScrollerKnob]={origin:{x:_26.left,y:_32},size:{width:_30,height:_31}}; +_partRects[CPScrollerIncrementPage]={origin:{x:0,y:_32+_31},size:{width:_28,height:_29-(_32+_31)-_2d}}; +_partRects[CPScrollerKnobSlot]={origin:{x:_27.left,y:_2c},size:{width:_28-_27.left-_27.right,height:_2e}}; +_partRects[CPScrollerDecrementLine]={origin:{x:0,y:0},size:{width:_2a.width,height:_2a.height}}; +_partRects[CPScrollerIncrementLine]={origin:{x:0,y:_29-_2b.height},size:{width:_2b.width,height:_2b.height}}; +}else{ +var _2a=objj_msgSend(_23,"currentValueForThemeAttribute:","decrement-line-size"),_2b=objj_msgSend(_23,"currentValueForThemeAttribute:","increment-line-size"),_33=_2a.width+_27.left,_34=_2b.width+_27.right; +slotWidth=_28-_33-_34,_2f=objj_msgSend(_23,"currentValueForThemeAttribute:","minimum-knob-length"),_30=MAX(_2f,(slotWidth*_knobProportion)),_31=_29-_26.top-_26.bottom,_32=_33+(slotWidth-_30)*objj_msgSend(_23,"floatValue"); +_partRects[CPScrollerDecrementPage]={origin:{x:_33,y:0},size:{width:_32-_33,height:_29}}; +_partRects[CPScrollerKnob]={origin:{x:_32,y:_26.top},size:{width:_30,height:_31}}; +_partRects[CPScrollerIncrementPage]={origin:{x:_32+_30,y:0},size:{width:_28-(_32+_30)-_34,height:_29}}; +_partRects[CPScrollerKnobSlot]={origin:{x:_33,y:_27.top},size:{width:slotWidth,height:_29-_27.top-_27.bottom}}; +_partRects[CPScrollerDecrementLine]={origin:{x:0,y:0},size:{width:_2a.width,height:_2a.height}}; +_partRects[CPScrollerIncrementLine]={origin:{x:_28-_2b.width,y:0},size:{width:_2b.width,height:_2b.height}}; +} +} +}),new objj_method(sel_getUid("usableParts"),function(_35,_36){ +with(_35){ +return _usableParts; +} +}),new objj_method(sel_getUid("drawArrow:highlight:"),function(_37,_38,_39,_3a){ +with(_37){ +} +}),new objj_method(sel_getUid("drawKnob"),function(_3b,_3c){ +with(_3b){ +} +}),new objj_method(sel_getUid("drawKnobSlot"),function(_3d,_3e){ +with(_3d){ +} +}),new objj_method(sel_getUid("createViewForPart:"),function(_3f,_40,_41){ +with(_3f){ +var _42=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +objj_msgSend(_42,"setHitTests:",NO); +return _42; +} +}),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_43,_44,_45){ +with(_43){ +return _partRects[_45]; +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_46,_47,_48){ +with(_46){ +var _49=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +objj_msgSend(_49,"setHitTests:",NO); +return _49; +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_4a,_4b){ +with(_4a){ +objj_msgSend(_4a,"checkSpaceForParts"); +var _4c=0,_4d=_1.length; +for(;_4c<_4d;++_4c){ +var _4e=_1[_4c]; +if(_4c===0){ +view=objj_msgSend(_4a,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:",_4e,CPWindowBelow,_1[_4c+1]); +}else{ +view=objj_msgSend(_4a,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:",_4e,CPWindowAbove,_1[_4c-1]); +} +if(view){ +objj_msgSend(view,"setBackgroundColor:",objj_msgSend(_4a,"currentValueForThemeAttribute:",_2[_4e]+"-color")); +} +} +} +}),new objj_method(sel_getUid("drawParts"),function(_4f,_50){ +with(_4f){ +objj_msgSend(_4f,"drawKnobSlot"); +objj_msgSend(_4f,"drawKnob"); +objj_msgSend(_4f,"drawArrow:highlight:",CPScrollerDecrementArrow,NO); +objj_msgSend(_4f,"drawArrow:highlight:",CPScrollerIncrementArrow,NO); +} +}),new objj_method(sel_getUid("hitPart"),function(_51,_52){ +with(_51){ +return _hitPart; +} +}),new objj_method(sel_getUid("trackKnob:"),function(_53,_54,_55){ +with(_53){ +var _56=objj_msgSend(_55,"type"); +if(_56===CPLeftMouseUp){ +_hitPart=CPScrollerNoPart; +return; +} +if(_56===CPLeftMouseDown){ +_trackingFloatValue=objj_msgSend(_53,"floatValue"); +_trackingStartPoint=objj_msgSend(_53,"convertPoint:fromView:",objj_msgSend(_55,"locationInWindow"),nil); +}else{ +if(_56===CPLeftMouseDragged){ +var _57=objj_msgSend(_53,"rectForPart:",CPScrollerKnob),_58=objj_msgSend(_53,"rectForPart:",CPScrollerKnobSlot),_59=!objj_msgSend(_53,"isVertical")?((_58.size.width)-(_57.size.width)):((_58.size.height)-(_57.size.height)); +if(_59<=0){ +objj_msgSend(_53,"setFloatValue:",0); +}else{ +var _5a=objj_msgSend(_53,"convertPoint:fromView:",objj_msgSend(_55,"locationInWindow"),nil); +delta=!objj_msgSend(_53,"isVertical")?_5a.x-_trackingStartPoint.x:_5a.y-_trackingStartPoint.y; +objj_msgSend(_53,"setFloatValue:",_trackingFloatValue+delta/_59); +} +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_53,sel_getUid("trackKnob:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +objj_msgSend(_53,"sendAction:to:",objj_msgSend(_53,"action"),objj_msgSend(_53,"target")); +} +}),new objj_method(sel_getUid("trackScrollButtons:"),function(_5b,_5c,_5d){ +with(_5b){ +var _5e=objj_msgSend(_5d,"type"); +if(_5e===CPLeftMouseUp){ +objj_msgSend(_5b,"highlight:",NO); +objj_msgSend(CPEvent,"stopPeriodicEvents"); +_hitPart=CPScrollerNoPart; +return; +} +if(_5e===CPLeftMouseDown){ +_trackingPart=objj_msgSend(_5b,"hitPart"); +_trackingStartPoint=objj_msgSend(_5b,"convertPoint:fromView:",objj_msgSend(_5d,"locationInWindow"),nil); +if(objj_msgSend(_5d,"modifierFlags")&CPAlternateKeyMask){ +if(_trackingPart==CPScrollerDecrementLine){ +_hitPart=CPScrollerDecrementPage; +}else{ +if(_trackingPart==CPScrollerIncrementLine){ +_hitPart=CPScrollerIncrementPage; +}else{ +if(_trackingPart==CPScrollerDecrementPage||_trackingPart==CPScrollerIncrementPage){ +var _5f=objj_msgSend(_5b,"rectForPart:",CPScrollerKnob),_60=!objj_msgSend(_5b,"isVertical")?(_5f.size.width):(_5f.size.height),_61=objj_msgSend(_5b,"rectForPart:",CPScrollerKnobSlot),_62=(!objj_msgSend(_5b,"isVertical")?(_61.size.width):(_61.size.height))-_60; +objj_msgSend(_5b,"setFloatValue:",((!objj_msgSend(_5b,"isVertical")?_trackingStartPoint.x-(_61.origin.x):_trackingStartPoint.y-(_61.origin.y))-_60/2)/_62); +_hitPart=CPScrollerKnob; +objj_msgSend(_5b,"sendAction:to:",objj_msgSend(_5b,"action"),objj_msgSend(_5b,"target")); +return objj_msgSend(_5b,"trackKnob:",_5d); +} +} +} +} +objj_msgSend(_5b,"highlight:",YES); +objj_msgSend(_5b,"sendAction:to:",objj_msgSend(_5b,"action"),objj_msgSend(_5b,"target")); +objj_msgSend(CPEvent,"startPeriodicEventsAfterDelay:withPeriod:",0.5,0.04); +}else{ +if(_5e===CPLeftMouseDragged){ +_trackingStartPoint=objj_msgSend(_5b,"convertPoint:fromView:",objj_msgSend(_5d,"locationInWindow"),nil); +if(_trackingPart==CPScrollerDecrementPage||_trackingPart==CPScrollerIncrementPage){ +var _63=objj_msgSend(_5b,"testPart:",objj_msgSend(_5d,"locationInWindow")); +if(_63==CPScrollerDecrementPage||_63==CPScrollerIncrementPage){ +_trackingPart=_63; +_hitPart=_63; +} +} +objj_msgSend(_5b,"highlight:",CGRectContainsPoint(objj_msgSend(_5b,"rectForPart:",_trackingPart),_trackingStartPoint)); +}else{ +if(_5e==CPPeriodic&&CGRectContainsPoint(objj_msgSend(_5b,"rectForPart:",_trackingPart),_trackingStartPoint)){ +objj_msgSend(_5b,"sendAction:to:",objj_msgSend(_5b,"action"),objj_msgSend(_5b,"target")); +} +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_5b,sel_getUid("trackScrollButtons:"),CPPeriodicMask|CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +}),new objj_method(sel_getUid("_recalculateIsVertical"),function(_64,_65){ +with(_64){ +var _66=objj_msgSend(_64,"bounds"),_67=(_66.size.width),_68=(_66.size.height); +_isVertical=_67<_68?1:(_67>_68?0:-1); +if(_isVertical===1){ +objj_msgSend(_64,"setThemeState:",CPThemeStateVertical); +}else{ +if(_isVertical===0){ +objj_msgSend(_64,"unsetThemeState:",CPThemeStateVertical); +} +} +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_69,_6a,_6b){ +with(_69){ +objj_msgSendSuper({receiver:_69,super_class:objj_getClass("CPControl")},"setFrameSize:",_6b); +objj_msgSend(_69,"_recalculateIsVertical"); +objj_msgSend(_69,"checkSpaceForParts"); +objj_msgSend(_69,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("mouseDown:"),function(_6c,_6d,_6e){ +with(_6c){ +if(!objj_msgSend(_6c,"isEnabled")){ +return; +} +_hitPart=objj_msgSend(_6c,"testPart:",objj_msgSend(_6e,"locationInWindow")); +switch(_hitPart){ +case CPScrollerKnob: +return objj_msgSend(_6c,"trackKnob:",_6e); +case CPScrollerDecrementLine: +case CPScrollerIncrementLine: +case CPScrollerDecrementPage: +case CPScrollerIncrementPage: +return objj_msgSend(_6c,"trackScrollButtons:",_6e); +} +} +})]); +class_addMethods(_5,[new objj_method(sel_getUid("themeClass"),function(_6f,_70){ +with(_6f){ +return "scroller"; +} +}),new objj_method(sel_getUid("themeAttributes"),function(_71,_72){ +with(_71){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[nil,nil,nil,nil,{width:0,height:0},{width:0,height:0},{top:(0),right:(0),bottom:(0),left:(0)},{top:(0),right:(0),bottom:(0),left:(0)},{width:0,height:0}],["knob-slot-color","decrement-line-color","increment-line-color","knob-color","decrement-line-size","increment-line-size","track-inset","knob-inset","minimum-knob-length"]); +} +}),new objj_method(sel_getUid("scrollerWidth"),function(_73,_74){ +with(_73){ +return 17; +} +}),new objj_method(sel_getUid("scrollerWidthForControlSize:"),function(_75,_76,_77){ +with(_75){ +return 17; +} +})]); +var _78="CPScrollerControlSize",_79="CPScrollerKnobProportion"; +var _4=objj_getClass("CPScroller"); +if(!_4){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPScroller\"")); +} +var _5=_4.isa; +class_addMethods(_4,[new objj_method(sel_getUid("initWithCoder:"),function(_7a,_7b,_7c){ +with(_7a){ +if(_7a=objj_msgSendSuper({receiver:_7a,super_class:objj_getClass("CPControl")},"initWithCoder:",_7c)){ +_controlSize=CPRegularControlSize; +if(objj_msgSend(_7c,"containsValueForKey:",_78)){ +_controlSize=objj_msgSend(_7c,"decodeIntForKey:",_78); +} +_knobProportion=1; +if(objj_msgSend(_7c,"containsValueForKey:",_79)){ +_knobProportion=objj_msgSend(_7c,"decodeFloatForKey:",_79); +} +_partRects=[]; +_hitPart=CPScrollerNoPart; +objj_msgSend(_7a,"_recalculateIsVertical"); +} +return _7a; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_7d,_7e,_7f){ +with(_7d){ +objj_msgSendSuper({receiver:_7d,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_7f); +objj_msgSend(_7f,"encodeInt:forKey:",_controlSize,_78); +objj_msgSend(_7f,"encodeFloat:forKey:",_knobProportion,_79); +} +})]); +p;14;CPScrollView.ji;8;CPView.ji;12;CPClipView.ji;12;CPScroller.jc;14690; +var _1=objj_allocateClassPair(CPView,"CPScrollView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_contentView"),new objj_ivar("_hasVerticalScroller"),new objj_ivar("_hasHorizontalScroller"),new objj_ivar("_autohidesScrollers"),new objj_ivar("_verticalScroller"),new objj_ivar("_horizontalScroller"),new objj_ivar("_recursionCount"),new objj_ivar("_verticalLineScroll"),new objj_ivar("_verticalPageScroll"),new objj_ivar("_horizontalLineScroll"),new objj_ivar("_horizontalPageScroll")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPView")},"initWithFrame:",_5); +if(_3){ +_verticalLineScroll=10; +_verticalPageScroll=10; +_horizontalLineScroll=10; +_horizontalPageScroll=10; +_contentView=objj_msgSend(objj_msgSend(CPClipView,"alloc"),"initWithFrame:",objj_msgSend(_3,"bounds")); +objj_msgSend(_3,"addSubview:",_contentView); +objj_msgSend(_3,"setHasVerticalScroller:",YES); +objj_msgSend(_3,"setHasHorizontalScroller:",YES); +} +return _3; +} +}),new objj_method(sel_getUid("contentSize"),function(_6,_7){ +with(_6){ +return objj_msgSend(_contentView,"frame").size; +} +}),new objj_method(sel_getUid("documentView"),function(_8,_9){ +with(_8){ +return objj_msgSend(_contentView,"documentView"); +} +}),new objj_method(sel_getUid("setContentView:"),function(_a,_b,_c){ +with(_a){ +if(!_c){ +return; +} +var _d=objj_msgSend(_c,"documentView"); +if(_d){ +objj_msgSend(_d,"removeFromSuperview"); +} +objj_msgSend(_contentView,"removeFromSuperview"); +var _e=objj_msgSend(_a,"contentSize"); +_contentView=_c; +objj_msgSend(_contentView,"setFrame:",CGRectMake(0,0,_e.width,_e.height)); +objj_msgSend(_contentView,"setDocumentView:",_d); +objj_msgSend(_a,"addSubview:",_contentView); +} +}),new objj_method(sel_getUid("contentView"),function(_f,_10){ +with(_f){ +return _contentView; +} +}),new objj_method(sel_getUid("setDocumentView:"),function(_11,_12,_13){ +with(_11){ +objj_msgSend(_contentView,"setDocumentView:",_13); +objj_msgSend(_11,"reflectScrolledClipView:",_contentView); +} +}),new objj_method(sel_getUid("reflectScrolledClipView:"),function(_14,_15,_16){ +with(_14){ +if(_contentView!==_16){ +return; +} +if(_recursionCount>5){ +return; +} +++_recursionCount; +var _17=objj_msgSend(_14,"documentView"); +if(!_17){ +if(_autohidesScrollers){ +objj_msgSend(_verticalScroller,"setHidden:",YES); +objj_msgSend(_horizontalScroller,"setHidden:",YES); +}else{ +} +objj_msgSend(_contentView,"setFrame:",objj_msgSend(_14,"bounds")); +--_recursionCount; +return; +} +var _18=objj_msgSend(_17,"frame"),_19=objj_msgSend(_14,"bounds"),_1a=objj_msgSend(_contentView,"bounds").origin,_1b={width:CPRectGetWidth(_18)-CPRectGetWidth(_19),height:CPRectGetHeight(_18)-CPRectGetHeight(_19)},_1c=(!_autohidesScrollers||_1b.height>0)&&_hasVerticalScroller,_1d=(!_autohidesScrollers||_1b.width>0)&&_hasHorizontalScroller,_1e=!objj_msgSend(_verticalScroller,"isHidden"),_1f=!objj_msgSend(_horizontalScroller,"isHidden"),_20=(objj_msgSend(_verticalScroller,"frame").size.width); +horizontalScrollerHeight=(objj_msgSend(_horizontalScroller,"frame").size.height); +if(_autohidesScrollers){ +if(_1c){ +_1d=(!_autohidesScrollers||_1b.width>-_20)&&_hasHorizontalScroller; +} +if(_1d){ +_1c=(!_autohidesScrollers||_1b.height>-horizontalScrollerHeight)&&_hasVerticalScroller; +} +} +objj_msgSend(_verticalScroller,"setHidden:",!_1c); +objj_msgSend(_verticalScroller,"setEnabled:",_1b.height>0); +objj_msgSend(_horizontalScroller,"setHidden:",!_1d); +objj_msgSend(_horizontalScroller,"setEnabled:",_1b.width>0); +if(_1c){ +var _21=CPRectGetHeight(_19); +if(_1d){ +_21-=horizontalScrollerHeight; +} +_1b.width+=_20; +_19.size.width-=_20; +objj_msgSend(_verticalScroller,"setFloatValue:knobProportion:",(_1b.height<=0)?0:_1a.y/_1b.height,CPRectGetHeight(_19)/CPRectGetHeight(_18)); +objj_msgSend(_verticalScroller,"setFrame:",CPRectMake(CPRectGetMaxX(_19),0,_20,_21)); +}else{ +if(_1e){ +objj_msgSend(_verticalScroller,"setFloatValue:knobProportion:",0,1); +} +} +if(_1d){ +_1b.height+=horizontalScrollerHeight; +_19.size.height-=horizontalScrollerHeight; +objj_msgSend(_horizontalScroller,"setFloatValue:knobProportion:",(_1b.width<=0)?0:_1a.x/_1b.width,CPRectGetWidth(_19)/CPRectGetWidth(_18)); +objj_msgSend(_horizontalScroller,"setFrame:",CPRectMake(0,CPRectGetMaxY(_19),CPRectGetWidth(_19),horizontalScrollerHeight)); +}else{ +if(_1f){ +objj_msgSend(_horizontalScroller,"setFloatValue:knobProportion:",0,1); +} +} +objj_msgSend(_contentView,"setFrame:",_19); +--_recursionCount; +} +}),new objj_method(sel_getUid("setHorizontalScroller:"),function(_22,_23,_24){ +with(_22){ +if(_horizontalScroller===_24){ +return; +} +objj_msgSend(_horizontalScroller,"removeFromSuperview"); +objj_msgSend(_horizontalScroller,"setTarget:",nil); +objj_msgSend(_horizontalScroller,"setAction:",nil); +_horizontalScroller=_24; +objj_msgSend(_horizontalScroller,"setTarget:",_22); +objj_msgSend(_horizontalScroller,"setAction:",sel_getUid("_horizontalScrollerDidScroll:")); +objj_msgSend(_22,"addSubview:",_horizontalScroller); +objj_msgSend(_22,"reflectScrolledClipView:",_contentView); +} +}),new objj_method(sel_getUid("horizontalScroller"),function(_25,_26){ +with(_25){ +return _horizontalScroller; +} +}),new objj_method(sel_getUid("setHasHorizontalScroller:"),function(_27,_28,_29){ +with(_27){ +if(_hasHorizontalScroller===_29){ +return; +} +_hasHorizontalScroller=_29; +if(_hasHorizontalScroller&&!_horizontalScroller){ +objj_msgSend(_27,"setHorizontalScroller:",objj_msgSend(objj_msgSend(CPScroller,"alloc"),"initWithFrame:",CGRectMake(0,0,CPRectGetWidth(objj_msgSend(_27,"bounds")),objj_msgSend(CPScroller,"scrollerWidth")))); +}else{ +if(!_hasHorizontalScroller&&_horizontalScroller){ +objj_msgSend(_horizontalScroller,"setHidden:",YES); +objj_msgSend(_27,"reflectScrolledClipView:",_contentView); +} +} +} +}),new objj_method(sel_getUid("hasHorizontalScroller"),function(_2a,_2b){ +with(_2a){ +return _hasHorizontalScroller; +} +}),new objj_method(sel_getUid("setVerticalScroller:"),function(_2c,_2d,_2e){ +with(_2c){ +if(_verticalScroller===_2e){ +return; +} +objj_msgSend(_verticalScroller,"removeFromSuperview"); +objj_msgSend(_verticalScroller,"setTarget:",nil); +objj_msgSend(_verticalScroller,"setAction:",nil); +_verticalScroller=_2e; +objj_msgSend(_verticalScroller,"setTarget:",_2c); +objj_msgSend(_verticalScroller,"setAction:",sel_getUid("_verticalScrollerDidScroll:")); +objj_msgSend(_2c,"addSubview:",_verticalScroller); +objj_msgSend(_2c,"reflectScrolledClipView:",_contentView); +} +}),new objj_method(sel_getUid("verticalScroller"),function(_2f,_30){ +with(_2f){ +return _verticalScroller; +} +}),new objj_method(sel_getUid("setHasVerticalScroller:"),function(_31,_32,_33){ +with(_31){ +if(_hasVerticalScroller===_33){ +return; +} +_hasVerticalScroller=_33; +if(_hasVerticalScroller&&!_verticalScroller){ +objj_msgSend(_31,"setVerticalScroller:",objj_msgSend(objj_msgSend(CPScroller,"alloc"),"initWithFrame:",CPRectMake(0,0,objj_msgSend(CPScroller,"scrollerWidth"),CPRectGetHeight(objj_msgSend(_31,"bounds"))))); +}else{ +if(!_hasVerticalScroller&&_verticalScroller){ +objj_msgSend(_verticalScroller,"setHidden:",YES); +objj_msgSend(_31,"reflectScrolledClipView:",_contentView); +} +} +} +}),new objj_method(sel_getUid("hasVerticalScroller"),function(_34,_35){ +with(_34){ +return _hasVerticalScroller; +} +}),new objj_method(sel_getUid("setAutohidesScrollers:"),function(_36,_37,_38){ +with(_36){ +if(_autohidesScrollers==_38){ +return; +} +_autohidesScrollers=_38; +objj_msgSend(_36,"reflectScrolledClipView:",_contentView); +} +}),new objj_method(sel_getUid("autohidesScrollers"),function(_39,_3a){ +with(_39){ +return _autohidesScrollers; +} +}),new objj_method(sel_getUid("_verticalScrollerDidScroll:"),function(_3b,_3c,_3d){ +with(_3b){ +var _3e=objj_msgSend(_3d,"floatValue"),_3f=objj_msgSend(objj_msgSend(_contentView,"documentView"),"frame"); +contentBounds=objj_msgSend(_contentView,"bounds"); +switch(objj_msgSend(_verticalScroller,"hitPart")){ +case CPScrollerDecrementLine: +contentBounds.origin.y-=_verticalLineScroll; +break; +case CPScrollerIncrementLine: +contentBounds.origin.y+=_verticalLineScroll; +break; +case CPScrollerDecrementPage: +contentBounds.origin.y-=(contentBounds.size.height)-_verticalPageScroll; +break; +case CPScrollerIncrementPage: +contentBounds.origin.y+=(contentBounds.size.height)-_verticalPageScroll; +break; +case CPScrollerKnobSlot: +case CPScrollerKnob: +default: +contentBounds.origin.y=_3e*((_3f.size.height)-(contentBounds.size.height)); +} +objj_msgSend(_contentView,"scrollToPoint:",contentBounds.origin); +} +}),new objj_method(sel_getUid("_horizontalScrollerDidScroll:"),function(_40,_41,_42){ +with(_40){ +var _43=objj_msgSend(_42,"floatValue"),_44=objj_msgSend(objj_msgSend(_40,"documentView"),"frame"),_45=objj_msgSend(_contentView,"bounds"); +switch(objj_msgSend(_horizontalScroller,"hitPart")){ +case CPScrollerDecrementLine: +_45.origin.x-=_horizontalLineScroll; +break; +case CPScrollerIncrementLine: +_45.origin.x+=_horizontalLineScroll; +break; +case CPScrollerDecrementPage: +_45.origin.x-=(_45.size.width)-_horizontalPageScroll; +break; +case CPScrollerIncrementPage: +_45.origin.x+=(_45.size.width)-_horizontalPageScroll; +break; +case CPScrollerKnobSlot: +case CPScrollerKnob: +default: +_45.origin.x=_43*((_44.size.width)-(_45.size.width)); +} +objj_msgSend(_contentView,"scrollToPoint:",_45.origin); +} +}),new objj_method(sel_getUid("tile"),function(_46,_47){ +with(_46){ +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_48,_49,_4a){ +with(_48){ +objj_msgSend(_48,"reflectScrolledClipView:",_contentView); +} +}),new objj_method(sel_getUid("setLineScroll:"),function(_4b,_4c,_4d){ +with(_4b){ +objj_msgSend(_4b,"setHorizonalLineScroll:",_4d); +objj_msgSend(_4b,"setVerticalLineScroll:",_4d); +} +}),new objj_method(sel_getUid("lineScroll"),function(_4e,_4f){ +with(_4e){ +return objj_msgSend(_4e,"horizontalLineScroll"); +} +}),new objj_method(sel_getUid("setHorizontalLineScroll:"),function(_50,_51,_52){ +with(_50){ +_horizontalLineScroll=_52; +} +}),new objj_method(sel_getUid("horizontalLineScroll"),function(_53,_54){ +with(_53){ +return _horizontalLineScroll; +} +}),new objj_method(sel_getUid("setVerticalLineScroll:"),function(_55,_56,_57){ +with(_55){ +_verticalLineScroll=_57; +} +}),new objj_method(sel_getUid("verticalLineScroll"),function(_58,_59){ +with(_58){ +return _verticalLineScroll; +} +}),new objj_method(sel_getUid("setPageScroll:"),function(_5a,_5b,_5c){ +with(_5a){ +objj_msgSend(_5a,"setHorizontalPageScroll:",_5c); +objj_msgSend(_5a,"setVerticalPageScroll:",_5c); +} +}),new objj_method(sel_getUid("pageScroll"),function(_5d,_5e){ +with(_5d){ +return objj_msgSend(_5d,"horizontalPageScroll"); +} +}),new objj_method(sel_getUid("setHorizontalPageScroll:"),function(_5f,_60,_61){ +with(_5f){ +_horizontalPageScroll=_61; +} +}),new objj_method(sel_getUid("horizontalPageScroll"),function(_62,_63){ +with(_62){ +return _horizontalPageScroll; +} +}),new objj_method(sel_getUid("setVerticalPageScroll:"),function(_64,_65,_66){ +with(_64){ +_verticalPageScroll=_66; +} +}),new objj_method(sel_getUid("verticalPageScroll"),function(_67,_68){ +with(_67){ +return _verticalPageScroll; +} +}),new objj_method(sel_getUid("scrollWheel:"),function(_69,_6a,_6b){ +with(_69){ +var _6c=objj_msgSend(_verticalScroller,"floatValue"),_6d=objj_msgSend(objj_msgSend(_69,"documentView"),"frame"),_6e=objj_msgSend(_contentView,"bounds"); +_6e.origin.x+=objj_msgSend(_6b,"deltaX")*_horizontalLineScroll; +_6e.origin.y+=objj_msgSend(_6b,"deltaY")*_verticalLineScroll; +objj_msgSend(_contentView,"scrollToPoint:",_6e.origin); +} +}),new objj_method(sel_getUid("keyDown:"),function(_6f,_70,_71){ +with(_6f){ +var _72=objj_msgSend(_71,"keyCode"),_73=objj_msgSend(_verticalScroller,"floatValue"),_74=objj_msgSend(objj_msgSend(_6f,"documentView"),"frame"),_75=objj_msgSend(_contentView,"bounds"); +switch(_72){ +case 33: +_75.origin.y-=(_75.size.height)-_verticalPageScroll; +break; +case 34: +_75.origin.y+=(_75.size.height)-_verticalPageScroll; +break; +case 38: +_75.origin.y-=_verticalLineScroll; +break; +case 40: +_75.origin.y+=_verticalLineScroll; +break; +case 37: +_75.origin.x-=_horizontalLineScroll; +break; +case 49: +_75.origin.x+=_horizontalLineScroll; +break; +default: +return objj_msgSendSuper({receiver:_6f,super_class:objj_getClass("CPView")},"keyDown:",_71); +} +objj_msgSend(_contentView,"scrollToPoint:",_75.origin); +} +})]); +var _76="CPScrollViewContentView",_77="CPScrollViewVLineScroll",_78="CPScrollViewHLineScroll",_79="CPScrollViewVPageScroll",_7a="CPScrollViewHPageScroll",_7b="CPScrollViewHasVScroller",_7c="CPScrollViewHasHScroller",_7d="CPScrollViewVScroller",_7e="CPScrollViewHScroller",_7f="CPScrollViewAutohidesScroller"; +var _1=objj_getClass("CPScrollView"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPScrollView\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_80,_81,_82){ +with(_80){ +if(_80=objj_msgSendSuper({receiver:_80,super_class:objj_getClass("CPView")},"initWithCoder:",_82)){ +_verticalLineScroll=objj_msgSend(_82,"decodeFloatForKey:",_77); +_verticalPageScroll=objj_msgSend(_82,"decodeFloatForKey:",_79); +_horizontalLineScroll=objj_msgSend(_82,"decodeFloatForKey:",_78); +_horizontalPageScroll=objj_msgSend(_82,"decodeFloatForKey:",_7a); +_contentView=objj_msgSend(_82,"decodeObjectForKey:",_76); +_verticalScroller=objj_msgSend(_82,"decodeObjectForKey:",_7d); +_horizontalScroller=objj_msgSend(_82,"decodeObjectForKey:",_7e); +_hasVerticalScroller=objj_msgSend(_82,"decodeBoolForKey:",_7b); +_hasHorizontalScroller=objj_msgSend(_82,"decodeBoolForKey:",_7c); +_autohidesScrollers=objj_msgSend(_82,"decodeBoolForKey:",_7f); +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"performSelector:target:argument:order:modes:",sel_getUid("reflectScrolledClipView:"),_80,_contentView,0,[CPDefaultRunLoopMode]); +} +return _80; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_83,_84,_85){ +with(_83){ +objj_msgSendSuper({receiver:_83,super_class:objj_getClass("CPView")},"encodeWithCoder:",_85); +objj_msgSend(_85,"encodeObject:forKey:",_contentView,_76); +objj_msgSend(_85,"encodeObject:forKey:",_verticalScroller,_7d); +objj_msgSend(_85,"encodeObject:forKey:",_horizontalScroller,_7e); +objj_msgSend(_85,"encodeFloat:forKey:",_verticalLineScroll,_77); +objj_msgSend(_85,"encodeFloat:forKey:",_verticalPageScroll,_79); +objj_msgSend(_85,"encodeFloat:forKey:",_horizontalLineScroll,_78); +objj_msgSend(_85,"encodeFloat:forKey:",_horizontalPageScroll,_7a); +objj_msgSend(_85,"encodeBool:forKey:",_hasVerticalScroller,_7b); +objj_msgSend(_85,"encodeBool:forKey:",_hasHorizontalScroller,_7c); +objj_msgSend(_85,"encodeBool:forKey:",_autohidesScrollers,_7f); +} +})]); +p;19;CPSecureTextField.ji;13;CPTextField.jc;287; +var _1=objj_allocateClassPair(CPTextField,"CPSecureTextField"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("isSecure"),function(_3,_4){ +with(_3){ +return YES; +} +})]); +p;20;CPSegmentedControl.jI;20;Foundation/CPArray.ji;11;CPControl.jc;20227; +CPSegmentSwitchTrackingSelectOne=0; +CPSegmentSwitchTrackingSelectAny=1; +CPSegmentSwitchTrackingMomentary=2; +var _1=objj_allocateClassPair(CPControl,"CPSegmentedControl"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_segments"),new objj_ivar("_themeStates"),new objj_ivar("_selectedSegment"),new objj_ivar("_segmentStyle"),new objj_ivar("_trackingMode"),new objj_ivar("_trackingSegment"),new objj_ivar("_trackingHighlighted")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){ +with(_3){ +_segments=[]; +_themeStates=[]; +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPControl")},"initWithFrame:",_5); +if(_3){ +_selectedSegment=-1; +_trackingMode=CPSegmentSwitchTrackingSelectOne; +} +return _3; +} +}),new objj_method(sel_getUid("selectedTag"),function(_6,_7){ +with(_6){ +return _segments[_selectedSegment].tag; +} +}),new objj_method(sel_getUid("setSegmentCount:"),function(_8,_9,_a){ +with(_8){ +if(_segments.length==_a){ +return; +} +var _b=CGRectGetHeight(objj_msgSend(_8,"bounds")); +if(_segments.length<_a){ +for(var _c=_segments.length;_c<_a;++_c){ +_segments[_c]=objj_msgSend(objj_msgSend(_CPSegmentItem,"alloc"),"init"); +_themeStates[_c]=CPThemeStateNormal; +} +}else{ +if(_a<_segments.length){ +for(var _c=_a;_c<_segments.length;++_c){ +_segments[_c]=nil; +} +} +} +if(_selectedSegment<_segments.length){ +_selectedSegment=-1; +} +objj_msgSend(_8,"tileWithChangedSegment:",0); +} +}),new objj_method(sel_getUid("segmentCount"),function(_d,_e){ +with(_d){ +return _segments.length; +} +}),new objj_method(sel_getUid("setSelectedSegment:"),function(_f,_10,_11){ +with(_f){ +objj_msgSend(_f,"setSelected:forSegment:",YES,_11); +} +}),new objj_method(sel_getUid("selectedSegment"),function(_12,_13){ +with(_12){ +return _selectedSegment; +} +}),new objj_method(sel_getUid("selectSegmentWithTag:"),function(_14,_15,_16){ +with(_14){ +var _17=0; +for(;_17<_segments.length;++_17){ +if(_segments[_17].tag==_16){ +objj_msgSend(_14,"setSelectedSegment:",_17); +return YES; +} +} +return NO; +} +}),new objj_method(sel_getUid("isTracking"),function(_18,_19){ +with(_18){ +} +}),new objj_method(sel_getUid("setTrackingMode:"),function(_1a,_1b,_1c){ +with(_1a){ +if(_trackingMode==_1c){ +return; +} +_trackingMode=_1c; +if(_trackingMode==CPSegmentSwitchTrackingSelectOne){ +var _1d=0,_1e=NO; +for(;_1d<_segments.length;++_1d){ +if(_segments[_1d].selected){ +if(_1e){ +objj_msgSend(_1a,"setSelected:forSegment:",NO,_1d); +}else{ +_1e=YES; +} +} +} +}else{ +if(_trackingMode==CPSegmentSwitchTrackingMomentary){ +var _1d=0; +for(;_1d<_segments.length;++_1d){ +if(_segments[_1d].selected){ +objj_msgSend(_1a,"setSelected:forSegment:",NO,_1d); +} +} +} +} +} +}),new objj_method(sel_getUid("trackingMode"),function(_1f,_20){ +with(_1f){ +return _trackingMode; +} +}),new objj_method(sel_getUid("setWidth:forSegment:"),function(_21,_22,_23,_24){ +with(_21){ +_segments[_24].width=_23; +objj_msgSend(_21,"tileWithChangedSegment:",_24); +} +}),new objj_method(sel_getUid("widthForSegment:"),function(_25,_26,_27){ +with(_25){ +return _segments[_27].width; +} +}),new objj_method(sel_getUid("setImage:forSegment:"),function(_28,_29,_2a,_2b){ +with(_28){ +var _2c=_segments[_2b]; +_2c.image=_2a; +objj_msgSend(_28,"tileWithChangedSegment:",_2b); +} +}),new objj_method(sel_getUid("imageForSegment:"),function(_2d,_2e,_2f){ +with(_2d){ +return _segments[_2f].image; +} +}),new objj_method(sel_getUid("setLabel:forSegment:"),function(_30,_31,_32,_33){ +with(_30){ +var _34=_segments[_33]; +_segments[_33].label=_32; +objj_msgSend(_30,"tileWithChangedSegment:",_33); +} +}),new objj_method(sel_getUid("labelForSegment:"),function(_35,_36,_37){ +with(_35){ +return _segments[_37].label; +} +}),new objj_method(sel_getUid("setMenu:forSegment:"),function(_38,_39,_3a,_3b){ +with(_38){ +_segments[_3b].menu=_3a; +} +}),new objj_method(sel_getUid("menuForSegment:"),function(_3c,_3d,_3e){ +with(_3c){ +return _segments[_3e].menu; +} +}),new objj_method(sel_getUid("setSelected:forSegment:"),function(_3f,_40,_41,_42){ +with(_3f){ +var _43=_segments[_42]; +if(_43.selected==_41){ +return; +} +_43.selected=_41; +_themeStates[_42]=_41?CPThemeStateSelected:CPThemeStateNormal; +if(_41){ +var _44=_selectedSegment; +_selectedSegment=_42; +if(_trackingMode==CPSegmentSwitchTrackingSelectOne&&_44!=_42&&_44!=-1){ +_segments[_44].selected=NO; +_themeStates[_44]=CPThemeStateNormal; +objj_msgSend(_3f,"drawSegmentBezel:highlight:",_44,NO); +} +} +if(_trackingMode!=CPSegmentSwitchTrackingMomentary){ +objj_msgSend(_3f,"drawSegmentBezel:highlight:",_42,NO); +} +objj_msgSend(_3f,"setNeedsLayout"); +objj_msgSend(_3f,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("isSelectedForSegment:"),function(_45,_46,_47){ +with(_45){ +return _segments[_47].selected; +} +}),new objj_method(sel_getUid("setEnabled:forSegment:"),function(_48,_49,_4a,_4b){ +with(_48){ +_segments[_4b].enabled=_4a; +objj_msgSend(_48,"setNeedsLayout"); +objj_msgSend(_48,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("isEnabledForSegment:"),function(_4c,_4d,_4e){ +with(_4c){ +return _segments[_4e].enabled; +} +}),new objj_method(sel_getUid("setTag:forSegment:"),function(_4f,_50,_51,_52){ +with(_4f){ +_segments[_52].tag=_51; +} +}),new objj_method(sel_getUid("tagForSegment:"),function(_53,_54,_55){ +with(_53){ +return _segments[_55].tag; +} +}),new objj_method(sel_getUid("drawSegmentBezel:highlight:"),function(_56,_57,_58,_59){ +with(_56){ +if(_59){ +_themeStates[_58]|=CPThemeStateHighlighted; +}else{ +_themeStates[_58]&=~CPThemeStateHighlighted; +} +objj_msgSend(_56,"setNeedsLayout"); +objj_msgSend(_56,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("_leftOffsetForSegment:"),function(_5a,_5b,_5c){ +with(_5a){ +var _5d=objj_msgSend(_5a,"currentValueForThemeAttribute:","bezel-inset"); +if(_5c==0){ +return _5d.left; +} +var _5e=objj_msgSend(_5a,"currentValueForThemeAttribute:","divider-thickness"); +return objj_msgSend(_5a,"_leftOffsetForSegment:",_5c-1)+objj_msgSend(_5a,"widthForSegment:",_5c-1)+_5e; +} +}),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_5f,_60,_61){ +with(_5f){ +var _62=objj_msgSend(_5f,"currentValueForThemeAttribute:","default-height"),_63=objj_msgSend(_5f,"currentValueForThemeAttribute:","content-inset"),_64=objj_msgSend(_5f,"currentValueForThemeAttribute:","bezel-inset"),_65=objj_msgSend(_5f,"bounds"); +if(_61==="left-segment-bezel"){ +return CGRectMake(_64.left,_64.top,_63.left,_62); +}else{ +if(_61==="right-segment-bezel"){ +return CGRectMake(CGRectGetMaxX(_65)-_63.right-_64.right,_64.top,_63.right,_62); +}else{ +if(_61.substring(0,"segment-bezel".length)=="segment-bezel"){ +var _66=parseInt(_61.substring("segment-bezel-".length),10),_67=CGRectCreateCopy(_segments[_66].frame); +if(_66==0){ +_67.origin.x+=_63.left; +_67.size.width-=_63.left; +} +if(_66==_segments.length-1){ +_67.size.width-=_63.right; +} +return _67; +}else{ +if(_61.substring(0,"divider-bezel".length)=="divider-bezel"){ +var _66=parseInt(_61.substring("divider-bezel-".length),10),_68=objj_msgSend(_5f,"widthForSegment:",_66),_69=objj_msgSend(_5f,"_leftOffsetForSegment:",_66),_6a=objj_msgSend(_5f,"currentValueForThemeAttribute:","divider-thickness"); +return CGRectMake(_69+_68,_64.top,_6a,_62); +}else{ +if(_61.substring(0,"segment-content".length)=="segment-content"){ +var _66=parseInt(_61.substring("segment-content-".length),10); +return objj_msgSend(_5f,"contentFrameForSegment:",_66); +} +} +} +} +} +return objj_msgSendSuper({receiver:_5f,super_class:objj_getClass("CPControl")},"rectForEphemeralSubviewNamed:",_61); +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_6b,_6c,_6d){ +with(_6b){ +if(_6d.substring(0,"segment-content".length)=="segment-content"){ +return objj_msgSend(objj_msgSend(_CPImageAndTextView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +} +return objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_6e,_6f){ +with(_6e){ +var _70=objj_msgSend(_6e,"valueForThemeAttribute:inState:","left-segment-bezel-color",_themeStates[0]); +var _71=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","left-segment-bezel",CPWindowBelow,nil); +objj_msgSend(_71,"setBackgroundColor:",_70); +var _72=objj_msgSend(_6e,"valueForThemeAttribute:inState:","right-segment-bezel-color",_themeStates[_themeStates.length-1]); +var _73=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","right-segment-bezel",CPWindowBelow,nil); +objj_msgSend(_73,"setBackgroundColor:",_72); +for(var i=0,_75=_themeStates.length;i<_75;i++){ +var _76=_themeStates[i]; +_76|=_themeState&CPThemeStateDisabled; +var _77=objj_msgSend(_6e,"valueForThemeAttribute:inState:","center-segment-bezel-color",_76); +var _78=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","segment-bezel-"+i,CPWindowBelow,nil); +objj_msgSend(_78,"setBackgroundColor:",_77); +var _79=_segments[i]; +var _7a=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","segment-content-"+i,CPWindowAbove,"segment-bezel-"+i); +objj_msgSend(_7a,"setText:",_79.label); +objj_msgSend(_7a,"setImage:",_79.image); +objj_msgSend(_7a,"setFont:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","font",_76)); +objj_msgSend(_7a,"setTextColor:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","text-color",_76)); +objj_msgSend(_7a,"setAlignment:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","alignment",_76)); +objj_msgSend(_7a,"setVerticalAlignment:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","vertical-alignment",_76)); +objj_msgSend(_7a,"setLineBreakMode:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","line-break-mode",_76)); +objj_msgSend(_7a,"setTextShadowColor:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","text-shadow-color",_76)); +objj_msgSend(_7a,"setTextShadowOffset:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","text-shadow-offset",_76)); +objj_msgSend(_7a,"setImageScaling:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","image-scaling",_76)); +if(_79.image&&_79.label){ +objj_msgSend(_7a,"setImagePosition:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","image-position",_76)); +}else{ +if(_79.image){ +objj_msgSend(_7a,"setImagePosition:",CPImageOnly); +} +} +if(i==_75-1){ +continue; +} +var _7b=_themeStates[i]|_themeStates[i+1]; +_7b=(_7b&CPThemeStateSelected&~CPThemeStateHighlighted)?CPThemeStateSelected:CPThemeStateNormal; +_7b|=_themeState&CPThemeStateDisabled; +var _7c=objj_msgSend(_6e,"valueForThemeAttribute:inState:","divider-bezel-color",_7b); +var _7d=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","divider-bezel-"+i,CPWindowBelow,nil); +objj_msgSend(_7d,"setBackgroundColor:",_7c); +} +} +}),new objj_method(sel_getUid("drawSegment:highlight:"),function(_7e,_7f,_80,_81){ +with(_7e){ +} +}),new objj_method(sel_getUid("tileWithChangedSegment:"),function(_82,_83,_84){ +with(_82){ +if(_84>=_segments.length){ +return; +} +var _85=_segments[_84],_86=_85.width,_87=_themeStates[_84]|(_themeState&CPThemeStateDisabled),_88=objj_msgSend(_82,"valueForThemeAttribute:inState:","content-inset",_87),_89=objj_msgSend(_82,"valueForThemeAttribute:inState:","font",_87); +if(!_86){ +if(_85.image&&_85.label){ +_86=objj_msgSend(_85.label,"sizeWithFont:",_89).width+objj_msgSend(_85.image,"size").width+_88.left+_88.right; +}else{ +if(_85.image){ +_86=objj_msgSend(_85.image,"size").width+_88.left+_88.right; +}else{ +if(_85.label){ +_86=objj_msgSend(_85.label,"sizeWithFont:",_89).width+_88.left+_88.right; +}else{ +_86=0; +} +} +} +} +var _8a=_86-CGRectGetWidth(_85.frame); +if(!_8a){ +return; +} +var _8b=objj_msgSend(_82,"frame"); +objj_msgSend(_82,"setFrameSize:",CGSizeMake(CGRectGetWidth(_8b)+_8a,CGRectGetHeight(_8b))); +_85.width=_86; +_85.frame=objj_msgSend(_82,"frameForSegment:",_84); +var _8c=_84+1; +for(;_8c<_segments.length;++_8c){ +_segments[_8c].frame.origin.x+=_8a; +objj_msgSend(_82,"drawSegmentBezel:highlight:",_8c,NO); +objj_msgSend(_82,"drawSegment:highlight:",_8c,NO); +} +objj_msgSend(_82,"drawSegmentBezel:highlight:",_84,NO); +objj_msgSend(_82,"drawSegment:highlight:",_84,NO); +objj_msgSend(_82,"setNeedsLayout"); +objj_msgSend(_82,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("frameForSegment:"),function(_8d,_8e,_8f){ +with(_8d){ +return objj_msgSend(_8d,"bezelFrameForSegment:",_8f); +} +}),new objj_method(sel_getUid("bezelFrameForSegment:"),function(_90,_91,_92){ +with(_90){ +var _93=objj_msgSend(_90,"currentValueForThemeAttribute:","default-height"),_94=objj_msgSend(_90,"currentValueForThemeAttribute:","bezel-inset"),_95=objj_msgSend(_90,"widthForSegment:",_92),_96=objj_msgSend(_90,"_leftOffsetForSegment:",_92); +return CGRectMake(_96,_94.top,_95,_93); +} +}),new objj_method(sel_getUid("contentFrameForSegment:"),function(_97,_98,_99){ +with(_97){ +var _9a=objj_msgSend(_97,"currentValueForThemeAttribute:","default-height"),_9b=objj_msgSend(_97,"currentValueForThemeAttribute:","content-inset"),_9c=objj_msgSend(_97,"widthForSegment:",_99),_9d=objj_msgSend(_97,"_leftOffsetForSegment:",_99); +return CGRectMake(_9d+_9b.left,_9b.top,_9c-_9b.left-_9b.right,_9a-_9b.top-_9b.bottom); +} +}),new objj_method(sel_getUid("testSegment:"),function(_9e,_9f,_a0){ +with(_9e){ +var _a1=objj_msgSend(_9e,"convertPoint:fromView:",_a0,nil),_a2=_segments.length; +while(_a2--){ +if(CGRectContainsPoint(_segments[_a2].frame,_a0)){ +return _a2; +} +} +return -1; +} +}),new objj_method(sel_getUid("mouseDown:"),function(_a3,_a4,_a5){ +with(_a3){ +if(!objj_msgSend(_a3,"isEnabled")){ +return; +} +objj_msgSend(_a3,"trackSegment:",_a5); +} +}),new objj_method(sel_getUid("mouseUp:"),function(_a6,_a7,_a8){ +with(_a6){ +} +}),new objj_method(sel_getUid("trackSegment:"),function(_a9,_aa,_ab){ +with(_a9){ +var _ac=objj_msgSend(_ab,"type"),_ad=objj_msgSend(_a9,"convertPoint:fromView:",objj_msgSend(_ab,"locationInWindow"),nil); +if(_ac==CPLeftMouseUp){ +if(_trackingSegment==-1){ +return; +} +if(CGRectContainsPoint(_segments[_trackingSegment].frame,_ad)){ +if(_trackingMode==CPSegmentSwitchTrackingSelectAny){ +objj_msgSend(_a9,"setSelected:forSegment:",!objj_msgSend(_a9,"isSelectedForSegment:",_trackingSegment),_trackingSegment); +_selectedSegment=_trackingSegment; +}else{ +objj_msgSend(_a9,"setSelected:forSegment:",YES,_trackingSegment); +} +objj_msgSend(_a9,"sendAction:to:",objj_msgSend(_a9,"action"),objj_msgSend(_a9,"target")); +if(_trackingMode==CPSegmentSwitchTrackingMomentary){ +objj_msgSend(_a9,"setSelected:forSegment:",NO,_trackingSegment); +_selectedSegment=-1; +} +} +objj_msgSend(_a9,"drawSegmentBezel:highlight:",_trackingSegment,NO); +_trackingSegment=-1; +return; +} +if(_ac==CPLeftMouseDown){ +_trackingHighlighted=YES; +_trackingSegment=objj_msgSend(_a9,"testSegment:",_ad); +objj_msgSend(_a9,"drawSegmentBezel:highlight:",_trackingSegment,YES); +}else{ +if(_ac==CPLeftMouseDragged){ +if(_trackingSegment==-1){ +return; +} +var _ae=CGRectContainsPoint(_segments[_trackingSegment].frame,_ad); +if(_ae!=_trackingHighlighted){ +_trackingHighlighted=_ae; +objj_msgSend(_a9,"drawSegmentBezel:highlight:",_trackingSegment,_trackingHighlighted); +} +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_a9,sel_getUid("trackSegment:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +}),new objj_method(sel_getUid("setFont:"),function(_af,_b0,_b1){ +with(_af){ +objj_msgSendSuper({receiver:_af,super_class:objj_getClass("CPControl")},"setFont:",_b1); +objj_msgSend(_af,"tileWithChangedSegment:",0); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("themeClass"),function(_b2,_b3){ +with(_b2){ +return "segmented-control"; +} +}),new objj_method(sel_getUid("themeAttributes"),function(_b4,_b5){ +with(_b4){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[CPCenterTextAlignment,CPCenterVerticalTextAlignment,CPImageLeft,CPScaleNone,{top:(0),right:(0),bottom:(0),left:(0)},{top:(0),right:(0),bottom:(0),left:(0)},nil,nil,nil,nil,1,24],["alignment","vertical-alignment","image-position","image-scaling","bezel-inset","content-inset","left-segment-bezel-color","right-segment-bezel-color","center-segment-bezel-color","divider-bezel-color","divider-thickness","default-height"]); +} +})]); +var _b6="CPSegmentedControlSegmentsKey",_b7="CPSegmentedControlSelectedKey",_b8="CPSegmentedControlSegmentStyleKey",_b9="CPSegmentedControlTrackingModeKey"; +var _1=objj_getClass("CPSegmentedControl"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPSegmentedControl\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_ba,_bb,_bc){ +with(_ba){ +_ba=objj_msgSendSuper({receiver:_ba,super_class:objj_getClass("CPControl")},"initWithCoder:",_bc); +if(_ba){ +var _bd=objj_msgSend(_ba,"frame"),_be=_bd.size.width; +_bd.size.width=0; +objj_msgSend(_ba,"setFrame:",_bd); +_segments=objj_msgSend(_bc,"decodeObjectForKey:",_b6); +_segmentStyle=objj_msgSend(_bc,"decodeIntForKey:",_b8); +_themeStates=[]; +if(objj_msgSend(_bc,"containsValueForKey:",_b7)){ +_selectedSegment=objj_msgSend(_bc,"decodeIntForKey:",_b7); +}else{ +_selectedSegment=-1; +} +if(objj_msgSend(_bc,"containsValueForKey:",_b9)){ +_trackingMode=objj_msgSend(_bc,"decodeIntForKey:",_b9); +}else{ +_trackingMode=CPSegmentSwitchTrackingSelectOne; +} +for(var i=0;i<_segments.length;i++){ +_themeStates[i]=_segments[i].selected?CPThemeStateSelected:CPThemeStateNormal; +objj_msgSend(_ba,"tileWithChangedSegment:",i); +} +var _c0=MAX(_be-objj_msgSend(_ba,"frame").size.width,0),_c1=FLOOR(_c0/_segments.length); +for(var i=0;i<_segments.length;i++){ +objj_msgSend(_ba,"setWidth:forSegment:",_segments[i].width+_c1,i); +} +objj_msgSend(_ba,"tileWithChangedSegment:",0); +} +return _ba; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_c2,_c3,_c4){ +with(_c2){ +objj_msgSendSuper({receiver:_c2,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_c4); +objj_msgSend(_c4,"encodeObject:forKey:",_segments,_b6); +objj_msgSend(_c4,"encodeInt:forKey:",_selectedSegment,_b7); +objj_msgSend(_c4,"encodeInt:forKey:",_segmentStyle,_b8); +objj_msgSend(_c4,"encodeInt:forKey:",_trackingMode,_b9); +} +})]); +var _1=objj_allocateClassPair(CPObject,"_CPSegmentItem"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("image"),new objj_ivar("label"),new objj_ivar("menu"),new objj_ivar("selected"),new objj_ivar("enabled"),new objj_ivar("tag"),new objj_ivar("width"),new objj_ivar("frame")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("init"),function(_c5,_c6){ +with(_c5){ +if(_c5=objj_msgSendSuper({receiver:_c5,super_class:objj_getClass("CPObject")},"init")){ +image=nil; +label=""; +menu=nil; +selected=NO; +enabled=NO; +tag=0; +width=0; +frame=CGRectMakeZero(); +} +return _c5; +} +})]); +var _c7="CPSegmentItemImageKey",_c8="CPSegmentItemLabelKey",_c9="CPSegmentItemMenuKey",_ca="CPSegmentItemSelectedKey",_cb="CPSegmentItemEnabledKey",_cc="CPSegmentItemTagKey",_cd="CPSegmentItemWidthKey"; +var _1=objj_getClass("_CPSegmentItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"_CPSegmentItem\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_ce,_cf,_d0){ +with(_ce){ +_ce=objj_msgSendSuper({receiver:_ce,super_class:objj_getClass("CPObject")},"init"); +if(_ce){ +image=objj_msgSend(_d0,"decodeObjectForKey:",_c7); +label=objj_msgSend(_d0,"decodeObjectForKey:",_c8); +menu=objj_msgSend(_d0,"decodeObjectForKey:",_c9); +selected=objj_msgSend(_d0,"decodeBoolForKey:",_ca); +enabled=objj_msgSend(_d0,"decodeBoolForKey:",_cb); +tag=objj_msgSend(_d0,"decodeIntForKey:",_cc); +width=objj_msgSend(_d0,"decodeFloatForKey:",_cd); +frame=CGRectMakeZero(); +} +return _ce; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_d1,_d2,_d3){ +with(_d1){ +objj_msgSend(_d3,"encodeObject:forKey:",image,_c7); +objj_msgSend(_d3,"encodeObject:forKey:",label,_c8); +objj_msgSend(_d3,"encodeObject:forKey:",menu,_c9); +objj_msgSend(_d3,"encodeBool:forKey:",selected,_ca); +objj_msgSend(_d3,"encodeBool:forKey:",enabled,_cb); +objj_msgSend(_d3,"encodeInt:forKey:",tag,_cc); +objj_msgSend(_d3,"encodeFloat:forKey:",width,_cd); +} +})]); +p;10;CPShadow.jI;21;Foundation/CPObject.jc;1307; +var _1=objj_allocateClassPair(CPObject,"CPShadow"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_offset"),new objj_ivar("_blurRadius"),new objj_ivar("_color"),new objj_ivar("_cssString")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("_initWithOffset:blurRadius:color:"),function(_3,_4,_5,_6,_7){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_offset=_5; +_blurRadius=_6; +_color=_7; +_cssString=objj_msgSend(_color,"cssString")+" "+Math.round(_5.width)+"px "+Math.round(_5.height)+"px "+Math.round(_blurRadius)+"px"; +} +return _3; +} +}),new objj_method(sel_getUid("shadowOffset"),function(_8,_9){ +with(_8){ +return _offset; +} +}),new objj_method(sel_getUid("shadowBlurRadius"),function(_a,_b){ +with(_a){ +return _blurRadius; +} +}),new objj_method(sel_getUid("shadowColor"),function(_c,_d){ +with(_c){ +return _color; +} +}),new objj_method(sel_getUid("cssString"),function(_e,_f){ +with(_e){ +return _cssString; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("shadowWithOffset:blurRadius:color:"),function(_10,_11,_12,_13,_14){ +with(_10){ +return objj_msgSend(objj_msgSend(CPShadow,"alloc"),"_initWithOffset:blurRadius:color:",_12,_13,_14); +} +})]); +p;14;CPShadowView.jI;21;Foundation/CPBundle.ji;12;CGGeometry.ji;9;CPImage.ji;13;CPImageView.ji;8;CPView.jc;5564; +CPLightShadow=0; +CPHeavyShadow=1; +var _1=nil,_2=nil; +var _3=3,_4=3,_5=3,_6=5,_7=7,_8=7,_9=5,_a=5; +var _b=objj_allocateClassPair(CPView,"CPShadowView"),_c=_b.isa; +class_addIvars(_b,[new objj_ivar("_weight")]); +objj_registerClassPair(_b); +objj_addClassForBundle(_b,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_b,[new objj_method(sel_getUid("initWithFrame:"),function(_d,_e,_f){ +with(_d){ +_d=objj_msgSendSuper({receiver:_d,super_class:objj_getClass("CPView")},"initWithFrame:",_f); +if(_d){ +_weight=CPLightShadow; +objj_msgSend(_d,"setBackgroundColor:",_1); +objj_msgSend(_d,"setHitTests:",NO); +} +return _d; +} +}),new objj_method(sel_getUid("setWeight:"),function(_10,_11,_12){ +with(_10){ +if(_weight==_12){ +return; +} +_weight=_12; +if(_weight==CPLightShadow){ +objj_msgSend(_10,"setBackgroundColor:",_1); +}else{ +objj_msgSend(_10,"setBackgroundColor:",_2); +} +} +}),new objj_method(sel_getUid("leftInset"),function(_13,_14){ +with(_13){ +return _weight==CPLightShadow?_3:_7; +} +}),new objj_method(sel_getUid("rightInset"),function(_15,_16){ +with(_15){ +return _weight==CPLightShadow?_4:_8; +} +}),new objj_method(sel_getUid("topInset"),function(_17,_18){ +with(_17){ +return _weight==CPLightShadow?_5:_9; +} +}),new objj_method(sel_getUid("bottomInset"),function(_19,_1a){ +with(_19){ +return _weight==CPLightShadow?_6:_a; +} +}),new objj_method(sel_getUid("horizontalInset"),function(_1b,_1c){ +with(_1b){ +if(_weight==CPLightShadow){ +return _3+_4; +} +return _7+_8; +} +}),new objj_method(sel_getUid("verticalInset"),function(_1d,_1e){ +with(_1d){ +if(_weight==CPLightShadow){ +return _5+_6; +} +return _9+_a; +} +}),new objj_method(sel_getUid("frameForContentFrame:"),function(_1f,_20,_21){ +with(_1f){ +return objj_msgSend(objj_msgSend(_1f,"class"),"frameForContentFrame:withWeight:",_21,_weight); +} +}),new objj_method(sel_getUid("setFrameForContentFrame:"),function(_22,_23,_24){ +with(_22){ +objj_msgSend(_22,"setFrame:",objj_msgSend(_22,"frameForContentFrame:",_24)); +} +})]); +class_addMethods(_c,[new objj_method(sel_getUid("initialize"),function(_25,_26){ +with(_25){ +if(_25!=objj_msgSend(CPShadowView,"class")){ +return; +} +var _27=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_25,"class")); +_1=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightTopLeft.png"),CGSizeMake(9,9)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightTop.png"),CGSizeMake(1,9)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightTopRight.png"),CGSizeMake(9,9)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightLeft.png"),CGSizeMake(9,1)),nil,objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightRight.png"),CGSizeMake(9,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightBottomLeft.png"),CGSizeMake(9,9)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightBottom.png"),CGSizeMake(1,9)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightBottomRight.png"),CGSizeMake(9,9))])); +_2=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyTopLeft.png"),CGSizeMake(17,17)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyTop.png"),CGSizeMake(1,17)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyTopRight.png"),CGSizeMake(17,17)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyLeft.png"),CGSizeMake(17,1)),nil,objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyRight.png"),CGSizeMake(17,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyBottomLeft.png"),CGSizeMake(17,17)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyBottom.png"),CGSizeMake(1,17)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyBottomRight.png"),CGSizeMake(17,17))])); +} +}),new objj_method(sel_getUid("frameForContentFrame:withWeight:"),function(_28,_29,_2a,_2b){ +with(_28){ +if(_2b==CPLightShadow){ +return CGRectMake((_2a.origin.x)-_3,(_2a.origin.y)-_5,(_2a.size.width)+_3+_4,(_2a.size.height)+_5+_6); +}else{ +return CGRectMake((_2a.origin.x)-_7,(_2a.origin.y)-_9,(_2a.size.width)+_7+_8,(_2a.size.height)+_9+_a); +} +} +})]); +p;10;CPSlider.ji;11;CPControl.jc;11216; +CPLinearSlider=0; +CPCircularSlider=1; +var _1=objj_allocateClassPair(CPControl,"CPSlider"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_minValue"),new objj_ivar("_maxValue"),new objj_ivar("_altIncrementValue"),new objj_ivar("_isVertical")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPControl")},"initWithFrame:",_5); +if(_3){ +_minValue=0; +_maxValue=100; +objj_msgSend(_3,"setObjectValue:",50); +objj_msgSend(_3,"setContinuous:",YES); +objj_msgSend(_3,"_recalculateIsVertical"); +} +return _3; +} +}),new objj_method(sel_getUid("setMinValue:"),function(_6,_7,_8){ +with(_6){ +if(_minValue===_8){ +return; +} +_minValue=_8; +var _9=objj_msgSend(_6,"doubleValue"); +if(_9<_minValue){ +objj_msgSend(_6,"setDoubleValue:",_minValue); +} +} +}),new objj_method(sel_getUid("minValue"),function(_a,_b){ +with(_a){ +return _minValue; +} +}),new objj_method(sel_getUid("setMaxValue:"),function(_c,_d,_e){ +with(_c){ +if(_maxValue===_e){ +return; +} +_maxValue=_e; +var _f=objj_msgSend(_c,"doubleValue"); +if(_f>_maxValue){ +objj_msgSend(_c,"setDoubleValue:",_maxValue); +} +} +}),new objj_method(sel_getUid("maxValue"),function(_10,_11){ +with(_10){ +return _maxValue; +} +}),new objj_method(sel_getUid("setObjectValue:"),function(_12,_13,_14){ +with(_12){ +objj_msgSendSuper({receiver:_12,super_class:objj_getClass("CPControl")},"setObjectValue:",MIN(MAX(_14,_minValue),_maxValue)); +objj_msgSend(_12,"setNeedsLayout"); +objj_msgSend(_12,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("setSliderType:"),function(_15,_16,_17){ +with(_15){ +if(_17===CPCircularSlider){ +objj_msgSend(_15,"setThemeState:",CPThemeStateCircular); +}else{ +objj_msgSend(_15,"unsetThemeState:",CPThemeStateCircular); +} +} +}),new objj_method(sel_getUid("sliderType"),function(_18,_19){ +with(_18){ +return objj_msgSend(_18,"hasThemeState:",CPThemeStateCircular)?CPCircularSlider:CPLinearSlider; +} +}),new objj_method(sel_getUid("trackRectForBounds:"),function(_1a,_1b,_1c){ +with(_1a){ +if(objj_msgSend(_1a,"hasThemeState:",CPThemeStateCircular)){ +var _1d=CGRectCreateCopy(_1c); +_1c.size.width=MIN(_1c.size.width,_1c.size.height); +_1c.size.height=_1c.size.width; +if(_1c.size.width<_1d.size.width){ +_1c.origin.x+=(_1d.size.width-_1c.size.width)/2; +}else{ +_1c.origin.y+=(_1d.size.height-_1c.size.height)/2; +} +}else{ +var _1e=objj_msgSend(_1a,"currentValueForThemeAttribute:","track-width"); +if(_1e<=0){ +return {origin:{x:0,y:0},size:{width:0,height:0}}; +} +if(objj_msgSend(_1a,"isVertical")){ +_1c.origin.x=((_1c.size.width)-_1e)/2; +_1c.size.width=_1e; +}else{ +_1c.origin.y=((_1c.size.height)-_1e)/2; +_1c.size.height=_1e; +} +} +return _1c; +} +}),new objj_method(sel_getUid("knobRectForBounds:"),function(_1f,_20,_21){ +with(_1f){ +var _22=objj_msgSend(_1f,"currentValueForThemeAttribute:","knob-size"); +if(_22.width<=0||_22.height<=0){ +return {origin:{x:0,y:0},size:{width:0,height:0}}; +} +var _23={origin:{x:0,y:0},size:{width:_22.width,height:_22.height}},_24=objj_msgSend(_1f,"trackRectForBounds:",_21); +if(!_24||(_24.size.width<=0||_24.size.height<=0)){ +_24=_21; +} +if(objj_msgSend(_1f,"hasThemeState:",CPThemeStateCircular)){ +var _25=3*PI_2-(1-objj_msgSend(_1f,"doubleValue")-_minValue)/(_maxValue-_minValue)*PI2,_26=CGRectGetWidth(_24)/2-8; +_23.origin.x=_26*COS(_25)+CGRectGetMidX(_24)-3; +_23.origin.y=_26*SIN(_25)+CGRectGetMidY(_24)-2; +}else{ +if(objj_msgSend(_1f,"isVertical")){ +_23.origin.x=(_24.origin.x+(_24.size.width)/2)-_22.width/2; +_23.origin.y=((objj_msgSend(_1f,"doubleValue")-_minValue)/(_maxValue-_minValue))*((_24.size.height)-_22.height); +}else{ +_23.origin.x=((objj_msgSend(_1f,"doubleValue")-_minValue)/(_maxValue-_minValue))*((_24.size.width)-_22.width); +_23.origin.y=(_24.origin.y+(_24.size.height)/2)-_22.height/2; +} +} +return _23; +} +}),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_27,_28,_29){ +with(_27){ +if(_29==="track-view"){ +return objj_msgSend(_27,"trackRectForBounds:",objj_msgSend(_27,"bounds")); +}else{ +if(_29==="knob-view"){ +return objj_msgSend(_27,"knobRectForBounds:",objj_msgSend(_27,"bounds")); +} +} +return objj_msgSendSuper({receiver:_27,super_class:objj_getClass("CPControl")},"rectForEphemeralSubviewNamed:",_29); +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_2a,_2b,_2c){ +with(_2a){ +if(_2c==="track-view"||_2c==="knob-view"){ +var _2d=objj_msgSend(objj_msgSend(CPView,"alloc"),"init"); +objj_msgSend(_2d,"setHitTests:",NO); +return _2d; +} +return objj_msgSendSuper({receiver:_2a,super_class:objj_getClass("CPControl")},"createEphemeralSubviewNamed:",_2c); +} +}),new objj_method(sel_getUid("setAltIncrementValue:"),function(_2e,_2f,_30){ +with(_2e){ +_altIncrementValue=_30; +} +}),new objj_method(sel_getUid("altIncrementValue"),function(_31,_32){ +with(_31){ +return _altIncrementValue; +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_33,_34,_35){ +with(_33){ +objj_msgSendSuper({receiver:_33,super_class:objj_getClass("CPControl")},"setFrameSize:",_35); +objj_msgSend(_33,"_recalculateIsVertical"); +} +}),new objj_method(sel_getUid("_recalculateIsVertical"),function(_36,_37){ +with(_36){ +var _38=objj_msgSend(_36,"bounds"),_39=(_38.size.width),_3a=(_38.size.height); +_isVertical=_39<_3a?1:(_39>_3a?0:-1); +if(_isVertical===1){ +objj_msgSend(_36,"setThemeState:",CPThemeStateVertical); +}else{ +if(_isVertical===0){ +objj_msgSend(_36,"unsetThemeState:",CPThemeStateVertical); +} +} +} +}),new objj_method(sel_getUid("isVertical"),function(_3b,_3c){ +with(_3b){ +return _isVertical; +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_3d,_3e){ +with(_3d){ +var _3f=objj_msgSend(_3d,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","track-view",CPWindowBelow,"knob-view"); +if(_3f){ +objj_msgSend(_3f,"setBackgroundColor:",objj_msgSend(_3d,"currentValueForThemeAttribute:","track-color")); +} +var _40=objj_msgSend(_3d,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","knob-view",CPWindowAbove,"track-view"); +if(_40){ +objj_msgSend(_40,"setBackgroundColor:",objj_msgSend(_3d,"currentValueForThemeAttribute:","knob-color")); +} +} +}),new objj_method(sel_getUid("tracksMouseOutsideOfFrame"),function(_41,_42){ +with(_41){ +return YES; +} +}),new objj_method(sel_getUid("_valueAtPoint:"),function(_43,_44,_45){ +with(_43){ +var _46=objj_msgSend(_43,"bounds"),_47=objj_msgSend(_43,"knobRectForBounds:",_46),_48=objj_msgSend(_43,"trackRectForBounds:",_46); +if(objj_msgSend(_43,"hasThemeState:",CPThemeStateCircular)){ +var _49=(_47.size.width); +_48.origin.x+=_49/2; +_48.size.width-=_49; +var _4a=objj_msgSend(_43,"minValue"),dx=_45.x-(_48.origin.x+(_48.size.width)/2),dy=_45.y-(_48.origin.y+(_48.size.height)/2); +return MAX(0,MIN(1,1-(3*PI_2-ATAN2(dy,dx))%PI2/PI2))*(objj_msgSend(_43,"maxValue")-_4a)+_4a; +}else{ +if(objj_msgSend(_43,"isVertical")){ +var _4d=(_47.size.height); +_48.origin.y+=_4d/2; +_48.size.height-=_4d; +var _4a=objj_msgSend(_43,"minValue"); +return MAX(0,MIN(1,(_45.y-(_48.origin.y))/(_48.size.height)))*(objj_msgSend(_43,"maxValue")-_4a)+_4a; +}else{ +var _49=(_47.size.width); +_48.origin.x+=_49/2; +_48.size.width-=_49; +var _4a=objj_msgSend(_43,"minValue"); +return MAX(0,MIN(1,(_45.x-(_48.origin.x))/(_48.size.width)))*(objj_msgSend(_43,"maxValue")-_4a)+_4a; +} +} +} +}),new objj_method(sel_getUid("startTrackingAt:"),function(_4e,_4f,_50){ +with(_4e){ +var _51=objj_msgSend(_4e,"bounds"),_52=objj_msgSend(_4e,"knobRectForBounds:",{origin:{x:_51.origin.x,y:_51.origin.y},size:{width:_51.size.width,height:_51.size.height}}); +if((_50.x>=(_52.origin.x)&&_50.y>=(_52.origin.y)&&_50.x<(_52.origin.x+_52.size.width)&&_50.y<(_52.origin.y+_52.size.height))){ +_dragOffset={width:(_52.origin.x+(_52.size.width)/2)-_50.x,height:(_52.origin.y+(_52.size.height)/2)-_50.y}; +}else{ +var _53=objj_msgSend(_4e,"trackRectForBounds:",_51); +if(_53&&(_50.x>=(_53.origin.x)&&_50.y>=(_53.origin.y)&&_50.x<(_53.origin.x+_53.size.width)&&_50.y<(_53.origin.y+_53.size.height))){ +_dragOffset={width:0,height:0}; +objj_msgSend(_4e,"setObjectValue:",objj_msgSend(_4e,"_valueAtPoint:",_50)); +}else{ +return NO; +} +} +objj_msgSend(_4e,"setHighlighted:",YES); +objj_msgSend(_4e,"setNeedsLayout"); +objj_msgSend(_4e,"setNeedsDisplay:",YES); +return YES; +} +}),new objj_method(sel_getUid("continueTracking:at:"),function(_54,_55,_56,_57){ +with(_54){ +objj_msgSend(_54,"setObjectValue:",objj_msgSend(_54,"_valueAtPoint:",{x:_57.x+_dragOffset.width,y:_57.y+_dragOffset.height})); +return YES; +} +}),new objj_method(sel_getUid("stopTracking:at:mouseIsUp:"),function(_58,_59,_5a,_5b,_5c){ +with(_58){ +objj_msgSend(_58,"setHighlighted:",NO); +if(objj_msgSend(_target,"respondsToSelector:",sel_getUid("sliderDidFinish:"))){ +objj_msgSend(_target,"sliderDidFinish:",_58); +} +objj_msgSend(_58,"setNeedsLayout"); +objj_msgSend(_58,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("setContinuous:"),function(_5d,_5e,_5f){ +with(_5d){ +if(_5f){ +_sendActionOn|=CPLeftMouseDraggedMask; +}else{ +_sendActionOn&=~CPLeftMouseDraggedMask; +} +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("themeClass"),function(_60,_61){ +with(_60){ +return "slider"; +} +}),new objj_method(sel_getUid("themeAttributes"),function(_62,_63){ +with(_62){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[nil,{width:0,height:0},0,nil],["knob-color","knob-size","track-width","track-color"]); +} +})]); +var _64="CPSliderMinValueKey",_65="CPSliderMaxValueKey",_66="CPSliderAltIncrValueKey"; +var _1=objj_getClass("CPSlider"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPSlider\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_67,_68,_69){ +with(_67){ +_minValue=objj_msgSend(_69,"decodeDoubleForKey:",_64); +_maxValue=objj_msgSend(_69,"decodeDoubleForKey:",_65); +_67=objj_msgSendSuper({receiver:_67,super_class:objj_getClass("CPControl")},"initWithCoder:",_69); +if(_67){ +_altIncrementValue=objj_msgSend(_69,"decodeDoubleForKey:",_66); +objj_msgSend(_67,"setContinuous:",YES); +objj_msgSend(_67,"_recalculateIsVertical"); +objj_msgSend(_67,"setNeedsLayout"); +objj_msgSend(_67,"setNeedsDisplay:",YES); +} +return _67; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_6a,_6b,_6c){ +with(_6a){ +objj_msgSendSuper({receiver:_6a,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_6c); +objj_msgSend(_6c,"encodeDouble:forKey:",_minValue,_64); +objj_msgSend(_6c,"encodeDouble:forKey:",_maxValue,_65); +objj_msgSend(_6c,"encodeDouble:forKey:",_altIncrementValue,_66); +} +})]); +var _1=objj_getClass("CPSlider"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPSlider\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("value"),function(_6d,_6e){ +with(_6d){ +CPLog.warn("[CPSlider value] is deprecated, use doubleValue or objectValue instead."); +return objj_msgSend(_6d,"doubleValue"); +} +}),new objj_method(sel_getUid("setValue:"),function(_6f,_70,_71){ +with(_6f){ +CPLog.warn("[CPSlider setValue:] is deprecated, use setDoubleValue: or setObjectValue: instead."); +objj_msgSend(_6f,"setObjectValue:",_71); +} +})]); +p;21;CPSliderColorPicker.ji;15;CPColorPicker.jc;13716; +var _1=objj_allocateClassPair(CPColorPicker,"CPSliderColorPicker"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_contentView"),new objj_ivar("_redSlider"),new objj_ivar("_greenSlider"),new objj_ivar("_blueSlider"),new objj_ivar("_hueSlider"),new objj_ivar("_saturationSlider"),new objj_ivar("_brightnessSlider"),new objj_ivar("_rgbLabel"),new objj_ivar("_hsbLabel"),new objj_ivar("_redLabel"),new objj_ivar("_greenLabel"),new objj_ivar("_blueLabel"),new objj_ivar("_hueLabel"),new objj_ivar("_saturationLabel"),new objj_ivar("_brightnessLabel"),new objj_ivar("_hexLabel"),new objj_ivar("_redValue"),new objj_ivar("_greenValue"),new objj_ivar("_blueValue"),new objj_ivar("_hueValue"),new objj_ivar("_saturationValue"),new objj_ivar("_brightnessValue"),new objj_ivar("_hexValue")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithPickerMask:colorPanel:"),function(_3,_4,_5,_6){ +with(_3){ +return objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPColorPicker")},"initWithPickerMask:colorPanel:",_5,_6); +} +}),new objj_method(sel_getUid("initView"),function(_7,_8){ +with(_7){ +aFrame=CPRectMake(0,0,CPColorPickerViewWidth,CPColorPickerViewHeight); +_contentView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",aFrame); +objj_msgSend(_contentView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +_rgbLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,10,100,20)); +objj_msgSend(_rgbLabel,"setStringValue:","Red, Green, Blue"); +objj_msgSend(_rgbLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_redLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,35,15,20)); +objj_msgSend(_redLabel,"setStringValue:","R"); +objj_msgSend(_redLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_redSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CPRectMake(15,35,aFrame.size.width-70,20)); +objj_msgSend(_redSlider,"setMaxValue:",1); +objj_msgSend(_redSlider,"setMinValue:",0); +objj_msgSend(_redSlider,"setTarget:",_7); +objj_msgSend(_redSlider,"setAction:",sel_getUid("sliderChanged:")); +objj_msgSend(_redSlider,"setAutoresizingMask:",CPViewWidthSizable); +var _9=function(_a){ +if(isNaN(this.value)){ +return; +} +switch(this){ +case _redValue: +objj_msgSend(_redSlider,"setFloatValue:",MAX(MIN(ROUND(this.value),255)/255,0)); +break; +case _greenValue: +objj_msgSend(_greenSlider,"setFloatValue:",MAX(MIN(ROUND(this.value),255)/255,0)); +break; +case _blueValue: +objj_msgSend(_blueSlider,"setFloatValue:",MAX(MIN(ROUND(this.value),255)/255,0)); +break; +case _hueValue: +objj_msgSend(_hueSlider,"setFloatValue:",MAX(MIN(ROUND(this.value),360),0)); +break; +case _saturationValue: +objj_msgSend(_saturationSlider,"setFloatValue:",MAX(MIN(ROUND(this.value),100),0)); +break; +case _brightnessValue: +objj_msgSend(_brightnessSlider,"setFloatValue:",MAX(MIN(ROUND(this.value),100),0)); +break; +} +this.blur(); +}; +var _b=function(_c){ +_c=_c||window.event; +if(_c.keyCode==13){ +_9(_c); +if(_c.preventDefault){ +_c.preventDefault(); +}else{ +if(_c.stopPropagation){ +_c.stopPropagation(); +} +} +} +}; +var _d=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(aFrame.size.width-45,35,45,20)); +objj_msgSend(_d,"setAutoresizingMask:",CPViewMinXMargin); +_redValue=document.createElement("input"); +_redValue.style.width="40px"; +_redValue.style.backgroundColor="transparent"; +_redValue.style.border="1px solid black"; +_redValue.style.color="black"; +_redValue.style.position="absolute"; +_redValue.style.top="0px"; +_redValue.style.left="0px"; +_redValue.onchange=_9; +_d._DOMElement.appendChild(_redValue); +objj_msgSend(_contentView,"addSubview:",_d); +_greenLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,58,15,20)); +objj_msgSend(_greenLabel,"setStringValue:","G"); +objj_msgSend(_greenLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_greenSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CPRectMake(15,58,aFrame.size.width-70,20)); +objj_msgSend(_greenSlider,"setMaxValue:",1); +objj_msgSend(_greenSlider,"setMinValue:",0); +objj_msgSend(_greenSlider,"setTarget:",_7); +objj_msgSend(_greenSlider,"setAction:",sel_getUid("sliderChanged:")); +objj_msgSend(_greenSlider,"setAutoresizingMask:",CPViewWidthSizable); +var _e=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(aFrame.size.width-45,58,45,20)); +objj_msgSend(_e,"setAutoresizingMask:",CPViewMinXMargin); +_greenValue=_redValue.cloneNode(false); +_greenValue.onchange=_9; +_e._DOMElement.appendChild(_greenValue); +objj_msgSend(_contentView,"addSubview:",_e); +_blueLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,81,15,20)); +objj_msgSend(_blueLabel,"setStringValue:","B"); +objj_msgSend(_blueLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_blueSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CPRectMake(15,81,aFrame.size.width-70,20)); +objj_msgSend(_blueSlider,"setMaxValue:",1); +objj_msgSend(_blueSlider,"setMinValue:",0); +objj_msgSend(_blueSlider,"setTarget:",_7); +objj_msgSend(_blueSlider,"setAction:",sel_getUid("sliderChanged:")); +objj_msgSend(_blueSlider,"setAutoresizingMask:",CPViewWidthSizable); +var _f=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(aFrame.size.width-45,81,45,20)); +objj_msgSend(_f,"setAutoresizingMask:",CPViewMinXMargin); +_blueValue=_redValue.cloneNode(false); +_blueValue.onchange=_9; +_f._DOMElement.appendChild(_blueValue); +objj_msgSend(_contentView,"addSubview:",_f); +_hsbLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,120,190,20)); +objj_msgSend(_hsbLabel,"setStringValue:","Hue, Saturation, Brightness"); +objj_msgSend(_hsbLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_hueLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,145,15,20)); +objj_msgSend(_hueLabel,"setStringValue:","H"); +objj_msgSend(_hueLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_hueSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CPRectMake(15,145,aFrame.size.width-70,20)); +objj_msgSend(_hueSlider,"setMaxValue:",359); +objj_msgSend(_hueSlider,"setMinValue:",0); +objj_msgSend(_hueSlider,"setTarget:",_7); +objj_msgSend(_hueSlider,"setAction:",sel_getUid("sliderChanged:")); +objj_msgSend(_hueSlider,"setAutoresizingMask:",CPViewWidthSizable); +var _10=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(aFrame.size.width-45,145,45,20)); +objj_msgSend(_10,"setAutoresizingMask:",CPViewMinXMargin); +_hueValue=_redValue.cloneNode(false); +_hueValue.onchange=_9; +_10._DOMElement.appendChild(_hueValue); +objj_msgSend(_contentView,"addSubview:",_10); +_saturationLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,168,15,20)); +objj_msgSend(_saturationLabel,"setStringValue:","S"); +objj_msgSend(_saturationLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_saturationSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CPRectMake(15,168,aFrame.size.width-70,20)); +objj_msgSend(_saturationSlider,"setMaxValue:",100); +objj_msgSend(_saturationSlider,"setMinValue:",0); +objj_msgSend(_saturationSlider,"setTarget:",_7); +objj_msgSend(_saturationSlider,"setAction:",sel_getUid("sliderChanged:")); +objj_msgSend(_saturationSlider,"setAutoresizingMask:",CPViewWidthSizable); +var _11=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(aFrame.size.width-45,168,45,20)); +objj_msgSend(_11,"setAutoresizingMask:",CPViewMinXMargin); +_saturationValue=_redValue.cloneNode(false); +_saturationValue.onchange=_9; +_11._DOMElement.appendChild(_saturationValue); +objj_msgSend(_contentView,"addSubview:",_11); +_brightnessLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,191,15,20)); +objj_msgSend(_brightnessLabel,"setStringValue:","B"); +objj_msgSend(_brightnessLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_brightnessSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CPRectMake(15,191,aFrame.size.width-70,20)); +objj_msgSend(_brightnessSlider,"setMaxValue:",100); +objj_msgSend(_brightnessSlider,"setMinValue:",0); +objj_msgSend(_brightnessSlider,"setTarget:",_7); +objj_msgSend(_brightnessSlider,"setAction:",sel_getUid("sliderChanged:")); +objj_msgSend(_brightnessSlider,"setAutoresizingMask:",CPViewWidthSizable); +var _12=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(aFrame.size.width-45,191,45,20)); +objj_msgSend(_12,"setAutoresizingMask:",CPViewMinXMargin); +_brightnessValue=_redValue.cloneNode(false); +_brightnessValue.onchange=_9; +_12._DOMElement.appendChild(_brightnessValue); +objj_msgSend(_contentView,"addSubview:",_12); +_hexLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,230,30,20)); +objj_msgSend(_hexLabel,"setStringValue:","Hex"); +objj_msgSend(_hexLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_hexValue=_redValue.cloneNode(false); +_hexValue.style.top="228px"; +_hexValue.style.width="80px"; +_hexValue.style.left="35px"; +_hexValue.onkeypress=function(_13){ +_13=_13||window.event; +if(_13.keyCode==13){ +var _14=objj_msgSend(CPColor,"colorWithHexString:",this.value); +if(_14){ +objj_msgSend(_7,"setColor:",_14); +objj_msgSend(objj_msgSend(_7,"colorPanel"),"setColor:",_14); +} +if(_13.preventDefault){ +_13.preventDefault(); +}else{ +if(_13.stopPropagation){ +_13.stopPropagation(); +} +} +this.blur(); +} +}; +_contentView._DOMElement.appendChild(_hexValue); +objj_msgSend(_contentView,"addSubview:",_rgbLabel); +objj_msgSend(_contentView,"addSubview:",_redLabel); +objj_msgSend(_contentView,"addSubview:",_greenLabel); +objj_msgSend(_contentView,"addSubview:",_blueLabel); +objj_msgSend(_contentView,"addSubview:",_redSlider); +objj_msgSend(_contentView,"addSubview:",_greenSlider); +objj_msgSend(_contentView,"addSubview:",_blueSlider); +objj_msgSend(_contentView,"addSubview:",_hsbLabel); +objj_msgSend(_contentView,"addSubview:",_hueLabel); +objj_msgSend(_contentView,"addSubview:",_saturationLabel); +objj_msgSend(_contentView,"addSubview:",_brightnessLabel); +objj_msgSend(_contentView,"addSubview:",_hueSlider); +objj_msgSend(_contentView,"addSubview:",_saturationSlider); +objj_msgSend(_contentView,"addSubview:",_brightnessSlider); +objj_msgSend(_contentView,"addSubview:",_hexLabel); +} +}),new objj_method(sel_getUid("provideNewView:"),function(_15,_16,_17){ +with(_15){ +if(_17){ +objj_msgSend(_15,"initView"); +} +return _contentView; +} +}),new objj_method(sel_getUid("currentMode"),function(_18,_19){ +with(_18){ +return CPSliderColorPickerMode; +} +}),new objj_method(sel_getUid("supportsMode:"),function(_1a,_1b,_1c){ +with(_1a){ +return (_1c==CPSliderColorPickerMode)?YES:NO; +} +}),new objj_method(sel_getUid("sliderChanged:"),function(_1d,_1e,_1f){ +with(_1d){ +var _20,_21=objj_msgSend(_1d,"colorPanel"),_22=objj_msgSend(_21,"opacity"); +switch(_1f){ +case _hueSlider: +case _saturationSlider: +case _brightnessSlider: +_20=objj_msgSend(CPColor,"colorWithHue:saturation:brightness:alpha:",objj_msgSend(_hueSlider,"floatValue"),objj_msgSend(_saturationSlider,"floatValue"),objj_msgSend(_brightnessSlider,"floatValue"),_22); +objj_msgSend(_1d,"updateRGBSliders:",_20); +break; +case _redSlider: +case _greenSlider: +case _blueSlider: +_20=objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",objj_msgSend(_redSlider,"floatValue"),objj_msgSend(_greenSlider,"floatValue"),objj_msgSend(_blueSlider,"floatValue"),_22); +objj_msgSend(_1d,"updateHSBSliders:",_20); +break; +} +objj_msgSend(_1d,"updateLabels"); +objj_msgSend(_1d,"updateHex:",_20); +objj_msgSend(_21,"setColor:",_20); +} +}),new objj_method(sel_getUid("setColor:"),function(_23,_24,_25){ +with(_23){ +objj_msgSend(_23,"updateRGBSliders:",_25); +objj_msgSend(_23,"updateHSBSliders:",_25); +objj_msgSend(_23,"updateHex:",_25); +objj_msgSend(_23,"updateLabels"); +} +}),new objj_method(sel_getUid("updateHSBSliders:"),function(_26,_27,_28){ +with(_26){ +var hsb=objj_msgSend(_28,"hsbComponents"); +objj_msgSend(_hueSlider,"setFloatValue:",hsb[0]); +objj_msgSend(_saturationSlider,"setFloatValue:",hsb[1]); +objj_msgSend(_brightnessSlider,"setFloatValue:",hsb[2]); +} +}),new objj_method(sel_getUid("updateHex:"),function(_2a,_2b,_2c){ +with(_2a){ +_hexValue.value=objj_msgSend(_2c,"hexString"); +} +}),new objj_method(sel_getUid("updateRGBSliders:"),function(_2d,_2e,_2f){ +with(_2d){ +var rgb=objj_msgSend(_2f,"components"); +objj_msgSend(_redSlider,"setFloatValue:",rgb[0]); +objj_msgSend(_greenSlider,"setFloatValue:",rgb[1]); +objj_msgSend(_blueSlider,"setFloatValue:",rgb[2]); +} +}),new objj_method(sel_getUid("updateLabels"),function(_31,_32){ +with(_31){ +_hueValue.value=ROUND(objj_msgSend(_hueSlider,"floatValue")); +_saturationValue.value=ROUND(objj_msgSend(_saturationSlider,"floatValue")); +_brightnessValue.value=ROUND(objj_msgSend(_brightnessSlider,"floatValue")); +_redValue.value=ROUND(objj_msgSend(_redSlider,"floatValue")*255); +_greenValue.value=ROUND(objj_msgSend(_greenSlider,"floatValue")*255); +_blueValue.value=ROUND(objj_msgSend(_blueSlider,"floatValue")*255); +} +}),new objj_method(sel_getUid("provideNewButtonImage"),function(_33,_34){ +with(_33){ +return objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",CPColorPicker),"pathForResource:","slider_button.png"),CGSizeMake(32,32)); +} +}),new objj_method(sel_getUid("provideNewAlternateButtonImage"),function(_35,_36){ +with(_35){ +return objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",CPColorPicker),"pathForResource:","slider_button_h.png"),CGSizeMake(32,32)); +} +})]); +p;13;CPSplitView.ji;9;CPImage.ji;8;CPView.jc;18484; +CPSplitViewDidResizeSubviewsNotification="CPSplitViewDidResizeSubviewsNotification"; +CPSplitViewWillResizeSubviewsNotification="CPSplitViewWillResizeSubviewsNotification"; +var _1=nil,_2=nil; +var _3=objj_allocateClassPair(CPView,"CPSplitView"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_delegate"),new objj_ivar("_isVertical"),new objj_ivar("_isPaneSplitter"),new objj_ivar("_currentDivider"),new objj_ivar("_initialOffset"),new objj_ivar("_originComponent"),new objj_ivar("_sizeComponent"),new objj_ivar("_DOMDividerElements"),new objj_ivar("_dividerImagePath"),new objj_ivar("_drawingDivider"),new objj_ivar("_needsResizeSubviews")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initWithFrame:"),function(_5,_6,_7){ +with(_5){ +if(_5=objj_msgSendSuper({receiver:_5,super_class:objj_getClass("CPView")},"initWithFrame:",_7)){ +_currentDivider=CPNotFound; +_DOMDividerElements=[]; +objj_msgSend(_5,"_setVertical:",YES); +} +return _5; +} +}),new objj_method(sel_getUid("dividerThickness"),function(_8,_9){ +with(_8){ +return _isPaneSplitter?1:10; +} +}),new objj_method(sel_getUid("isVertical"),function(_a,_b){ +with(_a){ +return _isVertical; +} +}),new objj_method(sel_getUid("setVertical:"),function(_c,_d,_e){ +with(_c){ +if(!objj_msgSend(_c,"_setVertical:",_e)){ +return; +} +var _f=objj_msgSend(_c,"frame"),_10=objj_msgSend(_c,"dividerThickness"); +objj_msgSend(_c,"_postNotificationWillResize"); +var _11=ROUND((_f.size[_sizeComponent]-_10*(_subviews.length-1))/_subviews.length),_12=0,_13=_subviews.length; +if(objj_msgSend(_c,"isVertical")){ +for(;_12<_13;++_12){ +objj_msgSend(_subviews[_12],"setFrame:",CGRectMake(ROUND((_11+_10)*_12),0,_11,_f.size.height)); +} +}else{ +for(;_12<_13;++_12){ +objj_msgSend(_subviews[_12],"setFrame:",CGRectMake(0,ROUND((_11+_10)*_12),_f.size.width,_11)); +} +} +objj_msgSend(_c,"setNeedsDisplay:",YES); +objj_msgSend(_c,"_postNotificationDidResize"); +} +}),new objj_method(sel_getUid("_setVertical:"),function(_14,_15,_16){ +with(_14){ +var _17=(_isVertical!=_16); +_isVertical=_16; +_originComponent=objj_msgSend(_14,"isVertical")?"x":"y"; +_sizeComponent=objj_msgSend(_14,"isVertical")?"width":"height"; +_dividerImagePath=objj_msgSend(_14,"isVertical")?objj_msgSend(_2,"filename"):objj_msgSend(_1,"filename"); +return _17; +} +}),new objj_method(sel_getUid("isPaneSplitter"),function(_18,_19){ +with(_18){ +return _isPaneSplitter; +} +}),new objj_method(sel_getUid("setIsPaneSplitter:"),function(_1a,_1b,_1c){ +with(_1a){ +if(_isPaneSplitter==_1c){ +return; +} +_isPaneSplitter=_1c; +_DOMDividerElements=[]; +objj_msgSend(_1a,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("didAddSubview:"),function(_1d,_1e,_1f){ +with(_1d){ +_needsResizeSubviews=YES; +} +}),new objj_method(sel_getUid("isSubviewCollapsed:"),function(_20,_21,_22){ +with(_20){ +return objj_msgSend(_22,"frame").size[_sizeComponent]<1?YES:NO; +} +}),new objj_method(sel_getUid("rectOfDividerAtIndex:"),function(_23,_24,_25){ +with(_23){ +var _26=objj_msgSend(_subviews[_25],"frame"),_27=CGRectMakeZero(); +_27.size=objj_msgSend(_23,"frame").size; +_27.size[_sizeComponent]=objj_msgSend(_23,"dividerThickness"); +_27.origin[_originComponent]=_26.origin[_originComponent]+_26.size[_sizeComponent]; +return _27; +} +}),new objj_method(sel_getUid("effectiveRectOfDividerAtIndex:"),function(_28,_29,_2a){ +with(_28){ +var _2b=objj_msgSend(_28,"rectOfDividerAtIndex:",_2a); +var _2c=2; +_2b.size[_sizeComponent]+=_2c*2; +_2b.origin[_originComponent]-=_2c; +return _2b; +} +}),new objj_method(sel_getUid("drawRect:"),function(_2d,_2e,_2f){ +with(_2d){ +var _30=objj_msgSend(_subviews,"count")-1; +while((_30--)>0){ +_drawingDivider=_30; +objj_msgSend(_2d,"drawDividerInRect:",objj_msgSend(_2d,"rectOfDividerAtIndex:",_30)); +} +} +}),new objj_method(sel_getUid("drawDividerInRect:"),function(_31,_32,_33){ +with(_31){ +if(!_DOMDividerElements[_drawingDivider]){ +_DOMDividerElements[_drawingDivider]=document.createElement("div"); +_DOMDividerElements[_drawingDivider].style.cursor="move"; +_DOMDividerElements[_drawingDivider].style.position="absolute"; +_DOMDividerElements[_drawingDivider].style.backgroundRepeat="repeat"; +if(_DOMDividerElements[_drawingDivider].CPDOMDisplayContext){ +_DOMDividerElements[_drawingDivider].CPDOMDisplayContext[0]=-1; +} +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=6; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMDividerElements[_drawingDivider]; +if(_isPaneSplitter){ +_DOMDividerElements[_drawingDivider].style.backgroundColor="#A5A5A5"; +_DOMDividerElements[_drawingDivider].style.backgroundImage=""; +}else{ +_DOMDividerElements[_drawingDivider].style.backgroundColor=""; +_DOMDividerElements[_drawingDivider].style.backgroundImage="url('"+_dividerImagePath+"')"; +} +} +if(!_DOMDividerElements[_drawingDivider].CPDOMDisplayContext){ +_DOMDividerElements[_drawingDivider].CPDOMDisplayContext=[]; +} +var _34=_DOMDividerElements[_drawingDivider].CPDOMDisplayContext[0]; +if(!(_34>=0)){ +_34=_DOMDividerElements[_drawingDivider].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_34]=0; +CPDOMDisplayServerInstructions[_34+1]=_DOMDividerElements[_drawingDivider]; +CPDOMDisplayServerInstructions[_34+2]=NULL; +CPDOMDisplayServerInstructions[_34+3]=(_33.origin.x); +CPDOMDisplayServerInstructions[_34+4]=(_33.origin.y); +if(!_DOMDividerElements[_drawingDivider].CPDOMDisplayContext){ +_DOMDividerElements[_drawingDivider].CPDOMDisplayContext=[]; +} +var _34=_DOMDividerElements[_drawingDivider].CPDOMDisplayContext[4]; +if(!(_34>=0)){ +_34=_DOMDividerElements[_drawingDivider].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_34]=4; +CPDOMDisplayServerInstructions[_34+1]=_DOMDividerElements[_drawingDivider]; +CPDOMDisplayServerInstructions[_34+2]=(_33.size.width); +CPDOMDisplayServerInstructions[_34+3]=(_33.size.height); +} +}),new objj_method(sel_getUid("viewWillDraw"),function(_35,_36){ +with(_35){ +objj_msgSend(_35,"_adjustSubviewsWithCalculatedSize"); +} +}),new objj_method(sel_getUid("_adjustSubviewsWithCalculatedSize"),function(_37,_38){ +with(_37){ +if(!_needsResizeSubviews){ +return; +} +_needsResizeSubviews=NO; +var _39=objj_msgSend(_37,"subviews"),_3a=_39.length,_3b=CGSizeMakeZero(); +if(objj_msgSend(_37,"isVertical")){ +_3b.width+=objj_msgSend(_37,"dividerThickness")*(_3a-1); +_3b.height=CGRectGetHeight(objj_msgSend(_37,"frame")); +}else{ +_3b.width=CGRectGetWidth(objj_msgSend(_37,"frame")); +_3b.height+=objj_msgSend(_37,"dividerThickness")*(_3a-1); +} +while(_3a--){ +_3b[_sizeComponent]+=objj_msgSend(_39[_3a],"frame").size[_sizeComponent]; +} +objj_msgSend(_37,"resizeSubviewsWithOldSize:",_3b); +} +}),new objj_method(sel_getUid("cursorAtPoint:hitDividerAtIndex:"),function(_3c,_3d,_3e,_3f){ +with(_3c){ +var _40=objj_msgSend(_subviews[_3f],"frame"),_41=_40.origin[_originComponent]+_40.size[_sizeComponent],_42=objj_msgSend(_3c,"effectiveRectOfDividerAtIndex:",_3f),_43=null; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:"))){ +_42=objj_msgSend(_delegate,"splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:",_3c,_42,_42,_3f); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:additionalEffectiveRectOfDividerAtIndex:"))){ +_43=objj_msgSend(_delegate,"splitView:additionalEffectiveRectOfDividerAtIndex:",_3c,_3f); +} +return CGRectContainsPoint(_42,_3e)||(_43&&CGRectContainsPoint(_43,_3e)); +} +}),new objj_method(sel_getUid("hitTest:"),function(_44,_45,_46){ +with(_44){ +if(objj_msgSend(_44,"isHidden")||!objj_msgSend(_44,"hitTests")||!CGRectContainsPoint(objj_msgSend(_44,"frame"),_46)){ +return nil; +} +var _47=objj_msgSend(_44,"convertPoint:fromView:",_46,objj_msgSend(_44,"superview")); +var _48=objj_msgSend(_subviews,"count")-1; +for(var i=0;i<_48;i++){ +if(objj_msgSend(_44,"cursorAtPoint:hitDividerAtIndex:",_47,i)){ +return _44; +} +} +return objj_msgSendSuper({receiver:_44,super_class:objj_getClass("CPView")},"hitTest:",_46); +} +}),new objj_method(sel_getUid("trackDivider:"),function(_4a,_4b,_4c){ +with(_4a){ +var _4d=objj_msgSend(_4c,"type"); +if(_4d==CPLeftMouseUp){ +if(_currentDivider!=CPNotFound){ +_currentDivider=CPNotFound; +objj_msgSend(_4a,"_postNotificationDidResize"); +} +return; +} +if(_4d==CPLeftMouseDown){ +var _4e=objj_msgSend(_4a,"convertPoint:fromView:",objj_msgSend(_4c,"locationInWindow"),nil); +_currentDivider=CPNotFound; +var _4f=objj_msgSend(_subviews,"count")-1; +for(var i=0;i<_4f;i++){ +var _51=objj_msgSend(_subviews[i],"frame"),_52=_51.origin[_originComponent]+_51.size[_sizeComponent]; +if(objj_msgSend(_4a,"cursorAtPoint:hitDividerAtIndex:",_4e,i)){ +if(objj_msgSend(_4c,"clickCount")==2&&objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:canCollapseSubview:"))&&objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:"))){ +var _53=objj_msgSend(_4a,"minPossiblePositionOfDividerAtIndex:",i),_54=objj_msgSend(_4a,"maxPossiblePositionOfDividerAtIndex:",i); +if(objj_msgSend(_delegate,"splitView:canCollapseSubview:",_4a,_subviews[i])&&objj_msgSend(_delegate,"splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:",_4a,_subviews[i],i)){ +if(objj_msgSend(_4a,"isSubviewCollapsed:",_subviews[i])){ +objj_msgSend(_4a,"setPosition:ofDividerAtIndex:",(_53+(_54-_53)/2),i); +}else{ +objj_msgSend(_4a,"setPosition:ofDividerAtIndex:",_53,i); +} +}else{ +if(objj_msgSend(_delegate,"splitView:canCollapseSubview:",_4a,_subviews[i+1])&&objj_msgSend(_delegate,"splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:",_4a,_subviews[i+1],i)){ +if(objj_msgSend(_4a,"isSubviewCollapsed:",_subviews[i+1])){ +objj_msgSend(_4a,"setPosition:ofDividerAtIndex:",(_53+(_54-_53)/2),i); +}else{ +objj_msgSend(_4a,"setPosition:ofDividerAtIndex:",_54,i); +} +} +} +}else{ +_currentDivider=i; +_initialOffset=_52-_4e[_originComponent]; +objj_msgSend(_4a,"_postNotificationWillResize"); +} +} +} +}else{ +if(_4d==CPLeftMouseDragged&&_currentDivider!=CPNotFound){ +var _4e=objj_msgSend(_4a,"convertPoint:fromView:",objj_msgSend(_4c,"locationInWindow"),nil); +objj_msgSend(_4a,"setPosition:ofDividerAtIndex:",(_4e[_originComponent]+_initialOffset),_currentDivider); +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_4a,sel_getUid("trackDivider:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +}),new objj_method(sel_getUid("mouseDown:"),function(_55,_56,_57){ +with(_55){ +objj_msgSend(_55,"trackDivider:",_57); +} +}),new objj_method(sel_getUid("maxPossiblePositionOfDividerAtIndex:"),function(_58,_59,_5a){ +with(_58){ +var _5b=objj_msgSend(_subviews[_5a+1],"frame"); +if(_5a+10){ +var _5f=objj_msgSend(_subviews[_5e-1],"frame"); +return _5f.origin[_originComponent]+_5f.size[_sizeComponent]+objj_msgSend(_5c,"dividerThickness"); +}else{ +return 0; +} +} +}),new objj_method(sel_getUid("setPosition:ofDividerAtIndex:"),function(_60,_61,_62,_63){ +with(_60){ +objj_msgSend(_60,"_adjustSubviewsWithCalculatedSize"); +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:constrainSplitPosition:ofSubviewAt:"))){ +_62=objj_msgSend(_delegate,"splitView:constrainSplitPosition:ofSubviewAt:",_60,_62,_63); +} +var _64=objj_msgSend(_60,"maxPossiblePositionOfDividerAtIndex:",_63),_65=objj_msgSend(_60,"minPossiblePositionOfDividerAtIndex:",_63),_66=_64,_67=_65; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:constrainMinCoordinate:ofSubviewAt:"))){ +_67=objj_msgSend(_delegate,"splitView:constrainMinCoordinate:ofSubviewAt:",_60,_65,_63); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:constrainMaxCoordinate:ofSubviewAt:"))){ +_66=objj_msgSend(_delegate,"splitView:constrainMaxCoordinate:ofSubviewAt:",_60,_64,_63); +} +var _68=objj_msgSend(_60,"frame"),_69=_subviews[_63],_6a=objj_msgSend(_69,"frame"),_6b=_subviews[_63+1],_6c=objj_msgSend(_6b,"frame"); +var _6d=MAX(MIN(_62,_66),_67); +if(_62<_65+(_67-_65)/2){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:canCollapseSubview:"))){ +if(objj_msgSend(_delegate,"splitView:canCollapseSubview:",_60,_69)){ +_6d=_65; +} +} +} +_6a.size[_sizeComponent]=_6d-_6a.origin[_originComponent]; +objj_msgSend(_subviews[_63],"setFrame:",_6a); +_6c.size[_sizeComponent]=_6c.origin[_originComponent]+_6c.size[_sizeComponent]-_6d-objj_msgSend(_60,"dividerThickness"); +_6c.origin[_originComponent]=_6d+objj_msgSend(_60,"dividerThickness"); +objj_msgSend(_subviews[_63+1],"setFrame:",_6c); +objj_msgSend(_60,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_6e,_6f,_70){ +with(_6e){ +objj_msgSend(_6e,"_adjustSubviewsWithCalculatedSize"); +objj_msgSendSuper({receiver:_6e,super_class:objj_getClass("CPView")},"setFrameSize:",_70); +objj_msgSend(_6e,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_71,_72,_73){ +with(_71){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:resizeSubviewsWithOldSize:"))){ +objj_msgSend(_delegate,"splitView:resizeSubviewsWithOldSize:",_71,_73); +return; +} +objj_msgSend(_71,"_postNotificationWillResize"); +var _74=0,_75=objj_msgSend(_subviews,"count"),_76=objj_msgSend(_71,"bounds"),_77=objj_msgSend(_71,"dividerThickness"),_78=_75-1,_79=0,_7a=0,_7b=-1,_7c=0,_7d=objj_msgSend(_71,"isVertical"); +for(_74=0;_74<_75;++_74){ +var _7e=_subviews[_74],_7f=_7d?objj_msgSend(_7e,"autoresizingMask")&CPViewWidthSizable:objj_msgSend(_7e,"autoresizingMask")&CPViewHeightSizable; +if(_7f){ +_79+=objj_msgSend(_7e,"frame").size[_sizeComponent]; +_7b=_74; +_7c++; +} +} +if(_7c===_75){ +_79=0; +} +var _7a=_79?_76.size[_sizeComponent]-_79:0,_80=(_76.size[_sizeComponent]-_78*_77-_7a)/(_73[_sizeComponent]-_78*_77-_7a),_81=_76.size[_sizeComponent]-_73[_sizeComponent]; +for(_74=0;_74<_75;++_74){ +var _7e=_subviews[_74],_82=CGRectMakeCopy(_76),_7f=_7d?objj_msgSend(_7e,"autoresizingMask")&CPViewWidthSizable:objj_msgSend(_7e,"autoresizingMask")&CPViewHeightSizable; +if(_74+1==_75){ +_82.size[_sizeComponent]=_76.size[_sizeComponent]-_82.origin[_originComponent]; +}else{ +if(_79&&_7f&&_7b===_74){ +_82.size[_sizeComponent]=MAX(0,ROUND(objj_msgSend(_7e,"frame").size[_sizeComponent]+_81)); +}else{ +if(_7f||!_79){ +_82.size[_sizeComponent]=MAX(0,ROUND(_80*objj_msgSend(_7e,"frame").size[_sizeComponent])); +_81-=(_82.size[_sizeComponent]-objj_msgSend(_7e,"frame").size[_sizeComponent]); +}else{ +if(_79&&!_7f){ +_82.size[_sizeComponent]=objj_msgSend(_7e,"frame").size[_sizeComponent]; +}else{ +alert("SHOULD NEVER GET HERE"); +} +} +} +} +_76.origin[_originComponent]+=_82.size[_sizeComponent]+_77; +objj_msgSend(_7e,"setFrame:",_82); +} +objj_msgSend(_71,"_postNotificationDidResize"); +} +}),new objj_method(sel_getUid("setDelegate:"),function(_83,_84,_85){ +with(_83){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitViewDidResizeSubviews:"))){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"removeObserver:name:object:",_delegate,CPSplitViewDidResizeSubviewsNotification,_83); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitViewWillResizeSubviews:"))){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"removeObserver:name:object:",_delegate,CPSplitViewWillResizeSubviewsNotification,_83); +} +_delegate=_85; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitViewDidResizeSubviews:"))){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"addObserver:selector:name:object:",_delegate,sel_getUid("splitViewDidResizeSubviews:"),CPSplitViewDidResizeSubviewsNotification,_83); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitViewWillResizeSubviews:"))){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"addObserver:selector:name:object:",_delegate,sel_getUid("splitViewWillResizeSubviews:"),CPSplitViewWillResizeSubviewsNotification,_83); +} +} +}),new objj_method(sel_getUid("_postNotificationWillResize"),function(_86,_87){ +with(_86){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPSplitViewWillResizeSubviewsNotification,_86); +} +}),new objj_method(sel_getUid("_postNotificationDidResize"),function(_88,_89){ +with(_88){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPSplitViewDidResizeSubviewsNotification,_88); +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("initialize"),function(_8a,_8b){ +with(_8a){ +if(_8a!=objj_msgSend(CPSplitView,"class")){ +return; +} +var _8c=objj_msgSend(CPBundle,"bundleForClass:",_8a); +_1=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_8c,"pathForResource:","CPSplitView/CPSplitViewHorizontal.png"),CPSizeMake(5,10)); +_2=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_8c,"pathForResource:","CPSplitView/CPSplitViewVertical.png"),CPSizeMake(10,5)); +} +})]); +var _8d="CPSplitViewDelegateKey",_8e="CPSplitViewIsVerticalKey",_8f="CPSplitViewIsPaneSplitterKey"; +var _3=objj_getClass("CPSplitView"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPSplitView\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("initWithCoder:"),function(_90,_91,_92){ +with(_90){ +_90=objj_msgSendSuper({receiver:_90,super_class:objj_getClass("CPView")},"initWithCoder:",_92); +if(_90){ +_currentDivider=CPNotFound; +_DOMDividerElements=[]; +_delegate=objj_msgSend(_92,"decodeObjectForKey:",_8d); +_isPaneSplitter=objj_msgSend(_92,"decodeBoolForKey:",_8f); +objj_msgSend(_90,"_setVertical:",objj_msgSend(_92,"decodeBoolForKey:",_8e)); +} +return _90; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_93,_94,_95){ +with(_93){ +objj_msgSendSuper({receiver:_93,super_class:objj_getClass("CPView")},"encodeWithCoder:",_95); +objj_msgSend(_95,"encodeConditionalObject:forKey:",_delegate,_8d); +objj_msgSend(_95,"encodeBool:forKey:",_isVertical,_8e); +objj_msgSend(_95,"encodeBool:forKey:",_isPaneSplitter,_8f); +} +})]); +p;17;CPStringDrawing.jI;21;Foundation/CPString.jc;1584; +var _1=nil,_2=nil; +var _3=objj_getClass("CPString"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPString\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("cssString"),function(_5,_6){ +with(_5){ +return _5; +} +}),new objj_method(sel_getUid("sizeWithFont:"),function(_7,_8,_9){ +with(_7){ +return objj_msgSend(_7,"sizeWithFont:inWidth:",_9,NULL); +} +}),new objj_method(sel_getUid("sizeWithFont:inWidth:"),function(_a,_b,_c,_d){ +with(_a){ +if(!_1){ +_1=document.createElement("span"); +var _e=_1.style; +_e.position="absolute"; +_e.whiteSpace="pre"; +_e.visibility="visible"; +_e.padding="0px"; +_e.margin="0px"; +_e.left="-100000px"; +_e.top="-100000px"; +_e.zIndex="10000"; +_e.background="red"; +document.getElementsByTagName("body")[0].appendChild(_1); +} +if(!_c){ +if(!_2){ +_2=objj_msgSend(CPFont,"systemFontOfSize:",12); +} +_c=_2; +} +var _e=_1.style; +if(_d===NULL){ +_e.width=""; +_e.whiteSpace="pre"; +}else{ +_e.width=ROUND(_d)+"px"; +if(document.attachEvent){ +_e.wordWrap="break-word"; +}else{ +_e.whiteSpace="-o-pre-wrap"; +_e.whiteSpace="-pre-wrap"; +_e.whiteSpace="-moz-pre-wrap"; +_e.whiteSpace="pre-wrap"; +} +} +_e.font=objj_msgSend(_c,"cssString"); +if(CPFeatureIsCompatible(CPJavascriptInnerTextFeature)){ +_1.innerText=_a; +}else{ +if(CPFeatureIsCompatible(CPJavascriptTextContentFeature)){ +_1.textContent=_a; +} +} +return {width:_1.clientWidth,height:_1.clientHeight}; +return {width:0,height:0}; +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("_resetSize"),function(_f,_10){ +with(_f){ +_1=nil; +} +})]); +p;15;CPTableColumn.jI;23;Foundation/Foundation.jc;7157; +CPTableColumnNoResizing=0; +CPTableColumnAutoresizingMask=1; +CPTableColumnUserResizingMask=2; +var _1=objj_allocateClassPair(CPObject,"CPTableColumn"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_identifier"),new objj_ivar("_headerView"),new objj_ivar("_tableView"),new objj_ivar("_width"),new objj_ivar("_minWidth"),new objj_ivar("_maxWidth"),new objj_ivar("_resizingMask"),new objj_ivar("_dataView"),new objj_ivar("_dataViewData"),new objj_ivar("_dataViewForView"),new objj_ivar("_purgableInfosForDataView")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithIdentifier:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +objj_msgSend(_3,"_init"); +_identifier=_5; +_width=40; +_minWidth=8; +_maxWidth=1000; +var _6=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMakeZero()); +objj_msgSend(_6,"setValue:forThemeAttribute:inState:",objj_msgSend(CPColor,"whiteColor"),"text-color",CPThemeStateHighlighted); +objj_msgSend(_3,"setDataView:",_6); +_headerView=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMakeZero()); +objj_msgSend(_headerView,"setBackgroundColor:",objj_msgSend(CPColor,"greenColor")); +} +return _3; +} +}),new objj_method(sel_getUid("_init"),function(_7,_8){ +with(_7){ +_dataViewData={}; +_dataViewForView={}; +_purgableInfosForDataView={}; +} +}),new objj_method(sel_getUid("setIdentifier:"),function(_9,_a,_b){ +with(_9){ +_identifier=_b; +} +}),new objj_method(sel_getUid("identifier"),function(_c,_d){ +with(_c){ +return _identifier; +} +}),new objj_method(sel_getUid("setTableView:"),function(_e,_f,_10){ +with(_e){ +_tableView=_10; +} +}),new objj_method(sel_getUid("tableView"),function(_11,_12){ +with(_11){ +return _tableView; +} +}),new objj_method(sel_getUid("setWidth:"),function(_13,_14,_15){ +with(_13){ +_width=_15; +} +}),new objj_method(sel_getUid("width"),function(_16,_17){ +with(_16){ +return _width; +} +}),new objj_method(sel_getUid("setMinWidth:"),function(_18,_19,_1a){ +with(_18){ +if(_width<(_minWidth=_1a)){ +objj_msgSend(_18,"setWidth:",_minWidth); +} +} +}),new objj_method(sel_getUid("minWidth"),function(_1b,_1c){ +with(_1b){ +return _minWidth; +} +}),new objj_method(sel_getUid("setMaxWidth:"),function(_1d,_1e,_1f){ +with(_1d){ +if(_width>(_maxmimumWidth=_1f)){ +objj_msgSend(_1d,"setWidth:",_maxWidth); +} +} +}),new objj_method(sel_getUid("setResizingMask:"),function(_20,_21,_22){ +with(_20){ +_resizingMask=_22; +} +}),new objj_method(sel_getUid("resizingMask"),function(_23,_24){ +with(_23){ +return _resizingMask; +} +}),new objj_method(sel_getUid("sizeToFit"),function(_25,_26){ +with(_25){ +var _27=CPRectGetWidth(objj_msgSend(_headerView,"frame")); +if(_27<_minWidth){ +objj_msgSend(_25,"setMinWidth:",_27); +}else{ +if(_27>_maxWidth){ +objj_msgSend(_25,"setMaxWidth:",_27); +} +} +if(_width!=_27){ +objj_msgSend(_25,"setWidth:",_27); +} +} +}),new objj_method(sel_getUid("setEditable:"),function(_28,_29,_2a){ +with(_28){ +_isEditable=_2a; +} +}),new objj_method(sel_getUid("isEditable"),function(_2b,_2c){ +with(_2b){ +return _isEditable; +} +}),new objj_method(sel_getUid("setHeaderView:"),function(_2d,_2e,_2f){ +with(_2d){ +_headerView=_2f; +} +}),new objj_method(sel_getUid("headerView"),function(_30,_31){ +with(_30){ +return _headerView; +} +}),new objj_method(sel_getUid("setDataCell:"),function(_32,_33,_34){ +with(_32){ +objj_msgSend(_32,"setDataView:",_34); +} +}),new objj_method(sel_getUid("setDataView:"),function(_35,_36,_37){ +with(_35){ +if(_dataView){ +_dataViewData[objj_msgSend(_dataView,"hash")]=nil; +} +_dataView=_37; +_dataViewData[objj_msgSend(_37,"hash")]=objj_msgSend(CPKeyedArchiver,"archivedDataWithRootObject:",_37); +} +}),new objj_method(sel_getUid("dataCell"),function(_38,_39){ +with(_38){ +return _dataView; +} +}),new objj_method(sel_getUid("dataView"),function(_3a,_3b){ +with(_3a){ +return objj_msgSend(_3a,"dataCell"); +} +}),new objj_method(sel_getUid("dataCellForRow:"),function(_3c,_3d,_3e){ +with(_3c){ +return objj_msgSend(_3c,"dataView"); +} +}),new objj_method(sel_getUid("dataViewForRow:"),function(_3f,_40,_41){ +with(_3f){ +return objj_msgSend(_3f,"dataCellForRow:",_41); +} +}),new objj_method(sel_getUid("_markView:inRow:asPurgable:"),function(_42,_43,_44,_45,_46){ +with(_42){ +var _47=objj_msgSend(_44,"hash"),_48=objj_msgSend(_dataViewForView[_47],"hash"); +if(!_purgableInfosForDataView[_48]){ +if(!_46){ +return; +} +_purgableInfosForDataView[_48]={}; +} +if(!_46){ +if(_purgableInfosForDataView[_48][_47]){ +CPLog.warn("removing unpurgable "+_purgableInfosForDataView[_48][_47]); +} +delete _purgableInfosForDataView[_48][_47]; +}else{ +_purgableInfosForDataView[_48][_47]={view:(_44),row:(_45)}; +} +} +}),new objj_method(sel_getUid("_newDataViewForRow:avoidingRows:"),function(_49,_4a,_4b,_4c){ +with(_49){ +var _4d=objj_msgSend(_49,"dataViewForRow:",_4b),_4e=objj_msgSend(_4d,"hash"),_4f=_purgableInfosForDataView[_4e]; +if(_4f){ +for(var key in _4f){ +var _51=_4f[key]; +delete _4f[key]; +return ((_51).view); +} +} +if(!_dataViewData[_4e]){ +_dataViewData[_4e]=objj_msgSend(CPKeyedArchiver,"archivedDataWithRootObject:",_4d); +} +var _52=objj_msgSend(CPKeyedUnarchiver,"unarchiveObjectWithData:",_dataViewData[_4e]); +_dataViewForView[objj_msgSend(_52,"hash")]=_4d; +CPLog.warn("creating cell: %s",_52); +return _52; +} +}),new objj_method(sel_getUid("_purge"),function(_53,_54){ +with(_53){ +for(var _55 in _purgableInfosForDataView){ +var _56=_purgableInfosForDataView[_55]; +for(var key in _56){ +var _58=((_56[key]).view); +if(!_58){ +CPLog.info("key="+key+" view="+_58+" purgableInfos[key]="+_56[key]); +}else{ +if(_58._superview){ +objj_msgSend(_58,"setHidden:",YES); +} +} +} +} +} +})]); +var _59="CPTableColumnIdentifierKey",_5a="CPTableColumnHeaderViewKey",_5b="CPTableColumnDataViewKey",_5c="CPTableColumnWidthKey",_5d="CPTableColumnMinWidthKey",_5e="CPTableColumnMaxWidthKey",_5f="CPTableColumnResizingMaskKey"; +var _1=objj_getClass("CPTableColumn"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTableColumn\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_60,_61,_62){ +with(_60){ +objj_msgSend(_60,"_init"); +_identifier=objj_msgSend(_62,"decodeObjectForKey:",_59); +objj_msgSend(_60,"setHeaderView:",objj_msgSend(_62,"decodeObjectForKey:",_5a)); +objj_msgSend(_60,"setDataView:",objj_msgSend(_62,"decodeObjectForKey:",_5b)); +_width=objj_msgSend(_62,"decodeFloatForKey:",_5c); +_minWidth=objj_msgSend(_62,"decodeFloatForKey:",_5d); +_maxWidth=objj_msgSend(_62,"decodeFloatForKey:",_5e); +_resizingMask=objj_msgSend(_62,"decodeBoolForKey:",_5f); +return _60; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_63,_64,_65){ +with(_63){ +objj_msgSend(_65,"encodeObject:forKey:",_identifier,_59); +objj_msgSend(_65,"encodeObject:forKey:",_headerView,_5a); +objj_msgSend(_65,"encodeObject:forKey:",_dataView,_5b); +objj_msgSend(_65,"encodeObject:forKey:",_width,_5c); +objj_msgSend(_65,"encodeObject:forKey:",_minWidth,_5d); +objj_msgSend(_65,"encodeObject:forKey:",_maxWidth,_5e); +objj_msgSend(_65,"encodeObject:forKey:",_resizingMask,_5f); +} +})]); +p;13;CPTableView.ji;11;CPControl.ji;15;CPTableColumn.ji;9;CPColor.ji;13;CPTextField.jc;28383; +CPTableViewColumnDidMoveNotification="CPTableViewColumnDidMoveNotification"; +CPTableViewColumnDidResizeNotification="CPTableViewColumnDidResizeNotification"; +CPTableViewSelectionDidChangeNotification="CPTableViewSelectionDidChangeNotification"; +CPTableViewSelectionIsChangingNotification="CPTableViewSelectionIsChangingNotification"; +var _1=1<<0,_2=1<<1,_3=1<<2,_4=1<<3,_5=1<<4,_6=1<<5,_7=1<<6; +var _8=objj_allocateClassPair(CPControl,"CPTableView"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_dataSource"),new objj_ivar("_delegate"),new objj_ivar("_tableColumns"),new objj_ivar("_selectedRowIndexes"),new objj_ivar("_rowHeight"),new objj_ivar("_intercellSpacing"),new objj_ivar("_allowsMultipleSelection"),new objj_ivar("_allowsEmptySelection"),new objj_ivar("_delegateSelectorsCache"),new objj_ivar("_numberOfRows"),new objj_ivar("_hasVariableHeightRows"),new objj_ivar("_columnHeight"),new objj_ivar("_rowHeights"),new objj_ivar("_rowMinYs"),new objj_ivar("_tableCells"),new objj_ivar("_tableColumnViews"),new objj_ivar("_dataViewCache"),new objj_ivar("_objectValueCache"),new objj_ivar("_visibleRows"),new objj_ivar("_visibleColumns"),new objj_ivar("_populatedRows"),new objj_ivar("_populatedColumns"),new objj_ivar("_previousSelectedRowIndexes"),new objj_ivar("_selectionStartRow"),new objj_ivar("_selectionModifier"),new objj_ivar("_currentlySelected"),new objj_ivar("_selectionViews"),new objj_ivar("_selectionViewsPool"),new objj_ivar("_scrollTimer")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("initWithFrame:"),function(_a,_b,_c){ +with(_a){ +_a=objj_msgSendSuper({receiver:_a,super_class:objj_getClass("CPControl")},"initWithFrame:",_c); +if(_a){ +objj_msgSend(_a,"_init"); +} +return _a; +} +}),new objj_method(sel_getUid("_init"),function(_d,_e){ +with(_d){ +_tableColumns=[]; +_selectedRowIndexes=objj_msgSend(CPIndexSet,"indexSet"); +_rowHeight=17; +_intercellSpacing=CPSizeMake(3,2); +_allowsMultipleSelection=YES; +_allowsEmptySelection=YES; +_tableCells=[]; +_tableColumnViews=[]; +_dataViewCache={}; +_objectValueCache=[]; +_visibleRows=CPMakeRange(0,0); +_visibleColumns=CPMakeRange(0,0); +_rowHeights=[]; +_rowMinYs=[]; +} +}),new objj_method(sel_getUid("_columnHeight"),function(_f,_10){ +with(_f){ +return _columnHeight; +} +}),new objj_method(sel_getUid("newCellForRow:column:avoidingRows:"),function(_11,_12,_13,_14,_15){ +with(_11){ +var _16=objj_msgSend(_tableColumns[_14],"_newDataViewForRow:avoidingRows:",_13,_15); +objj_msgSend(_16,"setFrame:",CGRectMake(0,(_hasVariableHeightRows?_rowMinYs[_13]:(_13*(_rowHeight+_intercellSpacing.height))),objj_msgSend(_tableColumns[_14],"width"),(_hasVariableHeightRows?_rowHeights[_13]:_rowHeight))); +if(objj_msgSend(_16,"respondsToSelector:",sel_getUid("highlight:"))){ +objj_msgSend(_16,"highlight:",objj_msgSend(_selectedRowIndexes,"containsIndex:",_13)); +} +if(!_objectValueCache[_14]){ +_objectValueCache[_14]=[]; +} +if(_objectValueCache[_14][_13]===undefined){ +_objectValueCache[_14][_13]=objj_msgSend(_dataSource,"tableView:objectValueForTableColumn:row:",_11,_tableColumns[_14],_13); +} +objj_msgSend(_16,"setObjectValue:",_objectValueCache[_14][_13]); +return _16; +} +}),new objj_method(sel_getUid("clearCells"),function(_17,_18){ +with(_17){ +var _19=CPMaxRange(_visibleColumns),_1a=CPMaxRange(_visibleRows); +for(var _1b=_visibleColumns.location;_1b<_19;_1b++){ +var _1c=_tableColumns[_1b],_1d=_tableCells[_1b]; +for(var row=_visibleRows.location;row<_1a;row++){ +var _1f=_1d[row]; +if(_1f){ +_1d[row]=nil; +objj_msgSend(_1c,"_markView:inRow:asPurgable:",_1f,row,YES); +}else{ +CPLog.warn("Missing cell? "+row+","+_1b); +} +} +} +_visibleColumns=CPMakeRange(0,0); +_visibleRows=CPMakeRange(0,0); +} +}),new objj_method(sel_getUid("loadTableCellsInRect:"),function(_20,_21,_22){ +with(_20){ +if(!_dataSource){ +return; +} +var _23=MAX(0,objj_msgSend(_20,"_rowAtY:",CGRectGetMinY(_22))-1),_24=MIN(_numberOfRows,objj_msgSend(_20,"_rowAtY:",CGRectGetMaxY(_22))+1),_25=CPMakeRange(_23,_24-_23),_26=MAX(0,objj_msgSend(_20,"_columnAtX:",CGRectGetMinX(_22))),_27=MIN(_tableColumns.length,objj_msgSend(_20,"_columnAtX:",CGRectGetMaxX(_22))+1),_28=CPMakeRange(_26,_27-_26); +if(CPEqualRanges(_visibleRows,_25)&&CPEqualRanges(_visibleColumns,_28)){ +return; +} +var _29=CPUnionRange(_visibleRows,_25),_2a=CPUnionRange(_visibleColumns,_28); +if(_29.length*_2a.length<=(_visibleRows.length*_visibleColumns.length)+(_25.length*_28.length)){ +var _2b=CPMaxRange(_2a),_2c=CPMaxRange(_29),_2d; +for(var _2e=_2a.location;_2e<_2b;++_2e){ +var _2f=_tableColumns[_2e],_30=_tableCells[_2e],_31=CPLocationInRange(_2e,_28),_32=[]; +for(var row=_29.location;row<_2c;++row){ +if(_2d=_30[row]){ +if(!_31||!CPLocationInRange(row,_25)){ +_30[row]=nil; +objj_msgSend(_2f,"_markView:inRow:asPurgable:",_2d,row,YES); +} +}else{ +_32.push(row); +} +} +while(_32.length>0){ +var row=_32.pop(); +_30[row]=objj_msgSend(_20,"newCellForRow:column:avoidingRows:",row,_2e,_25); +if(!_30[row]._superview){ +objj_msgSend(_tableColumnViews[_2e],"addSubview:",_30[row]); +}else{ +if(_30[row]._isHidden){ +objj_msgSend(_30[row],"setHidden:",NO); +} +} +} +objj_msgSend(_2f,"_purge"); +} +}else{ +var _2b=CPMaxRange(_visibleColumns),_2c=CPMaxRange(_visibleRows),_2d; +for(var _2e=_visibleColumns.location;_2e<_2b;++_2e){ +var _2f=_tableColumns[_2e],_30=_tableCells[_2e],_31=CPLocationInRange(_2e,_28); +for(var row=_visibleRows.location;row<_2c;++row){ +if(_2d=_30[row]){ +if(!_31||!CPLocationInRange(row,_25)){ +_30[row]=nil; +objj_msgSend(_2f,"_markView:inRow:asPurgable:",_2d,row,YES); +} +} +} +} +var _2b=CPMaxRange(_28),_2c=CPMaxRange(_25); +for(var _2e=_28.location;_2e<_2b;++_2e){ +var _2f=_tableColumns[_2e],_30=_tableCells[_2e]; +for(var row=_25.location;row<_2c;++row){ +_30[row]=objj_msgSend(_20,"newCellForRow:column:avoidingRows:",row,_2e,_25); +if(!_30[row]._superview){ +objj_msgSend(_tableColumnViews[_2e],"addSubview:",_30[row]); +}else{ +if(_30[row]._isHidden){ +objj_msgSend(_30[row],"setHidden:",NO); +} +} +} +objj_msgSend(_2f,"_purge"); +} +} +_visibleRows=_25; +_visibleColumns=_28; +} +}),new objj_method(sel_getUid("setIntercellSpacing:"),function(_34,_35,_36){ +with(_34){ +if(_intercellSpacing.width!=_36.width){ +var i=1,_38=_36.width-_intercellSpacing.width; +total=_38; +for(;i<_tableColumns.length;++i,total+=_38){ +var _39=objj_msgSend(_tableColumnViews[i],"frame").origin; +objj_msgSend(_tableColumnViews[i],"setFrameOrigin:",CGPointMake(_39.x+total,_39.y)); +} +} +if(_intercellSpacing.height!=_36.height){ +var i=0; +for(;i<_tableColumns.length;++i,total+=_38){ +objj_msgSend(_tableColumnViews[i],"setFrameSize:",CGSizeMake(objj_msgSend(_tableColumnViews[i],"width"),_numberOfRows*(_rowHeight+_intercellSpacing.height))); +var j=1,y=_rowHeight+_intercellSpacing.height; +for(;j<_numberOfRows;++i,y+=_rowHeight+_intercellSpacing.height){ +if(!_tableCells[i][j]){ +continue; +} +objj_msgSend(_tableCells[i][j],"setFrameOrigin:",CPPointMake(0,y)); +} +} +} +_intercellSpacing=CPSizeCreateCopy(_36); +} +}),new objj_method(sel_getUid("intercellSpacing"),function(_3c,_3d){ +with(_3c){ +return _intercellSpacing; +} +}),new objj_method(sel_getUid("setRowHeight:"),function(_3e,_3f,_40){ +with(_3e){ +if(_rowHeight==_40){ +return; +} +_rowHeight=_40; +if(_hasVariableHeightRows){ +return; +} +for(var row=0;row<_numberOfRows;++row){ +for(var _42=0;_42<_tableColumns.length;++_42){ +objj_msgSend(_tableCells[_42][row],"setFrameOrigin:",CPPointMake(0,row*(_rowHeight+_intercellSpacing.height))); +} +} +} +}),new objj_method(sel_getUid("rowHeight"),function(_43,_44){ +with(_43){ +return _rowHeight; +} +}),new objj_method(sel_getUid("addTableColumn:"),function(_45,_46,_47){ +with(_45){ +var i=0,x=_tableColumns.length?CPRectGetMaxX(objj_msgSend(_45,"rectOfColumn:",_tableColumns.length-1))+_intercellSpacing.width:0,_4a=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(x,0,objj_msgSend(_47,"width"),objj_msgSend(_45,"_columnHeight"))),_4b=[]; +objj_msgSend(_tableColumns,"addObject:",_47); +objj_msgSend(_tableColumnViews,"addObject:",_4a); +objj_msgSend(_45,"addSubview:",_4a); +objj_msgSend(_tableCells,"addObject:",_4b); +for(;i<_numberOfRows;++i){ +_tableCells[_tableColumns.length-1][i]=nil; +} +} +}),new objj_method(sel_getUid("removeTableColumn:"),function(_4c,_4d,_4e){ +with(_4c){ +var _4f=objj_msgSend(_4c,"frame"),_50=objj_msgSend(_4e,"width")+_intercellSpacing.width,_51=objj_msgSend(_tableColumns,"indexOfObjectIdenticalTo:",_4e); +objj_msgSend(_tableColumnViews[i],"removeFromSuperview"); +objj_msgSend(_tableCells,"removeObjectAtIndex:",_51); +objj_msgSend(_tableColumns,"removeObjectAtIndex:",_51); +objj_msgSend(_tableColumnViews,"removeObjectAtIndex:",_51); +for(;_51<_tableColumns.length;++_51){ +objj_msgSend(_tableColumnViews[_51],"setFrameOrigin:",CPPointMake(CPRectGetMinX(objj_msgSend(_tableColumnViews[_51],"frame"))-_50,0)); +} +objj_msgSend(_4c,"setFrameSize:",CPSizeMake(CPRectGetWidth(_4f)-_50,CPRectGetHeight(_4f))); +} +}),new objj_method(sel_getUid("moveColumn:toColumn:"),function(_52,_53,_54,_55){ +with(_52){ +if(_54==_55){ +return; +} +} +}),new objj_method(sel_getUid("tableColumns"),function(_56,_57){ +with(_56){ +return _tableColumns; +} +}),new objj_method(sel_getUid("tableColumnWithIdentifier:"),function(_58,_59,_5a){ +with(_58){ +for(var i=0;i<_tableColumns.length;i++){ +if(objj_msgSend(_tableColumns[i],"isEqual:",_5a)){ +return _tableColumns[i]; +} +} +return nil; +} +}),new objj_method(sel_getUid("numberOfColumns"),function(_5c,_5d){ +with(_5c){ +return _tableColumns.length; +} +}),new objj_method(sel_getUid("numberOfRows"),function(_5e,_5f){ +with(_5e){ +return _numberOfRows; +} +}),new objj_method(sel_getUid("tile"),function(_60,_61){ +with(_60){ +var _62=10; +} +}),new objj_method(sel_getUid("setDataSource:"),function(_63,_64,_65){ +with(_63){ +if(!objj_msgSend(_65,"respondsToSelector:",sel_getUid("numberOfRowsInTableView:"))){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Data source doesn't support 'numberOfRowsInTableView:'"); +} +if(!objj_msgSend(_65,"respondsToSelector:",sel_getUid("tableView:objectValueForTableColumn:row:"))){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Data source doesn't support 'tableView:objectValueForTableColumn:row:'"); +} +_dataSource=_65; +objj_msgSend(_63,"reloadData"); +} +}),new objj_method(sel_getUid("dataSource"),function(_66,_67){ +with(_66){ +return _dataSource; +} +}),new objj_method(sel_getUid("delegate"),function(_68,_69){ +with(_68){ +return _delegate; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_6a,_6b,_6c){ +with(_6a){ +if(_delegate===_6c){ +return; +} +var _6d=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewColumnDidMove:"))){ +objj_msgSend(_6d,"removeObserver:name:object:",_delegate,CPTableViewColumnDidMoveNotification,_6a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewColumnDidResize:"))){ +objj_msgSend(_6d,"removeObserver:name:object:",_delegate,CPTableViewColumnDidResizeNotification,_6a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewSelectionDidChange:"))){ +objj_msgSend(_6d,"removeObserver:name:object:",_delegate,CPTableViewSelectionDidChangeNotification,_6a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewSelectionIsChanging:"))){ +objj_msgSend(_6d,"removeObserver:name:object:",_delegate,CPTableViewSelectionIsChangingNotification,_6a); +} +_delegate=_6c; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewColumnDidMove:"))){ +objj_msgSend(_6d,"addObserver:selector:name:object:",_delegate,sel_getUid("tableViewColumnDidMove:"),CPTableViewColumnDidMoveNotification,_6a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewColumnDidResize:"))){ +objj_msgSend(_6d,"addObserver:selector:name:object:",_delegate,sel_getUid("tableViewColumnDidResize:"),CPTableViewColumnDidResizeNotification,_6a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewSelectionDidChange:"))){ +objj_msgSend(_6d,"addObserver:selector:name:object:",_delegate,sel_getUid("tableViewSelectionDidChange:"),CPTableViewSelectionDidChangeNotification,_6a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewSelectionIsChanging:"))){ +objj_msgSend(_6d,"addObserver:selector:name:object:",_delegate,sel_getUid("tableViewSelectionIsChanging:"),CPTableViewSelectionIsChangingNotification,_6a); +} +_delegateSelectorsCache=0; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableView:willDisplayCell:forTableColumn:row:"))){ +_delegateSelectorsCache|=_1; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableView:shouldSelectRow:"))){ +_delegateSelectorsCache|=_2; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableView:shouldSelectTableColumn:"))){ +_delegateSelectorsCache|=_3; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("selectionShouldChangeInTableView:"))){ +_delegateSelectorsCache|=_4; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableView:shouldEditTableColumn:row:"))){ +_delegateSelectorsCache|=_5; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableView:selectionIndexesForProposedSelection:"))){ +_delegateSelectorsCache|=_6; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableView:heightOfRow:"))){ +_delegateSelectorsCache|=_7; +_hasVariableHeightRows=YES; +}else{ +_hasVariableHeightRows=NO; +} +} +}),new objj_method(sel_getUid("noteNumberOfRowsChanged"),function(_6e,_6f){ +with(_6e){ +var _70=objj_msgSend(_dataSource,"numberOfRowsInTableView:",_6e); +if(_numberOfRows!=_70){ +_numberOfRows=_70; +objj_msgSend(_6e,"_recalculateColumnHeight"); +} +} +}),new objj_method(sel_getUid("noteHeightOfRowsWithIndexesChanged:"),function(_71,_72,_73){ +with(_71){ +objj_msgSend(_71,"_recalculateColumnHeight"); +} +}),new objj_method(sel_getUid("rectOfRow:"),function(_74,_75,_76){ +with(_74){ +return CPRectMake(0,(_hasVariableHeightRows?_rowMinYs[_76]:(_76*(_rowHeight+_intercellSpacing.height))),CPRectGetWidth(objj_msgSend(_74,"bounds")),(_hasVariableHeightRows?_rowHeights[_76]:_rowHeight)); +} +}),new objj_method(sel_getUid("rectOfColumn:"),function(_77,_78,_79){ +with(_77){ +return objj_msgSend(_tableColumnViews[_79],"frame"); +} +}),new objj_method(sel_getUid("sizeToFit"),function(_7a,_7b){ +with(_7a){ +} +}),new objj_method(sel_getUid("_recalculateColumnHeight"),function(_7c,_7d){ +with(_7c){ +var _7e=_columnHeight; +if(_hasVariableHeightRows){ +_rowMinYs[0]=0; +for(var row=0;row<_numberOfRows;row++){ +_rowHeights[row]=objj_msgSend(_delegate,"tableView:heightOfRow:",_7c,row); +_rowMinYs[row+1]=_rowMinYs[row]+_rowHeights[row]+_intercellSpacing.height; +} +_columnHeight=_rowMinYs[_numberOfRows]; +}else{ +_columnHeight=_numberOfRows*(_rowHeight+_intercellSpacing.height); +} +var _80=_tableColumnViews.length; +while(_80--){ +objj_msgSend(_tableColumnViews[_80],"setFrameSize:",CGSizeMake(objj_msgSend(_tableColumns[_80],"width"),_columnHeight)); +} +objj_msgSend(_7c,"setFrameSize:",CGSizeMake(CGRectGetWidth(objj_msgSend(_7c,"frame")),_columnHeight)); +} +}),new objj_method(sel_getUid("visibleRectInParent"),function(_81,_82){ +with(_81){ +var _83=objj_msgSend(_81,"superview"); +if(!_83){ +return objj_msgSend(_81,"bounds"); +} +return objj_msgSend(_81,"convertRect:fromView:",CGRectIntersection(objj_msgSend(_83,"bounds"),objj_msgSend(_81,"frame")),_83); +} +}),new objj_method(sel_getUid("reloadData"),function(_84,_85){ +with(_84){ +var _86=_numberOfRows; +_numberOfRows=objj_msgSend(_dataSource,"numberOfRowsInTableView:",_84); +if(_86!=_numberOfRows){ +objj_msgSend(_84,"_recalculateColumnHeight"); +objj_msgSend(_84,"setFrameSize:",CGSizeMake(CGRectGetWidth(objj_msgSend(_84,"frame")),objj_msgSend(_84,"_columnHeight"))); +} +_objectValueCache=[]; +objj_msgSend(_84,"clearCells"); +objj_msgSend(_84,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_87,_88){ +with(_87){ +objj_msgSend(_87,"loadTableCellsInRect:",objj_msgSend(_87,"visibleRectInParent")); +} +}),new objj_method(sel_getUid("displaySoon"),function(_89,_8a){ +with(_89){ +objj_msgSend(_scrollTimer,"invalidate"); +_scrollTimer=objj_msgSend(CPTimer,"scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:",0.05,_89,sel_getUid("displayNow"),nil,NO); +} +}),new objj_method(sel_getUid("displayNow"),function(_8b,_8c){ +with(_8b){ +objj_msgSend(_8b,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("viewDidMoveToSuperview"),function(_8d,_8e){ +with(_8d){ +objj_msgSend(objj_msgSend(objj_msgSend(_8d,"enclosingScrollView"),"contentView"),"setPostsBoundsChangedNotifications:",YES); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"addObserver:selector:name:object:",_8d,sel_getUid("viewBoundsChanged:"),CPViewBoundsDidChangeNotification,objj_msgSend(objj_msgSend(_8d,"enclosingScrollView"),"contentView")); +} +}),new objj_method(sel_getUid("viewBoundsChanged:"),function(_8f,_90,_91){ +with(_8f){ +objj_msgSend(_8f,"displayNow"); +} +}),new objj_method(sel_getUid("setAllowsMultipleSelection:"),function(_92,_93,_94){ +with(_92){ +if(_allowsMultipleSelection===_94){ +return; +} +_allowsMultipleSelection=_94; +} +}),new objj_method(sel_getUid("allowsMultipleSelection"),function(_95,_96){ +with(_95){ +return _allowsMultipleSelection; +} +}),new objj_method(sel_getUid("setAllowsEmptySelection:"),function(_97,_98,_99){ +with(_97){ +if(_allowsEmptySelection===_99){ +return; +} +_allowsEmptySelection=_99; +} +}),new objj_method(sel_getUid("allowsEmptySelection"),function(_9a,_9b){ +with(_9a){ +return _allowsEmptySelection; +} +}),new objj_method(sel_getUid("rowAtPoint:"),function(_9c,_9d,_9e){ +with(_9c){ +var _9f=objj_msgSend(_9c,"_rowAtY:",_9e.y); +if(_9f>=0&&_9f<_numberOfRows){ +return _9f; +}else{ +return CPNotFound; +} +} +}),new objj_method(sel_getUid("columnAtPoint:"),function(_a0,_a1,_a2){ +with(_a0){ +var _a3=objj_msgSend(_a0,"_columnAtX:",_a2.x); +if(_a3>=0&&_a3<_tableColumns.length){ +return _a3; +}else{ +return CPNotFound; +} +} +}),new objj_method(sel_getUid("_rowAtY:"),function(_a4,_a5,y){ +with(_a4){ +if(_hasVariableHeightRows){ +var a=0,b=_numberOfRows; +if(y<_rowMinYs[0]){ +return -1; +} +if(y>=_rowMinYs[_rowMinYs.length-1]){ +return _numberOfRows; +} +while(true){ +var _a9=a+Math.floor((b-a)/2); +if(y<_rowMinYs[_a9]){ +b=_a9; +}else{ +if(_a9<_numberOfRows-1&&y>=_rowMinYs[_a9+1]){ +a=_a9; +}else{ +return _a9; +} +} +} +}else{ +return FLOOR(y/(_rowHeight+_intercellSpacing.height)); +} +} +}),new objj_method(sel_getUid("_columnAtX:"),function(_aa,_ab,x){ +with(_aa){ +var a=0,b=_tableColumns.length; +var _af=objj_msgSend(_tableColumnViews[_tableColumns.length-1],"frame"); +if(x=_af.origin.x+_af.size.width){ +return _tableColumns.length; +} +while(true){ +var _b0=a+Math.floor((b-a)/2); +if(x=objj_msgSend(_tableColumnViews[_b0+1],"frame").origin.x){ +a=_b0; +}else{ +return _b0; +} +} +} +} +}),new objj_method(sel_getUid("selectRowIndexes:byExtendingSelection:"),function(_b1,_b2,_b3,_b4){ +with(_b1){ +if(_b4){ +_selectedRowIndexes=objj_msgSend(objj_msgSend(_selectedRowIndexes,"copy"),"addIndexes:",_b3); +}else{ +if(objj_msgSend(_b3,"count")>0||_allowsEmptySelection){ +_selectedRowIndexes=objj_msgSend(_b3,"copy"); +} +} +objj_msgSend(_b1,"_drawSelection"); +} +}),new objj_method(sel_getUid("selectedRowIndexes"),function(_b5,_b6){ +with(_b5){ +return _selectedRowIndexes; +} +}),new objj_method(sel_getUid("numberOfSelectedRows"),function(_b7,_b8){ +with(_b7){ +return objj_msgSend(_selectedRowIndexes,"count"); +} +}),new objj_method(sel_getUid("deselectAll:"),function(_b9,_ba,_bb){ +with(_b9){ +if(!_allowsEmptySelection||objj_msgSend(_selectedRowIndexes,"count")===0||((_delegateSelectorsCache&_4)&&!objj_msgSend(_delegate,"selectionShouldChangeInTableView:",_b9))){ +return; +} +objj_msgSend(_b9,"selectRowIndexes:byExtendingSelection:",objj_msgSend(CPIndexSet,"indexSet"),NO); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPTableViewSelectionDidChangeNotification,_b9,nil); +} +}),new objj_method(sel_getUid("editColumn:row:withEvent:select:"),function(_bc,_bd,_be,_bf,_c0,_c1){ +with(_bc){ +} +}),new objj_method(sel_getUid("_updateSelectionWithMouseAtRow:"),function(_c2,_c3,_c4){ +with(_c2){ +var _c5; +if(_allowsMultipleSelection){ +_c5=objj_msgSend(CPIndexSet,"indexSetWithIndexesInRange:",CPMakeRange(MIN(_c4,_selectionStartRow),ABS(_c4-_selectionStartRow)+1)); +}else{ +if(_c4>=0&&_c4<_numberOfRows){ +_c5=objj_msgSend(CPIndexSet,"indexSetWithIndex:",_c4); +}else{ +_c5=objj_msgSend(CPIndexSet,"indexSet"); +} +} +if(_allowsMultipleSelection&&_selectionModifier&(CPCommandKeyMask|CPControlKeyMask|CPAlternateKeyMask)){ +var _c6=objj_msgSend(_c5,"copy"),_c7=objj_msgSend(_c5,"copy"); +objj_msgSend(_c7,"removeIndexes:",_previousSelectedRowIndexes); +objj_msgSend(_c6,"removeIndexes:",_c7); +objj_msgSend(_c5,"addIndexes:",_previousSelectedRowIndexes); +objj_msgSend(_c5,"removeIndexes:",_c6); +} +if(!objj_msgSend(_c5,"isEqualToIndexSet:",_selectedRowIndexes)){ +if((_delegateSelectorsCache&_4)&&!objj_msgSend(_delegate,"selectionShouldChangeInTableView:",_c2)){ +return; +} +if(_delegateSelectorsCache&_6){ +_c5=objj_msgSend(_delegate,"tableView:selectionIndexesForProposedSelection:",_c2,_c5); +}else{ +if(_delegateSelectorsCache&_2){ +var _c8=[]; +objj_msgSend(_c5,"getIndexes:maxCount:inIndexRange:",_c8,Number.MAX_VALUE,nil); +for(var i=0;i<_c8.length;i++){ +if(!objj_msgSend(_delegate,"tableView:shouldSelectRow:",_c2,_c8[i])){ +objj_msgSend(_c5,"removeIndex:",_c8[i]); +} +} +} +} +} +if(!_allowsEmptySelection&&objj_msgSend(_c5,"count")===0){ +return; +} +if(!objj_msgSend(_c5,"isEqualToIndexSet:",_selectedRowIndexes)){ +objj_msgSend(_c2,"selectRowIndexes:byExtendingSelection:",_c5,NO); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPTableViewSelectionIsChangingNotification,_c2,nil); +} +} +}),new objj_method(sel_getUid("mouseDown:"),function(_ca,_cb,_cc){ +with(_ca){ +objj_msgSend(_ca,"trackSelection:",_cc); +} +}),new objj_method(sel_getUid("setDoubleAction:"),function(_cd,_ce,_cf){ +with(_cd){ +_doubleAction=_cf; +} +}),new objj_method(sel_getUid("doubleAction"),function(_d0,_d1){ +with(_d0){ +return _doubleAction; +} +}),new objj_method(sel_getUid("clickedColumn"),function(_d2,_d3){ +with(_d2){ +return _clickedColumn; +} +}),new objj_method(sel_getUid("clickedRow"),function(_d4,_d5){ +with(_d4){ +return _clickedRow; +} +}),new objj_method(sel_getUid("trackSelection:"),function(_d6,_d7,_d8){ +with(_d6){ +var _d9=objj_msgSend(_d8,"type"),_da=objj_msgSend(_d6,"convertPoint:fromView:",objj_msgSend(_d8,"locationInWindow"),nil),_db=MAX(0,MIN(_numberOfRows-1,objj_msgSend(_d6,"_rowAtY:",_da.y))); +if(_d9==CPLeftMouseUp){ +_clickedRow=objj_msgSend(_d6,"rowAtPoint:",_da); +_clickedColumn=objj_msgSend(_d6,"columnAtPoint:",_da); +if(objj_msgSend(_d8,"clickCount")===2){ +CPLog.warn("edit?!"); +objj_msgSend(_d6,"sendAction:to:",_doubleAction,_target); +}else{ +if(!objj_msgSend(_previousSelectedRowIndexes,"isEqualToIndexSet:",_selectedRowIndexes)){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPTableViewSelectionDidChangeNotification,_d6,nil); +} +objj_msgSend(_d6,"sendAction:to:",_action,_target); +} +return; +} +if(_d9==CPLeftMouseDown){ +_previousSelectedRowIndexes=_selectedRowIndexes; +_selectionModifier=objj_msgSend(_d8,"modifierFlags"); +if(_selectionModifier&CPShiftKeyMask){ +_selectionStartRow=(ABS(objj_msgSend(_previousSelectedRowIndexes,"firstIndex")-_db)0){ +_e6=_selectionViews[_df.pop()]; +}else{ +if(_selectionViewsPool.length>0){ +_e6=_selectionViewsPool.pop(); +objj_msgSend(_dc,"addSubview:positioned:relativeTo:",_e6,CPWindowBelow,nil); +}else{ +_e6=objj_msgSend(objj_msgSend(CPView,"alloc"),"init"); +objj_msgSend(_e6,"setBackgroundColor:",objj_msgSend(CPColor,"alternateSelectedControlColor")); +objj_msgSend(_dc,"addSubview:positioned:relativeTo:",_e6,CPWindowBelow,nil); +} +} +_selectionViews[_e5]=_e6; +var _e7=objj_msgSend(_dc,"rectOfRow:",_e5); +_e7.size.height+=_intercellSpacing.height-1; +objj_msgSend(_e6,"setFrame:",_e7); +} +for(var i=0;i<_df.length;i++){ +var row=_df[i],_e6=_selectionViews[row]; +objj_msgSend(_e6,"removeFromSuperview"); +_selectionViewsPool.push(_e6); +} +_currentlySelected=objj_msgSend(_selectedRowIndexes,"copy"); +} +})]); +class_addMethods(_9,[new objj_method(sel_getUid("initialize"),function(_e8,_e9){ +with(_e8){ +} +})]); +var _ea="CPTableViewDataSourceKey",_eb="CPTableViewDelegateKey",_ec="CPTableViewHeaderViewKey",_ed="CPTableViewTableColumnsKey",_ee="CPTableViewRowHeightKey",_ef="CPTableViewIntercellSpacingKey",_f0="CPTableViewMultipleSelectionKey",_f1="CPTableViewEmptySelectionKey"; +var _8=objj_getClass("CPTableView"); +if(!_8){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTableView\"")); +} +var _9=_8.isa; +class_addMethods(_8,[new objj_method(sel_getUid("initWithCoder:"),function(_f2,_f3,_f4){ +with(_f2){ +if(_f2=objj_msgSendSuper({receiver:_f2,super_class:objj_getClass("CPControl")},"initWithCoder:",_f4)){ +objj_msgSend(_f2,"_init"); +_dataSource=objj_msgSend(_f4,"decodeObjectForKey:",_ea); +_delegate=objj_msgSend(_f4,"decodeObjectForKey:",_eb); +_rowHeight=objj_msgSend(_f4,"decodeFloatForKey:",_ee); +_intercellSpacing=objj_msgSend(_f4,"decodeSizeForKey:",_ef); +_allowsMultipleSelection=objj_msgSend(_f4,"decodeBoolForKey:",_f0); +_allowsEmptySelection=objj_msgSend(_f4,"decodeBoolForKey:",_f1); +var _f5=objj_msgSend(_f4,"decodeObjectForKey:",_ed); +for(var i=0;i<_f5.length;i++){ +objj_msgSend(_f2,"addTableColumn:",_f5[i]); +} +} +return _f2; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_f7,_f8,_f9){ +with(_f7){ +objj_msgSendSuper({receiver:_f7,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_f9); +objj_msgSend(_f9,"encodeObject:forKey:",_dataSource,_ea); +objj_msgSend(_f9,"encodeObject:forKey:",_delegate,_eb); +objj_msgSend(_f9,"encodeObject:forKey:",_tableColumns,_ed); +objj_msgSend(_f9,"encodeFloat:forKey:",_rowHeight,_ee); +objj_msgSend(_f9,"encodeSize:forKey:",_intercellSpacing,_ef); +objj_msgSend(_f9,"encodeBool:forKey:",_allowsMultipleSelection,_f0); +objj_msgSend(_f9,"encodeBool:forKey:",_allowsEmptySelection,_f1); +} +})]); +var _8=objj_getClass("CPColor"); +if(!_8){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPColor\"")); +} +var _9=_8.isa; +class_addMethods(_9,[new objj_method(sel_getUid("alternateSelectedControlColor"),function(_fa,_fb){ +with(_fa){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[0.22,0.46,0.84,1]); +} +}),new objj_method(sel_getUid("secondarySelectedControlColor"),function(_fc,_fd){ +with(_fc){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[0.83,0.83,0.83,1]); +} +})]); +p;11;CPTabView.ji;13;CPImageView.ji;15;CPTabViewItem.ji;8;CPView.jc;18589; +CPTopTabsBezelBorder=0; +CPNoTabsBezelBorder=4; +CPNoTabsLineBorder=5; +CPNoTabsNoBorder=6; +var _1=nil,_2=nil,_3=nil,_4=nil,_5=nil; +var _6=7,_7=7; +var _8=1,_9=2,_a=4,_b=8; +var _c=objj_allocateClassPair(CPView,"CPTabView"),_d=_c.isa; +class_addIvars(_c,[new objj_ivar("_labelsView"),new objj_ivar("_backgroundView"),new objj_ivar("_separatorView"),new objj_ivar("_auxiliaryView"),new objj_ivar("_contentView"),new objj_ivar("_tabViewItems"),new objj_ivar("_selectedTabViewItem"),new objj_ivar("_tabViewType"),new objj_ivar("_delegate"),new objj_ivar("_delegateSelectors")]); +objj_registerClassPair(_c); +objj_addClassForBundle(_c,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_c,[new objj_method(sel_getUid("initWithFrame:"),function(_e,_f,_10){ +with(_e){ +_e=objj_msgSendSuper({receiver:_e,super_class:objj_getClass("CPView")},"initWithFrame:",_10); +if(_e){ +_tabViewType=CPTopTabsBezelBorder; +_tabViewItems=[]; +} +return _e; +} +}),new objj_method(sel_getUid("viewDidMoveToWindow"),function(_11,_12){ +with(_11){ +if(_tabViewType!=CPTopTabsBezelBorder||_labelsView){ +return; +} +objj_msgSend(_11,"_createBezelBorder"); +objj_msgSend(_11,"layoutSubviews"); +} +}),new objj_method(sel_getUid("_createBezelBorder"),function(_13,_14){ +with(_13){ +var _15=objj_msgSend(_13,"bounds"); +_labelsView=objj_msgSend(objj_msgSend(_CPTabLabelsView,"alloc"),"initWithFrame:",CGRectMake(0,0,CGRectGetWidth(_15),0)); +objj_msgSend(_labelsView,"setTabView:",_13); +objj_msgSend(_labelsView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_13,"addSubview:",_labelsView); +_backgroundView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_backgroundView,"setBackgroundColor:",_5); +objj_msgSend(_backgroundView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +objj_msgSend(_13,"addSubview:",_backgroundView); +_separatorView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_separatorView,"setBackgroundColor:",objj_msgSend(objj_msgSend(_13,"class"),"bezelBorderColor")); +objj_msgSend(_separatorView,"setAutoresizingMask:",CPViewWidthSizable|CPViewMaxYMargin); +objj_msgSend(_13,"addSubview:",_separatorView); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_16,_17){ +with(_16){ +if(_tabViewType==CPTopTabsBezelBorder){ +var _18=objj_msgSend(_16,"bounds"),_19=objj_msgSend(_CPTabLabelsView,"height"); +_18.origin.y+=_19; +_18.size.height-=_19; +objj_msgSend(_backgroundView,"setFrame:",_18); +var _1a=5; +if(_auxiliaryView){ +_1a=CGRectGetHeight(objj_msgSend(_auxiliaryView,"frame")); +objj_msgSend(_auxiliaryView,"setFrame:",CGRectMake(_6,_19,CGRectGetWidth(_18)-_6-_7,_1a)); +} +objj_msgSend(_separatorView,"setFrame:",CGRectMake(_6,_19+_1a,CGRectGetWidth(_18)-_6-_7,1)); +} +objj_msgSend(_contentView,"setFrame:",objj_msgSend(_16,"contentRect")); +} +}),new objj_method(sel_getUid("addTabViewItem:"),function(_1b,_1c,_1d){ +with(_1b){ +objj_msgSend(_1b,"insertTabViewItem:atIndex:",_1d,objj_msgSend(_tabViewItems,"count")); +} +}),new objj_method(sel_getUid("insertTabViewItem:atIndex:"),function(_1e,_1f,_20,_21){ +with(_1e){ +if(!_labelsView&&_tabViewType==CPTopTabsBezelBorder){ +objj_msgSend(_1e,"_createBezelBorder"); +} +objj_msgSend(_tabViewItems,"insertObject:atIndex:",_20,_21); +objj_msgSend(_labelsView,"tabView:didAddTabViewItem:",_1e,_20); +if(objj_msgSend(_tabViewItems,"count")==1){ +objj_msgSend(_1e,"selectFirstTabViewItem:",_1e); +} +if(_delegateSelectors&_b){ +objj_msgSend(_delegate,"tabViewDidChangeNumberOfTabViewItems:",_1e); +} +} +}),new objj_method(sel_getUid("removeTabViewItem:"),function(_22,_23,_24){ +with(_22){ +objj_msgSend(_tabViewItems,"removeObjectIdenticalTo:",_24); +objj_msgSend(_labelsView,"tabView:didRemoveTabViewItem:",_22,_24); +if(_delegateSelectors&_b){ +objj_msgSend(_delegate,"tabViewDidChangeNumberOfTabViewItems:",_22); +} +} +}),new objj_method(sel_getUid("indexOfTabViewItem:"),function(_25,_26,_27){ +with(_25){ +return objj_msgSend(_tabViewItems,"indexOfObjectIdenticalTo:",_27); +} +}),new objj_method(sel_getUid("indexOfTabViewItemWithIdentifier:"),function(_28,_29,_2a){ +with(_28){ +var _2b=0,_2c=objj_msgSend(_tabViewItems,"count"); +for(;_2b<_2c;++_2b){ +if(objj_msgSend(objj_msgSend(_tabViewItems[_2b],"identifier"),"isEqual:",_2a)){ +return _2b; +} +} +return _2b; +} +}),new objj_method(sel_getUid("numberOfTabViewItems"),function(_2d,_2e){ +with(_2d){ +return objj_msgSend(_tabViewItems,"count"); +} +}),new objj_method(sel_getUid("tabViewItemAtIndex:"),function(_2f,_30,_31){ +with(_2f){ +return _tabViewItems[_31]; +} +}),new objj_method(sel_getUid("tabViewItems"),function(_32,_33){ +with(_32){ +return _tabViewItems; +} +}),new objj_method(sel_getUid("selectFirstTabViewItem:"),function(_34,_35,_36){ +with(_34){ +var _37=objj_msgSend(_tabViewItems,"count"); +if(_37){ +objj_msgSend(_34,"selectTabViewItemAtIndex:",0); +} +} +}),new objj_method(sel_getUid("selectLastTabViewItem:"),function(_38,_39,_3a){ +with(_38){ +var _3b=objj_msgSend(_tabViewItems,"count"); +if(_3b){ +objj_msgSend(_38,"selectTabViewItemAtIndex:",_3b-1); +} +} +}),new objj_method(sel_getUid("selectNextTabViewItem:"),function(_3c,_3d,_3e){ +with(_3c){ +if(!_selectedTabViewItem){ +return; +} +var _3f=objj_msgSend(_3c,"indexOfTabViewItem:",_selectedTabViewItem),_40=objj_msgSend(_tabViewItems,"count"); +objj_msgSend(_3c,"selectTabViewItemAtIndex:",_3f+1%_40); +} +}),new objj_method(sel_getUid("selectPreviousTabViewItem:"),function(_41,_42,_43){ +with(_41){ +if(!_selectedTabViewItem){ +return; +} +var _44=objj_msgSend(_41,"indexOfTabViewItem:",_selectedTabViewItem),_45=objj_msgSend(_tabViewItems,"count"); +objj_msgSend(_41,"selectTabViewItemAtIndex:",_44==0?_45:_44-1); +} +}),new objj_method(sel_getUid("selectTabViewItem:"),function(_46,_47,_48){ +with(_46){ +if((_delegateSelectors&_9)&&!objj_msgSend(_delegate,"tabView:shouldSelectTabViewItem:",_46,_48)){ +return; +} +if(_delegateSelectors&_a){ +objj_msgSend(_delegate,"tabView:willSelectTabViewItem:",_46,_48); +} +if(_selectedTabViewItem){ +_selectedTabViewItem._tabState=CPBackgroundTab; +objj_msgSend(_labelsView,"tabView:didChangeStateOfTabViewItem:",_46,_selectedTabViewItem); +objj_msgSend(_contentView,"removeFromSuperview"); +objj_msgSend(_auxiliaryView,"removeFromSuperview"); +} +_selectedTabViewItem=_48; +_selectedTabViewItem._tabState=CPSelectedTab; +_contentView=objj_msgSend(_selectedTabViewItem,"view"); +objj_msgSend(_contentView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +_auxiliaryView=objj_msgSend(_selectedTabViewItem,"auxiliaryView"); +objj_msgSend(_auxiliaryView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_46,"addSubview:",_contentView); +if(_auxiliaryView){ +objj_msgSend(_46,"addSubview:",_auxiliaryView); +} +objj_msgSend(_labelsView,"tabView:didChangeStateOfTabViewItem:",_46,_selectedTabViewItem); +objj_msgSend(_46,"layoutSubviews"); +if(_delegateSelectors&_8){ +objj_msgSend(_delegate,"tabView:didSelectTabViewItem:",_46,_48); +} +} +}),new objj_method(sel_getUid("selectTabViewItemAtIndex:"),function(_49,_4a,_4b){ +with(_49){ +objj_msgSend(_49,"selectTabViewItem:",_tabViewItems[_4b]); +} +}),new objj_method(sel_getUid("selectedTabViewItem"),function(_4c,_4d){ +with(_4c){ +return _selectedTabViewItem; +} +}),new objj_method(sel_getUid("setTabViewType:"),function(_4e,_4f,_50){ +with(_4e){ +if(_tabViewType==_50){ +return; +} +_tabViewType=_50; +if(_tabViewType==CPNoTabsBezelBorder||_tabViewType==CPNoTabsLineBorder||_tabViewType==CPNoTabsNoBorder){ +objj_msgSend(_labelsView,"removeFromSuperview"); +}else{ +if(!objj_msgSend(_labelsView,"superview")){ +objj_msgSend(_4e,"addSubview:",_labelsView); +} +} +if(_tabViewType==CPNoTabsLineBorder||_tabViewType==CPNoTabsNoBorder){ +objj_msgSend(_backgroundView,"removeFromSuperview"); +}else{ +if(!objj_msgSend(_backgroundView,"superview")){ +objj_msgSend(_4e,"addSubview:",_backgroundView); +} +} +objj_msgSend(_4e,"layoutSubviews"); +} +}),new objj_method(sel_getUid("tabViewType"),function(_51,_52){ +with(_51){ +return _tabViewType; +} +}),new objj_method(sel_getUid("contentRect"),function(_53,_54){ +with(_53){ +var _55=CGRectMakeCopy(objj_msgSend(_53,"bounds")); +if(_tabViewType==CPTopTabsBezelBorder){ +var _56=objj_msgSend(_CPTabLabelsView,"height"),_57=_auxiliaryView?CGRectGetHeight(objj_msgSend(_auxiliaryView,"frame")):5,_58=1; +_55.origin.y+=_56+_57+_58; +_55.size.height-=_56+_57+_58*2; +_55.origin.x+=_6; +_55.size.width-=_6+_7; +} +return _55; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_59,_5a,_5b){ +with(_59){ +if(_delegate==_5b){ +return; +} +_delegate=_5b; +_delegateSelectors=0; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tabView:shouldSelectTabViewItem:"))){ +_delegateSelectors|=_9; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tabView:willSelectTabViewItem:"))){ +_delegateSelectors|=_a; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tabView:didSelectTabViewItem:"))){ +_delegateSelectors|=_8; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tabViewDidChangeNumberOfTabViewItems:"))){ +_delegateSelectors|=_b; +} +} +}),new objj_method(sel_getUid("mouseDown:"),function(_5c,_5d,_5e){ +with(_5c){ +var _5f=objj_msgSend(_labelsView,"convertPoint:fromView:",objj_msgSend(_5e,"locationInWindow"),nil),_60=objj_msgSend(_labelsView,"representedTabViewItemAtPoint:",_5f); +if(_60){ +objj_msgSend(_5c,"selectTabViewItem:",_60); +} +} +})]); +class_addMethods(_d,[new objj_method(sel_getUid("initialize"),function(_61,_62){ +with(_61){ +if(_61!=CPTabView){ +return; +} +var _63=objj_msgSend(CPBundle,"bundleForClass:",_61),_64=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initByReferencingFile:size:","",CGSizeMake(7,0)),_65=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_63,"pathForResource:","CPTabView/CPTabViewBezelBackgroundCenter.png"),CGSizeMake(1,1)),_66=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_63,"pathForResource:","CPTabView/CPTabViewBezelBorderLeft.png"),CGSizeMake(7,1)),_67=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_63,"pathForResource:","CPTabView/CPTabViewBezelBorder.png"),CGSizeMake(1,1)),_68=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_63,"pathForResource:","CPTabView/CPTabViewBezelBorderRight.png"),CGSizeMake(7,1)); +_5=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[_64,_64,_64,_66,_65,_68,_66,_67,_68])); +_4=objj_msgSend(CPColor,"colorWithPatternImage:",_67); +} +}),new objj_method(sel_getUid("bezelBorderColor"),function(_69,_6a){ +with(_69){ +return _4; +} +})]); +var _6b="CPTabViewItemsKey",_6c="CPTabViewSelectedItemKey",_6d="CPTabViewTypeKey",_6e="CPTabViewDelegateKey"; +var _c=objj_getClass("CPTabView"); +if(!_c){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTabView\"")); +} +var _d=_c.isa; +class_addMethods(_c,[new objj_method(sel_getUid("initWithCoder:"),function(_6f,_70,_71){ +with(_6f){ +if(_6f=objj_msgSendSuper({receiver:_6f,super_class:objj_getClass("CPView")},"initWithCoder:",_71)){ +_tabViewType=objj_msgSend(_71,"decodeIntForKey:",_6d); +_tabViewItems=[]; +objj_msgSend(_6f,"_createBezelBorder"); +var _72=objj_msgSend(_71,"decodeObjectForKey:",_6b); +for(var i=0;_72&&i<_72.length;i++){ +objj_msgSend(_6f,"insertTabViewItem:atIndex:",_72[i],i); +} +var _74=objj_msgSend(_71,"decodeObjectForKey:",_6c); +if(_74){ +objj_msgSend(_6f,"selectTabViewItem:",_74); +} +objj_msgSend(_6f,"setDelegate:",objj_msgSend(_71,"decodeObjectForKey:",_6e)); +} +return _6f; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_75,_76,_77){ +with(_75){ +var _78=_subviews; +_subviews=[]; +objj_msgSendSuper({receiver:_75,super_class:objj_getClass("CPView")},"encodeWithCoder:",_77); +_subviews=_78; +objj_msgSend(_77,"encodeObject:forKey:",_tabViewItems,_6b); +objj_msgSend(_77,"encodeObject:forKey:",_selectedTabViewItem,_6c); +objj_msgSend(_77,"encodeInt:forKey:",_tabViewType,_6d); +objj_msgSend(_77,"encodeConditionalObject:forKey:",_delegate,_6e); +} +})]); +var _79=nil,_7a=10,_7b=15; +var _c=objj_allocateClassPair(CPView,"_CPTabLabelsView"),_d=_c.isa; +class_addIvars(_c,[new objj_ivar("_tabView"),new objj_ivar("_tabLabels")]); +objj_registerClassPair(_c); +objj_addClassForBundle(_c,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_c,[new objj_method(sel_getUid("initWithFrame:"),function(_7c,_7d,_7e){ +with(_7c){ +_7c=objj_msgSendSuper({receiver:_7c,super_class:objj_getClass("CPView")},"initWithFrame:",_7e); +if(_7c){ +_tabLabels=[]; +objj_msgSend(_7c,"setBackgroundColor:",_79); +objj_msgSend(_7c,"setFrameSize:",CGSizeMake(CGRectGetWidth(_7e),26)); +} +return _7c; +} +}),new objj_method(sel_getUid("setTabView:"),function(_7f,_80,_81){ +with(_7f){ +_tabView=_81; +} +}),new objj_method(sel_getUid("tabView"),function(_82,_83){ +with(_82){ +return _tabView; +} +}),new objj_method(sel_getUid("tabView:didAddTabViewItem:"),function(_84,_85,_86,_87){ +with(_84){ +var _88=objj_msgSend(objj_msgSend(_CPTabLabel,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_88,"setTabViewItem:",_87); +_tabLabels.push(_88); +objj_msgSend(_84,"addSubview:",_88); +objj_msgSend(_84,"layoutSubviews"); +} +}),new objj_method(sel_getUid("tabView:didRemoveTabViewItem:"),function(_89,_8a,_8b,_8c){ +with(_89){ +var _8d=objj_msgSend(_8b,"indexOfTabViewItem:",_8c),_8e=_tabLabels[_8d]; +objj_msgSend(_tabLabels,"removeObjectAtIndex:",_8d); +objj_msgSend(_8e,"removeFromSuperview"); +objj_msgSend(_89,"layoutSubviews"); +} +}),new objj_method(sel_getUid("tabView:didChangeStateOfTabViewItem:"),function(_8f,_90,_91,_92){ +with(_8f){ +objj_msgSend(_tabLabels[objj_msgSend(_91,"indexOfTabViewItem:",_92)],"setTabState:",objj_msgSend(_92,"tabState")); +} +}),new objj_method(sel_getUid("representedTabViewItemAtPoint:"),function(_93,_94,_95){ +with(_93){ +var _96=0,_97=_tabLabels.length; +for(;_96<_97;++_96){ +var _98=_tabLabels[_96]; +if(CGRectContainsPoint(objj_msgSend(_98,"frame"),_95)){ +return objj_msgSend(_98,"tabViewItem"); +} +} +return nil; +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_99,_9a){ +with(_99){ +var _9b=0,_9c=_tabLabels.length,_9d=((objj_msgSend(_99,"bounds").size.width)-(_9c-1)*_7a-2*_7b)/_9c,x=_7b; +for(;_9b<_9c;++_9b){ +var _9f=_tabLabels[_9b],_a0={origin:{x:x,y:8},size:{width:_9d,height:18}}; +objj_msgSend(_9f,"setFrame:",_a0); +x=(_a0.origin.x+_a0.size.width)+_7a; +} +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_a1,_a2,_a3){ +with(_a1){ +if(CGSizeEqualToSize(objj_msgSend(_a1,"frame").size,_a3)){ +return; +} +objj_msgSendSuper({receiver:_a1,super_class:objj_getClass("CPView")},"setFrameSize:",_a3); +objj_msgSend(_a1,"layoutSubviews"); +} +})]); +class_addMethods(_d,[new objj_method(sel_getUid("initialize"),function(_a4,_a5){ +with(_a4){ +if(_a4!=objj_msgSend(_CPTabLabelsView,"class")){ +return; +} +var _a6=objj_msgSend(CPBundle,"bundleForClass:",_a4); +_79=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPThreePartImage,"alloc"),"initWithImageSlices:isVertical:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_a6,"pathForResource:","CPTabView/_CPTabLabelsViewLeft.png"),CGSizeMake(12,26)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_a6,"pathForResource:","CPTabView/_CPTabLabelsViewCenter.png"),CGSizeMake(1,26)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_a6,"pathForResource:","CPTabView/_CPTabLabelsViewRight.png"),CGSizeMake(12,26))],NO)); +} +}),new objj_method(sel_getUid("height"),function(_a7,_a8){ +with(_a7){ +return 26; +} +})]); +var _a9=nil,_aa=nil; +var _c=objj_allocateClassPair(CPView,"_CPTabLabel"),_d=_c.isa; +class_addIvars(_c,[new objj_ivar("_tabViewItem"),new objj_ivar("_labelField")]); +objj_registerClassPair(_c); +objj_addClassForBundle(_c,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_c,[new objj_method(sel_getUid("initWithFrame:"),function(_ab,_ac,_ad){ +with(_ab){ +_ab=objj_msgSendSuper({receiver:_ab,super_class:objj_getClass("CPView")},"initWithFrame:",_ad); +if(_ab){ +_labelField=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_labelField,"setAlignment:",CPCenterTextAlignment); +objj_msgSend(_labelField,"setFrame:",CGRectMake(5,0,CGRectGetWidth(_ad)-10,20)); +objj_msgSend(_labelField,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_labelField,"setFont:",objj_msgSend(CPFont,"boldSystemFontOfSize:",11)); +objj_msgSend(_ab,"addSubview:",_labelField); +objj_msgSend(_ab,"setTabState:",CPBackgroundTab); +} +return _ab; +} +}),new objj_method(sel_getUid("setTabState:"),function(_ae,_af,_b0){ +with(_ae){ +objj_msgSend(_ae,"setBackgroundColor:",_b0==CPSelectedTab?_aa:_a9); +} +}),new objj_method(sel_getUid("setTabViewItem:"),function(_b1,_b2,_b3){ +with(_b1){ +_tabViewItem=_b3; +objj_msgSend(_b1,"update"); +} +}),new objj_method(sel_getUid("tabViewItem"),function(_b4,_b5){ +with(_b4){ +return _tabViewItem; +} +}),new objj_method(sel_getUid("update"),function(_b6,_b7){ +with(_b6){ +objj_msgSend(_labelField,"setStringValue:",objj_msgSend(_tabViewItem,"label")); +} +})]); +class_addMethods(_d,[new objj_method(sel_getUid("initialize"),function(_b8,_b9){ +with(_b8){ +if(_b8!=objj_msgSend(_CPTabLabel,"class")){ +return; +} +var _ba=objj_msgSend(CPBundle,"bundleForClass:",_b8); +_a9=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPThreePartImage,"alloc"),"initWithImageSlices:isVertical:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ba,"pathForResource:","CPTabView/_CPTabLabelBackgroundLeft.png"),CGSizeMake(6,18)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ba,"pathForResource:","CPTabView/_CPTabLabelBackgroundCenter.png"),CGSizeMake(1,18)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ba,"pathForResource:","CPTabView/_CPTabLabelBackgroundRight.png"),CGSizeMake(6,18))],NO)); +_aa=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPThreePartImage,"alloc"),"initWithImageSlices:isVertical:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ba,"pathForResource:","CPTabView/_CPTabLabelSelectedLeft.png"),CGSizeMake(3,18)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ba,"pathForResource:","CPTabView/_CPTabLabelSelectedCenter.png"),CGSizeMake(1,18)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ba,"pathForResource:","CPTabView/_CPTabLabelSelectedRight.png"),CGSizeMake(3,18))],NO)); +} +})]); +p;15;CPTabViewItem.jI;21;Foundation/CPObject.jI;15;AppKit/CPView.jc;2568; +CPSelectedTab=0; +CPBackgroundTab=1; +CPPressedTab=2; +var _1=objj_allocateClassPair(CPObject,"CPTabViewItem"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_identifier"),new objj_ivar("_label"),new objj_ivar("_view"),new objj_ivar("_auxiliaryView")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithIdentifier:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_identifier=_5; +} +return _3; +} +}),new objj_method(sel_getUid("setLabel:"),function(_6,_7,_8){ +with(_6){ +_label=_8; +} +}),new objj_method(sel_getUid("label"),function(_9,_a){ +with(_9){ +return _label; +} +}),new objj_method(sel_getUid("tabState"),function(_b,_c){ +with(_b){ +return _tabState; +} +}),new objj_method(sel_getUid("setIdentifier:"),function(_d,_e,_f){ +with(_d){ +_identifier=_f; +} +}),new objj_method(sel_getUid("identifier"),function(_10,_11){ +with(_10){ +return _identifier; +} +}),new objj_method(sel_getUid("setView:"),function(_12,_13,_14){ +with(_12){ +_view=_14; +} +}),new objj_method(sel_getUid("view"),function(_15,_16){ +with(_15){ +return _view; +} +}),new objj_method(sel_getUid("setAuxiliaryView:"),function(_17,_18,_19){ +with(_17){ +_auxiliaryView=_19; +} +}),new objj_method(sel_getUid("auxiliaryView"),function(_1a,_1b){ +with(_1a){ +return _auxiliaryView; +} +}),new objj_method(sel_getUid("tabView"),function(_1c,_1d){ +with(_1c){ +return _tabView; +} +})]); +var _1e="CPTabViewItemIdentifierKey",_1f="CPTabViewItemLabelKey",_20="CPTabViewItemViewKey",_21="CPTabViewItemAuxViewKey"; +var _1=objj_getClass("CPTabViewItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTabViewItem\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_22,_23,_24){ +with(_22){ +_22=objj_msgSendSuper({receiver:_22,super_class:objj_getClass("CPObject")},"init"); +if(_22){ +_identifier=objj_msgSend(_24,"decodeObjectForKey:",_1e); +_label=objj_msgSend(_24,"decodeObjectForKey:",_1f); +_view=objj_msgSend(_24,"decodeObjectForKey:",_20); +_auxiliaryView=objj_msgSend(_24,"decodeObjectForKey:",_21); +} +return _22; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_25,_26,_27){ +with(_25){ +objj_msgSend(_27,"encodeObject:forKey:",_identifier,_1e); +objj_msgSend(_27,"encodeObject:forKey:",_label,_1f); +objj_msgSend(_27,"encodeObject:forKey:",_view,_20); +objj_msgSend(_27,"encodeObject:forKey:",_auxiliaryView,_21); +} +})]); +p;13;CPTextField.ji;11;CPControl.ji;17;CPStringDrawing.ji;17;CPCompatibility.jc;20532; +CPLineBreakByWordWrapping=0; +CPLineBreakByCharWrapping=1; +CPLineBreakByClipping=2; +CPLineBreakByTruncatingHead=3; +CPLineBreakByTruncatingTail=4; +CPLineBreakByTruncatingMiddle=5; +CPTextFieldSquareBezel=0; +CPTextFieldRoundedBezel=1; +var _1=nil,_2=nil,_3=nil,_4=nil,_5=nil,_6=NO,_7=NO,_8=NO,_9=nil,_a=nil,_b=nil,_c=nil,_d=nil,_e=nil; +var _f="•"; +var _10=objj_getClass("CPString"); +if(!_10){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPString\"")); +} +var _11=_10.isa; +class_addMethods(_10,[new objj_method(sel_getUid("string"),function(_12,_13){ +with(_12){ +return _12; +} +})]); +CPTextFieldStateRounded=CPThemeState("rounded"); +CPTextFieldStatePlaceholder=CPThemeState("placeholder"); +var _10=objj_allocateClassPair(CPControl,"CPTextField"),_11=_10.isa; +class_addIvars(_10,[new objj_ivar("_isEditable"),new objj_ivar("_isSelectable"),new objj_ivar("_isSecure"),new objj_ivar("_drawsBackground"),new objj_ivar("_textFieldBackgroundColor"),new objj_ivar("_placeholderString"),new objj_ivar("_delegate"),new objj_ivar("_textDidChangeValue"),new objj_ivar("_bezelStyle"),new objj_ivar("_isBordered"),new objj_ivar("_controlSize")]); +objj_registerClassPair(_10); +objj_addClassForBundle(_10,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_10,[new objj_method(sel_getUid("_inputElement"),function(_14,_15){ +with(_14){ +if(!_1){ +_1=document.createElement("input"); +_1.style.position="absolute"; +_1.style.border="0px"; +_1.style.padding="0px"; +_1.style.margin="0px"; +_1.style.whiteSpace="pre"; +_1.style.background="transparent"; +_1.style.outline="none"; +_b=function(_16){ +if(_4&&_4._DOMElement!=_1.parentNode){ +return; +} +if(!_6){ +objj_msgSend(objj_msgSend(_4,"window"),"makeFirstResponder:",nil); +return; +} +CPTextFieldHandleBlur(_16,_1); +_7=YES; +return true; +}; +_e=function(_17){ +_5=objj_msgSend(_4,"stringValue"); +_d(_17); +return true; +}; +_d=function(_18){ +_18=_18||window.event; +if(_18.keyCode==CPReturnKeyCode||_18.keyCode==CPTabKeyCode){ +if(_18.preventDefault){ +_18.preventDefault(); +} +if(_18.stopPropagation){ +_18.stopPropagation(); +} +_18.cancelBubble=true; +var _19=_4; +if(_18&&_18.keyCode==CPReturnKeyCode){ +objj_msgSend(_19,"sendAction:to:",objj_msgSend(_19,"action"),objj_msgSend(_19,"target")); +objj_msgSend(objj_msgSend(_19,"window"),"makeFirstResponder:",nil); +}else{ +if(_18&&_18.keyCode==CPTabKeyCode){ +if(!_18.shiftKey){ +objj_msgSend(objj_msgSend(_19,"window"),"selectNextKeyView:",_19); +}else{ +objj_msgSend(objj_msgSend(_19,"window"),"selectPreviousKeyView:",_19); +} +} +} +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +}; +_c=function(){ +objj_msgSend(_4,"setStringValue:",_1.value); +if(objj_msgSend(_4,"stringValue")!==_5){ +_5=objj_msgSend(_4,"stringValue"); +objj_msgSend(_4,"textDidChange:",objj_msgSend(CPNotification,"notificationWithName:object:userInfo:",CPControlTextDidChangeNotification,_4,nil)); +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +}; +CPTextFieldHandleBlur=function(_1a){ +var _1b=_4; +_4=nil; +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +}; +if(document.attachEvent){ +_1.attachEvent("on"+CPDOMEventKeyUp,_c); +_1.attachEvent("on"+CPDOMEventKeyDown,_e); +_1.attachEvent("on"+CPDOMEventKeyPress,_d); +}else{ +_1.addEventListener(CPDOMEventKeyUp,_c,NO); +_1.addEventListener(CPDOMEventKeyDown,_e,NO); +_1.addEventListener(CPDOMEventKeyPress,_d,NO); +} +_1.onblur=_b; +_3=_1; +} +if(CPFeatureIsCompatible(CPInputTypeCanBeChangedFeature)){ +if(objj_msgSend(_14,"isSecure")){ +_1.type="password"; +}else{ +_1.type="text"; +} +return _1; +} +if(objj_msgSend(_14,"isSecure")){ +if(!_2){ +_2=document.createElement("input"); +_2.style.position="absolute"; +_2.style.border="0px"; +_2.style.padding="0px"; +_2.style.margin="0px"; +_2.style.whiteSpace="pre"; +_2.style.background="transparent"; +_2.style.outline="none"; +_2.type="password"; +_2.attachEvent("on"+CPDOMEventKeyUp,_c); +_2.attachEvent("on"+CPDOMEventKeyDown,_e); +_2.attachEvent("on"+CPDOMEventKeyPress,_d); +_2.onblur=_b; +} +_1=_2; +}else{ +_1=_3; +} +return _1; +} +}),new objj_method(sel_getUid("initWithFrame:"),function(_1c,_1d,_1e){ +with(_1c){ +_1c=objj_msgSendSuper({receiver:_1c,super_class:objj_getClass("CPControl")},"initWithFrame:",_1e); +if(_1c){ +objj_msgSend(_1c,"setStringValue:",""); +objj_msgSend(_1c,"setPlaceholderString:",""); +_sendActionOn=CPKeyUpMask|CPKeyDownMask; +objj_msgSend(_1c,"setValue:forThemeAttribute:",CPLeftTextAlignment,"alignment"); +} +return _1c; +} +}),new objj_method(sel_getUid("setEditable:"),function(_1f,_20,_21){ +with(_1f){ +_isEditable=_21; +} +}),new objj_method(sel_getUid("isEditable"),function(_22,_23){ +with(_22){ +return _isEditable; +} +}),new objj_method(sel_getUid("setSelectable:"),function(_24,_25,_26){ +with(_24){ +_isSelectable=_26; +} +}),new objj_method(sel_getUid("isSelectable"),function(_27,_28){ +with(_27){ +return _isSelectable; +} +}),new objj_method(sel_getUid("setSecure:"),function(_29,_2a,_2b){ +with(_29){ +_isSecure=_2b; +} +}),new objj_method(sel_getUid("isSecure"),function(_2c,_2d){ +with(_2c){ +return _isSecure; +} +}),new objj_method(sel_getUid("setBezeled:"),function(_2e,_2f,_30){ +with(_2e){ +if(_30){ +objj_msgSend(_2e,"setThemeState:",CPThemeStateBezeled); +}else{ +objj_msgSend(_2e,"unsetThemeState:",CPThemeStateBezeled); +} +} +}),new objj_method(sel_getUid("isBezeled"),function(_31,_32){ +with(_31){ +return objj_msgSend(_31,"hasThemeState:",CPThemeStateBezeled); +} +}),new objj_method(sel_getUid("setBezelStyle:"),function(_33,_34,_35){ +with(_33){ +var _36=_35===CPTextFieldRoundedBezel; +if(_36){ +objj_msgSend(_33,"setThemeState:",CPTextFieldStateRounded); +}else{ +objj_msgSend(_33,"unsetThemeState:",CPTextFieldStateRounded); +} +} +}),new objj_method(sel_getUid("bezelStyle"),function(_37,_38){ +with(_37){ +if(objj_msgSend(_37,"hasThemeState:",CPTextFieldStateRounded)){ +return CPTextFieldRoundedBezel; +} +return CPTextFieldSquareBezel; +} +}),new objj_method(sel_getUid("setBordered:"),function(_39,_3a,_3b){ +with(_39){ +if(_3b){ +objj_msgSend(_39,"setThemeState:",CPThemeStateBordered); +}else{ +objj_msgSend(_39,"unsetThemeState:",CPThemeStateBordered); +} +} +}),new objj_method(sel_getUid("isBordered"),function(_3c,_3d){ +with(_3c){ +return objj_msgSend(_3c,"hasThemeState:",CPThemeStateBordered); +} +}),new objj_method(sel_getUid("setDrawsBackground:"),function(_3e,_3f,_40){ +with(_3e){ +if(_drawsBackground==_40){ +return; +} +_drawsBackground=_40; +objj_msgSend(_3e,"setNeedsLayout"); +objj_msgSend(_3e,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("drawsBackground"),function(_41,_42){ +with(_41){ +return _drawsBackground; +} +}),new objj_method(sel_getUid("setTextFieldBackgroundColor:"),function(_43,_44,_45){ +with(_43){ +if(_textFieldBackgroundColor==_45){ +return; +} +_textFieldBackgroundColor=_45; +objj_msgSend(_43,"setNeedsLayout"); +objj_msgSend(_43,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("textFieldBackgroundColor"),function(_46,_47){ +with(_46){ +return _textFieldBackgroundColor; +} +}),new objj_method(sel_getUid("acceptsFirstResponder"),function(_48,_49){ +with(_48){ +return objj_msgSend(_48,"isEditable")&&objj_msgSend(_48,"isEnabled"); +} +}),new objj_method(sel_getUid("becomeFirstResponder"),function(_4a,_4b){ +with(_4a){ +if(_4&&objj_msgSend(_4,"window")!==objj_msgSend(_4a,"window")){ +objj_msgSend(objj_msgSend(_4,"window"),"makeFirstResponder:",nil); +} +objj_msgSend(_4a,"setThemeState:",CPThemeStateEditing); +objj_msgSend(_4a,"_updatePlaceholderState"); +objj_msgSend(_4a,"setNeedsLayout"); +var _4c=objj_msgSend(_4a,"stringValue"),_4d=objj_msgSend(_4a,"_inputElement"); +_4d.value=_4c; +_4d.style.color=objj_msgSend(objj_msgSend(_4a,"currentValueForThemeAttribute:","text-color"),"cssString"); +_4d.style.font=objj_msgSend(objj_msgSend(_4a,"currentValueForThemeAttribute:","font"),"cssString"); +_4d.style.zIndex=1000; +var _4e=objj_msgSend(_4a,"contentRectForBounds:",objj_msgSend(_4a,"bounds")); +_4d.style.top=(_4e.origin.y)+"px"; +_4d.style.left=((_4e.origin.x)-1)+"px"; +_4d.style.width=(_4e.size.width)+"px"; +_4d.style.height=(_4e.size.height)+"px"; +_DOMElement.appendChild(_4d); +window.setTimeout(function(){ +_4d.focus(); +_4=_4a; +},0); +objj_msgSend(_4a,"textDidBeginEditing:",objj_msgSend(CPNotification,"notificationWithName:object:userInfo:",CPControlTextDidBeginEditingNotification,_4a,nil)); +objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"_propagateCurrentDOMEvent:",YES); +_8=YES; +if(document.attachEvent){ +_9=document.body.onselectstart; +_a=document.body.ondrag; +document.body.ondrag=function(){ +}; +document.body.onselectstart=function(){ +}; +} +return YES; +} +}),new objj_method(sel_getUid("resignFirstResponder"),function(_4f,_50){ +with(_4f){ +objj_msgSend(_4f,"unsetThemeState:",CPThemeStateEditing); +objj_msgSend(_4f,"_updatePlaceholderState"); +objj_msgSend(_4f,"setNeedsLayout"); +var _51=objj_msgSend(_4f,"_inputElement"); +objj_msgSend(_4f,"setObjectValue:",_51.value); +_6=YES; +_51.blur(); +if(!_7){ +_b(); +} +_7=NO; +_6=NO; +if(_51.parentNode==_DOMElement){ +_51.parentNode.removeChild(_51); +} +_8=NO; +if(document.attachEvent){ +_9=nil; +_a=nil; +document.body.ondrag=_a; +document.body.onselectstart=_9; +} +objj_msgSend(_4f,"textDidEndEditing:",objj_msgSend(CPNotification,"notificationWithName:object:userInfo:",CPControlTextDidBeginEditingNotification,_4f,nil)); +return YES; +} +}),new objj_method(sel_getUid("mouseDown:"),function(_52,_53,_54){ +with(_52){ +if(objj_msgSend(_52,"isEditable")&&objj_msgSend(_52,"isEnabled")){ +return objj_msgSend(objj_msgSend(_52,"window"),"makeFirstResponder:",_52); +}else{ +return objj_msgSend(objj_msgSend(_52,"nextResponder"),"mouseDown:",_54); +} +} +}),new objj_method(sel_getUid("objectValue"),function(_55,_56){ +with(_55){ +return objj_msgSendSuper({receiver:_55,super_class:objj_getClass("CPControl")},"objectValue"); +} +}),new objj_method(sel_getUid("setObjectValue:"),function(_57,_58,_59){ +with(_57){ +objj_msgSendSuper({receiver:_57,super_class:objj_getClass("CPControl")},"setObjectValue:",_59); +objj_msgSend(_57,"_updatePlaceholderState"); +} +}),new objj_method(sel_getUid("_updatePlaceholderState"),function(_5a,_5b){ +with(_5a){ +var _5c=objj_msgSend(_5a,"stringValue"); +if((!_5c||objj_msgSend(_5c,"length")===0)&&!objj_msgSend(_5a,"hasThemeState:",CPThemeStateEditing)){ +objj_msgSend(_5a,"setThemeState:",CPTextFieldStatePlaceholder); +}else{ +objj_msgSend(_5a,"unsetThemeState:",CPTextFieldStatePlaceholder); +} +} +}),new objj_method(sel_getUid("setPlaceholderString:"),function(_5d,_5e,_5f){ +with(_5d){ +if(_placeholderString===_5f){ +return; +} +_placeholderString=_5f; +if(objj_msgSend(_5d,"hasThemeState:",CPTextFieldStatePlaceholder)){ +objj_msgSend(_5d,"setNeedsLayout"); +objj_msgSend(_5d,"setNeedsDisplay:",YES); +} +} +}),new objj_method(sel_getUid("placeholderString"),function(_60,_61){ +with(_60){ +return _placeholderString; +} +}),new objj_method(sel_getUid("sizeToFit"),function(_62,_63){ +with(_62){ +var _64=objj_msgSend((objj_msgSend(_62,"stringValue")||" "),"sizeWithFont:",objj_msgSend(_62,"currentValueForThemeAttribute:","font")),_65=objj_msgSend(_62,"currentValueForThemeAttribute:","content-inset"),_66=objj_msgSend(_62,"currentValueForThemeAttribute:","min-size"),_67=objj_msgSend(_62,"currentValueForThemeAttribute:","max-size"); +_64.width=MAX(_64.width+_65.left+_65.right,_66.width); +_64.height=MAX(_64.height+_65.top+_65.bottom,_66.height); +if(_67.width>=0){ +_64.width=MIN(_64.width,_67.width); +} +if(_67.height>=0){ +_64.height=MIN(_64.height,_67.height); +} +if(objj_msgSend(_62,"isEditable")){ +_64.width=CGRectGetWidth(objj_msgSend(_62,"frame")); +} +objj_msgSend(_62,"setFrameSize:",_64); +} +}),new objj_method(sel_getUid("selectText:"),function(_68,_69,_6a){ +with(_68){ +var _6b=objj_msgSend(_68,"_inputElement"); +if(_6b.parentNode==_DOMElement&&(objj_msgSend(_68,"isEditable")||objj_msgSend(_68,"isSelectable"))){ +_6b.select(); +} +} +}),new objj_method(sel_getUid("setDelegate:"),function(_6c,_6d,_6e){ +with(_6c){ +var _6f=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(_delegate){ +objj_msgSend(_6f,"removeObserver:name:object:",_delegate,CPControlTextDidBeginEditingNotification,_6c); +objj_msgSend(_6f,"removeObserver:name:object:",_delegate,CPControlTextDidChangeNotification,_6c); +objj_msgSend(_6f,"removeObserver:name:object:",_delegate,CPControlTextDidEndEditingNotification,_6c); +} +_delegate=_6e; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("controlTextDidBeginEditing:"))){ +objj_msgSend(_6f,"addObserver:selector:name:object:",_delegate,sel_getUid("controlTextDidBeginEditing:"),CPControlTextDidBeginEditingNotification,_6c); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("controlTextDidChange:"))){ +objj_msgSend(_6f,"addObserver:selector:name:object:",_delegate,sel_getUid("controlTextDidChange:"),CPControlTextDidChangeNotification,_6c); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("controlTextDidEndEditing:"))){ +objj_msgSend(_6f,"addObserver:selector:name:object:",_delegate,sel_getUid("controlTextDidEndEditing:"),CPControlTextDidEndEditingNotification,_6c); +} +} +}),new objj_method(sel_getUid("delegate"),function(_70,_71){ +with(_70){ +return _delegate; +} +}),new objj_method(sel_getUid("contentRectForBounds:"),function(_72,_73,_74){ +with(_72){ +var _75=objj_msgSend(_72,"currentValueForThemeAttribute:","content-inset"); +if(!_75){ +return _74; +} +_74.origin.x+=_75.left; +_74.origin.y+=_75.top; +_74.size.width-=_75.left+_75.right; +_74.size.height-=_75.top+_75.bottom; +return _74; +} +}),new objj_method(sel_getUid("bezelRectForBounds:"),function(_76,_77,_78){ +with(_76){ +var _79=objj_msgSend(_76,"currentValueForThemeAttribute:","bezel-inset"); +if(((_79).top===0&&(_79).right===0&&(_79).bottom===0&&(_79).left===0)){ +return _78; +} +_78.origin.x+=_79.left; +_78.origin.y+=_79.top; +_78.size.width-=_79.left+_79.right; +_78.size.height-=_79.top+_79.bottom; +return _78; +} +}),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_7a,_7b,_7c){ +with(_7a){ +if(_7c==="bezel-view"){ +return objj_msgSend(_7a,"bezelRectForBounds:",objj_msgSend(_7a,"bounds")); +}else{ +if(_7c==="content-view"){ +return objj_msgSend(_7a,"contentRectForBounds:",objj_msgSend(_7a,"bounds")); +} +} +return objj_msgSendSuper({receiver:_7a,super_class:objj_getClass("CPControl")},"rectForEphemeralSubviewNamed:",_7c); +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_7d,_7e,_7f){ +with(_7d){ +if(_7f==="bezel-view"){ +var _80=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +objj_msgSend(_80,"setHitTests:",NO); +return _80; +}else{ +var _80=objj_msgSend(objj_msgSend(_CPImageAndTextView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +return _80; +} +return objj_msgSendSuper({receiver:_7d,super_class:objj_getClass("CPControl")},"createEphemeralSubviewNamed:",_7f); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_81,_82){ +with(_81){ +var _83=objj_msgSend(_81,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","bezel-view",CPWindowBelow,"content-view"); +if(_83){ +objj_msgSend(_83,"setBackgroundColor:",objj_msgSend(_81,"currentValueForThemeAttribute:","bezel-color")); +} +var _84=objj_msgSend(_81,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","content-view",CPWindowAbove,"bezel-view"); +if(_84){ +objj_msgSend(_84,"setHidden:",objj_msgSend(_81,"hasThemeState:",CPThemeStateEditing)); +var _85=""; +if(objj_msgSend(_81,"hasThemeState:",CPTextFieldStatePlaceholder)){ +_85=objj_msgSend(_81,"placeholderString"); +}else{ +_85=objj_msgSend(_81,"stringValue"); +if(objj_msgSend(_81,"isSecure")){ +_85=_86(_85); +} +} +objj_msgSend(_84,"setText:",_85); +objj_msgSend(_84,"setTextColor:",objj_msgSend(_81,"currentValueForThemeAttribute:","text-color")); +objj_msgSend(_84,"setFont:",objj_msgSend(_81,"currentValueForThemeAttribute:","font")); +objj_msgSend(_84,"setAlignment:",objj_msgSend(_81,"currentValueForThemeAttribute:","alignment")); +objj_msgSend(_84,"setVerticalAlignment:",objj_msgSend(_81,"currentValueForThemeAttribute:","vertical-alignment")); +objj_msgSend(_84,"setLineBreakMode:",objj_msgSend(_81,"currentValueForThemeAttribute:","line-break-mode")); +objj_msgSend(_84,"setTextShadowColor:",objj_msgSend(_81,"currentValueForThemeAttribute:","text-shadow-color")); +objj_msgSend(_84,"setTextShadowOffset:",objj_msgSend(_81,"currentValueForThemeAttribute:","text-shadow-offset")); +} +} +})]); +class_addMethods(_11,[new objj_method(sel_getUid("textFieldWithStringValue:placeholder:width:"),function(_87,_88,_89,_8a,_8b){ +with(_87){ +return objj_msgSend(_87,"textFieldWithStringValue:placeholder:width:theme:",_89,_8a,_8b,objj_msgSend(CPTheme,"defaultTheme")); +} +}),new objj_method(sel_getUid("textFieldWithStringValue:placeholder:width:theme:"),function(_8c,_8d,_8e,_8f,_90,_91){ +with(_8c){ +var _92=objj_msgSend(objj_msgSend(_8c,"alloc"),"initWithFrame:",CGRectMake(0,0,_90,29)); +objj_msgSend(_92,"setTheme:",_91); +objj_msgSend(_92,"setStringValue:",_8e); +objj_msgSend(_92,"setPlaceholderString:",_8f); +objj_msgSend(_92,"setBordered:",YES); +objj_msgSend(_92,"setBezeled:",YES); +objj_msgSend(_92,"setEditable:",YES); +objj_msgSend(_92,"sizeToFit"); +return _92; +} +}),new objj_method(sel_getUid("roundedTextFieldWithStringValue:placeholder:width:"),function(_93,_94,_95,_96,_97){ +with(_93){ +return objj_msgSend(_93,"roundedTextFieldWithStringValue:placeholder:width:theme:",_95,_96,_97,objj_msgSend(CPTheme,"defaultTheme")); +} +}),new objj_method(sel_getUid("roundedTextFieldWithStringValue:placeholder:width:theme:"),function(_98,_99,_9a,_9b,_9c,_9d){ +with(_98){ +var _9e=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CGRectMake(0,0,_9c,29)); +objj_msgSend(_9e,"setTheme:",_9d); +objj_msgSend(_9e,"setStringValue:",_9a); +objj_msgSend(_9e,"setPlaceholderString:",_9b); +objj_msgSend(_9e,"setBezelStyle:",CPTextFieldRoundedBezel); +objj_msgSend(_9e,"setBordered:",YES); +objj_msgSend(_9e,"setBezeled:",YES); +objj_msgSend(_9e,"setEditable:",YES); +objj_msgSend(_9e,"sizeToFit"); +return _9e; +} +}),new objj_method(sel_getUid("labelWithTitle:"),function(_9f,_a0,_a1){ +with(_9f){ +return objj_msgSend(_9f,"labelWithTitle:theme:",_a1,objj_msgSend(CPTheme,"defaultTheme")); +} +}),new objj_method(sel_getUid("labelWithTitle:theme:"),function(_a2,_a3,_a4,_a5){ +with(_a2){ +var _a6=objj_msgSend(objj_msgSend(_a2,"alloc"),"init"); +objj_msgSend(_a6,"setStringValue:",_a4); +objj_msgSend(_a6,"sizeToFit"); +return _a6; +} +}),new objj_method(sel_getUid("themeClass"),function(_a7,_a8){ +with(_a7){ +return "textfield"; +} +}),new objj_method(sel_getUid("themeAttributes"),function(_a9,_aa){ +with(_a9){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[{top:(0),right:(0),bottom:(0),left:(0)},{top:(2),right:(2),bottom:(2),left:(2)},nil],["bezel-inset","content-inset","bezel-color"]); +} +})]); +var _86=function(_ab){ +if(!_ab){ +return ""; +} +var _ac="",_ad=_ab.length; +while(_ad--){ +_ac+=_f; +} +return _ac; +}; +var _ae="CPTextFieldIsEditableKey",_af="CPTextFieldIsSelectableKey",_b0="CPTextFieldIsBorderedKey",_b1="CPTextFieldIsBezeledKey",_b2="CPTextFieldBezelStyleKey",_b3="CPTextFieldDrawsBackgroundKey",_b4="CPTextFieldLineBreakModeKey",_b5="CPTextFieldBackgroundColorKey",_b6="CPTextFieldPlaceholderStringKey"; +var _10=objj_getClass("CPTextField"); +if(!_10){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTextField\"")); +} +var _11=_10.isa; +class_addMethods(_10,[new objj_method(sel_getUid("initWithCoder:"),function(_b7,_b8,_b9){ +with(_b7){ +_b7=objj_msgSendSuper({receiver:_b7,super_class:objj_getClass("CPControl")},"initWithCoder:",_b9); +if(_b7){ +objj_msgSend(_b7,"setEditable:",objj_msgSend(_b9,"decodeBoolForKey:",_ae)); +objj_msgSend(_b7,"setSelectable:",objj_msgSend(_b9,"decodeBoolForKey:",_af)); +objj_msgSend(_b7,"setDrawsBackground:",objj_msgSend(_b9,"decodeBoolForKey:",_b3)); +objj_msgSend(_b7,"setTextFieldBackgroundColor:",objj_msgSend(_b9,"decodeObjectForKey:",_b5)); +objj_msgSend(_b7,"setPlaceholderString:",objj_msgSend(_b9,"decodeObjectForKey:",_b6)); +} +return _b7; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_ba,_bb,_bc){ +with(_ba){ +objj_msgSendSuper({receiver:_ba,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_bc); +objj_msgSend(_bc,"encodeBool:forKey:",_isEditable,_ae); +objj_msgSend(_bc,"encodeBool:forKey:",_isSelectable,_af); +objj_msgSend(_bc,"encodeBool:forKey:",_drawsBackground,_b3); +objj_msgSend(_bc,"encodeObject:forKey:",_textFieldBackgroundColor,_b5); +objj_msgSend(_bc,"encodeObject:forKey:",_placeholderString,_b6); +} +})]); +p;9;CPTheme.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;10887; +var _1={},_2=nil; +var _3=objj_allocateClassPair(CPObject,"CPTheme"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_name"),new objj_ivar("_attributes")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initWithName:"),function(_5,_6,_7){ +with(_5){ +_5=objj_msgSendSuper({receiver:_5,super_class:objj_getClass("CPObject")},"init"); +if(_5){ +_name=_7; +_attributes=objj_msgSend(CPDictionary,"dictionary"); +_1[_name]=_5; +} +return _5; +} +}),new objj_method(sel_getUid("name"),function(_8,_9){ +with(_8){ +return _name; +} +}),new objj_method(sel_getUid("_attributeWithName:forClass:"),function(_a,_b,_c,_d){ +with(_a){ +var _e=objj_msgSend(_attributes,"objectForKey:",_d); +if(!_e){ +return nil; +} +return objj_msgSend(_e,"objectForKey:",_c); +} +}),new objj_method(sel_getUid("takeThemeFromObject:"),function(_f,_10,_11){ +with(_f){ +var _12=objj_msgSend(_11,"_themeAttributeDictionary"),_13=nil,_14=objj_msgSend(_12,"keyEnumerator"),_15=objj_msgSend(objj_msgSend(_11,"class"),"themeClass"); +while(_13=objj_msgSend(_14,"nextObject")){ +objj_msgSend(_f,"_recordAttribute:forClass:",objj_msgSend(_12,"objectForKey:",_13),_15); +} +} +}),new objj_method(sel_getUid("_recordAttribute:forClass:"),function(_16,_17,_18,_19){ +with(_16){ +if(!objj_msgSend(_18,"hasValues")){ +return; +} +var _1a=objj_msgSend(_attributes,"objectForKey:",_19); +if(!_1a){ +_1a=objj_msgSend(CPDictionary,"dictionary"); +objj_msgSend(_attributes,"setObject:forKey:",_1a,_19); +} +var _1b=objj_msgSend(_18,"name"),_1c=objj_msgSend(_1a,"objectForKey:",_1b); +if(_1c){ +objj_msgSend(_1a,"setObject:forKey:",objj_msgSend(_1c,"attributeMergedWithAttribute:",_18),_1b); +}else{ +objj_msgSend(_1a,"setObject:forKey:",_18,_1b); +} +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("setDefaultTheme:"),function(_1d,_1e,_1f){ +with(_1d){ +_2=_1f; +} +}),new objj_method(sel_getUid("defaultTheme"),function(_20,_21){ +with(_20){ +return _2; +} +}),new objj_method(sel_getUid("themeNamed:"),function(_22,_23,_24){ +with(_22){ +return _1[_24]; +} +})]); +var _25="CPThemeNameKey",_26="CPThemeAttributesKey"; +var _3=objj_getClass("CPTheme"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTheme\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("initWithCoder:"),function(_27,_28,_29){ +with(_27){ +_27=objj_msgSendSuper({receiver:_27,super_class:objj_getClass("CPObject")},"init"); +if(_27){ +_name=objj_msgSend(_29,"decodeObjectForKey:",_25); +_attributes=objj_msgSend(_29,"decodeObjectForKey:",_26); +_1[_name]=_27; +} +return _27; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_2a,_2b,_2c){ +with(_2a){ +objj_msgSend(_2c,"encodeObject:forKey:",_name,_25); +objj_msgSend(_2c,"encodeObject:forKey:",_attributes,_26); +} +})]); +var _3=objj_allocateClassPair(CPKeyedUnarchiver,"_CPThemeKeyedUnarchiver"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_bundle")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initForReadingWithData:bundle:"),function(_2d,_2e,_2f,_30){ +with(_2d){ +_2d=objj_msgSendSuper({receiver:_2d,super_class:objj_getClass("CPKeyedUnarchiver")},"initForReadingWithData:",_2f); +if(_2d){ +_bundle=_30; +} +return _2d; +} +}),new objj_method(sel_getUid("bundle"),function(_31,_32){ +with(_31){ +return _bundle; +} +}),new objj_method(sel_getUid("awakenCustomResources"),function(_33,_34){ +with(_33){ +return YES; +} +})]); +var _35={},_36={},_37=0; +CPThemeState=function(_38){ +var _39=_35[_38]; +if(_39===undefined){ +if(_38.indexOf("+")===-1){ +_39=1<<_37++; +}else{ +var _39=0,_3a=_38.split("+"),_3b=_3a.length; +while(_3b--){ +var _3c=_3a[_3b],_3d=_35[_3c]; +if(_3d===undefined){ +_3d=1<<_37++; +_35[_3c]=_3d; +_36[_3d]=_3c; +} +_39|=_3d; +} +} +_35[_38]=_39; +_36[_39]=_38; +} +return _39; +}; +CPThemeStateName=function(_3e){ +var _3f=_36[_3e]; +if(_3f!==undefined){ +return _3f; +} +if(!(_3e&(_3e-1))){ +return ""; +} +var _40=1,_3f=""; +for(;_40<_3e;_40<<=1){ +if(_3e&_40){ +_3f+=(_3f.length===0?"":"+")+_36[_40]; +} +} +_36[_3e]=_3f; +return _3f; +}; +_36[0]="normal"; +CPThemeStateNormal=_35["normal"]=0; +CPThemeStateDisabled=CPThemeState("disabled"); +CPThemeStateHighlighted=CPThemeState("highlighted"); +CPThemeStateSelected=CPThemeState("selected"); +CPThemeStateBezeled=CPThemeState("bezeled"); +CPThemeStateBordered=CPThemeState("bordered"); +CPThemeStateEditable=CPThemeState("editable"); +CPThemeStateEditing=CPThemeState("editing"); +CPThemeStateVertical=CPThemeState("vertical"); +CPThemeStateDefault=CPThemeState("default"); +CPThemeStateCircular=CPThemeState("circular"); +var _3=objj_allocateClassPair(CPObject,"_CPThemeAttribute"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_name"),new objj_ivar("_defaultValue"),new objj_ivar("_values"),new objj_ivar("_cache"),new objj_ivar("_parentAttribute")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initWithName:defaultValue:"),function(_41,_42,_43,_44){ +with(_41){ +_41=objj_msgSendSuper({receiver:_41,super_class:objj_getClass("CPObject")},"init"); +if(_41){ +_cache={}; +_name=_43; +_defaultValue=_44; +_values=objj_msgSend(CPDictionary,"dictionary"); +} +return _41; +} +}),new objj_method(sel_getUid("name"),function(_45,_46){ +with(_45){ +return _name; +} +}),new objj_method(sel_getUid("defaultValue"),function(_47,_48){ +with(_47){ +return _defaultValue; +} +}),new objj_method(sel_getUid("hasValues"),function(_49,_4a){ +with(_49){ +return objj_msgSend(_values,"count")>0; +} +}),new objj_method(sel_getUid("isTrivial"),function(_4b,_4c){ +with(_4b){ +return (objj_msgSend(_values,"count")===1)&&(Number(objj_msgSend(_values,"allKeys")[0])===CPThemeStateNormal); +} +}),new objj_method(sel_getUid("setValue:"),function(_4d,_4e,_4f){ +with(_4d){ +_cache={}; +if(_4f===undefined||_4f===nil){ +_values=objj_msgSend(CPDictionary,"dictionary"); +}else{ +_values=objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",_4f,String(CPThemeStateNormal)); +} +} +}),new objj_method(sel_getUid("setValue:forState:"),function(_50,_51,_52,_53){ +with(_50){ +_cache={}; +if((_52===undefined)||(_52===nil)){ +objj_msgSend(_values,"removeObjectForKey:",String(_53)); +}else{ +objj_msgSend(_values,"setObject:forKey:",_52,String(_53)); +} +} +}),new objj_method(sel_getUid("value"),function(_54,_55){ +with(_54){ +return objj_msgSend(_54,"valueForState:",CPThemeStateNormal); +} +}),new objj_method(sel_getUid("valueForState:"),function(_56,_57,_58){ +with(_56){ +var _59=_cache[_58]; +if(_59!==undefined){ +return _59; +} +_59=objj_msgSend(_values,"objectForKey:",String(_58)); +if((_59===undefined||_59===nil)&&_58!==CPThemeStateNormal){ +if(_58&(_58-1)){ +var _5a=0,_5b=objj_msgSend(_values,"allKeys"),_5c=_5b.length; +while(_5c--){ +var _5d=Number(_5b[_5c]); +if((_5d&_58)===_5d){ +var _5e=_5f[_5d]; +if(_5e===undefined){ +_5e=_60(_5d); +} +if(_5e>_5a){ +_5a=_5e; +_59=objj_msgSend(_values,"objectForKey:",String(_5d)); +} +} +} +} +if(_59===undefined||_59===nil){ +_59=objj_msgSend(_values,"objectForKey:",String(CPThemeStateNormal)); +} +} +if(_59===undefined||_59===nil){ +_59=objj_msgSend(_parentAttribute,"valueForState:",_58); +} +if(_59===undefined||_59===nil){ +_59=_defaultValue; +} +_cache[_58]=_59; +return _59; +} +}),new objj_method(sel_getUid("setParentAttribute:"),function(_61,_62,_63){ +with(_61){ +if(_parentAttribute===_63){ +return; +} +_cache={}; +_parentAttribute=_63; +} +}),new objj_method(sel_getUid("attributeMergedWithAttribute:"),function(_64,_65,_66){ +with(_64){ +var _67=objj_msgSend(objj_msgSend(_CPThemeAttribute,"alloc"),"initWithName:defaultValue:",_name,_defaultValue); +_67._values=objj_msgSend(_values,"copy"); +objj_msgSend(_67._values,"addEntriesFromDictionary:",_66._values); +return _67; +} +})]); +var _3=objj_getClass("_CPThemeAttribute"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"_CPThemeAttribute\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("initWithCoder:"),function(_68,_69,_6a){ +with(_68){ +_68=objj_msgSendSuper({receiver:_68,super_class:objj_getClass("CPObject")},"init"); +if(_68){ +_cache={}; +_name=objj_msgSend(_6a,"decodeObjectForKey:","name"); +_values=objj_msgSend(CPDictionary,"dictionary"); +if(objj_msgSend(_6a,"containsValueForKey:","value")){ +var _6b=CPThemeStateNormal; +if(objj_msgSend(_6a,"containsValueForKey:","state")){ +_6b=CPThemeState(objj_msgSend(_6a,"decodeObjectForKey:","state")); +} +objj_msgSend(_values,"setObject:forKey:",objj_msgSend(_6a,"decodeObjectForKey:","value"),_6b); +}else{ +var _6c=objj_msgSend(_6a,"decodeObjectForKey:","values"),_6d=objj_msgSend(_6c,"allKeys"),_6e=_6d.length; +while(_6e--){ +var key=_6d[_6e]; +objj_msgSend(_values,"setObject:forKey:",objj_msgSend(_6c,"objectForKey:",key),CPThemeState(key)); +} +} +} +return _68; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_70,_71,_72){ +with(_70){ +objj_msgSend(_72,"encodeObject:forKey:",_name,"name"); +var _73=objj_msgSend(_values,"allKeys"),_74=_73.length; +if(_74===1){ +var _75=_73[0]; +if(Number(_75)!==CPThemeStateNormal){ +objj_msgSend(_72,"encodeObject:forKey:",CPThemeStateName(Number(_75)),"state"); +} +objj_msgSend(_72,"encodeObject:forKey:",objj_msgSend(_values,"objectForKey:",_75),"value"); +}else{ +var _76=objj_msgSend(CPDictionary,"dictionary"); +while(_74--){ +var key=_73[_74]; +objj_msgSend(_76,"setObject:forKey:",objj_msgSend(_values,"objectForKey:",key),CPThemeStateName(Number(key))); +} +objj_msgSend(_72,"encodeObject:forKey:",_76,"values"); +} +} +})]); +var _5f=[0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6]; +var _60=function(_78){ +var _79=0,_7a=_78; +while(_78){ +++_79; +_78&=(_78-1); +} +_5f[_7a]=_79; +return _79; +}; +_60.displayName="numberOfOnes"; +CPThemeAttributeEncode=function(_7b,_7c){ +var _7d=_7c._values,_7e=objj_msgSend(_7d,"count"),key="$a"+objj_msgSend(_7c,"name"); +if(_7e===1){ +var _80=objj_msgSend(_7d,"allKeys")[0]; +if(Number(_80)===0){ +objj_msgSend(_7b,"encodeObject:forKey:",objj_msgSend(_7d,"objectForKey:",_80),key); +return YES; +} +} +if(_7e>=1){ +objj_msgSend(_7b,"encodeObject:forKey:",_7c,key); +return YES; +} +return NO; +}; +CPThemeAttributeDecode=function(_81,_82,_83,_84,_85){ +var key="$a"+_82; +if(!objj_msgSend(_81,"containsValueForKey:",key)){ +var _87=objj_msgSend(objj_msgSend(_CPThemeAttribute,"alloc"),"initWithName:defaultValue:",_82,_83); +}else{ +var _87=objj_msgSend(_81,"decodeObjectForKey:",key); +if(!_87.isa||!objj_msgSend(_87,"isKindOfClass:",objj_msgSend(_CPThemeAttribute,"class"))){ +var _88=objj_msgSend(objj_msgSend(_CPThemeAttribute,"alloc"),"initWithName:defaultValue:",_82,_83); +objj_msgSend(_88,"setValue:",_87); +_87=_88; +} +} +if(_84&&_85){ +objj_msgSend(_87,"setParentAttribute:",objj_msgSend(_84,"_attributeWithName:forClass:",_82,_85)); +} +return _87; +}; +p;14;CPThemeBlend.jI;21;Foundation/CPObject.jI;16;AppKit/CPTheme.jI;29;AppKit/_CPCibCustomResource.jI;30;AppKit/_CPCibKeyedUnarchiver.jc;1452; +var _1=objj_allocateClassPair(CPObject,"CPThemeBlend"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_bundle"),new objj_ivar("_themes"),new objj_ivar("_loadDelegate")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("themes"),function(_3,_4){ +with(_3){ +return _themes; +} +}),new objj_method(sel_getUid("initWithContentsOfURL:"),function(_5,_6,_7){ +with(_5){ +_5=objj_msgSendSuper({receiver:_5,super_class:objj_getClass("CPObject")},"init"); +if(_5){ +_bundle=objj_msgSend(objj_msgSend(CPBundle,"alloc"),"initWithPath:",_7+"/Info.plist"); +} +return _5; +} +}),new objj_method(sel_getUid("loadWithDelegate:"),function(_8,_9,_a){ +with(_8){ +_loadDelegate=_a; +objj_msgSend(_bundle,"loadWithDelegate:",_8); +} +}),new objj_method(sel_getUid("bundleDidFinishLoading:"),function(_b,_c,_d){ +with(_b){ +var _e=objj_msgSend(_bundle,"objectForInfoDictionaryKey:","CPBundleReplacedFiles"),_f=0,_10=_e.length,_11=objj_msgSend(_bundle,"bundlePath"); +while(_10--){ +var _12=_e[_10]; +if(objj_msgSend(_12,"pathExtension")==="keyedtheme"){ +var _13=objj_msgSend(objj_msgSend(_CPThemeKeyedUnarchiver,"alloc"),"initForReadingWithData:bundle:",objj_msgSend(CPData,"dataWithString:",objj_files[_11+"/"+_12].contents),_bundle); +objj_msgSend(_13,"decodeObjectForKey:","root"); +objj_msgSend(_13,"finishDecoding"); +} +} +objj_msgSend(_loadDelegate,"blendDidFinishLoading:",_b); +} +})]); +p;11;CPToolbar.jI;21;Foundation/CPObject.ji;15;CPPopUpButton.ji;15;CPToolbarItem.jc;17238; +CPToolbarDisplayModeDefault=0; +CPToolbarDisplayModeIconAndLabel=1; +CPToolbarDisplayModeIconOnly=2; +CPToolbarDisplayModeLabelOnly=3; +var _1=nil; +var _2=nil; +var _3=objj_allocateClassPair(CPObject,"CPToolbar"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_identifier"),new objj_ivar("_displayMode"),new objj_ivar("_showsBaselineSeparator"),new objj_ivar("_allowsUserCustomization"),new objj_ivar("_isVisible"),new objj_ivar("_delegate"),new objj_ivar("_itemIdentifiers"),new objj_ivar("_identifiedItems"),new objj_ivar("_defaultItems"),new objj_ivar("_allowedItems"),new objj_ivar("_selectableItems"),new objj_ivar("_items"),new objj_ivar("_itemsSortedByVisibilityPriority"),new objj_ivar("_toolbarView"),new objj_ivar("_window")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initWithIdentifier:"),function(_5,_6,_7){ +with(_5){ +_5=objj_msgSendSuper({receiver:_5,super_class:objj_getClass("CPObject")},"init"); +if(_5){ +_items=[]; +_identifier=_7; +_isVisible=YES; +objj_msgSend(CPToolbar,"_addToolbar:forIdentifier:",_5,_identifier); +} +return _5; +} +}),new objj_method(sel_getUid("setDisplayMode:"),function(_8,_9,_a){ +with(_8){ +} +}),new objj_method(sel_getUid("identifier"),function(_b,_c){ +with(_b){ +return _identifier; +} +}),new objj_method(sel_getUid("delegate"),function(_d,_e){ +with(_d){ +return _delegate; +} +}),new objj_method(sel_getUid("isVisible"),function(_f,_10){ +with(_f){ +return _isVisible; +} +}),new objj_method(sel_getUid("setVisible:"),function(_11,_12,_13){ +with(_11){ +if(_isVisible===_13){ +return; +} +_isVisible=_13; +objj_msgSend(_window,"_noteToolbarChanged"); +} +}),new objj_method(sel_getUid("_window"),function(_14,_15){ +with(_14){ +return _window; +} +}),new objj_method(sel_getUid("_setWindow:"),function(_16,_17,_18){ +with(_16){ +_window=_18; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_19,_1a,_1b){ +with(_19){ +if(_delegate==_1b){ +return; +} +_delegate=_1b; +objj_msgSend(_19,"_reloadToolbarItems"); +} +}),new objj_method(sel_getUid("_loadConfiguration"),function(_1c,_1d){ +with(_1c){ +} +}),new objj_method(sel_getUid("_toolbarView"),function(_1e,_1f){ +with(_1e){ +if(!_toolbarView){ +_toolbarView=objj_msgSend(objj_msgSend(_CPToolbarView,"alloc"),"initWithFrame:",CPRectMake(0,0,1200,59)); +objj_msgSend(_toolbarView,"setToolbar:",_1e); +objj_msgSend(_toolbarView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_toolbarView,"reloadToolbarItems"); +} +return _toolbarView; +} +}),new objj_method(sel_getUid("_reloadToolbarItems"),function(_20,_21){ +with(_20){ +if(!_delegate){ +return; +} +var _22=objj_msgSend(_itemIdentifiers,"count"); +if(!_22){ +_itemIdentifiers=objj_msgSend(objj_msgSend(_delegate,"toolbarDefaultItemIdentifiers:",_20),"mutableCopy"); +_22=objj_msgSend(_itemIdentifiers,"count"); +} +_items=[]; +var _23=0; +for(;_23<_22;++_23){ +var _24=_itemIdentifiers[_23],_25=objj_msgSend(CPToolbarItem,"_standardItemWithItemIdentifier:",_24); +if(!_25){ +_25=objj_msgSend(_delegate,"toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:",_20,_24,YES); +} +_25=objj_msgSend(_25,"copy"); +if(_25==nil){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,sprintf("_delegate %s returned nil toolbar item returned for identifier %s",_delegate,_24)); +} +objj_msgSend(_items,"addObject:",_25); +} +_itemsSortedByVisibilityPriority=objj_msgSend(_items,"sortedArrayUsingFunction:context:",_26,NULL); +objj_msgSend(_toolbarView,"reloadToolbarItems"); +} +}),new objj_method(sel_getUid("items"),function(_27,_28){ +with(_27){ +return _items; +} +}),new objj_method(sel_getUid("visibleItems"),function(_29,_2a){ +with(_29){ +return objj_msgSend(_toolbarView,"visibleItems"); +} +}),new objj_method(sel_getUid("itemsSortedByVisibilityPriority"),function(_2b,_2c){ +with(_2b){ +return _itemsSortedByVisibilityPriority; +} +}),new objj_method(sel_getUid("_itemForItemIdentifier:willBeInsertedIntoToolbar:"),function(_2d,_2e,_2f,_30){ +with(_2d){ +var _31=objj_msgSend(_identifiedItems,"objectForKey:",_2f); +if(!_31){ +_31=objj_msgSend(CPToolbarItem,"_standardItemWithItemIdentifier:",_2f); +if(_delegate&&!_31){ +_31=objj_msgSend(objj_msgSend(_delegate,"toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:",_2d,_2f,_30),"copy"); +if(!_31){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,sprintf("_delegate %s returned nil toolbar item returned for identifier %s",_delegate,_2f)); +} +} +objj_msgSend(_identifiedItems,"setObject:forKey:",_31,_2f); +} +return _31; +} +}),new objj_method(sel_getUid("_itemsWithIdentifiers:"),function(_32,_33,_34){ +with(_32){ +var _35=[]; +for(var i=0;i<_34.length;i++){ +objj_msgSend(_35,"addObject:",objj_msgSend(_32,"_itemForItemIdentifier:willBeInsertedIntoToolbar:",_34[i],NO)); +} +return _35; +} +}),new objj_method(sel_getUid("_defaultToolbarItems"),function(_37,_38){ +with(_37){ +if(!_defaultItems){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("toolbarDefaultItemIdentifiers:"))){ +_defaultItems=objj_msgSend(_37,"_itemsWithIdentifiers:",objj_msgSend(_delegate,"toolbarDefaultItemIdentifiers:",_37)); +} +} +return _defaultItems; +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("initialize"),function(_39,_3a){ +with(_39){ +if(_39!=objj_msgSend(CPToolbar,"class")){ +return; +} +_1=objj_msgSend(CPDictionary,"dictionary"); +_2=objj_msgSend(CPDictionary,"dictionary"); +} +}),new objj_method(sel_getUid("_addToolbar:forIdentifier:"),function(_3b,_3c,_3d,_3e){ +with(_3b){ +var _3f=objj_msgSend(_1,"objectForKey:",_3e); +if(!_3f){ +_3f=[]; +objj_msgSend(_1,"setObject:forKey:",_3f,_3e); +} +objj_msgSend(_3f,"addObject:",_3d); +} +})]); +var _40="CPToolbarIdentifierKey",_41="CPToolbarDisplayModeKey",_42="CPToolbarShowsBaselineSeparatorKey",_43="CPToolbarAllowsUserCustomizationKey",_44="CPToolbarIsVisibleKey",_45="CPToolbarDelegateKey",_46="CPToolbarIdentifiedItemsKey",_47="CPToolbarDefaultItemsKey",_48="CPToolbarAllowedItemsKey",_49="CPToolbarSelectableItemsKey"; +var _3=objj_getClass("CPToolbar"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPToolbar\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("initWithCoder:"),function(_4a,_4b,_4c){ +with(_4a){ +_4a=objj_msgSendSuper({receiver:_4a,super_class:objj_getClass("CPObject")},"init"); +if(_4a){ +_identifier=objj_msgSend(_4c,"decodeObjectForKey:",_40); +_displayMode=objj_msgSend(_4c,"decodeIntForKey:",_41); +_showsBaselineSeparator=objj_msgSend(_4c,"decodeBoolForKey:",_42); +_allowsUserCustomization=objj_msgSend(_4c,"decodeBoolForKey:",_43); +_isVisible=objj_msgSend(_4c,"decodeBoolForKey:",_44); +_identifiedItems=objj_msgSend(_4c,"decodeObjectForKey:",_46); +_defaultItems=objj_msgSend(_4c,"decodeObjectForKey:",_47); +_allowedItems=objj_msgSend(_4c,"decodeObjectForKey:",_48); +_selectableItems=objj_msgSend(_4c,"decodeObjectForKey:",_49); +_items=[]; +objj_msgSend(CPToolbar,"_addToolbar:forIdentifier:",_4a,_identifier); +objj_msgSend(_4a,"setDelegate:",objj_msgSend(_4c,"decodeObjectForKey:",_45)); +} +return _4a; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_4d,_4e,_4f){ +with(_4d){ +objj_msgSend(_4f,"encodeObject:forKey:",_identifier,_40); +objj_msgSend(_4f,"encodeInt:forKey:",_displayMode,_41); +objj_msgSend(_4f,"encodeBool:forKey:",_showsBaselineSeparator,_42); +objj_msgSend(_4f,"encodeBool:forKey:",_allowsUserCustomization,_43); +objj_msgSend(_4f,"encodeBool:forKey:",_isVisible,_44); +objj_msgSend(_4f,"encodeObject:forKey:",_identifiedItems,_46); +objj_msgSend(_4f,"encodeObject:forKey:",_defaultItems,_47); +objj_msgSend(_4f,"encodeObject:forKey:",_allowedItems,_48); +objj_msgSend(_4f,"encodeObject:forKey:",_selectableItems,_49); +objj_msgSend(_4f,"encodeConditionalObject:forKey:",_delegate,_45); +} +})]); +var _50=nil,_51=nil,_52=nil; +var _53=5,_54=10,_55=20; +var _56=function(_57,_58,_59,_5a){ +return {index:_57,view:_58,label:_59,minWidth:_5a}; +}; +var _3=objj_allocateClassPair(CPView,"_CPToolbarView"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_toolbar"),new objj_ivar("_flexibleWidthIndexes"),new objj_ivar("_visibleFlexibleWidthIndexes"),new objj_ivar("_itemInfos"),new objj_ivar("_visibleItems"),new objj_ivar("_invisibleItems"),new objj_ivar("_additionalItemsButton"),new objj_ivar("_labelColor"),new objj_ivar("_labelShadowColor"),new objj_ivar("_minWidth")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initWithFrame:"),function(_5b,_5c,_5d){ +with(_5b){ +_5b=objj_msgSendSuper({receiver:_5b,super_class:objj_getClass("CPView")},"initWithFrame:",_5d); +if(_5b){ +_minWidth=0; +_labelColor=objj_msgSend(CPColor,"blackColor"); +_labelShadowColor=objj_msgSend(CPColor,"colorWithWhite:alpha:",1,0.75); +_additionalItemsButton=objj_msgSend(objj_msgSend(CPPopUpButton,"alloc"),"initWithFrame:pullsDown:",CGRectMake(0,0,10,15),YES); +objj_msgSend(_additionalItemsButton,"setBordered:",NO); +objj_msgSend(_additionalItemsButton,"setImagePosition:",CPImageOnly); +objj_msgSend(objj_msgSend(_additionalItemsButton,"menu"),"setShowsStateColumn:",NO); +objj_msgSend(_additionalItemsButton,"setAlternateImage:",_52); +} +return _5b; +} +}),new objj_method(sel_getUid("setToolbar:"),function(_5e,_5f,_60){ +with(_5e){ +_toolbar=_60; +} +}),new objj_method(sel_getUid("toolbar"),function(_61,_62){ +with(_61){ +return _toolbar; +} +}),new objj_method(sel_getUid("setLabelColor:"),function(_63,_64,_65){ +with(_63){ +if(_labelColor===_65){ +return; +} +_labelColor=_65; +var _66=objj_msgSend(_toolbar,"items"),_67=objj_msgSend(_66,"count"); +while(_67--){ +objj_msgSend(objj_msgSend(_63,"labelForItem:",_66[_67]),"setTextColor:",_labelColor); +} +} +}),new objj_method(sel_getUid("setLabelShadowColor:"),function(_68,_69,_6a){ +with(_68){ +if(_labelShadowColor===_6a){ +return; +} +_labelShadowColor=_6a; +var _6b=objj_msgSend(_toolbar,"items"),_6c=objj_msgSend(_6b,"count"); +while(_6c--){ +objj_msgSend(objj_msgSend(_68,"labelForItem:",_6b[_6c]),"setTextShadowColor:",_labelShadowColor); +} +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_6d,_6e,_6f){ +with(_6d){ +objj_msgSend(_6d,"layoutSubviews"); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_70,_71){ +with(_70){ +var _72=objj_msgSend(_toolbar,"items"),_73=CGRectGetWidth(objj_msgSend(_70,"bounds")),_74=_minWidth,_75=objj_msgSend(CPIndexSet,"indexSet"),_76=[]; +_visibleItems=_72; +if(_73<_74){ +_73-=_55; +_visibleItems=objj_msgSend(_visibleItems,"copy"); +var _77=objj_msgSend(_toolbar,"itemsSortedByVisibilityPriority"),_78=_77.length; +while(_74>_73){ +var _79=_77[_78--]; +_74-=objj_msgSend(_70,"minWidthForItem:",_79)+_54; +objj_msgSend(_visibleItems,"removeObjectIdenticalTo:",_79); +objj_msgSend(_76,"addObject:",_79); +objj_msgSend(objj_msgSend(_70,"viewForItem:",_79),"setHidden:",YES); +objj_msgSend(objj_msgSend(_70,"labelForItem:",_79),"setHidden:",YES); +} +} +var _7a=_visibleItems.length,_7b=0; +while(_7a--){ +var _79=_visibleItems[_7a],_7c=objj_msgSend(_79,"minSize"),_7d=objj_msgSend(_70,"viewForItem:",_79); +if(_7c.width!=objj_msgSend(_79,"maxSize").width){ +objj_msgSend(_75,"addIndex:",_7a); +}else{ +objj_msgSend(_7d,"setFrameSize:",CGSizeMake(objj_msgSend(_79,"minSize").width,CGRectGetHeight(objj_msgSend(_7d,"frame")))); +} +objj_msgSend(_7d,"setHidden:",NO); +objj_msgSend(objj_msgSend(_70,"labelForItem:",_79),"setHidden:",NO); +if(_7b<_7c.height){ +_7b=_7c.height; +} +} +var _7e=_73-_74,_7f=0; +while(_7e&&objj_msgSend(_75,"count")){ +_7f+=_7e/objj_msgSend(_75,"count"); +_7e=0; +var _7a=CPNotFound; +while((_7a=objj_msgSend(_75,"indexGreaterThanIndex:",_7a))!=CPNotFound){ +var _79=_visibleItems[_7a]; +_7d=objj_msgSend(_70,"viewForItem:",_79),_80=objj_msgSend(_7d,"frame"),proposedWidth=objj_msgSend(_79,"minSize").width+_7f,constrainedWidth=MIN(proposedWidth,objj_msgSend(_79,"maxSize").width); +if(constrainedWidth_a7){ +return CPOrderedAscending; +} +return CPOrderedDescending; +}; +p;15;CPToolbarItem.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jI;16;AppKit/CPImage.jI;15;AppKit/CPView.jc;9705; +CPToolbarItemVisibilityPriorityStandard=0; +CPToolbarItemVisibilityPriorityLow=-1000; +CPToolbarItemVisibilityPriorityHigh=1000; +CPToolbarItemVisibilityPriorityUser=2000; +CPToolbarSeparatorItemIdentifier="CPToolbarSeparatorItemIdentifier"; +CPToolbarSpaceItemIdentifier="CPToolbarSpaceItemIdentifier"; +CPToolbarFlexibleSpaceItemIdentifier="CPToolbarFlexibleSpaceItemIdentifier"; +CPToolbarShowColorsItemIdentifier="CPToolbarShowColorsItemIdentifier"; +CPToolbarShowFontsItemIdentifier="CPToolbarShowFontsItemIdentifier"; +CPToolbarCustomizeToolbarItemIdentifier="CPToolbarCustomizeToolbarItemIdentifier"; +CPToolbarPrintItemIdentifier="CPToolbarPrintItemIdentifier"; +var _1=objj_allocateClassPair(CPObject,"CPToolbarItem"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_itemIdentifier"),new objj_ivar("_toolbar"),new objj_ivar("_label"),new objj_ivar("_paletteLabel"),new objj_ivar("_toolTip"),new objj_ivar("_tag"),new objj_ivar("_target"),new objj_ivar("_action"),new objj_ivar("_isEnabled"),new objj_ivar("_image"),new objj_ivar("_alternateImage"),new objj_ivar("_view"),new objj_ivar("_minSize"),new objj_ivar("_maxSize"),new objj_ivar("_visibilityPriority")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithItemIdentifier:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_itemIdentifier=_5; +_tag=0; +_isEnabled=YES; +_minSize=CGSizeMakeZero(); +_maxSize=CGSizeMakeZero(); +_visibilityPriority=CPToolbarItemVisibilityPriorityStandard; +} +return _3; +} +}),new objj_method(sel_getUid("itemIdentifier"),function(_6,_7){ +with(_6){ +return _itemIdentifier; +} +}),new objj_method(sel_getUid("toolbar"),function(_8,_9){ +with(_8){ +return _toolbar; +} +}),new objj_method(sel_getUid("label"),function(_a,_b){ +with(_a){ +return _label; +} +}),new objj_method(sel_getUid("setLabel:"),function(_c,_d,_e){ +with(_c){ +_label=_e; +} +}),new objj_method(sel_getUid("paletteLabel"),function(_f,_10){ +with(_f){ +return _paletteLabel; +} +}),new objj_method(sel_getUid("setPaletteLabel:"),function(_11,_12,_13){ +with(_11){ +_paletteLabel=_13; +} +}),new objj_method(sel_getUid("toolTip"),function(_14,_15){ +with(_14){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("toolTip"))){ +return objj_msgSend(_view,"toolTip"); +} +return _toolTip; +} +}),new objj_method(sel_getUid("setToolTip:"),function(_16,_17,_18){ +with(_16){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setToolTip:"))){ +objj_msgSend(view,"setToolTip:",_18); +} +_toolTip=_18; +} +}),new objj_method(sel_getUid("tag"),function(_19,_1a){ +with(_19){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("tag"))){ +return objj_msgSend(_view,"tag"); +} +return _tag; +} +}),new objj_method(sel_getUid("setTag:"),function(_1b,_1c,_1d){ +with(_1b){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setTag:"))){ +objj_msgSend(_view,"setTag:",_1d); +} +_tag=_1d; +} +}),new objj_method(sel_getUid("target"),function(_1e,_1f){ +with(_1e){ +if(_view){ +return objj_msgSend(_view,"respondsToSelector:",sel_getUid("target"))?objj_msgSend(_view,"target"):nil; +} +return _target; +} +}),new objj_method(sel_getUid("setTarget:"),function(_20,_21,_22){ +with(_20){ +if(!_view){ +_target=_22; +}else{ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setTarget:"))){ +objj_msgSend(_view,"setTarget:",_22); +} +} +} +}),new objj_method(sel_getUid("action"),function(_23,_24){ +with(_23){ +if(_view){ +return objj_msgSend(_view,"respondsToSelector:",sel_getUid("action"))?objj_msgSend(_view,"action"):nil; +} +return _action; +} +}),new objj_method(sel_getUid("setAction:"),function(_25,_26,_27){ +with(_25){ +if(!_view){ +_action=_27; +}else{ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setAction:"))){ +objj_msgSend(_view,"setAction:",_27); +} +} +} +}),new objj_method(sel_getUid("isEnabled"),function(_28,_29){ +with(_28){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("isEnabled"))){ +return objj_msgSend(_view,"isEnabled"); +} +return _isEnabled; +} +}),new objj_method(sel_getUid("setEnabled:"),function(_2a,_2b,_2c){ +with(_2a){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setEnabled:"))){ +objj_msgSend(_view,"setEnabled:",_2c); +} +_isEnabled=_2c; +} +}),new objj_method(sel_getUid("image"),function(_2d,_2e){ +with(_2d){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("image"))){ +return objj_msgSend(_view,"image"); +} +return _image; +} +}),new objj_method(sel_getUid("setImage:"),function(_2f,_30,_31){ +with(_2f){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setImage:"))){ +objj_msgSend(_view,"setImage:",_31); +} +_image=_31; +if(!_image){ +return; +} +if(_minSize.width==0&&_minSize.height==0&&_maxSize.width==0&&_maxSize.height==0){ +var _32=objj_msgSend(_image,"size"); +if(_32.width>0||_32.height>0){ +objj_msgSend(_2f,"setMinSize:",_32); +objj_msgSend(_2f,"setMaxSize:",_32); +} +} +} +}),new objj_method(sel_getUid("setAlternateImage:"),function(_33,_34,_35){ +with(_33){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setAlternateImage:"))){ +objj_msgSend(_view,"setAlternateImage:",_35); +} +_alternateImage=_35; +} +}),new objj_method(sel_getUid("alternateImage"),function(_36,_37){ +with(_36){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("alternateIamge"))){ +return objj_msgSend(_view,"alternateImage"); +} +return _alternateImage; +} +}),new objj_method(sel_getUid("view"),function(_38,_39){ +with(_38){ +return _view; +} +}),new objj_method(sel_getUid("setView:"),function(_3a,_3b,_3c){ +with(_3a){ +if(_view==_3c){ +return; +} +_view=_3c; +if(_view){ +if(_tag!==0&&objj_msgSend(_view,"respondsToSelector:",sel_getUid("setTag:"))){ +objj_msgSend(_view,"setTag:",_tag); +} +_target=nil; +_action=nil; +} +} +}),new objj_method(sel_getUid("minSize"),function(_3d,_3e){ +with(_3d){ +return _minSize; +} +}),new objj_method(sel_getUid("setMinSize:"),function(_3f,_40,_41){ +with(_3f){ +_minSize=CGSizeMakeCopy(_41); +_maxSize=CGSizeMake(MAX(_minSize.width,_maxSize.width),MAX(_minSize.height,_maxSize.height)); +} +}),new objj_method(sel_getUid("maxSize"),function(_42,_43){ +with(_42){ +return _maxSize; +} +}),new objj_method(sel_getUid("setMaxSize:"),function(_44,_45,_46){ +with(_44){ +_maxSize=CGSizeMakeCopy(_46); +_minSize=CGSizeMake(MIN(_minSize.width,_maxSize.width),MIN(_minSize.height,_maxSize.height)); +} +}),new objj_method(sel_getUid("visibilityPriority"),function(_47,_48){ +with(_47){ +return _visibilityPriority; +} +}),new objj_method(sel_getUid("setVisibilityPriority:"),function(_49,_4a,_4b){ +with(_49){ +_visibilityPriority=_4b; +} +})]); +var _1=objj_getClass("CPToolbarItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPToolbarItem\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("copy"),function(_4c,_4d){ +with(_4c){ +var _4e=objj_msgSend(objj_msgSend(objj_msgSend(_4c,"class"),"alloc"),"initWithItemIdentifier:",_itemIdentifier); +if(_view){ +objj_msgSend(_4e,"setView:",objj_msgSend(CPKeyedUnarchiver,"unarchiveObjectWithData:",objj_msgSend(CPKeyedArchiver,"archivedDataWithRootObject:",_view))); +} +objj_msgSend(_4e,"setLabel:",_label); +objj_msgSend(_4e,"setPaletteLabel:",_paletteLabel); +objj_msgSend(_4e,"setToolTip:",objj_msgSend(_4c,"toolTip")); +objj_msgSend(_4e,"setTag:",objj_msgSend(_4c,"tag")); +objj_msgSend(_4e,"setTarget:",objj_msgSend(_4c,"target")); +objj_msgSend(_4e,"setAction:",objj_msgSend(_4c,"action")); +objj_msgSend(_4e,"setEnabled:",objj_msgSend(_4c,"isEnabled")); +objj_msgSend(_4e,"setImage:",objj_msgSend(_4c,"image")); +objj_msgSend(_4e,"setAlternateImage:",objj_msgSend(_4c,"alternateImage")); +objj_msgSend(_4e,"setMinSize:",_minSize); +objj_msgSend(_4e,"setMaxSize:",_maxSize); +objj_msgSend(_4e,"setVisibilityPriority:",_visibilityPriority); +return _4e; +} +})]); +var _4f=nil,_50=nil; +var _1=objj_getClass("CPToolbarItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPToolbarItem\"")); +} +var _2=_1.isa; +class_addMethods(_2,[new objj_method(sel_getUid("_separatorItemView"),function(_51,_52){ +with(_51){ +if(!_4f){ +_4f=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,0,2,32)); +sizes={}; +sizes["CPToolbarItemSeparator"]=[CGSizeMake(2,26),CGSizeMake(2,1),CGSizeMake(2,26)]; +objj_msgSend(_4f,"setBackgroundColor:",_CPControlThreePartImagePattern(YES,sizes,"CPToolbarItem","Separator")); +} +return _4f; +} +}),new objj_method(sel_getUid("_spaceItemView"),function(_53,_54){ +with(_53){ +if(!_50){ +_50=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMakeZero()); +} +return _50; +} +}),new objj_method(sel_getUid("_standardItemWithItemIdentifier:"),function(_55,_56,_57){ +with(_55){ +var _58=objj_msgSend(objj_msgSend(CPToolbarItem,"alloc"),"initWithItemIdentifier:",_57); +switch(_57){ +case CPToolbarSeparatorItemIdentifier: +objj_msgSend(_58,"setView:",objj_msgSend(_55,"_separatorItemView")); +objj_msgSend(_58,"setMinSize:",CGSizeMake(2,0)); +objj_msgSend(_58,"setMaxSize:",CGSizeMake(2,100000)); +return _58; +case CPToolbarSpaceItemIdentifier: +objj_msgSend(_58,"setView:",objj_msgSend(_55,"_spaceItemView")); +objj_msgSend(_58,"setMinSize:",CGSizeMake(32,32)); +objj_msgSend(_58,"setMaxSize:",CGSizeMake(32,32)); +return _58; +case CPToolbarFlexibleSpaceItemIdentifier: +objj_msgSend(_58,"setView:",objj_msgSend(_55,"_spaceItemView")); +objj_msgSend(_58,"setMinSize:",CGSizeMake(32,32)); +objj_msgSend(_58,"setMaxSize:",CGSizeMake(10000,32)); +return _58; +case CPToolbarShowColorsItemIdentifier: +return nil; +case CPToolbarShowFontsItemIdentifier: +return nil; +case CPToolbarCustomizeToolbarItemIdentifier: +return nil; +case CPToolbarPrintItemIdentifier: +return nil; +} +return nil; +} +})]); +p;8;CPView.jI;20;Foundation/CPArray.jI;26;Foundation/CPObjJRuntime.ji;19;CGAffineTransform.ji;12;CGGeometry.ji;9;CPColor.ji;20;CPDOMDisplayServer.ji;12;CPGeometry.ji;19;CPGraphicsContext.ji;13;CPResponder.ji;9;CPTheme.jc;65549; +CPViewNotSizable=0; +CPViewMinXMargin=1; +CPViewWidthSizable=2; +CPViewMaxXMargin=4; +CPViewMinYMargin=8; +CPViewHeightSizable=16; +CPViewMaxYMargin=32; +CPViewBoundsDidChangeNotification="CPViewBoundsDidChangeNotification"; +CPViewFrameDidChangeNotification="CPViewFrameDidChangeNotification"; +var _1=nil,_2=nil; +var _3=nil,_4=0,_5=1,_6=2,_7=3,_8={},_9={}; +var _a=objj_allocateClassPair(CPResponder,"CPView"),_b=_a.isa; +class_addIvars(_a,[new objj_ivar("_window"),new objj_ivar("_superview"),new objj_ivar("_subviews"),new objj_ivar("_graphicsContext"),new objj_ivar("_tag"),new objj_ivar("_frame"),new objj_ivar("_bounds"),new objj_ivar("_boundsTransform"),new objj_ivar("_inverseBoundsTransform"),new objj_ivar("_registeredDraggedTypes"),new objj_ivar("_registeredDraggedTypesArray"),new objj_ivar("_isHidden"),new objj_ivar("_hitTests"),new objj_ivar("_postsFrameChangedNotifications"),new objj_ivar("_postsBoundsChangedNotifications"),new objj_ivar("_inhibitFrameAndBoundsChangedNotifications"),new objj_ivar("_displayHash"),new objj_ivar("_DOMElement"),new objj_ivar("_DOMContentsElement"),new objj_ivar("_DOMImageParts"),new objj_ivar("_DOMImageSizes"),new objj_ivar("_backgroundType"),new objj_ivar("_dirtyRect"),new objj_ivar("_opacity"),new objj_ivar("_backgroundColor"),new objj_ivar("_autoresizesSubviews"),new objj_ivar("_autoresizingMask"),new objj_ivar("_layer"),new objj_ivar("_wantsLayer"),new objj_ivar("_isInFullScreenMode"),new objj_ivar("_fullScreenModeState"),new objj_ivar("_needsLayout"),new objj_ivar("_ephemeralSubviews"),new objj_ivar("_theme"),new objj_ivar("_themeAttributes"),new objj_ivar("_themeState"),new objj_ivar("_nextKeyView"),new objj_ivar("_previousKeyView")]); +objj_registerClassPair(_a); +objj_addClassForBundle(_a,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_a,[new objj_method(sel_getUid("init"),function(_c,_d){ +with(_c){ +return objj_msgSend(_c,"initWithFrame:",CGRectMakeZero()); +} +}),new objj_method(sel_getUid("initWithFrame:"),function(_e,_f,_10){ +with(_e){ +_e=objj_msgSendSuper({receiver:_e,super_class:objj_getClass("CPResponder")},"init"); +if(_e){ +var _11=(_10.size.width),_12=(_10.size.height); +_subviews=[]; +_registeredDraggedTypes=objj_msgSend(CPSet,"set"); +_registeredDraggedTypesArray=[]; +_tag=-1; +_frame={origin:{x:_10.origin.x,y:_10.origin.y},size:{width:_10.size.width,height:_10.size.height}}; +_bounds={origin:{x:0,y:0},size:{width:_11,height:_12}}; +_autoresizingMask=CPViewNotSizable; +_autoresizesSubviews=YES; +_opacity=1; +_isHidden=NO; +_hitTests=YES; +_displayHash=objj_msgSend(_e,"hash"); +_DOMElement=_3.cloneNode(false); +if(!_DOMElement.CPDOMDisplayContext){ +_DOMElement.CPDOMDisplayContext=[]; +} +var _13=_DOMElement.CPDOMDisplayContext[0]; +if(!(_13>=0)){ +_13=_DOMElement.CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_13]=0; +CPDOMDisplayServerInstructions[_13+1]=_DOMElement; +CPDOMDisplayServerInstructions[_13+2]=NULL; +CPDOMDisplayServerInstructions[_13+3]=(_10.origin.x); +CPDOMDisplayServerInstructions[_13+4]=(_10.origin.y); +if(!_DOMElement.CPDOMDisplayContext){ +_DOMElement.CPDOMDisplayContext=[]; +} +var _13=_DOMElement.CPDOMDisplayContext[4]; +if(!(_13>=0)){ +_13=_DOMElement.CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_13]=4; +CPDOMDisplayServerInstructions[_13+1]=_DOMElement; +CPDOMDisplayServerInstructions[_13+2]=_11; +CPDOMDisplayServerInstructions[_13+3]=_12; +_DOMImageParts=[]; +_DOMImageSizes=[]; +_theme=objj_msgSend(CPTheme,"defaultTheme"); +_themeState=CPThemeStateNormal; +objj_msgSend(_e,"_loadThemeAttributes"); +} +return _e; +} +}),new objj_method(sel_getUid("superview"),function(_14,_15){ +with(_14){ +return _superview; +} +}),new objj_method(sel_getUid("subviews"),function(_16,_17){ +with(_16){ +return _subviews; +} +}),new objj_method(sel_getUid("window"),function(_18,_19){ +with(_18){ +return _window; +} +}),new objj_method(sel_getUid("addSubview:"),function(_1a,_1b,_1c){ +with(_1a){ +objj_msgSend(_1a,"_insertSubview:atIndex:",_1c,CPNotFound); +} +}),new objj_method(sel_getUid("addSubview:positioned:relativeTo:"),function(_1d,_1e,_1f,_20,_21){ +with(_1d){ +var _22=_21?objj_msgSend(_subviews,"indexOfObjectIdenticalTo:",_21):CPNotFound; +if(_22===CPNotFound){ +_22=(_20===CPWindowAbove)?objj_msgSend(_subviews,"count"):0; +}else{ +if(_20===CPWindowAbove){ +++_22; +} +} +objj_msgSend(_1d,"_insertSubview:atIndex:",_1f,_22); +} +}),new objj_method(sel_getUid("_insertSubview:atIndex:"),function(_23,_24,_25,_26){ +with(_23){ +var _27=_subviews.length; +objj_msgSend(objj_msgSend(_23,"window"),"_dirtyKeyViewLoop"); +if(_25._superview==_23){ +var _28=objj_msgSend(_subviews,"indexOfObjectIdenticalTo:",_25); +if(_28===_26||_28===_27-1&&_26===_27){ +return; +} +objj_msgSend(_subviews,"removeObjectAtIndex:",_28); +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=8; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_25._DOMElement; +if(_26>_28){ +--_26; +} +--_27; +}else{ +objj_msgSend(_25,"removeFromSuperview"); +objj_msgSend(_25,"_setWindow:",_window); +objj_msgSend(_25,"viewWillMoveToSuperview:",_23); +_25._superview=_23; +} +if(_26===CPNotFound||_26>=_27){ +_subviews.push(_25); +if(_25._DOMElement.CPDOMDisplayContext){ +_25._DOMElement.CPDOMDisplayContext[0]=-1; +} +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=6; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_25._DOMElement; +}else{ +_subviews.splice(_26,0,_25); +if(_25._DOMElement.CPDOMDisplayContext){ +_25._DOMElement.CPDOMDisplayContext[0]=-1; +} +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=7; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_25._DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_subviews[_26+1]._DOMElement; +} +objj_msgSend(_25,"setNextResponder:",_23); +objj_msgSend(_25,"viewDidMoveToSuperview"); +objj_msgSend(_23,"didAddSubview:",_25); +} +}),new objj_method(sel_getUid("didAddSubview:"),function(_29,_2a,_2b){ +with(_29){ +} +}),new objj_method(sel_getUid("removeFromSuperview"),function(_2c,_2d){ +with(_2c){ +if(!_superview){ +return; +} +objj_msgSend(objj_msgSend(_2c,"window"),"_dirtyKeyViewLoop"); +objj_msgSend(_superview,"willRemoveSubview:",_2c); +objj_msgSend(objj_msgSend(_superview,"subviews"),"removeObject:",_2c); +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=8; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_superview._DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +_superview=nil; +objj_msgSend(_2c,"_setWindow:",nil); +} +}),new objj_method(sel_getUid("replaceSubview:with:"),function(_2e,_2f,_30,_31){ +with(_2e){ +if(_30._superview!=_2e){ +return; +} +var _32=objj_msgSend(_subviews,"indexOfObjectIdenticalTo:",_30); +objj_msgSend(_30,"removeFromSuperview"); +objj_msgSend(_2e,"_insertSubview:atIndex:",_31,_32); +} +}),new objj_method(sel_getUid("_setWindow:"),function(_33,_34,_35){ +with(_33){ +if(_window===_35){ +return; +} +objj_msgSend(objj_msgSend(_33,"window"),"_dirtyKeyViewLoop"); +if(objj_msgSend(_window,"firstResponder")===_33){ +objj_msgSend(_window,"makeFirstResponder:",nil); +} +objj_msgSend(_33,"viewWillMoveToWindow:",_35); +if(_registeredDraggedTypes){ +objj_msgSend(_window,"_noteUnregisteredDraggedTypes:",_registeredDraggedTypes); +objj_msgSend(_35,"_noteRegisteredDraggedTypes:",_registeredDraggedTypes); +} +_window=_35; +var _36=objj_msgSend(_subviews,"count"); +while(_36--){ +objj_msgSend(_subviews[_36],"_setWindow:",_35); +} +objj_msgSend(_33,"viewDidMoveToWindow"); +objj_msgSend(objj_msgSend(_33,"window"),"_dirtyKeyViewLoop"); +} +}),new objj_method(sel_getUid("isDescendantOf:"),function(_37,_38,_39){ +with(_37){ +var _3a=_37; +do{ +if(_3a==_39){ +return YES; +} +}while(_3a=objj_msgSend(_3a,"superview")); +return NO; +} +}),new objj_method(sel_getUid("viewDidMoveToSuperview"),function(_3b,_3c){ +with(_3b){ +objj_msgSend(_3b,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("viewDidMoveToWindow"),function(_3d,_3e){ +with(_3d){ +} +}),new objj_method(sel_getUid("viewWillMoveToSuperview:"),function(_3f,_40,_41){ +with(_3f){ +} +}),new objj_method(sel_getUid("viewWillMoveToWindow:"),function(_42,_43,_44){ +with(_42){ +} +}),new objj_method(sel_getUid("willRemoveSubview:"),function(_45,_46,_47){ +with(_45){ +} +}),new objj_method(sel_getUid("enclosingMenuItem"),function(_48,_49){ +with(_48){ +var _4a=_48; +while(_4a&&!objj_msgSend(_4a,"isKindOfClass:",objj_msgSend(_CPMenuItemView,"class"))){ +_4a=objj_msgSend(_4a,"superview"); +} +if(_4a){ +return _4a._menuItem; +} +return nil; +} +}),new objj_method(sel_getUid("setTag:"),function(_4b,_4c,_4d){ +with(_4b){ +_tag=_4d; +} +}),new objj_method(sel_getUid("tag"),function(_4e,_4f){ +with(_4e){ +return _tag; +} +}),new objj_method(sel_getUid("viewWithTag:"),function(_50,_51,_52){ +with(_50){ +if(objj_msgSend(_50,"tag")===_52){ +return _50; +} +var _53=0,_54=_subviews.length; +for(;_53<_54;++_53){ +var _55=objj_msgSend(_subviews[_53],"viewWithTag:",_52); +if(_55){ +return _55; +} +} +return nil; +} +}),new objj_method(sel_getUid("isFlipped"),function(_56,_57){ +with(_56){ +return YES; +} +}),new objj_method(sel_getUid("setFrame:"),function(_58,_59,_5a){ +with(_58){ +if(((_frame.origin.x==_5a.origin.x&&_frame.origin.y==_5a.origin.y)&&(_frame.size.width==_5a.size.width&&_frame.size.height==_5a.size.height))){ +return; +} +_inhibitFrameAndBoundsChangedNotifications=YES; +objj_msgSend(_58,"setFrameOrigin:",_5a.origin); +objj_msgSend(_58,"setFrameSize:",_5a.size); +_inhibitFrameAndBoundsChangedNotifications=NO; +if(_postsFrameChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewFrameDidChangeNotification,_58); +} +} +}),new objj_method(sel_getUid("frame"),function(_5b,_5c){ +with(_5b){ +return {origin:{x:_frame.origin.x,y:_frame.origin.y},size:{width:_frame.size.width,height:_frame.size.height}}; +} +}),new objj_method(sel_getUid("setCenter:"),function(_5d,_5e,_5f){ +with(_5d){ +objj_msgSend(_5d,"setFrameOrigin:",CGPointMake(_5f.x-_frame.size.width/2,_5f.y-_frame.size.height/2)); +} +}),new objj_method(sel_getUid("center"),function(_60,_61){ +with(_60){ +return CGPointMake(_frame.size.width/2+_frame.origin.x,_frame.size.height/2+_frame.origin.y); +} +}),new objj_method(sel_getUid("setFrameOrigin:"),function(_62,_63,_64){ +with(_62){ +var _65=_frame.origin; +if(!_64||(_65.x==_64.x&&_65.y==_64.y)){ +return; +} +_65.x=_64.x; +_65.y=_64.y; +if(_postsFrameChangedNotifications&&!_inhibitFrameAndBoundsChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewFrameDidChangeNotification,_62); +} +if(!_DOMElement.CPDOMDisplayContext){ +_DOMElement.CPDOMDisplayContext=[]; +} +var _66=_DOMElement.CPDOMDisplayContext[0]; +if(!(_66>=0)){ +_66=_DOMElement.CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_66]=0; +CPDOMDisplayServerInstructions[_66+1]=_DOMElement; +CPDOMDisplayServerInstructions[_66+2]=_superview?_superview._boundsTransform:NULL; +CPDOMDisplayServerInstructions[_66+3]=_65.x; +CPDOMDisplayServerInstructions[_66+4]=_65.y; +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_67,_68,_69){ +with(_67){ +var _6a=_frame.size; +if(!_69||(_6a.width==_69.width&&_6a.height==_69.height)){ +return; +} +var _6b={width:_6a.width,height:_6a.height}; +_6a.width=_69.width; +_6a.height=_69.height; +if(YES){ +_bounds.size.width=_69.width; +_bounds.size.height=_69.height; +} +if(_layer){ +objj_msgSend(_layer,"_owningViewBoundsChanged"); +} +if(_autoresizesSubviews){ +objj_msgSend(_67,"resizeSubviewsWithOldSize:",_6b); +} +objj_msgSend(_67,"setNeedsLayout"); +objj_msgSend(_67,"setNeedsDisplay:",YES); +if(!_DOMElement.CPDOMDisplayContext){ +_DOMElement.CPDOMDisplayContext=[]; +} +var _6c=_DOMElement.CPDOMDisplayContext[4]; +if(!(_6c>=0)){ +_6c=_DOMElement.CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_6c]=4; +CPDOMDisplayServerInstructions[_6c+1]=_DOMElement; +CPDOMDisplayServerInstructions[_6c+2]=_6a.width; +CPDOMDisplayServerInstructions[_6c+3]=_6a.height; +if(_DOMContentsElement){ +if(!_DOMContentsElement.CPDOMDisplayContext){ +_DOMContentsElement.CPDOMDisplayContext=[]; +} +var _6c=_DOMContentsElement.CPDOMDisplayContext[5]; +if(!(_6c>=0)){ +_6c=_DOMContentsElement.CPDOMDisplayContext[5]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_6c]=5; +CPDOMDisplayServerInstructions[_6c+1]=_DOMContentsElement; +CPDOMDisplayServerInstructions[_6c+2]=_6a.width; +CPDOMDisplayServerInstructions[_6c+3]=_6a.height; +if(!_DOMContentsElement.CPDOMDisplayContext){ +_DOMContentsElement.CPDOMDisplayContext=[]; +} +var _6c=_DOMContentsElement.CPDOMDisplayContext[4]; +if(!(_6c>=0)){ +_6c=_DOMContentsElement.CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_6c]=4; +CPDOMDisplayServerInstructions[_6c+1]=_DOMContentsElement; +CPDOMDisplayServerInstructions[_6c+2]=_6a.width; +CPDOMDisplayServerInstructions[_6c+3]=_6a.height; +} +if(_backgroundType!==_4){ +var _6d=objj_msgSend(objj_msgSend(_backgroundColor,"patternImage"),"imageSlices"); +if(_backgroundType===_5){ +if(!_DOMImageParts[1].CPDOMDisplayContext){ +_DOMImageParts[1].CPDOMDisplayContext=[]; +} +var _6c=_DOMImageParts[1].CPDOMDisplayContext[4]; +if(!(_6c>=0)){ +_6c=_DOMImageParts[1].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_6c]=4; +CPDOMDisplayServerInstructions[_6c+1]=_DOMImageParts[1]; +CPDOMDisplayServerInstructions[_6c+2]=_6a.width; +CPDOMDisplayServerInstructions[_6c+3]=_6a.height-_DOMImageSizes[0].height-_DOMImageSizes[2].height; +}else{ +if(_backgroundType===_6){ +if(!_DOMImageParts[1].CPDOMDisplayContext){ +_DOMImageParts[1].CPDOMDisplayContext=[]; +} +var _6c=_DOMImageParts[1].CPDOMDisplayContext[4]; +if(!(_6c>=0)){ +_6c=_DOMImageParts[1].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_6c]=4; +CPDOMDisplayServerInstructions[_6c+1]=_DOMImageParts[1]; +CPDOMDisplayServerInstructions[_6c+2]=_6a.width-_DOMImageSizes[0].width-_DOMImageSizes[2].width; +CPDOMDisplayServerInstructions[_6c+3]=_6a.height; +}else{ +if(_backgroundType===_7){ +var _6e=_6a.width-_DOMImageSizes[0].width-_DOMImageSizes[2].width,_6f=_6a.height-_DOMImageSizes[0].height-_DOMImageSizes[6].height; +if(!_DOMImageParts[1].CPDOMDisplayContext){ +_DOMImageParts[1].CPDOMDisplayContext=[]; +} +var _6c=_DOMImageParts[1].CPDOMDisplayContext[4]; +if(!(_6c>=0)){ +_6c=_DOMImageParts[1].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_6c]=4; +CPDOMDisplayServerInstructions[_6c+1]=_DOMImageParts[1]; +CPDOMDisplayServerInstructions[_6c+2]=_6e; +CPDOMDisplayServerInstructions[_6c+3]=_DOMImageSizes[0].height; +if(!_DOMImageParts[3].CPDOMDisplayContext){ +_DOMImageParts[3].CPDOMDisplayContext=[]; +} +var _6c=_DOMImageParts[3].CPDOMDisplayContext[4]; +if(!(_6c>=0)){ +_6c=_DOMImageParts[3].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_6c]=4; +CPDOMDisplayServerInstructions[_6c+1]=_DOMImageParts[3]; +CPDOMDisplayServerInstructions[_6c+2]=_DOMImageSizes[3].width; +CPDOMDisplayServerInstructions[_6c+3]=_6f; +if(!_DOMImageParts[4].CPDOMDisplayContext){ +_DOMImageParts[4].CPDOMDisplayContext=[]; +} +var _6c=_DOMImageParts[4].CPDOMDisplayContext[4]; +if(!(_6c>=0)){ +_6c=_DOMImageParts[4].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_6c]=4; +CPDOMDisplayServerInstructions[_6c+1]=_DOMImageParts[4]; +CPDOMDisplayServerInstructions[_6c+2]=_6e; +CPDOMDisplayServerInstructions[_6c+3]=_6f; +if(!_DOMImageParts[5].CPDOMDisplayContext){ +_DOMImageParts[5].CPDOMDisplayContext=[]; +} +var _6c=_DOMImageParts[5].CPDOMDisplayContext[4]; +if(!(_6c>=0)){ +_6c=_DOMImageParts[5].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_6c]=4; +CPDOMDisplayServerInstructions[_6c+1]=_DOMImageParts[5]; +CPDOMDisplayServerInstructions[_6c+2]=_DOMImageSizes[5].width; +CPDOMDisplayServerInstructions[_6c+3]=_6f; +if(!_DOMImageParts[7].CPDOMDisplayContext){ +_DOMImageParts[7].CPDOMDisplayContext=[]; +} +var _6c=_DOMImageParts[7].CPDOMDisplayContext[4]; +if(!(_6c>=0)){ +_6c=_DOMImageParts[7].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_6c]=4; +CPDOMDisplayServerInstructions[_6c+1]=_DOMImageParts[7]; +CPDOMDisplayServerInstructions[_6c+2]=_6e; +CPDOMDisplayServerInstructions[_6c+3]=_DOMImageSizes[7].height; +} +} +} +} +if(_postsFrameChangedNotifications&&!_inhibitFrameAndBoundsChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewFrameDidChangeNotification,_67); +} +} +}),new objj_method(sel_getUid("setBounds:"),function(_70,_71,_72){ +with(_70){ +if(((_bounds.origin.x==_72.origin.x&&_bounds.origin.y==_72.origin.y)&&(_bounds.size.width==_72.size.width&&_bounds.size.height==_72.size.height))){ +return; +} +_inhibitFrameAndBoundsChangedNotifications=YES; +objj_msgSend(_70,"setBoundsOrigin:",_72.origin); +objj_msgSend(_70,"setBoundsSize:",_72.size); +_inhibitFrameAndBoundsChangedNotifications=NO; +if(_postsBoundsChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewBoundsDidChangeNotification,_70); +} +} +}),new objj_method(sel_getUid("bounds"),function(_73,_74){ +with(_73){ +return {origin:{x:_bounds.origin.x,y:_bounds.origin.y},size:{width:_bounds.size.width,height:_bounds.size.height}}; +} +}),new objj_method(sel_getUid("setBoundsOrigin:"),function(_75,_76,_77){ +with(_75){ +var _78=_bounds.origin; +if((_78.x==_77.x&&_78.y==_77.y)){ +return; +} +_78.x=_77.x; +_78.y=_77.y; +if(_78.x!=0||_78.y!=0){ +_boundsTransform={a:1,b:0,c:0,d:1,tx:-_78.x,ty:-_78.y}; +_inverseBoundsTransform=CGAffineTransformInvert(_boundsTransform); +}else{ +_boundsTransform=nil; +_inverseBoundsTransform=nil; +} +var _79=_subviews.length; +while(_79--){ +var _7a=_subviews[_79],_78=_7a._frame.origin; +if(!_7a._DOMElement.CPDOMDisplayContext){ +_7a._DOMElement.CPDOMDisplayContext=[]; +} +var _7b=_7a._DOMElement.CPDOMDisplayContext[0]; +if(!(_7b>=0)){ +_7b=_7a._DOMElement.CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_7b]=0; +CPDOMDisplayServerInstructions[_7b+1]=_7a._DOMElement; +CPDOMDisplayServerInstructions[_7b+2]=_boundsTransform; +CPDOMDisplayServerInstructions[_7b+3]=_78.x; +CPDOMDisplayServerInstructions[_7b+4]=_78.y; +} +if(_postsBoundsChangedNotifications&&!_inhibitFrameAndBoundsChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewBoundsDidChangeNotification,_75); +} +} +}),new objj_method(sel_getUid("setBoundsSize:"),function(_7c,_7d,_7e){ +with(_7c){ +var _7f=_bounds.size; +if((_7f.width==_7e.width&&_7f.height==_7e.height)){ +return; +} +var _80=_frame.size; +if(!(_7f.width==_80.width&&_7f.height==_80.height)){ +var _81=_bounds.origin; +_81.x/=_7f.width/_80.width; +_81.y/=_7f.height/_80.height; +} +_7f.width=_7e.width; +_7f.height=_7e.height; +if(!(_7f.width==_80.width&&_7f.height==_80.height)){ +var _81=_bounds.origin; +_81.x*=_7f.width/_80.width; +_81.y*=_7f.height/_80.height; +} +if(_postsBoundsChangedNotifications&&!_inhibitFrameAndBoundsChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewBoundsDidChangeNotification,_7c); +} +} +}),new objj_method(sel_getUid("resizeWithOldSuperviewSize:"),function(_82,_83,_84){ +with(_82){ +var _85=objj_msgSend(_82,"autoresizingMask"); +if(_85==CPViewNotSizable){ +return; +} +var _86=_superview._frame,_87={origin:{x:_frame.origin.x,y:_frame.origin.y},size:{width:_frame.size.width,height:_frame.size.height}},dX=((_86.size.width)-_84.width)/(((_85&CPViewMinXMargin)?1:0)+(_85&CPViewWidthSizable?1:0)+(_85&CPViewMaxXMargin?1:0)),dY=((_86.size.height)-_84.height)/((_85&CPViewMinYMargin?1:0)+(_85&CPViewHeightSizable?1:0)+(_85&CPViewMaxYMargin?1:0)); +if(_85&CPViewMinXMargin){ +_87.origin.x+=dX; +} +if(_85&CPViewWidthSizable){ +_87.size.width+=dX; +} +if(_85&CPViewMinYMargin){ +_87.origin.y+=dY; +} +if(_85&CPViewHeightSizable){ +_87.size.height+=dY; +} +objj_msgSend(_82,"setFrame:",_87); +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_8a,_8b,_8c){ +with(_8a){ +var _8d=_subviews.length; +while(_8d--){ +objj_msgSend(_subviews[_8d],"resizeWithOldSuperviewSize:",_8c); +} +} +}),new objj_method(sel_getUid("setAutoresizesSubviews:"),function(_8e,_8f,_90){ +with(_8e){ +_autoresizesSubviews=!!_90; +} +}),new objj_method(sel_getUid("autoresizesSubviews"),function(_91,_92){ +with(_91){ +return _autoresizesSubviews; +} +}),new objj_method(sel_getUid("setAutoresizingMask:"),function(_93,_94,_95){ +with(_93){ +_autoresizingMask=_95; +} +}),new objj_method(sel_getUid("autoresizingMask"),function(_96,_97){ +with(_96){ +return _autoresizingMask; +} +}),new objj_method(sel_getUid("enterFullScreenMode"),function(_98,_99){ +with(_98){ +return objj_msgSend(_98,"enterFullScreenMode:withOptions:",nil,nil); +} +}),new objj_method(sel_getUid("enterFullScreenMode:withOptions:"),function(_9a,_9b,_9c,_9d){ +with(_9a){ +_fullScreenModeState=_9e(_9a); +var _9f=objj_msgSend(objj_msgSend(CPWindow,"alloc"),"initWithContentRect:styleMask:",objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"contentBounds"),CPBorderlessWindowMask); +objj_msgSend(_9f,"setLevel:",CPScreenSaverWindowLevel); +objj_msgSend(_9f,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +var _a0=objj_msgSend(_9f,"contentView"); +objj_msgSend(_a0,"setBackgroundColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(_a0,"addSubview:",_9a); +objj_msgSend(_9a,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +objj_msgSend(_9a,"setFrame:",CGRectMakeCopy(objj_msgSend(_a0,"bounds"))); +objj_msgSend(_9f,"makeKeyAndOrderFront:",_9a); +objj_msgSend(_9f,"makeFirstResponder:",_9a); +_isInFullScreenMode=YES; +return YES; +} +}),new objj_method(sel_getUid("exitFullScreenMode"),function(_a1,_a2){ +with(_a1){ +objj_msgSend(_a1,"exitFullScreenModeWithOptions:",nil); +} +}),new objj_method(sel_getUid("exitFullScreenModeWithOptions:"),function(_a3,_a4,_a5){ +with(_a3){ +if(!_isInFullScreenMode){ +return; +} +_isInFullScreenMode=NO; +objj_msgSend(_a3,"setFrame:",_fullScreenModeState.frame); +objj_msgSend(_a3,"setAutoresizingMask:",_fullScreenModeState.autoresizingMask); +objj_msgSend(_fullScreenModeState.superview,"_insertSubview:atIndex:",_a3,_fullScreenModeState.index); +objj_msgSend(objj_msgSend(_a3,"window"),"orderOut:",_a3); +} +}),new objj_method(sel_getUid("isInFullScreenMode"),function(_a6,_a7){ +with(_a6){ +return _isInFullScreenMode; +} +}),new objj_method(sel_getUid("setHidden:"),function(_a8,_a9,_aa){ +with(_a8){ +_aa=!!_aa; +if(_isHidden===_aa){ +return; +} +_isHidden=_aa; +_DOMElement.style.display=_isHidden?"none":"block"; +if(_aa){ +var _ab=objj_msgSend(_window,"firstResponder"); +if(objj_msgSend(_ab,"isKindOfClass:",objj_msgSend(CPView,"class"))){ +do{ +if(_a8==_ab){ +objj_msgSend(_window,"makeFirstResponder:",objj_msgSend(_a8,"nextValidKeyView")); +break; +} +}while(_ab=objj_msgSend(_ab,"superview")); +} +} +} +}),new objj_method(sel_getUid("isHidden"),function(_ac,_ad){ +with(_ac){ +return _isHidden; +} +}),new objj_method(sel_getUid("setAlphaValue:"),function(_ae,_af,_b0){ +with(_ae){ +if(_opacity==_b0){ +return; +} +_opacity=_b0; +if(CPFeatureIsCompatible(CPOpacityRequiresFilterFeature)){ +if(_b0==1){ +try{ +_DOMElement.style.removeAttribute("filter"); +} +catch(anException){ +} +}else{ +_DOMElement.style.filter="alpha(opacity="+_b0*100+")"; +} +}else{ +_DOMElement.style.opacity=_b0; +} +} +}),new objj_method(sel_getUid("alphaValue"),function(_b1,_b2){ +with(_b1){ +return _opacity; +} +}),new objj_method(sel_getUid("isHiddenOrHasHiddenAncestor"),function(_b3,_b4){ +with(_b3){ +var _b5=_b3; +while(_b5&&!objj_msgSend(_b5,"isHidden")){ +_b5=objj_msgSend(_b5,"superview"); +} +return _b5!==nil; +} +}),new objj_method(sel_getUid("acceptsFirstMouse:"),function(_b6,_b7,_b8){ +with(_b6){ +return YES; +} +}),new objj_method(sel_getUid("hitTests"),function(_b9,_ba){ +with(_b9){ +return _hitTests; +} +}),new objj_method(sel_getUid("setHitTests:"),function(_bb,_bc,_bd){ +with(_bb){ +_hitTests=!!_bd; +} +}),new objj_method(sel_getUid("hitTest:"),function(_be,_bf,_c0){ +with(_be){ +if(_isHidden||!_hitTests||!CPRectContainsPoint(_frame,_c0)){ +return nil; +} +var _c1=nil,i=_subviews.length,_c3={x:_c0.x-(_frame.origin.x),y:_c0.y-(_frame.origin.y)}; +if(_inverseBoundsTransform){ +_c3={x:_c3.x*_inverseBoundsTransform.a+_c3.y*_inverseBoundsTransform.c+_inverseBoundsTransform.tx,y:_c3.x*_inverseBoundsTransform.b+_c3.y*_inverseBoundsTransform.d+_inverseBoundsTransform.ty}; +} +while(i--){ +if(_c1=objj_msgSend(_subviews[i],"hitTest:",_c3)){ +return _c1; +} +} +return _be; +} +}),new objj_method(sel_getUid("mouseDownCanMoveWindow"),function(_c4,_c5){ +with(_c4){ +return !objj_msgSend(_c4,"isOpaque"); +} +}),new objj_method(sel_getUid("mouseDown:"),function(_c6,_c7,_c8){ +with(_c6){ +if(objj_msgSend(_c6,"mouseDownCanMoveWindow")){ +objj_msgSendSuper({receiver:_c6,super_class:objj_getClass("CPResponder")},"mouseDown:",_c8); +} +} +}),new objj_method(sel_getUid("setBackgroundColor:"),function(_c9,_ca,_cb){ +with(_c9){ +if(_backgroundColor==_cb){ +return; +} +_backgroundColor=_cb; +var _cc=objj_msgSend(_backgroundColor,"patternImage"),_cd=0; +if(objj_msgSend(_cc,"isThreePartImage")){ +_backgroundType=objj_msgSend(_cc,"isVertical")?_5:_6; +_cd=3-_DOMImageParts.length; +}else{ +if(objj_msgSend(_cc,"isNinePartImage")){ +_backgroundType=_7; +_cd=9-_DOMImageParts.length; +}else{ +_backgroundType=_4; +_cd=0-_DOMImageParts.length; +} +} +if(_cd>0){ +while(_cd--){ +var _ce=_3.cloneNode(false); +_ce.style.zIndex=-1000; +_DOMImageParts.push(_ce); +_DOMElement.appendChild(_ce); +} +}else{ +_cd=-_cd; +while(_cd--){ +_DOMElement.removeChild(_DOMImageParts.pop()); +} +} +if(_backgroundType==_4){ +_DOMElement.style.background=_backgroundColor?objj_msgSend(_backgroundColor,"cssString"):""; +}else{ +var _cf=objj_msgSend(_cc,"imageSlices"),_d0=MIN(_DOMImageParts.length,_cf.length),_d1=_frame.size; +while(_d0--){ +var _d2=_cf[_d0],_d3=_DOMImageSizes[_d0]=_d2?objj_msgSend(_d2,"size"):{width:0,height:0}; +if(!_DOMImageParts[_d0].CPDOMDisplayContext){ +_DOMImageParts[_d0].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[_d0].CPDOMDisplayContext[4]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[_d0].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_d4]=4; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[_d0]; +CPDOMDisplayServerInstructions[_d4+2]=_d3.width; +CPDOMDisplayServerInstructions[_d4+3]=_d3.height; +_DOMImageParts[_d0].style.background=_d2?"url(\""+objj_msgSend(_d2,"filename")+"\")":""; +} +if(_backgroundType==_7){ +var _d5=_d1.width-_DOMImageSizes[0].width-_DOMImageSizes[2].width,_d6=_d1.height-_DOMImageSizes[0].height-_DOMImageSizes[6].height; +if(!_DOMImageParts[1].CPDOMDisplayContext){ +_DOMImageParts[1].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[1].CPDOMDisplayContext[4]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[1].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_d4]=4; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[1]; +CPDOMDisplayServerInstructions[_d4+2]=_d5; +CPDOMDisplayServerInstructions[_d4+3]=_DOMImageSizes[0].height; +if(!_DOMImageParts[3].CPDOMDisplayContext){ +_DOMImageParts[3].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[3].CPDOMDisplayContext[4]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[3].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_d4]=4; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[3]; +CPDOMDisplayServerInstructions[_d4+2]=_DOMImageSizes[3].width; +CPDOMDisplayServerInstructions[_d4+3]=_d6; +if(!_DOMImageParts[4].CPDOMDisplayContext){ +_DOMImageParts[4].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[4].CPDOMDisplayContext[4]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[4].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_d4]=4; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[4]; +CPDOMDisplayServerInstructions[_d4+2]=_d5; +CPDOMDisplayServerInstructions[_d4+3]=_d6; +if(!_DOMImageParts[5].CPDOMDisplayContext){ +_DOMImageParts[5].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[5].CPDOMDisplayContext[4]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[5].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_d4]=4; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[5]; +CPDOMDisplayServerInstructions[_d4+2]=_DOMImageSizes[5].width; +CPDOMDisplayServerInstructions[_d4+3]=_d6; +if(!_DOMImageParts[7].CPDOMDisplayContext){ +_DOMImageParts[7].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[7].CPDOMDisplayContext[4]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[7].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_d4]=4; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[7]; +CPDOMDisplayServerInstructions[_d4+2]=_d5; +CPDOMDisplayServerInstructions[_d4+3]=_DOMImageSizes[7].height; +if(!_DOMImageParts[0].CPDOMDisplayContext){ +_DOMImageParts[0].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[0].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[0].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=0; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[0]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=0; +CPDOMDisplayServerInstructions[_d4+4]=0; +if(!_DOMImageParts[1].CPDOMDisplayContext){ +_DOMImageParts[1].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[1].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[1].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=0; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[1]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=_DOMImageSizes[0].width; +CPDOMDisplayServerInstructions[_d4+4]=0; +if(!_DOMImageParts[2].CPDOMDisplayContext){ +_DOMImageParts[2].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[2].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[2].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=1; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[2]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=0; +CPDOMDisplayServerInstructions[_d4+4]=0; +if(!_DOMImageParts[3].CPDOMDisplayContext){ +_DOMImageParts[3].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[3].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[3].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=0; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[3]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=0; +CPDOMDisplayServerInstructions[_d4+4]=_DOMImageSizes[1].height; +if(!_DOMImageParts[4].CPDOMDisplayContext){ +_DOMImageParts[4].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[4].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[4].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=0; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[4]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=_DOMImageSizes[0].width; +CPDOMDisplayServerInstructions[_d4+4]=_DOMImageSizes[0].height; +if(!_DOMImageParts[5].CPDOMDisplayContext){ +_DOMImageParts[5].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[5].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[5].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=1; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[5]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=0; +CPDOMDisplayServerInstructions[_d4+4]=_DOMImageSizes[1].height; +if(!_DOMImageParts[6].CPDOMDisplayContext){ +_DOMImageParts[6].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[6].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[6].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=2; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[6]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=0; +CPDOMDisplayServerInstructions[_d4+4]=0; +if(!_DOMImageParts[7].CPDOMDisplayContext){ +_DOMImageParts[7].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[7].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[7].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=2; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[7]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=_DOMImageSizes[6].width; +CPDOMDisplayServerInstructions[_d4+4]=0; +if(!_DOMImageParts[8].CPDOMDisplayContext){ +_DOMImageParts[8].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[8].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[8].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=3; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[8]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=0; +CPDOMDisplayServerInstructions[_d4+4]=0; +}else{ +if(_backgroundType==_5){ +if(!_DOMImageParts[1].CPDOMDisplayContext){ +_DOMImageParts[1].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[1].CPDOMDisplayContext[4]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[1].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_d4]=4; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[1]; +CPDOMDisplayServerInstructions[_d4+2]=_d1.width; +CPDOMDisplayServerInstructions[_d4+3]=_d1.height-_DOMImageSizes[0].height-_DOMImageSizes[2].height; +if(!_DOMImageParts[0].CPDOMDisplayContext){ +_DOMImageParts[0].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[0].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[0].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=0; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[0]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=0; +CPDOMDisplayServerInstructions[_d4+4]=0; +if(!_DOMImageParts[1].CPDOMDisplayContext){ +_DOMImageParts[1].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[1].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[1].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=0; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[1]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=0; +CPDOMDisplayServerInstructions[_d4+4]=_DOMImageSizes[0].height; +if(!_DOMImageParts[2].CPDOMDisplayContext){ +_DOMImageParts[2].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[2].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[2].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=2; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[2]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=0; +CPDOMDisplayServerInstructions[_d4+4]=0; +}else{ +if(_backgroundType==_6){ +if(!_DOMImageParts[1].CPDOMDisplayContext){ +_DOMImageParts[1].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[1].CPDOMDisplayContext[4]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[1].CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_d4]=4; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[1]; +CPDOMDisplayServerInstructions[_d4+2]=_d1.width-_DOMImageSizes[0].width-_DOMImageSizes[2].width; +CPDOMDisplayServerInstructions[_d4+3]=_d1.height; +if(!_DOMImageParts[0].CPDOMDisplayContext){ +_DOMImageParts[0].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[0].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[0].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=0; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[0]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=0; +CPDOMDisplayServerInstructions[_d4+4]=0; +if(!_DOMImageParts[1].CPDOMDisplayContext){ +_DOMImageParts[1].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[1].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[1].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=0; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[1]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=_DOMImageSizes[0].width; +CPDOMDisplayServerInstructions[_d4+4]=0; +if(!_DOMImageParts[2].CPDOMDisplayContext){ +_DOMImageParts[2].CPDOMDisplayContext=[]; +} +var _d4=_DOMImageParts[2].CPDOMDisplayContext[0]; +if(!(_d4>=0)){ +_d4=_DOMImageParts[2].CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_d4]=1; +CPDOMDisplayServerInstructions[_d4+1]=_DOMImageParts[2]; +CPDOMDisplayServerInstructions[_d4+2]=NULL; +CPDOMDisplayServerInstructions[_d4+3]=0; +CPDOMDisplayServerInstructions[_d4+4]=0; +} +} +} +} +} +}),new objj_method(sel_getUid("backgroundColor"),function(_d7,_d8){ +with(_d7){ +return _backgroundColor; +} +}),new objj_method(sel_getUid("convertPoint:fromView:"),function(_d9,_da,_db,_dc){ +with(_d9){ +return CGPointApplyAffineTransform(_db,_dd(_dc,_d9)); +} +}),new objj_method(sel_getUid("convertPoint:toView:"),function(_de,_df,_e0,_e1){ +with(_de){ +return CGPointApplyAffineTransform(_e0,_dd(_de,_e1)); +} +}),new objj_method(sel_getUid("convertSize:fromView:"),function(_e2,_e3,_e4,_e5){ +with(_e2){ +return CGSizeApplyAffineTransform(_e4,_dd(_e5,_e2)); +} +}),new objj_method(sel_getUid("convertSize:toView:"),function(_e6,_e7,_e8,_e9){ +with(_e6){ +return CGSizeApplyAffineTransform(_e8,_dd(_e6,_e9)); +} +}),new objj_method(sel_getUid("convertRect:fromView:"),function(_ea,_eb,_ec,_ed){ +with(_ea){ +return CGRectApplyAffineTransform(_ec,_dd(_ed,_ea)); +} +}),new objj_method(sel_getUid("convertRect:toView:"),function(_ee,_ef,_f0,_f1){ +with(_ee){ +return CGRectApplyAffineTransform(_f0,_dd(_ee,_f1)); +} +}),new objj_method(sel_getUid("setPostsFrameChangedNotifications:"),function(_f2,_f3,_f4){ +with(_f2){ +_f4=!!_f4; +if(_postsFrameChangedNotifications===_f4){ +return; +} +_postsFrameChangedNotifications=_f4; +if(_postsFrameChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewFrameDidChangeNotification,_f2); +} +} +}),new objj_method(sel_getUid("postsFrameChangedNotifications"),function(_f5,_f6){ +with(_f5){ +return _postsFrameChangedNotifications; +} +}),new objj_method(sel_getUid("setPostsBoundsChangedNotifications:"),function(_f7,_f8,_f9){ +with(_f7){ +_f9=!!_f9; +if(_postsBoundsChangedNotifications===_f9){ +return; +} +_postsBoundsChangedNotifications=_f9; +if(_postsBoundsChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewBoundsDidChangeNotification,_f7); +} +} +}),new objj_method(sel_getUid("postsBoundsChangedNotifications"),function(_fa,_fb){ +with(_fa){ +return _postsBoundsChangedNotifications; +} +}),new objj_method(sel_getUid("dragImage:at:offset:event:pasteboard:source:slideBack:"),function(_fc,_fd,_fe,_ff,_100,_101,_102,_103,_104){ +with(_fc){ +objj_msgSend(_window,"dragImage:at:offset:event:pasteboard:source:slideBack:",_fe,objj_msgSend(_fc,"convertPoint:toView:",_ff,nil),_100,_101,_102,_103,_104); +} +}),new objj_method(sel_getUid("dragView:at:offset:event:pasteboard:source:slideBack:"),function(self,_cmd,_107,_108,_109,_10a,_10b,_10c,_10d){ +with(self){ +objj_msgSend(_window,"dragView:at:offset:event:pasteboard:source:slideBack:",_107,objj_msgSend(self,"convertPoint:toView:",_108,nil),_109,_10a,_10b,_10c,_10d); +} +}),new objj_method(sel_getUid("registerForDraggedTypes:"),function(self,_cmd,_110){ +with(self){ +if(!_110||!objj_msgSend(_110,"count")){ +return; +} +var _111=objj_msgSend(self,"window"); +objj_msgSend(_111,"_noteUnregisteredDraggedTypes:",_registeredDraggedTypes); +objj_msgSend(_registeredDraggedTypes,"addObjectsFromArray:",_110); +objj_msgSend(_111,"_noteRegisteredDraggedTypes:",_registeredDraggedTypes); +_registeredDraggedTypesArray=nil; +} +}),new objj_method(sel_getUid("registeredDraggedTypes"),function(self,_cmd){ +with(self){ +if(!_registeredDraggedTypesArray){ +_registeredDraggedTypesArray=objj_msgSend(_registeredDraggedTypes,"allObjects"); +} +return _registeredDraggedTypesArray; +} +}),new objj_method(sel_getUid("unregisterDraggedTypes"),function(self,_cmd){ +with(self){ +objj_msgSend(objj_msgSend(self,"window"),"_noteUnregisteredDraggedTypes:",_registeredDraggedTypes); +_registeredDraggedTypes=objj_msgSend(CPSet,"set"); +_registeredDraggedTypesArray=[]; +} +}),new objj_method(sel_getUid("drawRect:"),function(self,_cmd,_118){ +with(self){ +} +}),new objj_method(sel_getUid("setNeedsDisplay:"),function(self,_cmd,_11b){ +with(self){ +if(_11b){ +objj_msgSend(self,"setNeedsDisplayInRect:",objj_msgSend(self,"bounds")); +}else{ +var _11c=CPDOMDisplayServerViewsContext[objj_msgSend(self,"hash")]; +if(typeof _11c!="undefined"){ +CPDOMDisplayServerViewsContext[objj_msgSend(self,"hash")]; +CPDOMDisplayServerViews[_11c]=NULL; +} +} +} +}),new objj_method(sel_getUid("setNeedsDisplayInRect:"),function(self,_cmd,_11f){ +with(self){ +var hash=objj_msgSend(objj_msgSend(self,"class"),"hash"),_121=_8[hash]; +if(!_121&&typeof _121==="undefined"){ +_121=objj_msgSend(self,"methodForSelector:",sel_getUid("drawRect:"))!=objj_msgSend(CPView,"instanceMethodForSelector:",sel_getUid("drawRect:")); +_8[hash]=_121; +} +if(!_121){ +return; +} +if((_11f.size.width<=0||_11f.size.height<=0)){ +return; +} +if(_dirtyRect&&!(_dirtyRect.size.width<=0||_dirtyRect.size.height<=0)){ +_dirtyRect=CGRectUnion(_11f,_dirtyRect); +}else{ +_dirtyRect={origin:{x:_11f.origin.x,y:_11f.origin.y},size:{width:_11f.size.width,height:_11f.size.height}}; +} +var _122=objj_msgSend(self,"hash"); +if(typeof (CPDOMDisplayServerViewsContext[_122])=="undefined"){ +CPDOMDisplayServerViews[CPDOMDisplayServerViewsCount++]=self; +CPDOMDisplayServerViewsContext[_122]=self; +} +} +}),new objj_method(sel_getUid("needsDisplay"),function(self,_cmd){ +with(self){ +return _dirtyRect&&!(_dirtyRect.size.width<=0||_dirtyRect.size.height<=0); +} +}),new objj_method(sel_getUid("displayIfNeeded"),function(self,_cmd){ +with(self){ +if(objj_msgSend(self,"needsDisplay")){ +objj_msgSend(self,"displayRect:",_dirtyRect); +} +} +}),new objj_method(sel_getUid("display"),function(self,_cmd){ +with(self){ +objj_msgSend(self,"displayRect:",objj_msgSend(self,"visibleRect")); +} +}),new objj_method(sel_getUid("displayIfNeededInRect:"),function(self,_cmd,_12b){ +with(self){ +if(objj_msgSend(self,"needsDisplay")){ +objj_msgSend(self,"displayRect:",_12b); +} +} +}),new objj_method(sel_getUid("displayRect:"),function(self,_cmd,_12e){ +with(self){ +objj_msgSend(self,"viewWillDraw"); +objj_msgSend(self,"displayRectIgnoringOpacity:inContext:",_12e,nil); +_dirtyRect=NULL; +} +}),new objj_method(sel_getUid("displayRectIgnoringOpacity:inContext:"),function(self,_cmd,_131,_132){ +with(self){ +objj_msgSend(self,"lockFocus"); +CGContextClearRect(objj_msgSend(objj_msgSend(CPGraphicsContext,"currentContext"),"graphicsPort"),_131); +objj_msgSend(self,"drawRect:",_131); +objj_msgSend(self,"unlockFocus"); +} +}),new objj_method(sel_getUid("viewWillDraw"),function(self,_cmd){ +with(self){ +} +}),new objj_method(sel_getUid("lockFocus"),function(self,_cmd){ +with(self){ +if(!_graphicsContext){ +var _137=CGBitmapGraphicsContextCreate(); +_DOMContentsElement=_137.DOMElement; +_DOMContentsElement.style.zIndex=-100; +_DOMContentsElement.style.overflow="hidden"; +_DOMContentsElement.style.position="absolute"; +_DOMContentsElement.style.visibility="visible"; +_DOMContentsElement.width=ROUND((_frame.size.width)); +_DOMContentsElement.height=ROUND((_frame.size.height)); +_DOMContentsElement.style.top="0px"; +_DOMContentsElement.style.left="0px"; +_DOMContentsElement.style.width=ROUND((_frame.size.width))+"px"; +_DOMContentsElement.style.height=ROUND((_frame.size.height))+"px"; +if(_DOMContentsElement.CPDOMDisplayContext){ +_DOMContentsElement.CPDOMDisplayContext[0]=-1; +} +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=6; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMContentsElement; +_graphicsContext=objj_msgSend(CPGraphicsContext,"graphicsContextWithGraphicsPort:flipped:",_137,YES); +} +objj_msgSend(CPGraphicsContext,"setCurrentContext:",_graphicsContext); +CGContextSaveGState(objj_msgSend(_graphicsContext,"graphicsPort")); +} +}),new objj_method(sel_getUid("unlockFocus"),function(self,_cmd){ +with(self){ +CGContextRestoreGState(objj_msgSend(_graphicsContext,"graphicsPort")); +objj_msgSend(CPGraphicsContext,"setCurrentContext:",nil); +} +}),new objj_method(sel_getUid("setNeedsLayout"),function(self,_cmd){ +with(self){ +_needsLayout=YES; +var hash=objj_msgSend(objj_msgSend(self,"class"),"hash"),_13d=_9[hash]; +if(_13d===undefined){ +_13d=objj_msgSend(self,"methodForSelector:",sel_getUid("layoutSubviews"))!=objj_msgSend(CPView,"instanceMethodForSelector:",sel_getUid("layoutSubviews")); +_9[hash]=_13d; +} +if(!_13d){ +return; +} +if(_needsLayout){ +var _13e=objj_msgSend(self,"hash"); +if(typeof (CPDOMDisplayServerViewsContext[_13e])=="undefined"){ +CPDOMDisplayServerViews[CPDOMDisplayServerViewsCount++]=self; +CPDOMDisplayServerViewsContext[_13e]=self; +} +} +} +}),new objj_method(sel_getUid("layoutIfNeeded"),function(self,_cmd){ +with(self){ +if(_needsLayout){ +_needsLayout=NO; +objj_msgSend(self,"layoutSubviews"); +} +} +}),new objj_method(sel_getUid("layoutSubviews"),function(self,_cmd){ +with(self){ +} +}),new objj_method(sel_getUid("isOpaque"),function(self,_cmd){ +with(self){ +return NO; +} +}),new objj_method(sel_getUid("visibleRect"),function(self,_cmd){ +with(self){ +if(!_superview){ +return _bounds; +} +return CGRectIntersection(objj_msgSend(self,"convertRect:fromView:",objj_msgSend(_superview,"visibleRect"),_superview),_bounds); +} +}),new objj_method(sel_getUid("_enclosingClipView"),function(self,_cmd){ +with(self){ +var _149=_superview,_14a=objj_msgSend(CPClipView,"class"); +while(_149&&!objj_msgSend(_149,"isKindOfClass:",_14a)){ +_149=_149._superview; +} +return _149; +} +}),new objj_method(sel_getUid("scrollPoint:"),function(self,_cmd,_14d){ +with(self){ +var _14e=objj_msgSend(self,"_enclosingClipView"); +if(!_14e){ +return; +} +objj_msgSend(_14e,"scrollToPoint:",objj_msgSend(self,"convertPoint:toView:",_14d,_14e)); +} +}),new objj_method(sel_getUid("scrollRectToVisible:"),function(self,_cmd,_151){ +with(self){ +var _152=objj_msgSend(self,"visibleRect"); +_151=CGRectIntersection(_151,_bounds); +if((_151.size.width<=0||_151.size.height<=0)||CGRectContainsRect(_152,_151)){ +return NO; +} +var _153=objj_msgSend(self,"_enclosingClipView"); +if(!_153){ +return NO; +} +var _154={x:_152.origin.x,y:_152.origin.y}; +if((_151.origin.x)<=(_152.origin.x)){ +_154.x=(_151.origin.x); +}else{ +if((_151.origin.x+_151.size.width)>(_152.origin.x+_152.size.width)){ +_154.x+=(_151.origin.x+_151.size.width)-(_152.origin.x+_152.size.width); +} +} +if((_151.origin.y)<=(_152.origin.y)){ +_154.y=CGRectGetMinY(_151); +}else{ +if((_151.origin.y+_151.size.height)>(_152.origin.y+_152.size.height)){ +_154.y+=(_151.origin.y+_151.size.height)-(_152.origin.y+_152.size.height); +} +} +objj_msgSend(_153,"scrollToPoint:",CGPointMake(_154.x,_154.y)); +return YES; +} +}),new objj_method(sel_getUid("autoscroll:"),function(self,_cmd,_157){ +with(self){ +return objj_msgSend(objj_msgSend(self,"superview"),"autoscroll:",_157); +} +}),new objj_method(sel_getUid("adjustScroll:"),function(self,_cmd,_15a){ +with(self){ +return _15a; +} +}),new objj_method(sel_getUid("scrollRect:by:"),function(self,_cmd,_15d,_15e){ +with(self){ +} +}),new objj_method(sel_getUid("enclosingScrollView"),function(self,_cmd){ +with(self){ +var _161=_superview,_162=objj_msgSend(CPScrollView,"class"); +while(_161&&!objj_msgSend(_161,"isKindOfClass:",_162)){ +_161=_161._superview; +} +return _161; +} +}),new objj_method(sel_getUid("scrollClipView:toPoint:"),function(self,_cmd,_165,_166){ +with(self){ +objj_msgSend(_165,"scrollToPoint:",_166); +} +}),new objj_method(sel_getUid("reflectScrolledClipView:"),function(self,_cmd,_169){ +with(self){ +} +})]); +class_addMethods(_b,[new objj_method(sel_getUid("initialize"),function(self,_cmd){ +with(self){ +if(self!==objj_msgSend(CPView,"class")){ +return; +} +_3=document.createElement("div"); +var _16c=_3.style; +_16c.overflow="hidden"; +_16c.position="absolute"; +_16c.visibility="visible"; +_16c.zIndex=0; +_1=objj_msgSend(CPNotificationCenter,"defaultCenter"); +} +})]); +var _a=objj_getClass("CPView"); +if(!_a){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPView\"")); +} +var _b=_a.isa; +class_addMethods(_a,[new objj_method(sel_getUid("canBecomeKeyView"),function(self,_cmd){ +with(self){ +return objj_msgSend(self,"acceptsFirstResponder")&&!objj_msgSend(self,"isHiddenOrHasHiddenAncestor"); +} +}),new objj_method(sel_getUid("nextKeyView"),function(self,_cmd){ +with(self){ +return _nextKeyView; +} +}),new objj_method(sel_getUid("nextValidKeyView"),function(self,_cmd){ +with(self){ +var _173=objj_msgSend(self,"nextKeyView"); +while(_173&&!objj_msgSend(_173,"canBecomeKeyView")){ +_173=objj_msgSend(_173,"nextKeyView"); +} +return _173; +} +}),new objj_method(sel_getUid("previousKeyView"),function(self,_cmd){ +with(self){ +return _previousKeyView; +} +}),new objj_method(sel_getUid("previousValidKeyView"),function(self,_cmd){ +with(self){ +var _178=objj_msgSend(self,"previousKeyView"); +while(_178&&!objj_msgSend(_178,"canBecomeKeyView")){ +_178=objj_msgSend(_178,"previousKeyView"); +} +return _178; +} +}),new objj_method(sel_getUid("_setPreviousKeyView:"),function(self,_cmd,_17b){ +with(self){ +_previousKeyView=_17b; +} +}),new objj_method(sel_getUid("setNextKeyView:"),function(self,_cmd,next){ +with(self){ +_nextKeyView=next; +objj_msgSend(_nextKeyView,"_setPreviousKeyView:",self); +} +})]); +var _a=objj_getClass("CPView"); +if(!_a){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPView\"")); +} +var _b=_a.isa; +class_addMethods(_a,[new objj_method(sel_getUid("setLayer:"),function(self,_cmd,_181){ +with(self){ +if(_layer==_181){ +return; +} +if(_layer){ +_layer._owningView=nil; +_DOMElement.removeChild(_layer._DOMElement); +} +_layer=_181; +if(_layer){ +var _182=CGRectMakeCopy(objj_msgSend(self,"bounds")); +objj_msgSend(_layer,"_setOwningView:",self); +_layer._DOMElement.style.zIndex=100; +_DOMElement.appendChild(_layer._DOMElement); +} +} +}),new objj_method(sel_getUid("layer"),function(self,_cmd){ +with(self){ +return _layer; +} +}),new objj_method(sel_getUid("setWantsLayer:"),function(self,_cmd,_187){ +with(self){ +_wantsLayer=!!_187; +} +}),new objj_method(sel_getUid("wantsLayer"),function(self,_cmd){ +with(self){ +return _wantsLayer; +} +})]); +var _a=objj_getClass("CPView"); +if(!_a){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPView\"")); +} +var _b=_a.isa; +class_addMethods(_a,[new objj_method(sel_getUid("themeState"),function(self,_cmd){ +with(self){ +return _themeState; +} +}),new objj_method(sel_getUid("hasThemeState:"),function(self,_cmd,_18e){ +with(self){ +return !!(_themeState&((typeof _18e==="string")?CPThemeState(_18e):_18e)); +} +}),new objj_method(sel_getUid("setThemeState:"),function(self,_cmd,_191){ +with(self){ +var _192=(typeof _191==="string")?CPThemeState(_191):_191; +if(_themeState&_192){ +return NO; +} +_themeState|=_192; +objj_msgSend(self,"setNeedsLayout"); +objj_msgSend(self,"setNeedsDisplay:",YES); +return YES; +} +}),new objj_method(sel_getUid("unsetThemeState:"),function(self,_cmd,_195){ +with(self){ +var _196=((typeof _195==="string")?CPThemeState(_195):_195); +if(!(_themeState&_196)){ +return NO; +} +_themeState&=~_196; +objj_msgSend(self,"setNeedsLayout"); +objj_msgSend(self,"setNeedsDisplay:",YES); +return YES; +} +}),new objj_method(sel_getUid("_loadThemeAttributes"),function(self,_cmd){ +with(self){ +var _199=objj_msgSend(self,"class"),_19a=objj_msgSend(_199,"_themeAttributes"),_19b=_19a.length; +if(!_19b){ +return; +} +var _19c=objj_msgSend(self,"theme"),_19d=objj_msgSend(_199,"themeClass"); +_themeAttributes={}; +while(_19b--){ +var _19e=_19a[_19b--],_19f=objj_msgSend(objj_msgSend(_CPThemeAttribute,"alloc"),"initWithName:defaultValue:",_19e,_19a[_19b]); +objj_msgSend(_19f,"setParentAttribute:",objj_msgSend(_19c,"_attributeWithName:forClass:",_19e,_19d)); +_themeAttributes[_19e]=_19f; +} +} +}),new objj_method(sel_getUid("setTheme:"),function(self,_cmd,_1a2){ +with(self){ +if(_theme===_1a2){ +return; +} +_theme=_1a2; +objj_msgSend(self,"viewDidChangeTheme"); +} +}),new objj_method(sel_getUid("theme"),function(self,_cmd){ +with(self){ +return _theme; +} +}),new objj_method(sel_getUid("viewDidChangeTheme"),function(self,_cmd){ +with(self){ +if(!_themeAttributes){ +return; +} +var _1a7=objj_msgSend(self,"theme"),_1a8=objj_msgSend(objj_msgSend(self,"class"),"themeClass"); +for(var _1a9 in _themeAttributes){ +if(_themeAttributes.hasOwnProperty(_1a9)){ +objj_msgSend(_themeAttributes[_1a9],"setParentAttribute:",objj_msgSend(_1a7,"_attributeWithName:forClass:",_1a9,_1a8)); +} +} +objj_msgSend(self,"setNeedsLayout"); +objj_msgSend(self,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("_themeAttributeDictionary"),function(self,_cmd){ +with(self){ +var _1ac=objj_msgSend(CPDictionary,"dictionary"); +if(_themeAttributes){ +var _1ad=objj_msgSend(self,"theme"); +for(var _1ae in _themeAttributes){ +if(_themeAttributes.hasOwnProperty(_1ae)){ +objj_msgSend(_1ac,"setObject:forKey:",_themeAttributes[_1ae],_1ae); +} +} +} +return _1ac; +} +}),new objj_method(sel_getUid("setValue:forThemeAttribute:inState:"),function(self,_cmd,_1b1,_1b2,_1b3){ +with(self){ +if(!_themeAttributes||!_themeAttributes[_1b2]){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,objj_msgSend(self,"className")+" does not contain theme attribute '"+_1b2+"'"); +} +var _1b4=objj_msgSend(self,"currentValueForThemeAttribute:",_1b2); +objj_msgSend(_themeAttributes[_1b2],"setValue:forState:",_1b1,_1b3); +if(objj_msgSend(self,"currentValueForThemeAttribute:",_1b2)===_1b4){ +return; +} +objj_msgSend(self,"setNeedsDisplay:",YES); +objj_msgSend(self,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("setValue:forThemeAttribute:"),function(self,_cmd,_1b7,_1b8){ +with(self){ +if(!_themeAttributes||!_themeAttributes[_1b8]){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,objj_msgSend(self,"className")+" does not contain theme attribute '"+_1b8+"'"); +} +var _1b9=objj_msgSend(self,"currentValueForThemeAttribute:",_1b8); +objj_msgSend(_themeAttributes[_1b8],"setValue:",_1b7); +if(objj_msgSend(self,"currentValueForThemeAttribute:",_1b8)===_1b9){ +return; +} +objj_msgSend(self,"setNeedsDisplay:",YES); +objj_msgSend(self,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("valueForThemeAttribute:inState:"),function(self,_cmd,_1bc,_1bd){ +with(self){ +if(!_themeAttributes||!_themeAttributes[_1bc]){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,objj_msgSend(self,"className")+" does not contain theme attribute '"+_1bc+"'"); +} +return objj_msgSend(_themeAttributes[_1bc],"valueForState:",_1bd); +} +}),new objj_method(sel_getUid("valueForThemeAttribute:"),function(self,_cmd,_1c0){ +with(self){ +if(!_themeAttributes||!_themeAttributes[_1c0]){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,objj_msgSend(self,"className")+" does not contain theme attribute '"+_1c0+"'"); +} +return objj_msgSend(_themeAttributes[_1c0],"value"); +} +}),new objj_method(sel_getUid("currentValueForThemeAttribute:"),function(self,_cmd,_1c3){ +with(self){ +if(!_themeAttributes||!_themeAttributes[_1c3]){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,objj_msgSend(self,"className")+" does not contain theme attribute '"+_1c3+"'"); +} +return objj_msgSend(_themeAttributes[_1c3],"valueForState:",_themeState); +} +})]); +class_addMethods(_b,[new objj_method(sel_getUid("themeClass"),function(self,_cmd){ +with(self){ +return nil; +} +}),new objj_method(sel_getUid("themeAttributes"),function(self,_cmd){ +with(self){ +return nil; +} +}),new objj_method(sel_getUid("_themeAttributes"),function(self,_cmd){ +with(self){ +if(!_2){ +_2={}; +} +var _1ca=objj_msgSend(self,"class"),_1cb=objj_msgSend(CPView,"class"),_1cc=[]; +for(;_1ca&&_1ca!==_1cb;_1ca=objj_msgSend(_1ca,"superclass")){ +var _1cd=_2[class_getName(_1ca)]; +if(_1cd){ +_1cc=_1cc.length?_1cc.concat(_1cd):_1cc; +_2[objj_msgSend(self,"className")]=_1cc; +break; +} +var _1ce=objj_msgSend(_1ca,"themeAttributes"); +if(!_1ce){ +continue; +} +var _1cf=objj_msgSend(_1ce,"allKeys"),_1d0=_1cf.length; +while(_1d0--){ +var _1d1=_1cf[_1d0]; +_1cc.push(objj_msgSend(_1ce,"objectForKey:",_1d1)); +_1cc.push(_1d1); +} +} +return _1cc; +} +})]); +var _1d2="CPViewAutoresizingMask",_1d3="CPViewAutoresizesSubviews",_1d4="CPViewBackgroundColor",_1d5="CPViewBoundsKey",_1d6="CPViewFrameKey",_1d7="CPViewHitTestsKey",_1d8="CPViewIsHiddenKey",_1d9="CPViewOpacityKey",_1da="CPViewSubviewsKey",_1db="CPViewSuperviewKey",_1dc="CPViewTagKey",_1dd="CPViewThemeStateKey",_1de="CPViewWindowKey",_1df="CPViewNextKeyViewKey",_1e0="CPViewPreviousKeyViewKey"; +var _a=objj_getClass("CPView"); +if(!_a){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPView\"")); +} +var _b=_a.isa; +class_addMethods(_a,[new objj_method(sel_getUid("initWithCoder:"),function(self,_cmd,_1e3){ +with(self){ +_DOMElement=_3.cloneNode(false); +_frame=objj_msgSend(_1e3,"decodeRectForKey:",_1d6); +_bounds=objj_msgSend(_1e3,"decodeRectForKey:",_1d5); +self=objj_msgSendSuper({receiver:self,super_class:objj_getClass("CPResponder")},"initWithCoder:",_1e3); +if(self){ +_tag=objj_msgSend(_1e3,"containsValueForKey:",_1dc)?objj_msgSend(_1e3,"decodeIntForKey:",_1dc):-1; +_window=objj_msgSend(_1e3,"decodeObjectForKey:",_1de); +_subviews=objj_msgSend(_1e3,"decodeObjectForKey:",_1da)||[]; +_superview=objj_msgSend(_1e3,"decodeObjectForKey:",_1db); +_registeredDraggedTypes=objj_msgSend(CPSet,"set"); +_registeredDraggedTypesArray=[]; +_autoresizingMask=objj_msgSend(_1e3,"decodeIntForKey:",_1d2)||CPViewNotSizable; +_autoresizesSubviews=!objj_msgSend(_1e3,"containsValueForKey:",_1d3)||objj_msgSend(_1e3,"decodeBoolForKey:",_1d3); +_hitTests=!objj_msgSend(_1e3,"containsValueForKey:",_1d7)||objj_msgSend(_1e3,"decodeObjectForKey:",_1d7); +_DOMImageParts=[]; +_DOMImageSizes=[]; +if(!_DOMElement.CPDOMDisplayContext){ +_DOMElement.CPDOMDisplayContext=[]; +} +var _1e4=_DOMElement.CPDOMDisplayContext[0]; +if(!(_1e4>=0)){ +_1e4=_DOMElement.CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_1e4]=0; +CPDOMDisplayServerInstructions[_1e4+1]=_DOMElement; +CPDOMDisplayServerInstructions[_1e4+2]=NULL; +CPDOMDisplayServerInstructions[_1e4+3]=(_frame.origin.x); +CPDOMDisplayServerInstructions[_1e4+4]=(_frame.origin.y); +if(!_DOMElement.CPDOMDisplayContext){ +_DOMElement.CPDOMDisplayContext=[]; +} +var _1e4=_DOMElement.CPDOMDisplayContext[4]; +if(!(_1e4>=0)){ +_1e4=_DOMElement.CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_1e4]=4; +CPDOMDisplayServerInstructions[_1e4+1]=_DOMElement; +CPDOMDisplayServerInstructions[_1e4+2]=(_frame.size.width); +CPDOMDisplayServerInstructions[_1e4+3]=(_frame.size.height); +var _1e5=0,_1e6=_subviews.length; +for(;_1e5<_1e6;++_1e5){ +if(_subviews[_1e5]._DOMElement.CPDOMDisplayContext){ +_subviews[_1e5]._DOMElement.CPDOMDisplayContext[0]=-1; +} +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=6; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_subviews[_1e5]._DOMElement; +} +_displayHash=objj_msgSend(self,"hash"); +if(objj_msgSend(_1e3,"containsValueForKey:",_1d8)){ +objj_msgSend(self,"setHidden:",objj_msgSend(_1e3,"decodeBoolForKey:",_1d8)); +}else{ +_isHidden=NO; +} +if(objj_msgSend(_1e3,"containsValueForKey:",_1d9)){ +objj_msgSend(self,"setAlphaValue:",objj_msgSend(_1e3,"decodeIntForKey:",_1d9)); +}else{ +_opacity=1; +} +objj_msgSend(self,"setBackgroundColor:",objj_msgSend(_1e3,"decodeObjectForKey:",_1d4)); +_theme=objj_msgSend(CPTheme,"defaultTheme"); +_themeState=CPThemeState(objj_msgSend(_1e3,"decodeIntForKey:",_1dd)); +_themeAttributes={}; +var _1e7=objj_msgSend(self,"class"),_1e8=objj_msgSend(_1e7,"themeClass"),_1e9=objj_msgSend(_1e7,"_themeAttributes"),_1e6=_1e9.length; +while(_1e6--){ +var _1ea=_1e9[_1e6--]; +_themeAttributes[_1ea]=CPThemeAttributeDecode(_1e3,_1ea,_1e9[_1e6],_theme,_1e8); +} +objj_msgSend(self,"setNeedsDisplay:",YES); +} +return self; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(self,_cmd,_1ed){ +with(self){ +objj_msgSendSuper({receiver:self,super_class:objj_getClass("CPResponder")},"encodeWithCoder:",_1ed); +if(_tag!==-1){ +objj_msgSend(_1ed,"encodeInt:forKey:",_tag,_1dc); +} +objj_msgSend(_1ed,"encodeRect:forKey:",_frame,_1d6); +objj_msgSend(_1ed,"encodeRect:forKey:",_bounds,_1d5); +if(_window!==nil){ +objj_msgSend(_1ed,"encodeConditionalObject:forKey:",_window,_1de); +} +if(_subviews.length>0){ +objj_msgSend(_1ed,"encodeObject:forKey:",_subviews,_1da); +} +if(_superview!==nil){ +objj_msgSend(_1ed,"encodeConditionalObject:forKey:",_superview,_1db); +} +if(_autoresizingMask!==CPViewNotSizable){ +objj_msgSend(_1ed,"encodeInt:forKey:",_autoresizingMask,_1d2); +} +if(!_autoresizesSubviews){ +objj_msgSend(_1ed,"encodeBool:forKey:",_autoresizesSubviews,_1d3); +} +if(_backgroundColor!==nil){ +objj_msgSend(_1ed,"encodeObject:forKey:",_backgroundColor,_1d4); +} +if(_hitTests!==YES){ +objj_msgSend(_1ed,"encodeBool:forKey:",_hitTests,_1d7); +} +if(_opacity!==1){ +objj_msgSend(_1ed,"encodeFloat:forKey:",_opacity,_1d9); +} +if(_isHidden){ +objj_msgSend(_1ed,"encodeBool:forKey:",_isHidden,_1d8); +} +var _1ee=objj_msgSend(self,"nextKeyView"); +if(_1ee!==nil){ +objj_msgSend(_1ed,"encodeConditionalObject:forKey:",_1ee,_1df); +} +var _1ef=objj_msgSend(self,"previousKeyView"); +if(_1ef!==nil){ +objj_msgSend(_1ed,"encodeConditionalObject:forKey:",_1ef,_1e0); +} +objj_msgSend(_1ed,"encodeInt:forKey:",CPThemeStateName(_themeState),_1dd); +for(var _1f0 in _themeAttributes){ +if(_themeAttributes.hasOwnProperty(_1f0)){ +CPThemeAttributeEncode(_1ed,_themeAttributes[_1f0]); +} +} +} +})]); +var _9e=function(_1f1){ +var _1f2=_1f1._superview; +return {autoresizingMask:_1f1._autoresizingMask,frame:CGRectMakeCopy(_1f1._frame),index:(_1f2?objj_msgSend(_1f2._subviews,"indexOfObjectIdenticalTo:",_1f1):0),superview:_1f2}; +}; +var _dd=function(_1f3,_1f4){ +var _1f5=CGAffineTransformMakeIdentity(),_1f6=YES,_1f7=nil,_1f8=nil; +if(_1f3){ +var view=_1f3; +while(view&&view!=_1f4){ +var _1fa=view._frame; +_1f5.tx+=(_1fa.origin.x); +_1f5.ty+=(_1fa.origin.y); +if(view._boundsTransform){ +var tx=_1f5.tx*view._boundsTransform.a+_1f5.ty*view._boundsTransform.c+view._boundsTransform.tx; +_1f5.ty=_1f5.tx*view._boundsTransform.b+_1f5.ty*view._boundsTransform.d+view._boundsTransform.ty; +_1f5.tx=tx; +var a=_1f5.a*view._boundsTransform.a+_1f5.b*view._boundsTransform.c,b=_1f5.a*view._boundsTransform.b+_1f5.b*view._boundsTransform.d,c=_1f5.c*view._boundsTransform.a+_1f5.d*view._boundsTransform.c; +_1f5.d=_1f5.c*view._boundsTransform.b+_1f5.d*view._boundsTransform.d; +_1f5.a=a; +_1f5.b=b; +_1f5.c=c; +} +view=view._superview; +} +if(view===_1f4){ +return _1f5; +}else{ +if(_1f3&&_1f4){ +_1f7=objj_msgSend(_1f3,"window"); +_1f8=objj_msgSend(_1f4,"window"); +if(_1f7&&_1f8&&_1f7!==_1f8){ +_1f6=NO; +var _1fa=objj_msgSend(_1f7,"frame"); +_1f5.tx+=(_1fa.origin.x); +_1f5.ty+=(_1fa.origin.y); +} +} +} +} +var view=_1f4; +while(view){ +var _1fa=view._frame; +_1f5.tx-=(_1fa.origin.x); +_1f5.ty-=(_1fa.origin.y); +if(view._boundsTransform){ +var tx=_1f5.tx*view._inverseBoundsTransform.a+_1f5.ty*view._inverseBoundsTransform.c+view._inverseBoundsTransform.tx; +_1f5.ty=_1f5.tx*view._inverseBoundsTransform.b+_1f5.ty*view._inverseBoundsTransform.d+view._inverseBoundsTransform.ty; +_1f5.tx=tx; +var a=_1f5.a*view._inverseBoundsTransform.a+_1f5.b*view._inverseBoundsTransform.c,b=_1f5.a*view._inverseBoundsTransform.b+_1f5.b*view._inverseBoundsTransform.d,c=_1f5.c*view._inverseBoundsTransform.a+_1f5.d*view._inverseBoundsTransform.c; +_1f5.d=_1f5.c*view._inverseBoundsTransform.b+_1f5.d*view._inverseBoundsTransform.d; +_1f5.a=a; +_1f5.b=b; +_1f5.c=c; +} +view=view._superview; +} +if(!_1f6){ +var _1fa=objj_msgSend(_1f8,"frame"); +_1f5.tx-=(_1fa.origin.x); +_1f5.ty-=(_1fa.origin.y); +} +return _1f5; +}; +p;11;CPWebView.jI;15;AppKit/CPView.jc;13126; +CPWebViewProgressStartedNotification="CPWebViewProgressStartedNotification"; +CPWebViewProgressFinishedNotification="CPWebViewProgressFinishedNotification"; +CPWebViewScrollAppKit=1; +CPWebViewScrollNative=2; +var _1=objj_allocateClassPair(CPView,"CPWebView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_scrollView"),new objj_ivar("_frameView"),new objj_ivar("_iframe"),new objj_ivar("_mainFrameURL"),new objj_ivar("_backwardStack"),new objj_ivar("_forwardStack"),new objj_ivar("_ignoreLoadStart"),new objj_ivar("_ignoreLoadEnd"),new objj_ivar("_downloadDelegate"),new objj_ivar("_frameLoadDelegate"),new objj_ivar("_policyDelegate"),new objj_ivar("_resourceLoadDelegate"),new objj_ivar("_UIDelegate"),new objj_ivar("_wso"),new objj_ivar("_url"),new objj_ivar("_html"),new objj_ivar("_loadCallback"),new objj_ivar("_scrollMode"),new objj_ivar("_scrollSize")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:frameName:groupName:"),function(_3,_4,_5,_6,_7){ +with(_3){ +if(_3=objj_msgSend(_3,"initWithFrame:",_5)){ +_iframe.name=_6; +} +return _3; +} +}),new objj_method(sel_getUid("initWithFrame:"),function(_8,_9,_a){ +with(_8){ +if(_8=objj_msgSendSuper({receiver:_8,super_class:objj_getClass("CPView")},"initWithFrame:",_a)){ +_mainFrameURL=nil; +_backwardStack=[]; +_forwardStack=[]; +_scrollMode=CPWebViewScrollNative; +objj_msgSend(_8,"_initDOMWithFrame:",_a); +} +return _8; +} +}),new objj_method(sel_getUid("_initDOMWithFrame:"),function(_b,_c,_d){ +with(_b){ +_ignoreLoadStart=YES; +_ignoreLoadEnd=YES; +_iframe=document.createElement("iframe"); +_iframe.name="iframe_"+Math.floor(Math.random()*10000); +_iframe.style.width="100%"; +_iframe.style.height="100%"; +_iframe.style.borderWidth="0px"; +objj_msgSend(_b,"setDrawsBackground:",YES); +_loadCallback=function(){ +if(!_ignoreLoadStart){ +objj_msgSend(_b,"_startedLoading"); +if(_mainFrameURL){ +objj_msgSend(_backwardStack,"addObject:",_mainFrameURL); +} +_mainFrameURL=_iframe.src; +_mainFrameURL=_iframe.src; +objj_msgSend(_forwardStack,"removeAllObjects"); +}else{ +_ignoreLoadStart=NO; +} +if(!_ignoreLoadEnd){ +objj_msgSend(_b,"_finishedLoading"); +}else{ +_ignoreLoadEnd=NO; +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +}; +if(_iframe.addEventListener){ +_iframe.addEventListener("load",_loadCallback,false); +}else{ +if(_iframe.attachEvent){ +_iframe.attachEvent("onload",_loadCallback); +} +} +_frameView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",objj_msgSend(_b,"bounds")); +_scrollView=objj_msgSend(objj_msgSend(CPScrollView,"alloc"),"initWithFrame:",objj_msgSend(_b,"bounds")); +objj_msgSend(_scrollView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +objj_msgSend(_scrollView,"setDocumentView:",_frameView); +_frameView._DOMElement.appendChild(_iframe); +objj_msgSend(_b,"_setScrollMode:",_scrollMode); +objj_msgSend(_b,"addSubview:",_scrollView); +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_e,_f,_10){ +with(_e){ +objj_msgSendSuper({receiver:_e,super_class:objj_getClass("CPView")},"setFrameSize:",_10); +objj_msgSend(_e,"_resizeWebFrame"); +} +}),new objj_method(sel_getUid("_resizeWebFrame"),function(_11,_12){ +with(_11){ +if(_scrollMode===CPWebViewScrollAppKit){ +if(_scrollSize){ +objj_msgSend(_frameView,"setFrameSize:",_scrollSize); +}else{ +objj_msgSend(_frameView,"setFrameSize:",objj_msgSend(_scrollView,"bounds").size); +var win=null; +try{ +win=objj_msgSend(_11,"DOMWindow"); +} +catch(e){ +} +if(win&&win.document){ +var _14=win.document.body.scrollWidth,_15=win.document.body.scrollHeight; +_iframe.setAttribute("width",_14); +_iframe.setAttribute("height",_15); +objj_msgSend(_frameView,"setFrameSize:",CGSizeMake(_14,_15)); +}else{ +CPLog.warn("using default size 800*1600"); +objj_msgSend(_frameView,"setFrameSize:",CGSizeMake(800,1600)); +} +} +} +} +}),new objj_method(sel_getUid("setScrollMode:"),function(_16,_17,_18){ +with(_16){ +if(_scrollMode==_18){ +return; +} +objj_msgSend(_16,"_setScrollMode:",_18); +} +}),new objj_method(sel_getUid("_setScrollMode:"),function(_19,_1a,_1b){ +with(_19){ +_scrollMode=_1b; +_ignoreLoadStart=YES; +_ignoreLoadEnd=YES; +var _1c=_iframe.parentNode; +_1c.removeChild(_iframe); +if(_scrollMode===CPWebViewScrollAppKit){ +objj_msgSend(_scrollView,"setHasHorizontalScroller:",YES); +objj_msgSend(_scrollView,"setHasVerticalScroller:",YES); +_iframe.setAttribute("scrolling","no"); +}else{ +objj_msgSend(_scrollView,"setHasHorizontalScroller:",NO); +objj_msgSend(_scrollView,"setHasVerticalScroller:",NO); +_iframe.setAttribute("scrolling","auto"); +objj_msgSend(_frameView,"setFrameSize:",objj_msgSend(_scrollView,"bounds").size); +} +_1c.appendChild(_iframe); +} +}),new objj_method(sel_getUid("loadHTMLString:"),function(_1d,_1e,_1f){ +with(_1d){ +objj_msgSend(_1d,"loadHTMLString:baseURL:",_1f,nil); +} +}),new objj_method(sel_getUid("loadHTMLString:baseURL:"),function(_20,_21,_22,URL){ +with(_20){ +objj_msgSend(_20,"_setScrollMode:",CPWebViewScrollAppKit); +objj_msgSend(_20,"_startedLoading"); +_ignoreLoadStart=YES; +_ignoreLoadEnd=NO; +_url=null; +_html=_22; +objj_msgSend(_20,"_load"); +} +}),new objj_method(sel_getUid("_loadMainFrameURL"),function(_24,_25){ +with(_24){ +objj_msgSend(_24,"_setScrollMode:",CPWebViewScrollNative); +objj_msgSend(_24,"_startedLoading"); +_ignoreLoadStart=YES; +_ignoreLoadEnd=NO; +_url=_mainFrameURL; +_html=null; +objj_msgSend(_24,"_load"); +} +}),new objj_method(sel_getUid("_load"),function(_26,_27){ +with(_26){ +if(_url){ +_iframe.src=_url; +}else{ +if(_html){ +_iframe.src=""; +window.setTimeout(function(){ +var win=objj_msgSend(_26,"DOMWindow"); +win.document.write(_html); +window.setTimeout(_loadCallback,1); +},0); +} +} +} +}),new objj_method(sel_getUid("_startedLoading"),function(_29,_2a){ +with(_29){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPWebViewProgressStartedNotification,_29); +if(objj_msgSend(_frameLoadDelegate,"respondsToSelector:",sel_getUid("webView:didStartProvisionalLoadForFrame:"))){ +objj_msgSend(_frameLoadDelegate,"webView:didStartProvisionalLoadForFrame:",_29,nil); +} +} +}),new objj_method(sel_getUid("_finishedLoading"),function(_2b,_2c){ +with(_2b){ +objj_msgSend(_2b,"_resizeWebFrame"); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPWebViewProgressFinishedNotification,_2b); +if(objj_msgSend(_frameLoadDelegate,"respondsToSelector:",sel_getUid("webView:didFinishLoadForFrame:"))){ +objj_msgSend(_frameLoadDelegate,"webView:didFinishLoadForFrame:",_2b,nil); +} +} +}),new objj_method(sel_getUid("mainFrameURL"),function(_2d,_2e){ +with(_2d){ +return _mainFrameURL; +} +}),new objj_method(sel_getUid("setMainFrameURL:"),function(_2f,_30,_31){ +with(_2f){ +if(_mainFrameURL){ +objj_msgSend(_backwardStack,"addObject:",_mainFrameURL); +} +_mainFrameURL=_31; +objj_msgSend(_forwardStack,"removeAllObjects"); +objj_msgSend(_2f,"_loadMainFrameURL"); +} +}),new objj_method(sel_getUid("goBack"),function(_32,_33){ +with(_32){ +if(_backwardStack.length>0){ +if(_mainFrameURL){ +objj_msgSend(_forwardStack,"addObject:",_mainFrameURL); +} +_mainFrameURL=objj_msgSend(_backwardStack,"lastObject"); +objj_msgSend(_backwardStack,"removeLastObject"); +objj_msgSend(_32,"_loadMainFrameURL"); +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("goForward"),function(_34,_35){ +with(_34){ +if(_forwardStack.length>0){ +if(_mainFrameURL){ +objj_msgSend(_backwardStack,"addObject:",_mainFrameURL); +} +_mainFrameURL=objj_msgSend(_forwardStack,"lastObject"); +objj_msgSend(_forwardStack,"removeLastObject"); +objj_msgSend(_34,"_loadMainFrameURL"); +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("canGoBack"),function(_36,_37){ +with(_36){ +return (_backwardStack.length>0); +} +}),new objj_method(sel_getUid("canGoForward"),function(_38,_39){ +with(_38){ +return (_forwardStack.length>0); +} +}),new objj_method(sel_getUid("backForwardList"),function(_3a,_3b){ +with(_3a){ +return {back:_backwardStack,forward:_forwardStack}; +} +}),new objj_method(sel_getUid("close"),function(_3c,_3d){ +with(_3c){ +_iframe.parentNode.removeChild(_iframe); +} +}),new objj_method(sel_getUid("DOMWindow"),function(_3e,_3f){ +with(_3e){ +return (_iframe.contentDocument&&_iframe.contentDocument.defaultView)||_iframe.contentWindow; +} +}),new objj_method(sel_getUid("windowScriptObject"),function(_40,_41){ +with(_40){ +var win=objj_msgSend(_40,"DOMWindow"); +if(!_wso||win!=objj_msgSend(_wso,"window")){ +if(win){ +_wso=objj_msgSend(objj_msgSend(CPWebScriptObject,"alloc"),"initWithWindow:",win); +}else{ +_wso=nil; +} +} +return _wso; +} +}),new objj_method(sel_getUid("stringByEvaluatingJavaScriptFromString:"),function(_43,_44,_45){ +with(_43){ +var _46=objj_msgSend(_43,"objectByEvaluatingJavaScriptFromString:",_45); +return _46?String(_46):nil; +} +}),new objj_method(sel_getUid("objectByEvaluatingJavaScriptFromString:"),function(_47,_48,_49){ +with(_47){ +return objj_msgSend(objj_msgSend(_47,"windowScriptObject"),"evaluateWebScript:",_49); +} +}),new objj_method(sel_getUid("computedStyleForElement:pseudoElement:"),function(_4a,_4b,_4c,_4d){ +with(_4a){ +var win=objj_msgSend(objj_msgSend(_4a,"windowScriptObject"),"window"); +if(win){ +return win.document.defaultView.getComputedStyle(_4c,_4d); +} +return nil; +} +}),new objj_method(sel_getUid("drawsBackground"),function(_4f,_50){ +with(_4f){ +return _iframe.style.backgroundColor!=""; +} +}),new objj_method(sel_getUid("setDrawsBackground:"),function(_51,_52,_53){ +with(_51){ +_iframe.style.backgroundColor=_53?"white":""; +} +}),new objj_method(sel_getUid("takeStringURLFrom:"),function(_54,_55,_56){ +with(_54){ +objj_msgSend(_54,"setMainFrameURL:",objj_msgSend(_56,"stringValue")); +} +}),new objj_method(sel_getUid("goBack:"),function(_57,_58,_59){ +with(_57){ +objj_msgSend(_57,"goBack"); +} +}),new objj_method(sel_getUid("goForward:"),function(_5a,_5b,_5c){ +with(_5a){ +objj_msgSend(_5a,"goForward"); +} +}),new objj_method(sel_getUid("stopLoading:"),function(_5d,_5e,_5f){ +with(_5d){ +} +}),new objj_method(sel_getUid("reload:"),function(_60,_61,_62){ +with(_60){ +objj_msgSend(_60,"_loadMainFrameURL"); +} +}),new objj_method(sel_getUid("print:"),function(_63,_64,_65){ +with(_63){ +try{ +objj_msgSend(_63,"DOMWindow").print(); +} +catch(e){ +alert("Please click the webpage and select \"Print\" from the \"File\" menu"); +} +} +}),new objj_method(sel_getUid("downloadDelegate"),function(_66,_67){ +with(_66){ +return _downloadDelegate; +} +}),new objj_method(sel_getUid("setDownloadDelegate:"),function(_68,_69,_6a){ +with(_68){ +_downloadDelegate=_6a; +} +}),new objj_method(sel_getUid("frameLoadDelegate"),function(_6b,_6c){ +with(_6b){ +return _frameLoadDelegate; +} +}),new objj_method(sel_getUid("setFrameLoadDelegate:"),function(_6d,_6e,_6f){ +with(_6d){ +_frameLoadDelegate=_6f; +} +}),new objj_method(sel_getUid("policyDelegate"),function(_70,_71){ +with(_70){ +return _policyDelegate; +} +}),new objj_method(sel_getUid("setPolicyDelegate:"),function(_72,_73,_74){ +with(_72){ +_policyDelegate=_74; +} +}),new objj_method(sel_getUid("resourceLoadDelegate"),function(_75,_76){ +with(_75){ +return _resourceLoadDelegate; +} +}),new objj_method(sel_getUid("setResourceLoadDelegate:"),function(_77,_78,_79){ +with(_77){ +_resourceLoadDelegate=_79; +} +}),new objj_method(sel_getUid("UIDelegate"),function(_7a,_7b){ +with(_7a){ +return _UIDelegate; +} +}),new objj_method(sel_getUid("setUIDelegate:"),function(_7c,_7d,_7e){ +with(_7c){ +_UIDelegate=_7e; +} +})]); +var _1=objj_allocateClassPair(CPObject,"CPWebScriptObject"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_window")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithWindow:"),function(_7f,_80,_81){ +with(_7f){ +if(_7f=objj_msgSendSuper({receiver:_7f,super_class:objj_getClass("CPObject")},"init")){ +_window=_81; +} +return _7f; +} +}),new objj_method(sel_getUid("callWebScriptMethod:withArguments:"),function(_82,_83,_84,_85){ +with(_82){ +if(typeof _window[_84]=="function"){ +try{ +return _window[_84].apply(_85); +} +catch(e){ +} +} +return undefined; +} +}),new objj_method(sel_getUid("evaluateWebScript:"),function(_86,_87,_88){ +with(_86){ +try{ +return _window.eval(_88); +} +catch(e){ +} +return undefined; +} +}),new objj_method(sel_getUid("window"),function(_89,_8a){ +with(_89){ +return _window; +} +})]); +var _1=objj_getClass("CPWebView"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPWebView\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_8b,_8c,_8d){ +with(_8b){ +_8b=objj_msgSendSuper({receiver:_8b,super_class:objj_getClass("CPView")},"initWithCoder:",_8d); +if(_8b){ +_mainFrameURL=nil; +_backwardStack=[]; +_forwardStack=[]; +_scrollMode=CPWebViewScrollNative; +objj_msgSend(_8b,"_initDOMWithFrame:",objj_msgSend(_8b,"frame")); +objj_msgSend(_8b,"setBackgroundColor:",objj_msgSend(CPColor,"whiteColor")); +} +return _8b; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_8e,_8f,_90){ +with(_8e){ +var _91=_subviews; +_subviews=[]; +objj_msgSendSuper({receiver:_8e,super_class:objj_getClass("CPView")},"encodeWithCoder:",_90); +_subviews=_91; +} +})]); +p;10;CPWindow.jI;25;Foundation/CPCountedSet.jI;33;Foundation/CPNotificationCenter.jI;26;Foundation/CPUndoManager.ji;12;CGGeometry.ji;13;CPAnimation.ji;13;CPResponder.jc;43828; +CPBorderlessWindowMask=0; +CPTitledWindowMask=1<<0; +CPClosableWindowMask=1<<1; +CPMiniaturizableWindowMask=1<<2; +CPResizableWindowMask=1<<3; +CPTexturedBackgroundWindowMask=1<<8; +CPBorderlessBridgeWindowMask=1<<20; +CPHUDBackgroundWindowMask=1<<21; +CPWindowNotSizable=0; +CPWindowMinXMargin=1; +CPWindowWidthSizable=2; +CPWindowMaxXMargin=4; +CPWindowMinYMargin=8; +CPWindowHeightSizable=16; +CPWindowMaxYMargin=32; +CPBackgroundWindowLevel=-1; +CPNormalWindowLevel=4; +CPFloatingWindowLevel=5; +CPSubmenuWindowLevel=6; +CPTornOffMenuWindowLevel=6; +CPMainMenuWindowLevel=8; +CPStatusWindowLevel=9; +CPModalPanelWindowLevel=10; +CPPopUpMenuWindowLevel=11; +CPDraggingWindowLevel=12; +CPScreenSaverWindowLevel=13; +CPWindowOut=0; +CPWindowAbove=1; +CPWindowBelow=2; +CPWindowWillCloseNotification="CPWindowWillCloseNotification"; +CPWindowDidBecomeMainNotification="CPWindowDidBecomeMainNotification"; +CPWindowDidResignMainNotification="CPWindowDidResignMainNotification"; +CPWindowDidMoveNotification="CPWindowDidMoveNotification"; +var _1=20,_2=19,_3=10,_4=10,_5=5,_6=nil; +var _7=nil,_8=nil; +var _9=objj_allocateClassPair(CPResponder,"CPWindow"),_a=_9.isa; +class_addIvars(_9,[new objj_ivar("_windowNumber"),new objj_ivar("_styleMask"),new objj_ivar("_frame"),new objj_ivar("_level"),new objj_ivar("_isVisible"),new objj_ivar("_isAnimating"),new objj_ivar("_hasShadow"),new objj_ivar("_isMovableByWindowBackground"),new objj_ivar("_isDocumentEdited"),new objj_ivar("_isDocumentSaving"),new objj_ivar("_shadowView"),new objj_ivar("_windowView"),new objj_ivar("_contentView"),new objj_ivar("_toolbarView"),new objj_ivar("_mouseOverView"),new objj_ivar("_leftMouseDownView"),new objj_ivar("_rightMouseDownView"),new objj_ivar("_toolbar"),new objj_ivar("_firstResponder"),new objj_ivar("_initialFirstResponder"),new objj_ivar("_delegate"),new objj_ivar("_title"),new objj_ivar("_acceptsMouseMovedEvents"),new objj_ivar("_ignoresMouseEvents"),new objj_ivar("_windowController"),new objj_ivar("_minSize"),new objj_ivar("_maxSize"),new objj_ivar("_undoManager"),new objj_ivar("_representedURL"),new objj_ivar("_registeredDraggedTypes"),new objj_ivar("_registeredDraggedTypesArray"),new objj_ivar("_inclusiveRegisteredDraggedTypes"),new objj_ivar("_defaultButton"),new objj_ivar("_defaultButtonEnabled"),new objj_ivar("_autorecalculatesKeyViewLoop"),new objj_ivar("_keyViewLoopIsDirty"),new objj_ivar("_DOMElement"),new objj_ivar("_bridge"),new objj_ivar("_autoresizingMask"),new objj_ivar("_delegateRespondsToWindowWillReturnUndoManagerSelector"),new objj_ivar("_isFullBridge"),new objj_ivar("_fullBridgeSession")]); +objj_registerClassPair(_9); +objj_addClassForBundle(_9,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_9,[new objj_method(sel_getUid("initWithContentRect:styleMask:"),function(_b,_c,_d,_e){ +with(_b){ +return objj_msgSend(_b,"initWithContentRect:styleMask:bridge:",_d,_e,objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge")); +} +}),new objj_method(sel_getUid("initWithContentRect:styleMask:bridge:"),function(_f,_10,_11,_12,_13){ +with(_f){ +_f=objj_msgSendSuper({receiver:_f,super_class:objj_getClass("CPResponder")},"init"); +if(_f){ +_isFullBridge=NO; +_registeredDraggedTypes=objj_msgSend(CPSet,"set"); +_registeredDraggedTypesArray=[]; +_windowNumber=objj_msgSend(CPApp._windows,"count"); +CPApp._windows[_windowNumber]=_f; +_styleMask=_12; +_level=CPNormalWindowLevel; +_minSize=CGSizeMake(0,0); +_maxSize=CGSizeMake(1000000,1000000); +var _14=objj_msgSend(objj_msgSend(_f,"class"),"_windowViewClassForStyleMask:",_12); +_frame=objj_msgSend(_14,"frameRectForContentRect:",_11); +_windowView=objj_msgSend(objj_msgSend(_14,"alloc"),"initWithFrame:styleMask:",CGRectMake(0,0,CGRectGetWidth(_frame),CGRectGetHeight(_frame)),_12); +objj_msgSend(_windowView,"_setWindow:",_f); +objj_msgSend(_windowView,"setNextResponder:",_f); +objj_msgSend(_f,"setMovableByWindowBackground:",_12&CPHUDBackgroundWindowMask); +objj_msgSend(_f,"setContentView:",objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMakeZero())); +_firstResponder=_f; +_DOMElement=document.createElement("div"); +_DOMElement.style.position="absolute"; +_DOMElement.style.visibility="visible"; +_DOMElement.style.zIndex=0; +if(!_DOMElement.CPDOMDisplayContext){ +_DOMElement.CPDOMDisplayContext=[]; +} +var _15=_DOMElement.CPDOMDisplayContext[0]; +if(!(_15>=0)){ +_15=_DOMElement.CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_15]=0; +CPDOMDisplayServerInstructions[_15+1]=_DOMElement; +CPDOMDisplayServerInstructions[_15+2]=NULL; +CPDOMDisplayServerInstructions[_15+3]=(_frame.origin.x); +CPDOMDisplayServerInstructions[_15+4]=(_frame.origin.y); +if(!_DOMElement.CPDOMDisplayContext){ +_DOMElement.CPDOMDisplayContext=[]; +} +var _15=_DOMElement.CPDOMDisplayContext[4]; +if(!(_15>=0)){ +_15=_DOMElement.CPDOMDisplayContext[4]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=4; +} +CPDOMDisplayServerInstructions[_15]=4; +CPDOMDisplayServerInstructions[_15+1]=_DOMElement; +CPDOMDisplayServerInstructions[_15+2]=1; +CPDOMDisplayServerInstructions[_15+3]=1; +if(_windowView._DOMElement.CPDOMDisplayContext){ +_windowView._DOMElement.CPDOMDisplayContext[0]=-1; +} +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=6; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_windowView._DOMElement; +objj_msgSend(_f,"setBridge:",_13); +objj_msgSend(_f,"setNextResponder:",CPApp); +objj_msgSend(_f,"setHasShadow:",_12!==CPBorderlessWindowMask); +if(_12&CPBorderlessBridgeWindowMask){ +objj_msgSend(_f,"setFullBridge:",YES); +} +_defaultButtonEnabled=YES; +_keyViewLoopIsDirty=YES; +} +return _f; +} +}),new objj_method(sel_getUid("awakeFromCib"),function(_16,_17){ +with(_16){ +if(_initialFirstResponder){ +objj_msgSend(_16,"makeFirstResponder:",_initialFirstResponder); +} +_keyViewLoopIsDirty=!objj_msgSend(_16,"_hasKeyViewLoop"); +} +}),new objj_method(sel_getUid("_setWindowView:"),function(_18,_19,_1a){ +with(_18){ +if(_windowView===_1a){ +return; +} +var _1b=_windowView; +_windowView=_1a; +if(_1b){ +objj_msgSend(_1b,"_setWindow:",nil); +objj_msgSend(_1b,"noteToolbarChanged"); +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=8; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_1b._DOMElement; +} +if(_windowView){ +if(_windowView._DOMElement.CPDOMDisplayContext){ +_windowView._DOMElement.CPDOMDisplayContext[0]=-1; +} +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=6; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_windowView._DOMElement; +var _1c=objj_msgSend(_contentView,"convertRect:toView:",objj_msgSend(_contentView,"bounds"),nil); +_1c.origin=objj_msgSend(_18,"convertBaseToBridge:",_1c.origin); +objj_msgSend(_windowView,"_setWindow:",_18); +objj_msgSend(_windowView,"setNextResponder:",_18); +objj_msgSend(_windowView,"addSubview:",_contentView); +objj_msgSend(_windowView,"setTitle:",_title); +objj_msgSend(_windowView,"noteToolbarChanged"); +objj_msgSend(_18,"setFrame:",objj_msgSend(_18,"frameRectForContentRect:",_1c)); +} +} +}),new objj_method(sel_getUid("setFullBridge:"),function(_1d,_1e,_1f){ +with(_1d){ +_1f=!!_1f; +if(_isFullBridge===_1f){ +return; +} +_isFullBridge=_1f; +if(_isFullBridge){ +_fullBridgeSession=_CPWindowFullBridgeSessionMake(_windowView,objj_msgSend(_1d,"contentRectForFrameRect:",objj_msgSend(_1d,"frame")),objj_msgSend(_1d,"hasShadow"),objj_msgSend(_1d,"level")); +var _20=objj_msgSend(objj_msgSend(_1d,"class"),"_windowViewClassForFullBridgeStyleMask:",_styleMask),_21=objj_msgSend(objj_msgSend(_20,"alloc"),"initWithFrame:styleMask:",CGRectMakeZero(),_styleMask); +objj_msgSend(_1d,"_setWindowView:",_21); +objj_msgSend(_1d,"setLevel:",CPBackgroundWindowLevel); +objj_msgSend(_1d,"setHasShadow:",NO); +objj_msgSend(_1d,"setAutoresizingMask:",CPWindowWidthSizable|CPWindowHeightSizable); +objj_msgSend(_1d,"setFrame:",objj_msgSend(_bridge,"visibleFrame")); +}else{ +var _21=_fullBridgeSession.windowView; +objj_msgSend(_1d,"_setWindowView:",_21); +objj_msgSend(_1d,"setLevel:",_fullBridgeSession.level); +objj_msgSend(_1d,"setHasShadow:",_fullBridgeSession.hasShadow); +objj_msgSend(_1d,"setAutoresizingMask:",CPWindowNotSizable); +objj_msgSend(_1d,"setFrame:",objj_msgSend(_21,"frameRectForContentRect:",_fullBridgeSession.contentRect)); +} +} +}),new objj_method(sel_getUid("isFullBridge"),function(_22,_23){ +with(_22){ +return _isFullBridge; +} +}),new objj_method(sel_getUid("styleMask"),function(_24,_25){ +with(_24){ +return _styleMask; +} +}),new objj_method(sel_getUid("contentRectForFrameRect:"),function(_26,_27,_28){ +with(_26){ +return objj_msgSend(_windowView,"contentRectForFrameRect:",_28); +} +}),new objj_method(sel_getUid("frameRectForContentRect:"),function(_29,_2a,_2b){ +with(_29){ +return objj_msgSend(_windowView,"frameRectForContentRect:",_2b); +} +}),new objj_method(sel_getUid("frame"),function(_2c,_2d){ +with(_2c){ +return {origin:{x:_frame.origin.x,y:_frame.origin.y},size:{width:_frame.size.width,height:_frame.size.height}}; +} +}),new objj_method(sel_getUid("setFrame:display:animate:"),function(_2e,_2f,_30,_31,_32){ +with(_2e){ +if(_32){ +var _33=objj_msgSend(objj_msgSend(_CPWindowFrameAnimation,"alloc"),"initWithWindow:targetFrame:",_2e,_30); +objj_msgSend(_33,"startAnimation"); +}else{ +objj_msgSend(_2e,"setFrameOrigin:",_30.origin); +objj_msgSend(_2e,"setFrameSize:",_30.size); +} +} +}),new objj_method(sel_getUid("setFrame:"),function(_34,_35,_36){ +with(_34){ +objj_msgSend(_34,"setFrame:display:animate:",_36,YES,NO); +} +}),new objj_method(sel_getUid("setFrameOrigin:"),function(_37,_38,_39){ +with(_37){ +var _3a=_frame.origin; +if((_3a.x==_39.x&&_3a.y==_39.y)){ +return; +} +_3a.x=_39.x; +_3a.y=_39.y; +if(!_DOMElement.CPDOMDisplayContext){ +_DOMElement.CPDOMDisplayContext=[]; +} +var _3b=_DOMElement.CPDOMDisplayContext[0]; +if(!(_3b>=0)){ +_3b=_DOMElement.CPDOMDisplayContext[0]=CPDOMDisplayServerInstructionCount; +CPDOMDisplayServerInstructionCount+=5; +} +CPDOMDisplayServerInstructions[_3b]=0; +CPDOMDisplayServerInstructions[_3b+1]=_DOMElement; +CPDOMDisplayServerInstructions[_3b+2]=NULL; +CPDOMDisplayServerInstructions[_3b+3]=_3a.x; +CPDOMDisplayServerInstructions[_3b+4]=_3a.y; +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPWindowDidMoveNotification,_37); +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_3c,_3d,_3e){ +with(_3c){ +_3e={width:MIN(MAX(_3e.width,_minSize.width),_maxSize.width),height:MIN(MAX(_3e.height,_minSize.height),_maxSize.height)}; +if((_frame.size.width==_3e.width&&_frame.size.height==_3e.height)){ +return; +} +_frame.size=_3e; +objj_msgSend(_windowView,"setFrameSize:",_3e); +if(_hasShadow){ +objj_msgSend(_shadowView,"setFrameSize:",{width:_1+_3e.width+_2,height:_4+_3e.height+_3+_5}); +} +if(!_isAnimating&&objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowDidResize:"))){ +objj_msgSend(_delegate,"windowDidResize:",_3c); +} +} +}),new objj_method(sel_getUid("orderFront:"),function(_3f,_40,_41){ +with(_3f){ +objj_msgSend(_bridge,"order:window:relativeTo:",CPWindowAbove,_3f,nil); +} +}),new objj_method(sel_getUid("orderBack:"),function(_42,_43,_44){ +with(_42){ +} +}),new objj_method(sel_getUid("orderOut:"),function(_45,_46,_47){ +with(_45){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowWillClose:"))){ +objj_msgSend(_delegate,"windowWillClose:",_45); +} +objj_msgSend(_bridge,"order:window:relativeTo:",CPWindowOut,_45,nil); +if(objj_msgSend(CPApp,"keyWindow")==_45){ +objj_msgSend(_45,"resignKeyWindow"); +CPApp._keyWindow=nil; +} +} +}),new objj_method(sel_getUid("orderWindow:relativeTo:"),function(_48,_49,_4a,_4b){ +with(_48){ +objj_msgSend(_bridge,"order:window:relativeTo:",_4a,_48,CPApp._windows[_4b]); +} +}),new objj_method(sel_getUid("setLevel:"),function(_4c,_4d,_4e){ +with(_4c){ +_level=_4e; +} +}),new objj_method(sel_getUid("level"),function(_4f,_50){ +with(_4f){ +return _level; +} +}),new objj_method(sel_getUid("isVisible"),function(_51,_52){ +with(_51){ +return _isVisible; +} +}),new objj_method(sel_getUid("showsResizeIndicator"),function(_53,_54){ +with(_53){ +return objj_msgSend(_windowView,"showsResizeIndicator"); +} +}),new objj_method(sel_getUid("setShowsResizeIndicator:"),function(_55,_56,_57){ +with(_55){ +objj_msgSend(_windowView,"setShowsResizeIndicator:",_57); +} +}),new objj_method(sel_getUid("resizeIndicatorOffset"),function(_58,_59){ +with(_58){ +return objj_msgSend(_windowView,"resizeIndicatorOffset"); +} +}),new objj_method(sel_getUid("setResizeIndicatorOffset:"),function(_5a,_5b,_5c){ +with(_5a){ +objj_msgSend(_windowView,"setResizeIndicatorOffset:",_5c); +} +}),new objj_method(sel_getUid("setContentView:"),function(_5d,_5e,_5f){ +with(_5d){ +if(_contentView){ +objj_msgSend(_contentView,"removeFromSuperview"); +} +var _60=CGRectMake(0,0,CGRectGetWidth(_frame),CGRectGetHeight(_frame)); +_contentView=_5f; +objj_msgSend(_contentView,"setFrame:",objj_msgSend(_5d,"contentRectForFrameRect:",_60)); +objj_msgSend(_contentView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +objj_msgSend(_windowView,"addSubview:",_contentView); +} +}),new objj_method(sel_getUid("contentView"),function(_61,_62){ +with(_61){ +return _contentView; +} +}),new objj_method(sel_getUid("setBackgroundColor:"),function(_63,_64,_65){ +with(_63){ +objj_msgSend(_windowView,"setBackgroundColor:",_65); +} +}),new objj_method(sel_getUid("backgroundColor"),function(_66,_67){ +with(_66){ +return objj_msgSend(_windowView,"backgroundColor"); +} +}),new objj_method(sel_getUid("setMinSize:"),function(_68,_69,_6a){ +with(_68){ +if(CGSizeEqualToSize(_minSize,_6a)){ +return; +} +_minSize=CGSizeCreateCopy(_6a); +var _6b=CGSizeMakeCopy(objj_msgSend(_68,"frame").size),_6c=NO; +if(_6b.width<_minSize.width){ +_6b.width=_minSize.width; +_6c=YES; +} +if(_6b.height<_minSize.height){ +_6b.height=_minSize.height; +_6c=YES; +} +if(_6c){ +objj_msgSend(_68,"setFrameSize:",_6b); +} +} +}),new objj_method(sel_getUid("minSize"),function(_6d,_6e){ +with(_6d){ +return _minSize; +} +}),new objj_method(sel_getUid("setMaxSize:"),function(_6f,_70,_71){ +with(_6f){ +if(CGSizeEqualToSize(_maxSize,_71)){ +return; +} +_maxSize=CGSizeCreateCopy(_71); +var _72=CGSizeMakeCopy(objj_msgSend(_6f,"frame").size),_73=NO; +if(_72.width>_maxSize.width){ +_72.width=_maxSize.width; +_73=YES; +} +if(_72.height>_maxSize.height){ +_72.height=_maxSize.height; +_73=YES; +} +if(_73){ +objj_msgSend(_6f,"setFrameSize:",_72); +} +} +}),new objj_method(sel_getUid("maxSize"),function(_74,_75){ +with(_74){ +return _maxSize; +} +}),new objj_method(sel_getUid("hasShadow"),function(_76,_77){ +with(_76){ +return _hasShadow; +} +}),new objj_method(sel_getUid("setHasShadow:"),function(_78,_79,_7a){ +with(_78){ +if(_hasShadow===_7a){ +return; +} +_hasShadow=_7a; +if(_hasShadow){ +var _7b=objj_msgSend(_windowView,"bounds"); +_shadowView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(-_1,-_3+_5,_1+CGRectGetWidth(_7b)+_2,_3+CGRectGetHeight(_7b)+_4)); +if(!_6){ +var _7c=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPWindow,"class")); +_6=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7c,"pathForResource:","CPWindow/CPWindowShadow0.png"),CGSizeMake(20,19)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7c,"pathForResource:","CPWindow/CPWindowShadow1.png"),CGSizeMake(1,19)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7c,"pathForResource:","CPWindow/CPWindowShadow2.png"),CGSizeMake(19,19)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7c,"pathForResource:","CPWindow/CPWindowShadow3.png"),CGSizeMake(20,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7c,"pathForResource:","CPWindow/CPWindowShadow4.png"),CGSizeMake(1,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7c,"pathForResource:","CPWindow/CPWindowShadow5.png"),CGSizeMake(19,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7c,"pathForResource:","CPWindow/CPWindowShadow6.png"),CGSizeMake(20,18)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7c,"pathForResource:","CPWindow/CPWindowShadow7.png"),CGSizeMake(1,18)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7c,"pathForResource:","CPWindow/CPWindowShadow8.png"),CGSizeMake(19,18))])); +} +objj_msgSend(_shadowView,"setBackgroundColor:",_6); +objj_msgSend(_shadowView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +if(_shadowView._DOMElement.CPDOMDisplayContext){ +_shadowView._DOMElement.CPDOMDisplayContext[0]=-1; +} +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=7; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_shadowView._DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_windowView._DOMElement; +}else{ +if(_shadowView){ +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=8; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_shadowView._DOMElement; +_shadowView=nil; +} +} +} +}),new objj_method(sel_getUid("setDelegate:"),function(_7d,_7e,_7f){ +with(_7d){ +_delegate=_7f; +_delegateRespondsToWindowWillReturnUndoManagerSelector=objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowWillReturnUndoManager:")); +var _80=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowDidBecomeMain:"))){ +objj_msgSend(_80,"addObserver:selector:name:object:",_delegate,sel_getUid("windowDidBecomeMain:"),CPWindowDidBecomeMainNotification,_7d); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowDidResignMain:"))){ +objj_msgSend(_80,"addObserver:selector:name:object:",_delegate,sel_getUid("windowDidResignMain:"),CPWindowDidResignMainNotification,_7d); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowDidMove:"))){ +objj_msgSend(_80,"addObserver:selector:name:object:",_delegate,sel_getUid("windowDidMove:"),CPWindowDidMoveNotification,_7d); +} +} +}),new objj_method(sel_getUid("delegate"),function(_81,_82){ +with(_81){ +return _delegate; +} +}),new objj_method(sel_getUid("setWindowController:"),function(_83,_84,_85){ +with(_83){ +_windowController=_85; +} +}),new objj_method(sel_getUid("windowController"),function(_86,_87){ +with(_86){ +return _windowController; +} +}),new objj_method(sel_getUid("doCommandBySelector:"),function(_88,_89,_8a){ +with(_88){ +if(objj_msgSend(_delegate,"respondsToSelector:",_8a)){ +objj_msgSend(_delegate,"performSelector:",_8a); +}else{ +objj_msgSendSuper({receiver:_88,super_class:objj_getClass("CPResponder")},"doCommandBySelector:",_8a); +} +} +}),new objj_method(sel_getUid("acceptsFirstResponder"),function(_8b,_8c){ +with(_8b){ +return YES; +} +}),new objj_method(sel_getUid("makeFirstResponder:"),function(_8d,_8e,_8f){ +with(_8d){ +if(_firstResponder==_8f){ +return YES; +} +if(!objj_msgSend(_firstResponder,"resignFirstResponder")){ +return NO; +} +if(!_8f||!objj_msgSend(_8f,"acceptsFirstResponder")||!objj_msgSend(_8f,"becomeFirstResponder")){ +_firstResponder=_8d; +return NO; +} +_firstResponder=_8f; +return YES; +} +}),new objj_method(sel_getUid("firstResponder"),function(_90,_91){ +with(_90){ +return _firstResponder; +} +}),new objj_method(sel_getUid("acceptsMouseMovedEvents"),function(_92,_93){ +with(_92){ +return _acceptsMouseMovedEvents; +} +}),new objj_method(sel_getUid("setAcceptsMouseMovedEvents:"),function(_94,_95,_96){ +with(_94){ +_acceptsMouseMovedEvents=_96; +} +}),new objj_method(sel_getUid("ignoresMouseEvents"),function(_97,_98){ +with(_97){ +return _ignoresMouseEvents; +} +}),new objj_method(sel_getUid("setIgnoresMouseEvents:"),function(_99,_9a,_9b){ +with(_99){ +_ignoresMouseEvents=_9b; +} +}),new objj_method(sel_getUid("title"),function(_9c,_9d){ +with(_9c){ +return _title; +} +}),new objj_method(sel_getUid("setTitle:"),function(_9e,_9f,_a0){ +with(_9e){ +_title=_a0; +objj_msgSend(_windowView,"setTitle:",_a0); +objj_msgSend(_9e,"_synchronizeMenuBarTitleWithWindowTitle"); +} +}),new objj_method(sel_getUid("setTitleWithRepresentedFilename:"),function(_a1,_a2,_a3){ +with(_a1){ +objj_msgSend(_a1,"setRepresentedFilename:",_a3); +objj_msgSend(_a1,"setTitle:",objj_msgSend(_a3,"lastPathComponent")); +} +}),new objj_method(sel_getUid("setRepresentedFilename:"),function(_a4,_a5,_a6){ +with(_a4){ +objj_msgSend(_a4,"setRepresentedURL:",_a6); +} +}),new objj_method(sel_getUid("representedFilename"),function(_a7,_a8){ +with(_a7){ +return _representedURL; +} +}),new objj_method(sel_getUid("setRepresentedURL:"),function(_a9,_aa,_ab){ +with(_a9){ +_representedURL=_ab; +} +}),new objj_method(sel_getUid("representedURL"),function(_ac,_ad){ +with(_ac){ +return _representedURL; +} +}),new objj_method(sel_getUid("setMovableByWindowBackground:"),function(_ae,_af,_b0){ +with(_ae){ +_isMovableByWindowBackground=_b0; +} +}),new objj_method(sel_getUid("isMovableByWindowBackground"),function(_b1,_b2){ +with(_b1){ +return _isMovableByWindowBackground; +} +}),new objj_method(sel_getUid("center"),function(_b3,_b4){ +with(_b3){ +var _b5=objj_msgSend(_b3,"frame").size,_b6=objj_msgSend(_bridge,"contentBounds").size; +objj_msgSend(_b3,"setFrameOrigin:",CGPointMake((_b6.width-_b5.width)/2,(_b6.height-_b5.height)/2)); +} +}),new objj_method(sel_getUid("sendEvent:"),function(_b7,_b8,_b9){ +with(_b7){ +var _ba=objj_msgSend(_b9,"type"),_bb=objj_msgSend(_b9,"locationInWindow"); +switch(_ba){ +case CPKeyUp: +return objj_msgSend(objj_msgSend(_b7,"firstResponder"),"keyUp:",_b9); +case CPKeyDown: +return objj_msgSend(objj_msgSend(_b7,"firstResponder"),"keyDown:",_b9); +case CPScrollWheel: +return objj_msgSend(objj_msgSend(_windowView,"hitTest:",_bb),"scrollWheel:",_b9); +case CPLeftMouseUp: +if(!_leftMouseDownView){ +return objj_msgSend(objj_msgSend(_windowView,"hitTest:",_bb),"mouseUp:",_b9); +} +objj_msgSend(_leftMouseDownView,"mouseUp:",_b9); +_leftMouseDownView=nil; +return; +case CPLeftMouseDown: +_leftMouseDownView=objj_msgSend(_windowView,"hitTest:",_bb); +if(_leftMouseDownView!=_firstResponder&&objj_msgSend(_leftMouseDownView,"acceptsFirstResponder")){ +objj_msgSend(_b7,"makeFirstResponder:",_leftMouseDownView); +} +var _bc=objj_msgSend(_b9,"window"); +if(objj_msgSend(_bc,"isKeyWindow")||objj_msgSend(_bc,"becomesKeyOnlyIfNeeded")){ +return objj_msgSend(_leftMouseDownView,"mouseDown:",_b9); +}else{ +objj_msgSend(_b7,"makeKeyAndOrderFront:",_b7); +if(objj_msgSend(_leftMouseDownView,"acceptsFirstMouse:",_b9)){ +return objj_msgSend(_leftMouseDownView,"mouseDown:",_b9); +} +} +break; +case CPLeftMouseDragged: +if(!_leftMouseDownView){ +return objj_msgSend(objj_msgSend(_windowView,"hitTest:",_bb),"mouseDragged:",_b9); +} +return objj_msgSend(_leftMouseDownView,"mouseDragged:",_b9); +case CPRightMouseUp: +return objj_msgSend(_rightMouseDownView,"mouseUp:",_b9); +case CPRightMouseDown: +_rightMouseDownView=objj_msgSend(_windowView,"hitTest:",_bb); +return objj_msgSend(_rightMouseDownView,"mouseDown:",_b9); +case CPRightMouseDragged: +return objj_msgSend(_rightMouseDownView,"mouseDragged:",_b9); +case CPMouseMoved: +if(!_acceptsMouseMovedEvents){ +return; +} +var _bd=objj_msgSend(_windowView,"hitTest:",_bb); +if(_bd!=_mouseOverView){ +if(_mouseOverView){ +objj_msgSend(_mouseOverView,"mouseExited:",objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",CPMouseExited,_bb,objj_msgSend(_b9,"modifierFlags"),objj_msgSend(_b9,"timestamp"),_windowNumber,nil,-1,1,0)); +} +if(_bd){ +objj_msgSend(_bd,"mouseEntered:",objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",CPMouseEntered,_bb,objj_msgSend(_b9,"modifierFlags"),objj_msgSend(_b9,"timestamp"),_windowNumber,nil,-1,1,0)); +} +_mouseOverView=_bd; +} +objj_msgSend(_mouseOverView,"mouseMoved:",_b9); +} +} +}),new objj_method(sel_getUid("windowNumber"),function(_be,_bf){ +with(_be){ +return _windowNumber; +} +}),new objj_method(sel_getUid("becomeKeyWindow"),function(_c0,_c1){ +with(_c0){ +if(_firstResponder!=_c0&&objj_msgSend(_firstResponder,"respondsToSelector:",sel_getUid("becomeKeyWindow"))){ +objj_msgSend(_firstResponder,"becomeKeyWindow"); +} +} +}),new objj_method(sel_getUid("canBecomeKeyWindow"),function(_c2,_c3){ +with(_c2){ +return YES; +} +}),new objj_method(sel_getUid("isKeyWindow"),function(_c4,_c5){ +with(_c4){ +return objj_msgSend(CPApp,"keyWindow")==_c4; +} +}),new objj_method(sel_getUid("makeKeyAndOrderFront:"),function(_c6,_c7,_c8){ +with(_c6){ +objj_msgSend(_c6,"orderFront:",_c6); +objj_msgSend(_c6,"makeKeyWindow"); +objj_msgSend(_c6,"makeMainWindow"); +} +}),new objj_method(sel_getUid("makeKeyWindow"),function(_c9,_ca){ +with(_c9){ +if(!objj_msgSend(_c9,"canBecomeKeyWindow")){ +return; +} +objj_msgSend(CPApp._keyWindow,"resignKeyWindow"); +CPApp._keyWindow=_c9; +objj_msgSend(_c9,"becomeKeyWindow"); +} +}),new objj_method(sel_getUid("resignKeyWindow"),function(_cb,_cc){ +with(_cb){ +if(_firstResponder!=_cb&&objj_msgSend(_firstResponder,"respondsToSelector:",sel_getUid("resignKeyWindow"))){ +objj_msgSend(_firstResponder,"resignKeyWindow"); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowDidResignKey:"))){ +objj_msgSend(_delegate,"windowDidResignKey:",_cb); +} +} +}),new objj_method(sel_getUid("dragImage:at:offset:event:pasteboard:source:slideBack:"),function(_cd,_ce,_cf,_d0,_d1,_d2,_d3,_d4,_d5){ +with(_cd){ +objj_msgSend(objj_msgSend(CPDragServer,"sharedDragServer"),"dragImage:fromWindow:at:offset:event:pasteboard:source:slideBack:",_cf,_cd,objj_msgSend(_cd,"convertBaseToBridge:",_d0),_d1,_d2,_d3,_d4,_d5); +} +}),new objj_method(sel_getUid("_noteRegisteredDraggedTypes:"),function(_d6,_d7,_d8){ +with(_d6){ +if(!_d8){ +return; +} +if(!_inclusiveRegisteredDraggedTypes){ +_inclusiveRegisteredDraggedTypes=objj_msgSend(CPCountedSet,"set"); +} +objj_msgSend(_inclusiveRegisteredDraggedTypes,"unionSet:",_d8); +} +}),new objj_method(sel_getUid("_noteUnregisteredDraggedTypes:"),function(_d9,_da,_db){ +with(_d9){ +if(!_db){ +return; +} +objj_msgSend(_inclusiveRegisteredDraggedTypes,"minusSet:",_db); +if(objj_msgSend(_inclusiveRegisteredDraggedTypes,"count")===0){ +_inclusiveRegisteredDraggedTypes=nil; +} +} +}),new objj_method(sel_getUid("dragView:at:offset:event:pasteboard:source:slideBack:"),function(_dc,_dd,_de,_df,_e0,_e1,_e2,_e3,_e4){ +with(_dc){ +objj_msgSend(objj_msgSend(CPDragServer,"sharedDragServer"),"dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:",_de,_dc,objj_msgSend(_dc,"convertBaseToBridge:",_df),_e0,_e1,_e2,_e3,_e4); +} +}),new objj_method(sel_getUid("registerForDraggedTypes:"),function(_e5,_e6,_e7){ +with(_e5){ +if(!_e7){ +return; +} +objj_msgSend(_e5,"_noteUnregisteredDraggedTypes:",_registeredDraggedTypes); +objj_msgSend(_registeredDraggedTypes,"addObjectsFromArray:",_e7); +objj_msgSend(_e5,"_noteRegisteredDraggedTypes:",_registeredDraggedTypes); +_registeredDraggedTypesArray=nil; +} +}),new objj_method(sel_getUid("registeredDraggedTypes"),function(_e8,_e9){ +with(_e8){ +if(!_registeredDraggedTypesArray){ +_registeredDraggedTypesArray=objj_msgSend(_registeredDraggedTypes,"allObjects"); +} +return _registeredDraggedTypesArray; +} +}),new objj_method(sel_getUid("unregisterDraggedTypes"),function(_ea,_eb){ +with(_ea){ +objj_msgSend(_ea,"_noteUnregisteredDraggedTypes:",_registeredDraggedTypes); +_registeredDraggedTypes=objj_msgSend(CPSet,"set"); +_registeredDraggedTypesArray=[]; +} +}),new objj_method(sel_getUid("setDocumentEdited:"),function(_ec,_ed,_ee){ +with(_ec){ +if(_isDocumentEdited==_ee){ +return; +} +_isDocumentEdited=_ee; +objj_msgSend(CPMenu,"_setMenuBarIconImageAlphaValue:",_isDocumentEdited?0.5:1); +} +}),new objj_method(sel_getUid("isDocumentEdited"),function(_ef,_f0){ +with(_ef){ +return _isDocumentEdited; +} +}),new objj_method(sel_getUid("setDocumentSaving:"),function(_f1,_f2,_f3){ +with(_f1){ +if(_isDocumentSaving==_f3){ +return; +} +_isDocumentSaving=_f3; +objj_msgSend(_f1,"_synchronizeSaveMenuWithDocumentSaving"); +objj_msgSend(_windowView,"windowDidChangeDocumentSaving"); +} +}),new objj_method(sel_getUid("isDocumentSaving"),function(_f4,_f5){ +with(_f4){ +return _isDocumentSaving; +} +}),new objj_method(sel_getUid("_synchronizeSaveMenuWithDocumentSaving"),function(_f6,_f7){ +with(_f6){ +if(!objj_msgSend(_f6,"isMainWindow")){ +return; +} +var _f8=objj_msgSend(CPApp,"mainMenu"),_f9=objj_msgSend(_f8,"indexOfItemWithTitle:",_isDocumentSaving?"Save":"Saving..."); +if(_f9==CPNotFound){ +return; +} +var _fa=objj_msgSend(_f8,"itemAtIndex:",_f9); +if(_isDocumentSaving){ +_7=objj_msgSend(_fa,"image"); +objj_msgSend(_fa,"setTitle:","Saving..."); +objj_msgSend(_fa,"setImage:",_8); +objj_msgSend(_fa,"setEnabled:",NO); +}else{ +objj_msgSend(_fa,"setTitle:","Save"); +objj_msgSend(_fa,"setImage:",_7); +objj_msgSend(_fa,"setEnabled:",YES); +} +} +}),new objj_method(sel_getUid("performClose:"),function(_fb,_fc,_fd){ +with(_fb){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowShouldClose:"))){ +if(!objj_msgSend(_delegate,"windowShouldClose:",_fb)){ +return; +} +}else{ +if(objj_msgSend(_fb,"respondsToSelector:",sel_getUid("windowShouldClose:"))&&!objj_msgSend(_fb,"windowShouldClose:",_fb)){ +return; +} +} +objj_msgSend(_fb,"close"); +} +}),new objj_method(sel_getUid("close"),function(_fe,_ff){ +with(_fe){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPWindowWillCloseNotification,_fe); +objj_msgSend(_fe,"orderOut:",nil); +} +}),new objj_method(sel_getUid("isMainWindow"),function(self,_cmd){ +with(self){ +return objj_msgSend(CPApp,"mainWindow")==self; +} +}),new objj_method(sel_getUid("canBecomeMainWindow"),function(self,_cmd){ +with(self){ +if(objj_msgSend(self,"isVisible")){ +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("makeMainWindow"),function(self,_cmd){ +with(self){ +if(!objj_msgSend(self,"canBecomeMainWindow")){ +return; +} +objj_msgSend(CPApp._mainWindow,"resignMainWindow"); +CPApp._mainWindow=self; +objj_msgSend(self,"becomeMainWindow"); +} +}),new objj_method(sel_getUid("becomeMainWindow"),function(self,_cmd){ +with(self){ +objj_msgSend(self,"_synchronizeMenuBarTitleWithWindowTitle"); +objj_msgSend(self,"_synchronizeSaveMenuWithDocumentSaving"); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPWindowDidBecomeMainNotification,self); +} +}),new objj_method(sel_getUid("resignMainWindow"),function(self,_cmd){ +with(self){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPWindowDidResignMainNotification,self); +} +}),new objj_method(sel_getUid("toolbar"),function(self,_cmd){ +with(self){ +return _toolbar; +} +}),new objj_method(sel_getUid("setToolbar:"),function(self,_cmd,_10e){ +with(self){ +if(_toolbar===_10e){ +return; +} +objj_msgSend(objj_msgSend(_10e,"_window"),"setToolbar:",nil); +objj_msgSend(_toolbar,"_setWindow:",nil); +_toolbar=_10e; +objj_msgSend(_toolbar,"_setWindow:",self); +objj_msgSend(self,"_noteToolbarChanged"); +} +}),new objj_method(sel_getUid("toggleToolbarShown:"),function(self,_cmd,_111){ +with(self){ +var _112=objj_msgSend(self,"toolbar"); +objj_msgSend(_112,"setVisible:",!objj_msgSend(_112,"isVisible")); +} +}),new objj_method(sel_getUid("_noteToolbarChanged"),function(self,_cmd){ +with(self){ +var _115=CGRectMakeCopy(objj_msgSend(self,"frame")),_116; +objj_msgSend(_windowView,"noteToolbarChanged"); +if(_isFullBridge){ +_116=objj_msgSend(_bridge,"visibleFrame"); +}else{ +_116=CGRectMakeCopy(objj_msgSend(self,"frame")); +_116.origin=_115.origin; +} +objj_msgSend(self,"setFrame:",_116); +} +}),new objj_method(sel_getUid("_setAttachedSheetFrameOrigin"),function(self,_cmd){ +with(self){ +var _119=objj_msgSend(objj_msgSend(self,"contentView"),"frame"),_11a=CGRectMakeCopy(objj_msgSend(_attachedSheet,"frame")); +_11a.origin.y=CGRectGetMinY(_frame)+CGRectGetMinY(_119); +_11a.origin.x=CGRectGetMinX(_frame)+FLOOR((CGRectGetWidth(_frame)-CGRectGetWidth(_11a))/2); +objj_msgSend(_attachedSheet,"setFrameOrigin:",_11a.origin); +} +}),new objj_method(sel_getUid("_animateAttachedSheet"),function(self,_cmd){ +with(self){ +} +}),new objj_method(sel_getUid("_attachSheet:modalDelegate:didEndSelector:contextInfo:"),function(self,_cmd,_11f,_120,_121,_122){ +with(self){ +_attachedSheet=_11f; +_11f._isSheet=YES; +objj_msgSend(self,"_setAttachedSheetFrameOrigin"); +objj_msgSend(_bridge,"order:window:relativeTo:",CPWindowAbove,_11f,self); +} +}),new objj_method(sel_getUid("attachedSheet"),function(self,_cmd){ +with(self){ +return _attachedSheet; +} +}),new objj_method(sel_getUid("isSheet"),function(self,_cmd){ +with(self){ +return _isSheet; +} +}),new objj_method(sel_getUid("becomesKeyOnlyIfNeeded"),function(self,_cmd){ +with(self){ +return NO; +} +}),new objj_method(sel_getUid("worksWhenModal"),function(self,_cmd){ +with(self){ +return NO; +} +}),new objj_method(sel_getUid("keyDown:"),function(self,_cmd,_12d){ +with(self){ +if(!objj_msgSend(self,"performKeyEquivalent:",_12d)){ +objj_msgSend(self,"interpretKeyEvents:",[_12d]); +} +} +}),new objj_method(sel_getUid("insertNewline:"),function(self,_cmd,_130){ +with(self){ +if(_defaultButton&&_defaultButtonEnabled){ +objj_msgSend(_defaultButton,"performClick:",nil); +} +} +}),new objj_method(sel_getUid("insertTab:"),function(self,_cmd,_133){ +with(self){ +objj_msgSend(self,"selectNextKeyView:",nil); +} +}),new objj_method(sel_getUid("_dirtyKeyViewLoop"),function(self,_cmd){ +with(self){ +if(_autorecalculatesKeyViewLoop){ +_keyViewLoopIsDirty=YES; +} +} +}),new objj_method(sel_getUid("_hasKeyViewLoop"),function(self,_cmd){ +with(self){ +var _138=[]; +objj_msgSend(self,"_appendSubviewsOf:toArray:",_contentView,_138); +for(var i=0,_13a=objj_msgSend(_138,"count");i<_13a;i++){ +if(_138[i]._nextKeyView){ +return YES; +} +} +return NO; +} +}),new objj_method(sel_getUid("recalculateKeyViewLoop"),function(self,_cmd){ +with(self){ +var _13d=[]; +objj_msgSend(self,"_appendSubviewsOf:toArray:",_contentView,_13d); +var _13e=objj_msgSend(_13d,"sortedArrayUsingFunction:context:",_13f,_contentView),_140=objj_msgSend(_13e,"count"); +for(var i=0;i<_140;i++){ +objj_msgSend(_13e[i],"setNextKeyView:",_13e[(i+1)%_140]); +} +_keyViewLoopIsDirty=NO; +} +}),new objj_method(sel_getUid("_appendSubviewsOf:toArray:"),function(self,_cmd,_144,_145){ +with(self){ +var _146=objj_msgSend(_144,"subviews"),_147=objj_msgSend(_146,"count"); +while(_147--){ +objj_msgSend(self,"_appendSubviewsOf:toArray:",_146[_147],_145); +} +objj_msgSend(_145,"addObject:",_144); +} +}),new objj_method(sel_getUid("setAutorecalculatesKeyViewLoop:"),function(self,_cmd,_14a){ +with(self){ +if(_autorecalculatesKeyViewLoop===_14a){ +return; +} +_autorecalculatesKeyViewLoop=_14a; +objj_msgSend(self,"_dirtyKeyViewLoop"); +} +}),new objj_method(sel_getUid("autorecalculatesKeyViewLoop"),function(self,_cmd){ +with(self){ +return _autorecalculatesKeyViewLoop; +} +}),new objj_method(sel_getUid("selectNextKeyView:"),function(self,_cmd,_14f){ +with(self){ +if(objj_msgSend(_firstResponder,"isKindOfClass:",objj_msgSend(CPView,"class"))){ +objj_msgSend(self,"selectKeyViewFollowingView:",_firstResponder); +} +} +}),new objj_method(sel_getUid("selectPreviousKeyView:"),function(self,_cmd,_152){ +with(self){ +if(objj_msgSend(_firstResponder,"isKindOfClass:",objj_msgSend(CPView,"class"))){ +objj_msgSend(self,"selectKeyViewPrecedingView:",_firstResponder); +} +} +}),new objj_method(sel_getUid("selectKeyViewFollowingView:"),function(self,_cmd,_155){ +with(self){ +if(_keyViewLoopIsDirty){ +objj_msgSend(self,"recalculateKeyViewLoop"); +} +objj_msgSend(self,"makeFirstResponder:",objj_msgSend(_155,"nextValidKeyView")); +} +}),new objj_method(sel_getUid("selectKeyViewPrecedingView:"),function(self,_cmd,_158){ +with(self){ +if(_keyViewLoopIsDirty){ +objj_msgSend(self,"recalculateKeyViewLoop"); +} +objj_msgSend(self,"makeFirstResponder:",objj_msgSend(_158,"previousValidKeyView")); +} +}),new objj_method(sel_getUid("setDefaultButtonCell:"),function(self,_cmd,_15b){ +with(self){ +objj_msgSend(self,"setDefaultButton:",_15b); +} +}),new objj_method(sel_getUid("defaultButtonCell"),function(self,_cmd){ +with(self){ +return objj_msgSend(self,"defaultButton"); +} +}),new objj_method(sel_getUid("setDefaultButton:"),function(self,_cmd,_160){ +with(self){ +objj_msgSend(_defaultButton,"setDefaultButton:",NO); +_defaultButton=_160; +objj_msgSend(_defaultButton,"setDefaultButton:",YES); +} +}),new objj_method(sel_getUid("defaultButton"),function(self,_cmd){ +with(self){ +return _defaultButton; +} +}),new objj_method(sel_getUid("enableKeyEquivalentForDefaultButton"),function(self,_cmd){ +with(self){ +_defaultButtonEnabled=YES; +} +}),new objj_method(sel_getUid("enableKeyEquivalentForDefaultButtonCell"),function(self,_cmd){ +with(self){ +objj_msgSend(self,"enableKeyEquivalentForDefaultButton"); +} +}),new objj_method(sel_getUid("disableKeyEquivalentForDefaultButton"),function(self,_cmd){ +with(self){ +_defaultButtonEnabled=NO; +} +}),new objj_method(sel_getUid("disableKeyEquivalentForDefaultButtonCell"),function(self,_cmd){ +with(self){ +objj_msgSend(self,"disableKeyEquivalentForDefaultButton"); +} +})]); +class_addMethods(_a,[new objj_method(sel_getUid("initialize"),function(self,_cmd){ +with(self){ +if(self!=objj_msgSend(CPWindow,"class")){ +return; +} +var _16d=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPWindow,"class")); +_8=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_16d,"pathForResource:","CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"),CGSizeMake(16,16)); +} +}),new objj_method(sel_getUid("_windowViewClassForStyleMask:"),function(self,_cmd,_170){ +with(self){ +if(_170&CPHUDBackgroundWindowMask){ +return _CPHUDWindowView; +}else{ +if(_170===CPBorderlessWindowMask){ +return _CPBorderlessWindowView; +} +} +return _CPStandardWindowView; +} +}),new objj_method(sel_getUid("_windowViewClassForFullBridgeStyleMask:"),function(self,_cmd,_173){ +with(self){ +return _CPBorderlessBridgeWindowView; +} +}),new objj_method(sel_getUid("frameRectForContentRect:styleMask:"),function(self,_cmd,_176,_177){ +with(self){ +return objj_msgSend(objj_msgSend(objj_msgSend(self,"class"),"_windowViewClassForStyleMask:",_styleMask),"frameRectForContentRect:",_176); +} +})]); +var _13f=function(a,b,_17a){ +var _17b=objj_msgSend(a,"convertRect:toView:",objj_msgSend(a,"bounds"),nil),_17c=objj_msgSend(b,"convertRect:toView:",objj_msgSend(b,"bounds"),nil); +if(CGRectGetMinY(_17b)0){ +if(!_textSize){ +_textSize=objj_msgSend(_text,"sizeWithFont:",_font?_font:objj_msgSend(CPFont,"systemFontOfSize:",12)); +} +if(_imagePosition===CPImageLeft||_imagePosition===CPImageRight){ +_5b.width+=_textSize.width+_c; +_5b.height=MAX(_5b.height,_textSize.height); +}else{ +if(_imagePosition===CPImageAbove||_imagePosition===CPImageBelow){ +_5b.width=MAX(_5b.width,_textSize.width); +_5b.height+=_textSize.height+_d; +}else{ +_5b.width=MAX(_5b.width,_textSize.width); +_5b.height=MAX(_5b.height,_textSize.height); +} +} +} +objj_msgSend(_59,"setFrameSize:",_5b); +} +})]); +p;23;_CPStandardWindowView.ji;15;_CPWindowView.jc;9845; +var _1=41; +var _2=nil,_3=nil; +var _4=objj_allocateClassPair(CPView,"_CPTexturedWindowHeadView"),_5=_4.isa; +class_addIvars(_4,[new objj_ivar("_gradientView"),new objj_ivar("_solidView"),new objj_ivar("_dividerView")]); +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("initWithFrame:"),function(_6,_7,_8){ +with(_6){ +_6=objj_msgSendSuper({receiver:_6,super_class:objj_getClass("CPView")},"initWithFrame:",_8); +if(_6){ +var _9=objj_msgSend(_6,"class"),_a=objj_msgSend(_6,"bounds"); +_gradientView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,0,CGRectGetWidth(_a),_1)); +objj_msgSend(_gradientView,"setBackgroundColor:",objj_msgSend(_9,"gradientColor")); +objj_msgSend(_6,"addSubview:",_gradientView); +_solidView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,_1,CGRectGetWidth(_a),CGRectGetHeight(_a)-_1)); +objj_msgSend(_solidView,"setBackgroundColor:",objj_msgSend(_9,"solidColor")); +objj_msgSend(_6,"addSubview:",_solidView); +} +return _6; +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_b,_c,_d){ +with(_b){ +var _e=objj_msgSend(_b,"bounds"); +objj_msgSend(_gradientView,"setFrameSize:",CGSizeMake(CGRectGetWidth(_e),_1)); +objj_msgSend(_solidView,"setFrameSize:",CGSizeMake(CGRectGetWidth(_e),CGRectGetHeight(_e)-_1)); +} +})]); +class_addMethods(_5,[new objj_method(sel_getUid("gradientColor"),function(_f,_10){ +with(_f){ +if(!_2){ +var _11=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_CPWindowView,"class")); +_2=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPThreePartImage,"alloc"),"initWithImageSlices:isVertical:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_11,"pathForResource:","CPWindow/Standard/CPWindowStandardTop0.png"),CGSizeMake(6,41)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_11,"pathForResource:","CPWindow/Standard/CPWindowStandardTop1.png"),CGSizeMake(1,41)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_11,"pathForResource:","CPWindow/Standard/CPWindowStandardTop2.png"),CGSizeMake(6,41))],NO)); +} +return _2; +} +}),new objj_method(sel_getUid("solidColor"),function(_12,_13){ +with(_12){ +if(!_3){ +_3=objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",195/255,195/255,195/255,1); +} +return _3; +} +})]); +var _14=nil,_15=nil,_16=nil,_17=nil,_18=nil; +var _19=41; +STANDARD_TITLEBAR_HEIGHT=25; +var _4=objj_allocateClassPair(_CPWindowView,"_CPStandardWindowView"),_5=_4.isa; +class_addIvars(_4,[new objj_ivar("_headView"),new objj_ivar("_dividerView"),new objj_ivar("_bodyView"),new objj_ivar("_toolbarView"),new objj_ivar("_titleField"),new objj_ivar("_closeButton")]); +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("contentRectForFrameRect:"),function(_1a,_1b,_1c){ +with(_1a){ +var _1d=objj_msgSend(objj_msgSend(_1a,"class"),"contentRectForFrameRect:",_1c),_1e=objj_msgSend(objj_msgSend(_1a,"window"),"toolbar"); +if(objj_msgSend(_1e,"isVisible")){ +toolbarHeight=CGRectGetHeight(objj_msgSend(objj_msgSend(_1e,"_toolbarView"),"frame")); +_1d.origin.y+=toolbarHeight; +_1d.size.height-=toolbarHeight; +} +return _1d; +} +}),new objj_method(sel_getUid("frameRectForContentRect:"),function(_1f,_20,_21){ +with(_1f){ +var _22=objj_msgSend(objj_msgSend(_1f,"class"),"frameRectForContentRect:",_21),_23=objj_msgSend(objj_msgSend(_1f,"window"),"toolbar"); +if(objj_msgSend(_23,"isVisible")){ +toolbarHeight=CGRectGetHeight(objj_msgSend(objj_msgSend(_23,"_toolbarView"),"frame")); +_22.origin.y-=toolbarHeight; +_22.size.height+=toolbarHeight; +} +return _22; +} +}),new objj_method(sel_getUid("initWithFrame:styleMask:"),function(_24,_25,_26,_27){ +with(_24){ +_24=objj_msgSendSuper({receiver:_24,super_class:objj_getClass("_CPWindowView")},"initWithFrame:styleMask:",_26,_27); +if(_24){ +var _28=objj_msgSend(_24,"class"),_29=objj_msgSend(_24,"bounds"); +_headView=objj_msgSend(objj_msgSend(_CPTexturedWindowHeadView,"alloc"),"initWithFrame:",CGRectMake(0,0,CGRectGetWidth(_29),objj_msgSend(objj_msgSend(_24,"class"),"titleBarHeight"))); +objj_msgSend(_headView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_headView,"setHitTests:",NO); +objj_msgSend(_24,"addSubview:",_headView); +_dividerView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,CGRectGetMaxY(objj_msgSend(_headView,"frame")),CGRectGetWidth(_29),1)); +objj_msgSend(_dividerView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_dividerView,"setBackgroundColor:",objj_msgSend(_28,"dividerBackgroundColor")); +objj_msgSend(_dividerView,"setHitTests:",NO); +objj_msgSend(_24,"addSubview:",_dividerView); +var y=CGRectGetMaxY(objj_msgSend(_dividerView,"frame")); +_bodyView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,y,CGRectGetWidth(_29),CGRectGetHeight(_29)-y)); +objj_msgSend(_bodyView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +objj_msgSend(_bodyView,"setBackgroundColor:",objj_msgSend(_28,"bodyBackgroundColor")); +objj_msgSend(_bodyView,"setHitTests:",NO); +objj_msgSend(_24,"addSubview:",_bodyView); +objj_msgSend(_24,"setResizeIndicatorOffset:",CGSizeMake(2,2)); +_titleField=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_titleField,"setFont:",objj_msgSend(CPFont,"boldSystemFontOfSize:",12)); +objj_msgSend(_titleField,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_titleField,"setLineBreakMode:",CPLineBreakByTruncatingTail); +objj_msgSend(_titleField,"setAlignment:",CPCenterTextAlignment); +objj_msgSend(_titleField,"setTextShadowColor:",objj_msgSend(CPColor,"whiteColor")); +objj_msgSend(_titleField,"setTextShadowOffset:",CGSizeMake(0,1)); +objj_msgSend(_titleField,"setStringValue:","Untitled"); +objj_msgSend(_titleField,"sizeToFit"); +objj_msgSend(_titleField,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_titleField,"setStringValue:",""); +objj_msgSend(_24,"addSubview:",_titleField); +if(_styleMask&CPClosableWindowMask){ +if(!_17){ +var _2b=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPWindow,"class")); +_17=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_2b,"pathForResource:","CPWindow/Standard/CPWindowStandardCloseButton.png"),CGSizeMake(16,16)); +_18=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_2b,"pathForResource:","CPWindow/Standard/CPWindowStandardCloseButtonHighlighted.png"),CGSizeMake(16,16)); +} +_closeButton=objj_msgSend(objj_msgSend(CPButton,"alloc"),"initWithFrame:",CGRectMake(8,7,16,16)); +objj_msgSend(_closeButton,"setBordered:",NO); +objj_msgSend(_closeButton,"setImage:",_17); +objj_msgSend(_closeButton,"setAlternateImage:",_18); +objj_msgSend(_24,"addSubview:",_closeButton); +} +objj_msgSend(_24,"tile"); +} +return _24; +} +}),new objj_method(sel_getUid("viewDidMoveToWindow"),function(_2c,_2d){ +with(_2c){ +objj_msgSend(_closeButton,"setTarget:",objj_msgSend(_2c,"window")); +objj_msgSend(_closeButton,"setAction:",sel_getUid("performClose:")); +} +}),new objj_method(sel_getUid("toolbarOffset"),function(_2e,_2f){ +with(_2e){ +return CGSizeMake(0,objj_msgSend(objj_msgSend(_2e,"class"),"titleBarHeight")); +} +}),new objj_method(sel_getUid("tile"),function(_30,_31){ +with(_30){ +objj_msgSendSuper({receiver:_30,super_class:objj_getClass("_CPWindowView")},"tile"); +var _32=objj_msgSend(_30,"window"),_33=objj_msgSend(_30,"bounds"),_34=CGRectGetWidth(_33); +objj_msgSend(_headView,"setFrameSize:",CGSizeMake(_34,objj_msgSend(_30,"toolbarMaxY"))); +objj_msgSend(_dividerView,"setFrame:",CGRectMake(0,CGRectGetMaxY(objj_msgSend(_headView,"frame")),_34,1)); +var _35=CGRectGetMaxY(objj_msgSend(_dividerView,"frame")); +objj_msgSend(_bodyView,"setFrame:",CGRectMake(0,_35,_34,CGRectGetHeight(_33)-_35)); +objj_msgSend(_titleField,"setFrame:",CGRectMake(10,3,_34-20,CGRectGetHeight(objj_msgSend(_titleField,"frame")))); +objj_msgSend(objj_msgSend(_32,"contentView"),"setFrameOrigin:",CGPointMake(0,CGRectGetMaxY(objj_msgSend(_dividerView,"frame")))); +} +}),new objj_method(sel_getUid("setTitle:"),function(_36,_37,_38){ +with(_36){ +objj_msgSend(_titleField,"setStringValue:",_38); +} +}),new objj_method(sel_getUid("mouseDown:"),function(_39,_3a,_3b){ +with(_39){ +if(CGRectContainsPoint(objj_msgSend(_headView,"frame"),objj_msgSend(_39,"convertPoint:fromView:",objj_msgSend(_3b,"locationInWindow"),nil))){ +return objj_msgSend(_39,"trackMoveWithEvent:",_3b); +} +objj_msgSendSuper({receiver:_39,super_class:objj_getClass("_CPWindowView")},"mouseDown:",_3b); +} +})]); +class_addMethods(_5,[new objj_method(sel_getUid("bodyBackgroundColor"),function(_3c,_3d){ +with(_3c){ +if(!_14){ +_14=objj_msgSend(CPColor,"colorWithWhite:alpha:",0.96,1); +} +return _14; +} +}),new objj_method(sel_getUid("dividerBackgroundColor"),function(_3e,_3f){ +with(_3e){ +if(!_15){ +_15=objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",125/255,125/255,125/255,1); +} +return _15; +} +}),new objj_method(sel_getUid("titleColor"),function(_40,_41){ +with(_40){ +if(!_16){ +_16=objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",44/255,44/255,44/255,1); +} +return _16; +} +}),new objj_method(sel_getUid("contentRectForFrameRect:"),function(_42,_43,_44){ +with(_42){ +var _45=CGRectMakeCopy(_44),_46=objj_msgSend(_42,"titleBarHeight")+1; +_45.origin.y+=_46; +_45.size.height-=_46; +return _45; +} +}),new objj_method(sel_getUid("frameRectForContentRect:"),function(_47,_48,_49){ +with(_47){ +var _4a=CGRectMakeCopy(_49),_4b=objj_msgSend(_47,"titleBarHeight")+1; +_4a.origin.y-=_4b; +_4a.size.height+=_4b; +return _4a; +} +}),new objj_method(sel_getUid("titleBarHeight"),function(_4c,_4d){ +with(_4c){ +return STANDARD_TITLEBAR_HEIGHT; +} +})]); +p;15;_CPWindowView.ji;8;CPView.ji;13;CPImageView.jc;9039; +var _1=nil; +var _2=objj_allocateClassPair(CPView,"_CPWindowView"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_styleMask"),new objj_ivar("_resizeIndicator"),new objj_ivar("_resizeIndicatorOffset"),new objj_ivar("_toolbarView"),new objj_ivar("_resizeFrame"),new objj_ivar("_mouseDraggedPoint"),new objj_ivar("_cachedScreenFrame")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("contentRectForFrameRect:"),function(_4,_5,_6){ +with(_4){ +return objj_msgSend(objj_msgSend(_4,"class"),"contentRectForFrameRect:",_6); +} +}),new objj_method(sel_getUid("frameRectForContentRect:"),function(_7,_8,_9){ +with(_7){ +return objj_msgSend(objj_msgSend(_7,"class"),"frameRectForContentRect:",_9); +} +}),new objj_method(sel_getUid("initWithFrame:styleMask:"),function(_a,_b,_c,_d){ +with(_a){ +_a=objj_msgSendSuper({receiver:_a,super_class:objj_getClass("CPView")},"initWithFrame:",_c); +if(_a){ +_styleMask=_d; +_resizeIndicatorOffset=CGSizeMake(0,0); +_toolbarOffset=CGSizeMake(0,0); +objj_msgSend(_a,"setShowsResizeIndicator:",!(_styleMask&CPBorderlessBridgeWindowMask)&&(_styleMask&CPResizableWindowMask)); +} +return _a; +} +}),new objj_method(sel_getUid("setTitle:"),function(_e,_f,_10){ +with(_e){ +} +}),new objj_method(sel_getUid("acceptsFirstMouse:"),function(_11,_12,_13){ +with(_11){ +return YES; +} +}),new objj_method(sel_getUid("mouseDown:"),function(_14,_15,_16){ +with(_14){ +var _17=objj_msgSend(_14,"window"); +if((_styleMask&CPResizableWindowMask)&&_resizeIndicator){ +var _18=objj_msgSend(_resizeIndicator,"frame"); +if(CGRectContainsPoint(_18,objj_msgSend(_14,"convertPoint:fromView:",objj_msgSend(_16,"locationInWindow"),nil))){ +return objj_msgSend(_14,"trackResizeWithEvent:",_16); +} +} +if(objj_msgSend(_17,"isMovableByWindowBackground")){ +objj_msgSend(_14,"trackMoveWithEvent:",_16); +}else{ +objj_msgSendSuper({receiver:_14,super_class:objj_getClass("CPView")},"mouseDown:",_16); +} +} +}),new objj_method(sel_getUid("trackResizeWithEvent:"),function(_19,_1a,_1b){ +with(_19){ +var _1c=objj_msgSend(_1b,"locationInWindow"),_1d=objj_msgSend(_1b,"type"); +if(_1d===CPLeftMouseUp){ +return; +} +var _1e=objj_msgSend(_19,"window"); +if(_1d===CPLeftMouseDown){ +var _1f=objj_msgSend(_1e,"frame"); +_resizeFrame=CGRectMake(_1c.x,_1c.y,CGRectGetWidth(_1f),CGRectGetHeight(_1f)); +}else{ +if(_1d===CPLeftMouseDragged){ +objj_msgSend(_1e,"setFrameSize:",CGSizeMake(CGRectGetWidth(_resizeFrame)+_1c.x-CGRectGetMinX(_resizeFrame),CGRectGetHeight(_resizeFrame)+_1c.y-CGRectGetMinY(_resizeFrame))); +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_19,sel_getUid("trackResizeWithEvent:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +}),new objj_method(sel_getUid("_pointWithinScreenFrame:"),function(_20,_21,_22){ +with(_20){ +var _23=_cachedScreenFrame; +if(!_23){ +_23=objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"visibleFrame"); +} +var _24=CGPointMake(0,0); +_24.x=MIN(MAX(_22.x,-_frame.size.width+4),CGRectGetMaxX(_23)-4); +_24.y=MIN(MAX(_22.y,0),CGRectGetMaxY(_23)-8); +return _24; +} +}),new objj_method(sel_getUid("trackMoveWithEvent:"),function(_25,_26,_27){ +with(_25){ +var _28=objj_msgSend(_27,"type"); +if(_28===CPLeftMouseUp){ +_cachedScreenFrame=nil; +return; +}else{ +if(_28===CPLeftMouseDown){ +_mouseDraggedPoint=objj_msgSend(objj_msgSend(_25,"window"),"convertBaseToBridge:",objj_msgSend(_27,"locationInWindow")); +_cachedScreenFrame=objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"visibleFrame"); +}else{ +if(_28===CPLeftMouseDragged){ +var _29=objj_msgSend(_25,"window"),_2a=objj_msgSend(_29,"frame"),_2b=objj_msgSend(_29,"convertBaseToBridge:",objj_msgSend(_27,"locationInWindow")),_2c=objj_msgSend(_25,"_pointWithinScreenFrame:",CGPointMake((_2a.origin.x)+(_2b.x-_mouseDraggedPoint.x),(_2a.origin.y)+(_2b.y-_mouseDraggedPoint.y))); +objj_msgSend(_29,"setFrameOrigin:",_2c); +_mouseDraggedPoint=objj_msgSend(_25,"_pointWithinScreenFrame:",_2b); +} +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_25,sel_getUid("trackMoveWithEvent:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +}),new objj_method(sel_getUid("setShowsResizeIndicator:"),function(_2d,_2e,_2f){ +with(_2d){ +if(_2f){ +var _30=objj_msgSend(_1,"size"),_31=objj_msgSend(_2d,"frame").size; +_resizeIndicator=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CGRectMake(_31.width-_30.width-_resizeIndicatorOffset.width,_31.height-_30.height-_resizeIndicatorOffset.height,_30.width,_30.height)); +objj_msgSend(_resizeIndicator,"setImage:",_1); +objj_msgSend(_resizeIndicator,"setAutoresizingMask:",CPViewMinXMargin|CPViewMinYMargin); +objj_msgSend(_2d,"addSubview:",_resizeIndicator); +}else{ +objj_msgSend(_resizeIndicator,"removeFromSuperview"); +_resizeIndicator=nil; +} +} +}),new objj_method(sel_getUid("showsResizeIndicator"),function(_32,_33){ +with(_32){ +return _resizeIndicator!==nil; +} +}),new objj_method(sel_getUid("setResizeIndicatorOffset:"),function(_34,_35,_36){ +with(_34){ +if(CGSizeEqualToSize(_resizeIndicatorOffset,_36)){ +return; +} +_resizeIndicatorOffset=_36; +if(!_resizeIndicator){ +return; +} +var _37=objj_msgSend(_resizeIndicator,"frame").size,_38=objj_msgSend(_34,"frame").size; +objj_msgSend(_resizeIndicator,"setFrameOrigin:",CGPointMake(_38.width-_37.width-_36.width,_38.height-_37.height-_36.height)); +} +}),new objj_method(sel_getUid("resizeIndicatorOffset"),function(_39,_3a){ +with(_39){ +return _resizeIndicatorOffset; +} +}),new objj_method(sel_getUid("windowDidChangeDocumentEdited"),function(_3b,_3c){ +with(_3b){ +} +}),new objj_method(sel_getUid("windowDidChangeDocumentSaving"),function(_3d,_3e){ +with(_3d){ +} +}),new objj_method(sel_getUid("showsToolbar"),function(_3f,_40){ +with(_3f){ +return YES; +} +}),new objj_method(sel_getUid("toolbarOffset"),function(_41,_42){ +with(_41){ +return CGSizeMakeZero(); +} +}),new objj_method(sel_getUid("toolbarLabelColor"),function(_43,_44){ +with(_43){ +return objj_msgSend(CPColor,"blackColor"); +} +}),new objj_method(sel_getUid("toolbarMaxY"),function(_45,_46){ +with(_45){ +if(!_toolbarView||objj_msgSend(_toolbarView,"isHidden")){ +return objj_msgSend(_45,"toolbarOffset").height; +} +return CGRectGetMaxY(objj_msgSend(_toolbarView,"frame")); +} +}),new objj_method(sel_getUid("toolbarView"),function(_47,_48){ +with(_47){ +return _toolbarView; +} +}),new objj_method(sel_getUid("tile"),function(_49,_4a){ +with(_49){ +var _4b=objj_msgSend(_49,"window"),_4c=objj_msgSend(_49,"bounds"),_4d=CGRectGetWidth(_4c); +if(objj_msgSend(objj_msgSend(_4b,"toolbar"),"isVisible")){ +var _4e=objj_msgSend(_49,"toolbarView"),_4f=objj_msgSend(_49,"toolbarOffset"); +objj_msgSend(_4e,"setFrame:",CGRectMake(_4f.width,_4f.height,_4d,CGRectGetHeight(objj_msgSend(_4e,"frame")))); +} +if(objj_msgSend(_49,"showsResizeIndicator")){ +var _50=objj_msgSend(_resizeIndicator,"frame").size,_51=objj_msgSend(_49,"bounds").size; +objj_msgSend(_resizeIndicator,"setFrameOrigin:",CGPointMake(_51.width-_50.width-_resizeIndicatorOffset.width,_51.height-_50.height-_resizeIndicatorOffset.height)); +} +} +}),new objj_method(sel_getUid("noteToolbarChanged"),function(_52,_53){ +with(_52){ +var _54=objj_msgSend(_52,"window"),_55=objj_msgSend(_54,"toolbar"),_56=objj_msgSend(_55,"_toolbarView"); +if(_toolbarView!==_56){ +objj_msgSend(_toolbarView,"removeFromSuperview"); +if(_56){ +objj_msgSend(_56,"removeFromSuperview"); +objj_msgSend(_56,"setLabelColor:",objj_msgSend(_52,"toolbarLabelColor")); +if(objj_msgSend(_52,"respondsToSelector:",sel_getUid("toolbarLabelShadowColor"))){ +objj_msgSend(_56,"setLabelShadowColor:",objj_msgSend(_52,"toolbarLabelShadowColor")); +} +objj_msgSend(_52,"addSubview:",_56); +} +_toolbarView=_56; +} +objj_msgSend(_56,"setHidden:",!objj_msgSend(_52,"showsToolbar")||!objj_msgSend(_55,"isVisible")); +if(_54){ +var _57=objj_msgSend(_52,"convertRect:toView:",objj_msgSend(objj_msgSend(_54,"contentView"),"frame"),nil); +_57.origin=objj_msgSend(_54,"convertBaseToBridge:",_57.origin); +objj_msgSend(_52,"setAutoresizesSubviews:",NO); +objj_msgSend(_54,"setFrame:",objj_msgSend(_54,"frameRectForContentRect:",_57)); +objj_msgSend(_52,"setAutoresizesSubviews:",YES); +} +objj_msgSend(_52,"tile"); +} +}),new objj_method(sel_getUid("didAddSubview:"),function(_58,_59,_5a){ +with(_58){ +if(!_resizeIndicator||_5a===_resizeIndicator){ +return; +} +objj_msgSend(_58,"addSubview:",_resizeIndicator); +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("initialize"),function(_5b,_5c){ +with(_5b){ +if(_5b!=objj_msgSend(_CPWindowView,"class")){ +return; +} +_1=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPWindow,"class")),"pathForResource:","_CPWindowView/_CPWindowViewResizeIndicator.png"),CGSizeMake(12,12)); +} +}),new objj_method(sel_getUid("contentRectForFrameRect:"),function(_5d,_5e,_5f){ +with(_5d){ +return CGRectMakeCopy(_5f); +} +}),new objj_method(sel_getUid("frameRectForContentRect:"),function(_60,_61,_62){ +with(_60){ +return CGRectMakeCopy(_62); +} +})]); +p;8;AppKit.ji;9;CALayer.ji;9;CPAlert.ji;13;CPAnimation.ji;15;CPApplication.ji;14;CPBezierPath.ji;10;CPButton.ji;13;CPButtonBar.ji;12;CPCheckBox.ji;7;CPCib.ji;14;CPCibLoading.ji;12;CPClipView.ji;18;CPCollectionView.ji;9;CPColor.ji;14;CPColorPanel.ji;13;CPColorWell.ji;17;CPCompatibility.ji;11;CPControl.ji;10;CPCookie.ji;12;CPDocument.ji;22;CPDocumentController.ji;9;CPEvent.ji;14;CPFlashMovie.ji;13;CPFlashView.ji;8;CPFont.ji;15;CPFontManager.ji;12;CPGeometry.ji;9;CPImage.ji;13;CPImageView.ji;8;CPMenu.ji;12;CPMenuItem.ji;9;CPPanel.ji;14;CPPasteboard.ji;15;CPPopUpButton.ji;21;CPProgressIndicator.ji;9;CPRadio.ji;13;CPResponder.ji;14;CPScrollView.ji;12;CPScroller.ji;19;CPSecureTextField.ji;20;CPSegmentedControl.ji;10;CPShadow.ji;10;CPSlider.ji;13;CPSplitView.ji;11;CPTabView.ji;15;CPTableColumn.ji;13;CPTableView.ji;13;CPTextField.ji;11;CPToolbar.ji;15;CPToolbarItem.ji;8;CPView.ji;11;CPWebView.ji;10;CPWindow.ji;20;CPWindowController.jp;13;CAAnimation.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.ji;23;CAMediaTimingFunction.jc;3790; +var _1=objj_allocateClassPair(CPObject,"CAAnimation"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_isRemovedOnCompletion"),new objj_ivar("_delegate")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("init"),function(_3,_4){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_isRemovedOnCompletion=YES; +} +return _3; +} +}),new objj_method(sel_getUid("shouldArchiveValueForKey:"),function(_5,_6,_7){ +with(_5){ +return YES; +} +}),new objj_method(sel_getUid("setRemovedOnCompletion:"),function(_8,_9,_a){ +with(_8){ +_isRemovedOnCompletion=_a; +} +}),new objj_method(sel_getUid("removedOnCompletion"),function(_b,_c){ +with(_b){ +return _isRemovedOnCompletion; +} +}),new objj_method(sel_getUid("isRemovedOnCompletion"),function(_d,_e){ +with(_d){ +return _isRemovedOnCompletion; +} +}),new objj_method(sel_getUid("timingFunction"),function(_f,_10){ +with(_f){ +return nil; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_11,_12,_13){ +with(_11){ +_delegate=_13; +} +}),new objj_method(sel_getUid("delegate"),function(_14,_15){ +with(_14){ +return _delegate; +} +}),new objj_method(sel_getUid("runActionForKey:object:arguments:"),function(_16,_17,_18,_19,_1a){ +with(_16){ +objj_msgSend(_19,"addAnimation:forKey:",_16,_18); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("animation"),function(_1b,_1c){ +with(_1b){ +return objj_msgSend(objj_msgSend(_1b,"alloc"),"init"); +} +}),new objj_method(sel_getUid("defaultValueForKey:"),function(_1d,_1e,_1f){ +with(_1d){ +return nil; +} +})]); +var _1=objj_allocateClassPair(CAAnimation,"CAPropertyAnimation"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_keyPath"),new objj_ivar("_isCumulative"),new objj_ivar("_isAdditive")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("setKeyPath:"),function(_20,_21,_22){ +with(_20){ +_keyPath=_22; +} +}),new objj_method(sel_getUid("keyPath"),function(_23,_24){ +with(_23){ +return _keyPath; +} +}),new objj_method(sel_getUid("setCumulative:"),function(_25,_26,_27){ +with(_25){ +_isCumulative=_27; +} +}),new objj_method(sel_getUid("cumulative"),function(_28,_29){ +with(_28){ +return _isCumulative; +} +}),new objj_method(sel_getUid("isCumulative"),function(_2a,_2b){ +with(_2a){ +return _isCumulative; +} +}),new objj_method(sel_getUid("setAdditive:"),function(_2c,_2d,_2e){ +with(_2c){ +_isAdditive=_2e; +} +}),new objj_method(sel_getUid("additive"),function(_2f,_30){ +with(_2f){ +return _isAdditive; +} +}),new objj_method(sel_getUid("isAdditive"),function(_31,_32){ +with(_31){ +return _isAdditive; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("animationWithKeyPath:"),function(_33,_34,_35){ +with(_33){ +var _36=objj_msgSend(_33,"animation"); +objj_msgSend(_36,"setKeyPath:",_35); +return _36; +} +})]); +var _1=objj_allocateClassPair(CAPropertyAnimation,"CABasicAnimation"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_fromValue"),new objj_ivar("_toValue"),new objj_ivar("_byValue")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("setFromValue:"),function(_37,_38,_39){ +with(_37){ +_fromValue=_39; +} +}),new objj_method(sel_getUid("fromValue"),function(_3a,_3b){ +with(_3a){ +return _fromValue; +} +}),new objj_method(sel_getUid("setToValue:"),function(_3c,_3d,_3e){ +with(_3c){ +_toValue=_3e; +} +}),new objj_method(sel_getUid("toValue"),function(_3f,_40){ +with(_3f){ +return _toValue; +} +}),new objj_method(sel_getUid("setByValue:"),function(_41,_42,_43){ +with(_41){ +_byValue=_43; +} +}),new objj_method(sel_getUid("byValue"),function(_44,_45){ +with(_44){ +return _byValue; +} +})]); +p;16;CABackingStore.ji;12;CGGeometry.ji;17;CPCompatibility.jc;599; +CABackingStoreGetContext=function(_1){ +return _1.context; +}; +if(CPFeatureIsCompatible(CPHTMLCanvasFeature)){ +CABackingStoreCreate=function(){ +var _2=document.createElement("canvas"); +_2.style.position="absolute"; +return {context:_2.getContext("2d"),buffer:_2,_image:_2}; +}; +CABackingStoreSetSize=function(_3,_4){ +var _5=_3.buffer; +_5.width=_4.width; +_5.height=_4.height; +_5.style.width=_4.width+"px"; +_5.style.height=_4.height+"px"; +}; +}else{ +CABackingStoreCreate=function(){ +var _6=CGBitmapGraphicsContextCreate(); +_6.buffer=""; +return {context:_6}; +}; +CABackingStoreSetSize=function(_7,_8){ +}; +} +p;14;CAFlashLayer.ji;9;CALayer.ji;14;CPFlashMovie.jc;803; +var _1=objj_allocateClassPair(CALayer,"CAFlashLayer"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_flashMovie")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("setFlashMovie:"),function(_3,_4,_5){ +with(_3){ +if(_flashMovie==_5){ +return; +} +_flashMovie=_5; +_DOMElement.innerHTML=""; +} +}),new objj_method(sel_getUid("flashMovie"),function(_6,_7){ +with(_6){ +return _flashMovie; +} +})]); +p;9;CALayer.jI;21;Foundation/CPObject.jI;23;AppKit/CABackingStore.jI;18;AppKit/CGContext.jI;19;AppKit/CGGeometry.ji;12;CGGeometry.jc;24770; +CGAffineTransformMake=function(a,b,c,d,tx,ty){ +return {a:a,b:b,c:c,d:d,tx:tx,ty:ty}; +}; +CGAffineTransformMakeIdentity=function(){ +return {a:1,b:0,c:0,d:1,tx:0,ty:0}; +}; +CGAffineTransformMakeCopy=function(_7){ +return {a:_7.a,b:_7.b,c:_7.c,d:_7.d,tx:_7.tx,ty:_7.ty}; +}; +CGAffineTransformMakeScale=function(sx,sy){ +return {a:sx,b:0,c:0,d:sy,tx:0,ty:0}; +}; +CGAffineTransformMakeTranslation=function(tx,ty){ +return {a:1,b:0,c:0,d:1,tx:tx,ty:ty}; +}; +CGAffineTransformTranslate=function(_c,tx,ty){ +return {a:_c.a,b:_c.b,c:_c.c,d:_c.d,tx:_c.tx+_c.a*tx+_c.c*ty,ty:_c.ty+_c.b*tx+_c.d*ty}; +}; +CGAffineTransformScale=function(_f,sx,sy){ +return {a:_f.a*sx,b:_f.b*sx,c:_f.c*sy,d:_f.d*sy,tx:_f.tx,ty:_f.ty}; +}; +CGAffineTransformConcat=function(lhs,rhs){ +return {a:lhs.a*rhs.a+lhs.b*rhs.c,b:lhs.a*rhs.b+lhs.b*rhs.d,c:lhs.c*rhs.a+lhs.d*rhs.c,d:lhs.c*rhs.b+lhs.d*rhs.d,tx:lhs.tx*rhs.a+lhs.ty*rhs.c+rhs.tx,ty:lhs.tx*rhs.b+lhs.ty*rhs.d+rhs.ty}; +}; +CGPointApplyAffineTransform=function(_14,_15){ +return {x:_14.x*_15.a+_14.y*_15.c+_15.tx,y:_14.x*_15.b+_14.y*_15.d+_15.ty}; +}; +CGSizeApplyAffineTransform=function(_16,_17){ +return {width:_16.width*_17.a+_16.height*_17.c,height:_16.width*_17.b+_16.height*_17.d}; +}; +CGAffineTransformIsIdentity=function(_18){ +return (_18.a==1&&_18.b==0&&_18.c==0&&_18.d==1&&_18.tx==0&&_18.ty==0); +}; +CGAffineTransformEqualToTransform=function(lhs,rhs){ +return (lhs.a==rhs.a&&lhs.b==rhs.b&&lhs.c==rhs.c&&lhs.d==rhs.d&&lhs.tx==rhs.tx&&lhs.ty==rhs.ty); +}; +CGStringCreateWithCGAffineTransform=function(_1b){ +return (" [[ "+_1b.a+", "+_1b.b+", 0 ], [ "+_1b.c+", "+_1b.d+", 0 ], [ "+_1b.tx+", "+_1b.ty+", 1]]"); +}; +CGAffineTransformCreateCopy=function(_1c){ +return {a:_1c.a,b:_1c.b,c:_1c.c,d:_1c.d,tx:_1c.tx,ty:_1c.ty}; +}; +CGAffineTransformMakeRotation=function(_1d){ +var sin=SIN(_1d),cos=COS(_1d); +return {a:cos,b:sin,c:-sin,d:cos,tx:0,ty:0}; +}; +CGAffineTransformRotate=function(_20,_21){ +var sin=SIN(_21),cos=COS(_21); +return {a:_20.a*cos+_20.c*sin,b:_20.b*cos+_20.d*sin,c:_20.c*cos-_20.a*sin,d:_20.d*cos-_20.b*sin,tx:_20.tx,ty:_20.ty}; +}; +CGAffineTransformInvert=function(_24){ +var _25=1/(_24.a*_24.d-_24.b*_24.c); +return {a:_25*_24.d,b:-_25*_24.b,c:-_25*_24.c,d:_25*_24.a,tx:_25*(_24.c*_24.ty-_24.d*_24.tx),ty:_25*(_24.b*_24.tx-_24.a*_24.ty)}; +}; +CGRectApplyAffineTransform=function(_26,_27){ +var top=(_26.origin.y),_29=(_26.origin.x),_2a=(_26.origin.x+_26.size.width),_2b=(_26.origin.y+_26.size.height),_2c=CGPointApplyAffineTransform({x:_29,y:top},_27),_2d=CGPointApplyAffineTransform({x:_2a,y:top},_27),_2e=CGPointApplyAffineTransform({x:_29,y:_2b},_27),_2f=CGPointApplyAffineTransform({x:_2a,y:_2b},_27),_30=MIN(_2c.x,_2d.x,_2e.x,_2f.x),_31=MAX(_2c.x,_2d.x,_2e.x,_2f.x),_32=MIN(_2c.y,_2d.y,_2e.y,_2f.y),_33=MAX(_2c.y,_2d.y,_2e.y,_2f.y); +return {origin:{x:_30,y:_32},size:{width:(_31-_30),height:(_33-_32)}}; +}; +CPStringFromCGAffineTransform=function(_34){ +return "{"+_34.a+", "+_34.b+", "+_34.c+", "+_34.d+", "+_34.tx+", "+_34.ty+"}"; +}; +var _35=1,_36=2,_37=4,_38=8,_39=16; +var _3a=NO; +var _3b=1,_3c=2,_3d=4,_3e=8,_3f=16,_40=_3d|_3b|_3c; +var _41=nil; +var _42=objj_allocateClassPair(CPObject,"CALayer"),_43=_42.isa; +class_addIvars(_42,[new objj_ivar("_frame"),new objj_ivar("_bounds"),new objj_ivar("_position"),new objj_ivar("_zPosition"),new objj_ivar("_anchorPoint"),new objj_ivar("_affineTransform"),new objj_ivar("_sublayerTransform"),new objj_ivar("_sublayerTransformForSublayers"),new objj_ivar("_backingStoreFrame"),new objj_ivar("_standardBackingStoreFrame"),new objj_ivar("_hasSublayerTransform"),new objj_ivar("_hasCustomBackingStoreFrame"),new objj_ivar("_opacity"),new objj_ivar("_isHidden"),new objj_ivar("_backgroundColor"),new objj_ivar("_superlayer"),new objj_ivar("_sublayers"),new objj_ivar("_runLoopUpdateMask"),new objj_ivar("_needsDisplayOnBoundsChange"),new objj_ivar("_delegate"),new objj_ivar("_delegateRespondsToDisplayLayerSelector"),new objj_ivar("_delegateRespondsToDrawLayerInContextSelector"),new objj_ivar("_DOMElement"),new objj_ivar("_DOMContentsElement"),new objj_ivar("_contents"),new objj_ivar("_context"),new objj_ivar("_owningView"),new objj_ivar("_transformToLayer"),new objj_ivar("_transformFromLayer")]); +objj_registerClassPair(_42); +objj_addClassForBundle(_42,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_42,[new objj_method(sel_getUid("init"),function(_44,_45){ +with(_44){ +_44=objj_msgSendSuper({receiver:_44,super_class:objj_getClass("CPObject")},"init"); +if(_44){ +_frame=CGRectMakeZero(); +_backingStoreFrame=CGRectMakeZero(); +_standardBackingStoreFrame=CGRectMakeZero(); +_bounds=CGRectMakeZero(); +_position=CGPointMakeZero(); +_zPosition=0; +_anchorPoint=CGPointMake(0.5,0.5); +_affineTransform=CGAffineTransformMakeIdentity(); +_sublayerTransform=CGAffineTransformMakeIdentity(); +_transformToLayer=CGAffineTransformMakeIdentity(); +_transformFromLayer=CGAffineTransformMakeIdentity(); +_opacity=1; +_isHidden=NO; +_masksToBounds=NO; +_sublayers=[]; +_DOMElement=document.createElement("div"); +_DOMElement.style.overflow="visible"; +_DOMElement.style.position="absolute"; +_DOMElement.style.visibility="visible"; +_DOMElement.style.top="0px"; +_DOMElement.style.left="0px"; +_DOMElement.style.zIndex=0; +_DOMElement.style.width="0px"; +_DOMElement.style.height="0px"; +} +return _44; +} +}),new objj_method(sel_getUid("setBounds:"),function(_46,_47,_48){ +with(_46){ +if(CGRectEqualToRect(_bounds,_48)){ +return; +} +var _49=_bounds.origin; +_bounds={origin:{x:_48.origin.x,y:_48.origin.y},size:{width:_48.size.width,height:_48.size.height}}; +if(_hasSublayerTransform){ +_CALayerUpdateSublayerTransformForSublayers(_46); +} +_CALayerRecalculateGeometry(_46,_35); +} +}),new objj_method(sel_getUid("bounds"),function(_4a,_4b){ +with(_4a){ +return _bounds; +} +}),new objj_method(sel_getUid("setPosition:"),function(_4c,_4d,_4e){ +with(_4c){ +if(CGPointEqualToPoint(_position,_4e)){ +return; +} +_position={x:_4e.x,y:_4e.y}; +_CALayerRecalculateGeometry(_4c,_36); +} +}),new objj_method(sel_getUid("position"),function(_4f,_50){ +with(_4f){ +return _position; +} +}),new objj_method(sel_getUid("setZPosition:"),function(_51,_52,_53){ +with(_51){ +if(_zPosition==_53){ +return; +} +_zPosition=_53; +objj_msgSend(_51,"registerRunLoopUpdateWithMask:",_3d); +} +}),new objj_method(sel_getUid("setAnchorPoint:"),function(_54,_55,_56){ +with(_54){ +_56={x:_56.x,y:_56.y}; +_56.x=MIN(1,MAX(0,_56.x)); +_56.y=MIN(1,MAX(0,_56.y)); +if(CGPointEqualToPoint(_anchorPoint,_56)){ +return; +} +_anchorPoint=_56; +if(_hasSublayerTransform){ +_CALayerUpdateSublayerTransformForSublayers(_54); +} +if(_owningView){ +_position=CGPointMake((_bounds.size.width)*_anchorPoint.x,(_bounds.size.height)*_anchorPoint.y); +} +_CALayerRecalculateGeometry(_54,_37); +} +}),new objj_method(sel_getUid("anchorPoint"),function(_57,_58){ +with(_57){ +return _anchorPoint; +} +}),new objj_method(sel_getUid("setAffineTransform:"),function(_59,_5a,_5b){ +with(_59){ +if(CGAffineTransformEqualToTransform(_affineTransform,_5b)){ +return; +} +_affineTransform={a:_5b.a,b:_5b.b,c:_5b.c,d:_5b.d,tx:_5b.tx,ty:_5b.ty}; +_CALayerRecalculateGeometry(_59,_38); +} +}),new objj_method(sel_getUid("affineTransform"),function(_5c,_5d){ +with(_5c){ +return _affineTransform; +} +}),new objj_method(sel_getUid("setSublayerTransform:"),function(_5e,_5f,_60){ +with(_5e){ +if(CGAffineTransformEqualToTransform(_sublayerTransform,_60)){ +return; +} +var _61=_hasSublayerTransform; +_sublayerTransform={a:_60.a,b:_60.b,c:_60.c,d:_60.d,tx:_60.tx,ty:_60.ty}; +_hasSublayerTransform=!(_sublayerTransform.a==1&&_sublayerTransform.b==0&&_sublayerTransform.c==0&&_sublayerTransform.d==1&&_sublayerTransform.tx==0&&_sublayerTransform.ty==0); +if(_hasSublayerTransform){ +_CALayerUpdateSublayerTransformForSublayers(_5e); +var _62=_sublayers.length; +while(_62--){ +_CALayerRecalculateGeometry(_sublayers[_62],_39); +} +} +} +}),new objj_method(sel_getUid("sublayerTransform"),function(_63,_64){ +with(_63){ +return _sublayerTransform; +} +}),new objj_method(sel_getUid("transformToLayer"),function(_65,_66){ +with(_65){ +return _transformToLayer; +} +}),new objj_method(sel_getUid("setFrame:"),function(_67,_68,_69){ +with(_67){ +alert("FIXME IMPLEMENT"); +} +}),new objj_method(sel_getUid("frame"),function(_6a,_6b){ +with(_6a){ +if(!_frame){ +_frame=objj_msgSend(_6a,"convertRect:toLayer:",_bounds,_superlayer); +} +return _frame; +} +}),new objj_method(sel_getUid("backingStoreFrame"),function(_6c,_6d){ +with(_6c){ +return _backingStoreFrame; +} +}),new objj_method(sel_getUid("setBackingStoreFrame:"),function(_6e,_6f,_70){ +with(_6e){ +_hasCustomBackingStoreFrame=(_70!=nil); +if(_70==nil){ +_70=CGRectMakeCopy(_standardBackingStoreFrame); +}else{ +if(_superlayer){ +_70=objj_msgSend(_superlayer,"convertRect:toLayer:",_70,nil); +var _71=objj_msgSend(_superlayer,"bounds"),_72=objj_msgSend(_superlayer,"convertRect:toLayer:",_71,nil); +_70.origin.x-=(_72.origin.x); +_70.origin.y-=(_72.origin.y); +}else{ +_70=CGRectMakeCopy(_70); +} +} +if(!CGPointEqualToPoint(_backingStoreFrame.origin,_70.origin)){ +objj_msgSend(_6e,"registerRunLoopUpdateWithMask:",_3b); +} +if(!CGSizeEqualToSize(_backingStoreFrame.size,_70.size)){ +objj_msgSend(_6e,"registerRunLoopUpdateWithMask:",_3c); +} +_backingStoreFrame=_70; +} +}),new objj_method(sel_getUid("contents"),function(_73,_74){ +with(_73){ +return _contents; +} +}),new objj_method(sel_getUid("setContents:"),function(_75,_76,_77){ +with(_75){ +if(_contents==_77){ +return; +} +_contents=_77; +objj_msgSend(_75,"composite"); +} +}),new objj_method(sel_getUid("composite"),function(_78,_79){ +with(_78){ +if(_3a&&!_contents||!_context){ +return; +} +CGContextClearRect(_context,{origin:{x:0,y:0},size:{width:(_backingStoreFrame.size.width),height:(_backingStoreFrame.size.height)}}); +var _7a=_transformFromLayer; +if(_superlayer){ +var _7b=_CALayerGetTransform(_superlayer,nil),_7c=CGPointApplyAffineTransform(_superlayer._bounds.origin,_7b); +_7a=CGAffineTransformConcat(_7a,_7b); +_7a.tx-=_7c.x; +_7a.ty-=_7c.y; +} +_7a.tx-=(_backingStoreFrame.origin.x); +_7a.ty-=(_backingStoreFrame.origin.y); +CGContextSaveGState(_context); +CGContextConcatCTM(_context,_7a); +if(_3a){ +_context.drawImage(_contents.buffer,(_bounds.origin.x),(_bounds.origin.y)); +}else{ +objj_msgSend(_78,"drawInContext:",_context); +} +CGContextRestoreGState(_context); +} +}),new objj_method(sel_getUid("display"),function(_7d,_7e){ +with(_7d){ +if(!_context){ +_context=CGBitmapGraphicsContextCreate(); +_DOMContentsElement=_context.DOMElement; +_DOMContentsElement.style.zIndex=-100; +_DOMContentsElement.style.overflow="hidden"; +_DOMContentsElement.style.position="absolute"; +_DOMContentsElement.style.visibility="visible"; +_DOMContentsElement.width=ROUND((_backingStoreFrame.size.width)); +_DOMContentsElement.height=ROUND((_backingStoreFrame.size.height)); +_DOMContentsElement.style.top="0px"; +_DOMContentsElement.style.left="0px"; +_DOMContentsElement.style.width=ROUND((_backingStoreFrame.size.width))+"px"; +_DOMContentsElement.style.height=ROUND((_backingStoreFrame.size.height))+"px"; +_DOMElement.appendChild(_DOMContentsElement); +} +if(_3a){ +if(_delegateRespondsToDisplayLayerSelector){ +return objj_msgSend(_delegate,"displayInLayer:",_7d); +} +if((_backingStoreFrame.size.width)==0||(_backingStoreFrame.size.height)==0){ +return; +} +if(!_contents){ +_contents=CABackingStoreCreate(); +} +CABackingStoreSetSize(_contents,_bounds.size); +objj_msgSend(_7d,"drawInContext:",CABackingStoreGetContext(_contents)); +} +objj_msgSend(_7d,"composite"); +} +}),new objj_method(sel_getUid("drawInContext:"),function(_7f,_80,_81){ +with(_7f){ +if(_backgroundColor){ +CGContextSetFillColor(_81,_backgroundColor); +CGContextFillRect(_81,_bounds); +} +if(_delegateRespondsToDrawLayerInContextSelector){ +objj_msgSend(_delegate,"drawLayer:inContext:",_7f,_81); +} +} +}),new objj_method(sel_getUid("opacity"),function(_82,_83){ +with(_82){ +return _opacity; +} +}),new objj_method(sel_getUid("setOpacity:"),function(_84,_85,_86){ +with(_84){ +if(_opacity==_86){ +return; +} +_opacity=_86; +_DOMElement.style.opacity=_86; +_DOMElement.style.filter="alpha(opacity="+_86*100+")"; +} +}),new objj_method(sel_getUid("setHidden:"),function(_87,_88,_89){ +with(_87){ +_isHidden=_89; +_DOMElement.style.display=_89?"none":"block"; +} +}),new objj_method(sel_getUid("hidden"),function(_8a,_8b){ +with(_8a){ +return _isHidden; +} +}),new objj_method(sel_getUid("isHidden"),function(_8c,_8d){ +with(_8c){ +return _isHidden; +} +}),new objj_method(sel_getUid("setMasksToBounds:"),function(_8e,_8f,_90){ +with(_8e){ +if(_masksToBounds==_90){ +return; +} +_masksToBounds=_90; +_DOMElement.style.overflow=_masksToBounds?"hidden":"visible"; +} +}),new objj_method(sel_getUid("setBackgroundColor:"),function(_91,_92,_93){ +with(_91){ +_backgroundColor=_93; +objj_msgSend(_91,"setNeedsDisplay"); +} +}),new objj_method(sel_getUid("backgroundColor"),function(_94,_95){ +with(_94){ +return _backgroundColor; +} +}),new objj_method(sel_getUid("sublayers"),function(_96,_97){ +with(_96){ +return _sublayers; +} +}),new objj_method(sel_getUid("superlayer"),function(_98,_99){ +with(_98){ +return _superlayer; +} +}),new objj_method(sel_getUid("addSublayer:"),function(_9a,_9b,_9c){ +with(_9a){ +objj_msgSend(_9a,"insertSublayer:atIndex:",_9c,_sublayers.length); +return; +if(_DOMContentsElement&&_9c._zPosition>_DOMContentsElement.style.zIndex){ +_DOMContentsElement.style.zIndex-=100; +} +objj_msgSend(_sublayers,"addObject:",_9c); +_DOMElement.appendChild(_9c._DOMElement); +} +}),new objj_method(sel_getUid("removeFromSuperlayer"),function(_9d,_9e){ +with(_9d){ +if(_owningView){ +objj_msgSend(_owningView,"setLayer:",nil); +} +if(!_superlayer){ +return; +} +_superlayer._DOMElement.removeChild(_DOMElement); +objj_msgSend(_superlayer._sublayers,"removeObject:",_9d); +_superlayer=nil; +} +}),new objj_method(sel_getUid("insertSublayer:atIndex:"),function(_9f,_a0,_a1,_a2){ +with(_9f){ +if(!_a1){ +return; +} +var _a3=objj_msgSend(_a1,"superlayer"); +if(_a3==_9f){ +var _a4=objj_msgSend(_sublayers,"indexOfObjectIdenticalTo:",_a1); +if(_a4==_a2){ +return; +} +objj_msgSend(_sublayers,"removeObjectAtIndex:",_a4); +if(_a4<_a2){ +--_a2; +} +}else{ +if(_a3!=nil){ +objj_msgSend(_a1,"removeFromSuperlayer"); +} +} +if(_DOMContentsElement&&_a1._zPosition>_DOMContentsElement.style.zIndex){ +_DOMContentsElement.style.zIndex-=100; +} +objj_msgSend(_sublayers,"insertObject:atIndex:",_a1,_a2); +if(_a2>=_sublayers.length-1){ +_DOMElement.appendChild(_a1._DOMElement); +}else{ +_DOMElement.insertBefore(_a1._DOMElement,_sublayers[_a2+1]._DOMElement); +} +_a1._superlayer=_9f; +if(_9f!=_a3){ +_CALayerRecalculateGeometry(_a1,268435455); +} +} +}),new objj_method(sel_getUid("insertSublayer:below:"),function(_a5,_a6,_a7,_a8){ +with(_a5){ +var _a9=_a8?objj_msgSend(_sublayers,"indexOfObjectIdenticalTo:",_a8):0; +objj_msgSend(_a5,"insertSublayer:atIndex:",_a7,_a9==CPNotFound?_sublayers.length:_a9); +} +}),new objj_method(sel_getUid("insertSublayer:above:"),function(_aa,_ab,_ac,_ad){ +with(_aa){ +var _ae=_ad?objj_msgSend(_sublayers,"indexOfObjectIdenticalTo:",_ad):_sublayers.length; +if(_ae==CPNotFound){ +objj_msgSend(CPException,"raise:reason:","CALayerNotFoundException","aSublayer is not a sublayer of this layer"); +} +objj_msgSend(_sublayers,"insertObject:atIndex:",_ac,_ae==CPNotFound?_sublayers.length:_ae+1); +} +}),new objj_method(sel_getUid("replaceSublayer:with:"),function(_af,_b0,_b1,_b2){ +with(_af){ +if(_b1==_b2){ +return; +} +if(_b1._superlayer!=_af){ +alert("EXCEPTION"); +return; +} +if(_DOMContentsElement&&_b2._zPosition>_DOMContentsElement.style.zIndex){ +_DOMContentsElement.style.zIndex-=100; +} +objj_msgSend(_sublayers,"replaceObjectAtIndex:withObject:",objj_msgSend(_sublayers,"indexOfObjectIdenticalTo:",_b1),_b2); +_DOMElement.replaceChild(_b1._DOMElement,_b2._DOMElement); +} +}),new objj_method(sel_getUid("registerRunLoopUpdateWithMask:"),function(_b3,_b4,_b5){ +with(_b3){ +if(_41==nil){ +_41={}; +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"performSelector:target:argument:order:modes:",sel_getUid("runLoopUpdateLayers"),CALayer,nil,0,[CPDefaultRunLoopMode]); +} +_runLoopUpdateMask|=_b5; +_41[objj_msgSend(_b3,"hash")]=_b3; +} +}),new objj_method(sel_getUid("setNeedsComposite"),function(_b6,_b7){ +with(_b6){ +objj_msgSend(_b6,"registerRunLoopUpdateWithMask:",_3f); +} +}),new objj_method(sel_getUid("setNeedsDisplay"),function(_b8,_b9){ +with(_b8){ +objj_msgSend(_b8,"registerRunLoopUpdateWithMask:",_3e); +} +}),new objj_method(sel_getUid("setNeedsDisplayOnBoundsChange:"),function(_ba,_bb,_bc){ +with(_ba){ +_needsDisplayOnBoundsChange=_bc; +} +}),new objj_method(sel_getUid("needsDisplayOnBoundsChange"),function(_bd,_be){ +with(_bd){ +return _needsDisplayOnBoundsChange; +} +}),new objj_method(sel_getUid("setNeedsDisplayInRect:"),function(_bf,_c0,_c1){ +with(_bf){ +_dirtyRect=_c1; +objj_msgSend(_bf,"display"); +} +}),new objj_method(sel_getUid("convertPoint:fromLayer:"),function(_c2,_c3,_c4,_c5){ +with(_c2){ +return CGPointApplyAffineTransform(_c4,_CALayerGetTransform(_c5,_c2)); +} +}),new objj_method(sel_getUid("convertPoint:toLayer:"),function(_c6,_c7,_c8,_c9){ +with(_c6){ +return CGPointApplyAffineTransform(_c8,_CALayerGetTransform(_c6,_c9)); +} +}),new objj_method(sel_getUid("convertRect:fromLayer:"),function(_ca,_cb,_cc,_cd){ +with(_ca){ +return CGRectApplyAffineTransform(_cc,_CALayerGetTransform(_cd,_ca)); +} +}),new objj_method(sel_getUid("convertRect:toLayer:"),function(_ce,_cf,_d0,_d1){ +with(_ce){ +return CGRectApplyAffineTransform(_d0,_CALayerGetTransform(_ce,_d1)); +} +}),new objj_method(sel_getUid("containsPoint:"),function(_d2,_d3,_d4){ +with(_d2){ +return (_d4.x>=(_bounds.origin.x)&&_d4.y>=(_bounds.origin.y)&&_d4.x<(_bounds.origin.x+_bounds.size.width)&&_d4.y<(_bounds.origin.y+_bounds.size.height)); +} +}),new objj_method(sel_getUid("hitTest:"),function(_d5,_d6,_d7){ +with(_d5){ +if(_isHidden){ +return nil; +} +var _d8=CGPointApplyAffineTransform(_d7,_transformToLayer); +if(!(_d8.x>=(_bounds.origin.x)&&_d8.y>=(_bounds.origin.y)&&_d8.x<(_bounds.origin.x+_bounds.size.width)&&_d8.y<(_bounds.origin.y+_bounds.size.height))){ +return nil; +} +var _d9=nil,_da=_sublayers.length; +while(_da--){ +if(_d9=objj_msgSend(_sublayers[_da],"hitTest:",_d8)){ +return _d9; +} +} +return _d5; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_db,_dc,_dd){ +with(_db){ +if(_delegate==_dd){ +return; +} +_delegate=_dd; +_delegateRespondsToDisplayLayerSelector=objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("displayLayer:")); +_delegateRespondsToDrawLayerInContextSelector=objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("drawLayer:inContext:")); +if(_delegateRespondsToDisplayLayerSelector||_delegateRespondsToDrawLayerInContextSelector){ +objj_msgSend(_db,"setNeedsDisplay"); +} +} +}),new objj_method(sel_getUid("delegate"),function(_de,_df){ +with(_de){ +return _delegate; +} +}),new objj_method(sel_getUid("_setOwningView:"),function(_e0,_e1,_e2){ +with(_e0){ +_owningView=_e2; +if(_owningView){ +_owningView=_e2; +_bounds.size=CGSizeMakeCopy(objj_msgSend(_owningView,"bounds").size); +_position=CGPointMake((_bounds.size.width)*_anchorPoint.x,(_bounds.size.height)*_anchorPoint.y); +} +_CALayerRecalculateGeometry(_e0,_36|_35); +} +}),new objj_method(sel_getUid("_owningViewBoundsChanged"),function(_e3,_e4){ +with(_e3){ +_bounds.size=CGSizeMakeCopy(objj_msgSend(_owningView,"bounds").size); +_position=CGPointMake((_bounds.size.width)*_anchorPoint.x,(_bounds.size.height)*_anchorPoint.y); +_CALayerRecalculateGeometry(_e3,_36|_35); +} +}),new objj_method(sel_getUid("_update"),function(_e5,_e6){ +with(_e5){ +window.loop=true; +var _e7=_runLoopUpdateMask; +if(_e7&_40){ +_CALayerUpdateDOM(_e5,_e7); +} +if(_e7&_3e){ +objj_msgSend(_e5,"display"); +}else{ +if(_e7&_3c||_e7&_3f){ +objj_msgSend(_e5,"composite"); +} +} +_runLoopUpdateMask=0; +window.loop=false; +} +})]); +class_addMethods(_43,[new objj_method(sel_getUid("layer"),function(_e8,_e9){ +with(_e8){ +return objj_msgSend(objj_msgSend(objj_msgSend(_e8,"class"),"alloc"),"init"); +} +}),new objj_method(sel_getUid("runLoopUpdateLayers"),function(_ea,_eb){ +with(_ea){ +if(window.oops){ +alert(window.latest); +objj_debug_print_backtrace(); +} +window.loop=true; +for(hash in _41){ +var _ec=_41[hash],_ed=_ec._runLoopUpdateMask; +if(_ed&_40){ +_CALayerUpdateDOM(_ec,_ed); +} +if(_ed&_3e){ +objj_msgSend(_ec,"display"); +}else{ +if(_ed&_3c||_ed&_3f){ +objj_msgSend(_ec,"composite"); +} +} +_ec._runLoopUpdateMask=0; +} +window.loop=false; +_41=nil; +} +})]); +_CALayerUpdateSublayerTransformForSublayers=function(_ee){ +var _ef=_ee._bounds,_f0=_ee._anchorPoint,_f1=(_ef.size.width)*_f0.x,_f2=(_ef.size.height)*_f0.y; +_ee._sublayerTransformForSublayers=CGAffineTransformConcat(CGAffineTransformMakeTranslation(-_f1,-_f2),CGAffineTransformConcat(_ee._sublayerTransform,CGAffineTransformMakeTranslation(_f1,_f2))); +}; +_CALayerUpdateDOM=function(_f3,_f4){ +var _f5=_f3._DOMElement.style; +if(_f4&_3d){ +_f5.zIndex=_f3._zPosition; +} +var _f6=_f3._backingStoreFrame; +if(_f4&_3b){ +_f5.top=ROUND((_f6.origin.y))+"px"; +_f5.left=ROUND((_f6.origin.x))+"px"; +} +if(_f4&_3c){ +var _f7=MAX(0,ROUND((_f6.size.width))),_f8=MAX(0,ROUND((_f6.size.height))),_f9=_f3._DOMContentsElement; +_f5.width=_f7+"px"; +_f5.height=_f8+"px"; +if(_f9){ +_f9.width=_f7; +_f9.height=_f8; +_f9.style.width=_f7+"px"; +_f9.style.height=_f8+"px"; +} +} +}; +_CALayerRecalculateGeometry=function(_fa,_fb){ +var _fc=_fa._bounds,_fd=_fa._superlayer,_fe=(_fc.size.width),_ff=(_fc.size.height),_100=_fa._position,_101=_fa._anchorPoint,_102=_fa._affineTransform,_103={width:_fa._backingStoreFrame.width,height:_fa._backingStoreFrame.height},_104=_fa._hasCustomBackingStoreFrame; +_fa._transformFromLayer=CGAffineTransformConcat(CGAffineTransformMakeTranslation(-_fe*_101.x-(_fa._bounds.origin.x),-_ff*_101.y-(_fa._bounds.origin.y)),CGAffineTransformConcat(_102,CGAffineTransformMakeTranslation(_100.x,_100.y))); +if(_fd&&_fd._hasSublayerTransform){ +var tx=_fa._transformFromLayer.tx*_fd._sublayerTransformForSublayers.a+_fa._transformFromLayer.ty*_fd._sublayerTransformForSublayers.c+_fd._sublayerTransformForSublayers.tx; +_fa._transformFromLayer.ty=_fa._transformFromLayer.tx*_fd._sublayerTransformForSublayers.b+_fa._transformFromLayer.ty*_fd._sublayerTransformForSublayers.d+_fd._sublayerTransformForSublayers.ty; +_fa._transformFromLayer.tx=tx; +var a=_fa._transformFromLayer.a*_fd._sublayerTransformForSublayers.a+_fa._transformFromLayer.b*_fd._sublayerTransformForSublayers.c,b=_fa._transformFromLayer.a*_fd._sublayerTransformForSublayers.b+_fa._transformFromLayer.b*_fd._sublayerTransformForSublayers.d,c=_fa._transformFromLayer.c*_fd._sublayerTransformForSublayers.a+_fa._transformFromLayer.d*_fd._sublayerTransformForSublayers.c; +_fa._transformFromLayer.d=_fa._transformFromLayer.c*_fd._sublayerTransformForSublayers.b+_fa._transformFromLayer.d*_fd._sublayerTransformForSublayers.d; +_fa._transformFromLayer.a=a; +_fa._transformFromLayer.b=b; +_fa._transformFromLayer.c=c; +} +_fa._transformToLayer=CGAffineTransformInvert(_fa._transformFromLayer); +_fa._frame=nil; +_fa._standardBackingStoreFrame=objj_msgSend(_fa,"convertRect:toLayer:",_fc,nil); +if(_fd){ +var _fc=objj_msgSend(_fd,"bounds"),_109=objj_msgSend(_fd,"convertRect:toLayer:",_fc,nil); +_fa._standardBackingStoreFrame.origin.x-=(_109.origin.x); +_fa._standardBackingStoreFrame.origin.y-=(_109.origin.y); +} +var _10a=_fa._standardBackingStoreFrame.origin,size=_fa._standardBackingStoreFrame.size; +_10a.x=FLOOR(_10a.x); +_10a.y=FLOOR(_10a.y); +size.width=CEIL(size.width)+1; +size.height=CEIL(size.height)+1; +if(!_104){ +var _10c=CGRectMakeCopy(_fa._standardBackingStoreFrame); +if(ROUND((_10c.origin.x))!=ROUND((_fa._backingStoreFrame.origin.x))||ROUND((_10c.origin.y))!=ROUND((_fa._backingStoreFrame.origin.y))){ +objj_msgSend(_fa,"registerRunLoopUpdateWithMask:",_3b); +} +if(((_10c.size.width)!=ROUND((_fa._backingStoreFrame.size.width))||(_10c.size.height)!=ROUND((_fa._backingStoreFrame.size.height)))){ +objj_msgSend(_fa,"registerRunLoopUpdateWithMask:",_3c); +} +_fa._backingStoreFrame=_10c; +} +if(_fb&_35&&_fa._needsDisplayOnBoundsChange){ +objj_msgSend(_fa,"setNeedsDisplay"); +}else{ +if(_104||(_fb&~(_36|_37))){ +objj_msgSend(_fa,"setNeedsComposite"); +} +} +var _10d=_fa._sublayers,_10e=0,_10f=_10d.length; +for(;_10e<_10f;++_10e){ +_CALayerRecalculateGeometry(_10d[_10e],_fb); +} +}; +_CALayerGetTransform=function(_110,_111){ +var _112=CGAffineTransformMakeIdentity(); +if(_110){ +var _113=_110; +while(_113&&_113!=_111){ +var _114=_113._transformFromLayer; +var tx=_112.tx*_114.a+_112.ty*_114.c+_114.tx; +_112.ty=_112.tx*_114.b+_112.ty*_114.d+_114.ty; +_112.tx=tx; +var a=_112.a*_114.a+_112.b*_114.c,b=_112.a*_114.b+_112.b*_114.d,c=_112.c*_114.a+_112.d*_114.c; +_112.d=_112.c*_114.b+_112.d*_114.d; +_112.a=a; +_112.b=b; +_112.c=c; +_113=_113._superlayer; +} +if(_113==_111){ +return _112; +} +} +var _119=[],_113=_111; +while(_113){ +_119.push(_113); +_113=_113._superlayer; +} +var _11a=_119.length; +while(_11a--){ +var _11b=_119[_11a]._transformToLayer; +var tx=_112.tx*_11b.a+_112.ty*_11b.c+_11b.tx; +_112.ty=_112.tx*_11b.b+_112.ty*_11b.d+_11b.ty; +_112.tx=tx; +var a=_112.a*_11b.a+_112.b*_11b.c,b=_112.a*_11b.b+_112.b*_11b.d,c=_112.c*_11b.a+_112.d*_11b.c; +_112.d=_112.c*_11b.b+_112.d*_11b.d; +_112.a=a; +_112.b=b; +_112.c=c; +} +return _112; +}; +p;23;CAMediaTimingFunction.jI;21;Foundation/CPObject.jI;25;Foundation/CPDictionary.jI;21;Foundation/CPString.jc;2072; +kCAMediaTimingFunctionLinear="kCAMediaTimingFunctionLinear"; +kCAMediaTimingFunctionEaseIn="kCAMediaTimingFunctionEaseIn"; +kCAMediaTimingFunctionEaseOut="kCAMediaTimingFunctionEaseOut"; +kCAMediaTimingFunctionEaseInEaseOut="kCAMediaTimingFunctionEaseInEaseOut"; +var _1=nil; +var _2=objj_allocateClassPair(CPObject,"CAMediaTimingFunction"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_c1x"),new objj_ivar("_c1y"),new objj_ivar("_c2x"),new objj_ivar("_c2y")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithControlPoints::::"),function(_4,_5,_6,_7,_8,_9){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPObject")},"init"); +if(_4){ +_c1x=_6; +_c1y=_7; +_c2x=_8; +_c2y=_9; +} +return _4; +} +}),new objj_method(sel_getUid("getControlPointAtIndex:values:"),function(_a,_b,_c,_d){ +with(_a){ +if(_c==0){ +_d[0]=0; +_d[1]=0; +}else{ +if(_c==1){ +_d[0]=_c1x; +_d[1]=_c1y; +}else{ +if(_c==2){ +_d[0]=_c2x; +_d[1]=_c2y; +}else{ +_d[0]=1; +_d[1]=1; +} +} +} +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("functionWithName:"),function(_e,_f,_10){ +with(_e){ +if(!_1){ +_1=objj_msgSend(CPDictionary,"dictionary"); +objj_msgSend(_1,"setObject:forKey:",objj_msgSend(CAMediaTimingFunction,"functionWithControlPoints::::",0,0,1,1),kCAMediaTimingFunctionLinear); +objj_msgSend(_1,"setObject:forKey:",objj_msgSend(CAMediaTimingFunction,"functionWithControlPoints::::",0.42,0,1,1),kCAMediaTimingFunctionEaseIn); +objj_msgSend(_1,"setObject:forKey:",objj_msgSend(CAMediaTimingFunction,"functionWithControlPoints::::",0,0,0.58,1),kCAMediaTimingFunctionEaseOut); +objj_msgSend(_1,"setObject:forKey:",objj_msgSend(CAMediaTimingFunction,"functionWithControlPoints::::",0.42,0,0.58,1),kCAMediaTimingFunctionEaseInEaseOut); +} +return objj_msgSend(_1,"objectForKey:",_10); +} +}),new objj_method(sel_getUid("functionWithControlPoints::::"),function(_11,_12,c1x,c1y,c2x,c2y){ +with(_11){ +return objj_msgSend(objj_msgSend(_11,"alloc"),"initWithControlPoints::::",c1x,c1y,c2x,c2y); +} +})]); +p;19;CGAffineTransform.ji;12;CGGeometry.jc;2950; +CGAffineTransformMake=function(a,b,c,d,tx,ty){ +return {a:a,b:b,c:c,d:d,tx:tx,ty:ty}; +}; +CGAffineTransformMakeIdentity=function(){ +return {a:1,b:0,c:0,d:1,tx:0,ty:0}; +}; +CGAffineTransformMakeCopy=function(_7){ +return {a:_7.a,b:_7.b,c:_7.c,d:_7.d,tx:_7.tx,ty:_7.ty}; +}; +CGAffineTransformMakeScale=function(sx,sy){ +return {a:sx,b:0,c:0,d:sy,tx:0,ty:0}; +}; +CGAffineTransformMakeTranslation=function(tx,ty){ +return {a:1,b:0,c:0,d:1,tx:tx,ty:ty}; +}; +CGAffineTransformTranslate=function(_c,tx,ty){ +return {a:_c.a,b:_c.b,c:_c.c,d:_c.d,tx:_c.tx+_c.a*tx+_c.c*ty,ty:_c.ty+_c.b*tx+_c.d*ty}; +}; +CGAffineTransformScale=function(_f,sx,sy){ +return {a:_f.a*sx,b:_f.b*sx,c:_f.c*sy,d:_f.d*sy,tx:_f.tx,ty:_f.ty}; +}; +CGAffineTransformConcat=function(lhs,rhs){ +return {a:lhs.a*rhs.a+lhs.b*rhs.c,b:lhs.a*rhs.b+lhs.b*rhs.d,c:lhs.c*rhs.a+lhs.d*rhs.c,d:lhs.c*rhs.b+lhs.d*rhs.d,tx:lhs.tx*rhs.a+lhs.ty*rhs.c+rhs.tx,ty:lhs.tx*rhs.b+lhs.ty*rhs.d+rhs.ty}; +}; +CGPointApplyAffineTransform=function(_14,_15){ +return {x:_14.x*_15.a+_14.y*_15.c+_15.tx,y:_14.x*_15.b+_14.y*_15.d+_15.ty}; +}; +CGSizeApplyAffineTransform=function(_16,_17){ +return {width:_16.width*_17.a+_16.height*_17.c,height:_16.width*_17.b+_16.height*_17.d}; +}; +CGAffineTransformIsIdentity=function(_18){ +return (_18.a==1&&_18.b==0&&_18.c==0&&_18.d==1&&_18.tx==0&&_18.ty==0); +}; +CGAffineTransformEqualToTransform=function(lhs,rhs){ +return (lhs.a==rhs.a&&lhs.b==rhs.b&&lhs.c==rhs.c&&lhs.d==rhs.d&&lhs.tx==rhs.tx&&lhs.ty==rhs.ty); +}; +CGStringCreateWithCGAffineTransform=function(_1b){ +return (" [[ "+_1b.a+", "+_1b.b+", 0 ], [ "+_1b.c+", "+_1b.d+", 0 ], [ "+_1b.tx+", "+_1b.ty+", 1]]"); +}; +CGAffineTransformCreateCopy=function(_1c){ +return {a:_1c.a,b:_1c.b,c:_1c.c,d:_1c.d,tx:_1c.tx,ty:_1c.ty}; +}; +CGAffineTransformMakeRotation=function(_1d){ +var sin=SIN(_1d),cos=COS(_1d); +return {a:cos,b:sin,c:-sin,d:cos,tx:0,ty:0}; +}; +CGAffineTransformRotate=function(_20,_21){ +var sin=SIN(_21),cos=COS(_21); +return {a:_20.a*cos+_20.c*sin,b:_20.b*cos+_20.d*sin,c:_20.c*cos-_20.a*sin,d:_20.d*cos-_20.b*sin,tx:_20.tx,ty:_20.ty}; +}; +CGAffineTransformInvert=function(_24){ +var _25=1/(_24.a*_24.d-_24.b*_24.c); +return {a:_25*_24.d,b:-_25*_24.b,c:-_25*_24.c,d:_25*_24.a,tx:_25*(_24.c*_24.ty-_24.d*_24.tx),ty:_25*(_24.b*_24.tx-_24.a*_24.ty)}; +}; +CGRectApplyAffineTransform=function(_26,_27){ +var top=(_26.origin.y),_29=(_26.origin.x),_2a=(_26.origin.x+_26.size.width),_2b=(_26.origin.y+_26.size.height),_2c=CGPointApplyAffineTransform({x:_29,y:top},_27),_2d=CGPointApplyAffineTransform({x:_2a,y:top},_27),_2e=CGPointApplyAffineTransform({x:_29,y:_2b},_27),_2f=CGPointApplyAffineTransform({x:_2a,y:_2b},_27),_30=MIN(_2c.x,_2d.x,_2e.x,_2f.x),_31=MAX(_2c.x,_2d.x,_2e.x,_2f.x),_32=MIN(_2c.y,_2d.y,_2e.y,_2f.y),_33=MAX(_2c.y,_2d.y,_2e.y,_2f.y); +return {origin:{x:_30,y:_32},size:{width:(_31-_30),height:(_33-_32)}}; +}; +CPStringFromCGAffineTransform=function(_34){ +return "{"+_34.a+", "+_34.b+", "+_34.c+", "+_34.d+", "+_34.tx+", "+_34.ty+"}"; +}; +p;9;CGColor.ji;14;CGColorSpace.jc;2065; +var _1=0; +CFHashCode=function(_2){ +if(!_2.hash){ +_2.hash=++_1; +} +return _2; +}; +kCGColorWhite="kCGColorWhite"; +kCGColorBlack="kCGColorBlack"; +kCGColorClear="kCGColorClear"; +var _3={}; +CGColorGetConstantColor=function(_4){ +alert("FIX ME"); +}; +CGColorRetain=function(_5){ +return _5; +}; +CGColorRelease=function(){ +}; +CGColorCreate=function(_6,_7){ +if(!_6||!_7){ +return NULL; +} +var _7=_7.slice(); +CGColorSpaceStandardizeComponents(_6,_7); +var _8=CFHashCode(_6)+_7.join(""); +if(_3[_8]){ +return _3[_8]; +} +return _3[_8]={colorspace:_6,pattern:NULL,components:_7}; +}; +CGColorCreateCopy=function(_9){ +return _9; +}; +CGColorCreateGenericGray=function(_a,_b){ +return CGColorCreate(0,[_a,_b]); +}; +CGColorCreateGenericRGB=function(_c,_d,_e,_f){ +return CGColorCreate(0,[_c,_d,_e,_f]); +}; +CGColorCreateGenericCMYK=function(_10,_11,_12,_13,_14){ +return CGColorCreate(0,[_10,_11,_12,_13,_14]); +}; +CGColorCreateCopyWithAlpha=function(_15,_16){ +var _17=_15.components; +if(!_15||_16==_17[_17.length-1]){ +return _15; +} +if(_15.pattern){ +var _18=CGColorCreateWithPattern(_15.colorspace,_15.pattern,_17); +}else{ +var _18=CGColorCreate(_15.colorspace,_17); +} +_18.components[_17.length-1]=_16; +return _18; +}; +CGColorCreateWithPattern=function(_19,_1a,_1b){ +if(!_19||!_1a||!_1b){ +return NULL; +} +return {colorspace:_19,pattern:_1a,components:_1b.slice()}; +}; +CGColorEqualToColor=function(lhs,rhs){ +if(lhs==rhs){ +return true; +} +if(!lhs||!rhs){ +return false; +} +var _1e=lhs.components,_1f=rhs.components,_20=_1e.length; +if(_20!=_1f.length){ +return false; +} +while(_20--){ +if(_1e[_20]!=_1f[_20]){ +return false; +} +} +if(lhs.pattern!=rhs.pattern){ +return false; +} +if(CGColorSpaceEqualToColorSpace(lhs.colorspace,rhs.colorspace)){ +return false; +} +return true; +}; +CGColorGetAlpha=function(_21){ +var _22=_21.components; +return _22[_22.length-1]; +}; +CGColorGetColorSpace=function(_23){ +return _23.colorspace; +}; +CGColorGetComponents=function(_24){ +return _24.components; +}; +CGColorGetNumberOfComponents=function(_25){ +return _25.components.length; +}; +CGColorGetPattern=function(_26){ +return _26.pattern; +}; +p;14;CGColorSpace.jc;3502; +kCGColorSpaceModelUnknown=-1; +kCGColorSpaceModelMonochrome=0; +kCGColorSpaceModelRGB=1; +kCGColorSpaceModelCMYK=2; +kCGColorSpaceModelLab=3; +kCGColorSpaceModelDeviceN=4; +kCGColorSpaceModelIndexed=5; +kCGColorSpaceModelPattern=6; +kCGColorSpaceGenericGray="CGColorSpaceGenericGray"; +kCGColorSpaceGenericRGB="CGColorSpaceGenericRGB"; +kCGColorSpaceGenericCMYK="CGColorSpaceGenericCMYK"; +kCGColorSpaceGenericRGBLinear="CGColorSpaceGenericRGBLinear"; +kCGColorSpaceGenericRGBHDR="CGColorSpaceGenericRGBHDR"; +kCGColorSpaceAdobeRGB1998="CGColorSpaceAdobeRGB1998"; +kCGColorSpaceSRGB="CGColorSpaceSRGB"; +var _1={}; +CGColorSpaceCreateCalibratedGray=function(_2,_3,_4){ +return {model:kCGColorSpaceModelMonochrome,count:1,base:NULL}; +}; +CGColorSpaceCreateCalibratedRGB=function(_5,_6,_7){ +return {model:kCGColorSpaceModelRGB,count:1,base:NULL}; +}; +CGColorSpaceCreateICCBased=function(_8,_9,_a,_b){ +return NULL; +}; +CGColorSpaceCreateLab=function(_c,_d,_e){ +return NULL; +}; +CGColorSpaceCreateDeviceCMYK=function(){ +return CGColorSpaceCreateWithName(kCGColorSpaceGenericCMYK); +}; +CGColorSpaceCreateDeviceGray=function(){ +return CGColorSpaceCreateWithName(kCGColorSpaceGenericGray); +}; +CGColorSpaceCreateDeviceRGB=function(){ +return CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB); +}; +CGColorSpaceCreateWithPlatformColorSpace=function(){ +return NULL; +}; +CGColorSpaceCreateIndexed=function(_f,_10,_11){ +return NULL; +}; +CGColorSpaceCreatePattern=function(_12){ +if(_12){ +return {model:kCGColorSpaceModelPattern,count:_12.count,base:_12}; +} +return {model:kCGColorSpaceModelPattern,count:0,base:NULL}; +}; +CGColorSpaceCreateWithName=function(_13){ +var _14=_1[_13]; +if(_14){ +return _14; +} +switch(_13){ +case kCGColorSpaceGenericGray: +return _1[_13]={model:kCGColorSpaceModelMonochrome,count:1,base:NULL}; +case kCGColorSpaceGenericRGB: +return _1[_13]={model:kCGColorSpaceModelRGB,count:3,base:NULL}; +case kCGColorSpaceGenericCMYK: +return _1[_13]={model:kCGColorSpaceModelCMYK,count:4,base:NULL}; +case kCGColorSpaceGenericRGBLinear: +return _1[_13]={model:kCGColorSpaceModelRGB,count:3,base:NULL}; +case kCGColorSpaceGenericRGBHDR: +return _1[_13]={model:kCGColorSpaceModelRGB,count:3,base:NULL}; +case kCGColorSpaceAdobeRGB1998: +return _1[_13]={model:kCGColorSpaceModelRGB,count:3,base:NULL}; +case kCGColorSpaceSRGB: +return _1[_13]={model:kCGColorSpaceModelRGB,count:3,base:NULL}; +} +return NULL; +}; +CGColorSpaceCopyICCProfile=function(_15){ +return NULL; +}; +CGColorSpaceGetNumberOfComponents=function(_16){ +return _16.count; +}; +CGColorSpaceGetTypeID=function(_17){ +}; +CGColorSpaceGetModel=function(_18){ +return _18.model; +}; +CGColorSpaceGetBaseColorSpace=function(_19){ +}; +CGColorSpaceGetColorTableCount=function(_1a){ +}; +CGColorSpaceGetColorTable=function(_1b){ +}; +CGColorSpaceRelease=function(_1c){ +}; +CGColorSpaceRetain=function(_1d){ +return _1d; +}; +CGColorSpaceStandardizeComponents=function(_1e,_1f){ +var _20=_1e.count; +if(_20>_1f.length){ +_1f[_20]=1; +return; +} +var _21=_1f[_20]; +if(_21<0){ +_1f[_20]=0; +}else{ +if(_21>1){ +_1f[_20]=1; +}else{ +_1f[_20]=ROUND(_21*1000)/1000; +} +} +if(_1e.base){ +_1e=_1e.base; +} +switch(_1e.model){ +case kCGColorSpaceModelMonochrome: +case kCGColorSpaceModelRGB: +case kCGColorSpaceModelCMYK: +case kCGColorSpaceModelDeviceN: +while(_20--){ +if(_20>_1f.length){ +_1f[_20]=1; +return; +} +var _21=_1f[_20]; +if(_21<0){ +_1f[_20]=0; +}else{ +if(_21>1){ +_1f[_20]=1; +}else{ +_1f[_20]=ROUND(_21*255)/255; +} +} +} +break; +case kCGColorSpaceModelIndexed: +case kCGColorSpaceModelLab: +case kCGColorSpaceModelPattern: +break; +} +}; +p;11;CGContext.ji;12;CGGeometry.ji;19;CGAffineTransform.ji;8;CGPath.jc;20322; +kCGLineCapButt=0; +kCGLineCapRound=1; +kCGLineCapSquare=2; +kCGLineJoinMiter=0; +kCGLineJoinRound=1; +kCGLineJoinBevel=2; +kCGPathFill=0; +kCGPathEOFill=1; +kCGPathStroke=2; +kCGPathFillStroke=3; +kCGPathEOFillStroke=4; +kCGBlendModeNormal=0; +kCGBlendModeMultiply=1; +kCGBlendModeScreen=2; +kCGBlendModeOverlay=3; +kCGBlendModeDarken=4; +kCGBlendModeLighten=5; +kCGBlendModeColorDodge=6; +kCGBlendModeColorBurn=7; +kCGBlendModeSoftLight=8; +kCGBlendModeHardLight=9; +kCGBlendModeDifference=10; +kCGBlendModeExclusion=11; +kCGBlendModeHue=12; +kCGBlendModeSaturation=13; +kCGBlendModeColor=14; +kCGBlendModeLuminosity=15; +kCGBlendModeClear=16; +kCGBlendModeCopy=17; +kCGBlendModeSourceIn=18; +kCGBlendModeSourceOut=19; +kCGBlendModeSourceAtop=20; +kCGBlendModeDestinationOver=21; +kCGBlendModeDestinationIn=22; +kCGBlendModeDestinationOut=23; +kCGBlendModeDestinationAtop=24; +kCGBlendModeXOR=25; +kCGBlendModePlusDarker=26; +kCGBlendModePlusLighter=27; +CGContextRelease=function(){ +}; +CGContextRetain=function(_1){ +return _1; +}; +if(!CPFeatureIsCompatible(CPHTMLCanvasFeature)){ +CGGStateCreate=function(){ +return {alpha:1,strokeStyle:"#000",fillStyle:"#ccc",lineWidth:1,lineJoin:kCGLineJoinMiter,lineCap:kCGLineCapButt,miterLimit:10,globalAlpha:1,blendMode:kCGBlendModeNormal,shadowOffset:{width:0,height:0},shadowBlur:0,shadowColor:NULL,CTM:{a:1,b:0,c:0,d:1,tx:0,ty:0}}; +}; +CGGStateCreateCopy=function(_2){ +return {alpha:_2.alpha,strokeStyle:_2.strokeStyle,fillStyle:_2.fillStyle,lineWidth:_2.lineWidth,lineJoin:_2.lineJoin,lineCap:_2.lineCap,miterLimit:_2.miterLimit,globalAlpha:_2.globalAlpha,blendMode:_2.blendMode,shadowOffset:_2.shadowOffset,shadowBlur:_2.shadowBlur,shadowColor:_2.shadowColor,CTM:{a:_2.CTM.a,b:_2.CTM.b,c:_2.CTM.c,d:_2.CTM.d,tx:_2.CTM.tx,ty:_2.CTM.ty}}; +}; +CGBitmapGraphicsContextCreate=function(){ +return {DOMElement:document.createElement("div"),path:NULL,gState:CGGStateCreate(),gStateStack:[]}; +}; +CGContextSaveGState=function(_3){ +_3.gStateStack.push(CGGStateCreateCopy(_3.gState)); +}; +CGContextRestoreGState=function(_4){ +_4.gState=_4.gStateStack.pop(); +}; +CGContextSetLineCap=function(_5,_6){ +_5.gState.lineCap=_6; +}; +CGContextSetLineJoin=function(_7,_8){ +_7.gState.lineJoin=_8; +}; +CGContextSetLineWidth=function(_9,_a){ +_9.gState.lineWidth=_a; +}; +CGContextSetMiterLimit=function(_b,_c){ +_b.gState.miterLimit=_c; +}; +CGContextSetBlendMode=function(_d,_e){ +_d.gState.blendMode=_e; +}; +CGContextAddArc=function(_f,x,y,_12,_13,_14,_15){ +CGPathAddArc(_f.path,_f.gState.CTM,x,y,_12,_13,_14,_15); +}; +CGContextAddArcToPoint=function(_16,x1,y1,x2,y2,_1b){ +CGPathAddArcToPoint(_16.path,_16.gState.CTM,x1,y1,x2,y2,_1b); +}; +CGContextAddCurveToPoint=function(_1c,_1d,_1e,_1f,_20,x,y){ +CGPathAddCurveToPoint(_1c.path,_1c.gState.CTM,_1d,_1e,_1f,_20,x,y); +}; +CGContextAddLines=function(_23,_24,_25){ +CGPathAddLines(_23.path,_23.gState.CTM,_24,_25); +}; +CGContextAddLineToPoint=function(_26,x,y){ +CGPathAddLineToPoint(_26.path,_26.gState.CTM,x,y); +}; +CGContextAddPath=function(_29,_2a){ +if(!_29||CGPathIsEmpty(_2a)){ +return; +} +if(!_29.path){ +_29.path=CGPathCreateMutable(); +} +CGPathAddPath(_29.path,_29.gState.CTM,_2a); +}; +CGContextAddQuadCurveToPoint=function(_2b,cpx,cpy,x,y){ +CGPathAddQuadCurveToPoint(_2b.path,_2b.gState.CTM,cpx,cpy,x,y); +}; +CGContextAddRect=function(_30,_31){ +CGPathAddRect(_30.path,_30.gState.CTM,_31); +}; +CGContextAddRects=function(_32,_33,_34){ +CGPathAddRects(_32.path,_32.gState.CTM,_33,_34); +}; +CGContextBeginPath=function(_35){ +_35.path=CGPathCreateMutable(); +}; +CGContextClosePath=function(_36){ +CGPathCloseSubpath(_36.path); +}; +CGContextMoveToPoint=function(_37,x,y){ +if(!_37.path){ +_37.path=CGPathCreateMutable(); +} +CGPathMoveToPoint(_37.path,_37.gState.CTM,x,y); +}; +CGContextFillRect=function(_3a,_3b){ +CGContextFillRects(_3a,[_3b],1); +}; +CGContextFillRects=function(_3c,_3d,_3e){ +if(arguments[2]===undefined){ +var _3e=_3d.length; +} +CGContextBeginPath(_3c); +CGContextAddRects(_3c,_3d,_3e); +CGContextClosePath(_3c); +CGContextDrawPath(_3c,kCGPathFill); +}; +CGContextStrokeRect=function(_3f,_40){ +CGContextBeginPath(_3f); +CGContextAddRect(_3f,_40); +CGContextClosePath(_3f); +CGContextDrawPath(_3f,kCGPathStroke); +}; +CGContextStrokeRectWithWidth=function(_41,_42,_43){ +CGContextSaveGState(_41); +CGContextSetLineWidth(_41,_43); +CGContextStrokeRect(_41,_42); +CGContextRestoreGState(_41); +}; +CGContextConcatCTM=function(_44,_45){ +var CTM=_44.gState.CTM; +var tx=CTM.tx*_45.a+CTM.ty*_45.c+_45.tx; +CTM.ty=CTM.tx*_45.b+CTM.ty*_45.d+_45.ty; +CTM.tx=tx; +var a=CTM.a*_45.a+CTM.b*_45.c,b=CTM.a*_45.b+CTM.b*_45.d,c=CTM.c*_45.a+CTM.d*_45.c; +CTM.d=CTM.c*_45.b+CTM.d*_45.d; +CTM.a=a; +CTM.b=b; +CTM.c=c; +}; +CGContextGetCTM=function(_4b){ +return _4b.gState.CTM; +}; +CGContextRotateCTM=function(_4c,_4d){ +var _4e=_4c.gState; +_4e.CTM=CGAffineTransformRotate(_4e.CTM,_4d); +}; +CGContextScaleCTM=function(_4f,sx,sy){ +var _52=_4f.gState; +_52.CTM={a:_52.CTM.a*sx,b:_52.CTM.b*sx,c:_52.CTM.c*sy,d:_52.CTM.d*sy,tx:_52.CTM.tx,ty:_52.CTM.ty}; +}; +CGContextTranslateCTM=function(_53,tx,ty){ +var _56=_53.gState; +_56.CTM={a:_56.CTM.a,b:_56.CTM.b,c:_56.CTM.c,d:_56.CTM.d,tx:_56.CTM.tx+_56.CTM.a*tx+_56.CTM.c*ty,ty:_56.CTM.ty+_56.CTM.b*tx+_56.CTM.d*ty}; +}; +CGContextSetShadow=function(_57,_58,_59){ +var _5a=_57.gState; +_5a.shadowOffset={width:_58.width,height:_58.height}; +_5a.shadowBlur=_59; +_5a.shadowColor=objj_msgSend(CPColor,"shadowColor"); +}; +CGContextSetShadowWithColor=function(_5b,_5c,_5d,_5e){ +var _5f=_5b.gState; +_5f.shadowOffset={width:_5c.width,height:_5c.height}; +_5f.shadowBlur=_5d; +_5f.shadowColor=_5e; +}; +CGContextSetAlpha=function(_60,_61){ +_60.gState.alpha=MAX(MIN(_61,1),0); +}; +} +CGContextEOFillPath=function(_62){ +CGContextDrawPath(_62,kCGPathEOFill); +}; +CGContextFillPath=function(_63){ +CGContextDrawPath(_63,kCGPathFill); +}; +var _64=4*((SQRT2-1)/3); +CGContextAddEllipseInRect=function(_65,_66){ +CGContextAddPath(_65,CGPathWithEllipseInRect(_66)); +}; +CGContextFillEllipseInRect=function(_67,_68){ +CGContextBeginPath(_67); +CGContextAddEllipseInRect(_67,_68); +CGContextClosePath(_67); +CGContextFillPath(_67); +}; +CGContextStrokeEllipseInRect=function(_69,_6a){ +CGContextBeginPath(_69); +CGContextAddEllipseInRect(_69,_6a); +CGContextClosePath(_69); +CGContextStrokePath(_69); +}; +CGContextStrokePath=function(_6b){ +CGContextDrawPath(_6b,kCGPathStroke); +}; +CGContextStrokeLineSegments=function(_6c,_6d,_6e){ +var i=0; +if(arguments["count"]==NULL){ +var _6e=_6d.length; +} +CGContextBeginPath(_6c); +for(;i<_6e;i+=2){ +CGContextMoveToPoint(_6c,_6d[i].x,_6d[i].y); +CGContextAddLineToPoint(_6c,_6d[i+1].x,_6d[i+1].y); +} +CGContextStrokePath(_6c); +}; +CGContextSetFillColor=function(_70,_71){ +if(_71){ +_70.gState.fillStyle=objj_msgSend(_71,"cssString"); +} +}; +CGContextSetStrokeColor=function(_72,_73){ +if(_73){ +_72.gState.strokeStyle=objj_msgSend(_73,"cssString"); +} +}; +CGContextFillRoundedRectangleInRect=function(_74,_75,_76,ne,se,sw,nw){ +CGContextAddPath(_74,CGPathWithRoundedRectangleInRect(_75,_76,_76,ne,se,sw,nw)); +CGContextFillPath(_74); +}; +CGContextStrokeRoundedRectangleInRect=function(_7b,_7c,_7d,ne,se,sw,nw){ +CGContextAddPath(_7b,CGPathWithRoundedRectangleInRect(_7c,_7d,_7d,ne,se,sw,nw)); +CGContextStrokePath(_7b); +}; +if(CPFeatureIsCompatible(CPHTMLCanvasFeature)){ +var _82=["butt","round","square"],_83=["miter","round","bevel"],_84=["source-over","source-over","source-over","source-over","darker","lighter","source-over","source-over","source-over","source-over","source-over","source-over","source-over","source-over","source-over","source-over","source-over","copy","source-in","source-out","source-atop","destination-over","destination-in","destination-out","destination-atop","xor","source-over","source-over"]; +CGContextSaveGState=function(_85){ +_85.save(); +}; +CGContextRestoreGState=function(_86){ +_86.restore(); +}; +CGContextSetLineCap=function(_87,_88){ +_87.lineCap=_82[_88]; +}; +CGContextSetLineJoin=function(_89,_8a){ +_89.lineJoin=_83[_8a]; +}; +CGContextSetLineWidth=function(_8b,_8c){ +_8b.lineWidth=_8c; +}; +CGContextSetMiterLimit=function(_8d,_8e){ +_8d.miterLimit=_8e; +}; +CGContextSetBlendMode=function(_8f,_90){ +_8f.globalCompositeOperation=_84[_90]; +}; +CGContextAddArc=function(_91,x,y,_94,_95,_96,_97){ +_91.arc(x,y,_94,_95,_96,!_97); +}; +CGContextAddArcToPoint=function(_98,x1,y1,x2,y2,_9d){ +_98.arcTo(x1,y1,x2,y2,_9d); +}; +CGContextAddCurveToPoint=function(_9e,_9f,_a0,_a1,_a2,x,y){ +_9e.bezierCurveTo(_9f,_a0,_a1,_a2,x,y); +}; +CGContextAddLineToPoint=function(_a5,x,y){ +_a5.lineTo(x,y); +}; +CGContextAddPath=function(_a8,_a9){ +if(!_a8||CGPathIsEmpty(_a9)){ +return; +} +var _aa=_a9.elements,i=0,_ac=_a9.count; +for(;i<_ac;++i){ +var _ad=_aa[i],_ae=_ad.type; +switch(_ae){ +case kCGPathElementMoveToPoint: +_a8.moveTo(_ad.x,_ad.y); +break; +case kCGPathElementAddLineToPoint: +_a8.lineTo(_ad.x,_ad.y); +break; +case kCGPathElementAddQuadCurveToPoint: +_a8.quadraticCurveTo(_ad.cpx,_ad.cpy,_ad.x,_ad.y); +break; +case kCGPathElementAddCurveToPoint: +_a8.bezierCurveTo(_ad.cp1x,_ad.cp1y,_ad.cp2x,_ad.cp2y,_ad.x,_ad.y); +break; +case kCGPathElementCloseSubpath: +_a8.closePath(); +break; +case kCGPathElementAddArc: +_a8.arc(_ad.x,_ad.y,_ad.radius,_ad.startAngle,_ad.endAngle,_ad.clockwise); +break; +case kCGPathElementAddArcTo: +break; +} +} +}; +CGContextAddRect=function(_af,_b0){ +_af.rect((_b0.origin.x),(_b0.origin.y),(_b0.size.width),(_b0.size.height)); +}; +CGContextAddRects=function(_b1,_b2,_b3){ +var i=0; +if(arguments["count"]==NULL){ +var _b3=_b2.length; +} +for(;i<_b3;++i){ +var _b5=_b2[i]; +_b1.rect((_b5.origin.x),(_b5.origin.y),(_b5.size.width),(_b5.size.height)); +} +}; +CGContextBeginPath=function(_b6){ +_b6.beginPath(); +}; +CGContextClosePath=function(_b7){ +_b7.closePath(); +}; +CGContextMoveToPoint=function(_b8,x,y){ +_b8.moveTo(x,y); +}; +CGContextClearRect=function(_bb,_bc){ +_bb.clearRect((_bc.origin.x),(_bc.origin.y),(_bc.size.width),(_bc.size.height)); +}; +CGContextDrawPath=function(_bd,_be){ +if(_be==kCGPathFill||_be==kCGPathFillStroke){ +_bd.fill(); +}else{ +if(_be==kCGPathEOFill||_be==kCGPathEOFillStroke){ +alert("not implemented!!!"); +} +} +if(_be==kCGPathStroke||_be==kCGPathFillStroke||_be==kCGPathEOFillStroke){ +_bd.stroke(); +} +}; +CGContextFillRect=function(_bf,_c0){ +_bf.fillRect((_c0.origin.x),(_c0.origin.y),(_c0.size.width),(_c0.size.height)); +}; +CGContextFillRects=function(_c1,_c2,_c3){ +var i=0; +if(arguments["count"]==NULL){ +var _c3=_c2.length; +} +for(;i<_c3;++i){ +var _c5=_c2[i]; +_c1.fillRect((_c5.origin.x),(_c5.origin.y),(_c5.size.width),(_c5.size.height)); +} +}; +CGContextStrokeRect=function(_c6,_c7){ +_c6.strokeRect((_c7.origin.x),(_c7.origin.y),(_c7.size.width),(_c7.size.height)); +}; +CGContextClip=function(_c8){ +_c8.clip(); +}; +CGContextClipToRect=function(_c9,_ca){ +_c9.beginPath(); +_c9.rect((_ca.origin.x),(_ca.origin.y),(_ca.size.width),(_ca.size.height)); +_c9.closePath(); +_c9.clip(); +}; +CGContextClipToRects=function(_cb,_cc,_cd){ +if(arguments["count"]==NULL){ +var _cd=_cc.length; +} +_cb.beginPath(); +CGContextAddRects(_cb,_cc,_cd); +_cb.clip(); +}; +CGContextSetAlpha=function(_ce,_cf){ +_ce.globalAlpha=_cf; +}; +CGContextSetFillColor=function(_d0,_d1){ +_d0.fillStyle=objj_msgSend(_d1,"cssString"); +}; +CGContextSetStrokeColor=function(_d2,_d3){ +_d2.strokeStyle=objj_msgSend(_d3,"cssString"); +}; +CGContextSetShadow=function(_d4,_d5,_d6){ +_d4.shadowOffsetX=_d5.width; +_d4.shadowOffsetY=_d5.height; +_d4.shadowBlur=_d6; +}; +CGContextSetShadowWithColor=function(_d7,_d8,_d9,_da){ +_d7.shadowOffsetX=_d8.width; +_d7.shadowOffsetY=_d8.height; +_d7.shadowBlur=_d9; +_d7.shadowColor=objj_msgSend(_da,"cssString"); +}; +CGContextRotateCTM=function(_db,_dc){ +_db.rotate(_dc); +}; +CGContextScaleCTM=function(_dd,sx,sy){ +_dd.scale(sx,sy); +}; +CGContextTranslateCTM=function(_e0,tx,ty){ +_e0.translate(tx,ty); +}; +eigen=function(_e3){ +alert("IMPLEMENT ME!"); +}; +if(CPFeatureIsCompatible(CPJavaScriptCanvasTransformFeature)){ +CGContextConcatCTM=function(_e4,_e5){ +_e4.transform(_e5.a,_e5.b,_e5.c,_e5.d,_e5.tx,_e5.ty); +}; +}else{ +CGContextConcatCTM=function(_e6,_e7){ +var a=_e7.a,b=_e7.b,c=_e7.c,d=_e7.d,tx=_e7.tx,ty=_e7.ty,sx=1,sy=1,a1=0,a2=0; +if(b==0&&c==0){ +sx=a; +sy=d; +}else{ +if(a*b==-c*d){ +var _f2=(a*d<0||b*c>0)?-1:1,a2=(ATAN2(b,d)+ATAN2(-_f2*c,_f2*a))/2,cos=COS(a2),sin=SIN(a2); +if(cos==0){ +sx=-c/sin; +sy=b/sin; +}else{ +if(sin==0){ +sx=a/cos; +sy=d/cos; +}else{ +abs_cos=ABS(cos); +abs_sin=ABS(sin); +sx=(abs_cos*a/cos+abs_sin*-c/sin)/(abs_cos+abs_sin); +sy=(abs_cos*d/cos+abs_sin*b/sin)/(abs_cos+abs_sin); +} +} +}else{ +if(a*c==-b*d){ +var _f2=(a*d<0||b*c>0)?-1:1; +a1=(Math.atan2(_f2*b,_f2*a)+Math.atan2(-c,d))/2,cos=COS(a1),sin=SIN(a1); +if(cos==0){ +sx=b/sin; +sy=-c/sin; +}else{ +if(sin==0){ +sx=a/cos; +sy=d/cos; +}else{ +abs_cos=ABS(cos); +abs_sin=ABS(sin); +sx=(abs_cos*a/cos+abs_sin*b/sin)/(abs_cos+abs_sin); +sy=(abs_cos*d/cos+abs_sin*-c/sin)/(abs_cos+abs_sin); +} +} +}else{ +var _f5=CGAffineTransformMake(a,c,b,d,0,0),u=eigen(CGAffineTransformConcat(_e7,_f5)),v=eigen(CGAffineTransformConcat(_f5,_e7)),U=CGAffineTransformMake(u.vector_1.x,u.vector_2.x,u.vector_1.y,u.vector_2.y,0,0),VT=CGAffineTransformMake(v.vector_1.x,v.vector_1.y,v.vector_2.x,v.vector_2.y,0,0),S=CGAffineTransformConcat(CGAffineTransformConcat(CGAffineTransformInvert(U),_e7),CGAffineTransformInvert(VT)); +a=VT.a; +b=VT.b; +c=VT.c; +d=VT.d; +var _f2=(a*d<0||b*c>0)?-1:1,a2=(ATAN2(b,d)+ATAN2(-_f2*c,_f2*a))/2,cos=COS(a2),sin=SIN(a2); +if(cos==0){ +sx=-c/sin; +sy=b/sin; +}else{ +if(sin==0){ +sx=a/cos; +sy=d/cos; +}else{ +abs_cos=ABS(cos); +abs_sin=ABS(sin); +sx=(abs_cos*a/cos+abs_sin*-c/sin)/(abs_cos+abs_sin); +sy=(abs_cos*d/cos+abs_sin*b/sin)/(abs_cos+abs_sin); +} +} +S.a*=sx; +S.d*=sy; +a=U.a; +b=U.b; +c=U.c; +d=U.d; +var _f2=(a*d<0||b*c>0)?-1:1; +a1=(Math.atan2(_f2*b,_f2*a)+Math.atan2(-c,d))/2,cos=COS(a1),sin=SIN(a1); +if(cos==0){ +sx=b/sin; +sy=-c/sin; +}else{ +if(sin==0){ +sx=a/cos; +sy=d/cos; +}else{ +abs_cos=ABS(cos); +abs_sin=ABS(sin); +sx=(abs_cos*a/cos+abs_sin*b/sin)/(abs_cos+abs_sin); +sy=(abs_cos*d/cos+abs_sin*-c/sin)/(abs_cos+abs_sin); +} +} +sx=S.a*sx; +sy=S.d*sy; +} +} +} +if(tx!=0||ty!=0){ +CGContextTranslateCTM(_e6,tx,ty); +} +if(a1!=0){ +CGContextRotateCTM(_e6,a1); +} +if(sx!=1||sy!=1){ +CGContextScaleCTM(_e6,sx,sy); +} +if(a2!=0){ +CGContextRotateCTM(_e6,a2); +} +}; +} +CGContextDrawImage=function(_fb,_fc,_fd){ +_fb.drawImage(_fd._image,(_fc.origin.x),(_fc.origin.y),(_fc.size.width),(_fc.size.height)); +}; +to_string=function(_fe){ +return "rgba("+ROUND(_fe.components[0]*255)+", "+ROUND(_fe.components[1]*255)+", "+ROUND(255*_fe.components[2])+", "+_fe.components[3]+")"; +}; +CGContextDrawLinearGradient=function(_ff,_100,_101,_102,_103){ +var _104=_100.colors,_105=_104.length,_106=_ff.createLinearGradient(_101.x,_101.y,_102.x,_102.y); +while(_105--){ +_106.addColorStop(_100.locations[_105],to_string(_104[_105])); +} +_ff.fillStyle=_106; +_ff.fill(); +}; +CGBitmapGraphicsContextCreate=function(){ +var _107=document.createElement("canvas"),_108=_107.getContext("2d"); +_108.DOMElement=_107; +return _108; +}; +}else{ +if(CPFeatureIsCompatible(CPVMLFeature)){ +var _109=["f","t"],_10a=["flat","round","square"],_10b=["miter","round","bevel"],_10c=[" m "," l ","qb"," c "," x ",[" at "," wa "]]; +var _10d=CGBitmapGraphicsContextCreate; +CGBitmapGraphicsContextCreate=function(){ +document.namespaces.add("cg_vml_","urn:schemas-microsoft-com:vml"); +document.createStyleSheet().cssText="cg_vml_\\:*{behavior:url(#default#VML)}"; +CGBitmapGraphicsContextCreate=_10d; +return _10d(); +}; +CGContextClearRect=function(_10e,_10f){ +if(_10e.buffer!=nil){ +_10e.buffer=""; +}else{ +_10e.DOMElement.innerHTML=""; +} +_10e.path=NULL; +}; +var W=10,H=10,Z=10,Z_2=Z/2; +CGContextDrawImage=function(_114,_115,_116){ +var _117=""; +if(_116.buffer!=nil){ +_117=_116.buffer; +}else{ +var ctm=_114.gState.CTM,_119=CGPointApplyAffineTransform(_115.origin,ctm),_11a=ctm.a==ctm.d&&ctm.b==-ctm.c,vml=[""); +_117=vml.join(""); +} +if(_114.buffer!=nil){ +_114.buffer+=_117; +}else{ +_114.DOMElement.insertAdjacentHTML("BeforeEnd",_117); +} +}; +CGContextDrawPath=function(_11d,_11e){ +if(!_11d||CGPathIsEmpty(_11d.path)){ +return; +} +var _11f=_11d.path.elements,i=0,_121=_11d.path.count,_122=_11d.gState,fill=(_11e==kCGPathFill||_11e==kCGPathFillStroke)?1:0,_124=(_11e==kCGPathStroke||_11e==kCGPathFillStroke)?1:0,_125=_122.alpha,vml=["=x){ +if(_12f.y"); +if(_122.gradient){ +vml.push(_122.gradient); +}else{ +if(fill){ +vml.push(""); +} +} +if(_124){ +vml.push(""); +} +var _131=_122.shadowColor; +if(_131){ +var _132=_122.shadowOffset; +vml.push(""); +} +vml.push(""); +_11d.path=NULL; +if(_11d.buffer!=nil){ +_11d.buffer+=vml.join(""); +}else{ +_11d.DOMElement.insertAdjacentHTML("BeforeEnd",vml.join("")); +} +}; +to_string=function(_133){ +return "rgb("+ROUND(_133.components[0]*255)+", "+ROUND(_133.components[1]*255)+", "+ROUND(255*_133.components[2])+")"; +}; +CGContextDrawLinearGradient=function(_134,_135,_136,_137,_138){ +if(!_134||!_135){ +return; +} +var vml=nil; +if(_135.vml_gradient){ +var _13a=objj_msgSend(objj_msgSend(_135.vml_gradient,"stops"),"sortedArrayUsingSelector:",sel_getUid("comparePosition:")),_13b=objj_msgSend(_13a,"count"); +vml=[""); +}else{ +var _13d=_135.colors,_13b=_13d.length; +vml=[""); +} +_134.gState.gradient=vml.join(""); +console.log(vml.join("")); +}; +} +} +p;12;CGGeometry.jc;5815; +CGPointMake=function(x,y){ +return {x:x,y:y}; +}; +CGPointMakeZero=function(){ +return {x:0,y:0}; +}; +CGPointMakeCopy=function(_3){ +return {x:_3.x,y:_3.y}; +}; +CGPointCreateCopy=function(_4){ +return {x:_4.x,y:_4.y}; +}; +CGPointEqualToPoint=function(_5,_6){ +return (_5.x==_6.x&&_5.y==_6.y); +}; +CGStringFromPoint=function(_7){ +return ("{"+_7.x+", "+_7.y+"}"); +}; +CGSizeMake=function(_8,_9){ +return {width:_8,height:_9}; +}; +CGSizeMakeZero=function(){ +return {width:0,height:0}; +}; +CGSizeMakeCopy=function(_a){ +return {width:_a.width,height:_a.height}; +}; +CGSizeCreateCopy=function(_b){ +return {width:_b.width,height:_b.height}; +}; +CGSizeEqualToSize=function(_c,_d){ +return (_c.width==_d.width&&_c.height==_d.height); +}; +CGStringFromSize=function(_e){ +return ("{"+_e.width+", "+_e.height+"}"); +}; +CGRectMake=function(x,y,_11,_12){ +return {origin:{x:x,y:y},size:{width:_11,height:_12}}; +}; +CGRectMakeZero=function(){ +return {origin:{x:0,y:0},size:{width:0,height:0}}; +}; +CGRectMakeCopy=function(_13){ +return {origin:{x:_13.origin.x,y:_13.origin.y},size:{width:_13.size.width,height:_13.size.height}}; +}; +CGRectCreateCopy=function(_14){ +return {origin:{x:_14.origin.x,y:_14.origin.y},size:{width:_14.size.width,height:_14.size.height}}; +}; +CGRectEqualToRect=function(_15,_16){ +return ((_15.origin.x==_16.origin.x&&_15.origin.y==_16.origin.y)&&(_15.size.width==_16.size.width&&_15.size.height==_16.size.height)); +}; +CGStringFromRect=function(_17){ +return ("{"+("{"+_17.origin.x+", "+_17.origin.y+"}")+", "+("{"+_17.size.width+", "+_17.size.height+"}")+"}"); +}; +CGRectOffset=function(_18,dX,dY){ +return {origin:{x:_18.origin.x+dX,y:_18.origin.y+dY},size:{width:_18.size.width,height:_18.size.height}}; +}; +CGRectInset=function(_1b,dX,dY){ +return {origin:{x:_1b.origin.x+dX,y:_1b.origin.y+dY},size:{width:_1b.size.width-2*dX,height:_1b.size.height-2*dY}}; +}; +CGRectGetHeight=function(_1e){ +return (_1e.size.height); +}; +CGRectGetMaxX=function(_1f){ +return (_1f.origin.x+_1f.size.width); +}; +CGRectGetMaxY=function(_20){ +return (_20.origin.y+_20.size.height); +}; +CGRectGetMidX=function(_21){ +return (_21.origin.x+(_21.size.width)/2); +}; +CGRectGetMidY=function(_22){ +return (_22.origin.y+(_22.size.height)/2); +}; +CGRectGetMinX=function(_23){ +return (_23.origin.x); +}; +CGRectGetMinY=function(_24){ +return (_24.origin.y); +}; +CGRectGetWidth=function(_25){ +return (_25.size.width); +}; +CGRectIsEmpty=function(_26){ +return (_26.size.width<=0||_26.size.height<=0); +}; +CGRectIsNull=function(_27){ +return (_27.size.width<=0||_27.size.height<=0); +}; +CGRectContainsPoint=function(_28,_29){ +return (_29.x>=(_28.origin.x)&&_29.y>=(_28.origin.y)&&_29.x<(_28.origin.x+_28.size.width)&&_29.y<(_28.origin.y+_28.size.height)); +}; +CGInsetMake=function(top,_2b,_2c,_2d){ +return {top:(top),right:(_2b),bottom:(_2c),left:(_2d)}; +}; +CGInsetMakeZero=function(){ +return {top:(0),right:(0),bottom:(0),left:(0)}; +}; +CGInsetMakeCopy=function(_2e){ +return {top:(_2e.top),right:(_2e.right),bottom:(_2e.bottom),left:(_2e.left)}; +}; +CGInsetIsEmpty=function(_2f){ +return ((_2f).top===0&&(_2f).right===0&&(_2f).bottom===0&&(_2f).left===0); +}; +CGRectContainsRect=function(_30,_31){ +var _32=CGRectUnion(_30,_31); +return ((_32.origin.x==_30.origin.x&&_32.origin.y==_30.origin.y)&&(_32.size.width==_30.size.width&&_32.size.height==_30.size.height)); +}; +CGRectIntersectsRect=function(_33,_34){ +var _35=CGRectIntersection(_33,_34); +return !(_35.size.width<=0||_35.size.height<=0); +}; +CGRectIntegral=function(_36){ +_36=CGRectStandardize(_36); +var x=FLOOR((_36.origin.x)),y=FLOOR((_36.origin.y)); +_36.size.width=CEIL((_36.origin.x+_36.size.width))-x; +_36.size.height=CEIL((_36.origin.y+_36.size.height))-y; +_36.origin.x=x; +_36.origin.y=y; +return _36; +}; +CGRectIntersection=function(_39,_3a){ +var _3b={origin:{x:MAX((_39.origin.x),(_3a.origin.x)),y:MAX((_39.origin.y),(_3a.origin.y))},size:{width:0,height:0}}; +_3b.size.width=MIN((_39.origin.x+_39.size.width),(_3a.origin.x+_3a.size.width))-(_3b.origin.x); +_3b.size.height=MIN((_39.origin.y+_39.size.height),(_3a.origin.y+_3a.size.height))-(_3b.origin.y); +return (_3b.size.width<=0||_3b.size.height<=0)?{origin:{x:0,y:0},size:{width:0,height:0}}:_3b; +}; +CGRectStandardize=function(_3c){ +var _3d=(_3c.size.width),_3e=(_3c.size.height),_3f=_3c; +if(_3d<0){ +if(_3f==_3c){ +_3f={origin:{x:_3c.origin.x,y:_3c.origin.y},size:{width:_3c.size.width,height:_3c.size.height}}; +} +_3f.origin.x+=_3d; +_3f.size.width=-_3d; +} +if(_3e<0){ +if(_3f==_3c){ +_3f={origin:{x:_3c.origin.x,y:_3c.origin.y},size:{width:_3c.size.width,height:_3c.size.height}}; +} +_3f.origin.y+=_3e; +_3f.size.height=-_3e; +} +return _3f; +}; +CGRectUnion=function(_40,_41){ +var _42=MIN((_40.origin.x),(_41.origin.x)),_43=MIN((_40.origin.y),(_41.origin.y)),_44=MAX((_40.origin.x+_40.size.width),(_41.origin.x+_41.size.width)),_45=MAX((_40.origin.y+_40.size.height),(_41.origin.y+_41.size.height)); +return {origin:{x:_42,y:_43},size:{width:_44-_42,height:_45-_43}}; +}; +CGPointFromString=function(_46){ +var _47=_46.indexOf(","); +return {x:parseInt(_46.substr(1,_47-1)),y:parseInt(_46.substring(_47+1,_46.length))}; +}; +CGSizeFromString=function(_48){ +var _49=_48.indexOf(","); +return {width:parseInt(_48.substr(1,_49-1)),height:parseInt(_48.substring(_49+1,_48.length))}; +}; +CGRectFromString=function(_4a){ +var _4b=_4a.indexOf(",",_4a.indexOf(",")+1); +return {origin:CGPointFromString(_4a.substr(1,_4b-1)),size:CGSizeFromString(_4a.substring(_4b+2,_4a.length))}; +}; +CGPointFromEvent=function(_4c){ +return {x:_4c.clientX,y:_4c.clientY}; +}; +CGInsetFromString=function(_4d){ +var _4e=_4d.substr(1,_4d.length-2).split(","); +return {top:(parseFloat(_4e[0])),right:(parseFloat(_4e[1])),bottom:(parseFloat(_4e[2])),left:(parseFloat(_4e[3]))}; +}; +CGInsetFromCPString=CGInsetFromString; +CPStringFromCGInset=function(_4f){ +return "{"+_4f.top+", "+_4f.left+", "+_4f.bottom+", "+_4f.right+"}"; +}; +p;12;CGGradient.ji;9;CGColor.ji;14;CGColorSpace.jc;497; +kCGGradientDrawsBeforeStartLocation=1<<0; +kCGGradientDrawsAfterEndLocation=1<<1; +CGGradientCreateWithColorComponents=function(_1,_2,_3,_4){ +if(arguments["count"]==NULL){ +var _4=_3.length; +} +var _5=[]; +while(_4--){ +var _6=_4*4; +_5[_4]=CGColorCreate(_1,_2.slice(_6,_6+4)); +} +return CGGradientCreateWithColors(_1,_5,_3); +}; +CGGradientCreateWithColors=function(_7,_8,_9){ +return {colorspace:_7,colors:_8,locations:_9}; +}; +CGGradientRelease=function(){ +}; +CGGradientRetain=function(_a){ +return _a; +}; +p;8;CGPath.ji;12;CGGeometry.ji;19;CGAffineTransform.jc;7354; +kCGPathElementMoveToPoint=0; +kCGPathElementAddLineToPoint=1; +kCGPathElementAddQuadCurveToPoint=2; +kCGPathElementAddCurveToPoint=3; +kCGPathElementCloseSubpath=4; +kCGPathElementAddArc=5; +kCGPathElementAddArcToPoint=6; +CGPathCreateMutable=function(){ +return {count:0,start:NULL,current:NULL,elements:[]}; +}; +CGPathCreateMutableCopy=function(_1){ +var _2=CGPathCreateMutable(); +CGPathAddPath(_2,_1); +return _2; +}; +CGPathCreateCopy=function(_3){ +return CGPathCreateMutableCopy(_3); +}; +CGPathRelease=function(_4){ +}; +CGPathRetain=function(_5){ +return _5; +}; +CGPathAddArc=function(_6,_7,x,y,_a,_b,_c,_d){ +if(_7&&!(_7.a==1&&_7.b==0&&_7.c==0&&_7.d==1&&_7.tx==0&&_7.ty==0)){ +var _e={x:x,y:y},_f={x:COS(_c),y:SIN(_c)},_10={x:COS(_b),y:SIN(_b)}; +_f={x:_f.x*_7.a+_f.y*_7.c+_7.tx,y:_f.x*_7.b+_f.y*_7.d+_7.ty}; +_10={x:_10.x*_7.a+_10.y*_7.c+_7.tx,y:_10.x*_7.b+_10.y*_7.d+_7.ty}; +_e={x:_e.x*_7.a+_e.y*_7.c+_7.tx,y:_e.x*_7.b+_e.y*_7.d+_7.ty}; +x=_e.x; +y=_e.y; +var _11=_c,_12=_b; +_c=ATAN2(_f.y-_7.ty,_f.x-_7.tx); +_b=ATAN2(_10.y-_7.ty,_10.x-_7.tx); +if(_c==_b&&_11!=_12){ +if(_12>_11){ +_c=_c-PI2; +}else{ +_b=_b-PI2; +} +} +_a={width:_a,height:0}; +_a={width:_a.width*_7.a+_a.height*_7.c,height:_a.width*_7.b+_a.height*_7.d}; +_a=SQRT(_a.width*_a.width+_a.height*_a.height); +} +_6.current={x:x+_a*COS(_c),y:y+_a*SIN(_c)}; +_6.elements[_6.count++]={type:kCGPathElementAddArc,x:x,y:y,radius:_a,startAngle:_b,endAngle:_c}; +}; +CGPathAddArcToPoint=function(_13,_14,x1,y1,x2,y2,_19){ +}; +CGPathAddCurveToPoint=function(_1a,_1b,_1c,_1d,_1e,_1f,x,y){ +var cp1={x:_1c,y:_1d},cp2={x:_1e,y:_1f},end={x:x,y:y}; +if(_1b){ +cp1={x:cp1.x*_1b.a+cp1.y*_1b.c+_1b.tx,y:cp1.x*_1b.b+cp1.y*_1b.d+_1b.ty}; +cp2={x:cp2.x*_1b.a+cp2.y*_1b.c+_1b.tx,y:cp2.x*_1b.b+cp2.y*_1b.d+_1b.ty}; +end={x:end.x*_1b.a+end.y*_1b.c+_1b.tx,y:end.x*_1b.b+end.y*_1b.d+_1b.ty}; +} +_1a.current=end; +_1a.elements[_1a.count++]={type:kCGPathElementAddCurveToPoint,cp1x:cp1.x,cp1y:cp1.y,cp2x:cp2.x,cp2y:cp2.y,x:end.x,y:end.y}; +}; +CGPathAddLines=function(_25,_26,_27,_28){ +var i=1; +if(arguments["count"]==NULL){ +var _28=_27.length; +} +if(!_25||_28<2){ +return; +} +CGPathMoveToPoint(_25,_26,_27[0].x,_27[0].y); +for(;i<_28;++i){ +CGPathAddLineToPoint(_25,_26,_27[i].x,_27[i].y); +} +}; +CGPathAddLineToPoint=function(_2a,_2b,x,y){ +var _2e={x:x,y:y}; +if(_2b!=NULL){ +_2e={x:_2e.x*_2b.a+_2e.y*_2b.c+_2b.tx,y:_2e.x*_2b.b+_2e.y*_2b.d+_2b.ty}; +} +_2a.elements[_2a.count++]={type:kCGPathElementAddLineToPoint,x:_2e.x,y:_2e.y}; +_2a.current=_2e; +}; +CGPathAddPath=function(_2f,_30,_31){ +for(var i=0,_33=_31.count;i<_33;++i){ +var _34=_31.elements[i]; +switch(_34.type){ +case kCGPathElementAddLineToPoint: +CGPathAddLineToPoint(_2f,_30,_34.x,_34.y); +break; +case kCGPathElementAddCurveToPoint: +CGPathAddCurveToPoint(_2f,_30,_34.cp1x,_34.cp1y,_34.cp2x,_34.cp2y,_34.x,_34.y); +break; +case kCGPathElementAddArc: +CGPathAddArc(_2f,_30,_34.x,_34.y,_34.radius,_34.startAngle,_34.endAngle,_34.isClockwise); +break; +case kCGPathElementAddQuadCurveToPoint: +CGPathAddQuadCurveToPoint(_2f,_30,_34.cpx,_34.cpy,_34.x,_34.y); +break; +case kCGPathElementMoveToPoint: +CGPathMoveToPoint(_2f,_30,_34.x,_34.y); +break; +case kCGPathElementCloseSubpath: +CGPathCloseSubpath(_2f); +break; +} +} +}; +CGPathAddQuadCurveToPoint=function(_35,_36,cpx,cpy,x,y){ +var cp={x:cpx,y:cpy},end={x:x,y:y}; +if(_36){ +cp={x:control.x*_36.a+control.y*_36.c+_36.tx,y:control.x*_36.b+control.y*_36.d+_36.ty}; +end={x:end.x*_36.a+end.y*_36.c+_36.tx,y:end.x*_36.b+end.y*_36.d+_36.ty}; +} +_35.elements[_35.count++]={type:kCGPathElementAddQuadCurveToPoint,cpx:cp.x,cpy:cp.y,x:end.x,y:end.y}; +_35.current=end; +}; +CGPathAddRect=function(_3d,_3e,_3f){ +CGPathAddRects(_3d,_3e,[_3f],1); +}; +CGPathAddRects=function(_40,_41,_42,_43){ +var i=0; +if(arguments["count"]==NULL){ +var _43=_42.length; +} +for(;i<_43;++i){ +var _45=_42[i]; +CGPathMoveToPoint(_40,_41,(_45.origin.x),(_45.origin.y)); +CGPathAddLineToPoint(_40,_41,(_45.origin.x+_45.size.width),(_45.origin.y)); +CGPathAddLineToPoint(_40,_41,(_45.origin.x+_45.size.width),(_45.origin.y+_45.size.height)); +CGPathAddLineToPoint(_40,_41,(_45.origin.x),(_45.origin.y+_45.size.height)); +CGPathCloseSubpath(_40); +} +}; +CGPathMoveToPoint=function(_46,_47,x,y){ +var _4a={x:x,y:y},_4b=_46.count; +if(_47!=NULL){ +_4a={x:_4a.x*_47.a+_4a.y*_47.c+_47.tx,y:_4a.x*_47.b+_4a.y*_47.d+_47.ty}; +} +_46.start=_4a; +_46.current=_4a; +var _4c=_46.elements[_4b-1]; +if(_4b!=0&&_4c.type==kCGPathElementMoveToPoint){ +_4c.x=_4a.x; +_4c.y=_4a.y; +}else{ +_46.elements[_46.count++]={type:kCGPathElementMoveToPoint,x:_4a.x,y:_4a.y}; +} +}; +var _4d=4*((SQRT2-1)/3); +CGPathWithEllipseInRect=function(_4e){ +var _4f=CGPathCreateMutable(); +if((_4e.size.width)==(_4e.size.height)){ +CGPathAddArc(_4f,nil,(_4e.origin.x+(_4e.size.width)/2),(_4e.origin.y+(_4e.size.height)/2),(_4e.size.width)/2,0,2*PI,YES); +}else{ +var _50={width:(_4e.size.width)/2,height:(_4e.size.height)/2},_51={x:(_4e.origin.x)+_50.width,y:(_4e.origin.y)+_50.height}; +CGPathMoveToPoint(_4f,nil,_51.x,_51.y-_50.height); +CGPathAddCurveToPoint(_4f,nil,_51.x+(_4d*_50.width),_51.y-_50.height,_51.x+_50.width,_51.y-(_4d*_50.height),_51.x+_50.width,_51.y); +CGPathAddCurveToPoint(_4f,nil,_51.x+_50.width,_51.y+(_4d*_50.height),_51.x+(_4d*_50.width),_51.y+_50.height,_51.x,_51.y+_50.height); +CGPathAddCurveToPoint(_4f,nil,_51.x-(_4d*_50.width),_51.y+_50.height,_51.x-_50.width,_51.y+(_4d*_50.height),_51.x-_50.width,_51.y); +CGPathAddCurveToPoint(_4f,nil,_51.x-_50.width,_51.y-(_4d*_50.height),_51.x-(_4d*_50.width),_51.y-_50.height,_51.x,_51.y-_50.height); +} +CGPathCloseSubpath(_4f); +return _4f; +}; +CGPathWithRoundedRectangleInRect=function(_52,_53,_54,ne,se,sw,nw){ +var _59=CGPathCreateMutable(),_5a=(_52.origin.x),_5b=(_52.origin.x+_52.size.width),_5c=(_52.origin.y),_5d=(_52.origin.y+_52.size.height); +CGPathMoveToPoint(_59,nil,_5a+_53,_5c); +if(ne){ +CGPathAddLineToPoint(_59,nil,_5b-_53,_5c); +CGPathAddCurveToPoint(_59,nil,_5b-_53,_5c,_5b,_5c,_5b,_5c+_53); +}else{ +CGPathAddLineToPoint(_59,nil,_5b,_5c); +} +if(se){ +CGPathAddLineToPoint(_59,nil,_5b,_5d-_53); +CGPathAddCurveToPoint(_59,nil,_5b,_5d-_53,_5b,_5d,_5b-_53,_5d); +}else{ +CGPathAddLineToPoint(_59,nil,_5b,_5d); +} +if(sw){ +CGPathAddLineToPoint(_59,nil,_5a+_53,_5d); +CGPathAddCurveToPoint(_59,nil,_5a+_53,_5d,_5a,_5d,_5a,_5d-_53); +}else{ +CGPathAddLineToPoint(_59,nil,_5a,_5d); +} +if(nw){ +CGPathAddLineToPoint(_59,nil,_5a,_5c+_53); +CGPathAddCurveToPoint(_59,nil,_5a,_5c+_53,_5a,_5c,_5a+_53,_5c); +}else{ +CGPathAddLineToPoint(_59,nil,_5a,_5c); +} +CGPathCloseSubpath(_59); +return _59; +}; +CGPathCloseSubpath=function(_5e){ +var _5f=_5e.count; +if(_5f==0||_5e.elements[_5f-1].type==kCGPathElementCloseSubpath){ +return; +} +_5e.elements[_5e.count++]={type:kCGPathElementCloseSubpath,points:[_5e.start]}; +}; +CGPathEqualToPath=function(_60,_61){ +if(_60==_61){ +return YES; +} +if(_60.count!=_61.count||!(_60.start.x==_61.start.x&&_60.start.y==_61.start.y)||!(_60.current.x==_61.current.x&&_60.current.y==_61.current.y)){ +return NO; +} +var i=0,_63=_60.count; +for(;i<_63;++i){ +var _64=_60[i],_65=_61[i]; +if(_64.type!=_65.type){ +return NO; +} +if((_64.type==kCGPathElementAddArc||_64.type==kCGPathElementAddArcToPoint)&&_64.radius!=_65.radius){ +return NO; +} +var j=_64.points.length; +while(j--){ +if(!(_64.points[j].x==_65.points[j].x&&_64.points[j].y==_65.points[j].y)){ +return NO; +} +} +} +return YES; +}; +CGPathGetCurrentPoint=function(_67){ +return {x:_67.current.x,y:_67.current.y}; +}; +CGPathIsEmpty=function(_68){ +return !_68||_68.count==0; +}; +p;9;CPAlert.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jI;22;AppKit/CPApplication.jI;17;AppKit/CPButton.jI;16;AppKit/CPColor.jI;15;AppKit/CPFont.jI;16;AppKit/CPImage.jI;20;AppKit/CPImageView.jI;16;AppKit/CPPanel.jI;20;AppKit/CPTextField.jc;5572; +CPWarningAlertStyle=0; +CPInformationalAlertStyle=1; +CPCriticalAlertStyle=2; +var _1,_2,_3; +var _4=objj_allocateClassPair(CPObject,"CPAlert"),_5=_4.isa; +class_addIvars(_4,[new objj_ivar("_alertPanel"),new objj_ivar("_messageLabel"),new objj_ivar("_alertImageView"),new objj_ivar("_alertStyle"),new objj_ivar("_windowTitle"),new objj_ivar("_windowStyle"),new objj_ivar("_buttonCount"),new objj_ivar("_buttons"),new objj_ivar("_delegate")]); +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("init"),function(_6,_7){ +with(_6){ +_6=objj_msgSendSuper({receiver:_6,super_class:objj_getClass("CPObject")},"init"); +if(_6){ +_buttonCount=0; +_buttons=objj_msgSend(CPArray,"array"); +_alertStyle=CPWarningAlertStyle; +_messageLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CGRectMake(57,10,220,80)); +objj_msgSend(_messageLabel,"setFont:",objj_msgSend(CPFont,"systemFontOfSize:",12)); +objj_msgSend(_messageLabel,"setLineBreakMode:",CPLineBreakByWordWrapping); +objj_msgSend(_messageLabel,"setAlignment:",CPJustifiedTextAlignment); +_alertImageView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CGRectMake(15,12,32,32)); +objj_msgSend(_6,"setWindowStyle:",nil); +} +return _6; +} +}),new objj_method(sel_getUid("setWindowStyle:"),function(_8,_9,_a){ +with(_8){ +_windowStyle=_a; +_alertPanel=objj_msgSend(objj_msgSend(CPPanel,"alloc"),"initWithContentRect:styleMask:",CGRectMake(0,0,300,130),_a?_a|CPTitledWindowMask:CPTitledWindowMask); +objj_msgSend(_alertPanel,"setFloatingPanel:",YES); +objj_msgSend(_alertPanel,"center"); +objj_msgSend(_messageLabel,"setTextColor:",(_a==CPHUDBackgroundWindowMask)?objj_msgSend(CPColor,"whiteColor"):objj_msgSend(CPColor,"blackColor")); +var _b=objj_msgSend(_buttons,"count"); +for(var i=0;i<_b;i++){ +var _d=_buttons[i]; +objj_msgSend(_d,"setFrameSize:",CGSizeMake(objj_msgSend(_d,"frame").size.width,(_a==CPHUDBackgroundWindowMask)?20:24)); +objj_msgSend(_d,"setBezelStyle:",(_a==CPHUDBackgroundWindowMask)?CPHUDBezelStyle:CPRoundedBezelStyle); +objj_msgSend(objj_msgSend(_alertPanel,"contentView"),"addSubview:",_d); +} +objj_msgSend(objj_msgSend(_alertPanel,"contentView"),"addSubview:",_messageLabel); +objj_msgSend(objj_msgSend(_alertPanel,"contentView"),"addSubview:",_alertImageView); +} +}),new objj_method(sel_getUid("setTitle:"),function(_e,_f,_10){ +with(_e){ +_windowTitle=_10; +} +}),new objj_method(sel_getUid("title"),function(_11,_12){ +with(_11){ +return _windowTitle; +} +}),new objj_method(sel_getUid("windowStyle"),function(_13,_14){ +with(_13){ +return _windowStyle; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_15,_16,_17){ +with(_15){ +_delegate=_17; +} +}),new objj_method(sel_getUid("delegate"),function(_18,_19){ +with(_18){ +return _delegate; +} +}),new objj_method(sel_getUid("setAlertStyle:"),function(_1a,_1b,_1c){ +with(_1a){ +_alertStyle=_1c; +} +}),new objj_method(sel_getUid("alertStyle"),function(_1d,_1e){ +with(_1d){ +return _alertStyle; +} +}),new objj_method(sel_getUid("setMessageText:"),function(_1f,_20,_21){ +with(_1f){ +objj_msgSend(_messageLabel,"setStringValue:",_21); +} +}),new objj_method(sel_getUid("messageText"),function(_22,_23){ +with(_22){ +return objj_msgSend(_messageLabel,"stringValue"); +} +}),new objj_method(sel_getUid("addButtonWithTitle:"),function(_24,_25,_26){ +with(_24){ +var _27=objj_msgSend(objj_msgSend(CPButton,"alloc"),"initWithFrame:",CGRectMake(200-(_buttonCount*90),98,80,(_windowStyle==CPHUDBackgroundWindowMask)?20:24)); +objj_msgSend(_27,"setTitle:",_26); +objj_msgSend(_27,"setTarget:",_24); +objj_msgSend(_27,"setTag:",_buttonCount); +objj_msgSend(_27,"setAction:",sel_getUid("_notifyDelegate:")); +objj_msgSend(_27,"setBezelStyle:",(_windowStyle==CPHUDBackgroundWindowMask)?CPHUDBezelStyle:CPRoundRectBezelStyle); +objj_msgSend(objj_msgSend(_alertPanel,"contentView"),"addSubview:",_27); +if(_buttonCount==0){ +objj_msgSend(_alertPanel,"setDefaultButton:",_27); +} +_buttonCount++; +objj_msgSend(_buttons,"addObject:",_27); +} +}),new objj_method(sel_getUid("runModal"),function(_28,_29){ +with(_28){ +var _2a; +switch(_alertStyle){ +case CPWarningAlertStyle: +objj_msgSend(_alertImageView,"setImage:",_1); +_2a="Warning"; +break; +case CPInformationalAlertStyle: +objj_msgSend(_alertImageView,"setImage:",_2); +_2a="Information"; +break; +case CPCriticalAlertStyle: +objj_msgSend(_alertImageView,"setImage:",_3); +_2a="Error"; +break; +} +objj_msgSend(_alertPanel,"setTitle:",_windowTitle?_windowTitle:_2a); +objj_msgSend(CPApp,"runModalForWindow:",_alertPanel); +} +}),new objj_method(sel_getUid("_notifyDelegate:"),function(_2b,_2c,_2d){ +with(_2b){ +if(_delegate&&objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("alertDidEnd:returnCode:"))){ +objj_msgSend(_delegate,"alertDidEnd:returnCode:",_2b,objj_msgSend(_2d,"tag")); +} +objj_msgSend(CPApp,"abortModal"); +objj_msgSend(_alertPanel,"close"); +} +})]); +class_addMethods(_5,[new objj_method(sel_getUid("initialize"),function(_2e,_2f){ +with(_2e){ +if(_2e!=CPAlert){ +return; +} +var _30=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_2e,"class")); +_1=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_30,"pathForResource:","CPAlert/dialog-warning.png"),CGSizeMake(32,32)); +_2=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_30,"pathForResource:","CPAlert/dialog-information.png"),CGSizeMake(32,32)); +_3=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_30,"pathForResource:","CPAlert/dialog-error.png"),CGSizeMake(32,32)); +} +})]); +p;13;CPAnimation.jI;21;Foundation/CPObject.ji;23;CAMediaTimingFunction.jc;4269; +CPAnimationEaseInOut=0; +CPAnimationEaseIn=1; +CPAnimationEaseOut=2; +CPAnimationLinear=3; +ACTUAL_FRAME_RATE=0; +var _1=objj_allocateClassPair(CPObject,"CPAnimation"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_lastTime"),new objj_ivar("_duration"),new objj_ivar("_animationCurve"),new objj_ivar("_timingFunction"),new objj_ivar("_frameRate"),new objj_ivar("_progress"),new objj_ivar("_delegate"),new objj_ivar("_timer")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithDuration:animationCurve:"),function(_3,_4,_5,_6){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_progress=0; +_duration=MAX(0,_5); +_animationCurve=_6; +_frameRate=60; +} +return _3; +} +}),new objj_method(sel_getUid("setAnimationCurve:"),function(_7,_8,_9){ +with(_7){ +switch(_animationCurve){ +case CPAnimationEaseInOut: +timingFunctionName=kCAMediaTimingFunctionEaseInEaseOut; +break; +case CPAnimationEaseIn: +timingFunctionName=kCAMediaTimingFunctionEaseIn; +break; +case CPAnimationEaseOut: +timingFunctionName=kCAMediaTimingFunctionEaseOut; +break; +case CPAnimationLinear: +timingFunctionName=kCAMediaTimingFunctionLinear; +break; +default: +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"Invalid value provided for animation curve"); +break; +} +_animationCurve=_9; +_timingFunction=objj_msgSend(CAMediaTimingFunction,"functionWithName:",timingFunctionName); +} +}),new objj_method(sel_getUid("animationCurve"),function(_a,_b){ +with(_a){ +return _animationCurve; +} +}),new objj_method(sel_getUid("setDuration:"),function(_c,_d,_e){ +with(_c){ +if(_e<0){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"aDuration can't be negative"); +} +_duration=_e; +} +}),new objj_method(sel_getUid("duration"),function(_f,_10){ +with(_f){ +return _duration; +} +}),new objj_method(sel_getUid("setFrameRate:"),function(_11,_12,_13){ +with(_11){ +if(_13<0){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"frameRate can't be negative"); +} +_frameRate=_13; +} +}),new objj_method(sel_getUid("frameRate"),function(_14,_15){ +with(_14){ +return _frameRate; +} +}),new objj_method(sel_getUid("delegate"),function(_16,_17){ +with(_16){ +return _delegate; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_18,_19,_1a){ +with(_18){ +_delegate=_1a; +} +}),new objj_method(sel_getUid("startAnimation"),function(_1b,_1c){ +with(_1b){ +if(_timer||_delegate&&objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("animationShouldStart"))&&!objj_msgSend(_delegate,"animationShouldStart:",_1b)){ +return; +} +if(_progress===1){ +_progress=0; +} +ACTUAL_FRAME_RATE=0; +_lastTime=new Date(); +_timer=objj_msgSend(CPTimer,"scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:",0,_1b,sel_getUid("animationTimerDidFire:"),nil,YES); +} +}),new objj_method(sel_getUid("animationTimerDidFire:"),function(_1d,_1e,_1f){ +with(_1d){ +var _20=new Date(),_21=MIN(1,objj_msgSend(_1d,"currentProgress")+(_20-_lastTime)/(_duration*1000)); +_lastTime=_20; +++ACTUAL_FRAME_RATE; +objj_msgSend(_1d,"setCurrentProgress:",_21); +if(_21===1){ +objj_msgSend(_timer,"invalidate"); +_timer=nil; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("animationDidEnd:"))){ +objj_msgSend(_delegate,"animationDidEnd:",_1d); +} +} +} +}),new objj_method(sel_getUid("stopAnimation"),function(_22,_23){ +with(_22){ +if(!_timer){ +return; +} +objj_msgSend(_timer,"invalidate"); +_timer=nil; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("animationDidStop:"))){ +objj_msgSend(_delegate,"animationDidStop:",_22); +} +} +}),new objj_method(sel_getUid("isAnimating"),function(_24,_25){ +with(_24){ +return _timer; +} +}),new objj_method(sel_getUid("setCurrentProgress:"),function(_26,_27,_28){ +with(_26){ +_progress=_28; +} +}),new objj_method(sel_getUid("currentProgress"),function(_29,_2a){ +with(_29){ +return _progress; +} +}),new objj_method(sel_getUid("currentValue"),function(_2b,_2c){ +with(_2b){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("animation:valueForProgress:"))){ +return objj_msgSend(_delegate,"animation:valueForProgress:",_2b,_progress); +} +if(_animationCurve==CPAnimationLinear){ +return _progress; +} +alert("IMPLEMENT ANIMATION CURVES!!!"); +} +})]); +p;15;CPApplication.jI;21;Foundation/CPBundle.ji;17;CPCompatibility.ji;9;CPEvent.ji;8;CPMenu.ji;13;CPResponder.ji;22;CPDocumentController.ji;14;CPThemeBlend.jc;17444; +var _1="CPMainCibFile",_2="Main cib file base name"; +CPApp=nil; +CPApplicationWillFinishLaunchingNotification="CPApplicationWillFinishLaunchingNotification"; +CPApplicationDidFinishLaunchingNotification="CPApplicationDidFinishLaunchingNotification"; +CPRunStoppedResponse=-1000; +CPRunAbortedResponse=-1001; +CPRunContinuesResponse=-1002; +var _3=objj_allocateClassPair(CPResponder,"CPApplication"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_eventListeners"),new objj_ivar("_currentEvent"),new objj_ivar("_windows"),new objj_ivar("_keyWindow"),new objj_ivar("_mainWindow"),new objj_ivar("_mainMenu"),new objj_ivar("_documentController"),new objj_ivar("_currentSession"),new objj_ivar("_delegate"),new objj_ivar("_namedArgs"),new objj_ivar("_args"),new objj_ivar("_fullArgsString")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("init"),function(_5,_6){ +with(_5){ +_5=objj_msgSendSuper({receiver:_5,super_class:objj_getClass("CPResponder")},"init"); +if(_5){ +_eventListeners=[]; +_windows=[]; +objj_msgSend(_windows,"addObject:",nil); +_mainMenu=objj_msgSend(objj_msgSend(CPMenu,"alloc"),"initWithTitle:","MainMenu"); +objj_msgSend(_mainMenu,"setAutoenablesItems:",NO); +var _7=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPApplication,"class")),_8=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","New",sel_getUid("newDocument:"),"N"); +objj_msgSend(_8,"setImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7,"pathForResource:","CPApplication/New.png"),CGSizeMake(16,16))); +objj_msgSend(_8,"setAlternateImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7,"pathForResource:","CPApplication/NewHighlighted.png"),CGSizeMake(16,16))); +objj_msgSend(_mainMenu,"addItem:",_8); +var _9=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Open",sel_getUid("openDocument:"),"O"); +objj_msgSend(_9,"setImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7,"pathForResource:","CPApplication/Open.png"),CGSizeMake(16,16))); +objj_msgSend(_9,"setAlternateImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7,"pathForResource:","CPApplication/OpenHighlighted.png"),CGSizeMake(16,16))); +objj_msgSend(_mainMenu,"addItem:",_9); +var _a=objj_msgSend(objj_msgSend(CPMenu,"alloc"),"initWithTitle:","Save"),_b=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Save",sel_getUid("saveDocument:"),nil); +objj_msgSend(_b,"setImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7,"pathForResource:","CPApplication/Save.png"),CGSizeMake(16,16))); +objj_msgSend(_b,"setAlternateImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_7,"pathForResource:","CPApplication/SaveHighlighted.png"),CGSizeMake(16,16))); +objj_msgSend(_a,"addItem:",objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Save",sel_getUid("saveDocument:"),"S")); +objj_msgSend(_a,"addItem:",objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Save As",sel_getUid("saveDocumentAs:"),nil)); +objj_msgSend(_b,"setSubmenu:",_a); +objj_msgSend(_mainMenu,"addItem:",_b); +var _c=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Edit",nil,nil),_d=objj_msgSend(objj_msgSend(CPMenu,"alloc"),"initWithTitle:","Edit"),_e=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Undo",sel_getUid("undo:"),CPUndoKeyEquivalent),_f=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Redo",sel_getUid("redo:"),CPRedoKeyEquivalent); +objj_msgSend(_e,"setKeyEquivalentModifierMask:",CPUndoKeyEquivalentModifierMask); +objj_msgSend(_f,"setKeyEquivalentModifierMask:",CPRedoKeyEquivalentModifierMask); +objj_msgSend(_d,"addItem:",_e); +objj_msgSend(_d,"addItem:",_f); +objj_msgSend(_d,"addItem:",objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Cut",sel_getUid("cut:"),"X")),objj_msgSend(_d,"addItem:",objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Copy",sel_getUid("copy:"),"C")),objj_msgSend(_d,"addItem:",objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:","Paste",sel_getUid("paste:"),"V")); +objj_msgSend(_c,"setSubmenu:",_d); +objj_msgSend(_c,"setHidden:",YES); +objj_msgSend(_mainMenu,"addItem:",_c); +objj_msgSend(_mainMenu,"addItem:",objj_msgSend(CPMenuItem,"separatorItem")); +} +return _5; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_10,_11,_12){ +with(_10){ +if(_delegate==_12){ +return; +} +var _13=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(_delegate){ +objj_msgSend(_13,"removeObserver:name:object:",_delegate,CPApplicationWillFinishLaunchingNotification,_10); +objj_msgSend(_13,"removeObserver:name:object:",_delegate,CPApplicationDidFinishLaunchingNotification,_10); +} +_delegate=_12; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("applicationWillFinishLaunching:"))){ +objj_msgSend(_13,"addObserver:selector:name:object:",_delegate,sel_getUid("applicationWillFinishLaunching:"),CPApplicationWillFinishLaunchingNotification,_10); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("applicationDidFinishLaunching:"))){ +objj_msgSend(_13,"addObserver:selector:name:object:",_delegate,sel_getUid("applicationDidFinishLaunching:"),CPApplicationDidFinishLaunchingNotification,_10); +} +} +}),new objj_method(sel_getUid("delegate"),function(_14,_15){ +with(_14){ +return _delegate; +} +}),new objj_method(sel_getUid("finishLaunching"),function(_16,_17){ +with(_16){ +var _18=objj_msgSend(CPBundle,"mainBundle"),_19=objj_msgSend(_18,"objectForInfoDictionaryKey:","CPBundleDocumentTypes"); +if(objj_msgSend(_19,"count")>0){ +_documentController=objj_msgSend(CPDocumentController,"sharedDocumentController"); +} +var _1a=objj_msgSend(_18,"objectForInfoDictionaryKey:","CPApplicationDelegateClass"); +if(_1a){ +var _1b=objj_getClass(_1a); +if(_1b){ +if(objj_msgSend(_documentController,"class")==_1b){ +objj_msgSend(_16,"setDelegate:",_documentController); +}else{ +objj_msgSend(_16,"setDelegate:",objj_msgSend(objj_msgSend(_1b,"alloc"),"init")); +} +} +} +var _1c=objj_msgSend(CPNotificationCenter,"defaultCenter"); +objj_msgSend(_1c,"postNotificationName:object:",CPApplicationWillFinishLaunchingNotification,_16); +if(_documentController){ +objj_msgSend(_documentController,"newDocument:",_16); +} +objj_msgSend(_1c,"postNotificationName:object:",CPApplicationDidFinishLaunchingNotification,_16); +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +}),new objj_method(sel_getUid("run"),function(_1d,_1e){ +with(_1d){ +objj_msgSend(_1d,"finishLaunching"); +} +}),new objj_method(sel_getUid("runModalForWindow:"),function(_1f,_20,_21){ +with(_1f){ +objj_msgSend(_1f,"runModalSession:",objj_msgSend(_1f,"beginModalSessionForWindow:",_21)); +} +}),new objj_method(sel_getUid("stopModalWithCode:"),function(_22,_23,_24){ +with(_22){ +if(!_currentSession){ +return; +} +_currentSession._state=_24; +_currentSession=_currentSession._previous; +objj_msgSend(_22,"_removeRunModalLoop"); +} +}),new objj_method(sel_getUid("_removeRunModalLoop"),function(_25,_26){ +with(_25){ +var _27=_eventListeners.length; +while(_27--){ +if(_eventListeners[_27]._callback===_28){ +_eventListeners.splice(_27,1); +return; +} +} +} +}),new objj_method(sel_getUid("stopModal"),function(_29,_2a){ +with(_29){ +objj_msgSend(_29,"stopModalWithCode:",CPRunStoppedResponse); +} +}),new objj_method(sel_getUid("abortModal"),function(_2b,_2c){ +with(_2b){ +objj_msgSend(_2b,"stopModalWithCode:",CPRunAbortedResponse); +} +}),new objj_method(sel_getUid("beginModalSessionForWindow:"),function(_2d,_2e,_2f){ +with(_2d){ +return _30(_2f,0); +} +}),new objj_method(sel_getUid("runModalSession:"),function(_31,_32,_33){ +with(_31){ +_33._previous=_currentSession; +_currentSession=_33; +var _34=_33._window; +objj_msgSend(_34,"center"); +objj_msgSend(_34,"makeKeyAndOrderFront:",_31); +objj_msgSend(CPApp,"setCallback:forNextEventMatchingMask:untilDate:inMode:dequeue:",_28,CPAnyEventMask,nil,0,NO); +} +}),new objj_method(sel_getUid("modalWindow"),function(_35,_36){ +with(_35){ +if(!_currentSession){ +return nil; +} +return _currentSession._window; +} +}),new objj_method(sel_getUid("_handleKeyEquivalent:"),function(_37,_38,_39){ +with(_37){ +if(objj_msgSend(_mainMenu,"performKeyEquivalent:",_39)){ +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("sendEvent:"),function(_3a,_3b,_3c){ +with(_3a){ +if(objj_msgSend(_3c,"type")==CPKeyDown&&objj_msgSend(_3c,"modifierFlags")&(CPCommandKeyMask|CPControlKeyMask)&&objj_msgSend(objj_msgSend(_3c,"characters"),"length")>0&&objj_msgSend(_3a,"_handleKeyEquivalent:",_3c)){ +return; +} +if(_eventListeners.length){ +if(_eventListeners[_eventListeners.length-1]._mask&(1<CPOnState){ +_d=CPOnState; +}else{ +if(_d=0){ +_4e.width=MIN(_4e.width,_51.width); +} +if(_51.height>=0){ +_4e.height=MIN(_4e.height,_51.height); +} +objj_msgSend(_4c,"setFrameSize:",_4e); +} +}),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_52,_53,_54){ +with(_52){ +if(_54==="bezel-view"){ +return objj_msgSend(_52,"bezelRectForBounds:",objj_msgSend(_52,"bounds")); +}else{ +if(_54==="content-view"){ +return objj_msgSend(_52,"contentRectForBounds:",objj_msgSend(_52,"bounds")); +} +} +return objj_msgSendSuper({receiver:_52,super_class:objj_getClass("CPControl")},"rectForEphemeralSubviewNamed:",_54); +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_55,_56,_57){ +with(_55){ +if(_57==="bezel-view"){ +var _58=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +objj_msgSend(_58,"setHitTests:",NO); +return _58; +}else{ +return objj_msgSend(objj_msgSend(_CPImageAndTextView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +} +return objj_msgSendSuper({receiver:_55,super_class:objj_getClass("CPControl")},"createEphemeralSubviewNamed:",_57); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_59,_5a){ +with(_59){ +var _5b=objj_msgSend(_59,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","bezel-view",CPWindowBelow,"content-view"); +if(_5b){ +objj_msgSend(_5b,"setBackgroundColor:",objj_msgSend(_59,"currentValueForThemeAttribute:","bezel-color")); +} +var _5c=objj_msgSend(_59,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","content-view",CPWindowAbove,"bezel-view"); +if(_5c){ +objj_msgSend(_5c,"setText:",(objj_msgSend(_59,"hasThemeState:",CPThemeStateHighlighted)&&_alternateTitle)?_alternateTitle:_title); +objj_msgSend(_5c,"setImage:",(objj_msgSend(_59,"hasThemeState:",CPThemeStateHighlighted)&&_alternateImage)?_alternateImage:_image); +objj_msgSend(_5c,"setFont:",objj_msgSend(_59,"currentValueForThemeAttribute:","font")); +objj_msgSend(_5c,"setTextColor:",objj_msgSend(_59,"currentValueForThemeAttribute:","text-color")); +objj_msgSend(_5c,"setAlignment:",objj_msgSend(_59,"currentValueForThemeAttribute:","alignment")); +objj_msgSend(_5c,"setVerticalAlignment:",objj_msgSend(_59,"currentValueForThemeAttribute:","vertical-alignment")); +objj_msgSend(_5c,"setLineBreakMode:",objj_msgSend(_59,"currentValueForThemeAttribute:","line-break-mode")); +objj_msgSend(_5c,"setTextShadowColor:",objj_msgSend(_59,"currentValueForThemeAttribute:","text-shadow-color")); +objj_msgSend(_5c,"setTextShadowOffset:",objj_msgSend(_59,"currentValueForThemeAttribute:","text-shadow-offset")); +objj_msgSend(_5c,"setImagePosition:",objj_msgSend(_59,"currentValueForThemeAttribute:","image-position")); +objj_msgSend(_5c,"setImageScaling:",objj_msgSend(_59,"currentValueForThemeAttribute:","image-scaling")); +} +} +}),new objj_method(sel_getUid("setDefaultButton:"),function(_5d,_5e,_5f){ +with(_5d){ +if(_5f){ +objj_msgSend(_5d,"setThemeState:",CPThemeStateDefault); +}else{ +objj_msgSend(_5d,"unsetThemeState:",CPThemeStateDefault); +} +} +}),new objj_method(sel_getUid("setBordered:"),function(_60,_61,_62){ +with(_60){ +if(_62){ +objj_msgSend(_60,"setThemeState:",CPThemeStateBordered); +}else{ +objj_msgSend(_60,"unsetThemeState:",CPThemeStateBordered); +} +} +}),new objj_method(sel_getUid("isBordered"),function(_63,_64){ +with(_63){ +return objj_msgSend(_63,"hasThemeState:",CPThemeStateBordered); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("buttonWithTitle:"),function(_65,_66,_67){ +with(_65){ +return objj_msgSend(_65,"buttonWithTitle:theme:",_67,objj_msgSend(CPTheme,"defaultTheme")); +} +}),new objj_method(sel_getUid("buttonWithTitle:theme:"),function(_68,_69,_6a,_6b){ +with(_68){ +var _6c=objj_msgSend(objj_msgSend(_68,"alloc"),"init"); +objj_msgSend(_6c,"setTheme:",_6b); +objj_msgSend(_6c,"setTitle:",_6a); +objj_msgSend(_6c,"sizeToFit"); +return _6c; +} +}),new objj_method(sel_getUid("themeClass"),function(_6d,_6e){ +with(_6d){ +return "button"; +} +}),new objj_method(sel_getUid("themeAttributes"),function(_6f,_70){ +with(_6f){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[{top:(0),right:(0),bottom:(0),left:(0)},{top:(0),right:(0),bottom:(0),left:(0)},nil],["bezel-inset","content-inset","bezel-color"]); +} +})]); +var _1=objj_getClass("CPButton"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPButton\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("setBezelStyle:"),function(_71,_72,_73){ +with(_71){ +} +}),new objj_method(sel_getUid("bezelStyle"),function(_74,_75){ +with(_74){ +} +})]); +var _76="CPButtonImageKey",_77="CPButtonAlternateImageKey",_78="CPButtonTitleKey",_79="CPButtonAlternateTitleKey",_7a="CPButtonIsBorderedKey"; +var _1=objj_getClass("CPButton"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPButton\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_7b,_7c,_7d){ +with(_7b){ +_7b=objj_msgSendSuper({receiver:_7b,super_class:objj_getClass("CPControl")},"initWithCoder:",_7d); +if(_7b){ +_controlSize=CPRegularControlSize; +objj_msgSend(_7b,"setImage:",objj_msgSend(_7d,"decodeObjectForKey:",_76)); +objj_msgSend(_7b,"setAlternateImage:",objj_msgSend(_7d,"decodeObjectForKey:",_77)); +objj_msgSend(_7b,"setTitle:",objj_msgSend(_7d,"decodeObjectForKey:",_78)); +objj_msgSend(_7b,"setAlternateTitle:",objj_msgSend(_7d,"decodeObjectForKey:",_79)); +objj_msgSend(_7b,"setNeedsLayout"); +objj_msgSend(_7b,"setNeedsDisplay:",YES); +} +return _7b; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_7e,_7f,_80){ +with(_7e){ +objj_msgSendSuper({receiver:_7e,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_80); +objj_msgSend(_80,"encodeObject:forKey:",_image,_76); +objj_msgSend(_80,"encodeObject:forKey:",_alternateImage,_77); +objj_msgSend(_80,"encodeObject:forKey:",_title,_78); +objj_msgSend(_80,"encodeObject:forKey:",_alternateTitle,_79); +} +})]); +i;12;CPCheckBox.ji;9;CPRadio.jp;13;CPButtonBar.jI;15;AppKit/CPView.jc;1693; +var _1=objj_allocateClassPair(CPControl,"CPButtonBar"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_3,_4,_5){ +with(_3){ +if(_5==="bezel-view"){ +return objj_msgSend(_3,"bounds"); +} +return objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPControl")},"rectForEphemeralSubviewNamed:",_5); +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_6,_7,_8){ +with(_6){ +if(_8==="bezel-view"){ +var _9=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +objj_msgSend(_9,"setHitTests:",NO); +return _9; +} +return objj_msgSendSuper({receiver:_6,super_class:objj_getClass("CPControl")},"createEphemeralSubviewNamed:",_8); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_a,_b){ +with(_a){ +var _c=objj_msgSend(_a,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","bezel-view",CPWindowBelow,""); +if(_c){ +objj_msgSend(_c,"setBackgroundColor:",objj_msgSend(_a,"currentValueForThemeAttribute:","bezel-color")); +} +} +}),new objj_method(sel_getUid("addSubview:"),function(_d,_e,_f){ +with(_d){ +objj_msgSendSuper({receiver:_d,super_class:objj_getClass("CPControl")},"addSubview:",_f); +objj_msgSend(_f,"setAutoresizingMask:",CPViewMinXMargin); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("themeClass"),function(_10,_11){ +with(_10){ +return "button-bar"; +} +}),new objj_method(sel_getUid("themeAttributes"),function(_12,_13){ +with(_12){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[nil],["bezel-color"]); +} +})]); +p;12;CPCheckBox.ji;10;CPButton.jc;1040; +var _1=objj_allocateClassPair(CPButton,"CPCheckBox"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPButton")},"initWithFrame:",_5); +if(_3){ +objj_msgSend(_3,"setHighlightsBy:",CPContentsCellMask); +objj_msgSend(_3,"setShowsStateBy:",CPContentsCellMask); +objj_msgSend(_3,"setImagePosition:",CPImageLeft); +objj_msgSend(_3,"setAlignment:",CPLeftTextAlignment); +objj_msgSend(_3,"setBordered:",YES); +} +return _3; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("checkBoxWithTitle:theme:"),function(_6,_7,_8,_9){ +with(_6){ +return objj_msgSend(_6,"buttonWithTitle:theme:",_8,_9); +} +}),new objj_method(sel_getUid("checkBoxWithTitle:"),function(_a,_b,_c){ +with(_a){ +return objj_msgSend(_a,"buttonWithTitle:",_c); +} +}),new objj_method(sel_getUid("themeClass"),function(_d,_e){ +with(_d){ +return "check-box"; +} +})]); +p;7;CPCib.jI;21;Foundation/CPObject.jI;28;Foundation/CPURLConnection.jI;25;Foundation/CPURLRequest.ji;20;_CPCibClassSwapper.ji;20;_CPCibCustomObject.ji;22;_CPCibCustomResource.ji;18;_CPCibCustomView.ji;23;_CPCibKeyedUnarchiver.ji;18;_CPCibObjectData.ji;22;_CPCibWindowTemplate.jc;4170; +CPCibOwner="CPCibOwner",CPCibTopLevelObjects="CPCibTopLevelObjects",CPCibReplacementClasses="CPCibReplacementClasses"; +var _1="CPCibObjectDataKey"; +var _2=objj_allocateClassPair(CPObject,"CPCib"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_data"),new objj_ivar("_bundle"),new objj_ivar("_awakenCustomResources"),new objj_ivar("_loadDelegate")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithContentsOfURL:"),function(_4,_5,_6){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPObject")},"init"); +if(_4){ +_data=objj_msgSend(CPURLConnection,"sendSynchronousRequest:returningResponse:error:",objj_msgSend(CPURLRequest,"requestWithURL:",_6),nil,nil); +_awakenCustomResources=YES; +} +return _4; +} +}),new objj_method(sel_getUid("initWithContentsOfURL:loadDelegate:"),function(_7,_8,_9,_a){ +with(_7){ +_7=objj_msgSendSuper({receiver:_7,super_class:objj_getClass("CPObject")},"init"); +if(_7){ +objj_msgSend(CPURLConnection,"connectionWithRequest:delegate:",objj_msgSend(CPURLRequest,"requestWithURL:",_9),_7); +_awakenCustomResources=YES; +_loadDelegate=_a; +} +return _7; +} +}),new objj_method(sel_getUid("initWithCibNamed:bundle:loadDelegate:"),function(_b,_c,_d,_e,_f){ +with(_b){ +if(!objj_msgSend(_d,"hasSuffix:",".cib")){ +_d=objj_msgSend(_d,"stringByAppendingString:",".cib"); +} +_b=objj_msgSend(_b,"initWithContentsOfURL:loadDelegate:",objj_msgSend(_e||objj_msgSend(CPBundle,"mainBundle"),"pathForResource:",_d),_f); +if(_b){ +_bundle=_e; +} +return _b; +} +}),new objj_method(sel_getUid("_setAwakenCustomResources:"),function(_10,_11,_12){ +with(_10){ +_awakenCustomResources=_12; +} +}),new objj_method(sel_getUid("_awakenCustomResources"),function(_13,_14){ +with(_13){ +return _awakenCustomResources; +} +}),new objj_method(sel_getUid("instantiateCibWithExternalNameTable:"),function(_15,_16,_17){ +with(_15){ +var _18=_bundle,_19=objj_msgSend(_17,"objectForKey:",CPCibOwner); +if(!_18&&_19){ +_18=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_19,"class")); +} +var _1a=objj_msgSend(objj_msgSend(_CPCibKeyedUnarchiver,"alloc"),"initForReadingWithData:bundle:awakenCustomResources:",_data,_18,_awakenCustomResources),_1b=objj_msgSend(_17,"objectForKey:",CPCibReplacementClasses); +if(_1b){ +var key=nil,_1d=objj_msgSend(_1b,"keyEnumerator"); +while(key=objj_msgSend(_1d,"nextObject")){ +objj_msgSend(_1a,"setClass:forClassName:",objj_msgSend(_1b,"objectForKey:",key),key); +} +} +var _1e=objj_msgSend(_1a,"decodeObjectForKey:",_1); +if(!_1e||!objj_msgSend(_1e,"isKindOfClass:",objj_msgSend(_CPCibObjectData,"class"))){ +return NO; +} +var _1f=objj_msgSend(_17,"objectForKey:",CPCibTopLevelObjects); +objj_msgSend(_1e,"instantiateWithOwner:topLevelObjects:",_19,_1f); +objj_msgSend(_1e,"establishConnectionsWithOwner:topLevelObjects:",_19,_1f); +objj_msgSend(_1e,"awakeWithOwner:topLevelObjects:",_19,_1f); +var _20; +if((_20=objj_msgSend(_1e,"mainMenu"))!=nil){ +objj_msgSend(CPApp,"setMainMenu:",_20); +objj_msgSend(CPMenu,"setMenuBarVisible:",YES); +} +objj_msgSend(_1e,"displayVisibleWindows"); +return YES; +} +}),new objj_method(sel_getUid("instantiateCibWithOwner:topLevelObjects:"),function(_21,_22,_23,_24){ +with(_21){ +return objj_msgSend(_21,"instantiateCibWithExternalNameTable:",objj_msgSend(CPDictionary,"dictionaryWithObjectsAndKeys:",_23,CPCibOwner,_24,CPCibTopLevelObjects)); +} +})]); +var _2=objj_getClass("CPCib"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPCib\"")); +} +var _3=_2.isa; +class_addMethods(_2,[new objj_method(sel_getUid("connection:didReceiveData:"),function(_25,_26,_27,_28){ +with(_25){ +_data=objj_msgSend(CPData,"dataWithString:",_28); +} +}),new objj_method(sel_getUid("connection:didFailWithError:"),function(_29,_2a,_2b,_2c){ +with(_29){ +alert("cib: connection failed."); +_loadDelegate=nil; +} +}),new objj_method(sel_getUid("connectionDidFinishLoading:"),function(_2d,_2e,_2f){ +with(_2d){ +if(objj_msgSend(_loadDelegate,"respondsToSelector:",sel_getUid("cibDidFinishLoading:"))){ +objj_msgSend(_loadDelegate,"cibDidFinishLoading:",_2d); +} +_loadDelegate=nil; +} +})]); +p;14;CPCibLoading.jI;21;Foundation/CPBundle.jI;25;Foundation/CPDictionary.jI;21;Foundation/CPString.jc;1850; +var _1="CPCibOwner"; +var _2={}; +var _3=objj_getClass("CPObject"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPObject\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("awakeFromCib"),function(_5,_6){ +with(_5){ +} +})]); +var _3=objj_getClass("CPBundle"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPBundle\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("loadCibFile:externalNameTable:loadDelegate:"),function(_7,_8,_9,_a,_b){ +with(_7){ +var _c=objj_msgSend(objj_msgSend(CPCib,"alloc"),"initWithCibNamed:bundle:loadDelegate:",_9,_7,objj_msgSend(_7,"class")); +_2[objj_msgSend(_c,"hash")]={loadDelegate:_b,externalNameTable:_a}; +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("loadCibFile:externalNameTable:loadDelegate:"),function(_d,_e,_f,_10,_11){ +with(_d){ +var cib=objj_msgSend(objj_msgSend(CPCib,"alloc"),"initWithContentsOfURL:loadDelegate:",_f,_d); +_2[objj_msgSend(cib,"hash")]={loadDelegate:_11,externalNameTable:_10}; +} +}),new objj_method(sel_getUid("loadCibNamed:owner:loadDelegate:"),function(_13,_14,_15,_16,_17){ +with(_13){ +var _18=_16?objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_16,"class")):objj_msgSend(CPBundle,"mainBundle"),_19=objj_msgSend(_18,"pathForResource:",_15); +objj_msgSend(_13,"loadCibFile:externalNameTable:loadDelegate:",_19,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",_16,_1),_17); +} +}),new objj_method(sel_getUid("cibDidFinishLoading:"),function(_1a,_1b,_1c){ +with(_1a){ +var _1d=_2[objj_msgSend(_1c,"hash")]; +delete _2[objj_msgSend(_1c,"hash")]; +objj_msgSend(_1c,"instantiateCibWithExternalNameTable:",_1d.externalNameTable); +objj_msgSend(_1d.loadDelegate,"cibDidFinishLoading:",_1c); +} +})]); +p;12;CPClipView.ji;8;CPView.jc;4242; +var _1=objj_allocateClassPair(CPView,"CPClipView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_documentView")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("setDocumentView:"),function(_3,_4,_5){ +with(_3){ +if(_documentView==_5){ +return; +} +var _6=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(_documentView){ +objj_msgSend(_6,"removeObserver:name:object:",_3,CPViewFrameDidChangeNotification,_documentView); +objj_msgSend(_6,"removeObserver:name:object:",_3,CPViewBoundsDidChangeNotification,_documentView); +objj_msgSend(_documentView,"removeFromSuperview"); +} +_documentView=_5; +if(_documentView){ +objj_msgSend(_3,"addSubview:",_documentView); +objj_msgSend(_documentView,"setPostsFrameChangedNotifications:",YES); +objj_msgSend(_documentView,"setPostsBoundsChangedNotifications:",YES); +objj_msgSend(_6,"addObserver:selector:name:object:",_3,sel_getUid("viewFrameChanged:"),CPViewFrameDidChangeNotification,_documentView); +objj_msgSend(_6,"addObserver:selector:name:object:",_3,sel_getUid("viewBoundsChanged:"),CPViewBoundsDidChangeNotification,_documentView); +} +} +}),new objj_method(sel_getUid("documentView"),function(_7,_8){ +with(_7){ +return _documentView; +} +}),new objj_method(sel_getUid("constrainScrollPoint:"),function(_9,_a,_b){ +with(_9){ +if(!_documentView){ +return {x:0,y:0}; +} +var _c=objj_msgSend(_documentView,"frame"); +_b.x=MAX(0,MIN(_b.x,MAX((_c.size.width)-(_bounds.size.width),0))); +_b.y=MAX(0,MIN(_b.y,MAX((_c.size.height)-(_bounds.size.height),0))); +return _b; +} +}),new objj_method(sel_getUid("setBoundsOrigin:"),function(_d,_e,_f){ +with(_d){ +if((_bounds.origin.x==_f.x&&_bounds.origin.y==_f.y)){ +return; +} +objj_msgSendSuper({receiver:_d,super_class:objj_getClass("CPView")},"setBoundsOrigin:",_f); +var _10=objj_msgSend(_d,"superview"); +if(objj_msgSend(_10,"isKindOfClass:",objj_msgSend(CPScrollView,"class"))){ +objj_msgSend(_10,"reflectScrolledClipView:",_d); +} +} +}),new objj_method(sel_getUid("scrollToPoint:"),function(_11,_12,_13){ +with(_11){ +objj_msgSend(_11,"setBoundsOrigin:",objj_msgSend(_11,"constrainScrollPoint:",_13)); +} +}),new objj_method(sel_getUid("viewBoundsChanged:"),function(_14,_15,_16){ +with(_14){ +objj_msgSend(_14,"_constrainScrollPoint"); +} +}),new objj_method(sel_getUid("viewFrameChanged:"),function(_17,_18,_19){ +with(_17){ +objj_msgSend(_17,"_constrainScrollPoint"); +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_1a,_1b,_1c){ +with(_1a){ +objj_msgSendSuper({receiver:_1a,super_class:objj_getClass("CPView")},"resizeSubviewsWithOldSize:",_1c); +objj_msgSend(_1a,"_constrainScrollPoint"); +} +}),new objj_method(sel_getUid("_constrainScrollPoint"),function(_1d,_1e){ +with(_1d){ +var _1f=objj_msgSend(_1d,"bounds").origin; +objj_msgSend(_1d,"scrollToPoint:",_1f); +if(!CGPointEqualToPoint(_1f,objj_msgSend(_1d,"bounds").origin)){ +return; +} +var _20=objj_msgSend(_1d,"superview"); +if(objj_msgSend(_20,"isKindOfClass:",objj_msgSend(CPScrollView,"class"))){ +objj_msgSend(_20,"reflectScrolledClipView:",_1d); +} +} +}),new objj_method(sel_getUid("autoscroll:"),function(_21,_22,_23){ +with(_21){ +var _24=objj_msgSend(_21,"bounds"),_25=objj_msgSend(_21,"convertPoint:fromView:",objj_msgSend(_23,"locationInWindow"),nil); +if(CPRectContainsPoint(_24,_25)){ +return NO; +} +var _26=CGRectMakeZero(); +_26.origin=_25; +_26.size=CPSizeMake(10,10); +return objj_msgSend(_documentView,"scrollRectToVisible:",_26); +} +})]); +var _27="CPScrollViewDocumentView"; +var _1=objj_getClass("CPClipView"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPClipView\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_28,_29,_2a){ +with(_28){ +if(_28=objj_msgSendSuper({receiver:_28,super_class:objj_getClass("CPView")},"initWithCoder:",_2a)){ +objj_msgSend(_28,"setDocumentView:",objj_msgSend(_2a,"decodeObjectForKey:",_27)); +} +return _28; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_2b,_2c,_2d){ +with(_2b){ +objj_msgSendSuper({receiver:_2b,super_class:objj_getClass("CPView")},"encodeWithCoder:",_2d); +objj_msgSend(_2d,"encodeObject:forKey:",_documentView,_27); +} +})]); +p;18;CPCollectionView.jI;20;Foundation/CPArray.jI;19;Foundation/CPData.jI;23;Foundation/CPIndexSet.jI;28;Foundation/CPKeyedArchiver.jI;30;Foundation/CPKeyedUnarchiver.jI;15;AppKit/CPView.jc;13723; +var _1=objj_allocateClassPair(CPView,"CPCollectionView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_content"),new objj_ivar("_items"),new objj_ivar("_itemData"),new objj_ivar("_itemPrototype"),new objj_ivar("_itemForDragging"),new objj_ivar("_cachedItems"),new objj_ivar("_maxNumberOfRows"),new objj_ivar("_maxNumberOfColumns"),new objj_ivar("_minItemSize"),new objj_ivar("_maxItemSize"),new objj_ivar("_tileWidth"),new objj_ivar("_isSelectable"),new objj_ivar("_allowsMultipleSelection"),new objj_ivar("_allowsEmptySelection"),new objj_ivar("_selectionIndexes"),new objj_ivar("_itemSize"),new objj_ivar("_horizontalMargin"),new objj_ivar("_verticalMargin"),new objj_ivar("_numberOfRows"),new objj_ivar("_numberOfColumns"),new objj_ivar("_delegate")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPView")},"initWithFrame:",_5); +if(_3){ +_items=[]; +_content=[]; +_cachedItems=[]; +_itemSize=CGSizeMakeZero(); +_minItemSize=CGSizeMakeZero(); +_maxItemSize=CGSizeMakeZero(); +_verticalMargin=5; +_tileWidth=-1; +_selectionIndexes=objj_msgSend(CPIndexSet,"indexSet"); +_allowsEmptySelection=YES; +_isSelectable=YES; +} +return _3; +} +}),new objj_method(sel_getUid("setItemPrototype:"),function(_6,_7,_8){ +with(_6){ +_itemData=objj_msgSend(CPKeyedArchiver,"archivedDataWithRootObject:",_8); +_itemForDragging=_8; +_itemPrototype=_8; +objj_msgSend(_6,"reloadContent"); +} +}),new objj_method(sel_getUid("itemPrototype"),function(_9,_a){ +with(_9){ +return _itemPrototype; +} +}),new objj_method(sel_getUid("newItemForRepresentedObject:"),function(_b,_c,_d){ +with(_b){ +var _e=nil; +if(_cachedItems.length){ +_e=_cachedItems.pop(); +}else{ +_e=objj_msgSend(CPKeyedUnarchiver,"unarchiveObjectWithData:",_itemData); +} +objj_msgSend(_e,"setRepresentedObject:",_d); +objj_msgSend(objj_msgSend(_e,"view"),"setFrameSize:",_itemSize); +return _e; +} +}),new objj_method(sel_getUid("acceptsFirstResponder"),function(_f,_10){ +with(_f){ +return YES; +} +}),new objj_method(sel_getUid("isFirstResponder"),function(_11,_12){ +with(_11){ +return objj_msgSend(objj_msgSend(_11,"window"),"firstResponder")==_11; +} +}),new objj_method(sel_getUid("setContent:"),function(_13,_14,_15){ +with(_13){ +if(_content==_15){ +return; +} +_content=_15; +objj_msgSend(_13,"reloadContent"); +} +}),new objj_method(sel_getUid("content"),function(_16,_17){ +with(_16){ +return _content; +} +}),new objj_method(sel_getUid("items"),function(_18,_19){ +with(_18){ +return _items; +} +}),new objj_method(sel_getUid("setSelectable:"),function(_1a,_1b,_1c){ +with(_1a){ +if(_isSelectable==_1c){ +return; +} +_isSelectable=_1c; +if(!_isSelectable){ +var _1d=CPNotFound; +while((_1d=objj_msgSend(_selectionIndexes,"indexGreaterThanIndex:",_1d))!=CPNotFound){ +objj_msgSend(_items[_1d],"setSelected:",NO); +} +} +} +}),new objj_method(sel_getUid("isSelected"),function(_1e,_1f){ +with(_1e){ +return _isSelected; +} +}),new objj_method(sel_getUid("setAllowsEmptySelection:"),function(_20,_21,_22){ +with(_20){ +_allowsEmptySelection=_22; +} +}),new objj_method(sel_getUid("allowsEmptySelection"),function(_23,_24){ +with(_23){ +return _allowsEmptySelection; +} +}),new objj_method(sel_getUid("setAllowsMultipleSelection:"),function(_25,_26,_27){ +with(_25){ +_allowsMultipleSelection=_27; +} +}),new objj_method(sel_getUid("allowsMultipleSelection"),function(_28,_29){ +with(_28){ +return _allowsMultipleSelection; +} +}),new objj_method(sel_getUid("setSelectionIndexes:"),function(_2a,_2b,_2c){ +with(_2a){ +if(_selectionIndexes==_2c||!_isSelectable){ +return; +} +var _2d=CPNotFound; +while((_2d=objj_msgSend(_selectionIndexes,"indexGreaterThanIndex:",_2d))!=CPNotFound){ +objj_msgSend(_items[_2d],"setSelected:",NO); +} +_selectionIndexes=_2c; +var _2d=CPNotFound; +while((_2d=objj_msgSend(_selectionIndexes,"indexGreaterThanIndex:",_2d))!=CPNotFound){ +objj_msgSend(_items[_2d],"setSelected:",YES); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("collectionViewDidChangeSelection:"))){ +objj_msgSend(_delegate,"collectionViewDidChangeSelection:",_2a); +} +} +}),new objj_method(sel_getUid("selectionIndexes"),function(_2e,_2f){ +with(_2e){ +return _selectionIndexes; +} +}),new objj_method(sel_getUid("reloadContent"),function(_30,_31){ +with(_30){ +var _32=_items.length; +while(_32--){ +objj_msgSend(objj_msgSend(_items[_32],"view"),"removeFromSuperview"); +_cachedItems.push(_items[_32]); +} +_items=[]; +if(!_itemData||!_content){ +return; +} +var _33=0; +_32=_content.length; +for(;_33<_32;++_33){ +_items.push(objj_msgSend(_30,"newItemForRepresentedObject:",_content[_33])); +objj_msgSend(_30,"addSubview:",objj_msgSend(_items[_33],"view")); +} +objj_msgSend(_30,"tile"); +} +}),new objj_method(sel_getUid("tile"),function(_34,_35){ +with(_34){ +var _36=CGRectGetWidth(objj_msgSend(_34,"bounds")); +if(!objj_msgSend(_content,"count")||_36==_tileWidth){ +return; +} +var _37=CGSizeMakeCopy(_minItemSize); +_numberOfColumns=MAX(1,FLOOR(_36/_37.width)); +if(_maxNumberOfColumns>0){ +_numberOfColumns=MIN(_maxNumberOfColumns,_numberOfColumns); +} +var _38=_36-_numberOfColumns*_37.width,_39=NO; +if(_38>0&&_37.width<_maxItemSize.width){ +_37.width=MIN(_maxItemSize.width,_37.width+FLOOR(_38/_numberOfColumns)); +} +if(_maxNumberOfColumns==1&&_37.width<_maxItemSize.width&&_37.width<_36){ +_37.width=MIN(_maxItemSize.width,_36); +} +if(!CGSizeEqualToSize(_itemSize,_37)){ +_itemSize=_37; +_39=YES; +} +var _3a=0,_3b=_items.length; +if(_maxNumberOfColumns>0&&_maxNumberOfRows>0){ +_3b=MIN(_3b,_maxNumberOfColumns*_maxNumberOfRows); +} +_numberOfRows=CEIL(_3b/_numberOfColumns); +_horizontalMargin=FLOOR((_36-_numberOfColumns*_37.width)/(_numberOfColumns+1)); +var x=_horizontalMargin,y=-_37.height; +for(;_3a<_3b;++_3a){ +if(_3a%_numberOfColumns==0){ +x=_horizontalMargin; +y+=_verticalMargin+_37.height; +} +var _3e=objj_msgSend(_items[_3a],"view"); +objj_msgSend(_3e,"setFrameOrigin:",CGPointMake(x,y)); +if(_39){ +objj_msgSend(_3e,"setFrameSize:",_itemSize); +} +x+=_37.width+_horizontalMargin; +} +_tileWidth=_36; +objj_msgSend(_34,"setFrameSize:",CGSizeMake(_36,y+_37.height+_verticalMargin)); +_tileWidth=-1; +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_3f,_40,_41){ +with(_3f){ +objj_msgSend(_3f,"tile"); +} +}),new objj_method(sel_getUid("setMaxNumberOfRows:"),function(_42,_43,_44){ +with(_42){ +if(_maxNumberOfRows==_44){ +return; +} +_maxNumberOfRows=_44; +objj_msgSend(_42,"tile"); +} +}),new objj_method(sel_getUid("maxNumberOfRows"),function(_45,_46){ +with(_45){ +return _maxNumberOfRows; +} +}),new objj_method(sel_getUid("setMaxNumberOfColumns:"),function(_47,_48,_49){ +with(_47){ +if(_maxNumberOfColumns==_49){ +return; +} +_maxNumberOfColumns=_49; +objj_msgSend(_47,"tile"); +} +}),new objj_method(sel_getUid("maxNumberOfColumns"),function(_4a,_4b){ +with(_4a){ +return _maxNumberOfColumns; +} +}),new objj_method(sel_getUid("numberOfRows"),function(_4c,_4d){ +with(_4c){ +return _numberOfRows; +} +}),new objj_method(sel_getUid("numberOfColumns"),function(_4e,_4f){ +with(_4e){ +return _numberOfColumns; +} +}),new objj_method(sel_getUid("setMinItemSize:"),function(_50,_51,_52){ +with(_50){ +if(CGSizeEqualToSize(_minItemSize,_52)){ +return; +} +_minItemSize=CGSizeMakeCopy(_52); +objj_msgSend(_50,"tile"); +} +}),new objj_method(sel_getUid("minItemSize"),function(_53,_54){ +with(_53){ +return _minItemSize; +} +}),new objj_method(sel_getUid("setMaxItemSize:"),function(_55,_56,_57){ +with(_55){ +if(CGSizeEqualToSize(_maxItemSize,_57)){ +return; +} +_maxItemSize=CGSizeMakeCopy(_57); +objj_msgSend(_55,"tile"); +} +}),new objj_method(sel_getUid("maxItemSize"),function(_58,_59){ +with(_58){ +return _maxItemSize; +} +}),new objj_method(sel_getUid("mouseUp:"),function(_5a,_5b,_5c){ +with(_5a){ +if(objj_msgSend(_selectionIndexes,"count")&&objj_msgSend(_5c,"clickCount")==2&&objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("collectionView:didDoubleClickOnItemAtIndex:"))){ +objj_msgSend(_delegate,"collectionView:didDoubleClickOnItemAtIndex:",_5a,objj_msgSend(_selectionIndexes,"firstIndex")); +} +} +}),new objj_method(sel_getUid("mouseDown:"),function(_5d,_5e,_5f){ +with(_5d){ +var _60=objj_msgSend(_5d,"convertPoint:fromView:",objj_msgSend(_5f,"locationInWindow"),nil),row=FLOOR(_60.y/(_itemSize.height+_verticalMargin)),_62=FLOOR(_60.x/(_itemSize.width+_horizontalMargin)),_63=row*_numberOfColumns+_62; +if(_63>=0&&_63<_items.length){ +objj_msgSend(_5d,"setSelectionIndexes:",objj_msgSend(CPIndexSet,"indexSetWithIndex:",_63)); +}else{ +if(_allowsEmptySelection){ +objj_msgSend(_5d,"setSelectionIndexes:",objj_msgSend(CPIndexSet,"indexSet")); +} +} +} +}),new objj_method(sel_getUid("mouseDragged:"),function(_64,_65,_66){ +with(_64){ +if(!objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("collectionView:dragTypesForItemsAtIndexes:"))){ +return; +} +if(!objj_msgSend(_selectionIndexes,"count")){ +return; +} +var _67=objj_msgSend(_delegate,"collectionView:dragTypesForItemsAtIndexes:",_64,_selectionIndexes); +objj_msgSend(objj_msgSend(CPPasteboard,"pasteboardWithName:",CPDragPboard),"declareTypes:owner:",_67,_64); +var _68=objj_msgSend(_64,"convertPoint:fromView:",objj_msgSend(_66,"locationInWindow"),nil); +objj_msgSend(_itemForDragging,"setRepresentedObject:",_content[objj_msgSend(_selectionIndexes,"firstIndex")]); +var _69=objj_msgSend(_itemForDragging,"view"),_6a=objj_msgSend(_69,"frame"); +objj_msgSend(_69,"setFrameSize:",_itemSize); +objj_msgSend(_69,"setAlphaValue:",0.7); +objj_msgSend(_64,"dragView:at:offset:event:pasteboard:source:slideBack:",_69,objj_msgSend(objj_msgSend(_items[objj_msgSend(_selectionIndexes,"firstIndex")],"view"),"frame").origin,CGPointMakeZero(),_66,nil,_64,YES); +} +}),new objj_method(sel_getUid("pasteboard:provideDataForType:"),function(_6b,_6c,_6d,_6e){ +with(_6b){ +objj_msgSend(_6d,"setData:forType:",objj_msgSend(_delegate,"collectionView:dataForItemsAtIndexes:forType:",_6b,_selectionIndexes,_6e),_6e); +} +}),new objj_method(sel_getUid("setVerticalMargin:"),function(_6f,_70,_71){ +with(_6f){ +if(_verticalMargin==_71){ +return; +} +_verticalMargin=_71; +objj_msgSend(_6f,"tile"); +} +}),new objj_method(sel_getUid("verticalMargin"),function(_72,_73){ +with(_72){ +return _verticalMargin; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_74,_75,_76){ +with(_74){ +_delegate=_76; +} +}),new objj_method(sel_getUid("delegate"),function(_77,_78){ +with(_77){ +return _delegate; +} +})]); +var _1=objj_allocateClassPair(CPObject,"CPCollectionViewItem"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_representedObject"),new objj_ivar("_view"),new objj_ivar("_isSelected")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("setRepresentedObject:"),function(_79,_7a,_7b){ +with(_79){ +if(_representedObject==_7b){ +return; +} +_representedObject=_7b; +objj_msgSend(_view,"setRepresentedObject:",_7b); +} +}),new objj_method(sel_getUid("representedObject"),function(_7c,_7d){ +with(_7c){ +return _representedObject; +} +}),new objj_method(sel_getUid("setView:"),function(_7e,_7f,_80){ +with(_7e){ +_view=_80; +} +}),new objj_method(sel_getUid("view"),function(_81,_82){ +with(_81){ +return _view; +} +}),new objj_method(sel_getUid("setSelected:"),function(_83,_84,_85){ +with(_83){ +if(_isSelected==_85){ +return; +} +_isSelected=_85; +objj_msgSend(_view,"setSelected:",_isSelected); +} +}),new objj_method(sel_getUid("isSelected"),function(_86,_87){ +with(_86){ +return _isSelected; +} +}),new objj_method(sel_getUid("collectionView"),function(_88,_89){ +with(_88){ +return objj_msgSend(_view,"superview"); +} +})]); +var _8a="CPCollectionViewMinItemSizeKey",_8b="CPCollectionViewMaxItemSizeKey",_8c="CPCollectionViewVerticalMarginKey"; +var _1=objj_getClass("CPCollectionView"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPCollectionView\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_8d,_8e,_8f){ +with(_8d){ +_8d=objj_msgSendSuper({receiver:_8d,super_class:objj_getClass("CPView")},"initWithCoder:",_8f); +if(_8d){ +_items=[]; +_content=[]; +_cachedItems=[]; +_itemSize=CGSizeMakeZero(); +_minItemSize=objj_msgSend(_8f,"decodeSizeForKey:",_8a); +_maxItemSize=objj_msgSend(_8f,"decodeSizeForKey:",_8b); +_verticalMargin=objj_msgSend(_8f,"decodeSizeForKey:",_8c); +_tileWidth=-1; +_selectionIndexes=objj_msgSend(CPIndexSet,"indexSet"); +} +return _8d; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_90,_91,_92){ +with(_90){ +objj_msgSendSuper({receiver:_90,super_class:objj_getClass("CPView")},"encodeWithCoder:",_92); +objj_msgSend(_92,"encodeSize:forKey:",_minItemSize,_8a); +objj_msgSend(_92,"encodeSize:forKey:",_maxItemSize,_8b); +objj_msgSend(_92,"encodeSize:forKey:",_verticalMargin,_8c); +} +})]); +var _93="CPCollectionViewItemViewKey"; +var _1=objj_getClass("CPCollectionViewItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPCollectionViewItem\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("copy"),function(_94,_95){ +with(_94){ +} +})]); +var _93="CPCollectionViewItemViewKey"; +var _1=objj_getClass("CPCollectionViewItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPCollectionViewItem\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_96,_97,_98){ +with(_96){ +_96=objj_msgSendSuper({receiver:_96,super_class:objj_getClass("CPObject")},"init"); +if(_96){ +_view=objj_msgSend(_98,"decodeObjectForKey:",_93); +} +return _96; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_99,_9a,_9b){ +with(_99){ +objj_msgSend(_9b,"encodeObject:forKey:",_view,_93); +} +})]); +p;9;CPColor.jI;21;Foundation/CPObject.ji;9;CGColor.ji;17;CPCompatibility.ji;9;CPImage.jc;12886; +var _1=0,_2=1,_3=2,_4=3; +var _5=0,_6=1,_7=2; +var _8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12; +var _13=objj_allocateClassPair(CPObject,"CPColor"),_14=_13.isa; +class_addIvars(_13,[new objj_ivar("_components"),new objj_ivar("_patternImage"),new objj_ivar("_cssString")]); +objj_registerClassPair(_13); +objj_addClassForBundle(_13,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_13,[new objj_method(sel_getUid("_initWithCSSString:"),function(_15,_16,_17){ +with(_15){ +if(_17.indexOf("rgb")==CPNotFound){ +return nil; +} +_15=objj_msgSendSuper({receiver:_15,super_class:objj_getClass("CPObject")},"init"); +var _18=_17.indexOf("("); +var _19=_17.substring(_18+1).split(","); +_components=[parseInt(_19[0],10)/255,parseInt(_19[1],10)/255,parseInt(_19[2],10)/255,_19[3]?parseInt(_19[3],10)/255:1]; +_cssString=_17; +return _15; +} +}),new objj_method(sel_getUid("_initWithRGBA:"),function(_1a,_1b,_1c){ +with(_1a){ +_1a=objj_msgSendSuper({receiver:_1a,super_class:objj_getClass("CPObject")},"init"); +if(_1a){ +_components=_1c; +if(!CPFeatureIsCompatible(CPCSSRGBAFeature)&&_components[3]!=1&&window.Base64&&window.CRC32){ +var _1d=[137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,1,0,0,0,1,8,3,0,0,0,40,203,52,187,0,0,3,0,80,76,84,69,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,137,153,85,0,0,0,1,116,82,78,83,0,64,230,216,102,0,0,0,16,73,68,65,84,120,218,98,96,0,0,0,0,255,255,3,0,0,2,0,1,36,127,36,241,0,0,0,0,73,69,78,68,174,66,96,130,255]; +var _1e=41; +var _1f=42; +var _20=43; +var _21=821; +var _22=809; +var _23=822; +var _24=37; +var _25=817; +_1d[_1e]=Math.round(_components[0]*255); +_1d[_1f]=Math.round(_components[1]*255); +_1d[_20]=Math.round(_components[2]*255); +_1d[_21]=Math.round(_components[3]*255); +var _26=integerToBytes(CRC32.getCRC(_1d,_24,4+768),4); +var _27=integerToBytes(CRC32.getCRC(_1d,_25,4+1),4); +for(var i=0;i<4;i++){ +_1d[_22+i]=_26[i]; +_1d[_23+i]=_27[i]; +} +var _29=Base64.encode(_1d); +_cssString="url(\"data:image/png;base64,"+_29+"\")"; +}else{ +var _2a=CPFeatureIsCompatible(CPCSSRGBAFeature)&&_components[3]!=1; +_cssString=(_2a?"rgba(":"rgb(")+parseInt(_components[0]*255)+", "+parseInt(_components[1]*255)+", "+parseInt(_components[2]*255)+(_2a?(", "+_components[3]):"")+")"; +} +} +return _1a; +} +}),new objj_method(sel_getUid("_initWithPatternImage:"),function(_2b,_2c,_2d){ +with(_2b){ +_2b=objj_msgSendSuper({receiver:_2b,super_class:objj_getClass("CPObject")},"init"); +if(_2b){ +_patternImage=_2d; +_cssString="url(\""+objj_msgSend(_patternImage,"filename")+"\")"; +} +return _2b; +} +}),new objj_method(sel_getUid("patternImage"),function(_2e,_2f){ +with(_2e){ +return _patternImage; +} +}),new objj_method(sel_getUid("alphaComponent"),function(_30,_31){ +with(_30){ +return _components[3]; +} +}),new objj_method(sel_getUid("blueComponent"),function(_32,_33){ +with(_32){ +return _components[2]; +} +}),new objj_method(sel_getUid("greenComponent"),function(_34,_35){ +with(_34){ +return _components[1]; +} +}),new objj_method(sel_getUid("redComponent"),function(_36,_37){ +with(_36){ +return _components[0]; +} +}),new objj_method(sel_getUid("components"),function(_38,_39){ +with(_38){ +return _components; +} +}),new objj_method(sel_getUid("colorWithAlphaComponent:"),function(_3a,_3b,_3c){ +with(_3a){ +var _3d=_components.slice(); +_3d[_3d.length-1]=_3c; +return objj_msgSend(objj_msgSend(objj_msgSend(_3a,"class"),"alloc"),"_initWithRGBA:",_3d); +} +}),new objj_method(sel_getUid("hsbComponents"),function(_3e,_3f){ +with(_3e){ +var red=ROUND(_components[_1]*255),_41=ROUND(_components[_2]*255),_42=ROUND(_components[_3]*255); +var max=MAX(red,_41,_42),min=MIN(red,_41,_42),_45=max-min; +var _46=max/255,_47=(max!=0)?_45/max:0; +var hue; +if(_47==0){ +hue=0; +}else{ +var rr=(max-red)/_45; +var gr=(max-_41)/_45; +var br=(max-_42)/_45; +if(red==max){ +hue=br-gr; +}else{ +if(_41==max){ +hue=2+rr-br; +}else{ +hue=4+gr-rr; +} +} +hue/=6; +if(hue<0){ +hue++; +} +} +return [ROUND(hue*360),ROUND(_47*100),ROUND(_46*100)]; +} +}),new objj_method(sel_getUid("cssString"),function(_4c,_4d){ +with(_4c){ +return _cssString; +} +}),new objj_method(sel_getUid("hexString"),function(_4e,_4f){ +with(_4e){ +return rgbToHex(objj_msgSend(_4e,"redComponent"),objj_msgSend(_4e,"greenComponent"),objj_msgSend(_4e,"blueComponent")); +} +}),new objj_method(sel_getUid("isEqual:"),function(_50,_51,_52){ +with(_50){ +if(!_52){ +return NO; +} +if(_52===_50){ +return YES; +} +return objj_msgSend(_52,"isKindOfClass:",CPColor)&&objj_msgSend(_52,"cssString")===objj_msgSend(_50,"cssString"); +} +}),new objj_method(sel_getUid("description"),function(_53,_54){ +with(_53){ +return objj_msgSendSuper({receiver:_53,super_class:objj_getClass("CPObject")},"description")+" "+objj_msgSend(_53,"cssString"); +} +})]); +class_addMethods(_14,[new objj_method(sel_getUid("colorWithRed:green:blue:alpha:"),function(_55,_56,red,_58,_59,_5a){ +with(_55){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[red,_58,_59,_5a]); +} +}),new objj_method(sel_getUid("colorWithCalibratedRed:green:blue:alpha:"),function(_5b,_5c,red,_5e,_5f,_60){ +with(_5b){ +return objj_msgSend(_5b,"colorWithRed:green:blue:alpha:",red,_5e,_5f,_60); +} +}),new objj_method(sel_getUid("colorWithWhite:alpha:"),function(_61,_62,_63,_64){ +with(_61){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[_63,_63,_63,_64]); +} +}),new objj_method(sel_getUid("colorWithCalibratedWhite:alpha:"),function(_65,_66,_67,_68){ +with(_65){ +return objj_msgSend(_65,"colorWithWhite:alpha:",_67,_68); +} +}),new objj_method(sel_getUid("colorWithHue:saturation:brightness:"),function(_69,_6a,hue,_6c,_6d){ +with(_69){ +return objj_msgSend(_69,"colorWithHue:saturation:brightness:alpha:",hue,_6c,_6d,1); +} +}),new objj_method(sel_getUid("colorWithHue:saturation:brightness:alpha:"),function(_6e,_6f,hue,_71,_72,_73){ +with(_6e){ +if(_71===0){ +return objj_msgSend(CPColor,"colorWithCalibratedWhite:alpha:",_72/100,_73); +} +var f=hue%60,p=(_72*(100-_71))/10000,q=(_72*(6000-_71*f))/600000,t=(_72*(6000-_71*(60-f)))/600000,b=_72/100; +switch(FLOOR(hue/60)){ +case 0: +return objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",b,t,p,_73); +case 1: +return objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",q,b,p,_73); +case 2: +return objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",p,b,t,_73); +case 3: +return objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",p,q,b,_73); +case 4: +return objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",t,p,b,_73); +case 5: +return objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",b,p,q,_73); +} +} +}),new objj_method(sel_getUid("colorWithHexString:"),function(_79,_7a,hex){ +with(_79){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",hexToRGB(hex)); +} +}),new objj_method(sel_getUid("blackColor"),function(_7c,_7d){ +with(_7c){ +if(!_8){ +_8=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[0,0,0,1]); +} +return _8; +} +}),new objj_method(sel_getUid("blueColor"),function(_7e,_7f){ +with(_7e){ +if(!_b){ +_b=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[0,0,1,1]); +} +return _b; +} +}),new objj_method(sel_getUid("darkGrayColor"),function(_80,_81){ +with(_80){ +if(!_f){ +_f=objj_msgSend(CPColor,"colorWithCalibratedWhite:alpha:",1/3,1); +} +return _f; +} +}),new objj_method(sel_getUid("grayColor"),function(_82,_83){ +with(_82){ +if(!_d){ +_d=objj_msgSend(CPColor,"colorWithCalibratedWhite:alpha:",0.5,1); +} +return _d; +} +}),new objj_method(sel_getUid("greenColor"),function(_84,_85){ +with(_84){ +if(!_a){ +_a=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[0,1,0,1]); +} +return _a; +} +}),new objj_method(sel_getUid("lightGrayColor"),function(_86,_87){ +with(_86){ +if(!_e){ +_e=objj_msgSend(CPColor,"colorWithCalibratedWhite:alpha:",2/3,1); +} +return _e; +} +}),new objj_method(sel_getUid("redColor"),function(_88,_89){ +with(_88){ +if(!_9){ +_9=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[1,0,0,1]); +} +return _9; +} +}),new objj_method(sel_getUid("whiteColor"),function(_8a,_8b){ +with(_8a){ +if(!_10){ +_10=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[1,1,1,1]); +} +return _10; +} +}),new objj_method(sel_getUid("yellowColor"),function(_8c,_8d){ +with(_8c){ +if(!_c){ +_c=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[1,1,0,1]); +} +return _c; +} +}),new objj_method(sel_getUid("shadowColor"),function(_8e,_8f){ +with(_8e){ +if(!_11){ +_11=objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[0,0,0,1/3]); +} +return _11; +} +}),new objj_method(sel_getUid("clearColor"),function(_90,_91){ +with(_90){ +if(!_12){ +_12=objj_msgSend(_90,"colorWithCalibratedWhite:alpha:",0,0); +} +return _12; +} +}),new objj_method(sel_getUid("colorWithPatternImage:"),function(_92,_93,_94){ +with(_92){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithPatternImage:",_94); +} +}),new objj_method(sel_getUid("colorWithCSSString:"),function(_95,_96,_97){ +with(_95){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithCSSString:",_97); +} +})]); +var _13=objj_getClass("CPColor"); +if(!_13){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPColor\"")); +} +var _14=_13.isa; +class_addMethods(_13,[new objj_method(sel_getUid("set"),function(_98,_99){ +with(_98){ +objj_msgSend(_98,"setFill"); +objj_msgSend(_98,"setStroke"); +} +}),new objj_method(sel_getUid("setFill"),function(_9a,_9b){ +with(_9a){ +var ctx=objj_msgSend(objj_msgSend(CPGraphicsContext,"currentContext"),"graphicsPort"); +CGContextSetFillColor(ctx,_9a); +} +}),new objj_method(sel_getUid("setStroke"),function(_9d,_9e){ +with(_9d){ +var ctx=objj_msgSend(objj_msgSend(CPGraphicsContext,"currentContext"),"graphicsPort"); +CGContextSetStrokeColor(ctx,_9d); +} +})]); +var _a0="CPColorComponentsKey",_a1="CPColorPatternImageKey"; +var _13=objj_getClass("CPColor"); +if(!_13){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPColor\"")); +} +var _14=_13.isa; +class_addMethods(_13,[new objj_method(sel_getUid("initWithCoder:"),function(_a2,_a3,_a4){ +with(_a2){ +if(objj_msgSend(_a4,"containsValueForKey:",_a1)){ +return objj_msgSend(_a2,"_initWithPatternImage:",objj_msgSend(_a4,"decodeObjectForKey:",_a1)); +} +return objj_msgSend(_a2,"_initWithRGBA:",objj_msgSend(_a4,"decodeObjectForKey:",_a0)); +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_a5,_a6,_a7){ +with(_a5){ +if(_patternImage){ +objj_msgSend(_a7,"encodeObject:forKey:",_patternImage,_a1); +}else{ +objj_msgSend(_a7,"encodeObject:forKey:",_components,_a0); +} +} +})]); +var _a8="0123456789ABCDEF"; +hexToRGB=function(hex){ +if(hex.length==3){ +hex=hex.charAt(0)+hex.charAt(0)+hex.charAt(1)+hex.charAt(1)+hex.charAt(2)+hex.charAt(2); +} +if(hex.length!=6){ +return null; +} +hex=hex.toUpperCase(); +for(var i=0;i=0;i--){ +_b0[i]=_ae&255; +_ae=_ae>>8; +} +return _b0; +}; +rgbToHex=function(r,g,b){ +return byteToHex(r)+byteToHex(g)+byteToHex(b); +}; +byteToHex=function(n){ +if(!n||isNaN(n)){ +return "00"; +} +n=ROUND(MIN(255,MAX(0,256*n))); +return _a8.charAt((n-n%16)/16)+_a8.charAt(n%16); +}; +p;14;CPColorPanel.ji;10;CPButton.ji;10;CPCookie.ji;9;CPPanel.ji;8;CPView.jc;16229; +CPColorPanelColorDidChangeNotification="CPColorPanelColorDidChangeNotification"; +var _1=20,_2=32,_3=14,_4=32,_5=12; +var _6=nil,_7=[]; +CPWheelColorPickerMode=1; +CPSliderColorPickerMode=2; +CPColorPickerViewWidth=265,CPColorPickerViewHeight=370; +var _8=objj_allocateClassPair(CPPanel,"CPColorPanel"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_toolbar"),new objj_ivar("_swatchView"),new objj_ivar("_previewView"),new objj_ivar("_opacitySlider"),new objj_ivar("_colorPickers"),new objj_ivar("_currentView"),new objj_ivar("_activePicker"),new objj_ivar("_color"),new objj_ivar("_target"),new objj_ivar("_action"),new objj_ivar("_mode")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("init"),function(_a,_b){ +with(_a){ +_a=objj_msgSendSuper({receiver:_a,super_class:objj_getClass("CPPanel")},"initWithContentRect:styleMask:",CGRectMake(500,50,219,370),(CPTitledWindowMask|CPClosableWindowMask|CPResizableWindowMask)); +if(_a){ +objj_msgSend(objj_msgSend(_a,"contentView"),"setBackgroundColor:",objj_msgSend(CPColor,"colorWithWhite:alpha:",0.95,1)); +objj_msgSend(_a,"setTitle:","Color Panel"); +objj_msgSend(_a,"setLevel:",CPFloatingWindowLevel); +objj_msgSend(_a,"setFloatingPanel:",YES); +objj_msgSend(_a,"setBecomesKeyOnlyIfNeeded:",YES); +objj_msgSend(_a,"setMinSize:",CGSizeMake(219,342)); +objj_msgSend(_a,"setMaxSize:",CGSizeMake(323,537)); +} +return _a; +} +}),new objj_method(sel_getUid("setColor:"),function(_c,_d,_e){ +with(_c){ +_color=_e; +objj_msgSend(_previewView,"setBackgroundColor:",_color); +objj_msgSend(CPApp,"sendAction:to:from:",sel_getUid("changeColor:"),nil,_c); +if(_target&&_action){ +objj_msgSend(CPApp,"sendAction:to:from:",_action,_target,_c); +} +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPColorPanelColorDidChangeNotification,_c); +objj_msgSend(_activePicker,"setColor:",_color); +objj_msgSend(_opacitySlider,"setFloatValue:",objj_msgSend(_color,"alphaComponent")); +} +}),new objj_method(sel_getUid("setColor:updatePicker:"),function(_f,_10,_11,_12){ +with(_f){ +objj_msgSend(_f,"setColor:",_11); +if(_12){ +objj_msgSend(_activePicker,"setColor:",_color); +} +} +}),new objj_method(sel_getUid("color"),function(_13,_14){ +with(_13){ +return _color; +} +}),new objj_method(sel_getUid("opacity"),function(_15,_16){ +with(_15){ +return objj_msgSend(_opacitySlider,"floatValue"); +} +}),new objj_method(sel_getUid("setTarget:"),function(_17,_18,_19){ +with(_17){ +_target=_19; +} +}),new objj_method(sel_getUid("target"),function(_1a,_1b){ +with(_1a){ +return _target; +} +}),new objj_method(sel_getUid("setAction:"),function(_1c,_1d,_1e){ +with(_1c){ +_action=_1e; +} +}),new objj_method(sel_getUid("action"),function(_1f,_20){ +with(_1f){ +return _action; +} +}),new objj_method(sel_getUid("setMode:"),function(_21,_22,_23){ +with(_21){ +_mode=_23; +} +}),new objj_method(sel_getUid("_setPicker:"),function(_24,_25,_26){ +with(_24){ +var _27=_colorPickers[objj_msgSend(_26,"tag")],_28=objj_msgSend(_27,"provideNewView:",NO); +if(!_28){ +_28=objj_msgSend(_27,"provideNewView:",YES); +} +if(_28==_currentView){ +return; +} +if(_currentView){ +objj_msgSend(_28,"setFrame:",objj_msgSend(_currentView,"frame")); +}else{ +var _29=(_2+10+_1+5+_3+32),_2a=objj_msgSend(objj_msgSend(_24,"contentView"),"bounds"); +objj_msgSend(_28,"setFrameSize:",CPSizeMake(_2a.size.width-10,_2a.size.height-_29)); +objj_msgSend(_28,"setFrameOrigin:",CPPointMake(5,_29)); +} +objj_msgSend(_currentView,"removeFromSuperview"); +objj_msgSend(objj_msgSend(_24,"contentView"),"addSubview:",_28); +_currentView=_28; +_activePicker=_27; +objj_msgSend(_27,"setColor:",objj_msgSend(_24,"color")); +} +}),new objj_method(sel_getUid("mode"),function(_2b,_2c){ +with(_2b){ +return _mode; +} +}),new objj_method(sel_getUid("orderFront:"),function(_2d,_2e,_2f){ +with(_2d){ +objj_msgSend(_2d,"_loadContentsIfNecessary"); +objj_msgSendSuper({receiver:_2d,super_class:objj_getClass("CPPanel")},"orderFront:",_2f); +} +}),new objj_method(sel_getUid("_loadContentsIfNecessary"),function(_30,_31){ +with(_30){ +if(_toolbar){ +return; +} +if(!_color){ +_color=objj_msgSend(CPColor,"whiteColor"); +} +_colorPickers=[]; +var _32=objj_msgSend(_7,"count"); +for(var i=0;i<_32;i++){ +var _34=_7[i],_35=objj_msgSend(objj_msgSend(_34,"alloc"),"initWithPickerMask:colorPanel:",0,_30); +_colorPickers.push(_35); +} +var _36=objj_msgSend(_30,"contentView"),_37=objj_msgSend(_36,"bounds"); +_toolbar=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,6,CGRectGetWidth(_37),_2)); +objj_msgSend(_toolbar,"setAutoresizingMask:",CPViewWidthSizable); +var _38=_32*_4+(_32-1)*_5,_39=(CGRectGetWidth(_37)-_38)/2,_3a=nil; +for(var i=0;i<_32;i++){ +var _3b=objj_msgSend(_colorPickers[i],"provideNewButtonImage"),_3c=objj_msgSend(_colorPickers[i],"provideNewAlternateButtonImage"),_3d=objj_msgSend(objj_msgSend(CPButton,"alloc"),"initWithFrame:",CGRectMake(_39+i*(_4+_5),0,_4,_4)); +objj_msgSend(_3d,"setTag:",i); +objj_msgSend(_3d,"setTarget:",_30); +objj_msgSend(_3d,"setAction:",sel_getUid("_setPicker:")); +objj_msgSend(_3d,"setBordered:",NO); +objj_msgSend(_3d,"setAutoresizingMask:",CPViewMinXMargin|CPViewMaxXMargin); +objj_msgSend(_3d,"setImage:",_3b); +objj_msgSend(_3d,"setAlternateImage:",_3c); +objj_msgSend(_toolbar,"addSubview:",_3d); +if(!_3a){ +_3a=_3d; +} +} +var _3e=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(76,_2+10,CGRectGetWidth(_37)-86,_1)); +_previewView=objj_msgSend(objj_msgSend(_CPColorPanelPreview,"alloc"),"initWithFrame:",CGRectInset(objj_msgSend(_3e,"bounds"),2,2)); +objj_msgSend(_previewView,"setColorPanel:",_30); +objj_msgSend(_previewView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_3e,"setBackgroundColor:",objj_msgSend(CPColor,"colorWithWhite:alpha:",0.8,1)); +objj_msgSend(_3e,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_3e,"addSubview:",_previewView); +var _3f=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(10,_2+10,60,15)); +objj_msgSend(_3f,"setStringValue:","Preview:"); +objj_msgSend(_3f,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(_3f,"setAlignment:",CPRightTextAlignment); +var _40=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(76,_2+10+_1+5,CGRectGetWidth(_37)-86,_3+2)); +objj_msgSend(_40,"setBackgroundColor:",objj_msgSend(CPColor,"colorWithWhite:alpha:",0.8,1)); +objj_msgSend(_40,"setAutoresizingMask:",CPViewWidthSizable); +_swatchView=objj_msgSend(objj_msgSend(_CPColorPanelSwatches,"alloc"),"initWithFrame:",CGRectInset(objj_msgSend(_40,"bounds"),1,1)); +objj_msgSend(_swatchView,"setColorPanel:",_30); +objj_msgSend(_swatchView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_40,"addSubview:",_swatchView); +var _41=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(10,_2+8+_1+6,60,15)); +objj_msgSend(_41,"setStringValue:","Swatches:"); +objj_msgSend(_41,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(_41,"setAlignment:",CPRightTextAlignment); +var _42=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(10,_2+_1+35,60,20)); +objj_msgSend(_42,"setStringValue:","Opacity:"); +objj_msgSend(_42,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(_42,"setAlignment:",CPRightTextAlignment); +_opacitySlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CGRectMake(76,_2+_1+34,CGRectGetWidth(_37)-86,20)); +objj_msgSend(_opacitySlider,"setMinValue:",0); +objj_msgSend(_opacitySlider,"setMaxValue:",1); +objj_msgSend(_opacitySlider,"setTarget:",_30); +objj_msgSend(_opacitySlider,"setAction:",sel_getUid("setOpacity:")); +objj_msgSend(_36,"addSubview:",_toolbar); +objj_msgSend(_36,"addSubview:",_3e); +objj_msgSend(_36,"addSubview:",_3f); +objj_msgSend(_36,"addSubview:",_40); +objj_msgSend(_36,"addSubview:",_41); +objj_msgSend(_36,"addSubview:",_42); +objj_msgSend(_36,"addSubview:",_opacitySlider); +_target=nil; +_action=nil; +_activePicker=nil; +objj_msgSend(_previewView,"setBackgroundColor:",_color); +if(_3a){ +objj_msgSend(_30,"_setPicker:",_3a); +} +} +}),new objj_method(sel_getUid("setOpacity:"),function(_43,_44,_45){ +with(_43){ +var _46=objj_msgSend(objj_msgSend(_43,"color"),"components"),_47=objj_msgSend(_45,"floatValue"); +objj_msgSend(_43,"setColor:updatePicker:",objj_msgSend(_color,"colorWithAlphaComponent:",_47),YES); +} +})]); +class_addMethods(_9,[new objj_method(sel_getUid("provideColorPickerClass:"),function(_48,_49,_4a){ +with(_48){ +_7.push(_4a); +} +}),new objj_method(sel_getUid("sharedColorPanel"),function(_4b,_4c){ +with(_4b){ +if(!_6){ +_6=objj_msgSend(objj_msgSend(CPColorPanel,"alloc"),"init"); +} +return _6; +} +}),new objj_method(sel_getUid("setPickerMode:"),function(_4d,_4e,_4f){ +with(_4d){ +var _50=objj_msgSend(CPColorPanel,"sharedColorPanel"); +objj_msgSend(_50,"setMode:",_4f); +} +})]); +CPColorDragType="CPColorDragType"; +var _51="CPColorPanelSwatchesCookie"; +var _8=objj_allocateClassPair(CPView,"_CPColorPanelSwatches"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_swatches"),new objj_ivar("_dragColor"),new objj_ivar("_colorPanel"),new objj_ivar("_swatchCookie")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("initWithFrame:"),function(_52,_53,_54){ +with(_52){ +_52=objj_msgSendSuper({receiver:_52,super_class:objj_getClass("CPView")},"initWithFrame:",_54); +objj_msgSend(_52,"setBackgroundColor:",objj_msgSend(CPColor,"grayColor")); +objj_msgSend(_52,"registerForDraggedTypes:",objj_msgSend(CPArray,"arrayWithObjects:",CPColorDragType)); +var _55=objj_msgSend(CPColor,"whiteColor"); +_swatchCookie=objj_msgSend(objj_msgSend(CPCookie,"alloc"),"initWithName:",_51); +var _56=objj_msgSend(_52,"startingColorList"); +_swatches=[]; +for(var i=0;i<50;i++){ +var _58=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(13*i+1,1,12,12)),_59=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectInset(objj_msgSend(_58,"bounds"),1,1)); +objj_msgSend(_58,"setBackgroundColor:",_55); +objj_msgSend(_59,"setBackgroundColor:",(i<_56.length)?_56[i]:_55); +objj_msgSend(_58,"addSubview:",_59); +objj_msgSend(_52,"addSubview:",_58); +_swatches.push(_58); +} +return _52; +} +}),new objj_method(sel_getUid("isOpaque"),function(_5a,_5b){ +with(_5a){ +return YES; +} +}),new objj_method(sel_getUid("startingColorList"),function(_5c,_5d){ +with(_5c){ +var _5e=objj_msgSend(_swatchCookie,"value"); +if(_5e==""){ +return [objj_msgSend(CPColor,"blackColor"),objj_msgSend(CPColor,"darkGrayColor"),objj_msgSend(CPColor,"grayColor"),objj_msgSend(CPColor,"lightGrayColor"),objj_msgSend(CPColor,"whiteColor"),objj_msgSend(CPColor,"redColor"),objj_msgSend(CPColor,"greenColor"),objj_msgSend(CPColor,"blueColor"),objj_msgSend(CPColor,"yellowColor")]; +} +var _5e=eval(_5e); +var _5f=[]; +for(var i=0;i<_5e.length;i++){ +_5f.push(objj_msgSend(CPColor,"colorWithHexString:",_5e[i])); +} +return _5f; +} +}),new objj_method(sel_getUid("saveColorList"),function(_61,_62){ +with(_61){ +var _63=[]; +for(var i=0;i<_swatches.length;i++){ +_63.push(objj_msgSend(objj_msgSend(objj_msgSend(_swatches[i],"subviews")[0],"backgroundColor"),"hexString")); +} +var _65=new Date(); +_65.setYear(2019); +objj_msgSend(_swatchCookie,"setValue:expires:domain:",JSON.stringify(_63),_65,nil); +} +}),new objj_method(sel_getUid("setColorPanel:"),function(_66,_67,_68){ +with(_66){ +_colorPanel=_68; +} +}),new objj_method(sel_getUid("colorPanel"),function(_69,_6a){ +with(_69){ +return _colorPanel; +} +}),new objj_method(sel_getUid("colorAtIndex:"),function(_6b,_6c,_6d){ +with(_6b){ +return objj_msgSend(objj_msgSend(_swatches[_6d],"subviews")[0],"backgroundColor"); +} +}),new objj_method(sel_getUid("setColor:atIndex:"),function(_6e,_6f,_70,_71){ +with(_6e){ +objj_msgSend(objj_msgSend(_swatches[_71],"subviews")[0],"setBackgroundColor:",_70); +objj_msgSend(_6e,"saveColorList"); +} +}),new objj_method(sel_getUid("mouseUp:"),function(_72,_73,_74){ +with(_72){ +var _75=objj_msgSend(_72,"convertPoint:fromView:",objj_msgSend(_74,"locationInWindow"),nil); +if(_75.x>objj_msgSend(_72,"bounds").size.width-1||_75.x<1){ +return NO; +} +objj_msgSend(_colorPanel,"setColor:updatePicker:",objj_msgSend(_72,"colorAtIndex:",FLOOR(_75.x/13)),YES); +} +}),new objj_method(sel_getUid("mouseDragged:"),function(_76,_77,_78){ +with(_76){ +var _79=objj_msgSend(_76,"convertPoint:fromView:",objj_msgSend(_78,"locationInWindow"),nil); +if(_79.x>objj_msgSend(_76,"bounds").size.width-1||_79.x<1){ +return NO; +} +objj_msgSend(objj_msgSend(CPPasteboard,"pasteboardWithName:",CPDragPboard),"declareTypes:owner:",objj_msgSend(CPArray,"arrayWithObject:",CPColorDragType),_76); +var _7a=_swatches[FLOOR(_79.x/13)]; +_dragColor=objj_msgSend(objj_msgSend(_7a,"subviews")[0],"backgroundColor"); +var _7b=CPRectCreateCopy(objj_msgSend(_7a,"bounds")); +var _7c=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",_7b); +dragFillView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectInset(_7b,1,1)); +objj_msgSend(_7c,"setBackgroundColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(dragFillView,"setBackgroundColor:",_dragColor); +objj_msgSend(_7c,"addSubview:",dragFillView); +objj_msgSend(_76,"dragView:at:offset:event:pasteboard:source:slideBack:",_7c,CPPointMake(_79.x-_7b.size.width/2,_79.y-_7b.size.height/2),CPPointMake(0,0),_78,nil,_76,YES); +} +}),new objj_method(sel_getUid("pasteboard:provideDataForType:"),function(_7d,_7e,_7f,_80){ +with(_7d){ +if(_80==CPColorDragType){ +objj_msgSend(_7f,"setData:forType:",_dragColor,_80); +} +} +}),new objj_method(sel_getUid("performDragOperation:"),function(_81,_82,_83){ +with(_81){ +var _84=objj_msgSend(_81,"convertPoint:fromView:",objj_msgSend(_83,"draggingLocation"),nil),_85=objj_msgSend(_83,"draggingPasteboard"),_86=nil; +if(!objj_msgSend(_85,"availableTypeFromArray:",[CPColorDragType])||_84.x>objj_msgSend(_81,"bounds").size.width-1||_84.x<1){ +return NO; +} +objj_msgSend(_81,"setColor:atIndex:",objj_msgSend(_85,"dataForType:",CPColorDragType),FLOOR(_84.x/13)); +} +})]); +var _8=objj_allocateClassPair(CPView,"_CPColorPanelPreview"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_colorPanel")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("initWithFrame:"),function(_87,_88,_89){ +with(_87){ +_87=objj_msgSendSuper({receiver:_87,super_class:objj_getClass("CPView")},"initWithFrame:",_89); +objj_msgSend(_87,"registerForDraggedTypes:",objj_msgSend(CPArray,"arrayWithObjects:",CPColorDragType)); +return _87; +} +}),new objj_method(sel_getUid("setColorPanel:"),function(_8a,_8b,_8c){ +with(_8a){ +_colorPanel=_8c; +} +}),new objj_method(sel_getUid("colorPanel"),function(_8d,_8e){ +with(_8d){ +return _colorPanel; +} +}),new objj_method(sel_getUid("performDragOperation:"),function(_8f,_90,_91){ +with(_8f){ +var _92=objj_msgSend(_91,"draggingPasteboard"); +if(!objj_msgSend(_92,"availableTypeFromArray:",[CPColorDragType])){ +return NO; +} +var _93=objj_msgSend(_92,"dataForType:",CPColorDragType); +objj_msgSend(_colorPanel,"setColor:updatePicker:",_93,YES); +} +}),new objj_method(sel_getUid("isOpaque"),function(_94,_95){ +with(_94){ +return YES; +} +}),new objj_method(sel_getUid("mouseDragged:"),function(_96,_97,_98){ +with(_96){ +var _99=objj_msgSend(_96,"convertPoint:fromView:",objj_msgSend(_98,"locationInWindow"),nil); +objj_msgSend(objj_msgSend(CPPasteboard,"pasteboardWithName:",CPDragPboard),"declareTypes:owner:",objj_msgSend(CPArray,"arrayWithObject:",CPColorDragType),_96); +var _9a=CPRectMake(0,0,15,15); +var _9b=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",_9a); +dragFillView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectInset(_9a,1,1)); +objj_msgSend(_9b,"setBackgroundColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(dragFillView,"setBackgroundColor:",objj_msgSend(_96,"backgroundColor")); +objj_msgSend(_9b,"addSubview:",dragFillView); +objj_msgSend(_96,"dragView:at:offset:event:pasteboard:source:slideBack:",_9b,CPPointMake(_99.x-_9a.size.width/2,_99.y-_9a.size.height/2),CPPointMake(0,0),_98,nil,_96,YES); +} +}),new objj_method(sel_getUid("pasteboard:provideDataForType:"),function(_9c,_9d,_9e,_9f){ +with(_9c){ +if(_9f==CPColorDragType){ +objj_msgSend(_9e,"setData:forType:",objj_msgSend(_9c,"backgroundColor"),_9f); +} +} +})]); +i;15;CPColorPicker.ji;21;CPSliderColorPicker.jc;155; +objj_msgSend(CPColorPanel,"provideColorPickerClass:",CPColorWheelColorPicker); +objj_msgSend(CPColorPanel,"provideColorPickerClass:",CPSliderColorPicker); +p;15;CPColorPicker.jI;21;Foundation/CPObject.ji;14;CPColorPanel.jc;10196; +var _1=objj_allocateClassPair(CPObject,"CPColorPicker"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_panel"),new objj_ivar("_mask")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithPickerMask:colorPanel:"),function(_3,_4,_5,_6){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +_panel=_6; +_mask=_5; +return _3; +} +}),new objj_method(sel_getUid("colorPanel"),function(_7,_8){ +with(_7){ +return _panel; +} +}),new objj_method(sel_getUid("provideNewButtonImage"),function(_9,_a){ +with(_9){ +return nil; +} +}),new objj_method(sel_getUid("setMode:"),function(_b,_c,_d){ +with(_b){ +return; +} +}),new objj_method(sel_getUid("setColor:"),function(_e,_f,_10){ +with(_e){ +return; +} +})]); +var _1=objj_allocateClassPair(CPColorPicker,"CPColorWheelColorPicker"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_pickerView"),new objj_ivar("_brightnessSlider"),new objj_ivar("_hueSaturationView"),new objj_ivar("_cachedColor")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithPickerMask:colorPanel:"),function(_11,_12,_13,_14){ +with(_11){ +return objj_msgSendSuper({receiver:_11,super_class:objj_getClass("CPColorPicker")},"initWithPickerMask:colorPanel:",_13,_14); +} +}),new objj_method(sel_getUid("initView"),function(_15,_16){ +with(_15){ +aFrame=CPRectMake(0,0,CPColorPickerViewWidth,CPColorPickerViewHeight); +_pickerView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",aFrame); +objj_msgSend(_pickerView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +_brightnessSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CGRectMake(0,(aFrame.size.height-34),aFrame.size.width,15)); +objj_msgSend(_brightnessSlider,"setValue:forThemeAttribute:",15,"track-width"); +objj_msgSend(_brightnessSlider,"setValue:forThemeAttribute:",objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPColorPicker,"class")),"pathForResource:","brightness_bar.png"))),"track-color"); +objj_msgSend(_brightnessSlider,"setMinValue:",0); +objj_msgSend(_brightnessSlider,"setMaxValue:",100); +objj_msgSend(_brightnessSlider,"setFloatValue:",100); +objj_msgSend(_brightnessSlider,"setTarget:",_15); +objj_msgSend(_brightnessSlider,"setAction:",sel_getUid("brightnessSliderDidChange:")); +objj_msgSend(_brightnessSlider,"setAutoresizingMask:",CPViewWidthSizable|CPViewMinYMargin); +_hueSaturationView=objj_msgSend(objj_msgSend(__CPColorWheel,"alloc"),"initWithFrame:",CPRectMake(0,0,aFrame.size.width,aFrame.size.height-38)); +objj_msgSend(_hueSaturationView,"setDelegate:",_15); +objj_msgSend(_hueSaturationView,"setAutoresizingMask:",(CPViewWidthSizable|CPViewHeightSizable)); +objj_msgSend(_pickerView,"addSubview:",_hueSaturationView); +objj_msgSend(_pickerView,"addSubview:",_brightnessSlider); +} +}),new objj_method(sel_getUid("brightnessSliderDidChange:"),function(_17,_18,_19){ +with(_17){ +objj_msgSend(_17,"updateColor"); +} +}),new objj_method(sel_getUid("colorWheelDidChange:"),function(_1a,_1b,_1c){ +with(_1a){ +objj_msgSend(_1a,"updateColor"); +} +}),new objj_method(sel_getUid("updateColor"),function(_1d,_1e){ +with(_1d){ +var hue=objj_msgSend(_hueSaturationView,"angle"),_20=objj_msgSend(_hueSaturationView,"distance"),_21=objj_msgSend(_brightnessSlider,"floatValue"); +objj_msgSend(_hueSaturationView,"setWheelBrightness:",_21/100); +objj_msgSend(_brightnessSlider,"setBackgroundColor:",objj_msgSend(CPColor,"colorWithHue:saturation:brightness:",hue,_20,100)); +var _22=objj_msgSend(_1d,"colorPanel"),_23=objj_msgSend(_22,"opacity"); +_cachedColor=objj_msgSend(CPColor,"colorWithHue:saturation:brightness:alpha:",hue,_20,_21,_23); +objj_msgSend(objj_msgSend(_1d,"colorPanel"),"setColor:",_cachedColor); +} +}),new objj_method(sel_getUid("supportsMode:"),function(_24,_25,_26){ +with(_24){ +return (_26==CPWheelColorPickerMode)?YES:NO; +} +}),new objj_method(sel_getUid("currentMode"),function(_27,_28){ +with(_27){ +return CPWheelColorPickerMode; +} +}),new objj_method(sel_getUid("provideNewView:"),function(_29,_2a,_2b){ +with(_29){ +if(_2b){ +objj_msgSend(_29,"initView"); +} +return _pickerView; +} +}),new objj_method(sel_getUid("setColor:"),function(_2c,_2d,_2e){ +with(_2c){ +if(objj_msgSend(_2e,"isEqual:",_cachedColor)){ +return; +} +var hsb=objj_msgSend(_2e,"hsbComponents"); +objj_msgSend(_hueSaturationView,"setPositionToColor:",_2e); +objj_msgSend(_brightnessSlider,"setFloatValue:",hsb[2]); +objj_msgSend(_hueSaturationView,"setWheelBrightness:",hsb[2]/100); +objj_msgSend(_brightnessSlider,"setBackgroundColor:",objj_msgSend(CPColor,"colorWithHue:saturation:brightness:",hsb[0],hsb[1],100)); +} +}),new objj_method(sel_getUid("provideNewButtonImage"),function(_30,_31){ +with(_30){ +return objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",CPColorPicker),"pathForResource:","wheel_button.png"),CGSizeMake(32,32)); +} +}),new objj_method(sel_getUid("provideNewAlternateButtonImage"),function(_32,_33){ +with(_32){ +return objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",CPColorPicker),"pathForResource:","wheel_button_h.png"),CGSizeMake(32,32)); +} +})]); +var _1=objj_allocateClassPair(CPView,"__CPColorWheel"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_wheelImage"),new objj_ivar("_blackWheelImage"),new objj_ivar("_crosshair"),new objj_ivar("_delegate"),new objj_ivar("_angle"),new objj_ivar("_distance"),new objj_ivar("_radius")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_34,_35,_36){ +with(_34){ +_34=objj_msgSendSuper({receiver:_34,super_class:objj_getClass("CPView")},"initWithFrame:",_36); +var _37=objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",CPColorPicker),"pathForResource:","wheel.png"); +_wheelImage=new Image(); +_wheelImage.src=_37; +_wheelImage.style.position="absolute"; +_37=objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",CPColorPicker),"pathForResource:","wheel_black.png"); +_blackWheelImage=new Image(); +_blackWheelImage.src=_37; +_blackWheelImage.style.opacity="0"; +_blackWheelImage.style.filter="alpha(opacity=0)"; +_blackWheelImage.style.position="absolute"; +_DOMElement.appendChild(_wheelImage); +_DOMElement.appendChild(_blackWheelImage); +objj_msgSend(_34,"setWheelSize:",_36.size); +_crosshair=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(_radius-2,_radius-2,4,4)); +objj_msgSend(_crosshair,"setBackgroundColor:",objj_msgSend(CPColor,"blackColor")); +var _38=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectInset(objj_msgSend(_crosshair,"bounds"),1,1)); +objj_msgSend(_38,"setBackgroundColor:",objj_msgSend(CPColor,"whiteColor")); +objj_msgSend(_crosshair,"addSubview:",_38); +objj_msgSend(_34,"addSubview:",_crosshair); +return _34; +} +}),new objj_method(sel_getUid("setWheelBrightness:"),function(_39,_3a,_3b){ +with(_39){ +_blackWheelImage.style.opacity=1-_3b; +_blackWheelImage.style.filter="alpha(opacity="+(1-_3b)*100+")"; +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_3c,_3d,_3e){ +with(_3c){ +objj_msgSendSuper({receiver:_3c,super_class:objj_getClass("CPView")},"setFrameSize:",_3e); +objj_msgSend(_3c,"setWheelSize:",_3e); +} +}),new objj_method(sel_getUid("setWheelSize:"),function(_3f,_40,_41){ +with(_3f){ +var min=MIN(_41.width,_41.height); +_blackWheelImage.style.width=min; +_blackWheelImage.style.height=min; +_blackWheelImage.width=min; +_blackWheelImage.height=min; +_blackWheelImage.style.top=(_41.height-min)/2+"px"; +_blackWheelImage.style.left=(_41.width-min)/2+"px"; +_wheelImage.style.width=min; +_wheelImage.style.height=min; +_wheelImage.width=min; +_wheelImage.height=min; +_wheelImage.style.top=(_41.height-min)/2+"px"; +_wheelImage.style.left=(_41.width-min)/2+"px"; +_radius=min/2; +objj_msgSend(_3f,"setAngle:distance:",objj_msgSend(_3f,"degreesToRadians:",_angle),(_distance/100)*_radius); +} +}),new objj_method(sel_getUid("setDelegate:"),function(_43,_44,_45){ +with(_43){ +_delegate=_45; +} +}),new objj_method(sel_getUid("delegate"),function(_46,_47){ +with(_46){ +return _delegate; +} +}),new objj_method(sel_getUid("angle"),function(_48,_49){ +with(_48){ +return _angle; +} +}),new objj_method(sel_getUid("distance"),function(_4a,_4b){ +with(_4a){ +return _distance; +} +}),new objj_method(sel_getUid("mouseDown:"),function(_4c,_4d,_4e){ +with(_4c){ +objj_msgSend(_4c,"reposition:",_4e); +} +}),new objj_method(sel_getUid("mouseDragged:"),function(_4f,_50,_51){ +with(_4f){ +objj_msgSend(_4f,"reposition:",_51); +} +}),new objj_method(sel_getUid("reposition:"),function(_52,_53,_54){ +with(_52){ +var _55=objj_msgSend(_52,"bounds"),_56=objj_msgSend(_52,"convertPoint:fromView:",objj_msgSend(_54,"locationInWindow"),nil); +var _57=CGRectGetMidX(_55); +var _58=CGRectGetMidY(_55); +var _59=MIN(SQRT((_56.x-_57)*(_56.x-_57)+(_56.y-_58)*(_56.y-_58)),_radius); +var _5a=ATAN2(_56.y-_58,_56.x-_57); +objj_msgSend(_52,"setAngle:distance:",_5a,_59); +objj_msgSend(_delegate,"colorWheelDidChange:",_52); +} +}),new objj_method(sel_getUid("setAngle:distance:"),function(_5b,_5c,_5d,_5e){ +with(_5b){ +var _5f=objj_msgSend(_5b,"bounds"); +var _60=CGRectGetMidX(_5f); +var _61=CGRectGetMidY(_5f); +_angle=objj_msgSend(_5b,"radiansToDegrees:",_5d); +_distance=(_5e/_radius)*100; +objj_msgSend(_crosshair,"setFrameOrigin:",CPPointMake(COS(_5d)*_5e+_60-2,SIN(_5d)*_5e+_61-2)); +} +}),new objj_method(sel_getUid("setPositionToColor:"),function(_62,_63,_64){ +with(_62){ +var hsb=objj_msgSend(_64,"hsbComponents"),_66=objj_msgSend(_62,"bounds"); +var _67=objj_msgSend(_62,"degreesToRadians:",hsb[0]),_68=(hsb[1]/100)*_radius; +objj_msgSend(_62,"setAngle:distance:",_67,_68); +} +}),new objj_method(sel_getUid("radiansToDegrees:"),function(_69,_6a,_6b){ +with(_69){ +return ((-_6b/PI)*180+360)%360; +} +}),new objj_method(sel_getUid("degreesToRadians:"),function(_6c,_6d,_6e){ +with(_6c){ +return -(((_6e-360)/180)*PI); +} +})]); +p;13;CPColorWell.jI;21;Foundation/CPString.ji;8;CPView.ji;9;CPColor.ji;14;CPColorPanel.jc;5916; +var _1="_CPColorWellDidBecomeExclusiveNotification"; +var _2=objj_allocateClassPair(CPControl,"CPColorWell"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_active"),new objj_ivar("_bordered"),new objj_ivar("_color"),new objj_ivar("_wellView")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithFrame:"),function(_4,_5,_6){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPControl")},"initWithFrame:",_6); +if(_4){ +_active=NO; +_bordered=YES; +_color=objj_msgSend(CPColor,"whiteColor"); +objj_msgSend(_4,"drawBezelWithHighlight:",NO); +objj_msgSend(_4,"drawWellInside:",CGRectInset(objj_msgSend(_4,"bounds"),3,3)); +objj_msgSend(_4,"_registerForNotifications"); +} +return _4; +} +}),new objj_method(sel_getUid("_registerForNotifications"),function(_7,_8){ +with(_7){ +var _9=objj_msgSend(CPNotificationCenter,"defaultCenter"); +objj_msgSend(_9,"addObserver:selector:name:object:",_7,sel_getUid("colorWellDidBecomeExclusive:"),_1,nil); +objj_msgSend(_9,"addObserver:selector:name:object:",_7,sel_getUid("colorPanelWillClose:"),CPWindowWillCloseNotification,objj_msgSend(CPColorPanel,"sharedColorPanel")); +} +}),new objj_method(sel_getUid("isBordered"),function(_a,_b){ +with(_a){ +return _bordered; +} +}),new objj_method(sel_getUid("setBordered:"),function(_c,_d,_e){ +with(_c){ +if(_bordered==_e){ +return; +} +_bordered=_e; +objj_msgSend(_c,"drawWellInside:",CGRectInset(objj_msgSend(_c,"bounds"),3,3)); +} +}),new objj_method(sel_getUid("color"),function(_f,_10){ +with(_f){ +return _color; +} +}),new objj_method(sel_getUid("setColor:"),function(_11,_12,_13){ +with(_11){ +if(_color==_13){ +return; +} +_color=_13; +objj_msgSend(_11,"drawWellInside:",CGRectInset(objj_msgSend(_11,"bounds"),3,3)); +} +}),new objj_method(sel_getUid("takeColorFrom:"),function(_14,_15,_16){ +with(_14){ +objj_msgSend(_14,"setColor:",objj_msgSend(_16,"color")); +} +}),new objj_method(sel_getUid("activate:"),function(_17,_18,_19){ +with(_17){ +if(_19){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",_1,_17); +} +if(objj_msgSend(_17,"isActive")){ +return; +} +_active=YES; +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"addObserver:selector:name:object:",_17,sel_getUid("colorPanelDidChangeColor:"),CPColorPanelColorDidChangeNotification,objj_msgSend(CPColorPanel,"sharedColorPanel")); +} +}),new objj_method(sel_getUid("deactivate"),function(_1a,_1b){ +with(_1a){ +if(!objj_msgSend(_1a,"isActive")){ +return; +} +_active=NO; +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"removeObserver:name:object:",_1a,CPColorPanelColorDidChangeNotification,objj_msgSend(CPColorPanel,"sharedColorPanel")); +} +}),new objj_method(sel_getUid("isActive"),function(_1c,_1d){ +with(_1c){ +return _active; +} +}),new objj_method(sel_getUid("drawBezelWithHighlight:"),function(_1e,_1f,_20){ +with(_1e){ +} +}),new objj_method(sel_getUid("drawWellInside:"),function(_21,_22,_23){ +with(_21){ +if(!_wellView){ +_wellView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",_23); +objj_msgSend(_wellView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +objj_msgSend(_21,"addSubview:",_wellView); +}else{ +objj_msgSend(_wellView,"setFrame:",_23); +} +objj_msgSend(_wellView,"setBackgroundColor:",_color); +} +}),new objj_method(sel_getUid("colorPanelDidChangeColor:"),function(_24,_25,_26){ +with(_24){ +objj_msgSend(_24,"takeColorFrom:",objj_msgSend(_26,"object")); +objj_msgSend(_24,"sendAction:to:",objj_msgSend(_24,"action"),objj_msgSend(_24,"target")); +} +}),new objj_method(sel_getUid("colorWellDidBecomeExclusive:"),function(_27,_28,_29){ +with(_27){ +if(_27!=objj_msgSend(_29,"object")){ +objj_msgSend(_27,"deactivate"); +} +} +}),new objj_method(sel_getUid("colorPanelWillClose:"),function(_2a,_2b,_2c){ +with(_2a){ +objj_msgSend(_2a,"deactivate"); +} +}),new objj_method(sel_getUid("mouseDown:"),function(_2d,_2e,_2f){ +with(_2d){ +objj_msgSend(_2d,"drawBezelWithHighlight:",YES); +} +}),new objj_method(sel_getUid("mouseDragged:"),function(_30,_31,_32){ +with(_30){ +objj_msgSend(_30,"drawBezelWithHighlight:",CGRectContainsPoint(objj_msgSend(_30,"bounds"),objj_msgSend(_30,"convertPoint:fromView:",objj_msgSend(_32,"locationInWindow"),nil))); +} +}),new objj_method(sel_getUid("mouseUp:"),function(_33,_34,_35){ +with(_33){ +objj_msgSend(_33,"drawBezelWithHighlight:",NO); +if(!CGRectContainsPoint(objj_msgSend(_33,"bounds"),objj_msgSend(_33,"convertPoint:fromView:",objj_msgSend(_35,"locationInWindow"),nil))){ +return; +} +objj_msgSend(_33,"activate:",YES); +var _36=objj_msgSend(CPColorPanel,"sharedColorPanel"); +objj_msgSend(_36,"setColor:",_color); +objj_msgSend(_36,"orderFront:",_33); +} +})]); +var _37="CPColorWellColorKey",_38="CPColorWellBorderedKey"; +var _2=objj_getClass("CPColorWell"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPColorWell\"")); +} +var _3=_2.isa; +class_addMethods(_2,[new objj_method(sel_getUid("initWithCoder:"),function(_39,_3a,_3b){ +with(_39){ +_39=objj_msgSendSuper({receiver:_39,super_class:objj_getClass("CPControl")},"initWithCoder:",_3b); +if(_39){ +_active=NO; +_bordered=objj_msgSend(_3b,"decodeObjectForKey:",_38); +_color=objj_msgSend(_3b,"decodeObjectForKey:",_37); +objj_msgSend(_39,"drawBezelWithHighlight:",NO); +objj_msgSend(_39,"drawWellInside:",CGRectInset(objj_msgSend(_39,"bounds"),3,3)); +objj_msgSend(_39,"_registerForNotifications"); +} +return _39; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_3c,_3d,_3e){ +with(_3c){ +var _3f=_subviews; +_subviews=objj_msgSend(_subviews,"copy"); +objj_msgSend(_subviews,"removeObjectIdenticalTo:",_wellView); +objj_msgSendSuper({receiver:_3c,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_3e); +_subviews=_3f; +objj_msgSend(_3e,"encodeObject:forKey:",_color,_37); +objj_msgSend(_3e,"encodeObject:forKey:",_bordered,_38); +} +})]); +p;17;CPCompatibility.ji;9;CPEvent.jc;3005; +CPUnknownBrowserEngine=0; +CPGeckoBrowserEngine=1; +CPInternetExplorerBrowserEngine=2; +CPKHTMLBrowserEngine=3; +CPOperaBrowserEngine=4; +CPWebKitBrowserEngine=5; +CPCSSRGBAFeature=1<<5; +CPHTMLCanvasFeature=1<<6; +CPHTMLContentEditableFeature=1<<7; +CPJavascriptInnerTextFeature=1<<8; +CPJavascriptTextContentFeature=1<<9; +CPJavascriptClipboardEventsFeature=1<<10; +CPJavascriptClipboardAccessFeature=1<<11; +CPJavaScriptCanvasDrawFeature=1<<12; +CPJavaScriptCanvasTransformFeature=1<<13; +CPVMLFeature=1<<14; +CPJavascriptRemedialKeySupport=1<<15; +CPJavaScriptShadowFeature=1<<20; +CPJavaScriptNegativeMouseWheelValues=1<<22; +CPJavaScriptMouseWheelValues_8_15=1<<23; +CPOpacityRequiresFilterFeature=1<<24; +CPInputTypeCanBeChangedFeature=1<<25; +var _1="",_2=CPUnknownBrowserEngine,_3=0; +_3|=CPInputTypeCanBeChangedFeature; +if(typeof window!="undfined"&&typeof window.navigator!="undefined"){ +_1=window.navigator.userAgent; +} +if(window.opera){ +_2=CPOperaBrowserEngine; +_3|=CPJavaScriptCanvasDrawFeature; +}else{ +if(window.attachEvent){ +_2=CPInternetExplorerBrowserEngine; +_3|=CPVMLFeature; +_3|=CPJavascriptRemedialKeySupport; +_3|=CPJavaScriptShadowFeature; +_3|=CPOpacityRequiresFilterFeature; +_3&=~CPInputTypeCanBeChangedFeature; +}else{ +if(_1.indexOf("AppleWebKit/")!=-1){ +_2=CPWebKitBrowserEngine; +_3|=CPCSSRGBAFeature; +_3|=CPHTMLContentEditableFeature; +_3|=CPJavascriptClipboardEventsFeature; +_3|=CPJavascriptClipboardAccessFeature; +_3|=CPJavaScriptShadowFeature; +var _4=_1.indexOf("AppleWebKit/")+"AppleWebKit/".length,_5=_1.indexOf(" ",_4),_6=parseFloat(_1.substring(_4,_5),10); +if(_1.indexOf("Plainview")==-1&&_6>=525.14||_1.indexOf("Chrome")!=-1){ +_3|=CPJavascriptRemedialKeySupport; +} +}else{ +if(_1.indexOf("KHTML")!=-1){ +_2=CPKHTMLBrowserEngine; +}else{ +if(_1.indexOf("Gecko")!==-1){ +_2=CPGeckoBrowserEngine; +_3|=CPJavaScriptCanvasDrawFeature; +var _7=_1.indexOf("Firefox"),_6=(_7===-1)?2:parseFloat(_1.substring(_7+"Firefox".length+1)); +if(_6>=3){ +_3|=CPCSSRGBAFeature; +} +if(_6<3){ +_3|=CPJavaScriptMouseWheelValues_8_15; +} +} +} +} +} +} +if(typeof document!="undefined"){ +var _8=document.createElement("canvas"); +if(_8&&_8.getContext){ +_3|=CPHTMLCanvasFeature; +var _9=document.createElement("canvas").getContext("2d"); +if(_9&&_9.setTransform&&_9.transform){ +_3|=CPJavaScriptCanvasTransformFeature; +} +} +var _a=document.createElement("div"); +if(_a.innerText!=undefined){ +_3|=CPJavascriptInnerTextFeature; +}else{ +if(_a.textContent!=undefined){ +_3|=CPJavascriptTextContentFeature; +} +} +} +CPFeatureIsCompatible=function(_b){ +return _3&_b; +}; +CPBrowserIsEngine=function(_c){ +return _2==_c; +}; +if(_1.indexOf("Mac")!=-1){ +CPPlatformActionKeyMask=CPCommandKeyMask; +CPUndoKeyEquivalent="Z"; +CPRedoKeyEquivalent="Z"; +CPUndoKeyEquivalentModifierMask=CPCommandKeyMask; +CPRedoKeyEquivalentModifierMask=CPCommandKeyMask|CPShiftKeyMask; +}else{ +CPPlatformActionKeyMask=CPControlKeyMask; +CPUndoKeyEquivalent="Z"; +CPRedoKeyEquivalent="Y"; +CPUndoKeyEquivalentModifierMask=CPControlKeyMask; +CPRedoKeyEquivalentModifierMask=CPControlKeyMask; +} +p;11;CPControl.ji;8;CPFont.ji;10;CPShadow.ji;8;CPView.jc;17855; +CPLeftTextAlignment=0; +CPRightTextAlignment=1; +CPCenterTextAlignment=2; +CPJustifiedTextAlignment=3; +CPNaturalTextAlignment=4; +CPRegularControlSize=0; +CPSmallControlSize=1; +CPMiniControlSize=2; +CPControlNormalBackgroundColor="CPControlNormalBackgroundColor"; +CPControlSelectedBackgroundColor="CPControlSelectedBackgroundColor"; +CPControlHighlightedBackgroundColor="CPControlHighlightedBackgroundColor"; +CPControlDisabledBackgroundColor="CPControlDisabledBackgroundColor"; +CPControlTextDidBeginEditingNotification="CPControlTextDidBeginEditingNotification"; +CPControlTextDidChangeNotification="CPControlTextDidChangeNotification"; +CPControlTextDidEndEditingNotification="CPControlTextDidEndEditingNotification"; +var _1=objj_msgSend(CPColor,"blackColor"); +var _2=objj_allocateClassPair(CPView,"CPControl"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_value"),new objj_ivar("_target"),new objj_ivar("_action"),new objj_ivar("_sendActionOn"),new objj_ivar("_continuousTracking"),new objj_ivar("_trackingWasWithinFrame"),new objj_ivar("_trackingMouseDownFlags"),new objj_ivar("_previousTrackingLocation"),new objj_ivar("_ephemeralSubviewsForNames"),new objj_ivar("_ephereralSubviews"),new objj_ivar("_toolTip")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithFrame:"),function(_4,_5,_6){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPView")},"initWithFrame:",_6); +if(_4){ +_sendActionOn=CPLeftMouseUpMask; +_trackingMouseDownFlags=0; +} +return _4; +} +}),new objj_method(sel_getUid("setAction:"),function(_7,_8,_9){ +with(_7){ +_action=_9; +} +}),new objj_method(sel_getUid("action"),function(_a,_b){ +with(_a){ +return _action; +} +}),new objj_method(sel_getUid("setTarget:"),function(_c,_d,_e){ +with(_c){ +_target=_e; +} +}),new objj_method(sel_getUid("target"),function(_f,_10){ +with(_f){ +return _target; +} +}),new objj_method(sel_getUid("sendAction:to:"),function(_11,_12,_13,_14){ +with(_11){ +objj_msgSend(CPApp,"sendAction:to:from:",_13,_14,_11); +} +}),new objj_method(sel_getUid("sendActionOn:"),function(_15,_16,_17){ +with(_15){ +var _18=_sendActionOn; +_sendActionOn=_17; +return _18; +} +}),new objj_method(sel_getUid("isContinuous"),function(_19,_1a){ +with(_19){ +return (_sendActionOn&CPPeriodicMask)!==0; +} +}),new objj_method(sel_getUid("setContinuous:"),function(_1b,_1c,_1d){ +with(_1b){ +if(_1d){ +_sendActionOn|=CPPeriodicMask; +}else{ +_sendActionOn&=~CPPeriodicMask; +} +} +}),new objj_method(sel_getUid("tracksMouseOutsideOfFrame"),function(_1e,_1f){ +with(_1e){ +return NO; +} +}),new objj_method(sel_getUid("trackMouse:"),function(_20,_21,_22){ +with(_20){ +var _23=objj_msgSend(_22,"type"),_24=objj_msgSend(_20,"convertPoint:fromView:",objj_msgSend(_22,"locationInWindow"),nil); +isWithinFrame=objj_msgSend(_20,"tracksMouseOutsideOfFrame")||CGRectContainsPoint(objj_msgSend(_20,"bounds"),_24); +if(_23===CPLeftMouseUp){ +objj_msgSend(_20,"stopTracking:at:mouseIsUp:",_previousTrackingLocation,_24,YES); +_trackingMouseDownFlags=0; +}else{ +if(_23===CPLeftMouseDown){ +_trackingMouseDownFlags=objj_msgSend(_22,"modifierFlags"); +_continuousTracking=objj_msgSend(_20,"startTrackingAt:",_24); +}else{ +if(_23===CPLeftMouseDragged){ +if(isWithinFrame){ +if(!_trackingWasWithinFrame){ +_continuousTracking=objj_msgSend(_20,"startTrackingAt:",_24); +}else{ +if(_continuousTracking){ +_continuousTracking=objj_msgSend(_20,"continueTracking:at:",_previousTrackingLocation,_24); +} +} +}else{ +objj_msgSend(_20,"stopTracking:at:mouseIsUp:",_previousTrackingLocation,_24,NO); +} +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_20,sel_getUid("trackMouse:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +if((_sendActionOn&(1<<_23))&&isWithinFrame){ +objj_msgSend(_20,"sendAction:to:",_action,_target); +} +_trackingWasWithinFrame=isWithinFrame; +_previousTrackingLocation=_24; +} +}),new objj_method(sel_getUid("performClick:"),function(_25,_26,_27){ +with(_25){ +objj_msgSend(_25,"highlight:",YES); +objj_msgSend(_25,"setState:",objj_msgSend(_25,"nextState")); +objj_msgSend(_25,"sendAction:to:",objj_msgSend(_25,"action"),objj_msgSend(_25,"target")); +objj_msgSend(_25,"highlight:",NO); +} +}),new objj_method(sel_getUid("mouseDownFlags"),function(_28,_29){ +with(_28){ +return _trackingMouseDownFlags; +} +}),new objj_method(sel_getUid("startTrackingAt:"),function(_2a,_2b,_2c){ +with(_2a){ +objj_msgSend(_2a,"highlight:",YES); +return (_sendActionOn&CPPeriodicMask)||(_sendActionOn&CPLeftMouseDraggedMask); +} +}),new objj_method(sel_getUid("continueTracking:at:"),function(_2d,_2e,_2f,_30){ +with(_2d){ +return (_sendActionOn&CPPeriodicMask)||(_sendActionOn&CPLeftMouseDraggedMask); +} +}),new objj_method(sel_getUid("stopTracking:at:mouseIsUp:"),function(_31,_32,_33,_34,_35){ +with(_31){ +objj_msgSend(_31,"highlight:",NO); +} +}),new objj_method(sel_getUid("mouseDown:"),function(_36,_37,_38){ +with(_36){ +if(!objj_msgSend(_36,"isEnabled")){ +return; +} +objj_msgSend(_36,"trackMouse:",_38); +} +}),new objj_method(sel_getUid("objectValue"),function(_39,_3a){ +with(_39){ +return _value; +} +}),new objj_method(sel_getUid("setObjectValue:"),function(_3b,_3c,_3d){ +with(_3b){ +_value=_3d; +objj_msgSend(_3b,"setNeedsLayout"); +objj_msgSend(_3b,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("floatValue"),function(_3e,_3f){ +with(_3e){ +var _40=parseFloat(_value,10); +return isNaN(_40)?0:_40; +} +}),new objj_method(sel_getUid("setFloatValue:"),function(_41,_42,_43){ +with(_41){ +objj_msgSend(_41,"setObjectValue:",_43); +} +}),new objj_method(sel_getUid("doubleValue"),function(_44,_45){ +with(_44){ +var _46=parseFloat(_value,10); +return isNaN(_46)?0:_46; +} +}),new objj_method(sel_getUid("setDoubleValue:"),function(_47,_48,_49){ +with(_47){ +objj_msgSend(_47,"setObjectValue:",_49); +} +}),new objj_method(sel_getUid("intValue"),function(_4a,_4b){ +with(_4a){ +var _4c=parseInt(_value,10); +return isNaN(_4c)?0:_4c; +} +}),new objj_method(sel_getUid("setIntValue:"),function(_4d,_4e,_4f){ +with(_4d){ +objj_msgSend(_4d,"setObjectValue:",_4f); +} +}),new objj_method(sel_getUid("integerValue"),function(_50,_51){ +with(_50){ +var _52=parseInt(_value,10); +return isNaN(_52)?0:_52; +} +}),new objj_method(sel_getUid("setIntegerValue:"),function(_53,_54,_55){ +with(_53){ +objj_msgSend(_53,"setObjectValue:",_55); +} +}),new objj_method(sel_getUid("stringValue"),function(_56,_57){ +with(_56){ +return (_value===undefined||_value===nil)?"":String(_value); +} +}),new objj_method(sel_getUid("setStringValue:"),function(_58,_59,_5a){ +with(_58){ +objj_msgSend(_58,"setObjectValue:",_5a); +} +}),new objj_method(sel_getUid("takeDoubleValueFrom:"),function(_5b,_5c,_5d){ +with(_5b){ +if(objj_msgSend(_5d,"respondsToSelector:",sel_getUid("doubleValue"))){ +objj_msgSend(_5b,"setDoubleValue:",objj_msgSend(_5d,"doubleValue")); +} +} +}),new objj_method(sel_getUid("takeFloatValueFrom:"),function(_5e,_5f,_60){ +with(_5e){ +if(objj_msgSend(_60,"respondsToSelector:",sel_getUid("floatValue"))){ +objj_msgSend(_5e,"setFloatValue:",objj_msgSend(_60,"floatValue")); +} +} +}),new objj_method(sel_getUid("takeIntegerValueFrom:"),function(_61,_62,_63){ +with(_61){ +if(objj_msgSend(_63,"respondsToSelector:",sel_getUid("integerValue"))){ +objj_msgSend(_61,"setIntegerValue:",objj_msgSend(_63,"integerValue")); +} +} +}),new objj_method(sel_getUid("takeIntValueFrom:"),function(_64,_65,_66){ +with(_64){ +if(objj_msgSend(_66,"respondsToSelector:",sel_getUid("intValue"))){ +objj_msgSend(_64,"setIntValue:",objj_msgSend(_66,"intValue")); +} +} +}),new objj_method(sel_getUid("takeObjectValueFrom:"),function(_67,_68,_69){ +with(_67){ +if(objj_msgSend(_69,"respondsToSelector:",sel_getUid("objectValue"))){ +objj_msgSend(_67,"setObjectValue:",objj_msgSend(_69,"objectValue")); +} +} +}),new objj_method(sel_getUid("takeStringValueFrom:"),function(_6a,_6b,_6c){ +with(_6a){ +if(objj_msgSend(_6c,"respondsToSelector:",sel_getUid("stringValue"))){ +objj_msgSend(_6a,"setStringValue:",objj_msgSend(_6c,"stringValue")); +} +} +}),new objj_method(sel_getUid("textDidBeginEditing:"),function(_6d,_6e,_6f){ +with(_6d){ +if(objj_msgSend(_6f,"object")!=_6d){ +return; +} +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPControlTextDidBeginEditingNotification,_6d,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",objj_msgSend(_6f,"object"),"CPFieldEditor")); +} +}),new objj_method(sel_getUid("textDidChange:"),function(_70,_71,_72){ +with(_70){ +if(objj_msgSend(_72,"object")!=_70){ +return; +} +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPControlTextDidChangeNotification,_70,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",objj_msgSend(_72,"object"),"CPFieldEditor")); +} +}),new objj_method(sel_getUid("textDidEndEditing:"),function(_73,_74,_75){ +with(_73){ +if(objj_msgSend(_75,"object")!=_73){ +return; +} +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPControlTextDidEndEditingNotification,_73,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",objj_msgSend(_75,"object"),"CPFieldEditor")); +} +}),new objj_method(sel_getUid("setAlignment:"),function(_76,_77,_78){ +with(_76){ +objj_msgSend(_76,"setValue:forThemeAttribute:",_78,"alignment"); +} +}),new objj_method(sel_getUid("alignment"),function(_79,_7a){ +with(_79){ +return objj_msgSend(_79,"valueForThemeAttribute:","alignment"); +} +}),new objj_method(sel_getUid("setVerticalAlignment:"),function(_7b,_7c,_7d){ +with(_7b){ +objj_msgSend(_7b,"setValue:forThemeAttribute:",_7d,"vertical-alignment"); +} +}),new objj_method(sel_getUid("verticalAlignment"),function(_7e,_7f){ +with(_7e){ +return objj_msgSend(_7e,"valueForThemeAttribute:","vertical-alignment"); +} +}),new objj_method(sel_getUid("setLineBreakMode:"),function(_80,_81,_82){ +with(_80){ +objj_msgSend(_80,"setValue:forThemeAttribute:",_82,"line-break-mode"); +} +}),new objj_method(sel_getUid("lineBreakMode"),function(_83,_84){ +with(_83){ +return objj_msgSend(_83,"valueForThemeAttribute:","line-break-mode"); +} +}),new objj_method(sel_getUid("setTextColor:"),function(_85,_86,_87){ +with(_85){ +objj_msgSend(_85,"setValue:forThemeAttribute:",_87,"text-color"); +} +}),new objj_method(sel_getUid("textColor"),function(_88,_89){ +with(_88){ +return objj_msgSend(_88,"valueForThemeAttribute:","text-color"); +} +}),new objj_method(sel_getUid("setFont:"),function(_8a,_8b,_8c){ +with(_8a){ +objj_msgSend(_8a,"setValue:forThemeAttribute:",_8c,"font"); +} +}),new objj_method(sel_getUid("font"),function(_8d,_8e){ +with(_8d){ +return objj_msgSend(_8d,"valueForThemeAttribute:","font"); +} +}),new objj_method(sel_getUid("setTextShadowColor:"),function(_8f,_90,_91){ +with(_8f){ +objj_msgSend(_8f,"setValue:forThemeAttribute:",_91,"text-shadow-color"); +} +}),new objj_method(sel_getUid("textShadowColor"),function(_92,_93){ +with(_92){ +return objj_msgSend(_92,"valueForThemeAttribute:","text-shadow-color"); +} +}),new objj_method(sel_getUid("setTextShadowOffset:"),function(_94,_95,_96){ +with(_94){ +objj_msgSend(_94,"setValue:forThemeAttribute:",_96,"text-shadow-offset"); +} +}),new objj_method(sel_getUid("textShadowOffset"),function(_97,_98){ +with(_97){ +return objj_msgSend(_97,"valueForThemeAttribute:","text-shadow-offset"); +} +}),new objj_method(sel_getUid("setImagePosition:"),function(_99,_9a,_9b){ +with(_99){ +objj_msgSend(_99,"setValue:forThemeAttribute:",_9b,"image-position"); +} +}),new objj_method(sel_getUid("imagePosition"),function(_9c,_9d){ +with(_9c){ +return objj_msgSend(_9c,"valueForThemeAttribute:","image-position"); +} +}),new objj_method(sel_getUid("setImageScaling:"),function(_9e,_9f,_a0){ +with(_9e){ +objj_msgSend(_9e,"setValue:forThemeAttribute:",_a0,"image-scaling"); +} +}),new objj_method(sel_getUid("imageScaling"),function(_a1,_a2){ +with(_a1){ +return objj_msgSend(_a1,"valueForThemeAttribute:","image-scaling"); +} +}),new objj_method(sel_getUid("setEnabled:"),function(_a3,_a4,_a5){ +with(_a3){ +if(_a5){ +objj_msgSend(_a3,"unsetThemeState:",CPThemeStateDisabled); +}else{ +objj_msgSend(_a3,"setThemeState:",CPThemeStateDisabled); +} +} +}),new objj_method(sel_getUid("isEnabled"),function(_a6,_a7){ +with(_a6){ +return !objj_msgSend(_a6,"hasThemeState:",CPThemeStateDisabled); +} +}),new objj_method(sel_getUid("highlight:"),function(_a8,_a9,_aa){ +with(_a8){ +objj_msgSend(_a8,"setHighlighted:",_aa); +} +}),new objj_method(sel_getUid("setHighlighted:"),function(_ab,_ac,_ad){ +with(_ab){ +if(_ad){ +objj_msgSend(_ab,"setThemeState:",CPThemeStateHighlighted); +}else{ +objj_msgSend(_ab,"unsetThemeState:",CPThemeStateHighlighted); +} +} +}),new objj_method(sel_getUid("isHighlighted"),function(_ae,_af){ +with(_ae){ +return objj_msgSend(_ae,"hasThemeState:",CPThemeStateHighlighted); +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_b0,_b1,_b2){ +with(_b0){ +return nil; +} +}),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_b3,_b4,_b5){ +with(_b3){ +return {origin:{x:0,y:0},size:{width:0,height:0}}; +} +}),new objj_method(sel_getUid("layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:"),function(_b6,_b7,_b8,_b9,_ba){ +with(_b6){ +if(!_ephemeralSubviewsForNames){ +_ephemeralSubviewsForNames={}; +_ephemeralSubviews=objj_msgSend(CPSet,"set"); +} +var _bb=objj_msgSend(_b6,"rectForEphemeralSubviewNamed:",_b8); +if(_bb&&!(_bb.size.width<=0||_bb.size.height<=0)){ +if(!_ephemeralSubviewsForNames[_b8]){ +_ephemeralSubviewsForNames[_b8]=objj_msgSend(_b6,"createEphemeralSubviewNamed:",_b8); +objj_msgSend(_ephemeralSubviews,"addObject:",_ephemeralSubviewsForNames[_b8]); +if(_ephemeralSubviewsForNames[_b8]){ +objj_msgSend(_b6,"addSubview:positioned:relativeTo:",_ephemeralSubviewsForNames[_b8],_b9,_ephemeralSubviewsForNames[_ba]); +} +} +if(_ephemeralSubviewsForNames[_b8]){ +objj_msgSend(_ephemeralSubviewsForNames[_b8],"setFrame:",_bb); +} +}else{ +if(_ephemeralSubviewsForNames[_b8]){ +objj_msgSend(_ephemeralSubviewsForNames[_b8],"removeFromSuperview"); +objj_msgSend(_ephemeralSubviews,"removeObject:",_ephemeralSubviewsForNames[_b8]); +delete _ephemeralSubviewsForNames[_b8]; +} +} +return _ephemeralSubviewsForNames[_b8]; +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("themeAttributes"),function(_bc,_bd){ +with(_bc){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[CPLeftTextAlignment,CPTopVerticalTextAlignment,CPLineBreakByClipping,objj_msgSend(CPColor,"blackColor"),objj_msgSend(CPFont,"systemFontOfSize:",12),nil,{width:0,height:0},CPImageLeft,CPScaleToFit,{width:0,height:0},{width:-1,height:-1}],["alignment","vertical-alignment","line-break-mode","text-color","font","text-shadow-color","text-shadow-offset","image-position","image-scaling","min-size","max-size"]); +} +})]); +var _be="CPControlValueKey",_bf="CPControlControlStateKey",_c0="CPControlIsEnabledKey",_c1="CPControlTargetKey",_c2="CPControlActionKey",_c3="CPControlSendActionOnKey"; +var _c4="CPImageViewImageKey"; +var _2=objj_getClass("CPControl"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPControl\"")); +} +var _3=_2.isa; +class_addMethods(_2,[new objj_method(sel_getUid("initWithCoder:"),function(_c5,_c6,_c7){ +with(_c5){ +_c5=objj_msgSendSuper({receiver:_c5,super_class:objj_getClass("CPView")},"initWithCoder:",_c7); +if(_c5){ +objj_msgSend(_c5,"setObjectValue:",objj_msgSend(_c7,"decodeObjectForKey:",_be)); +objj_msgSend(_c5,"setTarget:",objj_msgSend(_c7,"decodeObjectForKey:",_c1)); +objj_msgSend(_c5,"setAction:",objj_msgSend(_c7,"decodeObjectForKey:",_c2)); +objj_msgSend(_c5,"sendActionOn:",objj_msgSend(_c7,"decodeIntForKey:",_c3)); +} +return _c5; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_c8,_c9,_ca){ +with(_c8){ +var _cb=objj_msgSend(_subviews,"count"),_cc; +subviews=nil; +if(_cb>0&&objj_msgSend(_ephemeralSubviews,"count")>0){ +subviews=objj_msgSend(_subviews.slice(0),"copy"); +while(_cb--){ +if(objj_msgSend(_ephemeralSubviews,"containsObject:",_subviews[_cb])){ +_subviews.splice(_cb,1); +} +} +} +objj_msgSendSuper({receiver:_c8,super_class:objj_getClass("CPView")},"encodeWithCoder:",_ca); +if(subviews){ +_subviews=subviews; +} +if(_value!==nil){ +objj_msgSend(_ca,"encodeObject:forKey:",_value,_be); +} +if(_target!==nil){ +objj_msgSend(_ca,"encodeConditionalObject:forKey:",_target,_c1); +} +if(_action!==NULL){ +objj_msgSend(_ca,"encodeObject:forKey:",_action,_c2); +} +objj_msgSend(_ca,"encodeInt:forKey:",_sendActionOn,_c3); +} +})]); +var _cd=[],_ce={},_cf={}; +_cd[CPRegularControlSize]="Regular"; +_cd[CPSmallControlSize]="Small"; +_cd[CPMiniControlSize]="Mini"; +_CPControlIdentifierForControlSize=function(_d0){ +return _cd[_d0]; +}; +_CPControlColorWithPatternImage=function(_d1,_d2){ +var _d3=1,_d4=arguments.length,_d5=""; +for(;_d3<_d4;++_d3){ +_d5+=arguments[_d3]; +} +var _d6=_ce[_d5]; +if(!_d6){ +var _d7=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPControl,"class")); +_d6=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_d7,"pathForResource:",_d2+"/"+_d5+".png"),_d1[_d5])); +_ce[_d5]=_d6; +} +return _d6; +}; +_CPControlThreePartImagePattern=function(_d8,_d9,_da){ +var _db=2,_dc=arguments.length,_dd=""; +for(;_db<_dc;++_db){ +_dd+=arguments[_db]; +} +var _de=_cf[_dd]; +if(!_de){ +var _df=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPControl,"class")),_e0=_da+"/"+_dd; +_d9=_d9[_dd]; +_de=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPThreePartImage,"alloc"),"initWithImageSlices:isVertical:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_df,"pathForResource:",_e0+"0.png"),_d9[0]),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_df,"pathForResource:",_e0+"1.png"),_d9[1]),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_df,"pathForResource:",_e0+"2.png"),_d9[2])],_d8)); +_cf[_dd]=_de; +} +return _de; +}; +p;10;CPCookie.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;1385; +var _1=objj_allocateClassPair(CPObject,"CPCookie"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_cookieName"),new objj_ivar("_cookieValue"),new objj_ivar("_expires")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithName:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +_cookieName=_5; +_cookieValue=objj_msgSend(_3,"_readCookieValue"); +return _3; +} +}),new objj_method(sel_getUid("value"),function(_6,_7){ +with(_6){ +return _cookieValue; +} +}),new objj_method(sel_getUid("name"),function(_8,_9){ +with(_8){ +return _cookieName; +} +}),new objj_method(sel_getUid("expires"),function(_a,_b){ +with(_a){ +return _expires; +} +}),new objj_method(sel_getUid("setValue:expires:domain:"),function(_c,_d,_e,_f,_10){ +with(_c){ +if(_f){ +var _11="; expires="+_f.toGMTString(); +}else{ +var _11=""; +} +if(_10){ +_10="; domain="+_10; +}else{ +_10=""; +} +document.cookie=_cookieName+"="+_e+_11+"; path=/"+_10; +} +}),new objj_method(sel_getUid("_readCookieValue"),function(_12,_13){ +with(_12){ +var _14=_cookieName+"="; +var ca=document.cookie.split(";"); +for(var i=0;i_31){ +_35=_36-1; +}else{ +low=_36+1; +} +} +objj_msgSend(_windowLevels,"insertObject:atIndex:",_31,_windowLevels[_36]>_31?_36:_36+1); +_33._DOMElement.style.zIndex=_31; +_DOMBodyElement.appendChild(_33._DOMElement); +} +return _33; +} +}),new objj_method(sel_getUid("order:window:relativeTo:"),function(_37,_38,_39,_3a,_3b){ +with(_37){ +var _3c=objj_msgSend(_37,"layerAtLevel:create:",objj_msgSend(_3a,"level"),_39!=CPWindowOut); +if(_39==CPWindowOut){ +return objj_msgSend(_3c,"removeWindow:",_3a); +} +objj_msgSend(_3c,"insertWindow:atIndex:",_3a,(_3b?(_39==CPWindowAbove?_3b._index+1:_3b._index):CPNotFound)); +} +}),new objj_method(sel_getUid("_dragHitTest:pasteboard:"),function(_3d,_3e,_3f,_40){ +with(_3d){ +var _41=_windowLevels,_42=_windowLayers,_43=_41.length; +while(_43--){ +if(_41[_43]>=CPDraggingWindowLevel){ +continue; +} +var _44=objj_msgSend(_42,"objectForKey:",_41[_43])._windows,_45=_44.length; +while(_45--){ +var _46=_44[_45]; +if(objj_msgSend(_46,"containsPoint:",_3f)){ +return objj_msgSend(_46,"_dragHitTest:pasteboard:",_3f,_40); +} +} +} +return nil; +} +}),new objj_method(sel_getUid("_propagateCurrentDOMEvent:"),function(_47,_48,_49){ +with(_47){ +StopDOMEventPropagation=!_49; +} +}),new objj_method(sel_getUid("hitTest:"),function(_4a,_4b,_4c){ +with(_4a){ +var _4d=_windowLevels,_4e=_windowLayers,_4f=_4d.length,_50=nil; +while(_4f--&&!_50){ +var _51=objj_msgSend(_4e,"objectForKey:",_4d[_4f])._windows,_52=_51.length; +while(_52--&&!_50){ +var _53=_51[_52]; +if(!_53._ignoresMouseEvents&&objj_msgSend(_53,"containsPoint:",_4c)){ +_50=_53; +} +} +} +return _50; +} +})]); +class_addMethods(_6,[new objj_method(sel_getUid("sharedDOMWindowBridge"),function(_54,_55){ +with(_54){ +if(!CPSharedDOMWindowBridge){ +CPSharedDOMWindowBridge=objj_msgSend(objj_msgSend(CPDOMWindowBridge,"alloc"),"_initWithDOMWindow:",window); +} +return CPSharedDOMWindowBridge; +} +})]); +var _2=function(_56){ +var _57=nil; +if(_56.outerWidth){ +_57=CGRectMake(0,0,_56.outerWidth,_56.outerHeight); +}else{ +_57=CGRectMake(0,0,-1,-1); +} +if(window.screenTop){ +_57.origin=CGPointMake(_56.screenLeft,_56.screenTop,0); +}else{ +if(window.screenX){ +_57.origin=CGPointMake(_56.screenX,_56.screenY,0); +} +} +if(_56.innerWidth){ +_57.size=CGSizeMake(_56.innerWidth,_56.innerHeight); +}else{ +if(document.documentElement&&document.documentElement.clientWidth){ +_57.size=CGSizeMake(_56.document.documentElement.clientWidth,_56.document.documentElement.clientHeight); +}else{ +_57.size=CGSizeMake(_56.document.body.clientWidth,_56.document.body.clientHeight); +} +} +return _57; +}; +var _58={},_59={},_5a={"8":1,"9":1,"37":1,"38":1,"39":1,"40":1,"46":1,"33":1,"34":1}; +var _5b=17; +var _5=objj_getClass("CPDOMWindowBridge"); +if(!_5){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPDOMWindowBridge\"")); +} +var _6=_5.isa; +class_addMethods(_5,[new objj_method(sel_getUid("preventCharacterKeysFromPropagating:"),function(_5c,_5d,_5e){ +with(_5c){ +for(var i=_5e.length;i>0;i--){ +_59[""+_5e[i-1].toLowerCase()]=YES; +} +} +}),new objj_method(sel_getUid("preventCharacterKeyFromPropagating:"),function(_60,_61,_62){ +with(_60){ +_59[_62.toLowerCase()]=YES; +} +}),new objj_method(sel_getUid("clearCharacterKeysToPreventFromPropagating"),function(_63,_64){ +with(_63){ +_59={}; +} +}),new objj_method(sel_getUid("preventKeyCodesFromPropagating:"),function(_65,_66,_67){ +with(_65){ +for(var i=_67.length;i>0;i--){ +_58[_67[i-1]]=YES; +} +} +}),new objj_method(sel_getUid("preventKeyCodeFromPropagating:"),function(_69,_6a,_6b){ +with(_69){ +_58[_6b]=YES; +} +}),new objj_method(sel_getUid("clearKeyCodesToPreventFromPropagating"),function(_6c,_6d){ +with(_6c){ +_58={}; +} +}),new objj_method(sel_getUid("_bridgeMouseEvent:"),function(_6e,_6f,_70){ +with(_6e){ +var _71=_overriddenEventType||_70.type; +if(_71===CPDOMEventDoubleClick){ +_overriddenEventType=CPDOMEventMouseDown; +objj_msgSend(_6e,"_bridgeMouseEvent:",_70); +_overriddenEventType=CPDOMEventMouseUp; +objj_msgSend(_6e,"_bridgeMouseEvent:",_70); +_overriddenEventType=nil; +return; +} +try{ +var _72,_73={x:_70.clientX,y:_70.clientY},_74=_70.timeStamp?_70.timeStamp:new Date(),_75=(_70.target||_70.srcElement),_76=0,_77=(_70.shiftKey?CPShiftKeyMask:0)|(_70.ctrlKey?CPControlKeyMask:0)|(_70.altKey?CPAlternateKeyMask:0)|(_70.metaKey?CPCommandKeyMask:0); +StopDOMEventPropagation=YES; +if(_mouseDownWindow){ +_76=objj_msgSend(_mouseDownWindow,"windowNumber"); +}else{ +var _78=objj_msgSend(_6e,"hitTest:",_73); +if((_70.type===CPDOMEventMouseDown)&&_78){ +_mouseDownWindow=_78; +} +_76=objj_msgSend(_78,"windowNumber"); +} +if(_76){ +var _79=CPApp._windows[_76]._frame; +_73.x-=(_79.origin.x); +_73.y-=(_79.origin.y); +} +switch(_71){ +case CPDOMEventMouseUp: +if(_mouseIsDown){ +_72=_CPEventFromNativeMouseEvent(_70,CPLeftMouseUp,_73,_77,_74,_76,nil,-1,_3(_lastMouseUp,_74,_73),0); +_mouseIsDown=NO; +_lastMouseUp=_72; +_mouseDownWindow=nil; +} +if(_DOMEventMode){ +_DOMEventMode=NO; +return; +} +break; +case CPDOMEventMouseDown: +if(_1[_75.tagName]&&_75!=_DOMFocusElement){ +_DOMEventMode=YES; +_mouseIsDown=YES; +objj_msgSend(CPApp,"sendEvent:",objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",CPLeftMouseDown,_73,_77,_74,_76,nil,-1,_3(_lastMouseDown,_74,_73),0)); +objj_msgSend(CPApp,"sendEvent:",objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",CPLeftMouseUp,_73,_77,_74,_76,nil,-1,_3(_lastMouseDown,_74,_73),0)); +return; +} +_72=_CPEventFromNativeMouseEvent(_70,CPLeftMouseDown,_73,_77,_74,_76,nil,-1,_3(_lastMouseDown,_74,_73),0); +_mouseIsDown=YES; +_lastMouseDown=_72; +break; +case CPDOMEventMouseMoved: +if(_DOMEventMode){ +return; +} +_72=_CPEventFromNativeMouseEvent(_70,_mouseIsDown?CPLeftMouseDragged:CPMouseMoved,_73,_77,_74,_76,nil,-1,1,0); +break; +} +if(_72){ +_72._DOMEvent=_70; +objj_msgSend(CPApp,"sendEvent:",_72); +} +if(StopDOMEventPropagation){ +_4(_70); +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +catch(anException){ +objj_exception_report(anException,{path:"CPDOMWindowBridge.j"}); +} +} +}),new objj_method(sel_getUid("_bridgeKeyEvent:"),function(_7a,_7b,_7c){ +with(_7a){ +try{ +var _7d,_7e=_7c.timeStamp?_7c.timeStamp:new Date(),_7f=(_7c.target||_7c.srcElement),_80=objj_msgSend(objj_msgSend(CPApp,"keyWindow"),"windowNumber"),_81=(_7c.shiftKey?CPShiftKeyMask:0)|(_7c.ctrlKey?CPControlKeyMask:0)|(_7c.altKey?CPAlternateKeyMask:0)|(_7c.metaKey?CPCommandKeyMask:0); +if(_1[_7f.tagName]&&_7f!=_DOMFocusElement&&_7f!=_DOMPasteboardElement){ +return; +} +StopDOMEventPropagation=!(_81&(CPControlKeyMask|CPCommandKeyMask))||_59[String.fromCharCode(_7c.keyCode||_7c.charCode).toLowerCase()]||_58[_7c.keyCode]; +var _82=NO,_83=NO; +switch(_7c.type){ +case CPDOMEventKeyDown: +_keyCode=_7c.keyCode; +var _84=String.fromCharCode(_keyCode).toLowerCase(); +if(_84=="v"&&(_81&CPPlatformActionKeyMask)){ +_DOMPasteboardElement.select(); +_DOMPasteboardElement.value=""; +_82=YES; +}else{ +if((_84=="c"||_84=="x")&&(_81&CPPlatformActionKeyMask)){ +_83=YES; +}else{ +if(!CPFeatureIsCompatible(CPJavascriptRemedialKeySupport)){ +return; +}else{ +if(!_5a[_keyCode]&&(_keyCode==_5b||!(_81&CPControlKeyMask))){ +return; +} +} +} +} +case CPDOMEventKeyPress: +if((_7c.target||_7c.srcElement)==_DOMPasteboardElement){ +return; +} +var _85=_keyCode,_86=_7c.keyCode||_7c.charCode,_87=(_charCodes[_85]!=nil); +_charCodes[_85]=_86; +var _84=String.fromCharCode(_86),_88=_84.toLowerCase(); +_7d=objj_msgSend(CPEvent,"keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:",CPKeyDown,location,_81,_7e,_80,nil,_84,_88,_87,_85); +if(_82){ +_pasteboardKeyDownEvent=_7d; +window.setNativeTimeout(function(){ +objj_msgSend(_7a,"_checkPasteboardElement"); +},0); +return; +} +break; +case CPDOMEventKeyUp: +var _85=_7c.keyCode,_86=_charCodes[_85]; +_charCodes[_85]=nil; +var _84=String.fromCharCode(_86),_88=_84.toLowerCase(); +if(!(_81&CPShiftKeyMask)){ +_84=_88; +} +_7d=objj_msgSend(CPEvent,"keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:",CPKeyUp,location,_81,_7e,_80,nil,_84,_88,NO,_85); +break; +} +if(_7d){ +_7d._DOMEvent=_7c; +objj_msgSend(CPApp,"sendEvent:",_7d); +if(_83){ +var _89=objj_msgSend(CPPasteboard,"generalPasteboard"),_8a=objj_msgSend(_89,"types"); +if(_8a.length){ +if(objj_msgSend(_8a,"indexOfObjectIdenticalTo:",CPStringPboardType)!=CPNotFound){ +_DOMPasteboardElement.value=objj_msgSend(_89,"stringForType:",CPStringPboardType); +}else{ +_DOMPasteboardElement.value=objj_msgSend(_89,"_generateStateUID"); +} +_DOMPasteboardElement.select(); +window.setNativeTimeout(function(){ +objj_msgSend(_7a,"_clearPasteboardElement"); +},0); +} +return; +} +} +if(StopDOMEventPropagation){ +_4(_7c); +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +catch(anException){ +objj_exception_report(anException,{path:"CPDOMWindowBridge.j"}); +} +} +}),new objj_method(sel_getUid("_bridgeScrollEvent:"),function(_8b,_8c,_8d){ +with(_8b){ +if(!_8d){ +_8d=window.event; +} +try{ +if(CPFeatureIsCompatible(CPJavaScriptMouseWheelValues_8_15)){ +var x=0,y=0,_90=_8d.target; +while(_90.nodeType!==1){ +_90=_90.parentNode; +} +if(_90.offsetParent){ +do{ +x+=_90.offsetLeft; +y+=_90.offsetTop; +}while(_90=_90.offsetParent); +} +var _91={x:(x+((_8d.clientX-8)/15)),y:(y+((_8d.clientY-8)/15))}; +}else{ +var _91={x:_8d.clientX,y:_8d.clientY}; +} +var _92=0,_93=0,_94=0,_95=_8d.timeStamp?_8d.timeStamp:new Date(),_96=(_8d.shiftKey?CPShiftKeyMask:0)|(_8d.ctrlKey?CPControlKeyMask:0)|(_8d.altKey?CPAlternateKeyMask:0)|(_8d.metaKey?CPCommandKeyMask:0); +StopDOMEventPropagation=YES; +_94=objj_msgSend(objj_msgSend(_8b,"hitTest:",_91),"windowNumber"); +if(!_94){ +return; +} +var _97=CPApp._windows[_94]._frame; +_91.x-=CGRectGetMinX(_97); +_91.y-=CGRectGetMinY(_97); +if(typeof _8d.wheelDeltaX!="undefined"){ +_92=_8d.wheelDeltaX/120; +_93=_8d.wheelDeltaY/120; +}else{ +if(_8d.wheelDelta){ +_93=_8d.wheelDelta/120; +}else{ +if(_8d.detail){ +_93=-_8d.detail/3; +}else{ +return; +} +} +} +if(!CPFeatureIsCompatible(CPJavaScriptNegativeMouseWheelValues)){ +_92=-_92; +_93=-_93; +} +var _98=objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",CPScrollWheel,_91,_96,_95,_94,nil,-1,1,0); +_98._DOMEvent=_8d; +_98._deltaX=ROUND(_92*1.5); +_98._deltaY=ROUND(_93*1.5); +objj_msgSend(CPApp,"sendEvent:",_98); +if(StopDOMEventPropagation){ +_4(_8d); +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +catch(anException){ +objj_exception_report(anException,{path:"CPDOMWindowBridge.j"}); +} +} +}),new objj_method(sel_getUid("_bridgeResizeEvent:"),function(_99,_9a,_9b){ +with(_99){ +try{ +var _9c=_frame.size; +_frame=_2(_DOMWindow); +_contentBounds.size=CGSizeCreateCopy(_frame.size); +var _9d=_windowLevels,_9e=_windowLayers,_9f=_9d.length; +while(_9f--){ +var _a0=objj_msgSend(_9e,"objectForKey:",_9d[_9f])._windows,_a1=_a0.length; +while(_a1--){ +objj_msgSend(_a0[_a1],"resizeWithOldBridgeSize:",_9c); +} +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +catch(anException){ +objj_exception_report(anException,{path:"CPDOMWindowBridge.j"}); +} +} +}),new objj_method(sel_getUid("_bridgeTouchEvent:"),function(_a2,_a3,_a4){ +with(_a2){ +try{ +if(_a4.touches&&(_a4.touches.length==1||(_a4.touches.length==0&&_a4.changedTouches.length==1))){ +var _a5={}; +switch(_a4.type){ +case CPDOMEventTouchStart: +_a5.type=CPDOMEventMouseDown; +break; +case CPDOMEventTouchEnd: +_a5.type=CPDOMEventMouseUp; +break; +case CPDOMEventTouchMove: +_a5.type=CPDOMEventMouseMoved; +break; +case CPDOMEventTouchCancel: +_a5.type=CPDOMEventMouseUp; +break; +} +var _a6=_a4.touches.length?_a4.touches[0]:_a4.changedTouches[0]; +_a5.clientX=_a6.clientX; +_a5.clientY=_a6.clientY; +_a5.timestamp=_a4.timestamp; +_a5.target=_a4.target; +_a5.shiftKey=_a5.ctrlKey=_a5.altKey=_a5.metaKey=false; +_a5.preventDefault=function(){ +if(_a4.preventDefault){ +_a4.preventDefault(); +} +}; +_a5.stopPropagation=function(){ +if(_a4.stopPropagation){ +_a4.stopPropagation(); +} +}; +objj_msgSend(_a2,"_bridgeMouseEvent:",_a5); +return; +}else{ +if(_a4.preventDefault){ +_a4.preventDefault(); +} +if(_a4.stopPropagation){ +_a4.stopPropagation(); +} +} +} +catch(e){ +objj_exception_report(e,{path:"CPDOMWindowBridge.j"}); +} +} +}),new objj_method(sel_getUid("_checkPasteboardElement"),function(_a7,_a8){ +with(_a7){ +try{ +var _a9=_DOMPasteboardElement.value; +if(objj_msgSend(_a9,"length")){ +var _aa=objj_msgSend(CPPasteboard,"generalPasteboard"); +if(objj_msgSend(_aa,"_stateUID")!=_a9){ +objj_msgSend(_aa,"declareTypes:owner:",[CPStringPboardType],_a7); +objj_msgSend(_aa,"setString:forType:",_a9,CPStringPboardType); +} +} +objj_msgSend(_a7,"_clearPasteboardElement"); +objj_msgSend(CPApp,"sendEvent:",_pasteboardKeyDownEvent); +_pasteboardKeyDownEvent=nil; +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +catch(anException){ +objj_exception_report(anException,{path:"CPDOMWindowBridge.j"}); +} +} +}),new objj_method(sel_getUid("_clearPasteboardElement"),function(_ab,_ac){ +with(_ab){ +_DOMPasteboardElement.value=""; +_DOMPasteboardElement.blur(); +} +})]); +var _ad=5,_ae=(typeof document!="undefined"&&document.addEventListener)?350:1000; +var _3=function(_af,_b0,_b1){ +if(!_af){ +return 1; +} +var _b2=objj_msgSend(_af,"locationInWindow"); +return (_b0-objj_msgSend(_af,"timestamp")<_ae&&ABS(_b2.x-_b1.x)<_ad&&ABS(_b2.y-_b1.y)<_ad)?objj_msgSend(_af,"clickCount")+1:1; +}; +var _4=function(_b3){ +_b3.cancelBubble=true; +_b3.returnValue=false; +if(_b3.preventDefault){ +_b3.preventDefault(); +} +if(_b3.stopPropagation){ +_b3.stopPropagation(); +} +if(_b3.type===CPDOMEventMouseDown){ +CPSharedDOMWindowBridge._DOMFocusElement.focus(); +CPSharedDOMWindowBridge._DOMFocusElement.blur(); +} +}; +p;18;CPDOMWindowLayer.jI;20;Foundation/CPArray.jI;21;Foundation/CPObject.jc;2416; +var _1=objj_allocateClassPair(CPObject,"CPDOMWindowLayer"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_level"),new objj_ivar("_windows"),new objj_ivar("_DOMElement")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithLevel:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_level=_5; +_windows=[]; +_DOMElement=document.createElement("div"); +_DOMElement.style.position="absolute"; +_DOMElement.style.top="0px"; +_DOMElement.style.left="0px"; +_DOMElement.style.width="1px"; +_DOMElement.style.height="1px"; +} +return _3; +} +}),new objj_method(sel_getUid("level"),function(_6,_7){ +with(_6){ +return _level; +} +}),new objj_method(sel_getUid("removeWindow:"),function(_8,_9,_a){ +with(_8){ +if(!_a._isVisible){ +return; +} +var _b=_a._index,_c=_windows.length-1; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=8; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_a._DOMElement; +objj_msgSend(_windows,"removeObjectAtIndex:",_a._index); +for(;_b<_c;++_b){ +_windows[_b]._index=_b; +_windows[_b]._DOMElement.style.zIndex=_b; +} +_a._isVisible=NO; +} +}),new objj_method(sel_getUid("insertWindow:atIndex:"),function(_d,_e,_f,_10){ +with(_d){ +var _11=objj_msgSend(_windows,"count"),_12=(_10==CPNotFound?_11:_10),_13=_f._isVisible; +if(_13){ +_12=MIN(_12,_f._index); +objj_msgSend(_windows,"removeObjectAtIndex:",_f._index); +}else{ +++_11; +} +if(_10==CPNotFound||_10>=_11){ +objj_msgSend(_windows,"addObject:",_f); +}else{ +objj_msgSend(_windows,"insertObject:atIndex:",_f,_10); +} +for(;_12<_11;++_12){ +_windows[_12]._index=_12; +_windows[_12]._DOMElement.style.zIndex=_12; +} +if(!_13){ +if(_f._DOMElement.CPDOMDisplayContext){ +_f._DOMElement.CPDOMDisplayContext[0]=-1; +} +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=6; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_f._DOMElement; +_f._isVisible=YES; +if(objj_msgSend(_f,"isFullBridge")){ +objj_msgSend(_f,"setFrame:",objj_msgSend(_f._bridge,"visibleFrame")); +} +} +} +}),new objj_method(sel_getUid("orderedWindows"),function(_14,_15){ +with(_14){ +return _windows; +} +})]); +p;14;CPDragServer.jI;15;AppKit/CPView.jI;16;AppKit/CPEvent.jI;21;AppKit/CPPasteboard.jI;20;AppKit/CPImageView.jc;7236; +var _1=nil; +var _2=nil,_3=nil,_4=nil,_5=nil,_6=nil,_7=nil,_8=nil,_9=nil,_a=nil,_b=nil; +var _c=NO,_d=NO,_e=NO,_f=NO,_10=NO; +var _11=function(){ +objj_msgSend(_3,"autoscroll:",_a); +}; +var _12=function(_13){ +_14(_13); +}; +var _14=function(_15){ +if(objj_msgSend(_15,"type")==CPLeftMouseUp){ +if(_b!==nil){ +clearInterval(_b); +} +_b=nil; +_6=objj_msgSend((objj_msgSend(_8,"isKindOfClass:",objj_msgSend(CPWindow,"class"))?_8:objj_msgSend(_8,"window")),"convertBridgeToBase:",objj_msgSend(objj_msgSend(_15,"window"),"convertBaseToBridge:",objj_msgSend(_15,"locationInWindow"))); +objj_msgSend(_2,"removeFromSuperview"); +objj_msgSend(_1._dragWindow,"orderOut:",nil); +if(_8&&(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("prepareForDragOperation:"))||objj_msgSend(_8,"prepareForDragOperation:",_9))&&(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("performDragOperation:"))||objj_msgSend(_8,"performDragOperation:",_9))&&objj_msgSend(_8,"respondsToSelector:",sel_getUid("concludeDragOperation:"))){ +objj_msgSend(_8,"concludeDragOperation:",_9); +} +if(_10){ +objj_msgSend(_3,"draggedImage:endedAt:operation:",objj_msgSend(_2,"image"),_6,NO); +}else{ +if(_f){ +objj_msgSend(_3,"draggedView:endedAt:operation:",_2,_6,NO); +} +} +_c=NO; +_8=nil; +return; +} +if(_b===nil){ +if(objj_msgSend(_3,"respondsToSelector:",sel_getUid("autoscroll:"))){ +_b=setInterval(_11,100); +} +} +_a=_15; +objj_msgSend(CPApp,"setCallback:forNextEventMatchingMask:untilDate:inMode:dequeue:",_14,CPMouseMovedMask|CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,0,NO); +var _16=objj_msgSend(_15,"locationInWindow"),_17=bridgeLocation=objj_msgSend(objj_msgSend(_15,"window"),"convertBaseToBridge:",_16); +var _18=objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"_dragHitTest:pasteboard:",bridgeLocation,_7); +_6=objj_msgSend((objj_msgSend(_18,"isKindOfClass:",objj_msgSend(CPWindow,"class"))?_18:objj_msgSend(_18,"window")),"convertBridgeToBase:",bridgeLocation); +if(_18!=_8){ +if(_8&&objj_msgSend(_8,"respondsToSelector:",sel_getUid("draggingExited:"))){ +objj_msgSend(_8,"draggingExited:",_9); +} +_8=_18; +if(_8&&objj_msgSend(_8,"respondsToSelector:",sel_getUid("draggingEntered:"))){ +objj_msgSend(_8,"draggingEntered:",_9); +} +}else{ +if(_8&&objj_msgSend(_8,"respondsToSelector:",sel_getUid("draggingUpdated:"))){ +objj_msgSend(_8,"draggingUpdated:",_9); +} +} +_16.x-=_5.x; +_16.y-=_5.y; +objj_msgSend(_2,"setFrameOrigin:",_16); +if(_e){ +objj_msgSend(_3,"draggedImage:movedTo:",objj_msgSend(_2,"image"),_16); +}else{ +if(_d){ +objj_msgSend(_3,"draggedView:movedTo:",_2,_16); +} +} +}; +var _19=objj_allocateClassPair(CPObject,"CPDraggingInfo"),_1a=_19.isa; +objj_registerClassPair(_19); +objj_addClassForBundle(_19,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_19,[new objj_method(sel_getUid("draggingSource"),function(_1b,_1c){ +with(_1b){ +return _3; +} +}),new objj_method(sel_getUid("draggingLocation"),function(_1d,_1e){ +with(_1d){ +return _6; +} +}),new objj_method(sel_getUid("draggingPasteboard"),function(_1f,_20){ +with(_1f){ +return _7; +} +}),new objj_method(sel_getUid("draggedImage"),function(_21,_22){ +with(_21){ +return objj_msgSend(_2,"image"); +} +}),new objj_method(sel_getUid("draggedImageLocation"),function(_23,_24){ +with(_23){ +return objj_msgSend(_23,"draggedViewLocation"); +} +}),new objj_method(sel_getUid("draggedViewLocation"),function(_25,_26){ +with(_25){ +return objj_msgSend((objj_msgSend(_8,"isKindOfClass:",objj_msgSend(CPWindow,"class"))?_8:objj_msgSend(_8,"window")),"convertBridgeToBase:",objj_msgSend(_2,"frame").origin); +} +}),new objj_method(sel_getUid("draggedView"),function(_27,_28){ +with(_27){ +return _2; +} +})]); +var _19=objj_allocateClassPair(CPObject,"CPDragServer"),_1a=_19.isa; +class_addIvars(_19,[new objj_ivar("_dragWindow"),new objj_ivar("_imageView")]); +objj_registerClassPair(_19); +objj_addClassForBundle(_19,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_19,[new objj_method(sel_getUid("init"),function(_29,_2a){ +with(_29){ +_29=objj_msgSendSuper({receiver:_29,super_class:objj_getClass("CPObject")},"init"); +if(_29){ +_dragWindow=objj_msgSend(objj_msgSend(CPWindow,"alloc"),"initWithContentRect:styleMask:",CPRectMakeZero(),CPBorderlessWindowMask); +objj_msgSend(_dragWindow,"setLevel:",CPDraggingWindowLevel); +} +return _29; +} +}),new objj_method(sel_getUid("dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:"),function(_2b,_2c,_2d,_2e,_2f,_30,_31,_32,_33,_34){ +with(_2b){ +var _35=objj_msgSend(_31,"locationInWindow"); +_2=_2d; +_3=_33; +_4=_2e; +_5=CPPointMake(_35.x-_2f.x,_35.y-_2f.y); +_7=objj_msgSend(CPPasteboard,"pasteboardWithName:",CPDragPboard); +objj_msgSend(_dragWindow,"setFrameSize:",CGSizeMakeCopy(objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"frame").size)); +objj_msgSend(_dragWindow,"orderFront:",_2b); +objj_msgSend(_2d,"setFrameOrigin:",_2f); +objj_msgSend(objj_msgSend(_dragWindow,"contentView"),"addSubview:",_2d); +if(_c){ +if(objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedImage:beganAt:"))){ +objj_msgSend(_3,"draggedImage:beganAt:",objj_msgSend(_2d,"image"),_2f); +} +_e=objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedImage:movedTo:")); +_10=objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedImage:endAt:operation:")); +_d=NO; +_f=NO; +}else{ +if(objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedView:beganAt:"))){ +objj_msgSend(_3,"draggedView:beganAt:",_2d,_2f); +} +_d=objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedView:movedTo:")); +_f=objj_msgSend(_3,"respondsToSelector:",sel_getUid("draggedView:endedAt:operation:")); +_e=NO; +_10=NO; +} +_12(_31); +} +}),new objj_method(sel_getUid("dragImage:fromWindow:at:offset:event:pasteboard:source:slideBack:"),function(_36,_37,_38,_39,_3a,_3b,_3c,_3d,_3e,_3f){ +with(_36){ +_c=YES; +if(!_imageView){ +_imageView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CPRectMakeZero()); +} +objj_msgSend(_imageView,"setImage:",_38); +objj_msgSend(_imageView,"setFrameSize:",CGSizeMakeCopy(objj_msgSend(_38,"size"))); +objj_msgSend(_36,"dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:",_imageView,_39,_3a,_3b,_3c,_3d,_3e,_3f); +} +})]); +class_addMethods(_1a,[new objj_method(sel_getUid("initialize"),function(_40,_41){ +with(_40){ +if(_40!=objj_msgSend(CPDragServer,"class")){ +return; +} +_9=objj_msgSend(objj_msgSend(CPDraggingInfo,"alloc"),"init"); +} +}),new objj_method(sel_getUid("sharedDragServer"),function(_42,_43){ +with(_42){ +if(!_1){ +_1=objj_msgSend(objj_msgSend(CPDragServer,"alloc"),"init"); +} +return _1; +} +})]); +var _19=objj_getClass("CPWindow"); +if(!_19){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPWindow\"")); +} +var _1a=_19.isa; +class_addMethods(_19,[new objj_method(sel_getUid("_dragHitTest:pasteboard:"),function(_44,_45,_46,_47){ +with(_44){ +if(!_inclusiveRegisteredDraggedTypes){ +return nil; +} +var _48={x:_46.x-(_frame.origin.x),y:_46.y-(_frame.origin.y)},_49=objj_msgSend(_windowView,"hitTest:",_48); +while(_49&&!objj_msgSend(_47,"availableTypeFromArray:",objj_msgSend(_49,"registeredDraggedTypes"))){ +_49=objj_msgSend(_49,"superview"); +} +if(_49){ +return _49; +} +if(objj_msgSend(_47,"availableTypeFromArray:",objj_msgSend(_44,"registeredDraggedTypes"))){ +return _44; +} +return nil; +} +})]); +p;9;CPEvent.jI;21;Foundation/CPObject.jc;8090; +CPLeftMouseDown=1; +CPLeftMouseUp=2; +CPRightMouseDown=3; +CPRightMouseUp=4; +CPMouseMoved=5; +CPLeftMouseDragged=6; +CPRightMouseDragged=7; +CPMouseEntered=8; +CPMouseExited=9; +CPKeyDown=10; +CPKeyUp=11; +CPFlagsChanged=12; +CPAppKitDefined=13; +CPSystemDefined=14; +CPApplicationDefined=15; +CPPeriodic=16; +CPCursorUpdate=17; +CPScrollWheel=22; +CPOtherMouseDown=25; +CPOtherMouseUp=26; +CPOtherMouseDragged=27; +CPTouchStart=28; +CPTouchMove=29; +CPTouchEnd=30; +CPTouchCancel=31; +CPAlphaShiftKeyMask=1<<16; +CPShiftKeyMask=1<<17; +CPControlKeyMask=1<<18; +CPAlternateKeyMask=1<<19; +CPCommandKeyMask=1<<20; +CPNumericPadKeyMask=1<<21; +CPHelpKeyMask=1<<22; +CPFunctionKeyMask=1<<23; +CPDeviceIndependentModifierFlagsMask=4294901760; +CPLeftMouseDownMask=1<=CPRectGetMinX(_20)&&_21.y>=CPRectGetMinY(_20)&&_21.x=_35.width&&_34>=_35.height){ +_33=_35.width; +_34=_35.height; +}else{ +var _36=_35.width/_35.height,_37=_33/_34; +if(_37>_36){ +_33=_34*_36; +}else{ +_34=_33/_36; +} +} +}else{ +_33=_35.width; +_34=_35.height; +} +if(_2c==CPScaleNone){ +} +var x=(_31-_33)/2,y=(_32-_34)/2; +} +_imageRect={origin:{x:x,y:y},size:{width:_33,height:_34}}; +if(_hasShadow){ +objj_msgSend(_shadowView,"setFrame:",{origin:{x:x-_2,y:y-_4},size:{width:_33+_2f,height:_34+_30}}); +} +} +}),new objj_method(sel_getUid("mouseDown:"),function(_38,_39,_3a){ +with(_38){ +objj_msgSend(objj_msgSend(_38,"nextResponder"),"mouseDown:",_3a); +} +}),new objj_method(sel_getUid("setEditable:"),function(_3b,_3c,_3d){ +with(_3b){ +if(_isEditable===_3d){ +return; +} +_isEditable=_3d; +if(_isEditable){ +objj_msgSend(_3b,"registerForDraggedTypes:",[CPImagesPboardType]); +}else{ +var _3e=objj_msgSend(_3b,"registeredDraggedTypes"); +objj_msgSend(_3b,"unregisterDraggedTypes"); +objj_msgSend(_3e,"removeObjectIdenticalTo:",CPImagesPboardType); +objj_msgSend(_3b,"registerForDraggedTypes:",_3e); +} +} +}),new objj_method(sel_getUid("isEditable"),function(_3f,_40){ +with(_3f){ +return _isEditable; +} +}),new objj_method(sel_getUid("performDragOperation:"),function(_41,_42,_43){ +with(_41){ +var _44=objj_msgSend(CPKeyedUnarchiver,"unarchiveObjectWithData:",objj_msgSend(objj_msgSend(_43,"draggingPasteboard"),"dataForType:",CPImagesPboardType)); +if(objj_msgSend(_44,"count")){ +objj_msgSend(_41,"setImage:",_44[0]); +} +} +})]); +var _45="CPImageViewImageKey",_46="CPImageViewImageScalingKey",_47="CPImageViewHasShadowKey",_48="CPImageViewIsEditableKey"; +var _8=objj_getClass("CPImageView"); +if(!_8){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPImageView\"")); +} +var _9=_8.isa; +class_addMethods(_8,[new objj_method(sel_getUid("initWithCoder:"),function(_49,_4a,_4b){ +with(_49){ +_49=objj_msgSendSuper({receiver:_49,super_class:objj_getClass("CPControl")},"initWithCoder:",_4b); +if(_49){ +objj_msgSend(_49,"setHasShadow:",objj_msgSend(_4b,"decodeBoolForKey:",_47)); +if(objj_msgSend(_4b,"decodeBoolForKey:",_48)||NO){ +objj_msgSend(_49,"setEditable:",YES); +} +objj_msgSend(_49,"setNeedsLayout"); +objj_msgSend(_49,"setNeedsDisplay:",YES); +} +return _49; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_4c,_4d,_4e){ +with(_4c){ +if(_shadowView){ +var _4f=_subviews; +_subviews=objj_msgSend(_subviews,"copy"); +objj_msgSend(_subviews,"removeObjectIdenticalTo:",_shadowView); +} +objj_msgSendSuper({receiver:_4c,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_4e); +if(_shadowView){ +_subviews=_4f; +} +objj_msgSend(_4e,"encodeBool:forKey:",_hasShadow,_47); +if(_isEditable){ +objj_msgSend(_4e,"encodeBool:forKey:",_isEditable,_48); +} +} +})]); +p;8;CPMenu.jI;20;Foundation/CPArray.jI;25;Foundation/CPDictionary.jI;33;Foundation/CPNotificationCenter.jI;21;Foundation/CPString.ji;15;CPApplication.ji;12;CPClipView.ji;12;CPMenuItem.ji;9;CPPanel.jc;47823; +CPMenuDidAddItemNotification="CPMenuDidAddItemNotification"; +CPMenuDidChangeItemNotification="CPMenuDidChangeItemNotification"; +CPMenuDidRemoveItemNotification="CPMenuDidRemoveItemNotification"; +CPMenuDidEndTrackingNotification="CPMenuDidEndTrackingNotification"; +var _1=19; +var _2=NO,_3="",_4=nil,_5=1,_6=nil,_7=nil; +var _8=objj_allocateClassPair(CPObject,"CPMenu"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_supermenu"),new objj_ivar("_title"),new objj_ivar("_items"),new objj_ivar("_attachedMenu"),new objj_ivar("_autoenablesItems"),new objj_ivar("_showsStateColumn"),new objj_ivar("_delegate"),new objj_ivar("_highlightedIndex"),new objj_ivar("_menuWindow")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("menuBarHeight"),function(_a,_b){ +with(_a){ +if(_a==objj_msgSend(CPApp,"mainMenu")){ +return _1; +} +return 0; +} +}),new objj_method(sel_getUid("initWithTitle:"),function(_c,_d,_e){ +with(_c){ +_c=objj_msgSendSuper({receiver:_c,super_class:objj_getClass("CPObject")},"init"); +if(_c){ +_title=_e; +_items=[]; +_autoenablesItems=YES; +_showsStateColumn=YES; +} +return _c; +} +}),new objj_method(sel_getUid("init"),function(_f,_10){ +with(_f){ +return objj_msgSend(_f,"initWithTitle:",""); +} +}),new objj_method(sel_getUid("insertItem:atIndex:"),function(_11,_12,_13,_14){ +with(_11){ +var _15=objj_msgSend(_13,"menu"); +if(_15){ +if(_15!=_11){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Attempted to insert item into menu that was already in another menu."); +}else{ +return; +} +} +objj_msgSend(_13,"setMenu:",_11); +objj_msgSend(_items,"insertObject:atIndex:",_13,_14); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPMenuDidAddItemNotification,_11,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",_14,"CPMenuItemIndex")); +} +}),new objj_method(sel_getUid("insertItemWithTitle:action:keyEquivalent:atIndex:"),function(_16,_17,_18,_19,_1a,_1b){ +with(_16){ +var _1c=objj_msgSend(objj_msgSend(CPMenuItem,"alloc"),"initWithTitle:action:keyEquivalent:",_18,_19,_1a); +objj_msgSend(_16,"insertItem:atIndex:",_1c,_1b); +return _1c; +} +}),new objj_method(sel_getUid("addItem:"),function(_1d,_1e,_1f){ +with(_1d){ +objj_msgSend(_1d,"insertItem:atIndex:",_1f,objj_msgSend(_items,"count")); +} +}),new objj_method(sel_getUid("addItemWithTitle:action:keyEquivalent:"),function(_20,_21,_22,_23,_24){ +with(_20){ +return objj_msgSend(_20,"insertItemWithTitle:action:keyEquivalent:atIndex:",_22,_23,_24,objj_msgSend(_items,"count")); +} +}),new objj_method(sel_getUid("removeItem:"),function(_25,_26,_27){ +with(_25){ +objj_msgSend(_25,"removeItemAtIndex:",objj_msgSend(_items,"indexOfObjectIdenticalTo:",_27)); +} +}),new objj_method(sel_getUid("removeItemAtIndex:"),function(_28,_29,_2a){ +with(_28){ +if(_2a<0||_2a>=_items.length){ +return; +} +objj_msgSend(_items[_2a],"setMenu:",nil); +objj_msgSend(_items,"removeObjectAtIndex:",_2a); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPMenuDidRemoveItemNotification,_28,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",_2a,"CPMenuItemIndex")); +} +}),new objj_method(sel_getUid("itemChanged:"),function(_2b,_2c,_2d){ +with(_2b){ +if(objj_msgSend(_2d,"menu")!=_2b){ +return; +} +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPMenuDidChangeItemNotification,_2b,objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",objj_msgSend(_items,"indexOfObjectIdenticalTo:",_2d),"CPMenuItemIndex")); +} +}),new objj_method(sel_getUid("menuWithTag:"),function(_2e,_2f,_30){ +with(_2e){ +var _31=objj_msgSend(_2e,"indexOfItemWithTag:",_30); +if(_31==CPNotFound){ +return nil; +} +return _items[_31]; +} +}),new objj_method(sel_getUid("menuWithTitle:"),function(_32,_33,_34){ +with(_32){ +var _35=objj_msgSend(_32,"indexOfItemWithTitle:",_34); +if(_35==CPNotFound){ +return nil; +} +return _items[_35]; +} +}),new objj_method(sel_getUid("itemAtIndex:"),function(_36,_37,_38){ +with(_36){ +return objj_msgSend(_items,"objectAtIndex:",_38); +} +}),new objj_method(sel_getUid("numberOfItems"),function(_39,_3a){ +with(_39){ +return objj_msgSend(_items,"count"); +} +}),new objj_method(sel_getUid("itemArray"),function(_3b,_3c){ +with(_3b){ +return _items; +} +}),new objj_method(sel_getUid("indexOfItem:"),function(_3d,_3e,_3f){ +with(_3d){ +if(objj_msgSend(_3f,"menu")!=_3d){ +return CPNotFound; +} +return objj_msgSend(_items,"indexOfObjectIdenticalTo:",_3f); +} +}),new objj_method(sel_getUid("indexOfItemWithTitle:"),function(_40,_41,_42){ +with(_40){ +var _43=0,_44=_items.length; +for(;_43<_44;++_43){ +if(objj_msgSend(_items[_43],"title")===_42){ +return _43; +} +} +return CPNotFound; +} +}),new objj_method(sel_getUid("indexOfItemWithTag:"),function(_45,_46,_47){ +with(_45){ +var _48=0,_49=_items.length; +for(;_48<_49;++_48){ +if(objj_msgSend(_items[_48],"tag")==_47){ +return _48; +} +} +return CPNotFound; +} +}),new objj_method(sel_getUid("indexOfItemWithTarget:andAction:"),function(_4a,_4b,_4c,_4d){ +with(_4a){ +var _4e=0,_4f=_items.length; +for(;_4e<_4f;++_4e){ +var _50=_items[_4e]; +if(objj_msgSend(_50,"target")==_4c&&(!_4d||objj_msgSend(_50,"action")==_4d)){ +return _4e; +} +} +return CPNotFound; +} +}),new objj_method(sel_getUid("indexOfItemWithRepresentedObject:"),function(_51,_52,_53){ +with(_51){ +var _54=0,_55=_items.length; +for(;_54<_55;++_54){ +if(objj_msgSend(objj_msgSend(_items[_54],"representedObject"),"isEqual:",_53)){ +return _54; +} +} +return CPNotFound; +} +}),new objj_method(sel_getUid("indexOfItemWithSubmenu:"),function(_56,_57,_58){ +with(_56){ +var _59=0,_5a=_items.length; +for(;_59<_5a;++_59){ +if(objj_msgSend(_items[_59],"submenu")==_58){ +return _59; +} +} +return CPNotFound; +} +}),new objj_method(sel_getUid("setSubmenu:forItem:"),function(_5b,_5c,_5d,_5e){ +with(_5b){ +objj_msgSend(_5e,"setTarget:",_5e); +objj_msgSend(_5e,"setAction:",sel_getUid("submenuAction:")); +objj_msgSend(_5e,"setSubmenu:",_5d); +} +}),new objj_method(sel_getUid("submenuAction:"),function(_5f,_60,_61){ +with(_5f){ +} +}),new objj_method(sel_getUid("attachedMenu"),function(_62,_63){ +with(_62){ +return _attachedMenu; +} +}),new objj_method(sel_getUid("isAttached"),function(_64,_65){ +with(_64){ +return _isAttached; +} +}),new objj_method(sel_getUid("locationOfSubmenu:"),function(_66,_67,_68){ +with(_66){ +} +}),new objj_method(sel_getUid("supermenu"),function(_69,_6a){ +with(_69){ +return _supermenu; +} +}),new objj_method(sel_getUid("setSupermenu:"),function(_6b,_6c,_6d){ +with(_6b){ +_supermenu=_6d; +} +}),new objj_method(sel_getUid("isTornOff"),function(_6e,_6f){ +with(_6e){ +return !_supermenu||_6e==objj_msgSend(CPApp,"mainMenu"); +} +}),new objj_method(sel_getUid("setAutoenablesItems:"),function(_70,_71,_72){ +with(_70){ +_autoenablesItems=_72; +} +}),new objj_method(sel_getUid("autoenablesItems"),function(_73,_74){ +with(_73){ +return _autoenablesItems; +} +}),new objj_method(sel_getUid("update"),function(_75,_76){ +with(_75){ +} +}),new objj_method(sel_getUid("setTitle:"),function(_77,_78,_79){ +with(_77){ +_title=_79; +} +}),new objj_method(sel_getUid("title"),function(_7a,_7b){ +with(_7a){ +return _title; +} +}),new objj_method(sel_getUid("setShowsStateColumn:"),function(_7c,_7d,_7e){ +with(_7c){ +_showsStateColumn=_7e; +} +}),new objj_method(sel_getUid("showsStateColumn"),function(_7f,_80){ +with(_7f){ +return _showsStateColumn; +} +}),new objj_method(sel_getUid("highlightedItem"),function(_81,_82){ +with(_81){ +return _highlightedIndex>=0?_items[_highlightedIndex]:nil; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_83,_84,_85){ +with(_83){ +_delegate=_85; +} +}),new objj_method(sel_getUid("delegate"),function(_86,_87){ +with(_86){ +return _delegate; +} +}),new objj_method(sel_getUid("cancelTracking"),function(_88,_89){ +with(_88){ +objj_msgSend(_menuWindow,"cancelTracking"); +} +}),new objj_method(sel_getUid("_setMenuWindow:"),function(_8a,_8b,_8c){ +with(_8a){ +_menuWindow=_8c; +} +}),new objj_method(sel_getUid("performKeyEquivalent:"),function(_8d,_8e,_8f){ +with(_8d){ +if(_autoenablesItems){ +objj_msgSend(_8d,"update"); +} +var _90=0,_91=_items.length,_92=objj_msgSend(_8f,"charactersIgnoringModifiers"),_93=objj_msgSend(_8f,"modifierFlags"); +for(;_90<_91;++_90){ +var _94=_items[_90],_95=objj_msgSend(_94,"keyEquivalentModifierMask"); +if((_93&(CPShiftKeyMask|CPAlternateKeyMask|CPCommandKeyMask|CPControlKeyMask))==_95&&objj_msgSend(_92,"caseInsensitiveCompare:",objj_msgSend(_94,"keyEquivalent"))==CPOrderedSame){ +if(objj_msgSend(_94,"isEnabled")){ +objj_msgSend(_8d,"performActionForItemAtIndex:",_90); +}else{ +} +return YES; +} +if(objj_msgSend(objj_msgSend(_94,"submenu"),"performKeyEquivalent:",_8f)){ +return YES; +} +} +return NO; +} +}),new objj_method(sel_getUid("performActionForItemAtIndex:"),function(_96,_97,_98){ +with(_96){ +var _99=_items[_98]; +objj_msgSend(CPApp,"sendAction:to:from:",objj_msgSend(_99,"action"),objj_msgSend(_99,"target"),_99); +} +}),new objj_method(sel_getUid("_itemIsHighlighted:"),function(_9a,_9b,_9c){ +with(_9a){ +return _items[_highlightedIndex]==_9c; +} +}),new objj_method(sel_getUid("_highlightItemAtIndex:"),function(_9d,_9e,_9f){ +with(_9d){ +var _a0=_highlightedIndex; +_highlightedIndex=_9f; +if(_a0!=CPNotFound){ +objj_msgSend(objj_msgSend(_items[_a0],"_menuItemView"),"highlight:",NO); +} +if(_highlightedIndex!=CPNotFound){ +objj_msgSend(objj_msgSend(_items[_highlightedIndex],"_menuItemView"),"highlight:",YES); +} +} +})]); +class_addMethods(_9,[new objj_method(sel_getUid("initialize"),function(_a1,_a2){ +with(_a1){ +objj_msgSend(objj_msgSend(_a1,"class"),"setMenuBarAttributes:",objj_msgSend(CPDictionary,"dictionary")); +} +}),new objj_method(sel_getUid("menuBarVisible"),function(_a3,_a4){ +with(_a3){ +return _2; +} +}),new objj_method(sel_getUid("setMenuBarVisible:"),function(_a5,_a6,_a7){ +with(_a5){ +if(_2==_a7){ +return; +} +_2=_a7; +if(_a7){ +if(!_7){ +_7=objj_msgSend(objj_msgSend(_CPMenuBarWindow,"alloc"),"init"); +} +objj_msgSend(_7,"setMenu:",objj_msgSend(CPApp,"mainMenu")); +objj_msgSend(_7,"setTitle:",_3); +objj_msgSend(_7,"setIconImage:",_4); +objj_msgSend(_7,"setIconImageAlphaValue:",_5); +objj_msgSend(_7,"setColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarBackgroundColor")); +objj_msgSend(_7,"setTextColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTextColor")); +objj_msgSend(_7,"setTitleColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTitleColor")); +objj_msgSend(_7,"setTextShadowColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTextShadowColor")); +objj_msgSend(_7,"setTitleShadowColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTitleShadowColor")); +objj_msgSend(_7,"setHighlightColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarHighlightColor")); +objj_msgSend(_7,"setHighlightTextColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarHighlightTextColor")); +objj_msgSend(_7,"setHighlightTextShadowColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarHighlightTextShadowColor")); +objj_msgSend(_7,"orderFront:",_a5); +}else{ +objj_msgSend(_7,"orderOut:",_a5); +} +} +}),new objj_method(sel_getUid("setMenuBarTitle:"),function(_a8,_a9,_aa){ +with(_a8){ +_3=_aa; +objj_msgSend(_7,"setTitle:",_3); +} +}),new objj_method(sel_getUid("menuBarTitle"),function(_ab,_ac){ +with(_ab){ +return _3; +} +}),new objj_method(sel_getUid("setMenuBarIconImage:"),function(_ad,_ae,_af){ +with(_ad){ +_CPMenuBarImage=_af; +objj_msgSend(_7,"setIconImage:",_af); +} +}),new objj_method(sel_getUid("menuBarIconImage"),function(_b0,_b1){ +with(_b0){ +return _CPMenuBarImage; +} +}),new objj_method(sel_getUid("setMenuBarAttributes:"),function(_b2,_b3,_b4){ +with(_b2){ +if(_6==_b4){ +return; +} +_6=objj_msgSend(_b4,"copy"); +var _b5=objj_msgSend(_b4,"objectForKey:","CPMenuBarTextColor"),_b6=objj_msgSend(_b4,"objectForKey:","CPMenuBarTitleColor"),_b7=objj_msgSend(_b4,"objectForKey:","CPMenuBarTextShadowColor"),_b8=objj_msgSend(_b4,"objectForKey:","CPMenuBarTitleShadowColor"),_b9=objj_msgSend(_b4,"objectForKey:","CPMenuBarHighlightColor"),_ba=objj_msgSend(_b4,"objectForKey:","CPMenuBarHighlightTextColor"),_bb=objj_msgSend(_b4,"objectForKey:","CPMenuBarHighlightTextShadowColor"); +if(!_b5&&_b6){ +objj_msgSend(_6,"setObject:forKey:",_b6,"CPMenuBarTextColor"); +}else{ +if(_b5&&!_b6){ +objj_msgSend(_6,"setObject:forKey:",_b5,"CPMenuBarTitleColor"); +}else{ +if(!_b5&&!_b6){ +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"colorWithRed:green:blue:alpha:",0.051,0.2,0.275,1),"CPMenuBarTextColor"); +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"colorWithRed:green:blue:alpha:",0.051,0.2,0.275,1),"CPMenuBarTitleColor"); +} +} +} +if(!_b7&&_b8){ +objj_msgSend(_6,"setObject:forKey:",_b8,"CPMenuBarTextShadowColor"); +}else{ +if(_b7&&!_b8){ +objj_msgSend(_6,"setObject:forKey:",_b7,"CPMenuBarTitleShadowColor"); +}else{ +if(!_b7&&!_b8){ +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"whiteColor"),"CPMenuBarTextShadowColor"); +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"whiteColor"),"CPMenuBarTitleShadowColor"); +} +} +} +if(!_b9){ +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",94/255,130/255,186/255,1),"CPMenuBarHighlightColor"); +} +if(!_ba){ +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"whiteColor"),"CPMenuBarHighlightTextColor"); +} +if(!_bb){ +objj_msgSend(_6,"setObject:forKey:",objj_msgSend(CPColor,"blackColor"),"CPMenuBarHighlightTextShadowColor"); +} +if(_7){ +objj_msgSend(_7,"setColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarBackgroundColor")); +objj_msgSend(_7,"setTextColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTextColor")); +objj_msgSend(_7,"setTitleColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTitleColor")); +objj_msgSend(_7,"setTextShadowColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTextShadowColor")); +objj_msgSend(_7,"setTitleShadowColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarTitleShadowColor")); +objj_msgSend(_7,"setHighlightColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarHighlightColor")); +objj_msgSend(_7,"setHighlightTextColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarHighlightTextColor")); +objj_msgSend(_7,"setHighlightTextShadowColor:",objj_msgSend(_6,"objectForKey:","CPMenuBarHighlightTextShadowColor")); +} +} +}),new objj_method(sel_getUid("menuBarAttributes"),function(_bc,_bd){ +with(_bc){ +return _6; +} +}),new objj_method(sel_getUid("_setMenuBarIconImageAlphaValue:"),function(_be,_bf,_c0){ +with(_be){ +_5=_c0; +objj_msgSend(_7,"setIconImageAlphaValue:",_c0); +} +}),new objj_method(sel_getUid("menuBarHeight"),function(_c1,_c2){ +with(_c1){ +return _1; +} +}),new objj_method(sel_getUid("popUpContextMenu:withEvent:forView:"),function(_c3,_c4,_c5,_c6,_c7){ +with(_c3){ +objj_msgSend(_c3,"popUpContextMenu:withEvent:forView:withFont:",_c5,_c6,_c7,nil); +} +}),new objj_method(sel_getUid("popUpContextMenu:withEvent:forView:withFont:"),function(_c8,_c9,_ca,_cb,_cc,_cd){ +with(_c8){ +objj_msgSend(_c8,"_popUpContextMenu:withEvent:forView:withFont:forMenuBar:",_ca,_cb,_cc,_cd,NO); +} +}),new objj_method(sel_getUid("_popUpContextMenu:withEvent:forView:withFont:forMenuBar:"),function(_ce,_cf,_d0,_d1,_d2,_d3,_d4){ +with(_ce){ +var _d5=objj_msgSend(_d0,"delegate"); +if(objj_msgSend(_d5,"respondsToSelector:",sel_getUid("menuWillOpen:"))){ +objj_msgSend(_d5,"menuWillOpen:",_d0); +} +if(!_d3){ +_d3=objj_msgSend(CPFont,"systemFontOfSize:",12); +} +var _d6=objj_msgSend(_d2,"window"),_d7=objj_msgSend(_CPMenuWindow,"menuWindowWithMenu:font:",_d0,_d3); +objj_msgSend(_d7,"setDelegate:",_ce); +objj_msgSend(_d7,"setBackgroundStyle:",_d4?_CPMenuWindowMenuBarBackgroundStyle:_CPMenuWindowPopUpBackgroundStyle); +objj_msgSend(_d7,"setFrameOrigin:",objj_msgSend(objj_msgSend(_d1,"window"),"convertBaseToBridge:",objj_msgSend(_d1,"locationInWindow"))); +objj_msgSend(_d7,"orderFront:",_ce); +objj_msgSend(_d7,"beginTrackingWithEvent:sessionDelegate:didEndSelector:",_d1,_ce,sel_getUid("_menuWindowDidFinishTracking:highlightedItem:")); +} +}),new objj_method(sel_getUid("_menuWindowDidFinishTracking:highlightedItem:"),function(_d8,_d9,_da,_db){ +with(_d8){ +var _dc=objj_msgSend(_da,"menu"); +objj_msgSend(_CPMenuWindow,"poolMenuWindow:",_da); +var _dd=objj_msgSend(_dc,"delegate"); +if(objj_msgSend(_dd,"respondsToSelector:",sel_getUid("menuDidClose:"))){ +objj_msgSend(_dd,"menuDidClose:",_dc); +} +if(objj_msgSend(_db,"isEnabled")){ +objj_msgSend(CPApp,"sendAction:to:from:",objj_msgSend(_db,"action"),objj_msgSend(_db,"target"),_db); +} +} +})]); +var _de="CPMenuTitleKey",_df="CPMenuItemsKey",_e0="CPMenuShowsStateColumnKey"; +var _8=objj_getClass("CPMenu"); +if(!_8){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPMenu\"")); +} +var _9=_8.isa; +class_addMethods(_8,[new objj_method(sel_getUid("initWithCoder:"),function(_e1,_e2,_e3){ +with(_e1){ +_e1=objj_msgSendSuper({receiver:_e1,super_class:objj_getClass("CPObject")},"init"); +if(_e1){ +_title=objj_msgSend(_e3,"decodeObjectForKey:",_de); +_items=objj_msgSend(_e3,"decodeObjectForKey:",_df); +_showsStateColumn=!objj_msgSend(_e3,"containsValueForKey:",_e0)||objj_msgSend(_e3,"decodeBoolForKey:",_e0); +} +return _e1; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_e4,_e5,_e6){ +with(_e4){ +objj_msgSend(_e6,"encodeObject:forKey:",_title,_de); +objj_msgSend(_e6,"encodeObject:forKey:",_items,_df); +if(!_showsStateColumn){ +objj_msgSend(_e6,"encodeBool:forKey:",_showsStateColumn,_e0); +} +} +})]); +var _e7=[],_e8=5,_e9=[],_ea=-1,_eb=1,_ec=0; +_CPMenuWindowMenuBarBackgroundStyle=0; +_CPMenuWindowPopUpBackgroundStyle=1; +_CPMenuWindowAttachedMenuBackgroundStyle=2; +var _ed=500,_ee=5,_ef=1,_f0=1,_f1=5,_f2=16; +var _8=objj_allocateClassPair(CPWindow,"_CPMenuWindow"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_menuView"),new objj_ivar("_menuClipView"),new objj_ivar("_lastMouseOverMenuView"),new objj_ivar("_moreAboveView"),new objj_ivar("_moreBelowView"),new objj_ivar("_sessionDelegate"),new objj_ivar("_didEndSelector"),new objj_ivar("_startTime"),new objj_ivar("_scrollingState"),new objj_ivar("_lastScreenLocation"),new objj_ivar("_isShowingTopScrollIndicator"),new objj_ivar("_isShowingBottomScrollIndicator"),new objj_ivar("_trackingCanceled"),new objj_ivar("_unconstrainedFrame")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("init"),function(_f3,_f4){ +with(_f3){ +_f3=objj_msgSendSuper({receiver:_f3,super_class:objj_getClass("CPWindow")},"initWithContentRect:styleMask:",CGRectMakeZero(),CPBorderlessWindowMask); +if(_f3){ +objj_msgSend(_f3,"setLevel:",CPPopUpMenuWindowLevel); +objj_msgSend(_f3,"setHasShadow:",YES); +objj_msgSend(_f3,"setAcceptsMouseMovedEvents:",YES); +_unconstrainedFrame=CGRectMakeZero(); +var _f5=objj_msgSend(_f3,"contentView"); +_menuView=objj_msgSend(objj_msgSend(_CPMenuView,"alloc"),"initWithFrame:",CGRectMakeZero()); +_menuClipView=objj_msgSend(objj_msgSend(CPClipView,"alloc"),"initWithFrame:",CGRectMake(_ef,_ee,0,0)); +objj_msgSend(_menuClipView,"setDocumentView:",_menuView); +objj_msgSend(_f5,"addSubview:",_menuClipView); +_moreAboveView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_moreAboveView,"setImage:",_CPMenuWindowMoreAboveImage); +objj_msgSend(_moreAboveView,"setFrameSize:",objj_msgSend(_CPMenuWindowMoreAboveImage,"size")); +objj_msgSend(_f5,"addSubview:",_moreAboveView); +_moreBelowView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_moreBelowView,"setImage:",_CPMenuWindowMoreBelowImage); +objj_msgSend(_moreBelowView,"setFrameSize:",objj_msgSend(_CPMenuWindowMoreBelowImage,"size")); +objj_msgSend(_f5,"addSubview:",_moreBelowView); +} +return _f3; +} +}),new objj_method(sel_getUid("overlapOffsetWidth"),function(_f6,_f7){ +with(_f6){ +return _ef; +} +}),new objj_method(sel_getUid("setFont:"),function(_f8,_f9,_fa){ +with(_f8){ +objj_msgSend(_menuView,"setFont:",_fa); +} +}),new objj_method(sel_getUid("setBackgroundStyle:"),function(_fb,_fc,_fd){ +with(_fb){ +var _fe=_e9[_fd]; +if(!_fe){ +var _ff=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_fb,"class")); +if(_fd==_CPMenuWindowPopUpBackgroundStyle){ +_fe=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindowRounded0.png"),CGSizeMake(4,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow1.png"),CGSizeMake(1,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindowRounded2.png"),CGSizeMake(4,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow3.png"),CGSizeMake(4,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow4.png"),CGSizeMake(1,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow5.png"),CGSizeMake(4,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindowRounded6.png"),CGSizeMake(4,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow7.png"),CGSizeMake(1,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindowRounded8.png"),CGSizeMake(4,4))])); +}else{ +if(_fd==_CPMenuWindowMenuBarBackgroundStyle){ +_fe=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow3.png"),CGSizeMake(4,0)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow4.png"),CGSizeMake(1,0)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow5.png"),CGSizeMake(4,0)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow3.png"),CGSizeMake(4,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow4.png"),CGSizeMake(1,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow5.png"),CGSizeMake(4,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindowRounded6.png"),CGSizeMake(4,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindow7.png"),CGSizeMake(1,4)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ff,"pathForResource:","_CPMenuWindow/_CPMenuWindowRounded8.png"),CGSizeMake(4,4))])); +} +} +_e9[_fd]=_fe; +} +objj_msgSend(_fb,"setBackgroundColor:",_fe); +} +}),new objj_method(sel_getUid("setMenu:"),function(self,_cmd,_102){ +with(self){ +objj_msgSend(_102,"_setMenuWindow:",self); +objj_msgSend(_menuView,"setMenu:",_102); +var _103=objj_msgSend(_menuView,"frame").size; +objj_msgSend(self,"setFrameSize:",CGSizeMake(_ef+_103.width+_f0,_ee+_103.height+_f1)); +objj_msgSend(_menuView,"scrollPoint:",CGPointMake(0,0)); +objj_msgSend(_menuClipView,"setFrame:",CGRectMake(_ef,_ee,_103.width,_103.height)); +} +}),new objj_method(sel_getUid("setMinWidth:"),function(self,_cmd,_106){ +with(self){ +var size=objj_msgSend(self,"frame").size; +objj_msgSend(self,"setFrameSize:",CGSizeMake(MAX(size.width,_106),size.height)); +} +}),new objj_method(sel_getUid("rectForItemAtIndex:"),function(self,_cmd,_10a){ +with(self){ +return objj_msgSend(_menuView,"convertRect:toView:",objj_msgSend(_menuView,"rectForItemAtIndex:",_10a),nil); +} +}),new objj_method(sel_getUid("orderFront:"),function(self,_cmd,_10d){ +with(self){ +objj_msgSend(self,"constrainToScreen"); +objj_msgSendSuper({receiver:self,super_class:objj_getClass("CPWindow")},"orderFront:",_10d); +} +}),new objj_method(sel_getUid("constrainToScreen"),function(self,_cmd){ +with(self){ +_unconstrainedFrame=CGRectMakeCopy(objj_msgSend(self,"frame")); +var _110=CGRectInset(objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"contentBounds"),5,5),_111=CGRectIntersection(_unconstrainedFrame,_110),_112=objj_msgSend(self,"convertBaseToBridge:",CGPointMake(_ef,_ee)); +_111.origin.x=CGRectGetMinX(_unconstrainedFrame); +_111.size.width=CGRectGetWidth(_unconstrainedFrame); +if(CGRectGetWidth(_111)>CGRectGetWidth(_110)){ +_111.size.width=CGRectGetWidth(_110); +} +if(CGRectGetMaxX(_111)>CGRectGetMaxX(_110)){ +_111.origin.x-=CGRectGetMaxX(_111)-CGRectGetMaxX(_110); +} +if(CGRectGetMinX(_111)CGRectGetMaxY(_111)-_f1; +if(_117){ +_113+=_f2; +var _119=objj_msgSend(_moreAboveView,"frame"); +objj_msgSend(_moreAboveView,"setFrameOrigin:",CGPointMake((CGRectGetWidth(_116)-CGRectGetWidth(_119))/2,(_ee+_f2-CGRectGetHeight(_119))/2)); +} +objj_msgSend(_moreAboveView,"setHidden:",!_117); +if(_118){ +_114+=_f2; +objj_msgSend(_moreBelowView,"setFrameOrigin:",CGPointMake((CGRectGetWidth(_116)-CGRectGetWidth(objj_msgSend(_moreBelowView,"frame")))/2,CGRectGetHeight(_116)-_f2-_f1)); +} +objj_msgSend(_moreBelowView,"setHidden:",!_118); +var _11a=CGRectMake(_ef,_113,CGRectGetWidth(_111)-_ef-_f0,CGRectGetHeight(_111)-_113-_114); +objj_msgSend(_menuClipView,"setFrame:",_11a); +objj_msgSend(_menuView,"setFrameSize:",CGSizeMake(CGRectGetWidth(_11a),CGRectGetHeight(objj_msgSend(_menuView,"frame")))); +objj_msgSend(_menuView,"scrollPoint:",CGPointMake(0,objj_msgSend(self,"convertBaseToBridge:",_11a.origin).y-_112.y)); +} +}),new objj_method(sel_getUid("cancelTracking"),function(self,_cmd){ +with(self){ +_trackingCanceled=YES; +} +}),new objj_method(sel_getUid("beginTrackingWithEvent:sessionDelegate:didEndSelector:"),function(self,_cmd,_11f,_120,_121){ +with(self){ +_startTime=objj_msgSend(_11f,"timestamp"); +_scrollingState=_ec; +_trackingCanceled=NO; +_sessionDelegate=_120; +_didEndSelector=_121; +objj_msgSend(self,"trackEvent:",_11f); +} +}),new objj_method(sel_getUid("trackEvent:"),function(self,_cmd,_124){ +with(self){ +var type=objj_msgSend(_124,"type"),_126=objj_msgSend(_124,"window"),_127=_126?objj_msgSend(_126,"convertBaseToBridge:",objj_msgSend(_124,"locationInWindow")):objj_msgSend(_124,"locationInWindow"); +if(type==CPPeriodic){ +var _128=CGRectInset(objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"contentBounds"),5,5); +if(_scrollingState==_ea){ +if(CGRectGetMinY(_unconstrainedFrame)CGRectGetHeight(_128)){ +_unconstrainedFrame.origin.y-=10; +} +} +} +objj_msgSend(self,"setFrame:",_unconstrainedFrame); +objj_msgSend(self,"constrainToScreen"); +_127=_lastScreenLocation; +} +_lastScreenLocation=_127; +var menu=objj_msgSend(_menuView,"menu"),_12a=objj_msgSend(self,"convertBridgeToBase:",_127),_12b=objj_msgSend(_menuView,"itemIndexAtPoint:",objj_msgSend(_menuView,"convertPoint:fromView:",_12a,nil)),_12c=objj_msgSend(objj_msgSend(menu,"itemAtIndex:",_12b),"view"); +if(_12c){ +if(!_lastMouseOverMenuView){ +objj_msgSend(menu,"_highlightItemAtIndex:",CPNotFound); +} +if(_lastMouseOverMenuView!=_12c){ +objj_msgSend(_12c,"mouseExited:",_124); +objj_msgSend(_lastMouseOverMenuView,"mouseEntered:",_124); +_lastMouseOverMenuView=_12c; +} +objj_msgSend(self,"sendEvent:",objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",type,_12a,objj_msgSend(_124,"modifierFlags"),objj_msgSend(_124,"timestamp"),objj_msgSend(self,"windowNumber"),nil,0,objj_msgSend(_124,"clickCount"),objj_msgSend(_124,"pressure"))); +}else{ +if(_lastMouseOverMenuView){ +objj_msgSend(_lastMouseOverMenuView,"mouseExited:",_124); +_lastMouseOverMenuView=nil; +} +objj_msgSend(menu,"_highlightItemAtIndex:",objj_msgSend(_menuView,"itemIndexAtPoint:",objj_msgSend(_menuView,"convertPoint:fromView:",objj_msgSend(self,"convertBridgeToBase:",_127),nil))); +if(type==CPMouseMoved||type==CPLeftMouseDragged||type==CPLeftMouseDown){ +var _12d=objj_msgSend(self,"frame"),_12e=_scrollingState; +_scrollingState=_ec; +if(_127.yCGRectGetMaxY(_12d)-_f1-_f2){ +_scrollingState=_eb; +} +} +if(_scrollingState!=_12e){ +if(_scrollingState==_ec){ +objj_msgSend(CPEvent,"stopPeriodicEvents"); +}else{ +if(_12e==_ec){ +objj_msgSend(CPEvent,"startPeriodicEventsAfterDelay:withPeriod:",0,0.04); +} +} +} +}else{ +if(type==CPLeftMouseUp&&(objj_msgSend(_124,"timestamp")-_startTime>_ed)){ +if(_scrollingState!=_ec){ +objj_msgSend(CPEvent,"stopPeriodicEvents"); +} +objj_msgSend(self,"cancelTracking"); +} +} +} +if(_trackingCanceled){ +objj_msgSend(CPEvent,"stopPeriodicEvents"); +var _12f=objj_msgSend(objj_msgSend(_menuView,"menu"),"highlightedItem"); +objj_msgSend(menu,"_highlightItemAtIndex:",CPNotFound); +objj_msgSend(_menuView,"setMenu:",nil); +objj_msgSend(self,"orderOut:",self); +if(_sessionDelegate&&_didEndSelector){ +objj_msgSend(_sessionDelegate,_didEndSelector,self,_12f); +} +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPMenuDidEndTrackingNotification,menu); +var _130=objj_msgSend(menu,"delegate"); +if(objj_msgSend(_130,"respondsToSelector:",sel_getUid("menuDidClose:"))){ +objj_msgSend(_130,"menuDidClose:",menu); +} +return; +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",self,sel_getUid("trackEvent:"),CPPeriodicMask|CPMouseMovedMask|CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +})]); +class_addMethods(_9,[new objj_method(sel_getUid("menuWindowWithMenu:font:"),function(self,_cmd,_133,_134){ +with(self){ +var _135=nil; +if(_e7.length){ +_135=_e7.pop(); +}else{ +_135=objj_msgSend(objj_msgSend(_CPMenuWindow,"alloc"),"init"); +} +objj_msgSend(_135,"setFont:",_134); +objj_msgSend(_135,"setMenu:",_133); +return _135; +} +}),new objj_method(sel_getUid("poolMenuWindow:"),function(self,_cmd,_138){ +with(self){ +if(!_138||_e7.length>=_e8){ +return; +} +_e7.push(_138); +} +}),new objj_method(sel_getUid("initialize"),function(self,_cmd){ +with(self){ +if(self!=objj_msgSend(_CPMenuWindow,"class")){ +return; +} +var _13b=objj_msgSend(CPBundle,"bundleForClass:",self); +_CPMenuWindowMoreAboveImage=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_13b,"pathForResource:","_CPMenuWindow/_CPMenuWindowMoreAbove.png"),CGSizeMake(38,18)); +_CPMenuWindowMoreBelowImage=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_13b,"pathForResource:","_CPMenuWindow/_CPMenuWindowMoreBelow.png"),CGSizeMake(38,18)); +} +})]); +var _8=objj_allocateClassPair(CPView,"_CPMenuView"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_menuItemViews"),new objj_ivar("_visibleMenuItemInfos"),new objj_ivar("_font")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("setFont:"),function(self,_cmd,_13e){ +with(self){ +_font=_13e; +} +}),new objj_method(sel_getUid("rectForItemAtIndex:"),function(self,_cmd,_141){ +with(self){ +return objj_msgSend(_menuItemViews[_141==CPNotFound?0:_141],"frame"); +} +}),new objj_method(sel_getUid("itemIndexAtPoint:"),function(self,_cmd,_144){ +with(self){ +var x=_144.x,_146=objj_msgSend(self,"bounds"); +if(xCGRectGetMaxX(_146)){ +return CPNotFound; +} +var y=_144.y,low=0,high=_visibleMenuItemInfos.length-1; +while(low<=high){ +var _14a=FLOOR(low+(high-low)/2),info=_visibleMenuItemInfos[_14a]; +frame=objj_msgSend(info.view,"frame"); +if(yCGRectGetMaxY(frame)){ +low=_14a+1; +}else{ +return info.index; +} +} +} +return CPNotFound; +} +}),new objj_method(sel_getUid("setMenu:"),function(self,_cmd,_14e){ +with(self){ +objj_msgSendSuper({receiver:self,super_class:objj_getClass("CPView")},"setMenu:",_14e); +objj_msgSend(_menuItemViews,"makeObjectsPerformSelector:",sel_getUid("removeFromSuperview")); +_menuItemViews=[]; +_visibleMenuItemInfos=[]; +var menu=objj_msgSend(self,"menu"); +if(!menu){ +return; +} +var _150=objj_msgSend(menu,"itemArray"),_151=0,_152=objj_msgSend(_150,"count"),_153=0,y=0,_155=objj_msgSend(menu,"showsStateColumn"); +for(;_151<_152;++_151){ +var item=_150[_151],view=objj_msgSend(item,"_menuItemView"); +_menuItemViews.push(view); +if(objj_msgSend(item,"isHidden")){ +continue; +} +_visibleMenuItemInfos.push({view:view,index:_151}); +objj_msgSend(view,"setFont:",_font); +objj_msgSend(view,"setShowsStateColumn:",_155); +objj_msgSend(view,"synchronizeWithMenuItem"); +objj_msgSend(view,"setFrameOrigin:",CGPointMake(0,y)); +objj_msgSend(self,"addSubview:",view); +var size=objj_msgSend(view,"minSize"),_159=size.width; +if(_153<_159){ +_153=_159; +} +y+=size.height; +} +for(_151=0;_151<_152;++_151){ +var view=_menuItemViews[_151]; +objj_msgSend(view,"setFrameSize:",CGSizeMake(_153,CGRectGetHeight(objj_msgSend(view,"frame")))); +} +objj_msgSend(self,"setAutoresizesSubviews:",NO); +objj_msgSend(self,"setFrameSize:",CGSizeMake(_153,y)); +objj_msgSend(self,"setAutoresizesSubviews:",YES); +} +})]); +var _1=29,_15a=10,_15b=10,_15c=10; +var _15d=nil,_15e=nil; +var _8=objj_allocateClassPair(CPPanel,"_CPMenuBarWindow"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_menu"),new objj_ivar("_highlightView"),new objj_ivar("_menuItemViews"),new objj_ivar("_trackingMenuItem"),new objj_ivar("_iconImageView"),new objj_ivar("_titleField"),new objj_ivar("_textColor"),new objj_ivar("_titleColor"),new objj_ivar("_textShadowColor"),new objj_ivar("_titleShadowColor"),new objj_ivar("_highlightColor"),new objj_ivar("_highlightTextColor"),new objj_ivar("_highlightTextShadowColor")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("init"),function(self,_cmd){ +with(self){ +var _161=CGRectGetWidth(objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"contentBounds")); +self=objj_msgSendSuper({receiver:self,super_class:objj_getClass("CPPanel")},"initWithContentRect:styleMask:",CGRectMake(0,0,_161,_1),CPBorderlessWindowMask); +if(self){ +objj_msgSend(self,"setLevel:",-1); +objj_msgSend(self,"setAutoresizingMask:",CPWindowWidthSizable); +var _162=objj_msgSend(self,"contentView"); +objj_msgSend(_162,"setAutoresizesSubviews:",NO); +objj_msgSend(self,"setBecomesKeyOnlyIfNeeded:",YES); +_iconImageView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CGRectMake(0,0,16,16)); +objj_msgSend(_162,"addSubview:",_iconImageView); +_titleField=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_titleField,"setFont:",objj_msgSend(CPFont,"boldSystemFontOfSize:",12)); +objj_msgSend(_titleField,"setAlignment:",CPCenterTextAlignment); +objj_msgSend(_titleField,"setTextShadowOffset:",CGSizeMake(0,1)); +objj_msgSend(_162,"addSubview:",_titleField); +} +return self; +} +}),new objj_method(sel_getUid("setTitle:"),function(self,_cmd,_165){ +with(self){ +objj_msgSend(_titleField,"setStringValue:",_165); +objj_msgSend(_titleField,"sizeToFit"); +objj_msgSend(self,"tile"); +} +}),new objj_method(sel_getUid("setIconImage:"),function(self,_cmd,_168){ +with(self){ +objj_msgSend(_iconImageView,"setImage:",_168); +objj_msgSend(_iconImageView,"setHidden:",_168==nil); +objj_msgSend(self,"tile"); +} +}),new objj_method(sel_getUid("setIconImageAlphaValue:"),function(self,_cmd,_16b){ +with(self){ +objj_msgSend(_iconImageView,"setAlphaValue:",_16b); +} +}),new objj_method(sel_getUid("setColor:"),function(self,_cmd,_16e){ +with(self){ +if(!_16e){ +if(!_15d){ +_15d=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_CPMenuBarWindow,"class")),"pathForResource:","_CPMenuBarWindow/_CPMenuBarWindowBackground.png"),CGSizeMake(1,18))); +} +objj_msgSend(objj_msgSend(self,"contentView"),"setBackgroundColor:",_15d); +}else{ +objj_msgSend(objj_msgSend(self,"contentView"),"setBackgroundColor:",_16e); +} +} +}),new objj_method(sel_getUid("setTextColor:"),function(self,_cmd,_171){ +with(self){ +if(_textColor==_171){ +return; +} +_textColor=_171; +objj_msgSend(_menuItemViews,"makeObjectsPerformSelector:withObject:",sel_getUid("setTextColor:"),_textColor); +} +}),new objj_method(sel_getUid("setTitleColor:"),function(self,_cmd,_174){ +with(self){ +if(_titleColor==_174){ +return; +} +_titleColor=_174; +objj_msgSend(_titleField,"setTextColor:",_174?_174:objj_msgSend(CPColor,"blackColor")); +} +}),new objj_method(sel_getUid("setTextShadowColor:"),function(self,_cmd,_177){ +with(self){ +if(_textShadowColor==_177){ +return; +} +_textShadowColor=_177; +objj_msgSend(_menuItemViews,"makeObjectsPerformSelector:withObject:",sel_getUid("setTextShadowColor:"),_textShadowColor); +} +}),new objj_method(sel_getUid("setTitleShadowColor:"),function(self,_cmd,_17a){ +with(self){ +if(_titleShadowColor==_17a){ +return; +} +_titleShadowColor=_17a; +objj_msgSend(_titleField,"setTextShadowColor:",_17a?_17a:objj_msgSend(CPColor,"whiteColor")); +} +}),new objj_method(sel_getUid("setHighlightColor:"),function(self,_cmd,_17d){ +with(self){ +if(_highlightColor==_17d){ +return; +} +_highlightColor=_17d; +} +}),new objj_method(sel_getUid("setHighlightTextColor:"),function(self,_cmd,_180){ +with(self){ +if(_highlightTextColor==_180){ +return; +} +_highlightTextColor=_180; +objj_msgSend(_menuItemViews,"makeObjectsPerformSelector:withObject:",sel_getUid("setActivateColor:"),_highlightTextColor); +} +}),new objj_method(sel_getUid("setHighlightTextShadowColor:"),function(self,_cmd,_183){ +with(self){ +if(_highlightTextShadowColor==_183){ +return; +} +_highlightTextShadowColor=_183; +objj_msgSend(_menuItemViews,"makeObjectsPerformSelector:withObject:",sel_getUid("setActivateShadowColor:"),_highlightTextShadowColor); +} +}),new objj_method(sel_getUid("setMenu:"),function(self,_cmd,_186){ +with(self){ +if(_menu==_186){ +return; +} +var _187=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(_menu){ +objj_msgSend(_187,"removeObserver:name:object:",self,CPMenuDidAddItemNotification,_menu); +objj_msgSend(_187,"removeObserver:name:object:",self,CPMenuDidChangeItemNotification,_menu); +objj_msgSend(_187,"removeObserver:name:object:",self,CPMenuDidRemoveItemNotification,_menu); +var _188=objj_msgSend(_menu,"itemArray"),_189=_188.length; +while(_189--){ +objj_msgSend(objj_msgSend(_188[_189],"_menuItemView"),"removeFromSuperview"); +} +} +_menu=_186; +if(_menu){ +objj_msgSend(_187,"addObserver:selector:name:object:",self,sel_getUid("menuDidAddItem:"),CPMenuDidAddItemNotification,_menu); +objj_msgSend(_187,"addObserver:selector:name:object:",self,sel_getUid("menuDidChangeItem:"),CPMenuDidChangeItemNotification,_menu); +objj_msgSend(_187,"addObserver:selector:name:object:",self,sel_getUid("menuDidRemoveItem:"),CPMenuDidRemoveItemNotification,_menu); +} +_menuItemViews=[]; +var _18a=objj_msgSend(self,"contentView"),_188=objj_msgSend(_menu,"itemArray"),_189=_188.length; +for(index=0;index<_189;++index){ +var item=_188[index],_18c=objj_msgSend(item,"_menuItemView"); +_menuItemViews.push(_18c); +objj_msgSend(_18c,"setShowsStateColumn:",NO); +objj_msgSend(_18c,"setBelongsToMenuBar:",YES); +objj_msgSend(_18c,"setFont:",_15e); +objj_msgSend(_18c,"setTextColor:",_textColor); +objj_msgSend(_18c,"setHidden:",objj_msgSend(item,"isHidden")); +objj_msgSend(_18c,"synchronizeWithMenuItem"); +objj_msgSend(_18a,"addSubview:",_18c); +} +objj_msgSend(self,"tile"); +} +}),new objj_method(sel_getUid("menuDidChangeItem:"),function(self,_cmd,_18f){ +with(self){ +var _190=objj_msgSend(_menu,"itemAtIndex:",objj_msgSend(objj_msgSend(_18f,"userInfo"),"objectForKey:","CPMenuItemIndex")),_191=objj_msgSend(_190,"_menuItemView"); +objj_msgSend(_191,"setHidden:",objj_msgSend(_190,"isHidden")); +objj_msgSend(_191,"synchronizeWithMenuItem"); +objj_msgSend(self,"tile"); +} +}),new objj_method(sel_getUid("menuDidAddItem:"),function(self,_cmd,_194){ +with(self){ +var _195=objj_msgSend(objj_msgSend(_194,"userInfo"),"objectForKey:","CPMenuItemIndex"),_196=objj_msgSend(_menu,"itemAtIndex:",_195),_197=objj_msgSend(_196,"_menuItemView"); +objj_msgSend(_menuItemViews,"insertObject:atIndex:",_197,_195); +objj_msgSend(_197,"setShowsStateColumn:",NO); +objj_msgSend(_197,"setBelongsToMenuBar:",YES); +objj_msgSend(_197,"setFont:",_15e); +objj_msgSend(_197,"setTextColor:",_textColor); +objj_msgSend(_197,"setHidden:",objj_msgSend(_196,"isHidden")); +objj_msgSend(_197,"synchronizeWithMenuItem"); +objj_msgSend(objj_msgSend(self,"contentView"),"addSubview:",_197); +objj_msgSend(self,"tile"); +} +}),new objj_method(sel_getUid("menuDidRemoveItem:"),function(self,_cmd,_19a){ +with(self){ +var _19b=objj_msgSend(objj_msgSend(_19a,"userInfo"),"objectForKey:","CPMenuItemIndex"),_19c=objj_msgSend(_menuItemViews,"objectAtIndex:",_19b); +objj_msgSend(_menuItemViews,"removeObjectAtIndex:",_19b); +objj_msgSend(_19c,"removeFromSuperview"); +objj_msgSend(self,"tile"); +} +}),new objj_method(sel_getUid("frameForMenuItem:"),function(self,_cmd,_19f){ +with(self){ +var _1a0=objj_msgSend(objj_msgSend(_19f,"_menuItemView"),"frame"); +_1a0.origin.x-=5; +_1a0.origin.y=0; +_1a0.size.width+=10; +_1a0.size.height=_1; +return _1a0; +} +}),new objj_method(sel_getUid("menuItemAtPoint:"),function(self,_cmd,_1a3){ +with(self){ +var _1a4=objj_msgSend(_menu,"itemArray"),_1a5=_1a4.length; +while(_1a5--){ +var item=_1a4[_1a5]; +if(objj_msgSend(item,"isHidden")||objj_msgSend(item,"isSeparatorItem")){ +continue; +} +if(CGRectContainsPoint(objj_msgSend(self,"frameForMenuItem:",item),_1a3)){ +return item; +} +} +return nil; +} +}),new objj_method(sel_getUid("mouseDown:"),function(self,_cmd,_1a9){ +with(self){ +_trackingMenuItem=objj_msgSend(self,"menuItemAtPoint:",objj_msgSend(_1a9,"locationInWindow")); +if(!objj_msgSend(_trackingMenuItem,"isEnabled")){ +return; +} +if(objj_msgSend(objj_msgSend(_trackingMenuItem,"_menuItemView"),"eventOnSubmenu:",_1a9)){ +return objj_msgSend(self,"showMenu:",_1a9); +} +if(objj_msgSend(_trackingMenuItem,"isEnabled")){ +objj_msgSend(self,"trackEvent:",_1a9); +} +} +}),new objj_method(sel_getUid("trackEvent:"),function(self,_cmd,_1ac){ +with(self){ +var type=objj_msgSend(_1ac,"type"); +if(type===CPPeriodic){ +return objj_msgSend(self,"showMenu:",_1ac); +} +var _1ae=objj_msgSend(self,"frameForMenuItem:",_trackingMenuItem),_1af=objj_msgSend(_trackingMenuItem,"_menuItemView"),_1b0=CGRectContainsPoint(_1ae,objj_msgSend(_1ac,"locationInWindow")); +if(type==CPLeftMouseDown){ +if(objj_msgSend(_trackingMenuItem,"submenu")!=nil){ +var _1b1=objj_msgSend(_trackingMenuItem,"action"); +if(!_1b1||_1b1===sel_getUid("submenuAction:")){ +return objj_msgSend(self,"showMenu:",_1ac); +} +objj_msgSend(CPEvent,"startPeriodicEventsAfterDelay:withPeriod:",0,0.5); +} +objj_msgSend(_1af,"highlight:",_1b0); +}else{ +if(type==CPLeftMouseDragged){ +if(!_1b0&&objj_msgSend(_trackingMenuItem,"submenu")){ +return objj_msgSend(self,"showMenu:",_1ac); +} +objj_msgSend(_1af,"highlight:",_1b0); +}else{ +objj_msgSend(CPEvent,"stopPeriodicEvents"); +objj_msgSend(_1af,"highlight:",NO); +if(_1b0){ +objj_msgSend(CPApp,"sendAction:to:from:",objj_msgSend(_trackingMenuItem,"action"),objj_msgSend(_trackingMenuItem,"target"),_trackingMenuItem); +} +return; +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",self,sel_getUid("trackEvent:"),CPPeriodicMask|CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +}),new objj_method(sel_getUid("showMenu:"),function(self,_cmd,_1b4){ +with(self){ +objj_msgSend(CPEvent,"stopPeriodicEvents"); +var _1b5=objj_msgSend(self,"frameForMenuItem:",_trackingMenuItem),_1b6=objj_msgSend(_trackingMenuItem,"_menuItemView"); +if(!_highlightView){ +_highlightView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",_1b5); +objj_msgSend(_highlightView,"setBackgroundColor:",_highlightColor?_highlightColor:objj_msgSend(CPColor,"colorWithRed:green:blue:alpha:",95/255,131/255,185/255,1)); +}else{ +objj_msgSend(_highlightView,"setFrame:",_1b5); +} +objj_msgSend(objj_msgSend(self,"contentView"),"addSubview:positioned:relativeTo:",_highlightView,CPWindowBelow,_1b6); +objj_msgSend(_1b6,"activate:",YES); +var _1b7=objj_msgSend(_trackingMenuItem,"submenu"); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"addObserver:selector:name:object:",self,sel_getUid("menuDidEndTracking:"),CPMenuDidEndTrackingNotification,_1b7); +objj_msgSend(CPMenu,"_popUpContextMenu:withEvent:forView:withFont:forMenuBar:",_1b7,objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",CPLeftMouseDown,CGPointMake(CGRectGetMinX(_1b5),CGRectGetMaxY(_1b5)),objj_msgSend(_1b4,"modifierFlags"),objj_msgSend(_1b4,"timestamp"),objj_msgSend(self,"windowNumber"),nil,0,objj_msgSend(_1b4,"clickCount"),objj_msgSend(_1b4,"pressure")),objj_msgSend(self,"contentView"),nil,YES); +} +}),new objj_method(sel_getUid("menuDidEndTracking:"),function(self,_cmd,_1ba){ +with(self){ +objj_msgSend(_highlightView,"removeFromSuperview"); +objj_msgSend(objj_msgSend(_trackingMenuItem,"_menuItemView"),"activate:",NO); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"removeObserver:name:object:",self,CPMenuDidEndTrackingNotification,objj_msgSend(_1ba,"object")); +} +}),new objj_method(sel_getUid("tile"),function(self,_cmd){ +with(self){ +var _1bd=objj_msgSend(_menu,"itemArray"),_1be=0,_1bf=_1bd.length,x=_15b,y=0,_1c2=YES; +for(;_1be<_1bf;++_1be){ +var item=_1bd[_1be]; +if(objj_msgSend(item,"isSeparatorItem")){ +x=CGRectGetWidth(objj_msgSend(self,"frame"))-_15c; +_1c2=NO; +continue; +} +if(objj_msgSend(item,"isHidden")){ +continue; +} +var _1c4=objj_msgSend(item,"_menuItemView"),_1c5=objj_msgSend(_1c4,"frame"); +if(_1c2){ +objj_msgSend(_1c4,"setFrameOrigin:",CGPointMake(x,(_1-1-CGRectGetHeight(_1c5))/2)); +x+=CGRectGetWidth(objj_msgSend(_1c4,"frame"))+_15a; +}else{ +objj_msgSend(_1c4,"setFrameOrigin:",CGPointMake(x-CGRectGetWidth(_1c5),(_1-1-CGRectGetHeight(_1c5))/2)); +x=CGRectGetMinX(objj_msgSend(_1c4,"frame"))-_15a; +} +} +var _1c6=objj_msgSend(objj_msgSend(self,"contentView"),"bounds"),_1c7=objj_msgSend(_titleField,"frame"); +if(objj_msgSend(_iconImageView,"isHidden")){ +objj_msgSend(_titleField,"setFrameOrigin:",CGPointMake((CGRectGetWidth(_1c6)-CGRectGetWidth(_1c7))/2,(CGRectGetHeight(_1c6)-CGRectGetHeight(_1c7))/2)); +}else{ +var _1c8=objj_msgSend(_iconImageView,"frame"),_1c9=CGRectGetWidth(_1c8),_1ca=_1c9+CGRectGetWidth(_1c7); +objj_msgSend(_iconImageView,"setFrameOrigin:",CGPointMake((CGRectGetWidth(_1c6)-_1ca)/2,(CGRectGetHeight(_1c6)-CGRectGetHeight(_1c8))/2)); +objj_msgSend(_titleField,"setFrameOrigin:",CGPointMake((CGRectGetWidth(_1c6)-_1ca)/2+_1c9,(CGRectGetHeight(_1c6)-CGRectGetHeight(_1c7))/2)); +} +} +}),new objj_method(sel_getUid("setFrameSize:"),function(self,_cmd,_1cd){ +with(self){ +objj_msgSendSuper({receiver:self,super_class:objj_getClass("CPPanel")},"setFrameSize:",_1cd); +objj_msgSend(self,"tile"); +} +})]); +class_addMethods(_9,[new objj_method(sel_getUid("initialize"),function(self,_cmd){ +with(self){ +if(self!=objj_msgSend(_CPMenuBarWindow,"class")){ +return; +} +var _1d0=objj_msgSend(CPBundle,"bundleForClass:",self); +_15e=objj_msgSend(CPFont,"systemFontOfSize:",11); +} +})]); +p;12;CPMenuItem.jI;20;Foundation/CPCoder.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jI;16;AppKit/CPImage.jI;15;AppKit/CPMenu.jI;15;AppKit/CPView.jc;23006; +var _1=objj_allocateClassPair(CPObject,"CPMenuItem"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_isSeparator"),new objj_ivar("_title"),new objj_ivar("_font"),new objj_ivar("_target"),new objj_ivar("_action"),new objj_ivar("_isEnabled"),new objj_ivar("_isHidden"),new objj_ivar("_tag"),new objj_ivar("_state"),new objj_ivar("_image"),new objj_ivar("_alternateImage"),new objj_ivar("_onStateImage"),new objj_ivar("_offStateImage"),new objj_ivar("_mixedStateImage"),new objj_ivar("_submenu"),new objj_ivar("_menu"),new objj_ivar("_keyEquivalent"),new objj_ivar("_keyEquivalentModifierMask"),new objj_ivar("_mnemonicLocation"),new objj_ivar("_isAlternate"),new objj_ivar("_indentationLevel"),new objj_ivar("_toolTip"),new objj_ivar("_representedObject"),new objj_ivar("_view"),new objj_ivar("_menuItemView")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithTitle:action:keyEquivalent:"),function(_3,_4,_5,_6,_7){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_isSeparator=NO; +_title=_5; +_action=_6; +_isEnabled=YES; +_tag=0; +_state=CPOffState; +_keyEquivalent=_7||""; +_keyEquivalentModifierMask=CPPlatformActionKeyMask; +_mnemonicLocation=CPNotFound; +} +return _3; +} +}),new objj_method(sel_getUid("setEnabled:"),function(_8,_9,_a){ +with(_8){ +if(objj_msgSend(_menu,"autoenablesItems")){ +return; +} +_isEnabled=_a; +objj_msgSend(_menuItemView,"setDirty"); +objj_msgSend(_menu,"itemChanged:",_8); +} +}),new objj_method(sel_getUid("isEnabled"),function(_b,_c){ +with(_b){ +return _isEnabled; +} +}),new objj_method(sel_getUid("setHidden:"),function(_d,_e,_f){ +with(_d){ +if(_isHidden==_f){ +return; +} +_isHidden=_f; +objj_msgSend(_menu,"itemChanged:",_d); +} +}),new objj_method(sel_getUid("isHidden"),function(_10,_11){ +with(_10){ +return _isHidden; +} +}),new objj_method(sel_getUid("isHiddenOrHasHiddenAncestor"),function(_12,_13){ +with(_12){ +if(_isHidden){ +return YES; +} +var _14=objj_msgSend(_menu,"supermenu"); +if(objj_msgSend(objj_msgSend(_14,"itemAtIndex:",objj_msgSend(_14,"indexOfItemWithSubmenu:",_menu)),"isHiddenOrHasHiddenAncestor")){ +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("setTarget:"),function(_15,_16,_17){ +with(_15){ +_target=_17; +} +}),new objj_method(sel_getUid("target"),function(_18,_19){ +with(_18){ +return _target; +} +}),new objj_method(sel_getUid("setAction:"),function(_1a,_1b,_1c){ +with(_1a){ +_action=_1c; +} +}),new objj_method(sel_getUid("action"),function(_1d,_1e){ +with(_1d){ +return _action; +} +}),new objj_method(sel_getUid("setTitle:"),function(_1f,_20,_21){ +with(_1f){ +_mnemonicLocation=CPNotFound; +if(_title==_21){ +return; +} +_title=_21; +objj_msgSend(_menuItemView,"setDirty"); +objj_msgSend(_menu,"itemChanged:",_1f); +} +}),new objj_method(sel_getUid("title"),function(_22,_23){ +with(_22){ +return _title; +} +}),new objj_method(sel_getUid("setTextColor:"),function(_24,_25,_26){ +with(_24){ +} +}),new objj_method(sel_getUid("setFont:"),function(_27,_28,_29){ +with(_27){ +if(_font==_29){ +return; +} +_font=_29; +objj_msgSend(_menu,"itemChanged:",_27); +objj_msgSend(_menuItemView,"setDirty"); +} +}),new objj_method(sel_getUid("font"),function(_2a,_2b){ +with(_2a){ +return _font; +} +}),new objj_method(sel_getUid("setTag:"),function(_2c,_2d,_2e){ +with(_2c){ +_tag=_2e; +} +}),new objj_method(sel_getUid("tag"),function(_2f,_30){ +with(_2f){ +return _tag; +} +}),new objj_method(sel_getUid("setState:"),function(_31,_32,_33){ +with(_31){ +if(_state==_33){ +return; +} +_state=_33; +objj_msgSend(_menu,"itemChanged:",_31); +objj_msgSend(_menuItemView,"setDirty"); +} +}),new objj_method(sel_getUid("state"),function(_34,_35){ +with(_34){ +return _state; +} +}),new objj_method(sel_getUid("setImage:"),function(_36,_37,_38){ +with(_36){ +if(_image==_38){ +return; +} +_image=_38; +objj_msgSend(_menuItemView,"setDirty"); +objj_msgSend(_menu,"itemChanged:",_36); +} +}),new objj_method(sel_getUid("image"),function(_39,_3a){ +with(_39){ +return _image; +} +}),new objj_method(sel_getUid("setAlternateImage:"),function(_3b,_3c,_3d){ +with(_3b){ +_alternateImage=_3d; +} +}),new objj_method(sel_getUid("alternateImage"),function(_3e,_3f){ +with(_3e){ +return _alternateImage; +} +}),new objj_method(sel_getUid("setOnStateImage:"),function(_40,_41,_42){ +with(_40){ +if(_onStateImage==_42){ +return; +} +_onStateImage=_42; +objj_msgSend(_menu,"itemChanged:",_40); +} +}),new objj_method(sel_getUid("onStateImage"),function(_43,_44){ +with(_43){ +return _onStateImage; +} +}),new objj_method(sel_getUid("setOffStateImage:"),function(_45,_46,_47){ +with(_45){ +if(_offStateImage==_47){ +return; +} +_offStateImage=_47; +objj_msgSend(_menu,"itemChanged:",_45); +} +}),new objj_method(sel_getUid("offStateImage"),function(_48,_49){ +with(_48){ +return _offStateImage; +} +}),new objj_method(sel_getUid("setMixedStateImage:"),function(_4a,_4b,_4c){ +with(_4a){ +if(_mixedStateImage==_4c){ +return; +} +_mixedStateImage=_4c; +objj_msgSend(_menu,"itemChanged:",_4a); +} +}),new objj_method(sel_getUid("mixedStateImage"),function(_4d,_4e){ +with(_4d){ +return _mixedStateImage; +} +}),new objj_method(sel_getUid("setSubmenu:"),function(_4f,_50,_51){ +with(_4f){ +var _52=objj_msgSend(_submenu,"supermenu"); +if(_52==_4f){ +return; +} +if(_52){ +return alert("bad"); +} +objj_msgSend(_submenu,"setSupermenu:",_menu); +_submenu=_51; +objj_msgSend(_menuItemView,"setDirty"); +objj_msgSend(_menu,"itemChanged:",_4f); +} +}),new objj_method(sel_getUid("submenu"),function(_53,_54){ +with(_53){ +return _submenu; +} +}),new objj_method(sel_getUid("hasSubmenu"),function(_55,_56){ +with(_55){ +return _submenu?YES:NO; +} +}),new objj_method(sel_getUid("isSeparatorItem"),function(_57,_58){ +with(_57){ +return _isSeparator; +} +}),new objj_method(sel_getUid("setMenu:"),function(_59,_5a,_5b){ +with(_59){ +_menu=_5b; +} +}),new objj_method(sel_getUid("menu"),function(_5c,_5d){ +with(_5c){ +return _menu; +} +}),new objj_method(sel_getUid("setKeyEquivalent:"),function(_5e,_5f,_60){ +with(_5e){ +_keyEquivalent=_60||""; +} +}),new objj_method(sel_getUid("keyEquivalent"),function(_61,_62){ +with(_61){ +return _keyEquivalent; +} +}),new objj_method(sel_getUid("setKeyEquivalentModifierMask:"),function(_63,_64,_65){ +with(_63){ +_keyEquivalentModifierMask=_65; +} +}),new objj_method(sel_getUid("keyEquivalentModifierMask"),function(_66,_67){ +with(_66){ +return _keyEquivalentModifierMask; +} +}),new objj_method(sel_getUid("setMnemonicLocation:"),function(_68,_69,_6a){ +with(_68){ +_mnemonicLocation=_6a; +} +}),new objj_method(sel_getUid("mnemonicLocation"),function(_6b,_6c){ +with(_6b){ +return _mnemonicLocation; +} +}),new objj_method(sel_getUid("setTitleWithMnemonicLocation:"),function(_6d,_6e,_6f){ +with(_6d){ +var _70=objj_msgSend(_6f,"rangeOfString:","&").location; +if(_70==CPNotFound){ +objj_msgSend(_6d,"setTitle:",_6f); +}else{ +objj_msgSend(_6d,"setTitle:",objj_msgSend(_6f,"substringToIndex:",_70)+objj_msgSend(_6f,"substringFromIndex:",_70+1)); +objj_msgSend(_6d,"setMnemonicLocation:",_70); +} +} +}),new objj_method(sel_getUid("mnemonic"),function(_71,_72){ +with(_71){ +return _mnemonicLocation==CPNotFound?"":objj_msgSend(_title,"characterAtIndex:",_mnemonicLocation); +} +}),new objj_method(sel_getUid("setAlternate:"),function(_73,_74,_75){ +with(_73){ +_isAlternate=_75; +} +}),new objj_method(sel_getUid("isAlternate"),function(_76,_77){ +with(_76){ +return _isAlternate; +} +}),new objj_method(sel_getUid("setIndentationLevel:"),function(_78,_79,_7a){ +with(_78){ +if(_7a<0){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"setIndentationLevel: argument must be greater than 0."); +} +_indentationLevel=MIN(15,_7a); +} +}),new objj_method(sel_getUid("indentationLevel"),function(_7b,_7c){ +with(_7b){ +return _indentationLevel; +} +}),new objj_method(sel_getUid("setToolTip:"),function(_7d,_7e,_7f){ +with(_7d){ +_toolTip=_7f; +} +}),new objj_method(sel_getUid("toolTip"),function(_80,_81){ +with(_80){ +return _toolTip; +} +}),new objj_method(sel_getUid("setRepresentedObject:"),function(_82,_83,_84){ +with(_82){ +_representedObject=_84; +} +}),new objj_method(sel_getUid("representedObject"),function(_85,_86){ +with(_85){ +return _representedObject; +} +}),new objj_method(sel_getUid("setView:"),function(_87,_88,_89){ +with(_87){ +if(_view===_89){ +return; +} +_view=_89; +objj_msgSend(_menuItemView,"setDirty"); +objj_msgSend(_menu,"itemChanged:",_87); +} +}),new objj_method(sel_getUid("view"),function(_8a,_8b){ +with(_8a){ +return _view; +} +}),new objj_method(sel_getUid("isHighlighted"),function(_8c,_8d){ +with(_8c){ +return objj_msgSend(objj_msgSend(_8c,"menu"),"highlightedItem")==_8c; +} +}),new objj_method(sel_getUid("_menuItemView"),function(_8e,_8f){ +with(_8e){ +if(!_menuItemView){ +_menuItemView=objj_msgSend(objj_msgSend(_CPMenuItemView,"alloc"),"initWithFrame:forMenuItem:",CGRectMakeZero(),_8e); +} +return _menuItemView; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("separatorItem"),function(_90,_91){ +with(_90){ +var _92=objj_msgSend(objj_msgSend(_90,"alloc"),"initWithTitle:action:keyEquivalent:","",nil,nil); +_92._isSeparator=YES; +return _92; +} +})]); +var _93="CPMenuItemIsSeparatorKey",_94="CPMenuItemTitleKey",_95="CPMenuItemTargetKey",_96="CPMenuItemActionKey",_97="CPMenuItemIsEnabledKey",_98="CPMenuItemIsHiddenKey",_99="CPMenuItemTagKey",_9a="CPMenuItemStateKey",_9b="CPMenuItemImageKey",_9c="CPMenuItemAlternateImageKey",_9d="CPMenuItemSubmenuKey",_9e="CPMenuItemMenuKey",_9f="CPMenuItemRepresentedObjectKey",_a0="CPMenuItemViewKey"; +var _1=objj_getClass("CPMenuItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPMenuItem\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_a1,_a2,_a3){ +with(_a1){ +_a1=objj_msgSendSuper({receiver:_a1,super_class:objj_getClass("CPObject")},"init"); +if(_a1){ +_isSeparator=objj_msgSend(_a3,"containsValueForKey:",_93)&&objj_msgSend(_a3,"decodeBoolForKey:",_93); +_title=objj_msgSend(_a3,"decodeObjectForKey:",_94); +_target=objj_msgSend(_a3,"decodeObjectForKey:",_95); +_action=objj_msgSend(_a3,"decodeObjectForKey:",_96); +_isEnabled=objj_msgSend(_a3,"containsValueForKey:",(_97))?objj_msgSend(_a3,"decodeObjectForKey:",(_97)):(YES); +_isHidden=objj_msgSend(_a3,"containsValueForKey:",(_98))?objj_msgSend(_a3,"decodeObjectForKey:",(_98)):(NO); +_tag=objj_msgSend(_a3,"containsValueForKey:",(_99))?objj_msgSend(_a3,"decodeObjectForKey:",(_99)):(0); +_state=objj_msgSend(_a3,"containsValueForKey:",(_9a))?objj_msgSend(_a3,"decodeObjectForKey:",(_9a)):(CPOffState); +_image=objj_msgSend(_a3,"containsValueForKey:",(_9b))?objj_msgSend(_a3,"decodeObjectForKey:",(_9b)):(nil); +_alternateImage=objj_msgSend(_a3,"containsValueForKey:",(_9c))?objj_msgSend(_a3,"decodeObjectForKey:",(_9c)):(nil); +_submenu=objj_msgSend(_a3,"containsValueForKey:",(_9d))?objj_msgSend(_a3,"decodeObjectForKey:",(_9d)):(nil); +_menu=objj_msgSend(_a3,"containsValueForKey:",(_9e))?objj_msgSend(_a3,"decodeObjectForKey:",(_9e)):(nil); +_representedObject=objj_msgSend(_a3,"containsValueForKey:",(_9f))?objj_msgSend(_a3,"decodeObjectForKey:",(_9f)):(nil); +_view=objj_msgSend(_a3,"containsValueForKey:",(_a0))?objj_msgSend(_a3,"decodeObjectForKey:",(_a0)):(nil); +} +return _a1; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_a4,_a5,_a6){ +with(_a4){ +if(_isSeparator){ +objj_msgSend(_a6,"encodeBool:forKey:",_isSeparator,_93); +} +objj_msgSend(_a6,"encodeObject:forKey:",_title,_94); +objj_msgSend(_a6,"encodeObject:forKey:",_target,_95); +objj_msgSend(_a6,"encodeObject:forKey:",_action,_96); +if((_isEnabled)!==(YES)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_isEnabled),(_97)); +} +if((_isHidden)!==(NO)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_isHidden),(_98)); +} +if((_tag)!==(0)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_tag),(_99)); +} +if((_state)!==(CPOffState)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_state),(_9a)); +} +if((_image)!==(nil)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_image),(_9b)); +} +if((_alternateImage)!==(nil)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_alternateImage),(_9c)); +} +if((_submenu)!==(nil)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_submenu),(_9d)); +} +if((_menu)!==(nil)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_menu),(_9e)); +} +if((_representedObject)!==(nil)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_representedObject),(_9f)); +} +if((_view)!==(nil)){ +objj_msgSend(_a6,"encodeObject:forKey:",(_view),(_a0)); +} +} +})]); +var _a7=3,_a8=16,_a9=14,_aa=17,_ab=4; +var _ac=nil,_ad=nil,_ae=[],_af=[]; +var _1=objj_allocateClassPair(CPView,"_CPMenuItemView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_menuItem"),new objj_ivar("_font"),new objj_ivar("_textColor"),new objj_ivar("_textShadowColor"),new objj_ivar("_activateColor"),new objj_ivar("_activateShadowColor"),new objj_ivar("_minSize"),new objj_ivar("_isDirty"),new objj_ivar("_showsStateColumn"),new objj_ivar("_belongsToMenuBar"),new objj_ivar("_stateView"),new objj_ivar("_imageAndTextView"),new objj_ivar("_submenuView")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:forMenuItem:"),function(_b0,_b1,_b2,_b3){ +with(_b0){ +_b0=objj_msgSendSuper({receiver:_b0,super_class:objj_getClass("CPView")},"initWithFrame:",_b2); +if(_b0){ +_menuItem=_b3; +_showsStateColumn=YES; +_isDirty=YES; +objj_msgSend(_b0,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_b0,"synchronizeWithMenuItem"); +} +return _b0; +} +}),new objj_method(sel_getUid("minSize"),function(_b4,_b5){ +with(_b4){ +return _minSize; +} +}),new objj_method(sel_getUid("setDirty"),function(_b6,_b7){ +with(_b6){ +_isDirty=YES; +} +}),new objj_method(sel_getUid("synchronizeWithMenuItem"),function(_b8,_b9){ +with(_b8){ +if(!_isDirty){ +return; +} +_isDirty=NO; +var _ba=objj_msgSend(_menuItem,"view"); +if(objj_msgSend(_menuItem,"isSeparatorItem")){ +var _bb=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,5,10,1)); +_ba=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,0,0,10)); +objj_msgSend(_ba,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_bb,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_bb,"setBackgroundColor:",objj_msgSend(CPColor,"lightGrayColor")); +objj_msgSend(_ba,"addSubview:",_bb); +} +if(_ba){ +objj_msgSend(_imageAndTextView,"removeFromSuperview"); +_imageAndTextView=nil; +objj_msgSend(_stateView,"removeFromSuperview"); +_stateView=nil; +objj_msgSend(_submenuView,"removeFromSuperview"); +_submenuView=nil; +_minSize=objj_msgSend(_ba,"frame").size; +objj_msgSend(_b8,"setFrameSize:",_minSize); +objj_msgSend(_b8,"addSubview:",_ba); +return; +} +var x=_belongsToMenuBar?0:(_a7+objj_msgSend(_menuItem,"indentationLevel")*_aa); +if(_showsStateColumn){ +if(!_stateView){ +_stateView=objj_msgSend(objj_msgSend(CPImageView,"alloc"),"initWithFrame:",CGRectMake(x,(CGRectGetHeight(objj_msgSend(_b8,"frame"))-_a9)/2,_a9,_a9)); +objj_msgSend(_stateView,"setAutoresizingMask:",CPViewMinYMargin|CPViewMaxYMargin); +objj_msgSend(_b8,"addSubview:",_stateView); +} +var _bd=objj_msgSend(_menuItem,"state"); +switch(_bd){ +case CPOffState: +case CPOnState: +case CPMixedState: +objj_msgSend(_stateView,"setImage:",_ae[_bd]); +break; +default: +objj_msgSend(_stateView,"setImage:",nil); +} +x+=_a9; +}else{ +objj_msgSend(_stateView,"removeFromSuperview"); +_stateView=nil; +} +if(!_imageAndTextView){ +_imageAndTextView=objj_msgSend(objj_msgSend(_CPImageAndTextView,"alloc"),"initWithFrame:",CGRectMake(0,0,0,0)); +objj_msgSend(_imageAndTextView,"setImagePosition:",CPImageLeft); +objj_msgSend(_imageAndTextView,"setTextShadowOffset:",CGSizeMake(0,1)); +objj_msgSend(_b8,"addSubview:",_imageAndTextView); +} +var _be=objj_msgSend(_menuItem,"font"); +if(!_be){ +_be=_font; +} +objj_msgSend(_imageAndTextView,"setFont:",_be); +objj_msgSend(_imageAndTextView,"setVerticalAlignment:",CPCenterVerticalTextAlignment); +objj_msgSend(_imageAndTextView,"setImage:",objj_msgSend(_menuItem,"image")); +objj_msgSend(_imageAndTextView,"setText:",objj_msgSend(_menuItem,"title")); +objj_msgSend(_imageAndTextView,"setTextColor:",objj_msgSend(_b8,"textColor")); +objj_msgSend(_imageAndTextView,"setTextShadowColor:",objj_msgSend(_b8,"textShadowColor")); +objj_msgSend(_imageAndTextView,"setTextShadowOffset:",CGSizeMake(0,1)); +objj_msgSend(_imageAndTextView,"setFrameOrigin:",CGPointMake(x,_ab)); +objj_msgSend(_imageAndTextView,"sizeToFit"); +var _bf=objj_msgSend(_imageAndTextView,"frame"); +_bf.size.height+=2*_ab; +x+=CGRectGetWidth(_bf); +if(objj_msgSend(_menuItem,"hasSubmenu")){ +x+=3; +if(!_submenuView){ +_submenuView=objj_msgSend(objj_msgSend(_CPMenuItemArrowView,"alloc"),"initWithFrame:",CGRectMake(0,0,10,10)); +objj_msgSend(_b8,"addSubview:",_submenuView); +} +objj_msgSend(_submenuView,"setHidden:",NO); +objj_msgSend(_submenuView,"setColor:",_belongsToMenuBar?objj_msgSend(_b8,"textColor"):nil); +objj_msgSend(_submenuView,"setFrameOrigin:",CGPointMake(x,(CGRectGetHeight(_bf)-10)/2)); +x+=10; +}else{ +objj_msgSend(_submenuView,"setHidden:",YES); +} +_minSize=CGSizeMake(x+(_belongsToMenuBar?0:_a8)+3,CGRectGetHeight(_bf)); +objj_msgSend(_b8,"setFrameSize:",_minSize); +} +}),new objj_method(sel_getUid("overlapOffsetWidth"),function(_c0,_c1){ +with(_c0){ +return _a7+(objj_msgSend(objj_msgSend(_menuItem,"menu"),"showsStateColumn")?_a9:0); +} +}),new objj_method(sel_getUid("setShowsStateColumn:"),function(_c2,_c3,_c4){ +with(_c2){ +_showsStateColumn=_c4; +} +}),new objj_method(sel_getUid("setBelongsToMenuBar:"),function(_c5,_c6,_c7){ +with(_c5){ +_belongsToMenuBar=_c7; +} +}),new objj_method(sel_getUid("highlight:"),function(_c8,_c9,_ca){ +with(_c8){ +if(_belongsToMenuBar){ +objj_msgSend(_imageAndTextView,"setImage:",_ca?objj_msgSend(_menuItem,"alternateImage"):objj_msgSend(_menuItem,"image")); +}else{ +if(objj_msgSend(_menuItem,"isEnabled")){ +if(_ca){ +objj_msgSend(_c8,"setBackgroundColor:",_ac); +objj_msgSend(_imageAndTextView,"setTextColor:",objj_msgSend(CPColor,"whiteColor")); +objj_msgSend(_imageAndTextView,"setTextShadowColor:",_ad); +}else{ +objj_msgSend(_c8,"setBackgroundColor:",nil); +objj_msgSend(_imageAndTextView,"setTextColor:",objj_msgSend(_c8,"textColor")); +objj_msgSend(_imageAndTextView,"setTextShadowColor:",objj_msgSend(_c8,"textShadowColor")); +} +var _cb=objj_msgSend(_menuItem,"state"); +switch(_cb){ +case CPOffState: +case CPOnState: +case CPMixedState: +objj_msgSend(_stateView,"setImage:",_ca?_af[_cb]:_ae[_cb]); +break; +default: +objj_msgSend(_stateView,"setImage:",nil); +} +} +} +} +}),new objj_method(sel_getUid("activate:"),function(_cc,_cd,_ce){ +with(_cc){ +objj_msgSend(_imageAndTextView,"setImage:",objj_msgSend(_menuItem,"image")); +if(_ce){ +objj_msgSend(_imageAndTextView,"setTextColor:",objj_msgSend(_cc,"activateColor")||objj_msgSend(CPColor,"whiteColor")); +objj_msgSend(_imageAndTextView,"setTextShadowColor:",objj_msgSend(_cc,"activateShadowColor")||objj_msgSend(CPColor,"blackColor")); +objj_msgSend(_submenuView,"setColor:",objj_msgSend(_cc,"activateColor")||objj_msgSend(CPColor,"whiteColor")); +}else{ +objj_msgSend(_imageAndTextView,"setTextColor:",objj_msgSend(_cc,"textColor")); +objj_msgSend(_imageAndTextView,"setTextShadowColor:",objj_msgSend(_cc,"textShadowColor")); +objj_msgSend(_submenuView,"setColor:",objj_msgSend(_cc,"textColor")); +} +} +}),new objj_method(sel_getUid("eventOnSubmenu:"),function(_cf,_d0,_d1){ +with(_cf){ +if(!objj_msgSend(_menuItem,"hasSubmenu")){ +return NO; +} +return CGRectContainsPoint(objj_msgSend(_submenuView,"frame"),objj_msgSend(_cf,"convertPoint:fromView:",objj_msgSend(_d1,"locationInWindow"),nil)); +} +}),new objj_method(sel_getUid("isHidden"),function(_d2,_d3){ +with(_d2){ +return objj_msgSend(_menuItem,"isHidden"); +} +}),new objj_method(sel_getUid("menuItem"),function(_d4,_d5){ +with(_d4){ +return _menuItem; +} +}),new objj_method(sel_getUid("setFont:"),function(_d6,_d7,_d8){ +with(_d6){ +if(_font==_d8){ +return; +} +_font=_d8; +objj_msgSend(_d6,"setDirty"); +} +}),new objj_method(sel_getUid("setTextColor:"),function(_d9,_da,_db){ +with(_d9){ +if(_textColor==_db){ +return; +} +_textColor=_db; +objj_msgSend(_imageAndTextView,"setTextColor:",objj_msgSend(_d9,"textColor")); +objj_msgSend(_submenuView,"setColor:",objj_msgSend(_d9,"textColor")); +} +}),new objj_method(sel_getUid("textColor"),function(_dc,_dd){ +with(_dc){ +return objj_msgSend(_menuItem,"isEnabled")?(_textColor?_textColor:objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",70/255,69/255,69/255,1)):objj_msgSend(CPColor,"darkGrayColor"); +} +}),new objj_method(sel_getUid("setTextShadowColor:"),function(_de,_df,_e0){ +with(_de){ +if(_textShadowColor==_e0){ +return; +} +_textShadowColor=_e0; +objj_msgSend(_imageAndTextView,"setTextShadowColor:",objj_msgSend(_de,"textShadowColor")); +} +}),new objj_method(sel_getUid("textShadowColor"),function(_e1,_e2){ +with(_e1){ +return objj_msgSend(_menuItem,"isEnabled")?(_textShadowColor?_textShadowColor:objj_msgSend(CPColor,"colorWithWhite:alpha:",1,0.8)):objj_msgSend(CPColor,"colorWithWhite:alpha:",0.8,0.8); +} +}),new objj_method(sel_getUid("setActivateColor:"),function(_e3,_e4,_e5){ +with(_e3){ +_activateColor=_e5; +} +}),new objj_method(sel_getUid("activateColor"),function(_e6,_e7){ +with(_e6){ +return _activateColor; +} +}),new objj_method(sel_getUid("setActivateShadowColor:"),function(_e8,_e9,_ea){ +with(_e8){ +_activateShadowColor=_ea; +} +}),new objj_method(sel_getUid("activateShadowColor"),function(_eb,_ec){ +with(_eb){ +return _activateShadowColor; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("initialize"),function(_ed,_ee){ +with(_ed){ +if(_ed!=objj_msgSend(_CPMenuItemView,"class")){ +return; +} +_ac=objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",95/255,131/255,185/255,1); +_ad=objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",26/255,73/255,109/255,1); +var _ef=objj_msgSend(CPBundle,"bundleForClass:",_ed); +_ae[CPOffState]=nil; +_af[CPOffState]=nil; +_ae[CPOnState]=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ef,"pathForResource:","CPMenuItem/CPMenuItemOnState.png"),CGSizeMake(14,14)); +_af[CPOnState]=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ef,"pathForResource:","CPMenuItem/CPMenuItemOnStateHighlighted.png"),CGSizeMake(14,14)); +_ae[CPMixedState]=nil; +_af[CPMixedState]=nil; +} +}),new objj_method(sel_getUid("leftMargin"),function(_f0,_f1){ +with(_f0){ +return _a7+_a9; +} +})]); +var _1=objj_allocateClassPair(CPView,"_CPMenuItemArrowView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_color")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("setColor:"),function(_f2,_f3,_f4){ +with(_f2){ +if(_color==_f4){ +return; +} +_color=_f4; +objj_msgSend(_f2,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("drawRect:"),function(_f5,_f6,_f7){ +with(_f5){ +var _f8=objj_msgSend(objj_msgSend(CPGraphicsContext,"currentContext"),"graphicsPort"); +CGContextBeginPath(_f8); +CGContextMoveToPoint(_f8,1,4); +CGContextAddLineToPoint(_f8,9,4); +CGContextAddLineToPoint(_f8,5,8); +CGContextAddLineToPoint(_f8,1,4); +CGContextClosePath(_f8); +CGContextSetFillColor(_f8,_color); +CGContextFillPath(_f8); +} +})]); +p;15;CPOutlineView.ji;13;CPTableView.jc;2698; +var _1=objj_allocateClassPair(CPTableView,"CPOutlineView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_outlineDataSource"),new objj_ivar("_itemsByRow")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPTableView")},"initWithFrame:",_5); +if(_3){ +objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPTableView")},"setDataSource:",_3); +_itemsByRow=objj_msgSend(objj_msgSend(CPArray,"alloc"),"init"); +} +return _3; +} +}),new objj_method(sel_getUid("setDataSource:"),function(_6,_7,_8){ +with(_6){ +if(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("outlineView:child:ofItem"))){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Data source must implement 'outlineView:child:ofItem'"); +} +if(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("outlineView:isItemExpandable"))){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Data source must implement 'outlineView:isItemExpandable'"); +} +if(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("outlineView:numberOfChildrenOfItem"))){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Data source must implement 'outlineView:numberOfChildrenOfItem'"); +} +if(!objj_msgSend(_8,"respondsToSelector:",sel_getUid("outlineView:objectValueForTableColumn:byItem"))){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Data source must implement 'outlineView:objectValueForTableColumn:byItem'"); +} +_outlineDataSource=_8; +objj_msgSend(_6,"reloadData"); +} +}),new objj_method(sel_getUid("reloadData"),function(_9,_a){ +with(_9){ +_numberOfVisibleItems=objj_msgSend(_outlineDataSource,"outlineView:numberOfChildrenOfItem:",_9,nil); +_numberOfRows=_numberOfVisibleItems; +var i=0; +for(;i<_numberOfVisibleItems;++i){ +_itemsByRow[i]=objj_msgSend(_outlineDataSource,"outlineView:child:ofItem:",_9,i,nil); +} +objj_msgSend(_9,"loadTableCellsInRect:",objj_msgSend(_9,"bounds")); +} +})]); +var _1=objj_getClass("CPOutlineView"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPOutlineView\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("numberOfRowsInTableView:"),function(_c,_d,_e){ +with(_c){ +return _numberOfVisibleItems; +} +}),new objj_method(sel_getUid("tableView:objectValueForTableColumn:row:"),function(_f,_10,_11,_12,_13){ +with(_f){ +return objj_msgSend(_outlineDataSource,"outlineView:objectValueForTableColumn:byItem:",_f,_12,_itemsByRow[_13]); +} +})]); +p;9;CPPanel.ji;10;CPWindow.jc;1152; +CPOKButton=1; +CPCancelButton=0; +var _1=objj_allocateClassPair(CPWindow,"CPPanel"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_becomesKeyOnlyIfNeeded"),new objj_ivar("_worksWhenModal")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("isFloatingPanel"),function(_3,_4){ +with(_3){ +return objj_msgSend(_3,"level")==CPFloatingWindowLevel; +} +}),new objj_method(sel_getUid("setFloatingPanel:"),function(_5,_6,_7){ +with(_5){ +objj_msgSend(_5,"setLevel:",_7?CPFloatingWindowLevel:CPNormalWindowLevel); +} +}),new objj_method(sel_getUid("becomesKeyOnlyIfNeeded"),function(_8,_9){ +with(_8){ +return _becomesKeyOnlyIfNeeded; +} +}),new objj_method(sel_getUid("setBecomesKeyOnlyIfNeeded:"),function(_a,_b,_c){ +with(_a){ +_becomesKeyOnlyIfNeeded=_c; +} +}),new objj_method(sel_getUid("worksWhenModal"),function(_d,_e){ +with(_d){ +return _worksWhenModal; +} +}),new objj_method(sel_getUid("setWorksWhenModal:"),function(_f,_10,_11){ +with(_f){ +_worksWhenModal=_11; +} +}),new objj_method(sel_getUid("canBecomeMainWindow"),function(_12,_13){ +with(_12){ +return NO; +} +})]); +p;14;CPPasteboard.jI;21;Foundation/CPObject.jI;20;Foundation/CPArray.jI;25;Foundation/CPDictionary.jI;40;Foundation/CPPropertyListSerialization.jc;4575; +CPGeneralPboard="CPGeneralPboard"; +CPFontPboard="CPFontPboard"; +CPRulerPboard="CPRulerPboard"; +CPFindPboard="CPFindPboard"; +CPDragPboard="CPDragPboard"; +CPColorPboardType="CPColorPboardType"; +CPFilenamesPboardType="CPFilenamesPboardType"; +CPFontPboardType="CPFontPboardType"; +CPHTMLPboardType="CPHTMLPboardType"; +CPStringPboardType="CPStringPboardType"; +CPURLPboardType="CPURLPboardType"; +CPImagesPboardType="CPImagesPboardType"; +CPVideosPboardType="CPVideosPboardType"; +CPImagePboardType="CPImagePboardType"; +var _1=nil; +var _2=objj_allocateClassPair(CPObject,"CPPasteboard"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_types"),new objj_ivar("_owners"),new objj_ivar("_provided"),new objj_ivar("_changeCount"),new objj_ivar("_stateUID")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("_initWithName:"),function(_4,_5,_6){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPObject")},"init"); +if(_4){ +_name=_6; +_types=[]; +_owners=objj_msgSend(CPDictionary,"dictionary"); +_provided=objj_msgSend(CPDictionary,"dictionary"); +_changeCount=0; +} +return _4; +} +}),new objj_method(sel_getUid("addTypes:owner:"),function(_7,_8,_9,_a){ +with(_7){ +var i=0,_c=_9.length; +for(;i<_c;++i){ +var _d=_9[i]; +if(!objj_msgSend(_owners,"objectForKey:",_d)){ +objj_msgSend(_types,"addObject:",_d); +objj_msgSend(_provided,"removeObjectForKey:",_d); +} +objj_msgSend(_owners,"setObject:forKey:",_a,_d); +} +return ++_changeCount; +} +}),new objj_method(sel_getUid("declareTypes:owner:"),function(_e,_f,_10,_11){ +with(_e){ +objj_msgSend(_types,"setArray:",_10); +_owners=objj_msgSend(CPDictionary,"dictionary"); +_provided=objj_msgSend(CPDictionary,"dictionary"); +var _12=_types.length; +while(_12--){ +objj_msgSend(_owners,"setObject:forKey:",_11,_types[_12]); +} +return ++_changeCount; +} +}),new objj_method(sel_getUid("setData:forType:"),function(_13,_14,_15,_16){ +with(_13){ +objj_msgSend(_provided,"setObject:forKey:",_15,_16); +return YES; +} +}),new objj_method(sel_getUid("setPropertyList:forType:"),function(_17,_18,_19,_1a){ +with(_17){ +return objj_msgSend(_17,"setData:forType:",objj_msgSend(CPPropertyListSerialization,"dataFromPropertyList:format:errorDescription:",_19,CPPropertyListXMLFormat_v1_0,nil),_1a); +} +}),new objj_method(sel_getUid("setString:forType:"),function(_1b,_1c,_1d,_1e){ +with(_1b){ +return objj_msgSend(_1b,"setPropertyList:forType:",_1d,_1e); +} +}),new objj_method(sel_getUid("availableTypeFromArray:"),function(_1f,_20,_21){ +with(_1f){ +return objj_msgSend(_types,"firstObjectCommonWithArray:",_21); +} +}),new objj_method(sel_getUid("types"),function(_22,_23){ +with(_22){ +return _types; +} +}),new objj_method(sel_getUid("changeCount"),function(_24,_25){ +with(_24){ +return _changeCount; +} +}),new objj_method(sel_getUid("dataForType:"),function(_26,_27,_28){ +with(_26){ +var _29=objj_msgSend(_provided,"objectForKey:",_28); +if(_29){ +return _29; +} +var _2a=objj_msgSend(_owners,"objectForKey:",_28); +if(_2a){ +objj_msgSend(_2a,"pasteboard:provideDataForType:",_26,_28); +++_changeCount; +return objj_msgSend(_provided,"objectForKey:",_28); +} +return nil; +} +}),new objj_method(sel_getUid("propertyListForType:"),function(_2b,_2c,_2d){ +with(_2b){ +var _2e=objj_msgSend(_2b,"dataForType:",_2d); +if(_2e){ +return objj_msgSend(CPPropertyListSerialization,"propertyListFromData:format:errorDescription:",_2e,CPPropertyListXMLFormat_v1_0,nil); +} +return nil; +} +}),new objj_method(sel_getUid("stringForType:"),function(_2f,_30,_31){ +with(_2f){ +return objj_msgSend(_2f,"propertyListForType:",_31); +} +}),new objj_method(sel_getUid("_generateStateUID"),function(_32,_33){ +with(_32){ +var _34=32; +_stateUID=""; +while(_34--){ +_stateUID+=FLOOR(RAND()*16).toString(16).toUpperCase(); +} +return _stateUID; +} +}),new objj_method(sel_getUid("_stateUID"),function(_35,_36){ +with(_35){ +return _stateUID; +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("initialize"),function(_37,_38){ +with(_37){ +if(_37!=objj_msgSend(CPPasteboard,"class")){ +return; +} +objj_msgSend(_37,"setVersion:",1); +_1=objj_msgSend(CPDictionary,"dictionary"); +} +}),new objj_method(sel_getUid("generalPasteboard"),function(_39,_3a){ +with(_39){ +return objj_msgSend(CPPasteboard,"pasteboardWithName:",CPGeneralPboard); +} +}),new objj_method(sel_getUid("pasteboardWithName:"),function(_3b,_3c,_3d){ +with(_3b){ +var _3e=objj_msgSend(_1,"objectForKey:",_3d); +if(_3e){ +return _3e; +} +_3e=objj_msgSend(objj_msgSend(CPPasteboard,"alloc"),"_initWithName:",_3d); +objj_msgSend(_1,"setObject:forKey:",_3e,_3d); +return _3e; +} +})]); +p;15;CPPopUpButton.ji;10;CPButton.ji;12;CPGeometry.ji;8;CPMenu.ji;12;CPMenuItem.jc;13753; +var _1=7; +CPPopUpButtonStatePullsDown=CPThemeState("pulls-down"); +var _2=objj_allocateClassPair(CPButton,"CPPopUpButton"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_selectedIndex"),new objj_ivar("_preferredEdge"),new objj_ivar("_menu")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithFrame:pullsDown:"),function(_4,_5,_6,_7){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPButton")},"initWithFrame:",_6); +if(_4){ +_selectedIndex=CPNotFound; +_preferredEdge=CPMaxYEdge; +objj_msgSend(_4,"setValue:forThemeAttribute:",CPImageLeft,"image-position"); +objj_msgSend(_4,"setValue:forThemeAttribute:",CPLeftTextAlignment,"alignment"); +objj_msgSend(_4,"setValue:forThemeAttribute:",CPLineBreakByTruncatingTail,"line-break-mode"); +objj_msgSend(_4,"setMenu:",objj_msgSend(objj_msgSend(CPMenu,"alloc"),"initWithTitle:","")); +objj_msgSend(_4,"setPullsDown:",_7); +} +return _4; +} +}),new objj_method(sel_getUid("initWithFrame:"),function(_8,_9,_a){ +with(_8){ +return objj_msgSend(_8,"initWithFrame:pullsDown:",_a,NO); +} +}),new objj_method(sel_getUid("setPullsDown:"),function(_b,_c,_d){ +with(_b){ +if(_d){ +var _e=objj_msgSend(_b,"setThemeState:",CPPopUpButtonStatePullsDown); +}else{ +var _e=objj_msgSend(_b,"unsetThemeState:",CPPopUpButtonStatePullsDown); +} +if(!_e){ +return; +} +var _f=objj_msgSend(_menu,"itemArray"); +if(objj_msgSend(_f,"count")<=0){ +return; +} +objj_msgSend(_f[0],"setHidden:",objj_msgSend(_b,"pullsDown")); +objj_msgSend(_b,"synchronizeTitleAndSelectedItem"); +} +}),new objj_method(sel_getUid("pullsDown"),function(_10,_11){ +with(_10){ +return objj_msgSend(_10,"hasThemeState:",CPPopUpButtonStatePullsDown); +} +}),new objj_method(sel_getUid("addItem:"),function(_12,_13,_14){ +with(_12){ +objj_msgSend(_menu,"addItem:",_14); +} +}),new objj_method(sel_getUid("addItemWithTitle:"),function(_15,_16,_17){ +with(_15){ +objj_msgSend(_menu,"addItemWithTitle:action:keyEquivalent:",_17,NULL,nil); +} +}),new objj_method(sel_getUid("addItemsWithTitles:"),function(_18,_19,_1a){ +with(_18){ +var _1b=0,_1c=objj_msgSend(_1a,"count"); +for(;_1b<_1c;++_1b){ +objj_msgSend(_18,"addItemWithTitle:",_1a[_1b]); +} +} +}),new objj_method(sel_getUid("insertItemWithTitle:atIndex:"),function(_1d,_1e,_1f,_20){ +with(_1d){ +var _21=objj_msgSend(_1d,"itemArray"),_22=objj_msgSend(_21,"count"); +while(_22--){ +if(objj_msgSend(_21[_22],"title")==_1f){ +objj_msgSend(_1d,"removeItemAtIndex:",_22); +} +} +objj_msgSend(_menu,"insertItemWithTitle:action:keyEquivalent:atIndex:",_1f,NULL,nil,_20); +} +}),new objj_method(sel_getUid("removeAllItems"),function(_23,_24){ +with(_23){ +var _25=objj_msgSend(_menu,"numberOfItems"); +while(_25--){ +objj_msgSend(_menu,"removeItemAtIndex:",0); +} +} +}),new objj_method(sel_getUid("removeItemWithTitle:"),function(_26,_27,_28){ +with(_26){ +objj_msgSend(_26,"removeItemAtIndex:",objj_msgSend(_26,"indexOfItemWithTitle:",_28)); +objj_msgSend(_26,"synchronizeTitleAndSelectedItem"); +} +}),new objj_method(sel_getUid("removeItemAtIndex:"),function(_29,_2a,_2b){ +with(_29){ +objj_msgSend(_menu,"removeItemAtIndex:",_2b); +objj_msgSend(_29,"synchronizeTitleAndSelectedItem"); +} +}),new objj_method(sel_getUid("selectedItem"),function(_2c,_2d){ +with(_2c){ +if(_selectedIndex<0){ +return nil; +} +return objj_msgSend(_menu,"itemAtIndex:",_selectedIndex); +} +}),new objj_method(sel_getUid("titleOfSelectedItem"),function(_2e,_2f){ +with(_2e){ +return objj_msgSend(objj_msgSend(_2e,"selectedItem"),"title"); +} +}),new objj_method(sel_getUid("indexOfSelectedItem"),function(_30,_31){ +with(_30){ +return _selectedIndex; +} +}),new objj_method(sel_getUid("objectValue"),function(_32,_33){ +with(_32){ +return _selectedIndex; +} +}),new objj_method(sel_getUid("selectItem:"),function(_34,_35,_36){ +with(_34){ +objj_msgSend(_34,"selectItemAtIndex:",objj_msgSend(_34,"indexOfItem:",_36)); +} +}),new objj_method(sel_getUid("selectItemAtIndex:"),function(_37,_38,_39){ +with(_37){ +if(_selectedIndex==_39){ +return; +} +if(_selectedIndex>=0&&!objj_msgSend(_37,"pullsDown")){ +objj_msgSend(objj_msgSend(_37,"selectedItem"),"setState:",CPOffState); +} +_selectedIndex=_39; +if(_selectedIndex>=0&&!objj_msgSend(_37,"pullsDown")){ +objj_msgSend(objj_msgSend(_37,"selectedItem"),"setState:",CPOnState); +} +objj_msgSend(_37,"synchronizeTitleAndSelectedItem"); +} +}),new objj_method(sel_getUid("selectItemWithTag:"),function(_3a,_3b,_3c){ +with(_3a){ +objj_msgSend(_3a,"selectItemAtIndex:",objj_msgSend(_3a,"indexOfItemWithTag:",_3c)); +} +}),new objj_method(sel_getUid("selectItemWithTitle:"),function(_3d,_3e,_3f){ +with(_3d){ +objj_msgSend(_3d,"selectItemAtIndex:",objj_msgSend(_3d,"indexOfItemWithTitle:",_3f)); +} +}),new objj_method(sel_getUid("setObjectValue:"),function(_40,_41,_42){ +with(_40){ +objj_msgSend(_40,"selectItemAtIndex:",objj_msgSend(_42,"intValue")); +} +}),new objj_method(sel_getUid("menu"),function(_43,_44){ +with(_43){ +return _menu; +} +}),new objj_method(sel_getUid("setMenu:"),function(_45,_46,_47){ +with(_45){ +if(_menu===_47){ +return; +} +var _48=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(_menu){ +objj_msgSend(_48,"removeObserver:name:object:",_45,CPMenuDidAddItemNotification,_menu); +objj_msgSend(_48,"removeObserver:name:object:",_45,CPMenuDidChangeItemNotification,_menu); +objj_msgSend(_48,"removeObserver:name:object:",_45,CPMenuDidRemoveItemNotification,_menu); +} +_menu=_47; +if(_menu){ +objj_msgSend(_48,"addObserver:selector:name:object:",_45,sel_getUid("menuDidAddItem:"),CPMenuDidAddItemNotification,_menu); +objj_msgSend(_48,"addObserver:selector:name:object:",_45,sel_getUid("menuDidChangeItem:"),CPMenuDidChangeItemNotification,_menu); +objj_msgSend(_48,"addObserver:selector:name:object:",_45,sel_getUid("menuDidRemoveItem:"),CPMenuDidRemoveItemNotification,_menu); +} +objj_msgSend(_45,"synchronizeTitleAndSelectedItem"); +} +}),new objj_method(sel_getUid("numberOfItems"),function(_49,_4a){ +with(_49){ +return objj_msgSend(_menu,"numberOfItems"); +} +}),new objj_method(sel_getUid("itemArray"),function(_4b,_4c){ +with(_4b){ +return objj_msgSend(_menu,"itemArray"); +} +}),new objj_method(sel_getUid("itemAtIndex:"),function(_4d,_4e,_4f){ +with(_4d){ +return objj_msgSend(_menu,"itemAtIndex:",_4f); +} +}),new objj_method(sel_getUid("itemTitleAtIndex:"),function(_50,_51,_52){ +with(_50){ +return objj_msgSend(objj_msgSend(_menu,"itemAtIndex:",_52),"title"); +} +}),new objj_method(sel_getUid("itemTitles"),function(_53,_54){ +with(_53){ +var _55=[],_56=objj_msgSend(_53,"itemArray"),_57=0,_58=objj_msgSend(_56,"count"); +for(;_57<_58;++_57){ +_56.push(objj_msgSend(_56[_57],"title")); +} +} +}),new objj_method(sel_getUid("itemWithTitle:"),function(_59,_5a,_5b){ +with(_59){ +return objj_msgSend(_menu,"itemAtIndex:",objj_msgSend(_menu,"indexOfItemWithTitle:",_5b)); +} +}),new objj_method(sel_getUid("lastItem"),function(_5c,_5d){ +with(_5c){ +return objj_msgSend(objj_msgSend(_menu,"itemArray"),"lastObject"); +} +}),new objj_method(sel_getUid("indexOfItem:"),function(_5e,_5f,_60){ +with(_5e){ +return objj_msgSend(_menu,"indexOfItem:",_60); +} +}),new objj_method(sel_getUid("indexOfItemWithTag:"),function(_61,_62,_63){ +with(_61){ +return objj_msgSend(_menu,"indexOfItemWithTag:",_63); +} +}),new objj_method(sel_getUid("indexOfItemWithTitle:"),function(_64,_65,_66){ +with(_64){ +return objj_msgSend(_menu,"indexOfItemWithTitle:",_66); +} +}),new objj_method(sel_getUid("indexOfItemWithRepresentedObject:"),function(_67,_68,_69){ +with(_67){ +return objj_msgSend(_menu,"indexOfItemWithRepresentedObject:",_69); +} +}),new objj_method(sel_getUid("indexOfItemWithTarget:action:"),function(_6a,_6b,_6c,_6d){ +with(_6a){ +return objj_msgSend(_menu,"indexOfItemWithTarget:action:",_6c,_6d); +} +}),new objj_method(sel_getUid("preferredEdge"),function(_6e,_6f){ +with(_6e){ +return _preferredEdge; +} +}),new objj_method(sel_getUid("setPreferredEdge:"),function(_70,_71,_72){ +with(_70){ +_preferredEdge=_72; +} +}),new objj_method(sel_getUid("setTitle:"),function(_73,_74,_75){ +with(_73){ +if(objj_msgSend(_73,"title")===_75){ +return; +} +if(objj_msgSend(_73,"pullsDown")){ +var _76=objj_msgSend(_menu,"itemArray"); +if(objj_msgSend(_76,"count")<=0){ +objj_msgSend(_73,"addItemWithTitle:",_75); +}else{ +objj_msgSend(_76[0],"setTitle:",_75); +objj_msgSend(_73,"synchronizeTitleAndSelectedItem"); +} +}else{ +var _77=objj_msgSend(_73,"indexOfItemWithTitle:",_75); +if(_77<0){ +objj_msgSend(_73,"addItemWithTitle:",_75); +_77=objj_msgSend(_73,"numberOfItems")-1; +} +objj_msgSend(_73,"selectItemAtIndex:",_77); +} +} +}),new objj_method(sel_getUid("setImage:"),function(_78,_79,_7a){ +with(_78){ +} +}),new objj_method(sel_getUid("synchronizeTitleAndSelectedItem"),function(_7b,_7c){ +with(_7b){ +var _7d=nil; +if(objj_msgSend(_7b,"pullsDown")){ +var _7e=objj_msgSend(_menu,"itemArray"); +if(objj_msgSend(_7e,"count")>0){ +_7d=_7e[0]; +} +}else{ +_7d=objj_msgSend(_7b,"selectedItem"); +} +objj_msgSendSuper({receiver:_7b,super_class:objj_getClass("CPButton")},"setImage:",objj_msgSend(_7d,"image")); +objj_msgSendSuper({receiver:_7b,super_class:objj_getClass("CPButton")},"setTitle:",objj_msgSend(_7d,"title")); +} +}),new objj_method(sel_getUid("menuDidAddItem:"),function(_7f,_80,_81){ +with(_7f){ +var _82=objj_msgSend(objj_msgSend(_81,"userInfo"),"objectForKey:","CPMenuItemIndex"); +if(_selectedIndex<0){ +objj_msgSend(_7f,"selectItemAtIndex:",0); +}else{ +if(_82==_selectedIndex){ +objj_msgSend(_7f,"synchronizeTitleAndSelectedItem"); +}else{ +if(_82<_selectedIndex){ +++_selectedIndex; +} +} +} +if(_82==0&&objj_msgSend(_7f,"pullsDown")){ +var _83=objj_msgSend(_menu,"itemArray"); +objj_msgSend(_83[0],"setHidden:",YES); +if(_83.length>0){ +objj_msgSend(_83[1],"setHidden:",NO); +} +} +var _84=objj_msgSend(_menu,"itemArray")[_82],_85=objj_msgSend(_84,"action"); +if(!_85||(_85===sel_getUid("_popUpItemAction:"))){ +objj_msgSend(_84,"setTarget:",_7f); +objj_msgSend(_84,"setAction:",sel_getUid("_popUpItemAction:")); +} +} +}),new objj_method(sel_getUid("menuDidChangeItem:"),function(_86,_87,_88){ +with(_86){ +var _89=objj_msgSend(objj_msgSend(_88,"userInfo"),"objectForKey:","CPMenuItemIndex"); +if(objj_msgSend(_86,"pullsDown")&&_89!=0){ +return; +} +if(!objj_msgSend(_86,"pullsDown")&&_89!=_selectedIndex){ +return; +} +objj_msgSend(_86,"synchronizeTitleAndSelectedItem"); +} +}),new objj_method(sel_getUid("menuDidRemoveItem:"),function(_8a,_8b,_8c){ +with(_8a){ +var _8d=objj_msgSend(_8a,"numberOfItems"); +if(_8d<=_selectedIndex){ +objj_msgSend(_8a,"selectItemAtIndex:",_8d-1); +} +} +}),new objj_method(sel_getUid("mouseDown:"),function(_8e,_8f,_90){ +with(_8e){ +if(!objj_msgSend(_8e,"isEnabled")){ +return; +} +objj_msgSend(_8e,"highlight:",YES); +var _91=objj_msgSend(_8e,"menu"),_92=objj_msgSend(_8e,"window"),_93=objj_msgSend(_CPMenuWindow,"menuWindowWithMenu:font:",_91,objj_msgSend(_8e,"font")); +objj_msgSend(_93,"setDelegate:",_8e); +objj_msgSend(_93,"setBackgroundStyle:",_CPMenuWindowPopUpBackgroundStyle); +if(objj_msgSend(_8e,"pullsDown")){ +var _94=objj_msgSend(_92,"convertBaseToBridge:",objj_msgSend(_8e,"convertPoint:toView:",CGPointMake(0,CGRectGetMaxY(objj_msgSend(_8e,"bounds"))),nil)); +}else{ +var _95=objj_msgSend(_8e,"convertRect:toView:",objj_msgSend(_8e,"contentRectForBounds:",objj_msgSend(_8e,"bounds")),nil),_94=objj_msgSend(_92,"convertBaseToBridge:",_95.origin),_96=objj_msgSend(_93,"rectForItemAtIndex:",_selectedIndex); +_94.x-=CGRectGetMinX(_96)+objj_msgSend(_93,"overlapOffsetWidth")+objj_msgSend(objj_msgSend(objj_msgSend(_91,"itemAtIndex:",_selectedIndex),"_menuItemView"),"overlapOffsetWidth"); +_94.y-=CGRectGetMinY(_96)+(CGRectGetHeight(_96)-CGRectGetHeight(_95))/2; +} +objj_msgSend(_93,"setFrameOrigin:",_94); +var _97=CGRectGetMaxX(objj_msgSend(_93,"frame")),_98=objj_msgSend(_92,"convertBaseToBridge:",CGPointMake(CGRectGetMaxX(objj_msgSend(_8e,"convertRect:toView:",objj_msgSend(_8e,"bounds"),nil)),0)).x; +if(_97<_98){ +objj_msgSend(_93,"setMinWidth:",CGRectGetWidth(objj_msgSend(_93,"frame"))+_98-_97-(objj_msgSend(_8e,"pullsDown")?0:_1)); +} +objj_msgSend(_93,"orderFront:",_8e); +objj_msgSend(_93,"beginTrackingWithEvent:sessionDelegate:didEndSelector:",_90,_8e,sel_getUid("menuWindowDidFinishTracking:highlightedItem:")); +} +}),new objj_method(sel_getUid("menuWindowDidFinishTracking:highlightedItem:"),function(_99,_9a,_9b,_9c){ +with(_99){ +objj_msgSend(_CPMenuWindow,"poolMenuWindow:",_9b); +objj_msgSend(_99,"highlight:",NO); +var _9d=objj_msgSend(_menu,"indexOfItem:",_9c); +if(_9d==CPNotFound){ +return; +} +objj_msgSend(_99,"selectItemAtIndex:",_9d); +objj_msgSend(CPApp,"sendAction:to:from:",objj_msgSend(_9c,"action"),objj_msgSend(_9c,"target"),_9c); +} +}),new objj_method(sel_getUid("_popUpItemAction:"),function(_9e,_9f,_a0){ +with(_9e){ +objj_msgSend(_9e,"sendAction:to:",objj_msgSend(_9e,"action"),objj_msgSend(_9e,"target")); +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("themeClass"),function(_a1,_a2){ +with(_a1){ +return "popup-button"; +} +})]); +var _a3="CPPopUpButtonMenuKey",_a4="CPPopUpButtonSelectedIndexKey",_a5="CPPopUpButtonPullsDownKey"; +var _2=objj_getClass("CPPopUpButton"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPPopUpButton\"")); +} +var _3=_2.isa; +class_addMethods(_2,[new objj_method(sel_getUid("initWithCoder:"),function(_a6,_a7,_a8){ +with(_a6){ +_a6=objj_msgSendSuper({receiver:_a6,super_class:objj_getClass("CPButton")},"initWithCoder:",_a8); +if(_a6){ +_selectedIndex=-1; +objj_msgSend(_a6,"setMenu:",objj_msgSend(_a8,"decodeObjectForKey:",_a3)); +objj_msgSend(_a6,"selectItemAtIndex:",objj_msgSend(_a8,"decodeObjectForKey:",_a4)); +} +return _a6; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_a9,_aa,_ab){ +with(_a9){ +objj_msgSendSuper({receiver:_a9,super_class:objj_getClass("CPButton")},"encodeWithCoder:",_ab); +objj_msgSend(_ab,"encodeObject:forKey:",_menu,_a3); +objj_msgSend(_ab,"encodeInt:forKey:",_selectedIndex,_a4); +} +})]); +p;21;CPProgressIndicator.jI;19;AppKit/CGGeometry.jI;20;AppKit/CPImageView.jI;15;AppKit/CPView.jc;8511; +CPProgressIndicatorBarStyle=0; +CPProgressIndicatorSpinningStyle=1; +CPProgressIndicatorHUDBarStyle=2; +var _1=nil,_2=nil,_3=nil,_4=nil; +var _5=objj_allocateClassPair(CPView,"CPProgressIndicator"),_6=_5.isa; +class_addIvars(_5,[new objj_ivar("_minValue"),new objj_ivar("_maxValue"),new objj_ivar("_doubleValue"),new objj_ivar("_controlSize"),new objj_ivar("_isIndeterminate"),new objj_ivar("_style"),new objj_ivar("_isAnimating"),new objj_ivar("_isDisplayedWhenStoppedSet"),new objj_ivar("_isDisplayedWhenStopped"),new objj_ivar("_barView")]); +objj_registerClassPair(_5); +objj_addClassForBundle(_5,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_5,[new objj_method(sel_getUid("initWithFrame:"),function(_7,_8,_9){ +with(_7){ +_7=objj_msgSendSuper({receiver:_7,super_class:objj_getClass("CPView")},"initWithFrame:",_9); +if(_7){ +_minValue=0; +_maxValue=100; +_doubleValue=0; +_style=CPProgressIndicatorBarStyle; +_isDisplayedWhenStoppedSet=NO; +_controlSize=CPRegularControlSize; +objj_msgSend(_7,"updateBackgroundColor"); +objj_msgSend(_7,"drawBar"); +} +return _7; +} +}),new objj_method(sel_getUid("setUsesThreadedAnimation:"),function(_a,_b,_c){ +with(_a){ +} +}),new objj_method(sel_getUid("startAnimation:"),function(_d,_e,_f){ +with(_d){ +_isAnimating=YES; +objj_msgSend(_d,"_hideOrDisplay"); +} +}),new objj_method(sel_getUid("stopAnimation:"),function(_10,_11,_12){ +with(_10){ +_isAnimating=NO; +objj_msgSend(_10,"_hideOrDisplay"); +} +}),new objj_method(sel_getUid("usesThreadedAnimation"),function(_13,_14){ +with(_13){ +return NO; +} +}),new objj_method(sel_getUid("incrementBy:"),function(_15,_16,_17){ +with(_15){ +objj_msgSend(_15,"setDoubleValue:",_doubleValue+_17); +} +}),new objj_method(sel_getUid("setDoubleValue:"),function(_18,_19,_1a){ +with(_18){ +_doubleValue=MIN(MAX(_1a,_minValue),_maxValue); +objj_msgSend(_18,"drawBar"); +} +}),new objj_method(sel_getUid("doubleValue"),function(_1b,_1c){ +with(_1b){ +return _doubleValue; +} +}),new objj_method(sel_getUid("setMinValue:"),function(_1d,_1e,_1f){ +with(_1d){ +_minValue=_1f; +} +}),new objj_method(sel_getUid("minValue"),function(_20,_21){ +with(_20){ +return _minValue; +} +}),new objj_method(sel_getUid("setMaxValue:"),function(_22,_23,_24){ +with(_22){ +_maxValue=_24; +} +}),new objj_method(sel_getUid("maxValue"),function(_25,_26){ +with(_25){ +return _maxValue; +} +}),new objj_method(sel_getUid("setControlSize:"),function(_27,_28,_29){ +with(_27){ +if(_controlSize==_29){ +return; +} +_controlSize=_29; +objj_msgSend(_27,"updateBackgroundColor"); +} +}),new objj_method(sel_getUid("controlSize"),function(_2a,_2b){ +with(_2a){ +return _controlSize; +} +}),new objj_method(sel_getUid("setControlTint:"),function(_2c,_2d,_2e){ +with(_2c){ +} +}),new objj_method(sel_getUid("controlTint"),function(_2f,_30){ +with(_2f){ +return 0; +} +}),new objj_method(sel_getUid("setBezeled:"),function(_31,_32,_33){ +with(_31){ +} +}),new objj_method(sel_getUid("isBezeled"),function(_34,_35){ +with(_34){ +return YES; +} +}),new objj_method(sel_getUid("setIndeterminate:"),function(_36,_37,_38){ +with(_36){ +if(_isIndeterminate==_38){ +return; +} +_isIndeterminate=_38; +objj_msgSend(_36,"updateBackgroundColor"); +} +}),new objj_method(sel_getUid("isIndeterminate"),function(_39,_3a){ +with(_39){ +return _isIndeterminate; +} +}),new objj_method(sel_getUid("setStyle:"),function(_3b,_3c,_3d){ +with(_3b){ +if(_style==_3d){ +return; +} +_style=_3d; +objj_msgSend(_3b,"updateBackgroundColor"); +} +}),new objj_method(sel_getUid("sizeToFit"),function(_3e,_3f){ +with(_3e){ +if(_style==CPProgressIndicatorSpinningStyle){ +objj_msgSend(_3e,"setFrameSize:",objj_msgSend(objj_msgSend(_1[_controlSize],"patternImage"),"size")); +}else{ +objj_msgSend(_3e,"setFrameSize:",CGSizeMake(CGRectGetWidth(objj_msgSend(_3e,"frame")),_4[_2+"BezelBorder"+_3[CPProgressIndicatorBarStyle]+_CPControlIdentifierForControlSize(_controlSize)][0].height)); +} +} +}),new objj_method(sel_getUid("setDisplayedWhenStopped:"),function(_40,_41,_42){ +with(_40){ +if(_isDisplayedWhenStoppedSet&&_isDisplayedWhenStopped==_42){ +return; +} +_isDisplayedWhenStoppedSet=YES; +_isDisplayedWhenStopped=_42; +objj_msgSend(_40,"_hideOrDisplay"); +} +}),new objj_method(sel_getUid("isDisplayedWhenStopped"),function(_43,_44){ +with(_43){ +if(_isDisplayedWhenStoppedSet){ +return _isDisplayedWhenStopped; +} +if(_style==CPProgressIndicatorBarStyle||_style==CPProgressIndicatorHUDBarStyle){ +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("_hideOrDisplay"),function(_45,_46){ +with(_45){ +objj_msgSend(_45,"setHidden:",!_isAnimating&&!objj_msgSend(_45,"isDisplayedWhenStopped")); +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_47,_48,_49){ +with(_47){ +objj_msgSendSuper({receiver:_47,super_class:objj_getClass("CPView")},"setFrameSize:",_49); +objj_msgSend(_47,"drawBar"); +} +}),new objj_method(sel_getUid("drawBar"),function(_4a,_4b){ +with(_4a){ +if(_style==CPProgressIndicatorSpinningStyle){ +return; +} +if(!_barView){ +_barView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(2,2,0,9)); +objj_msgSend(_barView,"setBackgroundColor:",objj_msgSend(CPColor,"redColor")); +objj_msgSend(_4a,"addSubview:",_barView); +} +objj_msgSend(_barView,"setBackgroundColor:",_CPControlColorWithPatternImage(_4,_2,"Bar",_3[_style],_CPControlIdentifierForControlSize(_controlSize))); +objj_msgSend(_barView,"setFrameSize:",CGSizeMake(CGRectGetWidth(objj_msgSend(_4a,"bounds"))*(_doubleValue-_minValue)/(_maxValue-_minValue)-4,9)); +} +}),new objj_method(sel_getUid("updateBackgroundColor"),function(_4c,_4d){ +with(_4c){ +if(YES){ +if(_style==CPProgressIndicatorSpinningStyle){ +objj_msgSend(_barView,"removeFromSuperview"); +_barView=nil; +objj_msgSend(_4c,"setBackgroundColor:",_1[_controlSize]); +}else{ +objj_msgSend(_4c,"setBackgroundColor:",_CPControlThreePartImagePattern(NO,_4,_2,"BezelBorder",_3[_style],_CPControlIdentifierForControlSize(_controlSize))); +objj_msgSend(_4c,"drawBar"); +} +}else{ +objj_msgSend(_4c,"setBackgroundColor:",nil); +} +} +})]); +class_addMethods(_6,[new objj_method(sel_getUid("initialize"),function(_4e,_4f){ +with(_4e){ +if(_4e!=objj_msgSend(CPProgressIndicator,"class")){ +return; +} +var _50=objj_msgSend(CPBundle,"bundleForClass:",_4e); +_1=[]; +_1[CPMiniControlSize]=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_50,"pathForResource:","CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"),CGSizeMake(64,64))); +_1[CPSmallControlSize]=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_50,"pathForResource:","CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"),CGSizeMake(64,64))); +_1[CPRegularControlSize]=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_50,"pathForResource:","CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"),CGSizeMake(64,64))); +CPProgressIndicatorBezelBorderViewPool=[]; +var _51=CPProgressIndicatorBarStyle,end=CPProgressIndicatorHUDBarStyle; +for(;_51<=end;++_51){ +CPProgressIndicatorBezelBorderViewPool[_51]=[]; +CPProgressIndicatorBezelBorderViewPool[_51][CPMiniControlSize]=[]; +CPProgressIndicatorBezelBorderViewPool[_51][CPSmallControlSize]=[]; +CPProgressIndicatorBezelBorderViewPool[_51][CPRegularControlSize]=[]; +} +_2=objj_msgSend(_4e,"className"); +_3=[]; +_3[CPProgressIndicatorBarStyle]="Bar"; +_3[CPProgressIndicatorSpinningStyle]="Spinny"; +_3[CPProgressIndicatorHUDBarStyle]="HUDBar"; +var _53=_CPControlIdentifierForControlSize(CPRegularControlSize),_54=_CPControlIdentifierForControlSize(CPSmallControlSize),_55=_CPControlIdentifierForControlSize(CPMiniControlSize); +_4=[]; +var _56=_2+"BezelBorder"+_3[CPProgressIndicatorBarStyle]; +_4[_56+_53]=[{width:3,height:15},{width:1,height:15},{width:3,height:15}]; +_4[_56+_54]=[{width:3,height:15},{width:1,height:15},{width:3,height:15}]; +_4[_56+_55]=[{width:3,height:15},{width:1,height:15},{width:3,height:15}]; +_56=_2+"Bar"+_3[CPProgressIndicatorBarStyle]; +_4[_56+_53]={width:1,height:9}; +_4[_56+_54]={width:1,height:9}; +_4[_56+_55]={width:1,height:9}; +_56=_2+"BezelBorder"+_3[CPProgressIndicatorHUDBarStyle]; +_4[_56+_53]=[{width:3,height:15},{width:1,height:15},{width:3,height:15}]; +_4[_56+_54]=[{width:3,height:15},{width:1,height:15},{width:3,height:15}]; +_4[_56+_55]=[{width:3,height:15},{width:1,height:15},{width:3,height:15}]; +_56=_2+"Bar"+_3[CPProgressIndicatorHUDBarStyle]; +_4[_56+_53]={width:1,height:9}; +_4[_56+_54]={width:1,height:9}; +_4[_56+_55]={width:1,height:9}; +} +})]); +p;9;CPRadio.jI;21;Foundation/CPObject.jI;18;Foundation/CPSet.ji;10;CPButton.jc;5034; +var _1=objj_allocateClassPair(CPButton,"CPRadio"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_radioGroup")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:radioGroup:"),function(_3,_4,_5,_6){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPButton")},"initWithFrame:",_5); +if(_3){ +objj_msgSend(_3,"setRadioGroup:",_6||objj_msgSend(CPRadioGroup,"new")); +objj_msgSend(_3,"setHighlightsBy:",CPContentsCellMask); +objj_msgSend(_3,"setShowsStateBy:",CPContentsCellMask); +objj_msgSend(_3,"setImagePosition:",CPImageLeft); +objj_msgSend(_3,"setAlignment:",CPLeftTextAlignment); +objj_msgSend(_3,"setBordered:",YES); +} +return _3; +} +}),new objj_method(sel_getUid("initWithFrame:"),function(_7,_8,_9){ +with(_7){ +return objj_msgSend(_7,"initWithFrame:radioGroup:",_9,nil); +} +}),new objj_method(sel_getUid("nextState"),function(_a,_b){ +with(_a){ +return CPOnState; +} +}),new objj_method(sel_getUid("setRadioGroup:"),function(_c,_d,_e){ +with(_c){ +if(_radioGroup===_e){ +return; +} +objj_msgSend(_radioGroup,"_removeRadio:",_c); +_radioGroup=_e; +objj_msgSend(_radioGroup,"_addRadio:",_c); +} +}),new objj_method(sel_getUid("radioGroup"),function(_f,_10){ +with(_f){ +return _radioGroup; +} +}),new objj_method(sel_getUid("setObjectValue:"),function(_11,_12,_13){ +with(_11){ +objj_msgSendSuper({receiver:_11,super_class:objj_getClass("CPButton")},"setObjectValue:",_13); +if(objj_msgSend(_11,"state")===CPOnState){ +objj_msgSend(_radioGroup,"_setSelectedRadio:",_11); +} +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("radioWithTitle:theme:"),function(_14,_15,_16,_17){ +with(_14){ +return objj_msgSend(_14,"buttonWithTitle:theme:",_16,_17); +} +}),new objj_method(sel_getUid("radioWithTitle:"),function(_18,_19,_1a){ +with(_18){ +return objj_msgSend(_18,"buttonWithTitle:",_1a); +} +}),new objj_method(sel_getUid("standardButtonWithTitle:"),function(_1b,_1c,_1d){ +with(_1b){ +var _1e=objj_msgSend(objj_msgSend(CPRadio,"alloc"),"init"); +objj_msgSend(_1e,"setTitle:",_1d); +return _1e; +} +}),new objj_method(sel_getUid("themeClass"),function(_1f,_20){ +with(_1f){ +return "radio"; +} +})]); +var _21="CPRadioRadioGroupKey"; +var _1=objj_getClass("CPRadio"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPRadio\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_22,_23,_24){ +with(_22){ +_22=objj_msgSendSuper({receiver:_22,super_class:objj_getClass("CPButton")},"initWithCoder:",_24); +if(_22){ +_radioGroup=objj_msgSend(_24,"decodeObjectForKey:",_21); +} +return _22; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_25,_26,_27){ +with(_25){ +objj_msgSendSuper({receiver:_25,super_class:objj_getClass("CPButton")},"encodeWithCoder:",_27); +objj_msgSend(_27,"encodeObject:forKey:",_radioGroup,_21); +} +})]); +var _1=objj_allocateClassPair(CPObject,"CPRadioGroup"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_radios"),new objj_ivar("_selectedRadio")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("init"),function(_28,_29){ +with(_28){ +_28=objj_msgSendSuper({receiver:_28,super_class:objj_getClass("CPObject")},"init"); +if(_28){ +_radios=objj_msgSend(CPSet,"set"); +_selectedRadio=nil; +} +return _28; +} +}),new objj_method(sel_getUid("_addRadio:"),function(_2a,_2b,_2c){ +with(_2a){ +objj_msgSend(_radios,"addObject:",_2c); +if(objj_msgSend(_2c,"state")===CPOnState){ +objj_msgSend(_2a,"_setSelectedRadio:",_2c); +} +} +}),new objj_method(sel_getUid("_removeRadio:"),function(_2d,_2e,_2f){ +with(_2d){ +if(_selectedRadio===_2f){ +_selectedRadio=nil; +} +objj_msgSend(_radios,"removeObject:",_2f); +} +}),new objj_method(sel_getUid("_setSelectedRadio:"),function(_30,_31,_32){ +with(_30){ +if(_selectedRadio===_32){ +return; +} +objj_msgSend(_selectedRadio,"setState:",CPOffState); +_selectedRadio=_32; +} +}),new objj_method(sel_getUid("selectedRadio"),function(_33,_34){ +with(_33){ +return _selectedRadio; +} +}),new objj_method(sel_getUid("radios"),function(_35,_36){ +with(_35){ +return objj_msgSend(_radios,"allObjects"); +} +})]); +var _37="CPRadioGroupRadiosKey",_38="CPRadioGroupSelectedRadioKey"; +var _1=objj_getClass("CPRadioGroup"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPRadioGroup\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_39,_3a,_3b){ +with(_39){ +_39=objj_msgSendSuper({receiver:_39,super_class:objj_getClass("CPObject")},"init"); +if(_39){ +_radios=objj_msgSend(_3b,"decodeObjectForKey:",_37); +_selectedRadio=objj_msgSend(_3b,"decodeObjectForKey:",_38); +} +return _39; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_3c,_3d,_3e){ +with(_3c){ +objj_msgSend(_3e,"encodeObject:forKey:",_radios,_37); +objj_msgSend(_3e,"encodeObject:forKey:",_selectedRadio,_38); +} +})]); +p;13;CPResponder.jI;21;Foundation/CPObject.jc;5510; +CPDeleteKeyCode=8; +CPTabKeyCode=9; +CPReturnKeyCode=13; +CPEscapeKeyCode=27; +CPLeftArrowKeyCode=37; +CPUpArrowKeyCode=38; +CPRightArrowKeyCode=39; +CPDownArrowKeyCode=40; +var _1=objj_allocateClassPair(CPObject,"CPResponder"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_menu"),new objj_ivar("_nextResponder")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("acceptsFirstResponder"),function(_3,_4){ +with(_3){ +return NO; +} +}),new objj_method(sel_getUid("becomeFirstResponder"),function(_5,_6){ +with(_5){ +return YES; +} +}),new objj_method(sel_getUid("resignFirstResponder"),function(_7,_8){ +with(_7){ +return YES; +} +}),new objj_method(sel_getUid("setNextResponder:"),function(_9,_a,_b){ +with(_9){ +_nextResponder=_b; +} +}),new objj_method(sel_getUid("nextResponder"),function(_c,_d){ +with(_c){ +return _nextResponder; +} +}),new objj_method(sel_getUid("interpretKeyEvents:"),function(_e,_f,_10){ +with(_e){ +var _11,_12=0; +while(_11=_10[_12++]){ +switch(objj_msgSend(_11,"keyCode")){ +case CPLeftArrowKeyCode: +objj_msgSend(_e,"moveBackward:",_e); +break; +case CPRightArrowKeyCode: +objj_msgSend(_e,"moveForward:",_e); +break; +case CPUpArrowKeyCode: +objj_msgSend(_e,"moveUp:",_e); +break; +case CPDownArrowKeyCode: +objj_msgSend(_e,"moveDown:",_e); +break; +case CPDeleteKeyCode: +objj_msgSend(_e,"deleteBackward:",_e); +break; +case CPReturnKeyCode: +case 3: +objj_msgSend(_e,"insertLineBreak:",_e); +break; +case CPEscapeKeyCode: +objj_msgSend(_e,"cancel:",_e); +break; +case CPTabKeyCode: +var _13=objj_msgSend(_11,"modifierFlags")&CPShiftKeyMask; +if(!_13){ +objj_msgSend(_e,"insertTab:",_e); +}else{ +objj_msgSend(_e,"insertBackTab:",_e); +} +break; +default: +objj_msgSend(_e,"insertText:",objj_msgSend(_11,"characters")); +} +} +} +}),new objj_method(sel_getUid("mouseDown:"),function(_14,_15,_16){ +with(_14){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_15,_16); +} +}),new objj_method(sel_getUid("mouseDragged:"),function(_17,_18,_19){ +with(_17){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_18,_19); +} +}),new objj_method(sel_getUid("mouseUp:"),function(_1a,_1b,_1c){ +with(_1a){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_1b,_1c); +} +}),new objj_method(sel_getUid("mouseMoved:"),function(_1d,_1e,_1f){ +with(_1d){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_1e,_1f); +} +}),new objj_method(sel_getUid("mouseEntered:"),function(_20,_21,_22){ +with(_20){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_21,_22); +} +}),new objj_method(sel_getUid("mouseExited:"),function(_23,_24,_25){ +with(_23){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_24,_25); +} +}),new objj_method(sel_getUid("scrollWheel:"),function(_26,_27,_28){ +with(_26){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_27,_28); +} +}),new objj_method(sel_getUid("keyDown:"),function(_29,_2a,_2b){ +with(_29){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_2a,_2b); +} +}),new objj_method(sel_getUid("keyUp:"),function(_2c,_2d,_2e){ +with(_2c){ +objj_msgSend(_nextResponder,"performSelector:withObject:",_2d,_2e); +} +}),new objj_method(sel_getUid("performKeyEquivalent:"),function(_2f,_30,_31){ +with(_2f){ +return NO; +} +}),new objj_method(sel_getUid("deleteBackward:"),function(_32,_33,_34){ +with(_32){ +} +}),new objj_method(sel_getUid("insertLineBreak:"),function(_35,_36,_37){ +with(_35){ +objj_msgSend(_35,"insertNewline:",_37); +} +}),new objj_method(sel_getUid("insertNewline:"),function(_38,_39,_3a){ +with(_38){ +objj_msgSend(_38,"insertNewline:",_3a); +} +}),new objj_method(sel_getUid("cancel:"),function(_3b,_3c,_3d){ +with(_3b){ +} +}),new objj_method(sel_getUid("insertTab:"),function(_3e,_3f,_40){ +with(_3e){ +} +}),new objj_method(sel_getUid("insertBackTab:"),function(_41,_42,_43){ +with(_41){ +} +}),new objj_method(sel_getUid("insertText:"),function(_44,_45,_46){ +with(_44){ +} +}),new objj_method(sel_getUid("doCommandBySelector:"),function(_47,_48,_49){ +with(_47){ +if(objj_msgSend(_47,"respondsToSelector:",_49)){ +objj_msgSend(_47,"performSelector:",_49); +}else{ +objj_msgSend(_nextResponder,"doCommandBySelector:",_49); +} +} +}),new objj_method(sel_getUid("tryToPerform:with:"),function(_4a,_4b,_4c,_4d){ +with(_4a){ +if(objj_msgSend(_4a,"respondsToSelector:",_4c)){ +objj_msgSend(_4a,"performSelector:withObject:",_4c,_4d); +return YES; +} +return objj_msgSend(_nextResponder,"tryToPerform:with:",_4c,_4d); +} +}),new objj_method(sel_getUid("setMenu:"),function(_4e,_4f,_50){ +with(_4e){ +_menu=_50; +} +}),new objj_method(sel_getUid("menu"),function(_51,_52){ +with(_51){ +return _menu; +} +}),new objj_method(sel_getUid("undoManager"),function(_53,_54){ +with(_53){ +return objj_msgSend(_nextResponder,"performSelector:",_54); +} +}),new objj_method(sel_getUid("noResponderFor:"),function(_55,_56,_57){ +with(_55){ +} +})]); +var _58="CPResponderNextResponderKey"; +var _1=objj_getClass("CPResponder"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPResponder\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_59,_5a,_5b){ +with(_59){ +_59=objj_msgSendSuper({receiver:_59,super_class:objj_getClass("CPObject")},"init"); +if(_59){ +_nextResponder=objj_msgSend(_5b,"decodeObjectForKey:",_58); +} +return _59; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_5c,_5d,_5e){ +with(_5c){ +if(_nextResponder!==nil){ +objj_msgSend(_5e,"encodeConditionalObject:forKey:",_nextResponder,_58); +} +} +})]); +p;12;CPScroller.ji;11;CPControl.jc;15280; +CPScrollerNoPart=0; +CPScrollerDecrementPage=1; +CPScrollerKnob=2; +CPScrollerIncrementPage=3; +CPScrollerDecrementLine=4; +CPScrollerIncrementLine=5; +CPScrollerKnobSlot=6; +CPScrollerIncrementArrow=0; +CPScrollerDecrementArrow=1; +CPNoScrollerParts=0; +CPOnlyScrollerArrows=1; +CPAllScrollerParts=2; +var _1=[CPScrollerKnobSlot,CPScrollerDecrementLine,CPScrollerIncrementLine,CPScrollerKnob],_2={},_3={}; +_2[CPScrollerDecrementLine]="decrement-line"; +_2[CPScrollerIncrementLine]="increment-line"; +_2[CPScrollerKnobSlot]="knob-slot"; +_2[CPScrollerKnob]="knob"; +var _4=objj_allocateClassPair(CPControl,"CPScroller"),_5=_4.isa; +class_addIvars(_4,[new objj_ivar("_controlSize"),new objj_ivar("_usableParts"),new objj_ivar("_partRects"),new objj_ivar("_isVertical"),new objj_ivar("_knobProportion"),new objj_ivar("_hitPart"),new objj_ivar("_trackingPart"),new objj_ivar("_trackingFloatValue"),new objj_ivar("_trackingStartPoint")]); +objj_registerClassPair(_4); +objj_addClassForBundle(_4,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_4,[new objj_method(sel_getUid("isVertical"),function(_6,_7){ +with(_6){ +return _isVertical; +} +}),new objj_method(sel_getUid("initWithFrame:"),function(_8,_9,_a){ +with(_8){ +_8=objj_msgSendSuper({receiver:_8,super_class:objj_getClass("CPControl")},"initWithFrame:",_a); +if(_8){ +_controlSize=CPRegularControlSize; +_partRects=[]; +objj_msgSend(_8,"setFloatValue:knobProportion:",0,1); +_hitPart=CPScrollerNoPart; +objj_msgSend(_8,"_recalculateIsVertical"); +} +return _8; +} +}),new objj_method(sel_getUid("setControlSize:"),function(_b,_c,_d){ +with(_b){ +if(_controlSize==_d){ +return; +} +_controlSize=_d; +objj_msgSend(_b,"setNeedsLayout"); +objj_msgSend(_b,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("controlSize"),function(_e,_f){ +with(_e){ +return _controlSize; +} +}),new objj_method(sel_getUid("setFloatValue:"),function(_10,_11,_12){ +with(_10){ +objj_msgSendSuper({receiver:_10,super_class:objj_getClass("CPControl")},"setFloatValue:",MIN(1,MAX(0,_12))); +objj_msgSend(_10,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("setFloatValue:knobProportion:"),function(_13,_14,_15,_16){ +with(_13){ +_knobProportion=MIN(1,MAX(0.0001,_16)); +objj_msgSend(_13,"setFloatValue:",_15); +} +}),new objj_method(sel_getUid("knobProportion"),function(_17,_18){ +with(_17){ +return _knobProportion; +} +}),new objj_method(sel_getUid("currentValueForThemeAttribute:"),function(_19,_1a,_1b){ +with(_19){ +var _1c=_themeState; +if(_2[_hitPart]+"-color"!==_1b){ +_1c&=~CPThemeStateHighlighted; +} +return objj_msgSend(_19,"valueForThemeAttribute:inState:",_1b,_1c); +} +}),new objj_method(sel_getUid("rectForPart:"),function(_1d,_1e,_1f){ +with(_1d){ +if(_1f==CPScrollerNoPart){ +return {origin:{x:0,y:0},size:{width:0,height:0}}; +} +return _partRects[_1f]; +} +}),new objj_method(sel_getUid("testPart:"),function(_20,_21,_22){ +with(_20){ +_22=objj_msgSend(_20,"convertPoint:fromView:",_22,nil); +if(CGRectContainsPoint(objj_msgSend(_20,"rectForPart:",CPScrollerKnob),_22)){ +return CPScrollerKnob; +} +if(CGRectContainsPoint(objj_msgSend(_20,"rectForPart:",CPScrollerDecrementPage),_22)){ +return CPScrollerDecrementPage; +} +if(CGRectContainsPoint(objj_msgSend(_20,"rectForPart:",CPScrollerIncrementPage),_22)){ +return CPScrollerIncrementPage; +} +if(CGRectContainsPoint(objj_msgSend(_20,"rectForPart:",CPScrollerDecrementLine),_22)){ +return CPScrollerDecrementLine; +} +if(CGRectContainsPoint(objj_msgSend(_20,"rectForPart:",CPScrollerIncrementLine),_22)){ +return CPScrollerIncrementLine; +} +if(CGRectContainsPoint(objj_msgSend(_20,"rectForPart:",CPScrollerKnobSlot),_22)){ +return CPScrollerKnobSlot; +} +return CPScrollerNoPart; +} +}),new objj_method(sel_getUid("checkSpaceForParts"),function(_23,_24){ +with(_23){ +var _25=objj_msgSend(_23,"bounds"); +if(_knobProportion===1){ +_usableParts=CPNoScrollerParts; +_partRects[CPScrollerDecrementPage]={origin:{x:0,y:0},size:{width:0,height:0}}; +_partRects[CPScrollerKnob]={origin:{x:0,y:0},size:{width:0,height:0}}; +_partRects[CPScrollerIncrementPage]={origin:{x:0,y:0},size:{width:0,height:0}}; +_partRects[CPScrollerDecrementLine]={origin:{x:0,y:0},size:{width:0,height:0}}; +_partRects[CPScrollerIncrementLine]={origin:{x:0,y:0},size:{width:0,height:0}}; +_partRects[CPScrollerKnobSlot]={origin:{x:_25.origin.x,y:_25.origin.y},size:{width:_25.size.width,height:_25.size.height}}; +return; +} +_usableParts=CPAllScrollerParts; +var _26=objj_msgSend(_23,"currentValueForThemeAttribute:","knob-inset"),_27=objj_msgSend(_23,"currentValueForThemeAttribute:","track-inset"),_28=(_25.size.width),_29=(_25.size.height); +if(objj_msgSend(_23,"isVertical")){ +var _2a=objj_msgSend(_23,"currentValueForThemeAttribute:","decrement-line-size"),_2b=objj_msgSend(_23,"currentValueForThemeAttribute:","increment-line-size"),_2c=_2a.height+_27.top,_2d=_2b.height+_27.bottom,_2e=_29-_2c-_2d,_2f=objj_msgSend(_23,"currentValueForThemeAttribute:","minimum-knob-length"),_30=_28-_26.left-_26.right,_31=MAX(_2f,(_2e*_knobProportion)),_32=_2c+(_2e-_31)*objj_msgSend(_23,"floatValue"); +_partRects[CPScrollerDecrementPage]={origin:{x:0,y:_2c},size:{width:_28,height:_32-_2c}}; +_partRects[CPScrollerKnob]={origin:{x:_26.left,y:_32},size:{width:_30,height:_31}}; +_partRects[CPScrollerIncrementPage]={origin:{x:0,y:_32+_31},size:{width:_28,height:_29-(_32+_31)-_2d}}; +_partRects[CPScrollerKnobSlot]={origin:{x:_27.left,y:_2c},size:{width:_28-_27.left-_27.right,height:_2e}}; +_partRects[CPScrollerDecrementLine]={origin:{x:0,y:0},size:{width:_2a.width,height:_2a.height}}; +_partRects[CPScrollerIncrementLine]={origin:{x:0,y:_29-_2b.height},size:{width:_2b.width,height:_2b.height}}; +}else{ +var _2a=objj_msgSend(_23,"currentValueForThemeAttribute:","decrement-line-size"),_2b=objj_msgSend(_23,"currentValueForThemeAttribute:","increment-line-size"),_33=_2a.width+_27.left,_34=_2b.width+_27.right; +slotWidth=_28-_33-_34,_2f=objj_msgSend(_23,"currentValueForThemeAttribute:","minimum-knob-length"),_30=MAX(_2f,(slotWidth*_knobProportion)),_31=_29-_26.top-_26.bottom,_32=_33+(slotWidth-_30)*objj_msgSend(_23,"floatValue"); +_partRects[CPScrollerDecrementPage]={origin:{x:_33,y:0},size:{width:_32-_33,height:_29}}; +_partRects[CPScrollerKnob]={origin:{x:_32,y:_26.top},size:{width:_30,height:_31}}; +_partRects[CPScrollerIncrementPage]={origin:{x:_32+_30,y:0},size:{width:_28-(_32+_30)-_34,height:_29}}; +_partRects[CPScrollerKnobSlot]={origin:{x:_33,y:_27.top},size:{width:slotWidth,height:_29-_27.top-_27.bottom}}; +_partRects[CPScrollerDecrementLine]={origin:{x:0,y:0},size:{width:_2a.width,height:_2a.height}}; +_partRects[CPScrollerIncrementLine]={origin:{x:_28-_2b.width,y:0},size:{width:_2b.width,height:_2b.height}}; +} +} +}),new objj_method(sel_getUid("usableParts"),function(_35,_36){ +with(_35){ +return _usableParts; +} +}),new objj_method(sel_getUid("drawArrow:highlight:"),function(_37,_38,_39,_3a){ +with(_37){ +} +}),new objj_method(sel_getUid("drawKnob"),function(_3b,_3c){ +with(_3b){ +} +}),new objj_method(sel_getUid("drawKnobSlot"),function(_3d,_3e){ +with(_3d){ +} +}),new objj_method(sel_getUid("createViewForPart:"),function(_3f,_40,_41){ +with(_3f){ +var _42=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +objj_msgSend(_42,"setHitTests:",NO); +return _42; +} +}),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_43,_44,_45){ +with(_43){ +return _partRects[_45]; +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_46,_47,_48){ +with(_46){ +var _49=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +objj_msgSend(_49,"setHitTests:",NO); +return _49; +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_4a,_4b){ +with(_4a){ +objj_msgSend(_4a,"checkSpaceForParts"); +var _4c=0,_4d=_1.length; +for(;_4c<_4d;++_4c){ +var _4e=_1[_4c]; +if(_4c===0){ +view=objj_msgSend(_4a,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:",_4e,CPWindowBelow,_1[_4c+1]); +}else{ +view=objj_msgSend(_4a,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:",_4e,CPWindowAbove,_1[_4c-1]); +} +if(view){ +objj_msgSend(view,"setBackgroundColor:",objj_msgSend(_4a,"currentValueForThemeAttribute:",_2[_4e]+"-color")); +} +} +} +}),new objj_method(sel_getUid("drawParts"),function(_4f,_50){ +with(_4f){ +objj_msgSend(_4f,"drawKnobSlot"); +objj_msgSend(_4f,"drawKnob"); +objj_msgSend(_4f,"drawArrow:highlight:",CPScrollerDecrementArrow,NO); +objj_msgSend(_4f,"drawArrow:highlight:",CPScrollerIncrementArrow,NO); +} +}),new objj_method(sel_getUid("hitPart"),function(_51,_52){ +with(_51){ +return _hitPart; +} +}),new objj_method(sel_getUid("trackKnob:"),function(_53,_54,_55){ +with(_53){ +var _56=objj_msgSend(_55,"type"); +if(_56===CPLeftMouseUp){ +_hitPart=CPScrollerNoPart; +return; +} +if(_56===CPLeftMouseDown){ +_trackingFloatValue=objj_msgSend(_53,"floatValue"); +_trackingStartPoint=objj_msgSend(_53,"convertPoint:fromView:",objj_msgSend(_55,"locationInWindow"),nil); +}else{ +if(_56===CPLeftMouseDragged){ +var _57=objj_msgSend(_53,"rectForPart:",CPScrollerKnob),_58=objj_msgSend(_53,"rectForPart:",CPScrollerKnobSlot),_59=!objj_msgSend(_53,"isVertical")?((_58.size.width)-(_57.size.width)):((_58.size.height)-(_57.size.height)); +if(_59<=0){ +objj_msgSend(_53,"setFloatValue:",0); +}else{ +var _5a=objj_msgSend(_53,"convertPoint:fromView:",objj_msgSend(_55,"locationInWindow"),nil); +delta=!objj_msgSend(_53,"isVertical")?_5a.x-_trackingStartPoint.x:_5a.y-_trackingStartPoint.y; +objj_msgSend(_53,"setFloatValue:",_trackingFloatValue+delta/_59); +} +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_53,sel_getUid("trackKnob:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +objj_msgSend(_53,"sendAction:to:",objj_msgSend(_53,"action"),objj_msgSend(_53,"target")); +} +}),new objj_method(sel_getUid("trackScrollButtons:"),function(_5b,_5c,_5d){ +with(_5b){ +var _5e=objj_msgSend(_5d,"type"); +if(_5e===CPLeftMouseUp){ +objj_msgSend(_5b,"highlight:",NO); +objj_msgSend(CPEvent,"stopPeriodicEvents"); +_hitPart=CPScrollerNoPart; +return; +} +if(_5e===CPLeftMouseDown){ +_trackingPart=objj_msgSend(_5b,"hitPart"); +_trackingStartPoint=objj_msgSend(_5b,"convertPoint:fromView:",objj_msgSend(_5d,"locationInWindow"),nil); +if(objj_msgSend(_5d,"modifierFlags")&CPAlternateKeyMask){ +if(_trackingPart==CPScrollerDecrementLine){ +_hitPart=CPScrollerDecrementPage; +}else{ +if(_trackingPart==CPScrollerIncrementLine){ +_hitPart=CPScrollerIncrementPage; +}else{ +if(_trackingPart==CPScrollerDecrementPage||_trackingPart==CPScrollerIncrementPage){ +var _5f=objj_msgSend(_5b,"rectForPart:",CPScrollerKnob),_60=!objj_msgSend(_5b,"isVertical")?(_5f.size.width):(_5f.size.height),_61=objj_msgSend(_5b,"rectForPart:",CPScrollerKnobSlot),_62=(!objj_msgSend(_5b,"isVertical")?(_61.size.width):(_61.size.height))-_60; +objj_msgSend(_5b,"setFloatValue:",((!objj_msgSend(_5b,"isVertical")?_trackingStartPoint.x-(_61.origin.x):_trackingStartPoint.y-(_61.origin.y))-_60/2)/_62); +_hitPart=CPScrollerKnob; +objj_msgSend(_5b,"sendAction:to:",objj_msgSend(_5b,"action"),objj_msgSend(_5b,"target")); +return objj_msgSend(_5b,"trackKnob:",_5d); +} +} +} +} +objj_msgSend(_5b,"highlight:",YES); +objj_msgSend(_5b,"sendAction:to:",objj_msgSend(_5b,"action"),objj_msgSend(_5b,"target")); +objj_msgSend(CPEvent,"startPeriodicEventsAfterDelay:withPeriod:",0.5,0.04); +}else{ +if(_5e===CPLeftMouseDragged){ +_trackingStartPoint=objj_msgSend(_5b,"convertPoint:fromView:",objj_msgSend(_5d,"locationInWindow"),nil); +if(_trackingPart==CPScrollerDecrementPage||_trackingPart==CPScrollerIncrementPage){ +var _63=objj_msgSend(_5b,"testPart:",objj_msgSend(_5d,"locationInWindow")); +if(_63==CPScrollerDecrementPage||_63==CPScrollerIncrementPage){ +_trackingPart=_63; +_hitPart=_63; +} +} +objj_msgSend(_5b,"highlight:",CGRectContainsPoint(objj_msgSend(_5b,"rectForPart:",_trackingPart),_trackingStartPoint)); +}else{ +if(_5e==CPPeriodic&&CGRectContainsPoint(objj_msgSend(_5b,"rectForPart:",_trackingPart),_trackingStartPoint)){ +objj_msgSend(_5b,"sendAction:to:",objj_msgSend(_5b,"action"),objj_msgSend(_5b,"target")); +} +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_5b,sel_getUid("trackScrollButtons:"),CPPeriodicMask|CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +}),new objj_method(sel_getUid("_recalculateIsVertical"),function(_64,_65){ +with(_64){ +var _66=objj_msgSend(_64,"bounds"),_67=(_66.size.width),_68=(_66.size.height); +_isVertical=_67<_68?1:(_67>_68?0:-1); +if(_isVertical===1){ +objj_msgSend(_64,"setThemeState:",CPThemeStateVertical); +}else{ +if(_isVertical===0){ +objj_msgSend(_64,"unsetThemeState:",CPThemeStateVertical); +} +} +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_69,_6a,_6b){ +with(_69){ +objj_msgSendSuper({receiver:_69,super_class:objj_getClass("CPControl")},"setFrameSize:",_6b); +objj_msgSend(_69,"_recalculateIsVertical"); +objj_msgSend(_69,"checkSpaceForParts"); +objj_msgSend(_69,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("mouseDown:"),function(_6c,_6d,_6e){ +with(_6c){ +if(!objj_msgSend(_6c,"isEnabled")){ +return; +} +_hitPart=objj_msgSend(_6c,"testPart:",objj_msgSend(_6e,"locationInWindow")); +switch(_hitPart){ +case CPScrollerKnob: +return objj_msgSend(_6c,"trackKnob:",_6e); +case CPScrollerDecrementLine: +case CPScrollerIncrementLine: +case CPScrollerDecrementPage: +case CPScrollerIncrementPage: +return objj_msgSend(_6c,"trackScrollButtons:",_6e); +} +} +})]); +class_addMethods(_5,[new objj_method(sel_getUid("themeClass"),function(_6f,_70){ +with(_6f){ +return "scroller"; +} +}),new objj_method(sel_getUid("themeAttributes"),function(_71,_72){ +with(_71){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[nil,nil,nil,nil,{width:0,height:0},{width:0,height:0},{top:(0),right:(0),bottom:(0),left:(0)},{top:(0),right:(0),bottom:(0),left:(0)},{width:0,height:0}],["knob-slot-color","decrement-line-color","increment-line-color","knob-color","decrement-line-size","increment-line-size","track-inset","knob-inset","minimum-knob-length"]); +} +}),new objj_method(sel_getUid("scrollerWidth"),function(_73,_74){ +with(_73){ +return 17; +} +}),new objj_method(sel_getUid("scrollerWidthForControlSize:"),function(_75,_76,_77){ +with(_75){ +return 17; +} +})]); +var _78="CPScrollerControlSize",_79="CPScrollerKnobProportion"; +var _4=objj_getClass("CPScroller"); +if(!_4){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPScroller\"")); +} +var _5=_4.isa; +class_addMethods(_4,[new objj_method(sel_getUid("initWithCoder:"),function(_7a,_7b,_7c){ +with(_7a){ +if(_7a=objj_msgSendSuper({receiver:_7a,super_class:objj_getClass("CPControl")},"initWithCoder:",_7c)){ +_controlSize=CPRegularControlSize; +if(objj_msgSend(_7c,"containsValueForKey:",_78)){ +_controlSize=objj_msgSend(_7c,"decodeIntForKey:",_78); +} +_knobProportion=1; +if(objj_msgSend(_7c,"containsValueForKey:",_79)){ +_knobProportion=objj_msgSend(_7c,"decodeFloatForKey:",_79); +} +_partRects=[]; +_hitPart=CPScrollerNoPart; +objj_msgSend(_7a,"_recalculateIsVertical"); +} +return _7a; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_7d,_7e,_7f){ +with(_7d){ +objj_msgSendSuper({receiver:_7d,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_7f); +objj_msgSend(_7f,"encodeInt:forKey:",_controlSize,_78); +objj_msgSend(_7f,"encodeFloat:forKey:",_knobProportion,_79); +} +})]); +p;14;CPScrollView.ji;8;CPView.ji;12;CPClipView.ji;12;CPScroller.jc;14690; +var _1=objj_allocateClassPair(CPView,"CPScrollView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_contentView"),new objj_ivar("_hasVerticalScroller"),new objj_ivar("_hasHorizontalScroller"),new objj_ivar("_autohidesScrollers"),new objj_ivar("_verticalScroller"),new objj_ivar("_horizontalScroller"),new objj_ivar("_recursionCount"),new objj_ivar("_verticalLineScroll"),new objj_ivar("_verticalPageScroll"),new objj_ivar("_horizontalLineScroll"),new objj_ivar("_horizontalPageScroll")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPView")},"initWithFrame:",_5); +if(_3){ +_verticalLineScroll=10; +_verticalPageScroll=10; +_horizontalLineScroll=10; +_horizontalPageScroll=10; +_contentView=objj_msgSend(objj_msgSend(CPClipView,"alloc"),"initWithFrame:",objj_msgSend(_3,"bounds")); +objj_msgSend(_3,"addSubview:",_contentView); +objj_msgSend(_3,"setHasVerticalScroller:",YES); +objj_msgSend(_3,"setHasHorizontalScroller:",YES); +} +return _3; +} +}),new objj_method(sel_getUid("contentSize"),function(_6,_7){ +with(_6){ +return objj_msgSend(_contentView,"frame").size; +} +}),new objj_method(sel_getUid("documentView"),function(_8,_9){ +with(_8){ +return objj_msgSend(_contentView,"documentView"); +} +}),new objj_method(sel_getUid("setContentView:"),function(_a,_b,_c){ +with(_a){ +if(!_c){ +return; +} +var _d=objj_msgSend(_c,"documentView"); +if(_d){ +objj_msgSend(_d,"removeFromSuperview"); +} +objj_msgSend(_contentView,"removeFromSuperview"); +var _e=objj_msgSend(_a,"contentSize"); +_contentView=_c; +objj_msgSend(_contentView,"setFrame:",CGRectMake(0,0,_e.width,_e.height)); +objj_msgSend(_contentView,"setDocumentView:",_d); +objj_msgSend(_a,"addSubview:",_contentView); +} +}),new objj_method(sel_getUid("contentView"),function(_f,_10){ +with(_f){ +return _contentView; +} +}),new objj_method(sel_getUid("setDocumentView:"),function(_11,_12,_13){ +with(_11){ +objj_msgSend(_contentView,"setDocumentView:",_13); +objj_msgSend(_11,"reflectScrolledClipView:",_contentView); +} +}),new objj_method(sel_getUid("reflectScrolledClipView:"),function(_14,_15,_16){ +with(_14){ +if(_contentView!==_16){ +return; +} +if(_recursionCount>5){ +return; +} +++_recursionCount; +var _17=objj_msgSend(_14,"documentView"); +if(!_17){ +if(_autohidesScrollers){ +objj_msgSend(_verticalScroller,"setHidden:",YES); +objj_msgSend(_horizontalScroller,"setHidden:",YES); +}else{ +} +objj_msgSend(_contentView,"setFrame:",objj_msgSend(_14,"bounds")); +--_recursionCount; +return; +} +var _18=objj_msgSend(_17,"frame"),_19=objj_msgSend(_14,"bounds"),_1a=objj_msgSend(_contentView,"bounds").origin,_1b={width:CPRectGetWidth(_18)-CPRectGetWidth(_19),height:CPRectGetHeight(_18)-CPRectGetHeight(_19)},_1c=(!_autohidesScrollers||_1b.height>0)&&_hasVerticalScroller,_1d=(!_autohidesScrollers||_1b.width>0)&&_hasHorizontalScroller,_1e=!objj_msgSend(_verticalScroller,"isHidden"),_1f=!objj_msgSend(_horizontalScroller,"isHidden"),_20=(objj_msgSend(_verticalScroller,"frame").size.width); +horizontalScrollerHeight=(objj_msgSend(_horizontalScroller,"frame").size.height); +if(_autohidesScrollers){ +if(_1c){ +_1d=(!_autohidesScrollers||_1b.width>-_20)&&_hasHorizontalScroller; +} +if(_1d){ +_1c=(!_autohidesScrollers||_1b.height>-horizontalScrollerHeight)&&_hasVerticalScroller; +} +} +objj_msgSend(_verticalScroller,"setHidden:",!_1c); +objj_msgSend(_verticalScroller,"setEnabled:",_1b.height>0); +objj_msgSend(_horizontalScroller,"setHidden:",!_1d); +objj_msgSend(_horizontalScroller,"setEnabled:",_1b.width>0); +if(_1c){ +var _21=CPRectGetHeight(_19); +if(_1d){ +_21-=horizontalScrollerHeight; +} +_1b.width+=_20; +_19.size.width-=_20; +objj_msgSend(_verticalScroller,"setFloatValue:knobProportion:",(_1b.height<=0)?0:_1a.y/_1b.height,CPRectGetHeight(_19)/CPRectGetHeight(_18)); +objj_msgSend(_verticalScroller,"setFrame:",CPRectMake(CPRectGetMaxX(_19),0,_20,_21)); +}else{ +if(_1e){ +objj_msgSend(_verticalScroller,"setFloatValue:knobProportion:",0,1); +} +} +if(_1d){ +_1b.height+=horizontalScrollerHeight; +_19.size.height-=horizontalScrollerHeight; +objj_msgSend(_horizontalScroller,"setFloatValue:knobProportion:",(_1b.width<=0)?0:_1a.x/_1b.width,CPRectGetWidth(_19)/CPRectGetWidth(_18)); +objj_msgSend(_horizontalScroller,"setFrame:",CPRectMake(0,CPRectGetMaxY(_19),CPRectGetWidth(_19),horizontalScrollerHeight)); +}else{ +if(_1f){ +objj_msgSend(_horizontalScroller,"setFloatValue:knobProportion:",0,1); +} +} +objj_msgSend(_contentView,"setFrame:",_19); +--_recursionCount; +} +}),new objj_method(sel_getUid("setHorizontalScroller:"),function(_22,_23,_24){ +with(_22){ +if(_horizontalScroller===_24){ +return; +} +objj_msgSend(_horizontalScroller,"removeFromSuperview"); +objj_msgSend(_horizontalScroller,"setTarget:",nil); +objj_msgSend(_horizontalScroller,"setAction:",nil); +_horizontalScroller=_24; +objj_msgSend(_horizontalScroller,"setTarget:",_22); +objj_msgSend(_horizontalScroller,"setAction:",sel_getUid("_horizontalScrollerDidScroll:")); +objj_msgSend(_22,"addSubview:",_horizontalScroller); +objj_msgSend(_22,"reflectScrolledClipView:",_contentView); +} +}),new objj_method(sel_getUid("horizontalScroller"),function(_25,_26){ +with(_25){ +return _horizontalScroller; +} +}),new objj_method(sel_getUid("setHasHorizontalScroller:"),function(_27,_28,_29){ +with(_27){ +if(_hasHorizontalScroller===_29){ +return; +} +_hasHorizontalScroller=_29; +if(_hasHorizontalScroller&&!_horizontalScroller){ +objj_msgSend(_27,"setHorizontalScroller:",objj_msgSend(objj_msgSend(CPScroller,"alloc"),"initWithFrame:",CGRectMake(0,0,CPRectGetWidth(objj_msgSend(_27,"bounds")),objj_msgSend(CPScroller,"scrollerWidth")))); +}else{ +if(!_hasHorizontalScroller&&_horizontalScroller){ +objj_msgSend(_horizontalScroller,"setHidden:",YES); +objj_msgSend(_27,"reflectScrolledClipView:",_contentView); +} +} +} +}),new objj_method(sel_getUid("hasHorizontalScroller"),function(_2a,_2b){ +with(_2a){ +return _hasHorizontalScroller; +} +}),new objj_method(sel_getUid("setVerticalScroller:"),function(_2c,_2d,_2e){ +with(_2c){ +if(_verticalScroller===_2e){ +return; +} +objj_msgSend(_verticalScroller,"removeFromSuperview"); +objj_msgSend(_verticalScroller,"setTarget:",nil); +objj_msgSend(_verticalScroller,"setAction:",nil); +_verticalScroller=_2e; +objj_msgSend(_verticalScroller,"setTarget:",_2c); +objj_msgSend(_verticalScroller,"setAction:",sel_getUid("_verticalScrollerDidScroll:")); +objj_msgSend(_2c,"addSubview:",_verticalScroller); +objj_msgSend(_2c,"reflectScrolledClipView:",_contentView); +} +}),new objj_method(sel_getUid("verticalScroller"),function(_2f,_30){ +with(_2f){ +return _verticalScroller; +} +}),new objj_method(sel_getUid("setHasVerticalScroller:"),function(_31,_32,_33){ +with(_31){ +if(_hasVerticalScroller===_33){ +return; +} +_hasVerticalScroller=_33; +if(_hasVerticalScroller&&!_verticalScroller){ +objj_msgSend(_31,"setVerticalScroller:",objj_msgSend(objj_msgSend(CPScroller,"alloc"),"initWithFrame:",CPRectMake(0,0,objj_msgSend(CPScroller,"scrollerWidth"),CPRectGetHeight(objj_msgSend(_31,"bounds"))))); +}else{ +if(!_hasVerticalScroller&&_verticalScroller){ +objj_msgSend(_verticalScroller,"setHidden:",YES); +objj_msgSend(_31,"reflectScrolledClipView:",_contentView); +} +} +} +}),new objj_method(sel_getUid("hasVerticalScroller"),function(_34,_35){ +with(_34){ +return _hasVerticalScroller; +} +}),new objj_method(sel_getUid("setAutohidesScrollers:"),function(_36,_37,_38){ +with(_36){ +if(_autohidesScrollers==_38){ +return; +} +_autohidesScrollers=_38; +objj_msgSend(_36,"reflectScrolledClipView:",_contentView); +} +}),new objj_method(sel_getUid("autohidesScrollers"),function(_39,_3a){ +with(_39){ +return _autohidesScrollers; +} +}),new objj_method(sel_getUid("_verticalScrollerDidScroll:"),function(_3b,_3c,_3d){ +with(_3b){ +var _3e=objj_msgSend(_3d,"floatValue"),_3f=objj_msgSend(objj_msgSend(_contentView,"documentView"),"frame"); +contentBounds=objj_msgSend(_contentView,"bounds"); +switch(objj_msgSend(_verticalScroller,"hitPart")){ +case CPScrollerDecrementLine: +contentBounds.origin.y-=_verticalLineScroll; +break; +case CPScrollerIncrementLine: +contentBounds.origin.y+=_verticalLineScroll; +break; +case CPScrollerDecrementPage: +contentBounds.origin.y-=(contentBounds.size.height)-_verticalPageScroll; +break; +case CPScrollerIncrementPage: +contentBounds.origin.y+=(contentBounds.size.height)-_verticalPageScroll; +break; +case CPScrollerKnobSlot: +case CPScrollerKnob: +default: +contentBounds.origin.y=_3e*((_3f.size.height)-(contentBounds.size.height)); +} +objj_msgSend(_contentView,"scrollToPoint:",contentBounds.origin); +} +}),new objj_method(sel_getUid("_horizontalScrollerDidScroll:"),function(_40,_41,_42){ +with(_40){ +var _43=objj_msgSend(_42,"floatValue"),_44=objj_msgSend(objj_msgSend(_40,"documentView"),"frame"),_45=objj_msgSend(_contentView,"bounds"); +switch(objj_msgSend(_horizontalScroller,"hitPart")){ +case CPScrollerDecrementLine: +_45.origin.x-=_horizontalLineScroll; +break; +case CPScrollerIncrementLine: +_45.origin.x+=_horizontalLineScroll; +break; +case CPScrollerDecrementPage: +_45.origin.x-=(_45.size.width)-_horizontalPageScroll; +break; +case CPScrollerIncrementPage: +_45.origin.x+=(_45.size.width)-_horizontalPageScroll; +break; +case CPScrollerKnobSlot: +case CPScrollerKnob: +default: +_45.origin.x=_43*((_44.size.width)-(_45.size.width)); +} +objj_msgSend(_contentView,"scrollToPoint:",_45.origin); +} +}),new objj_method(sel_getUid("tile"),function(_46,_47){ +with(_46){ +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_48,_49,_4a){ +with(_48){ +objj_msgSend(_48,"reflectScrolledClipView:",_contentView); +} +}),new objj_method(sel_getUid("setLineScroll:"),function(_4b,_4c,_4d){ +with(_4b){ +objj_msgSend(_4b,"setHorizonalLineScroll:",_4d); +objj_msgSend(_4b,"setVerticalLineScroll:",_4d); +} +}),new objj_method(sel_getUid("lineScroll"),function(_4e,_4f){ +with(_4e){ +return objj_msgSend(_4e,"horizontalLineScroll"); +} +}),new objj_method(sel_getUid("setHorizontalLineScroll:"),function(_50,_51,_52){ +with(_50){ +_horizontalLineScroll=_52; +} +}),new objj_method(sel_getUid("horizontalLineScroll"),function(_53,_54){ +with(_53){ +return _horizontalLineScroll; +} +}),new objj_method(sel_getUid("setVerticalLineScroll:"),function(_55,_56,_57){ +with(_55){ +_verticalLineScroll=_57; +} +}),new objj_method(sel_getUid("verticalLineScroll"),function(_58,_59){ +with(_58){ +return _verticalLineScroll; +} +}),new objj_method(sel_getUid("setPageScroll:"),function(_5a,_5b,_5c){ +with(_5a){ +objj_msgSend(_5a,"setHorizontalPageScroll:",_5c); +objj_msgSend(_5a,"setVerticalPageScroll:",_5c); +} +}),new objj_method(sel_getUid("pageScroll"),function(_5d,_5e){ +with(_5d){ +return objj_msgSend(_5d,"horizontalPageScroll"); +} +}),new objj_method(sel_getUid("setHorizontalPageScroll:"),function(_5f,_60,_61){ +with(_5f){ +_horizontalPageScroll=_61; +} +}),new objj_method(sel_getUid("horizontalPageScroll"),function(_62,_63){ +with(_62){ +return _horizontalPageScroll; +} +}),new objj_method(sel_getUid("setVerticalPageScroll:"),function(_64,_65,_66){ +with(_64){ +_verticalPageScroll=_66; +} +}),new objj_method(sel_getUid("verticalPageScroll"),function(_67,_68){ +with(_67){ +return _verticalPageScroll; +} +}),new objj_method(sel_getUid("scrollWheel:"),function(_69,_6a,_6b){ +with(_69){ +var _6c=objj_msgSend(_verticalScroller,"floatValue"),_6d=objj_msgSend(objj_msgSend(_69,"documentView"),"frame"),_6e=objj_msgSend(_contentView,"bounds"); +_6e.origin.x+=objj_msgSend(_6b,"deltaX")*_horizontalLineScroll; +_6e.origin.y+=objj_msgSend(_6b,"deltaY")*_verticalLineScroll; +objj_msgSend(_contentView,"scrollToPoint:",_6e.origin); +} +}),new objj_method(sel_getUid("keyDown:"),function(_6f,_70,_71){ +with(_6f){ +var _72=objj_msgSend(_71,"keyCode"),_73=objj_msgSend(_verticalScroller,"floatValue"),_74=objj_msgSend(objj_msgSend(_6f,"documentView"),"frame"),_75=objj_msgSend(_contentView,"bounds"); +switch(_72){ +case 33: +_75.origin.y-=(_75.size.height)-_verticalPageScroll; +break; +case 34: +_75.origin.y+=(_75.size.height)-_verticalPageScroll; +break; +case 38: +_75.origin.y-=_verticalLineScroll; +break; +case 40: +_75.origin.y+=_verticalLineScroll; +break; +case 37: +_75.origin.x-=_horizontalLineScroll; +break; +case 49: +_75.origin.x+=_horizontalLineScroll; +break; +default: +return objj_msgSendSuper({receiver:_6f,super_class:objj_getClass("CPView")},"keyDown:",_71); +} +objj_msgSend(_contentView,"scrollToPoint:",_75.origin); +} +})]); +var _76="CPScrollViewContentView",_77="CPScrollViewVLineScroll",_78="CPScrollViewHLineScroll",_79="CPScrollViewVPageScroll",_7a="CPScrollViewHPageScroll",_7b="CPScrollViewHasVScroller",_7c="CPScrollViewHasHScroller",_7d="CPScrollViewVScroller",_7e="CPScrollViewHScroller",_7f="CPScrollViewAutohidesScroller"; +var _1=objj_getClass("CPScrollView"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPScrollView\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_80,_81,_82){ +with(_80){ +if(_80=objj_msgSendSuper({receiver:_80,super_class:objj_getClass("CPView")},"initWithCoder:",_82)){ +_verticalLineScroll=objj_msgSend(_82,"decodeFloatForKey:",_77); +_verticalPageScroll=objj_msgSend(_82,"decodeFloatForKey:",_79); +_horizontalLineScroll=objj_msgSend(_82,"decodeFloatForKey:",_78); +_horizontalPageScroll=objj_msgSend(_82,"decodeFloatForKey:",_7a); +_contentView=objj_msgSend(_82,"decodeObjectForKey:",_76); +_verticalScroller=objj_msgSend(_82,"decodeObjectForKey:",_7d); +_horizontalScroller=objj_msgSend(_82,"decodeObjectForKey:",_7e); +_hasVerticalScroller=objj_msgSend(_82,"decodeBoolForKey:",_7b); +_hasHorizontalScroller=objj_msgSend(_82,"decodeBoolForKey:",_7c); +_autohidesScrollers=objj_msgSend(_82,"decodeBoolForKey:",_7f); +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"performSelector:target:argument:order:modes:",sel_getUid("reflectScrolledClipView:"),_80,_contentView,0,[CPDefaultRunLoopMode]); +} +return _80; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_83,_84,_85){ +with(_83){ +objj_msgSendSuper({receiver:_83,super_class:objj_getClass("CPView")},"encodeWithCoder:",_85); +objj_msgSend(_85,"encodeObject:forKey:",_contentView,_76); +objj_msgSend(_85,"encodeObject:forKey:",_verticalScroller,_7d); +objj_msgSend(_85,"encodeObject:forKey:",_horizontalScroller,_7e); +objj_msgSend(_85,"encodeFloat:forKey:",_verticalLineScroll,_77); +objj_msgSend(_85,"encodeFloat:forKey:",_verticalPageScroll,_79); +objj_msgSend(_85,"encodeFloat:forKey:",_horizontalLineScroll,_78); +objj_msgSend(_85,"encodeFloat:forKey:",_horizontalPageScroll,_7a); +objj_msgSend(_85,"encodeBool:forKey:",_hasVerticalScroller,_7b); +objj_msgSend(_85,"encodeBool:forKey:",_hasHorizontalScroller,_7c); +objj_msgSend(_85,"encodeBool:forKey:",_autohidesScrollers,_7f); +} +})]); +p;19;CPSecureTextField.ji;13;CPTextField.jc;287; +var _1=objj_allocateClassPair(CPTextField,"CPSecureTextField"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("isSecure"),function(_3,_4){ +with(_3){ +return YES; +} +})]); +p;20;CPSegmentedControl.jI;20;Foundation/CPArray.ji;11;CPControl.jc;20227; +CPSegmentSwitchTrackingSelectOne=0; +CPSegmentSwitchTrackingSelectAny=1; +CPSegmentSwitchTrackingMomentary=2; +var _1=objj_allocateClassPair(CPControl,"CPSegmentedControl"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_segments"),new objj_ivar("_themeStates"),new objj_ivar("_selectedSegment"),new objj_ivar("_segmentStyle"),new objj_ivar("_trackingMode"),new objj_ivar("_trackingSegment"),new objj_ivar("_trackingHighlighted")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){ +with(_3){ +_segments=[]; +_themeStates=[]; +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPControl")},"initWithFrame:",_5); +if(_3){ +_selectedSegment=-1; +_trackingMode=CPSegmentSwitchTrackingSelectOne; +} +return _3; +} +}),new objj_method(sel_getUid("selectedTag"),function(_6,_7){ +with(_6){ +return _segments[_selectedSegment].tag; +} +}),new objj_method(sel_getUid("setSegmentCount:"),function(_8,_9,_a){ +with(_8){ +if(_segments.length==_a){ +return; +} +var _b=CGRectGetHeight(objj_msgSend(_8,"bounds")); +if(_segments.length<_a){ +for(var _c=_segments.length;_c<_a;++_c){ +_segments[_c]=objj_msgSend(objj_msgSend(_CPSegmentItem,"alloc"),"init"); +_themeStates[_c]=CPThemeStateNormal; +} +}else{ +if(_a<_segments.length){ +for(var _c=_a;_c<_segments.length;++_c){ +_segments[_c]=nil; +} +} +} +if(_selectedSegment<_segments.length){ +_selectedSegment=-1; +} +objj_msgSend(_8,"tileWithChangedSegment:",0); +} +}),new objj_method(sel_getUid("segmentCount"),function(_d,_e){ +with(_d){ +return _segments.length; +} +}),new objj_method(sel_getUid("setSelectedSegment:"),function(_f,_10,_11){ +with(_f){ +objj_msgSend(_f,"setSelected:forSegment:",YES,_11); +} +}),new objj_method(sel_getUid("selectedSegment"),function(_12,_13){ +with(_12){ +return _selectedSegment; +} +}),new objj_method(sel_getUid("selectSegmentWithTag:"),function(_14,_15,_16){ +with(_14){ +var _17=0; +for(;_17<_segments.length;++_17){ +if(_segments[_17].tag==_16){ +objj_msgSend(_14,"setSelectedSegment:",_17); +return YES; +} +} +return NO; +} +}),new objj_method(sel_getUid("isTracking"),function(_18,_19){ +with(_18){ +} +}),new objj_method(sel_getUid("setTrackingMode:"),function(_1a,_1b,_1c){ +with(_1a){ +if(_trackingMode==_1c){ +return; +} +_trackingMode=_1c; +if(_trackingMode==CPSegmentSwitchTrackingSelectOne){ +var _1d=0,_1e=NO; +for(;_1d<_segments.length;++_1d){ +if(_segments[_1d].selected){ +if(_1e){ +objj_msgSend(_1a,"setSelected:forSegment:",NO,_1d); +}else{ +_1e=YES; +} +} +} +}else{ +if(_trackingMode==CPSegmentSwitchTrackingMomentary){ +var _1d=0; +for(;_1d<_segments.length;++_1d){ +if(_segments[_1d].selected){ +objj_msgSend(_1a,"setSelected:forSegment:",NO,_1d); +} +} +} +} +} +}),new objj_method(sel_getUid("trackingMode"),function(_1f,_20){ +with(_1f){ +return _trackingMode; +} +}),new objj_method(sel_getUid("setWidth:forSegment:"),function(_21,_22,_23,_24){ +with(_21){ +_segments[_24].width=_23; +objj_msgSend(_21,"tileWithChangedSegment:",_24); +} +}),new objj_method(sel_getUid("widthForSegment:"),function(_25,_26,_27){ +with(_25){ +return _segments[_27].width; +} +}),new objj_method(sel_getUid("setImage:forSegment:"),function(_28,_29,_2a,_2b){ +with(_28){ +var _2c=_segments[_2b]; +_2c.image=_2a; +objj_msgSend(_28,"tileWithChangedSegment:",_2b); +} +}),new objj_method(sel_getUid("imageForSegment:"),function(_2d,_2e,_2f){ +with(_2d){ +return _segments[_2f].image; +} +}),new objj_method(sel_getUid("setLabel:forSegment:"),function(_30,_31,_32,_33){ +with(_30){ +var _34=_segments[_33]; +_segments[_33].label=_32; +objj_msgSend(_30,"tileWithChangedSegment:",_33); +} +}),new objj_method(sel_getUid("labelForSegment:"),function(_35,_36,_37){ +with(_35){ +return _segments[_37].label; +} +}),new objj_method(sel_getUid("setMenu:forSegment:"),function(_38,_39,_3a,_3b){ +with(_38){ +_segments[_3b].menu=_3a; +} +}),new objj_method(sel_getUid("menuForSegment:"),function(_3c,_3d,_3e){ +with(_3c){ +return _segments[_3e].menu; +} +}),new objj_method(sel_getUid("setSelected:forSegment:"),function(_3f,_40,_41,_42){ +with(_3f){ +var _43=_segments[_42]; +if(_43.selected==_41){ +return; +} +_43.selected=_41; +_themeStates[_42]=_41?CPThemeStateSelected:CPThemeStateNormal; +if(_41){ +var _44=_selectedSegment; +_selectedSegment=_42; +if(_trackingMode==CPSegmentSwitchTrackingSelectOne&&_44!=_42&&_44!=-1){ +_segments[_44].selected=NO; +_themeStates[_44]=CPThemeStateNormal; +objj_msgSend(_3f,"drawSegmentBezel:highlight:",_44,NO); +} +} +if(_trackingMode!=CPSegmentSwitchTrackingMomentary){ +objj_msgSend(_3f,"drawSegmentBezel:highlight:",_42,NO); +} +objj_msgSend(_3f,"setNeedsLayout"); +objj_msgSend(_3f,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("isSelectedForSegment:"),function(_45,_46,_47){ +with(_45){ +return _segments[_47].selected; +} +}),new objj_method(sel_getUid("setEnabled:forSegment:"),function(_48,_49,_4a,_4b){ +with(_48){ +_segments[_4b].enabled=_4a; +objj_msgSend(_48,"setNeedsLayout"); +objj_msgSend(_48,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("isEnabledForSegment:"),function(_4c,_4d,_4e){ +with(_4c){ +return _segments[_4e].enabled; +} +}),new objj_method(sel_getUid("setTag:forSegment:"),function(_4f,_50,_51,_52){ +with(_4f){ +_segments[_52].tag=_51; +} +}),new objj_method(sel_getUid("tagForSegment:"),function(_53,_54,_55){ +with(_53){ +return _segments[_55].tag; +} +}),new objj_method(sel_getUid("drawSegmentBezel:highlight:"),function(_56,_57,_58,_59){ +with(_56){ +if(_59){ +_themeStates[_58]|=CPThemeStateHighlighted; +}else{ +_themeStates[_58]&=~CPThemeStateHighlighted; +} +objj_msgSend(_56,"setNeedsLayout"); +objj_msgSend(_56,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("_leftOffsetForSegment:"),function(_5a,_5b,_5c){ +with(_5a){ +var _5d=objj_msgSend(_5a,"currentValueForThemeAttribute:","bezel-inset"); +if(_5c==0){ +return _5d.left; +} +var _5e=objj_msgSend(_5a,"currentValueForThemeAttribute:","divider-thickness"); +return objj_msgSend(_5a,"_leftOffsetForSegment:",_5c-1)+objj_msgSend(_5a,"widthForSegment:",_5c-1)+_5e; +} +}),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_5f,_60,_61){ +with(_5f){ +var _62=objj_msgSend(_5f,"currentValueForThemeAttribute:","default-height"),_63=objj_msgSend(_5f,"currentValueForThemeAttribute:","content-inset"),_64=objj_msgSend(_5f,"currentValueForThemeAttribute:","bezel-inset"),_65=objj_msgSend(_5f,"bounds"); +if(_61==="left-segment-bezel"){ +return CGRectMake(_64.left,_64.top,_63.left,_62); +}else{ +if(_61==="right-segment-bezel"){ +return CGRectMake(CGRectGetMaxX(_65)-_63.right-_64.right,_64.top,_63.right,_62); +}else{ +if(_61.substring(0,"segment-bezel".length)=="segment-bezel"){ +var _66=parseInt(_61.substring("segment-bezel-".length),10),_67=CGRectCreateCopy(_segments[_66].frame); +if(_66==0){ +_67.origin.x+=_63.left; +_67.size.width-=_63.left; +} +if(_66==_segments.length-1){ +_67.size.width-=_63.right; +} +return _67; +}else{ +if(_61.substring(0,"divider-bezel".length)=="divider-bezel"){ +var _66=parseInt(_61.substring("divider-bezel-".length),10),_68=objj_msgSend(_5f,"widthForSegment:",_66),_69=objj_msgSend(_5f,"_leftOffsetForSegment:",_66),_6a=objj_msgSend(_5f,"currentValueForThemeAttribute:","divider-thickness"); +return CGRectMake(_69+_68,_64.top,_6a,_62); +}else{ +if(_61.substring(0,"segment-content".length)=="segment-content"){ +var _66=parseInt(_61.substring("segment-content-".length),10); +return objj_msgSend(_5f,"contentFrameForSegment:",_66); +} +} +} +} +} +return objj_msgSendSuper({receiver:_5f,super_class:objj_getClass("CPControl")},"rectForEphemeralSubviewNamed:",_61); +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_6b,_6c,_6d){ +with(_6b){ +if(_6d.substring(0,"segment-content".length)=="segment-content"){ +return objj_msgSend(objj_msgSend(_CPImageAndTextView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +} +return objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_6e,_6f){ +with(_6e){ +var _70=objj_msgSend(_6e,"valueForThemeAttribute:inState:","left-segment-bezel-color",_themeStates[0]); +var _71=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","left-segment-bezel",CPWindowBelow,nil); +objj_msgSend(_71,"setBackgroundColor:",_70); +var _72=objj_msgSend(_6e,"valueForThemeAttribute:inState:","right-segment-bezel-color",_themeStates[_themeStates.length-1]); +var _73=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","right-segment-bezel",CPWindowBelow,nil); +objj_msgSend(_73,"setBackgroundColor:",_72); +for(var i=0,_75=_themeStates.length;i<_75;i++){ +var _76=_themeStates[i]; +_76|=_themeState&CPThemeStateDisabled; +var _77=objj_msgSend(_6e,"valueForThemeAttribute:inState:","center-segment-bezel-color",_76); +var _78=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","segment-bezel-"+i,CPWindowBelow,nil); +objj_msgSend(_78,"setBackgroundColor:",_77); +var _79=_segments[i]; +var _7a=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","segment-content-"+i,CPWindowAbove,"segment-bezel-"+i); +objj_msgSend(_7a,"setText:",_79.label); +objj_msgSend(_7a,"setImage:",_79.image); +objj_msgSend(_7a,"setFont:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","font",_76)); +objj_msgSend(_7a,"setTextColor:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","text-color",_76)); +objj_msgSend(_7a,"setAlignment:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","alignment",_76)); +objj_msgSend(_7a,"setVerticalAlignment:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","vertical-alignment",_76)); +objj_msgSend(_7a,"setLineBreakMode:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","line-break-mode",_76)); +objj_msgSend(_7a,"setTextShadowColor:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","text-shadow-color",_76)); +objj_msgSend(_7a,"setTextShadowOffset:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","text-shadow-offset",_76)); +objj_msgSend(_7a,"setImageScaling:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","image-scaling",_76)); +if(_79.image&&_79.label){ +objj_msgSend(_7a,"setImagePosition:",objj_msgSend(_6e,"valueForThemeAttribute:inState:","image-position",_76)); +}else{ +if(_79.image){ +objj_msgSend(_7a,"setImagePosition:",CPImageOnly); +} +} +if(i==_75-1){ +continue; +} +var _7b=_themeStates[i]|_themeStates[i+1]; +_7b=(_7b&CPThemeStateSelected&~CPThemeStateHighlighted)?CPThemeStateSelected:CPThemeStateNormal; +_7b|=_themeState&CPThemeStateDisabled; +var _7c=objj_msgSend(_6e,"valueForThemeAttribute:inState:","divider-bezel-color",_7b); +var _7d=objj_msgSend(_6e,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","divider-bezel-"+i,CPWindowBelow,nil); +objj_msgSend(_7d,"setBackgroundColor:",_7c); +} +} +}),new objj_method(sel_getUid("drawSegment:highlight:"),function(_7e,_7f,_80,_81){ +with(_7e){ +} +}),new objj_method(sel_getUid("tileWithChangedSegment:"),function(_82,_83,_84){ +with(_82){ +if(_84>=_segments.length){ +return; +} +var _85=_segments[_84],_86=_85.width,_87=_themeStates[_84]|(_themeState&CPThemeStateDisabled),_88=objj_msgSend(_82,"valueForThemeAttribute:inState:","content-inset",_87),_89=objj_msgSend(_82,"valueForThemeAttribute:inState:","font",_87); +if(!_86){ +if(_85.image&&_85.label){ +_86=objj_msgSend(_85.label,"sizeWithFont:",_89).width+objj_msgSend(_85.image,"size").width+_88.left+_88.right; +}else{ +if(_85.image){ +_86=objj_msgSend(_85.image,"size").width+_88.left+_88.right; +}else{ +if(_85.label){ +_86=objj_msgSend(_85.label,"sizeWithFont:",_89).width+_88.left+_88.right; +}else{ +_86=0; +} +} +} +} +var _8a=_86-CGRectGetWidth(_85.frame); +if(!_8a){ +return; +} +var _8b=objj_msgSend(_82,"frame"); +objj_msgSend(_82,"setFrameSize:",CGSizeMake(CGRectGetWidth(_8b)+_8a,CGRectGetHeight(_8b))); +_85.width=_86; +_85.frame=objj_msgSend(_82,"frameForSegment:",_84); +var _8c=_84+1; +for(;_8c<_segments.length;++_8c){ +_segments[_8c].frame.origin.x+=_8a; +objj_msgSend(_82,"drawSegmentBezel:highlight:",_8c,NO); +objj_msgSend(_82,"drawSegment:highlight:",_8c,NO); +} +objj_msgSend(_82,"drawSegmentBezel:highlight:",_84,NO); +objj_msgSend(_82,"drawSegment:highlight:",_84,NO); +objj_msgSend(_82,"setNeedsLayout"); +objj_msgSend(_82,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("frameForSegment:"),function(_8d,_8e,_8f){ +with(_8d){ +return objj_msgSend(_8d,"bezelFrameForSegment:",_8f); +} +}),new objj_method(sel_getUid("bezelFrameForSegment:"),function(_90,_91,_92){ +with(_90){ +var _93=objj_msgSend(_90,"currentValueForThemeAttribute:","default-height"),_94=objj_msgSend(_90,"currentValueForThemeAttribute:","bezel-inset"),_95=objj_msgSend(_90,"widthForSegment:",_92),_96=objj_msgSend(_90,"_leftOffsetForSegment:",_92); +return CGRectMake(_96,_94.top,_95,_93); +} +}),new objj_method(sel_getUid("contentFrameForSegment:"),function(_97,_98,_99){ +with(_97){ +var _9a=objj_msgSend(_97,"currentValueForThemeAttribute:","default-height"),_9b=objj_msgSend(_97,"currentValueForThemeAttribute:","content-inset"),_9c=objj_msgSend(_97,"widthForSegment:",_99),_9d=objj_msgSend(_97,"_leftOffsetForSegment:",_99); +return CGRectMake(_9d+_9b.left,_9b.top,_9c-_9b.left-_9b.right,_9a-_9b.top-_9b.bottom); +} +}),new objj_method(sel_getUid("testSegment:"),function(_9e,_9f,_a0){ +with(_9e){ +var _a1=objj_msgSend(_9e,"convertPoint:fromView:",_a0,nil),_a2=_segments.length; +while(_a2--){ +if(CGRectContainsPoint(_segments[_a2].frame,_a0)){ +return _a2; +} +} +return -1; +} +}),new objj_method(sel_getUid("mouseDown:"),function(_a3,_a4,_a5){ +with(_a3){ +if(!objj_msgSend(_a3,"isEnabled")){ +return; +} +objj_msgSend(_a3,"trackSegment:",_a5); +} +}),new objj_method(sel_getUid("mouseUp:"),function(_a6,_a7,_a8){ +with(_a6){ +} +}),new objj_method(sel_getUid("trackSegment:"),function(_a9,_aa,_ab){ +with(_a9){ +var _ac=objj_msgSend(_ab,"type"),_ad=objj_msgSend(_a9,"convertPoint:fromView:",objj_msgSend(_ab,"locationInWindow"),nil); +if(_ac==CPLeftMouseUp){ +if(_trackingSegment==-1){ +return; +} +if(CGRectContainsPoint(_segments[_trackingSegment].frame,_ad)){ +if(_trackingMode==CPSegmentSwitchTrackingSelectAny){ +objj_msgSend(_a9,"setSelected:forSegment:",!objj_msgSend(_a9,"isSelectedForSegment:",_trackingSegment),_trackingSegment); +_selectedSegment=_trackingSegment; +}else{ +objj_msgSend(_a9,"setSelected:forSegment:",YES,_trackingSegment); +} +objj_msgSend(_a9,"sendAction:to:",objj_msgSend(_a9,"action"),objj_msgSend(_a9,"target")); +if(_trackingMode==CPSegmentSwitchTrackingMomentary){ +objj_msgSend(_a9,"setSelected:forSegment:",NO,_trackingSegment); +_selectedSegment=-1; +} +} +objj_msgSend(_a9,"drawSegmentBezel:highlight:",_trackingSegment,NO); +_trackingSegment=-1; +return; +} +if(_ac==CPLeftMouseDown){ +_trackingHighlighted=YES; +_trackingSegment=objj_msgSend(_a9,"testSegment:",_ad); +objj_msgSend(_a9,"drawSegmentBezel:highlight:",_trackingSegment,YES); +}else{ +if(_ac==CPLeftMouseDragged){ +if(_trackingSegment==-1){ +return; +} +var _ae=CGRectContainsPoint(_segments[_trackingSegment].frame,_ad); +if(_ae!=_trackingHighlighted){ +_trackingHighlighted=_ae; +objj_msgSend(_a9,"drawSegmentBezel:highlight:",_trackingSegment,_trackingHighlighted); +} +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_a9,sel_getUid("trackSegment:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +}),new objj_method(sel_getUid("setFont:"),function(_af,_b0,_b1){ +with(_af){ +objj_msgSendSuper({receiver:_af,super_class:objj_getClass("CPControl")},"setFont:",_b1); +objj_msgSend(_af,"tileWithChangedSegment:",0); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("themeClass"),function(_b2,_b3){ +with(_b2){ +return "segmented-control"; +} +}),new objj_method(sel_getUid("themeAttributes"),function(_b4,_b5){ +with(_b4){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[CPCenterTextAlignment,CPCenterVerticalTextAlignment,CPImageLeft,CPScaleNone,{top:(0),right:(0),bottom:(0),left:(0)},{top:(0),right:(0),bottom:(0),left:(0)},nil,nil,nil,nil,1,24],["alignment","vertical-alignment","image-position","image-scaling","bezel-inset","content-inset","left-segment-bezel-color","right-segment-bezel-color","center-segment-bezel-color","divider-bezel-color","divider-thickness","default-height"]); +} +})]); +var _b6="CPSegmentedControlSegmentsKey",_b7="CPSegmentedControlSelectedKey",_b8="CPSegmentedControlSegmentStyleKey",_b9="CPSegmentedControlTrackingModeKey"; +var _1=objj_getClass("CPSegmentedControl"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPSegmentedControl\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_ba,_bb,_bc){ +with(_ba){ +_ba=objj_msgSendSuper({receiver:_ba,super_class:objj_getClass("CPControl")},"initWithCoder:",_bc); +if(_ba){ +var _bd=objj_msgSend(_ba,"frame"),_be=_bd.size.width; +_bd.size.width=0; +objj_msgSend(_ba,"setFrame:",_bd); +_segments=objj_msgSend(_bc,"decodeObjectForKey:",_b6); +_segmentStyle=objj_msgSend(_bc,"decodeIntForKey:",_b8); +_themeStates=[]; +if(objj_msgSend(_bc,"containsValueForKey:",_b7)){ +_selectedSegment=objj_msgSend(_bc,"decodeIntForKey:",_b7); +}else{ +_selectedSegment=-1; +} +if(objj_msgSend(_bc,"containsValueForKey:",_b9)){ +_trackingMode=objj_msgSend(_bc,"decodeIntForKey:",_b9); +}else{ +_trackingMode=CPSegmentSwitchTrackingSelectOne; +} +for(var i=0;i<_segments.length;i++){ +_themeStates[i]=_segments[i].selected?CPThemeStateSelected:CPThemeStateNormal; +objj_msgSend(_ba,"tileWithChangedSegment:",i); +} +var _c0=MAX(_be-objj_msgSend(_ba,"frame").size.width,0),_c1=FLOOR(_c0/_segments.length); +for(var i=0;i<_segments.length;i++){ +objj_msgSend(_ba,"setWidth:forSegment:",_segments[i].width+_c1,i); +} +objj_msgSend(_ba,"tileWithChangedSegment:",0); +} +return _ba; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_c2,_c3,_c4){ +with(_c2){ +objj_msgSendSuper({receiver:_c2,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_c4); +objj_msgSend(_c4,"encodeObject:forKey:",_segments,_b6); +objj_msgSend(_c4,"encodeInt:forKey:",_selectedSegment,_b7); +objj_msgSend(_c4,"encodeInt:forKey:",_segmentStyle,_b8); +objj_msgSend(_c4,"encodeInt:forKey:",_trackingMode,_b9); +} +})]); +var _1=objj_allocateClassPair(CPObject,"_CPSegmentItem"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("image"),new objj_ivar("label"),new objj_ivar("menu"),new objj_ivar("selected"),new objj_ivar("enabled"),new objj_ivar("tag"),new objj_ivar("width"),new objj_ivar("frame")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("init"),function(_c5,_c6){ +with(_c5){ +if(_c5=objj_msgSendSuper({receiver:_c5,super_class:objj_getClass("CPObject")},"init")){ +image=nil; +label=""; +menu=nil; +selected=NO; +enabled=NO; +tag=0; +width=0; +frame=CGRectMakeZero(); +} +return _c5; +} +})]); +var _c7="CPSegmentItemImageKey",_c8="CPSegmentItemLabelKey",_c9="CPSegmentItemMenuKey",_ca="CPSegmentItemSelectedKey",_cb="CPSegmentItemEnabledKey",_cc="CPSegmentItemTagKey",_cd="CPSegmentItemWidthKey"; +var _1=objj_getClass("_CPSegmentItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"_CPSegmentItem\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_ce,_cf,_d0){ +with(_ce){ +_ce=objj_msgSendSuper({receiver:_ce,super_class:objj_getClass("CPObject")},"init"); +if(_ce){ +image=objj_msgSend(_d0,"decodeObjectForKey:",_c7); +label=objj_msgSend(_d0,"decodeObjectForKey:",_c8); +menu=objj_msgSend(_d0,"decodeObjectForKey:",_c9); +selected=objj_msgSend(_d0,"decodeBoolForKey:",_ca); +enabled=objj_msgSend(_d0,"decodeBoolForKey:",_cb); +tag=objj_msgSend(_d0,"decodeIntForKey:",_cc); +width=objj_msgSend(_d0,"decodeFloatForKey:",_cd); +frame=CGRectMakeZero(); +} +return _ce; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_d1,_d2,_d3){ +with(_d1){ +objj_msgSend(_d3,"encodeObject:forKey:",image,_c7); +objj_msgSend(_d3,"encodeObject:forKey:",label,_c8); +objj_msgSend(_d3,"encodeObject:forKey:",menu,_c9); +objj_msgSend(_d3,"encodeBool:forKey:",selected,_ca); +objj_msgSend(_d3,"encodeBool:forKey:",enabled,_cb); +objj_msgSend(_d3,"encodeInt:forKey:",tag,_cc); +objj_msgSend(_d3,"encodeFloat:forKey:",width,_cd); +} +})]); +p;10;CPShadow.jI;21;Foundation/CPObject.jc;1307; +var _1=objj_allocateClassPair(CPObject,"CPShadow"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_offset"),new objj_ivar("_blurRadius"),new objj_ivar("_color"),new objj_ivar("_cssString")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("_initWithOffset:blurRadius:color:"),function(_3,_4,_5,_6,_7){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_offset=_5; +_blurRadius=_6; +_color=_7; +_cssString=objj_msgSend(_color,"cssString")+" "+Math.round(_5.width)+"px "+Math.round(_5.height)+"px "+Math.round(_blurRadius)+"px"; +} +return _3; +} +}),new objj_method(sel_getUid("shadowOffset"),function(_8,_9){ +with(_8){ +return _offset; +} +}),new objj_method(sel_getUid("shadowBlurRadius"),function(_a,_b){ +with(_a){ +return _blurRadius; +} +}),new objj_method(sel_getUid("shadowColor"),function(_c,_d){ +with(_c){ +return _color; +} +}),new objj_method(sel_getUid("cssString"),function(_e,_f){ +with(_e){ +return _cssString; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("shadowWithOffset:blurRadius:color:"),function(_10,_11,_12,_13,_14){ +with(_10){ +return objj_msgSend(objj_msgSend(CPShadow,"alloc"),"_initWithOffset:blurRadius:color:",_12,_13,_14); +} +})]); +p;14;CPShadowView.jI;21;Foundation/CPBundle.ji;12;CGGeometry.ji;9;CPImage.ji;13;CPImageView.ji;8;CPView.jc;5564; +CPLightShadow=0; +CPHeavyShadow=1; +var _1=nil,_2=nil; +var _3=3,_4=3,_5=3,_6=5,_7=7,_8=7,_9=5,_a=5; +var _b=objj_allocateClassPair(CPView,"CPShadowView"),_c=_b.isa; +class_addIvars(_b,[new objj_ivar("_weight")]); +objj_registerClassPair(_b); +objj_addClassForBundle(_b,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_b,[new objj_method(sel_getUid("initWithFrame:"),function(_d,_e,_f){ +with(_d){ +_d=objj_msgSendSuper({receiver:_d,super_class:objj_getClass("CPView")},"initWithFrame:",_f); +if(_d){ +_weight=CPLightShadow; +objj_msgSend(_d,"setBackgroundColor:",_1); +objj_msgSend(_d,"setHitTests:",NO); +} +return _d; +} +}),new objj_method(sel_getUid("setWeight:"),function(_10,_11,_12){ +with(_10){ +if(_weight==_12){ +return; +} +_weight=_12; +if(_weight==CPLightShadow){ +objj_msgSend(_10,"setBackgroundColor:",_1); +}else{ +objj_msgSend(_10,"setBackgroundColor:",_2); +} +} +}),new objj_method(sel_getUid("leftInset"),function(_13,_14){ +with(_13){ +return _weight==CPLightShadow?_3:_7; +} +}),new objj_method(sel_getUid("rightInset"),function(_15,_16){ +with(_15){ +return _weight==CPLightShadow?_4:_8; +} +}),new objj_method(sel_getUid("topInset"),function(_17,_18){ +with(_17){ +return _weight==CPLightShadow?_5:_9; +} +}),new objj_method(sel_getUid("bottomInset"),function(_19,_1a){ +with(_19){ +return _weight==CPLightShadow?_6:_a; +} +}),new objj_method(sel_getUid("horizontalInset"),function(_1b,_1c){ +with(_1b){ +if(_weight==CPLightShadow){ +return _3+_4; +} +return _7+_8; +} +}),new objj_method(sel_getUid("verticalInset"),function(_1d,_1e){ +with(_1d){ +if(_weight==CPLightShadow){ +return _5+_6; +} +return _9+_a; +} +}),new objj_method(sel_getUid("frameForContentFrame:"),function(_1f,_20,_21){ +with(_1f){ +return objj_msgSend(objj_msgSend(_1f,"class"),"frameForContentFrame:withWeight:",_21,_weight); +} +}),new objj_method(sel_getUid("setFrameForContentFrame:"),function(_22,_23,_24){ +with(_22){ +objj_msgSend(_22,"setFrame:",objj_msgSend(_22,"frameForContentFrame:",_24)); +} +})]); +class_addMethods(_c,[new objj_method(sel_getUid("initialize"),function(_25,_26){ +with(_25){ +if(_25!=objj_msgSend(CPShadowView,"class")){ +return; +} +var _27=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(_25,"class")); +_1=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightTopLeft.png"),CGSizeMake(9,9)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightTop.png"),CGSizeMake(1,9)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightTopRight.png"),CGSizeMake(9,9)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightLeft.png"),CGSizeMake(9,1)),nil,objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightRight.png"),CGSizeMake(9,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightBottomLeft.png"),CGSizeMake(9,9)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightBottom.png"),CGSizeMake(1,9)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewLightBottomRight.png"),CGSizeMake(9,9))])); +_2=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyTopLeft.png"),CGSizeMake(17,17)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyTop.png"),CGSizeMake(1,17)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyTopRight.png"),CGSizeMake(17,17)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyLeft.png"),CGSizeMake(17,1)),nil,objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyRight.png"),CGSizeMake(17,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyBottomLeft.png"),CGSizeMake(17,17)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyBottom.png"),CGSizeMake(1,17)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_27,"pathForResource:","CPShadowView/CPShadowViewHeavyBottomRight.png"),CGSizeMake(17,17))])); +} +}),new objj_method(sel_getUid("frameForContentFrame:withWeight:"),function(_28,_29,_2a,_2b){ +with(_28){ +if(_2b==CPLightShadow){ +return CGRectMake((_2a.origin.x)-_3,(_2a.origin.y)-_5,(_2a.size.width)+_3+_4,(_2a.size.height)+_5+_6); +}else{ +return CGRectMake((_2a.origin.x)-_7,(_2a.origin.y)-_9,(_2a.size.width)+_7+_8,(_2a.size.height)+_9+_a); +} +} +})]); +p;10;CPSlider.ji;11;CPControl.jc;11216; +CPLinearSlider=0; +CPCircularSlider=1; +var _1=objj_allocateClassPair(CPControl,"CPSlider"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_minValue"),new objj_ivar("_maxValue"),new objj_ivar("_altIncrementValue"),new objj_ivar("_isVertical")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPControl")},"initWithFrame:",_5); +if(_3){ +_minValue=0; +_maxValue=100; +objj_msgSend(_3,"setObjectValue:",50); +objj_msgSend(_3,"setContinuous:",YES); +objj_msgSend(_3,"_recalculateIsVertical"); +} +return _3; +} +}),new objj_method(sel_getUid("setMinValue:"),function(_6,_7,_8){ +with(_6){ +if(_minValue===_8){ +return; +} +_minValue=_8; +var _9=objj_msgSend(_6,"doubleValue"); +if(_9<_minValue){ +objj_msgSend(_6,"setDoubleValue:",_minValue); +} +} +}),new objj_method(sel_getUid("minValue"),function(_a,_b){ +with(_a){ +return _minValue; +} +}),new objj_method(sel_getUid("setMaxValue:"),function(_c,_d,_e){ +with(_c){ +if(_maxValue===_e){ +return; +} +_maxValue=_e; +var _f=objj_msgSend(_c,"doubleValue"); +if(_f>_maxValue){ +objj_msgSend(_c,"setDoubleValue:",_maxValue); +} +} +}),new objj_method(sel_getUid("maxValue"),function(_10,_11){ +with(_10){ +return _maxValue; +} +}),new objj_method(sel_getUid("setObjectValue:"),function(_12,_13,_14){ +with(_12){ +objj_msgSendSuper({receiver:_12,super_class:objj_getClass("CPControl")},"setObjectValue:",MIN(MAX(_14,_minValue),_maxValue)); +objj_msgSend(_12,"setNeedsLayout"); +objj_msgSend(_12,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("setSliderType:"),function(_15,_16,_17){ +with(_15){ +if(_17===CPCircularSlider){ +objj_msgSend(_15,"setThemeState:",CPThemeStateCircular); +}else{ +objj_msgSend(_15,"unsetThemeState:",CPThemeStateCircular); +} +} +}),new objj_method(sel_getUid("sliderType"),function(_18,_19){ +with(_18){ +return objj_msgSend(_18,"hasThemeState:",CPThemeStateCircular)?CPCircularSlider:CPLinearSlider; +} +}),new objj_method(sel_getUid("trackRectForBounds:"),function(_1a,_1b,_1c){ +with(_1a){ +if(objj_msgSend(_1a,"hasThemeState:",CPThemeStateCircular)){ +var _1d=CGRectCreateCopy(_1c); +_1c.size.width=MIN(_1c.size.width,_1c.size.height); +_1c.size.height=_1c.size.width; +if(_1c.size.width<_1d.size.width){ +_1c.origin.x+=(_1d.size.width-_1c.size.width)/2; +}else{ +_1c.origin.y+=(_1d.size.height-_1c.size.height)/2; +} +}else{ +var _1e=objj_msgSend(_1a,"currentValueForThemeAttribute:","track-width"); +if(_1e<=0){ +return {origin:{x:0,y:0},size:{width:0,height:0}}; +} +if(objj_msgSend(_1a,"isVertical")){ +_1c.origin.x=((_1c.size.width)-_1e)/2; +_1c.size.width=_1e; +}else{ +_1c.origin.y=((_1c.size.height)-_1e)/2; +_1c.size.height=_1e; +} +} +return _1c; +} +}),new objj_method(sel_getUid("knobRectForBounds:"),function(_1f,_20,_21){ +with(_1f){ +var _22=objj_msgSend(_1f,"currentValueForThemeAttribute:","knob-size"); +if(_22.width<=0||_22.height<=0){ +return {origin:{x:0,y:0},size:{width:0,height:0}}; +} +var _23={origin:{x:0,y:0},size:{width:_22.width,height:_22.height}},_24=objj_msgSend(_1f,"trackRectForBounds:",_21); +if(!_24||(_24.size.width<=0||_24.size.height<=0)){ +_24=_21; +} +if(objj_msgSend(_1f,"hasThemeState:",CPThemeStateCircular)){ +var _25=3*PI_2-(1-objj_msgSend(_1f,"doubleValue")-_minValue)/(_maxValue-_minValue)*PI2,_26=CGRectGetWidth(_24)/2-8; +_23.origin.x=_26*COS(_25)+CGRectGetMidX(_24)-3; +_23.origin.y=_26*SIN(_25)+CGRectGetMidY(_24)-2; +}else{ +if(objj_msgSend(_1f,"isVertical")){ +_23.origin.x=(_24.origin.x+(_24.size.width)/2)-_22.width/2; +_23.origin.y=((objj_msgSend(_1f,"doubleValue")-_minValue)/(_maxValue-_minValue))*((_24.size.height)-_22.height); +}else{ +_23.origin.x=((objj_msgSend(_1f,"doubleValue")-_minValue)/(_maxValue-_minValue))*((_24.size.width)-_22.width); +_23.origin.y=(_24.origin.y+(_24.size.height)/2)-_22.height/2; +} +} +return _23; +} +}),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_27,_28,_29){ +with(_27){ +if(_29==="track-view"){ +return objj_msgSend(_27,"trackRectForBounds:",objj_msgSend(_27,"bounds")); +}else{ +if(_29==="knob-view"){ +return objj_msgSend(_27,"knobRectForBounds:",objj_msgSend(_27,"bounds")); +} +} +return objj_msgSendSuper({receiver:_27,super_class:objj_getClass("CPControl")},"rectForEphemeralSubviewNamed:",_29); +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_2a,_2b,_2c){ +with(_2a){ +if(_2c==="track-view"||_2c==="knob-view"){ +var _2d=objj_msgSend(objj_msgSend(CPView,"alloc"),"init"); +objj_msgSend(_2d,"setHitTests:",NO); +return _2d; +} +return objj_msgSendSuper({receiver:_2a,super_class:objj_getClass("CPControl")},"createEphemeralSubviewNamed:",_2c); +} +}),new objj_method(sel_getUid("setAltIncrementValue:"),function(_2e,_2f,_30){ +with(_2e){ +_altIncrementValue=_30; +} +}),new objj_method(sel_getUid("altIncrementValue"),function(_31,_32){ +with(_31){ +return _altIncrementValue; +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_33,_34,_35){ +with(_33){ +objj_msgSendSuper({receiver:_33,super_class:objj_getClass("CPControl")},"setFrameSize:",_35); +objj_msgSend(_33,"_recalculateIsVertical"); +} +}),new objj_method(sel_getUid("_recalculateIsVertical"),function(_36,_37){ +with(_36){ +var _38=objj_msgSend(_36,"bounds"),_39=(_38.size.width),_3a=(_38.size.height); +_isVertical=_39<_3a?1:(_39>_3a?0:-1); +if(_isVertical===1){ +objj_msgSend(_36,"setThemeState:",CPThemeStateVertical); +}else{ +if(_isVertical===0){ +objj_msgSend(_36,"unsetThemeState:",CPThemeStateVertical); +} +} +} +}),new objj_method(sel_getUid("isVertical"),function(_3b,_3c){ +with(_3b){ +return _isVertical; +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_3d,_3e){ +with(_3d){ +var _3f=objj_msgSend(_3d,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","track-view",CPWindowBelow,"knob-view"); +if(_3f){ +objj_msgSend(_3f,"setBackgroundColor:",objj_msgSend(_3d,"currentValueForThemeAttribute:","track-color")); +} +var _40=objj_msgSend(_3d,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","knob-view",CPWindowAbove,"track-view"); +if(_40){ +objj_msgSend(_40,"setBackgroundColor:",objj_msgSend(_3d,"currentValueForThemeAttribute:","knob-color")); +} +} +}),new objj_method(sel_getUid("tracksMouseOutsideOfFrame"),function(_41,_42){ +with(_41){ +return YES; +} +}),new objj_method(sel_getUid("_valueAtPoint:"),function(_43,_44,_45){ +with(_43){ +var _46=objj_msgSend(_43,"bounds"),_47=objj_msgSend(_43,"knobRectForBounds:",_46),_48=objj_msgSend(_43,"trackRectForBounds:",_46); +if(objj_msgSend(_43,"hasThemeState:",CPThemeStateCircular)){ +var _49=(_47.size.width); +_48.origin.x+=_49/2; +_48.size.width-=_49; +var _4a=objj_msgSend(_43,"minValue"),dx=_45.x-(_48.origin.x+(_48.size.width)/2),dy=_45.y-(_48.origin.y+(_48.size.height)/2); +return MAX(0,MIN(1,1-(3*PI_2-ATAN2(dy,dx))%PI2/PI2))*(objj_msgSend(_43,"maxValue")-_4a)+_4a; +}else{ +if(objj_msgSend(_43,"isVertical")){ +var _4d=(_47.size.height); +_48.origin.y+=_4d/2; +_48.size.height-=_4d; +var _4a=objj_msgSend(_43,"minValue"); +return MAX(0,MIN(1,(_45.y-(_48.origin.y))/(_48.size.height)))*(objj_msgSend(_43,"maxValue")-_4a)+_4a; +}else{ +var _49=(_47.size.width); +_48.origin.x+=_49/2; +_48.size.width-=_49; +var _4a=objj_msgSend(_43,"minValue"); +return MAX(0,MIN(1,(_45.x-(_48.origin.x))/(_48.size.width)))*(objj_msgSend(_43,"maxValue")-_4a)+_4a; +} +} +} +}),new objj_method(sel_getUid("startTrackingAt:"),function(_4e,_4f,_50){ +with(_4e){ +var _51=objj_msgSend(_4e,"bounds"),_52=objj_msgSend(_4e,"knobRectForBounds:",{origin:{x:_51.origin.x,y:_51.origin.y},size:{width:_51.size.width,height:_51.size.height}}); +if((_50.x>=(_52.origin.x)&&_50.y>=(_52.origin.y)&&_50.x<(_52.origin.x+_52.size.width)&&_50.y<(_52.origin.y+_52.size.height))){ +_dragOffset={width:(_52.origin.x+(_52.size.width)/2)-_50.x,height:(_52.origin.y+(_52.size.height)/2)-_50.y}; +}else{ +var _53=objj_msgSend(_4e,"trackRectForBounds:",_51); +if(_53&&(_50.x>=(_53.origin.x)&&_50.y>=(_53.origin.y)&&_50.x<(_53.origin.x+_53.size.width)&&_50.y<(_53.origin.y+_53.size.height))){ +_dragOffset={width:0,height:0}; +objj_msgSend(_4e,"setObjectValue:",objj_msgSend(_4e,"_valueAtPoint:",_50)); +}else{ +return NO; +} +} +objj_msgSend(_4e,"setHighlighted:",YES); +objj_msgSend(_4e,"setNeedsLayout"); +objj_msgSend(_4e,"setNeedsDisplay:",YES); +return YES; +} +}),new objj_method(sel_getUid("continueTracking:at:"),function(_54,_55,_56,_57){ +with(_54){ +objj_msgSend(_54,"setObjectValue:",objj_msgSend(_54,"_valueAtPoint:",{x:_57.x+_dragOffset.width,y:_57.y+_dragOffset.height})); +return YES; +} +}),new objj_method(sel_getUid("stopTracking:at:mouseIsUp:"),function(_58,_59,_5a,_5b,_5c){ +with(_58){ +objj_msgSend(_58,"setHighlighted:",NO); +if(objj_msgSend(_target,"respondsToSelector:",sel_getUid("sliderDidFinish:"))){ +objj_msgSend(_target,"sliderDidFinish:",_58); +} +objj_msgSend(_58,"setNeedsLayout"); +objj_msgSend(_58,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("setContinuous:"),function(_5d,_5e,_5f){ +with(_5d){ +if(_5f){ +_sendActionOn|=CPLeftMouseDraggedMask; +}else{ +_sendActionOn&=~CPLeftMouseDraggedMask; +} +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("themeClass"),function(_60,_61){ +with(_60){ +return "slider"; +} +}),new objj_method(sel_getUid("themeAttributes"),function(_62,_63){ +with(_62){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[nil,{width:0,height:0},0,nil],["knob-color","knob-size","track-width","track-color"]); +} +})]); +var _64="CPSliderMinValueKey",_65="CPSliderMaxValueKey",_66="CPSliderAltIncrValueKey"; +var _1=objj_getClass("CPSlider"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPSlider\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_67,_68,_69){ +with(_67){ +_minValue=objj_msgSend(_69,"decodeDoubleForKey:",_64); +_maxValue=objj_msgSend(_69,"decodeDoubleForKey:",_65); +_67=objj_msgSendSuper({receiver:_67,super_class:objj_getClass("CPControl")},"initWithCoder:",_69); +if(_67){ +_altIncrementValue=objj_msgSend(_69,"decodeDoubleForKey:",_66); +objj_msgSend(_67,"setContinuous:",YES); +objj_msgSend(_67,"_recalculateIsVertical"); +objj_msgSend(_67,"setNeedsLayout"); +objj_msgSend(_67,"setNeedsDisplay:",YES); +} +return _67; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_6a,_6b,_6c){ +with(_6a){ +objj_msgSendSuper({receiver:_6a,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_6c); +objj_msgSend(_6c,"encodeDouble:forKey:",_minValue,_64); +objj_msgSend(_6c,"encodeDouble:forKey:",_maxValue,_65); +objj_msgSend(_6c,"encodeDouble:forKey:",_altIncrementValue,_66); +} +})]); +var _1=objj_getClass("CPSlider"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPSlider\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("value"),function(_6d,_6e){ +with(_6d){ +CPLog.warn("[CPSlider value] is deprecated, use doubleValue or objectValue instead."); +return objj_msgSend(_6d,"doubleValue"); +} +}),new objj_method(sel_getUid("setValue:"),function(_6f,_70,_71){ +with(_6f){ +CPLog.warn("[CPSlider setValue:] is deprecated, use setDoubleValue: or setObjectValue: instead."); +objj_msgSend(_6f,"setObjectValue:",_71); +} +})]); +p;21;CPSliderColorPicker.ji;15;CPColorPicker.jc;13716; +var _1=objj_allocateClassPair(CPColorPicker,"CPSliderColorPicker"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_contentView"),new objj_ivar("_redSlider"),new objj_ivar("_greenSlider"),new objj_ivar("_blueSlider"),new objj_ivar("_hueSlider"),new objj_ivar("_saturationSlider"),new objj_ivar("_brightnessSlider"),new objj_ivar("_rgbLabel"),new objj_ivar("_hsbLabel"),new objj_ivar("_redLabel"),new objj_ivar("_greenLabel"),new objj_ivar("_blueLabel"),new objj_ivar("_hueLabel"),new objj_ivar("_saturationLabel"),new objj_ivar("_brightnessLabel"),new objj_ivar("_hexLabel"),new objj_ivar("_redValue"),new objj_ivar("_greenValue"),new objj_ivar("_blueValue"),new objj_ivar("_hueValue"),new objj_ivar("_saturationValue"),new objj_ivar("_brightnessValue"),new objj_ivar("_hexValue")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithPickerMask:colorPanel:"),function(_3,_4,_5,_6){ +with(_3){ +return objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPColorPicker")},"initWithPickerMask:colorPanel:",_5,_6); +} +}),new objj_method(sel_getUid("initView"),function(_7,_8){ +with(_7){ +aFrame=CPRectMake(0,0,CPColorPickerViewWidth,CPColorPickerViewHeight); +_contentView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",aFrame); +objj_msgSend(_contentView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +_rgbLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,10,100,20)); +objj_msgSend(_rgbLabel,"setStringValue:","Red, Green, Blue"); +objj_msgSend(_rgbLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_redLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,35,15,20)); +objj_msgSend(_redLabel,"setStringValue:","R"); +objj_msgSend(_redLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_redSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CPRectMake(15,35,aFrame.size.width-70,20)); +objj_msgSend(_redSlider,"setMaxValue:",1); +objj_msgSend(_redSlider,"setMinValue:",0); +objj_msgSend(_redSlider,"setTarget:",_7); +objj_msgSend(_redSlider,"setAction:",sel_getUid("sliderChanged:")); +objj_msgSend(_redSlider,"setAutoresizingMask:",CPViewWidthSizable); +var _9=function(_a){ +if(isNaN(this.value)){ +return; +} +switch(this){ +case _redValue: +objj_msgSend(_redSlider,"setFloatValue:",MAX(MIN(ROUND(this.value),255)/255,0)); +break; +case _greenValue: +objj_msgSend(_greenSlider,"setFloatValue:",MAX(MIN(ROUND(this.value),255)/255,0)); +break; +case _blueValue: +objj_msgSend(_blueSlider,"setFloatValue:",MAX(MIN(ROUND(this.value),255)/255,0)); +break; +case _hueValue: +objj_msgSend(_hueSlider,"setFloatValue:",MAX(MIN(ROUND(this.value),360),0)); +break; +case _saturationValue: +objj_msgSend(_saturationSlider,"setFloatValue:",MAX(MIN(ROUND(this.value),100),0)); +break; +case _brightnessValue: +objj_msgSend(_brightnessSlider,"setFloatValue:",MAX(MIN(ROUND(this.value),100),0)); +break; +} +this.blur(); +}; +var _b=function(_c){ +_c=_c||window.event; +if(_c.keyCode==13){ +_9(_c); +if(_c.preventDefault){ +_c.preventDefault(); +}else{ +if(_c.stopPropagation){ +_c.stopPropagation(); +} +} +} +}; +var _d=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(aFrame.size.width-45,35,45,20)); +objj_msgSend(_d,"setAutoresizingMask:",CPViewMinXMargin); +_redValue=document.createElement("input"); +_redValue.style.width="40px"; +_redValue.style.backgroundColor="transparent"; +_redValue.style.border="1px solid black"; +_redValue.style.color="black"; +_redValue.style.position="absolute"; +_redValue.style.top="0px"; +_redValue.style.left="0px"; +_redValue.onchange=_9; +_d._DOMElement.appendChild(_redValue); +objj_msgSend(_contentView,"addSubview:",_d); +_greenLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,58,15,20)); +objj_msgSend(_greenLabel,"setStringValue:","G"); +objj_msgSend(_greenLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_greenSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CPRectMake(15,58,aFrame.size.width-70,20)); +objj_msgSend(_greenSlider,"setMaxValue:",1); +objj_msgSend(_greenSlider,"setMinValue:",0); +objj_msgSend(_greenSlider,"setTarget:",_7); +objj_msgSend(_greenSlider,"setAction:",sel_getUid("sliderChanged:")); +objj_msgSend(_greenSlider,"setAutoresizingMask:",CPViewWidthSizable); +var _e=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(aFrame.size.width-45,58,45,20)); +objj_msgSend(_e,"setAutoresizingMask:",CPViewMinXMargin); +_greenValue=_redValue.cloneNode(false); +_greenValue.onchange=_9; +_e._DOMElement.appendChild(_greenValue); +objj_msgSend(_contentView,"addSubview:",_e); +_blueLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,81,15,20)); +objj_msgSend(_blueLabel,"setStringValue:","B"); +objj_msgSend(_blueLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_blueSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CPRectMake(15,81,aFrame.size.width-70,20)); +objj_msgSend(_blueSlider,"setMaxValue:",1); +objj_msgSend(_blueSlider,"setMinValue:",0); +objj_msgSend(_blueSlider,"setTarget:",_7); +objj_msgSend(_blueSlider,"setAction:",sel_getUid("sliderChanged:")); +objj_msgSend(_blueSlider,"setAutoresizingMask:",CPViewWidthSizable); +var _f=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(aFrame.size.width-45,81,45,20)); +objj_msgSend(_f,"setAutoresizingMask:",CPViewMinXMargin); +_blueValue=_redValue.cloneNode(false); +_blueValue.onchange=_9; +_f._DOMElement.appendChild(_blueValue); +objj_msgSend(_contentView,"addSubview:",_f); +_hsbLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,120,190,20)); +objj_msgSend(_hsbLabel,"setStringValue:","Hue, Saturation, Brightness"); +objj_msgSend(_hsbLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_hueLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,145,15,20)); +objj_msgSend(_hueLabel,"setStringValue:","H"); +objj_msgSend(_hueLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_hueSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CPRectMake(15,145,aFrame.size.width-70,20)); +objj_msgSend(_hueSlider,"setMaxValue:",359); +objj_msgSend(_hueSlider,"setMinValue:",0); +objj_msgSend(_hueSlider,"setTarget:",_7); +objj_msgSend(_hueSlider,"setAction:",sel_getUid("sliderChanged:")); +objj_msgSend(_hueSlider,"setAutoresizingMask:",CPViewWidthSizable); +var _10=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(aFrame.size.width-45,145,45,20)); +objj_msgSend(_10,"setAutoresizingMask:",CPViewMinXMargin); +_hueValue=_redValue.cloneNode(false); +_hueValue.onchange=_9; +_10._DOMElement.appendChild(_hueValue); +objj_msgSend(_contentView,"addSubview:",_10); +_saturationLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,168,15,20)); +objj_msgSend(_saturationLabel,"setStringValue:","S"); +objj_msgSend(_saturationLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_saturationSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CPRectMake(15,168,aFrame.size.width-70,20)); +objj_msgSend(_saturationSlider,"setMaxValue:",100); +objj_msgSend(_saturationSlider,"setMinValue:",0); +objj_msgSend(_saturationSlider,"setTarget:",_7); +objj_msgSend(_saturationSlider,"setAction:",sel_getUid("sliderChanged:")); +objj_msgSend(_saturationSlider,"setAutoresizingMask:",CPViewWidthSizable); +var _11=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(aFrame.size.width-45,168,45,20)); +objj_msgSend(_11,"setAutoresizingMask:",CPViewMinXMargin); +_saturationValue=_redValue.cloneNode(false); +_saturationValue.onchange=_9; +_11._DOMElement.appendChild(_saturationValue); +objj_msgSend(_contentView,"addSubview:",_11); +_brightnessLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,191,15,20)); +objj_msgSend(_brightnessLabel,"setStringValue:","B"); +objj_msgSend(_brightnessLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_brightnessSlider=objj_msgSend(objj_msgSend(CPSlider,"alloc"),"initWithFrame:",CPRectMake(15,191,aFrame.size.width-70,20)); +objj_msgSend(_brightnessSlider,"setMaxValue:",100); +objj_msgSend(_brightnessSlider,"setMinValue:",0); +objj_msgSend(_brightnessSlider,"setTarget:",_7); +objj_msgSend(_brightnessSlider,"setAction:",sel_getUid("sliderChanged:")); +objj_msgSend(_brightnessSlider,"setAutoresizingMask:",CPViewWidthSizable); +var _12=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(aFrame.size.width-45,191,45,20)); +objj_msgSend(_12,"setAutoresizingMask:",CPViewMinXMargin); +_brightnessValue=_redValue.cloneNode(false); +_brightnessValue.onchange=_9; +_12._DOMElement.appendChild(_brightnessValue); +objj_msgSend(_contentView,"addSubview:",_12); +_hexLabel=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMake(0,230,30,20)); +objj_msgSend(_hexLabel,"setStringValue:","Hex"); +objj_msgSend(_hexLabel,"setTextColor:",objj_msgSend(CPColor,"blackColor")); +_hexValue=_redValue.cloneNode(false); +_hexValue.style.top="228px"; +_hexValue.style.width="80px"; +_hexValue.style.left="35px"; +_hexValue.onkeypress=function(_13){ +_13=_13||window.event; +if(_13.keyCode==13){ +var _14=objj_msgSend(CPColor,"colorWithHexString:",this.value); +if(_14){ +objj_msgSend(_7,"setColor:",_14); +objj_msgSend(objj_msgSend(_7,"colorPanel"),"setColor:",_14); +} +if(_13.preventDefault){ +_13.preventDefault(); +}else{ +if(_13.stopPropagation){ +_13.stopPropagation(); +} +} +this.blur(); +} +}; +_contentView._DOMElement.appendChild(_hexValue); +objj_msgSend(_contentView,"addSubview:",_rgbLabel); +objj_msgSend(_contentView,"addSubview:",_redLabel); +objj_msgSend(_contentView,"addSubview:",_greenLabel); +objj_msgSend(_contentView,"addSubview:",_blueLabel); +objj_msgSend(_contentView,"addSubview:",_redSlider); +objj_msgSend(_contentView,"addSubview:",_greenSlider); +objj_msgSend(_contentView,"addSubview:",_blueSlider); +objj_msgSend(_contentView,"addSubview:",_hsbLabel); +objj_msgSend(_contentView,"addSubview:",_hueLabel); +objj_msgSend(_contentView,"addSubview:",_saturationLabel); +objj_msgSend(_contentView,"addSubview:",_brightnessLabel); +objj_msgSend(_contentView,"addSubview:",_hueSlider); +objj_msgSend(_contentView,"addSubview:",_saturationSlider); +objj_msgSend(_contentView,"addSubview:",_brightnessSlider); +objj_msgSend(_contentView,"addSubview:",_hexLabel); +} +}),new objj_method(sel_getUid("provideNewView:"),function(_15,_16,_17){ +with(_15){ +if(_17){ +objj_msgSend(_15,"initView"); +} +return _contentView; +} +}),new objj_method(sel_getUid("currentMode"),function(_18,_19){ +with(_18){ +return CPSliderColorPickerMode; +} +}),new objj_method(sel_getUid("supportsMode:"),function(_1a,_1b,_1c){ +with(_1a){ +return (_1c==CPSliderColorPickerMode)?YES:NO; +} +}),new objj_method(sel_getUid("sliderChanged:"),function(_1d,_1e,_1f){ +with(_1d){ +var _20,_21=objj_msgSend(_1d,"colorPanel"),_22=objj_msgSend(_21,"opacity"); +switch(_1f){ +case _hueSlider: +case _saturationSlider: +case _brightnessSlider: +_20=objj_msgSend(CPColor,"colorWithHue:saturation:brightness:alpha:",objj_msgSend(_hueSlider,"floatValue"),objj_msgSend(_saturationSlider,"floatValue"),objj_msgSend(_brightnessSlider,"floatValue"),_22); +objj_msgSend(_1d,"updateRGBSliders:",_20); +break; +case _redSlider: +case _greenSlider: +case _blueSlider: +_20=objj_msgSend(CPColor,"colorWithCalibratedRed:green:blue:alpha:",objj_msgSend(_redSlider,"floatValue"),objj_msgSend(_greenSlider,"floatValue"),objj_msgSend(_blueSlider,"floatValue"),_22); +objj_msgSend(_1d,"updateHSBSliders:",_20); +break; +} +objj_msgSend(_1d,"updateLabels"); +objj_msgSend(_1d,"updateHex:",_20); +objj_msgSend(_21,"setColor:",_20); +} +}),new objj_method(sel_getUid("setColor:"),function(_23,_24,_25){ +with(_23){ +objj_msgSend(_23,"updateRGBSliders:",_25); +objj_msgSend(_23,"updateHSBSliders:",_25); +objj_msgSend(_23,"updateHex:",_25); +objj_msgSend(_23,"updateLabels"); +} +}),new objj_method(sel_getUid("updateHSBSliders:"),function(_26,_27,_28){ +with(_26){ +var hsb=objj_msgSend(_28,"hsbComponents"); +objj_msgSend(_hueSlider,"setFloatValue:",hsb[0]); +objj_msgSend(_saturationSlider,"setFloatValue:",hsb[1]); +objj_msgSend(_brightnessSlider,"setFloatValue:",hsb[2]); +} +}),new objj_method(sel_getUid("updateHex:"),function(_2a,_2b,_2c){ +with(_2a){ +_hexValue.value=objj_msgSend(_2c,"hexString"); +} +}),new objj_method(sel_getUid("updateRGBSliders:"),function(_2d,_2e,_2f){ +with(_2d){ +var rgb=objj_msgSend(_2f,"components"); +objj_msgSend(_redSlider,"setFloatValue:",rgb[0]); +objj_msgSend(_greenSlider,"setFloatValue:",rgb[1]); +objj_msgSend(_blueSlider,"setFloatValue:",rgb[2]); +} +}),new objj_method(sel_getUid("updateLabels"),function(_31,_32){ +with(_31){ +_hueValue.value=ROUND(objj_msgSend(_hueSlider,"floatValue")); +_saturationValue.value=ROUND(objj_msgSend(_saturationSlider,"floatValue")); +_brightnessValue.value=ROUND(objj_msgSend(_brightnessSlider,"floatValue")); +_redValue.value=ROUND(objj_msgSend(_redSlider,"floatValue")*255); +_greenValue.value=ROUND(objj_msgSend(_greenSlider,"floatValue")*255); +_blueValue.value=ROUND(objj_msgSend(_blueSlider,"floatValue")*255); +} +}),new objj_method(sel_getUid("provideNewButtonImage"),function(_33,_34){ +with(_33){ +return objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",CPColorPicker),"pathForResource:","slider_button.png"),CGSizeMake(32,32)); +} +}),new objj_method(sel_getUid("provideNewAlternateButtonImage"),function(_35,_36){ +with(_35){ +return objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(objj_msgSend(CPBundle,"bundleForClass:",CPColorPicker),"pathForResource:","slider_button_h.png"),CGSizeMake(32,32)); +} +})]); +p;13;CPSplitView.ji;9;CPImage.ji;8;CPView.jc;16252; +CPSplitViewDidResizeSubviewsNotification="CPSplitViewDidResizeSubviewsNotification"; +CPSplitViewWillResizeSubviewsNotification="CPSplitViewWillResizeSubviewsNotification"; +var _1=nil,_2=nil; +var _3=objj_allocateClassPair(CPView,"CPSplitView"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_delegate"),new objj_ivar("_isVertical"),new objj_ivar("_isPaneSplitter"),new objj_ivar("_currentDivider"),new objj_ivar("_initialOffset"),new objj_ivar("_originComponent"),new objj_ivar("_sizeComponent"),new objj_ivar("_DOMDividerElements"),new objj_ivar("_dividerImagePath"),new objj_ivar("_drawingDivider"),new objj_ivar("_needsResizeSubviews")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initWithFrame:"),function(_5,_6,_7){ +with(_5){ +if(_5=objj_msgSendSuper({receiver:_5,super_class:objj_getClass("CPView")},"initWithFrame:",_7)){ +_currentDivider=CPNotFound; +_DOMDividerElements=[]; +objj_msgSend(_5,"_setVertical:",YES); +} +return _5; +} +}),new objj_method(sel_getUid("dividerThickness"),function(_8,_9){ +with(_8){ +return _isPaneSplitter?1:10; +} +}),new objj_method(sel_getUid("isVertical"),function(_a,_b){ +with(_a){ +return _isVertical; +} +}),new objj_method(sel_getUid("setVertical:"),function(_c,_d,_e){ +with(_c){ +if(!objj_msgSend(_c,"_setVertical:",_e)){ +return; +} +var _f=objj_msgSend(_c,"frame"),_10=objj_msgSend(_c,"dividerThickness"); +objj_msgSend(_c,"_postNotificationWillResize"); +var _11=ROUND((_f.size[_sizeComponent]-_10*(_subviews.length-1))/_subviews.length),_12=0,_13=_subviews.length; +if(objj_msgSend(_c,"isVertical")){ +for(;_12<_13;++_12){ +objj_msgSend(_subviews[_12],"setFrame:",CGRectMake(ROUND((_11+_10)*_12),0,_11,_f.size.height)); +} +}else{ +for(;_12<_13;++_12){ +objj_msgSend(_subviews[_12],"setFrame:",CGRectMake(0,ROUND((_11+_10)*_12),_f.size.width,_11)); +} +} +objj_msgSend(_c,"setNeedsDisplay:",YES); +objj_msgSend(_c,"_postNotificationDidResize"); +} +}),new objj_method(sel_getUid("_setVertical:"),function(_14,_15,_16){ +with(_14){ +var _17=(_isVertical!=_16); +_isVertical=_16; +_originComponent=objj_msgSend(_14,"isVertical")?"x":"y"; +_sizeComponent=objj_msgSend(_14,"isVertical")?"width":"height"; +_dividerImagePath=objj_msgSend(_14,"isVertical")?objj_msgSend(_2,"filename"):objj_msgSend(_1,"filename"); +return _17; +} +}),new objj_method(sel_getUid("isPaneSplitter"),function(_18,_19){ +with(_18){ +return _isPaneSplitter; +} +}),new objj_method(sel_getUid("setIsPaneSplitter:"),function(_1a,_1b,_1c){ +with(_1a){ +if(_isPaneSplitter==_1c){ +return; +} +_isPaneSplitter=_1c; +objj_msgSend(_1a,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("didAddSubview:"),function(_1d,_1e,_1f){ +with(_1d){ +_needsResizeSubviews=YES; +} +}),new objj_method(sel_getUid("isSubviewCollapsed:"),function(_20,_21,_22){ +with(_20){ +return objj_msgSend(_22,"frame").size[_sizeComponent]<1?YES:NO; +} +}),new objj_method(sel_getUid("rectOfDividerAtIndex:"),function(_23,_24,_25){ +with(_23){ +var _26=objj_msgSend(_subviews[_25],"frame"),_27=CGRectMakeZero(); +_27.size=objj_msgSend(_23,"frame").size; +_27.size[_sizeComponent]=objj_msgSend(_23,"dividerThickness"); +_27.origin[_originComponent]=_26.origin[_originComponent]+_26.size[_sizeComponent]; +return _27; +} +}),new objj_method(sel_getUid("effectiveRectOfDividerAtIndex:"),function(_28,_29,_2a){ +with(_28){ +var _2b=objj_msgSend(_28,"rectOfDividerAtIndex:",_2a); +var _2c=2; +_2b.size[_sizeComponent]+=_2c*2; +_2b.origin[_originComponent]-=_2c; +return _2b; +} +}),new objj_method(sel_getUid("drawRect:"),function(_2d,_2e,_2f){ +with(_2d){ +var _30=objj_msgSend(_subviews,"count")-1; +while((_30--)>0){ +_drawingDivider=_30; +objj_msgSend(_2d,"drawDividerInRect:",objj_msgSend(_2d,"rectOfDividerAtIndex:",_30)); +} +} +}),new objj_method(sel_getUid("drawDividerInRect:"),function(_31,_32,_33){ +with(_31){ +} +}),new objj_method(sel_getUid("viewWillDraw"),function(_34,_35){ +with(_34){ +objj_msgSend(_34,"_adjustSubviewsWithCalculatedSize"); +} +}),new objj_method(sel_getUid("_adjustSubviewsWithCalculatedSize"),function(_36,_37){ +with(_36){ +if(!_needsResizeSubviews){ +return; +} +_needsResizeSubviews=NO; +var _38=objj_msgSend(_36,"subviews"),_39=_38.length,_3a=CGSizeMakeZero(); +if(objj_msgSend(_36,"isVertical")){ +_3a.width+=objj_msgSend(_36,"dividerThickness")*(_39-1); +_3a.height=CGRectGetHeight(objj_msgSend(_36,"frame")); +}else{ +_3a.width=CGRectGetWidth(objj_msgSend(_36,"frame")); +_3a.height+=objj_msgSend(_36,"dividerThickness")*(_39-1); +} +while(_39--){ +_3a[_sizeComponent]+=objj_msgSend(_38[_39],"frame").size[_sizeComponent]; +} +objj_msgSend(_36,"resizeSubviewsWithOldSize:",_3a); +} +}),new objj_method(sel_getUid("cursorAtPoint:hitDividerAtIndex:"),function(_3b,_3c,_3d,_3e){ +with(_3b){ +var _3f=objj_msgSend(_subviews[_3e],"frame"),_40=_3f.origin[_originComponent]+_3f.size[_sizeComponent],_41=objj_msgSend(_3b,"effectiveRectOfDividerAtIndex:",_3e),_42=null; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:"))){ +_41=objj_msgSend(_delegate,"splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:",_3b,_41,_41,_3e); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:additionalEffectiveRectOfDividerAtIndex:"))){ +_42=objj_msgSend(_delegate,"splitView:additionalEffectiveRectOfDividerAtIndex:",_3b,_3e); +} +return CGRectContainsPoint(_41,_3d)||(_42&&CGRectContainsPoint(_42,_3d)); +} +}),new objj_method(sel_getUid("hitTest:"),function(_43,_44,_45){ +with(_43){ +if(objj_msgSend(_43,"isHidden")||!objj_msgSend(_43,"hitTests")||!CGRectContainsPoint(objj_msgSend(_43,"frame"),_45)){ +return nil; +} +var _46=objj_msgSend(_43,"convertPoint:fromView:",_45,objj_msgSend(_43,"superview")); +var _47=objj_msgSend(_subviews,"count")-1; +for(var i=0;i<_47;i++){ +if(objj_msgSend(_43,"cursorAtPoint:hitDividerAtIndex:",_46,i)){ +return _43; +} +} +return objj_msgSendSuper({receiver:_43,super_class:objj_getClass("CPView")},"hitTest:",_45); +} +}),new objj_method(sel_getUid("trackDivider:"),function(_49,_4a,_4b){ +with(_49){ +var _4c=objj_msgSend(_4b,"type"); +if(_4c==CPLeftMouseUp){ +if(_currentDivider!=CPNotFound){ +_currentDivider=CPNotFound; +objj_msgSend(_49,"_postNotificationDidResize"); +} +return; +} +if(_4c==CPLeftMouseDown){ +var _4d=objj_msgSend(_49,"convertPoint:fromView:",objj_msgSend(_4b,"locationInWindow"),nil); +_currentDivider=CPNotFound; +var _4e=objj_msgSend(_subviews,"count")-1; +for(var i=0;i<_4e;i++){ +var _50=objj_msgSend(_subviews[i],"frame"),_51=_50.origin[_originComponent]+_50.size[_sizeComponent]; +if(objj_msgSend(_49,"cursorAtPoint:hitDividerAtIndex:",_4d,i)){ +if(objj_msgSend(_4b,"clickCount")==2&&objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:canCollapseSubview:"))&&objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:"))){ +var _52=objj_msgSend(_49,"minPossiblePositionOfDividerAtIndex:",i),_53=objj_msgSend(_49,"maxPossiblePositionOfDividerAtIndex:",i); +if(objj_msgSend(_delegate,"splitView:canCollapseSubview:",_49,_subviews[i])&&objj_msgSend(_delegate,"splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:",_49,_subviews[i],i)){ +if(objj_msgSend(_49,"isSubviewCollapsed:",_subviews[i])){ +objj_msgSend(_49,"setPosition:ofDividerAtIndex:",(_52+(_53-_52)/2),i); +}else{ +objj_msgSend(_49,"setPosition:ofDividerAtIndex:",_52,i); +} +}else{ +if(objj_msgSend(_delegate,"splitView:canCollapseSubview:",_49,_subviews[i+1])&&objj_msgSend(_delegate,"splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:",_49,_subviews[i+1],i)){ +if(objj_msgSend(_49,"isSubviewCollapsed:",_subviews[i+1])){ +objj_msgSend(_49,"setPosition:ofDividerAtIndex:",(_52+(_53-_52)/2),i); +}else{ +objj_msgSend(_49,"setPosition:ofDividerAtIndex:",_53,i); +} +} +} +}else{ +_currentDivider=i; +_initialOffset=_51-_4d[_originComponent]; +objj_msgSend(_49,"_postNotificationWillResize"); +} +} +} +}else{ +if(_4c==CPLeftMouseDragged&&_currentDivider!=CPNotFound){ +var _4d=objj_msgSend(_49,"convertPoint:fromView:",objj_msgSend(_4b,"locationInWindow"),nil); +objj_msgSend(_49,"setPosition:ofDividerAtIndex:",(_4d[_originComponent]+_initialOffset),_currentDivider); +} +} +objj_msgSend(CPApp,"setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:",_49,sel_getUid("trackDivider:"),CPLeftMouseDraggedMask|CPLeftMouseUpMask,nil,nil,YES); +} +}),new objj_method(sel_getUid("mouseDown:"),function(_54,_55,_56){ +with(_54){ +objj_msgSend(_54,"trackDivider:",_56); +} +}),new objj_method(sel_getUid("maxPossiblePositionOfDividerAtIndex:"),function(_57,_58,_59){ +with(_57){ +var _5a=objj_msgSend(_subviews[_59+1],"frame"); +if(_59+10){ +var _5e=objj_msgSend(_subviews[_5d-1],"frame"); +return _5e.origin[_originComponent]+_5e.size[_sizeComponent]+objj_msgSend(_5b,"dividerThickness"); +}else{ +return 0; +} +} +}),new objj_method(sel_getUid("setPosition:ofDividerAtIndex:"),function(_5f,_60,_61,_62){ +with(_5f){ +objj_msgSend(_5f,"_adjustSubviewsWithCalculatedSize"); +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:constrainSplitPosition:ofSubviewAt:"))){ +_61=objj_msgSend(_delegate,"splitView:constrainSplitPosition:ofSubviewAt:",_5f,_61,_62); +} +var _63=objj_msgSend(_5f,"maxPossiblePositionOfDividerAtIndex:",_62),_64=objj_msgSend(_5f,"minPossiblePositionOfDividerAtIndex:",_62),_65=_63,_66=_64; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:constrainMinCoordinate:ofSubviewAt:"))){ +_66=objj_msgSend(_delegate,"splitView:constrainMinCoordinate:ofSubviewAt:",_5f,_64,_62); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:constrainMaxCoordinate:ofSubviewAt:"))){ +_65=objj_msgSend(_delegate,"splitView:constrainMaxCoordinate:ofSubviewAt:",_5f,_63,_62); +} +var _67=objj_msgSend(_5f,"frame"),_68=_subviews[_62],_69=objj_msgSend(_68,"frame"),_6a=_subviews[_62+1],_6b=objj_msgSend(_6a,"frame"); +var _6c=MAX(MIN(_61,_65),_66); +if(_61<_64+(_66-_64)/2){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:canCollapseSubview:"))){ +if(objj_msgSend(_delegate,"splitView:canCollapseSubview:",_5f,_68)){ +_6c=_64; +} +} +} +_69.size[_sizeComponent]=_6c-_69.origin[_originComponent]; +objj_msgSend(_subviews[_62],"setFrame:",_69); +_6b.size[_sizeComponent]=_6b.origin[_originComponent]+_6b.size[_sizeComponent]-_6c-objj_msgSend(_5f,"dividerThickness"); +_6b.origin[_originComponent]=_6c+objj_msgSend(_5f,"dividerThickness"); +objj_msgSend(_subviews[_62+1],"setFrame:",_6b); +objj_msgSend(_5f,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_6d,_6e,_6f){ +with(_6d){ +objj_msgSend(_6d,"_adjustSubviewsWithCalculatedSize"); +objj_msgSendSuper({receiver:_6d,super_class:objj_getClass("CPView")},"setFrameSize:",_6f); +objj_msgSend(_6d,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_70,_71,_72){ +with(_70){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitView:resizeSubviewsWithOldSize:"))){ +objj_msgSend(_delegate,"splitView:resizeSubviewsWithOldSize:",_70,_72); +return; +} +objj_msgSend(_70,"_postNotificationWillResize"); +var _73=0,_74=objj_msgSend(_subviews,"count"),_75=objj_msgSend(_70,"bounds"),_76=objj_msgSend(_70,"dividerThickness"),_77=_74-1,_78=0,_79=0,_7a=-1,_7b=0,_7c=objj_msgSend(_70,"isVertical"); +for(_73=0;_73<_74;++_73){ +var _7d=_subviews[_73],_7e=_7c?objj_msgSend(_7d,"autoresizingMask")&CPViewWidthSizable:objj_msgSend(_7d,"autoresizingMask")&CPViewHeightSizable; +if(_7e){ +_78+=objj_msgSend(_7d,"frame").size[_sizeComponent]; +_7a=_73; +_7b++; +} +} +if(_7b===_74){ +_78=0; +} +var _79=_78?_75.size[_sizeComponent]-_78:0,_7f=(_75.size[_sizeComponent]-_77*_76-_79)/(_72[_sizeComponent]-_77*_76-_79),_80=_75.size[_sizeComponent]-_72[_sizeComponent]; +for(_73=0;_73<_74;++_73){ +var _7d=_subviews[_73],_81=CGRectMakeCopy(_75),_7e=_7c?objj_msgSend(_7d,"autoresizingMask")&CPViewWidthSizable:objj_msgSend(_7d,"autoresizingMask")&CPViewHeightSizable; +if(_73+1==_74){ +_81.size[_sizeComponent]=_75.size[_sizeComponent]-_81.origin[_originComponent]; +}else{ +if(_78&&_7e&&_7a===_73){ +_81.size[_sizeComponent]=MAX(0,ROUND(objj_msgSend(_7d,"frame").size[_sizeComponent]+_80)); +}else{ +if(_7e||!_78){ +_81.size[_sizeComponent]=MAX(0,ROUND(_7f*objj_msgSend(_7d,"frame").size[_sizeComponent])); +_80-=(_81.size[_sizeComponent]-objj_msgSend(_7d,"frame").size[_sizeComponent]); +}else{ +if(_78&&!_7e){ +_81.size[_sizeComponent]=objj_msgSend(_7d,"frame").size[_sizeComponent]; +}else{ +alert("SHOULD NEVER GET HERE"); +} +} +} +} +_75.origin[_originComponent]+=_81.size[_sizeComponent]+_76; +objj_msgSend(_7d,"setFrame:",_81); +} +objj_msgSend(_70,"_postNotificationDidResize"); +} +}),new objj_method(sel_getUid("setDelegate:"),function(_82,_83,_84){ +with(_82){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitViewDidResizeSubviews:"))){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"removeObserver:name:object:",_delegate,CPSplitViewDidResizeSubviewsNotification,_82); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitViewWillResizeSubviews:"))){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"removeObserver:name:object:",_delegate,CPSplitViewWillResizeSubviewsNotification,_82); +} +_delegate=_84; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitViewDidResizeSubviews:"))){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"addObserver:selector:name:object:",_delegate,sel_getUid("splitViewDidResizeSubviews:"),CPSplitViewDidResizeSubviewsNotification,_82); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("splitViewWillResizeSubviews:"))){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"addObserver:selector:name:object:",_delegate,sel_getUid("splitViewWillResizeSubviews:"),CPSplitViewWillResizeSubviewsNotification,_82); +} +} +}),new objj_method(sel_getUid("_postNotificationWillResize"),function(_85,_86){ +with(_85){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPSplitViewWillResizeSubviewsNotification,_85); +} +}),new objj_method(sel_getUid("_postNotificationDidResize"),function(_87,_88){ +with(_87){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPSplitViewDidResizeSubviewsNotification,_87); +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("initialize"),function(_89,_8a){ +with(_89){ +if(_89!=objj_msgSend(CPSplitView,"class")){ +return; +} +var _8b=objj_msgSend(CPBundle,"bundleForClass:",_89); +_1=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_8b,"pathForResource:","CPSplitView/CPSplitViewHorizontal.png"),CPSizeMake(5,10)); +_2=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_8b,"pathForResource:","CPSplitView/CPSplitViewVertical.png"),CPSizeMake(10,5)); +} +})]); +var _8c="CPSplitViewDelegateKey",_8d="CPSplitViewIsVerticalKey",_8e="CPSplitViewIsPaneSplitterKey"; +var _3=objj_getClass("CPSplitView"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPSplitView\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("initWithCoder:"),function(_8f,_90,_91){ +with(_8f){ +_8f=objj_msgSendSuper({receiver:_8f,super_class:objj_getClass("CPView")},"initWithCoder:",_91); +if(_8f){ +_currentDivider=CPNotFound; +_DOMDividerElements=[]; +_delegate=objj_msgSend(_91,"decodeObjectForKey:",_8c); +_isPaneSplitter=objj_msgSend(_91,"decodeBoolForKey:",_8e); +objj_msgSend(_8f,"_setVertical:",objj_msgSend(_91,"decodeBoolForKey:",_8d)); +} +return _8f; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_92,_93,_94){ +with(_92){ +objj_msgSendSuper({receiver:_92,super_class:objj_getClass("CPView")},"encodeWithCoder:",_94); +objj_msgSend(_94,"encodeConditionalObject:forKey:",_delegate,_8c); +objj_msgSend(_94,"encodeBool:forKey:",_isVertical,_8d); +objj_msgSend(_94,"encodeBool:forKey:",_isPaneSplitter,_8e); +} +})]); +p;17;CPStringDrawing.jI;21;Foundation/CPString.jc;670; +var _1=nil,_2=nil; +var _3=objj_getClass("CPString"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPString\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("cssString"),function(_5,_6){ +with(_5){ +return _5; +} +}),new objj_method(sel_getUid("sizeWithFont:"),function(_7,_8,_9){ +with(_7){ +return objj_msgSend(_7,"sizeWithFont:inWidth:",_9,NULL); +} +}),new objj_method(sel_getUid("sizeWithFont:inWidth:"),function(_a,_b,_c,_d){ +with(_a){ +return {width:0,height:0}; +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("_resetSize"),function(_e,_f){ +with(_e){ +_1=nil; +} +})]); +p;15;CPTableColumn.jI;23;Foundation/Foundation.jc;7157; +CPTableColumnNoResizing=0; +CPTableColumnAutoresizingMask=1; +CPTableColumnUserResizingMask=2; +var _1=objj_allocateClassPair(CPObject,"CPTableColumn"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_identifier"),new objj_ivar("_headerView"),new objj_ivar("_tableView"),new objj_ivar("_width"),new objj_ivar("_minWidth"),new objj_ivar("_maxWidth"),new objj_ivar("_resizingMask"),new objj_ivar("_dataView"),new objj_ivar("_dataViewData"),new objj_ivar("_dataViewForView"),new objj_ivar("_purgableInfosForDataView")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithIdentifier:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +objj_msgSend(_3,"_init"); +_identifier=_5; +_width=40; +_minWidth=8; +_maxWidth=1000; +var _6=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMakeZero()); +objj_msgSend(_6,"setValue:forThemeAttribute:inState:",objj_msgSend(CPColor,"whiteColor"),"text-color",CPThemeStateHighlighted); +objj_msgSend(_3,"setDataView:",_6); +_headerView=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CPRectMakeZero()); +objj_msgSend(_headerView,"setBackgroundColor:",objj_msgSend(CPColor,"greenColor")); +} +return _3; +} +}),new objj_method(sel_getUid("_init"),function(_7,_8){ +with(_7){ +_dataViewData={}; +_dataViewForView={}; +_purgableInfosForDataView={}; +} +}),new objj_method(sel_getUid("setIdentifier:"),function(_9,_a,_b){ +with(_9){ +_identifier=_b; +} +}),new objj_method(sel_getUid("identifier"),function(_c,_d){ +with(_c){ +return _identifier; +} +}),new objj_method(sel_getUid("setTableView:"),function(_e,_f,_10){ +with(_e){ +_tableView=_10; +} +}),new objj_method(sel_getUid("tableView"),function(_11,_12){ +with(_11){ +return _tableView; +} +}),new objj_method(sel_getUid("setWidth:"),function(_13,_14,_15){ +with(_13){ +_width=_15; +} +}),new objj_method(sel_getUid("width"),function(_16,_17){ +with(_16){ +return _width; +} +}),new objj_method(sel_getUid("setMinWidth:"),function(_18,_19,_1a){ +with(_18){ +if(_width<(_minWidth=_1a)){ +objj_msgSend(_18,"setWidth:",_minWidth); +} +} +}),new objj_method(sel_getUid("minWidth"),function(_1b,_1c){ +with(_1b){ +return _minWidth; +} +}),new objj_method(sel_getUid("setMaxWidth:"),function(_1d,_1e,_1f){ +with(_1d){ +if(_width>(_maxmimumWidth=_1f)){ +objj_msgSend(_1d,"setWidth:",_maxWidth); +} +} +}),new objj_method(sel_getUid("setResizingMask:"),function(_20,_21,_22){ +with(_20){ +_resizingMask=_22; +} +}),new objj_method(sel_getUid("resizingMask"),function(_23,_24){ +with(_23){ +return _resizingMask; +} +}),new objj_method(sel_getUid("sizeToFit"),function(_25,_26){ +with(_25){ +var _27=CPRectGetWidth(objj_msgSend(_headerView,"frame")); +if(_27<_minWidth){ +objj_msgSend(_25,"setMinWidth:",_27); +}else{ +if(_27>_maxWidth){ +objj_msgSend(_25,"setMaxWidth:",_27); +} +} +if(_width!=_27){ +objj_msgSend(_25,"setWidth:",_27); +} +} +}),new objj_method(sel_getUid("setEditable:"),function(_28,_29,_2a){ +with(_28){ +_isEditable=_2a; +} +}),new objj_method(sel_getUid("isEditable"),function(_2b,_2c){ +with(_2b){ +return _isEditable; +} +}),new objj_method(sel_getUid("setHeaderView:"),function(_2d,_2e,_2f){ +with(_2d){ +_headerView=_2f; +} +}),new objj_method(sel_getUid("headerView"),function(_30,_31){ +with(_30){ +return _headerView; +} +}),new objj_method(sel_getUid("setDataCell:"),function(_32,_33,_34){ +with(_32){ +objj_msgSend(_32,"setDataView:",_34); +} +}),new objj_method(sel_getUid("setDataView:"),function(_35,_36,_37){ +with(_35){ +if(_dataView){ +_dataViewData[objj_msgSend(_dataView,"hash")]=nil; +} +_dataView=_37; +_dataViewData[objj_msgSend(_37,"hash")]=objj_msgSend(CPKeyedArchiver,"archivedDataWithRootObject:",_37); +} +}),new objj_method(sel_getUid("dataCell"),function(_38,_39){ +with(_38){ +return _dataView; +} +}),new objj_method(sel_getUid("dataView"),function(_3a,_3b){ +with(_3a){ +return objj_msgSend(_3a,"dataCell"); +} +}),new objj_method(sel_getUid("dataCellForRow:"),function(_3c,_3d,_3e){ +with(_3c){ +return objj_msgSend(_3c,"dataView"); +} +}),new objj_method(sel_getUid("dataViewForRow:"),function(_3f,_40,_41){ +with(_3f){ +return objj_msgSend(_3f,"dataCellForRow:",_41); +} +}),new objj_method(sel_getUid("_markView:inRow:asPurgable:"),function(_42,_43,_44,_45,_46){ +with(_42){ +var _47=objj_msgSend(_44,"hash"),_48=objj_msgSend(_dataViewForView[_47],"hash"); +if(!_purgableInfosForDataView[_48]){ +if(!_46){ +return; +} +_purgableInfosForDataView[_48]={}; +} +if(!_46){ +if(_purgableInfosForDataView[_48][_47]){ +CPLog.warn("removing unpurgable "+_purgableInfosForDataView[_48][_47]); +} +delete _purgableInfosForDataView[_48][_47]; +}else{ +_purgableInfosForDataView[_48][_47]={view:(_44),row:(_45)}; +} +} +}),new objj_method(sel_getUid("_newDataViewForRow:avoidingRows:"),function(_49,_4a,_4b,_4c){ +with(_49){ +var _4d=objj_msgSend(_49,"dataViewForRow:",_4b),_4e=objj_msgSend(_4d,"hash"),_4f=_purgableInfosForDataView[_4e]; +if(_4f){ +for(var key in _4f){ +var _51=_4f[key]; +delete _4f[key]; +return ((_51).view); +} +} +if(!_dataViewData[_4e]){ +_dataViewData[_4e]=objj_msgSend(CPKeyedArchiver,"archivedDataWithRootObject:",_4d); +} +var _52=objj_msgSend(CPKeyedUnarchiver,"unarchiveObjectWithData:",_dataViewData[_4e]); +_dataViewForView[objj_msgSend(_52,"hash")]=_4d; +CPLog.warn("creating cell: %s",_52); +return _52; +} +}),new objj_method(sel_getUid("_purge"),function(_53,_54){ +with(_53){ +for(var _55 in _purgableInfosForDataView){ +var _56=_purgableInfosForDataView[_55]; +for(var key in _56){ +var _58=((_56[key]).view); +if(!_58){ +CPLog.info("key="+key+" view="+_58+" purgableInfos[key]="+_56[key]); +}else{ +if(_58._superview){ +objj_msgSend(_58,"setHidden:",YES); +} +} +} +} +} +})]); +var _59="CPTableColumnIdentifierKey",_5a="CPTableColumnHeaderViewKey",_5b="CPTableColumnDataViewKey",_5c="CPTableColumnWidthKey",_5d="CPTableColumnMinWidthKey",_5e="CPTableColumnMaxWidthKey",_5f="CPTableColumnResizingMaskKey"; +var _1=objj_getClass("CPTableColumn"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTableColumn\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_60,_61,_62){ +with(_60){ +objj_msgSend(_60,"_init"); +_identifier=objj_msgSend(_62,"decodeObjectForKey:",_59); +objj_msgSend(_60,"setHeaderView:",objj_msgSend(_62,"decodeObjectForKey:",_5a)); +objj_msgSend(_60,"setDataView:",objj_msgSend(_62,"decodeObjectForKey:",_5b)); +_width=objj_msgSend(_62,"decodeFloatForKey:",_5c); +_minWidth=objj_msgSend(_62,"decodeFloatForKey:",_5d); +_maxWidth=objj_msgSend(_62,"decodeFloatForKey:",_5e); +_resizingMask=objj_msgSend(_62,"decodeBoolForKey:",_5f); +return _60; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_63,_64,_65){ +with(_63){ +objj_msgSend(_65,"encodeObject:forKey:",_identifier,_59); +objj_msgSend(_65,"encodeObject:forKey:",_headerView,_5a); +objj_msgSend(_65,"encodeObject:forKey:",_dataView,_5b); +objj_msgSend(_65,"encodeObject:forKey:",_width,_5c); +objj_msgSend(_65,"encodeObject:forKey:",_minWidth,_5d); +objj_msgSend(_65,"encodeObject:forKey:",_maxWidth,_5e); +objj_msgSend(_65,"encodeObject:forKey:",_resizingMask,_5f); +} +})]); +p;13;CPTableView.ji;11;CPControl.ji;15;CPTableColumn.ji;9;CPColor.ji;13;CPTextField.jc;28383; +CPTableViewColumnDidMoveNotification="CPTableViewColumnDidMoveNotification"; +CPTableViewColumnDidResizeNotification="CPTableViewColumnDidResizeNotification"; +CPTableViewSelectionDidChangeNotification="CPTableViewSelectionDidChangeNotification"; +CPTableViewSelectionIsChangingNotification="CPTableViewSelectionIsChangingNotification"; +var _1=1<<0,_2=1<<1,_3=1<<2,_4=1<<3,_5=1<<4,_6=1<<5,_7=1<<6; +var _8=objj_allocateClassPair(CPControl,"CPTableView"),_9=_8.isa; +class_addIvars(_8,[new objj_ivar("_dataSource"),new objj_ivar("_delegate"),new objj_ivar("_tableColumns"),new objj_ivar("_selectedRowIndexes"),new objj_ivar("_rowHeight"),new objj_ivar("_intercellSpacing"),new objj_ivar("_allowsMultipleSelection"),new objj_ivar("_allowsEmptySelection"),new objj_ivar("_delegateSelectorsCache"),new objj_ivar("_numberOfRows"),new objj_ivar("_hasVariableHeightRows"),new objj_ivar("_columnHeight"),new objj_ivar("_rowHeights"),new objj_ivar("_rowMinYs"),new objj_ivar("_tableCells"),new objj_ivar("_tableColumnViews"),new objj_ivar("_dataViewCache"),new objj_ivar("_objectValueCache"),new objj_ivar("_visibleRows"),new objj_ivar("_visibleColumns"),new objj_ivar("_populatedRows"),new objj_ivar("_populatedColumns"),new objj_ivar("_previousSelectedRowIndexes"),new objj_ivar("_selectionStartRow"),new objj_ivar("_selectionModifier"),new objj_ivar("_currentlySelected"),new objj_ivar("_selectionViews"),new objj_ivar("_selectionViewsPool"),new objj_ivar("_scrollTimer")]); +objj_registerClassPair(_8); +objj_addClassForBundle(_8,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_8,[new objj_method(sel_getUid("initWithFrame:"),function(_a,_b,_c){ +with(_a){ +_a=objj_msgSendSuper({receiver:_a,super_class:objj_getClass("CPControl")},"initWithFrame:",_c); +if(_a){ +objj_msgSend(_a,"_init"); +} +return _a; +} +}),new objj_method(sel_getUid("_init"),function(_d,_e){ +with(_d){ +_tableColumns=[]; +_selectedRowIndexes=objj_msgSend(CPIndexSet,"indexSet"); +_rowHeight=17; +_intercellSpacing=CPSizeMake(3,2); +_allowsMultipleSelection=YES; +_allowsEmptySelection=YES; +_tableCells=[]; +_tableColumnViews=[]; +_dataViewCache={}; +_objectValueCache=[]; +_visibleRows=CPMakeRange(0,0); +_visibleColumns=CPMakeRange(0,0); +_rowHeights=[]; +_rowMinYs=[]; +} +}),new objj_method(sel_getUid("_columnHeight"),function(_f,_10){ +with(_f){ +return _columnHeight; +} +}),new objj_method(sel_getUid("newCellForRow:column:avoidingRows:"),function(_11,_12,_13,_14,_15){ +with(_11){ +var _16=objj_msgSend(_tableColumns[_14],"_newDataViewForRow:avoidingRows:",_13,_15); +objj_msgSend(_16,"setFrame:",CGRectMake(0,(_hasVariableHeightRows?_rowMinYs[_13]:(_13*(_rowHeight+_intercellSpacing.height))),objj_msgSend(_tableColumns[_14],"width"),(_hasVariableHeightRows?_rowHeights[_13]:_rowHeight))); +if(objj_msgSend(_16,"respondsToSelector:",sel_getUid("highlight:"))){ +objj_msgSend(_16,"highlight:",objj_msgSend(_selectedRowIndexes,"containsIndex:",_13)); +} +if(!_objectValueCache[_14]){ +_objectValueCache[_14]=[]; +} +if(_objectValueCache[_14][_13]===undefined){ +_objectValueCache[_14][_13]=objj_msgSend(_dataSource,"tableView:objectValueForTableColumn:row:",_11,_tableColumns[_14],_13); +} +objj_msgSend(_16,"setObjectValue:",_objectValueCache[_14][_13]); +return _16; +} +}),new objj_method(sel_getUid("clearCells"),function(_17,_18){ +with(_17){ +var _19=CPMaxRange(_visibleColumns),_1a=CPMaxRange(_visibleRows); +for(var _1b=_visibleColumns.location;_1b<_19;_1b++){ +var _1c=_tableColumns[_1b],_1d=_tableCells[_1b]; +for(var row=_visibleRows.location;row<_1a;row++){ +var _1f=_1d[row]; +if(_1f){ +_1d[row]=nil; +objj_msgSend(_1c,"_markView:inRow:asPurgable:",_1f,row,YES); +}else{ +CPLog.warn("Missing cell? "+row+","+_1b); +} +} +} +_visibleColumns=CPMakeRange(0,0); +_visibleRows=CPMakeRange(0,0); +} +}),new objj_method(sel_getUid("loadTableCellsInRect:"),function(_20,_21,_22){ +with(_20){ +if(!_dataSource){ +return; +} +var _23=MAX(0,objj_msgSend(_20,"_rowAtY:",CGRectGetMinY(_22))-1),_24=MIN(_numberOfRows,objj_msgSend(_20,"_rowAtY:",CGRectGetMaxY(_22))+1),_25=CPMakeRange(_23,_24-_23),_26=MAX(0,objj_msgSend(_20,"_columnAtX:",CGRectGetMinX(_22))),_27=MIN(_tableColumns.length,objj_msgSend(_20,"_columnAtX:",CGRectGetMaxX(_22))+1),_28=CPMakeRange(_26,_27-_26); +if(CPEqualRanges(_visibleRows,_25)&&CPEqualRanges(_visibleColumns,_28)){ +return; +} +var _29=CPUnionRange(_visibleRows,_25),_2a=CPUnionRange(_visibleColumns,_28); +if(_29.length*_2a.length<=(_visibleRows.length*_visibleColumns.length)+(_25.length*_28.length)){ +var _2b=CPMaxRange(_2a),_2c=CPMaxRange(_29),_2d; +for(var _2e=_2a.location;_2e<_2b;++_2e){ +var _2f=_tableColumns[_2e],_30=_tableCells[_2e],_31=CPLocationInRange(_2e,_28),_32=[]; +for(var row=_29.location;row<_2c;++row){ +if(_2d=_30[row]){ +if(!_31||!CPLocationInRange(row,_25)){ +_30[row]=nil; +objj_msgSend(_2f,"_markView:inRow:asPurgable:",_2d,row,YES); +} +}else{ +_32.push(row); +} +} +while(_32.length>0){ +var row=_32.pop(); +_30[row]=objj_msgSend(_20,"newCellForRow:column:avoidingRows:",row,_2e,_25); +if(!_30[row]._superview){ +objj_msgSend(_tableColumnViews[_2e],"addSubview:",_30[row]); +}else{ +if(_30[row]._isHidden){ +objj_msgSend(_30[row],"setHidden:",NO); +} +} +} +objj_msgSend(_2f,"_purge"); +} +}else{ +var _2b=CPMaxRange(_visibleColumns),_2c=CPMaxRange(_visibleRows),_2d; +for(var _2e=_visibleColumns.location;_2e<_2b;++_2e){ +var _2f=_tableColumns[_2e],_30=_tableCells[_2e],_31=CPLocationInRange(_2e,_28); +for(var row=_visibleRows.location;row<_2c;++row){ +if(_2d=_30[row]){ +if(!_31||!CPLocationInRange(row,_25)){ +_30[row]=nil; +objj_msgSend(_2f,"_markView:inRow:asPurgable:",_2d,row,YES); +} +} +} +} +var _2b=CPMaxRange(_28),_2c=CPMaxRange(_25); +for(var _2e=_28.location;_2e<_2b;++_2e){ +var _2f=_tableColumns[_2e],_30=_tableCells[_2e]; +for(var row=_25.location;row<_2c;++row){ +_30[row]=objj_msgSend(_20,"newCellForRow:column:avoidingRows:",row,_2e,_25); +if(!_30[row]._superview){ +objj_msgSend(_tableColumnViews[_2e],"addSubview:",_30[row]); +}else{ +if(_30[row]._isHidden){ +objj_msgSend(_30[row],"setHidden:",NO); +} +} +} +objj_msgSend(_2f,"_purge"); +} +} +_visibleRows=_25; +_visibleColumns=_28; +} +}),new objj_method(sel_getUid("setIntercellSpacing:"),function(_34,_35,_36){ +with(_34){ +if(_intercellSpacing.width!=_36.width){ +var i=1,_38=_36.width-_intercellSpacing.width; +total=_38; +for(;i<_tableColumns.length;++i,total+=_38){ +var _39=objj_msgSend(_tableColumnViews[i],"frame").origin; +objj_msgSend(_tableColumnViews[i],"setFrameOrigin:",CGPointMake(_39.x+total,_39.y)); +} +} +if(_intercellSpacing.height!=_36.height){ +var i=0; +for(;i<_tableColumns.length;++i,total+=_38){ +objj_msgSend(_tableColumnViews[i],"setFrameSize:",CGSizeMake(objj_msgSend(_tableColumnViews[i],"width"),_numberOfRows*(_rowHeight+_intercellSpacing.height))); +var j=1,y=_rowHeight+_intercellSpacing.height; +for(;j<_numberOfRows;++i,y+=_rowHeight+_intercellSpacing.height){ +if(!_tableCells[i][j]){ +continue; +} +objj_msgSend(_tableCells[i][j],"setFrameOrigin:",CPPointMake(0,y)); +} +} +} +_intercellSpacing=CPSizeCreateCopy(_36); +} +}),new objj_method(sel_getUid("intercellSpacing"),function(_3c,_3d){ +with(_3c){ +return _intercellSpacing; +} +}),new objj_method(sel_getUid("setRowHeight:"),function(_3e,_3f,_40){ +with(_3e){ +if(_rowHeight==_40){ +return; +} +_rowHeight=_40; +if(_hasVariableHeightRows){ +return; +} +for(var row=0;row<_numberOfRows;++row){ +for(var _42=0;_42<_tableColumns.length;++_42){ +objj_msgSend(_tableCells[_42][row],"setFrameOrigin:",CPPointMake(0,row*(_rowHeight+_intercellSpacing.height))); +} +} +} +}),new objj_method(sel_getUid("rowHeight"),function(_43,_44){ +with(_43){ +return _rowHeight; +} +}),new objj_method(sel_getUid("addTableColumn:"),function(_45,_46,_47){ +with(_45){ +var i=0,x=_tableColumns.length?CPRectGetMaxX(objj_msgSend(_45,"rectOfColumn:",_tableColumns.length-1))+_intercellSpacing.width:0,_4a=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CPRectMake(x,0,objj_msgSend(_47,"width"),objj_msgSend(_45,"_columnHeight"))),_4b=[]; +objj_msgSend(_tableColumns,"addObject:",_47); +objj_msgSend(_tableColumnViews,"addObject:",_4a); +objj_msgSend(_45,"addSubview:",_4a); +objj_msgSend(_tableCells,"addObject:",_4b); +for(;i<_numberOfRows;++i){ +_tableCells[_tableColumns.length-1][i]=nil; +} +} +}),new objj_method(sel_getUid("removeTableColumn:"),function(_4c,_4d,_4e){ +with(_4c){ +var _4f=objj_msgSend(_4c,"frame"),_50=objj_msgSend(_4e,"width")+_intercellSpacing.width,_51=objj_msgSend(_tableColumns,"indexOfObjectIdenticalTo:",_4e); +objj_msgSend(_tableColumnViews[i],"removeFromSuperview"); +objj_msgSend(_tableCells,"removeObjectAtIndex:",_51); +objj_msgSend(_tableColumns,"removeObjectAtIndex:",_51); +objj_msgSend(_tableColumnViews,"removeObjectAtIndex:",_51); +for(;_51<_tableColumns.length;++_51){ +objj_msgSend(_tableColumnViews[_51],"setFrameOrigin:",CPPointMake(CPRectGetMinX(objj_msgSend(_tableColumnViews[_51],"frame"))-_50,0)); +} +objj_msgSend(_4c,"setFrameSize:",CPSizeMake(CPRectGetWidth(_4f)-_50,CPRectGetHeight(_4f))); +} +}),new objj_method(sel_getUid("moveColumn:toColumn:"),function(_52,_53,_54,_55){ +with(_52){ +if(_54==_55){ +return; +} +} +}),new objj_method(sel_getUid("tableColumns"),function(_56,_57){ +with(_56){ +return _tableColumns; +} +}),new objj_method(sel_getUid("tableColumnWithIdentifier:"),function(_58,_59,_5a){ +with(_58){ +for(var i=0;i<_tableColumns.length;i++){ +if(objj_msgSend(_tableColumns[i],"isEqual:",_5a)){ +return _tableColumns[i]; +} +} +return nil; +} +}),new objj_method(sel_getUid("numberOfColumns"),function(_5c,_5d){ +with(_5c){ +return _tableColumns.length; +} +}),new objj_method(sel_getUid("numberOfRows"),function(_5e,_5f){ +with(_5e){ +return _numberOfRows; +} +}),new objj_method(sel_getUid("tile"),function(_60,_61){ +with(_60){ +var _62=10; +} +}),new objj_method(sel_getUid("setDataSource:"),function(_63,_64,_65){ +with(_63){ +if(!objj_msgSend(_65,"respondsToSelector:",sel_getUid("numberOfRowsInTableView:"))){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Data source doesn't support 'numberOfRowsInTableView:'"); +} +if(!objj_msgSend(_65,"respondsToSelector:",sel_getUid("tableView:objectValueForTableColumn:row:"))){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"Data source doesn't support 'tableView:objectValueForTableColumn:row:'"); +} +_dataSource=_65; +objj_msgSend(_63,"reloadData"); +} +}),new objj_method(sel_getUid("dataSource"),function(_66,_67){ +with(_66){ +return _dataSource; +} +}),new objj_method(sel_getUid("delegate"),function(_68,_69){ +with(_68){ +return _delegate; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_6a,_6b,_6c){ +with(_6a){ +if(_delegate===_6c){ +return; +} +var _6d=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewColumnDidMove:"))){ +objj_msgSend(_6d,"removeObserver:name:object:",_delegate,CPTableViewColumnDidMoveNotification,_6a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewColumnDidResize:"))){ +objj_msgSend(_6d,"removeObserver:name:object:",_delegate,CPTableViewColumnDidResizeNotification,_6a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewSelectionDidChange:"))){ +objj_msgSend(_6d,"removeObserver:name:object:",_delegate,CPTableViewSelectionDidChangeNotification,_6a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewSelectionIsChanging:"))){ +objj_msgSend(_6d,"removeObserver:name:object:",_delegate,CPTableViewSelectionIsChangingNotification,_6a); +} +_delegate=_6c; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewColumnDidMove:"))){ +objj_msgSend(_6d,"addObserver:selector:name:object:",_delegate,sel_getUid("tableViewColumnDidMove:"),CPTableViewColumnDidMoveNotification,_6a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewColumnDidResize:"))){ +objj_msgSend(_6d,"addObserver:selector:name:object:",_delegate,sel_getUid("tableViewColumnDidResize:"),CPTableViewColumnDidResizeNotification,_6a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewSelectionDidChange:"))){ +objj_msgSend(_6d,"addObserver:selector:name:object:",_delegate,sel_getUid("tableViewSelectionDidChange:"),CPTableViewSelectionDidChangeNotification,_6a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableViewSelectionIsChanging:"))){ +objj_msgSend(_6d,"addObserver:selector:name:object:",_delegate,sel_getUid("tableViewSelectionIsChanging:"),CPTableViewSelectionIsChangingNotification,_6a); +} +_delegateSelectorsCache=0; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableView:willDisplayCell:forTableColumn:row:"))){ +_delegateSelectorsCache|=_1; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableView:shouldSelectRow:"))){ +_delegateSelectorsCache|=_2; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableView:shouldSelectTableColumn:"))){ +_delegateSelectorsCache|=_3; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("selectionShouldChangeInTableView:"))){ +_delegateSelectorsCache|=_4; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableView:shouldEditTableColumn:row:"))){ +_delegateSelectorsCache|=_5; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableView:selectionIndexesForProposedSelection:"))){ +_delegateSelectorsCache|=_6; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tableView:heightOfRow:"))){ +_delegateSelectorsCache|=_7; +_hasVariableHeightRows=YES; +}else{ +_hasVariableHeightRows=NO; +} +} +}),new objj_method(sel_getUid("noteNumberOfRowsChanged"),function(_6e,_6f){ +with(_6e){ +var _70=objj_msgSend(_dataSource,"numberOfRowsInTableView:",_6e); +if(_numberOfRows!=_70){ +_numberOfRows=_70; +objj_msgSend(_6e,"_recalculateColumnHeight"); +} +} +}),new objj_method(sel_getUid("noteHeightOfRowsWithIndexesChanged:"),function(_71,_72,_73){ +with(_71){ +objj_msgSend(_71,"_recalculateColumnHeight"); +} +}),new objj_method(sel_getUid("rectOfRow:"),function(_74,_75,_76){ +with(_74){ +return CPRectMake(0,(_hasVariableHeightRows?_rowMinYs[_76]:(_76*(_rowHeight+_intercellSpacing.height))),CPRectGetWidth(objj_msgSend(_74,"bounds")),(_hasVariableHeightRows?_rowHeights[_76]:_rowHeight)); +} +}),new objj_method(sel_getUid("rectOfColumn:"),function(_77,_78,_79){ +with(_77){ +return objj_msgSend(_tableColumnViews[_79],"frame"); +} +}),new objj_method(sel_getUid("sizeToFit"),function(_7a,_7b){ +with(_7a){ +} +}),new objj_method(sel_getUid("_recalculateColumnHeight"),function(_7c,_7d){ +with(_7c){ +var _7e=_columnHeight; +if(_hasVariableHeightRows){ +_rowMinYs[0]=0; +for(var row=0;row<_numberOfRows;row++){ +_rowHeights[row]=objj_msgSend(_delegate,"tableView:heightOfRow:",_7c,row); +_rowMinYs[row+1]=_rowMinYs[row]+_rowHeights[row]+_intercellSpacing.height; +} +_columnHeight=_rowMinYs[_numberOfRows]; +}else{ +_columnHeight=_numberOfRows*(_rowHeight+_intercellSpacing.height); +} +var _80=_tableColumnViews.length; +while(_80--){ +objj_msgSend(_tableColumnViews[_80],"setFrameSize:",CGSizeMake(objj_msgSend(_tableColumns[_80],"width"),_columnHeight)); +} +objj_msgSend(_7c,"setFrameSize:",CGSizeMake(CGRectGetWidth(objj_msgSend(_7c,"frame")),_columnHeight)); +} +}),new objj_method(sel_getUid("visibleRectInParent"),function(_81,_82){ +with(_81){ +var _83=objj_msgSend(_81,"superview"); +if(!_83){ +return objj_msgSend(_81,"bounds"); +} +return objj_msgSend(_81,"convertRect:fromView:",CGRectIntersection(objj_msgSend(_83,"bounds"),objj_msgSend(_81,"frame")),_83); +} +}),new objj_method(sel_getUid("reloadData"),function(_84,_85){ +with(_84){ +var _86=_numberOfRows; +_numberOfRows=objj_msgSend(_dataSource,"numberOfRowsInTableView:",_84); +if(_86!=_numberOfRows){ +objj_msgSend(_84,"_recalculateColumnHeight"); +objj_msgSend(_84,"setFrameSize:",CGSizeMake(CGRectGetWidth(objj_msgSend(_84,"frame")),objj_msgSend(_84,"_columnHeight"))); +} +_objectValueCache=[]; +objj_msgSend(_84,"clearCells"); +objj_msgSend(_84,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_87,_88){ +with(_87){ +objj_msgSend(_87,"loadTableCellsInRect:",objj_msgSend(_87,"visibleRectInParent")); +} +}),new objj_method(sel_getUid("displaySoon"),function(_89,_8a){ +with(_89){ +objj_msgSend(_scrollTimer,"invalidate"); +_scrollTimer=objj_msgSend(CPTimer,"scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:",0.05,_89,sel_getUid("displayNow"),nil,NO); +} +}),new objj_method(sel_getUid("displayNow"),function(_8b,_8c){ +with(_8b){ +objj_msgSend(_8b,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("viewDidMoveToSuperview"),function(_8d,_8e){ +with(_8d){ +objj_msgSend(objj_msgSend(objj_msgSend(_8d,"enclosingScrollView"),"contentView"),"setPostsBoundsChangedNotifications:",YES); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"addObserver:selector:name:object:",_8d,sel_getUid("viewBoundsChanged:"),CPViewBoundsDidChangeNotification,objj_msgSend(objj_msgSend(_8d,"enclosingScrollView"),"contentView")); +} +}),new objj_method(sel_getUid("viewBoundsChanged:"),function(_8f,_90,_91){ +with(_8f){ +objj_msgSend(_8f,"displayNow"); +} +}),new objj_method(sel_getUid("setAllowsMultipleSelection:"),function(_92,_93,_94){ +with(_92){ +if(_allowsMultipleSelection===_94){ +return; +} +_allowsMultipleSelection=_94; +} +}),new objj_method(sel_getUid("allowsMultipleSelection"),function(_95,_96){ +with(_95){ +return _allowsMultipleSelection; +} +}),new objj_method(sel_getUid("setAllowsEmptySelection:"),function(_97,_98,_99){ +with(_97){ +if(_allowsEmptySelection===_99){ +return; +} +_allowsEmptySelection=_99; +} +}),new objj_method(sel_getUid("allowsEmptySelection"),function(_9a,_9b){ +with(_9a){ +return _allowsEmptySelection; +} +}),new objj_method(sel_getUid("rowAtPoint:"),function(_9c,_9d,_9e){ +with(_9c){ +var _9f=objj_msgSend(_9c,"_rowAtY:",_9e.y); +if(_9f>=0&&_9f<_numberOfRows){ +return _9f; +}else{ +return CPNotFound; +} +} +}),new objj_method(sel_getUid("columnAtPoint:"),function(_a0,_a1,_a2){ +with(_a0){ +var _a3=objj_msgSend(_a0,"_columnAtX:",_a2.x); +if(_a3>=0&&_a3<_tableColumns.length){ +return _a3; +}else{ +return CPNotFound; +} +} +}),new objj_method(sel_getUid("_rowAtY:"),function(_a4,_a5,y){ +with(_a4){ +if(_hasVariableHeightRows){ +var a=0,b=_numberOfRows; +if(y<_rowMinYs[0]){ +return -1; +} +if(y>=_rowMinYs[_rowMinYs.length-1]){ +return _numberOfRows; +} +while(true){ +var _a9=a+Math.floor((b-a)/2); +if(y<_rowMinYs[_a9]){ +b=_a9; +}else{ +if(_a9<_numberOfRows-1&&y>=_rowMinYs[_a9+1]){ +a=_a9; +}else{ +return _a9; +} +} +} +}else{ +return FLOOR(y/(_rowHeight+_intercellSpacing.height)); +} +} +}),new objj_method(sel_getUid("_columnAtX:"),function(_aa,_ab,x){ +with(_aa){ +var a=0,b=_tableColumns.length; +var _af=objj_msgSend(_tableColumnViews[_tableColumns.length-1],"frame"); +if(x=_af.origin.x+_af.size.width){ +return _tableColumns.length; +} +while(true){ +var _b0=a+Math.floor((b-a)/2); +if(x=objj_msgSend(_tableColumnViews[_b0+1],"frame").origin.x){ +a=_b0; +}else{ +return _b0; +} +} +} +} +}),new objj_method(sel_getUid("selectRowIndexes:byExtendingSelection:"),function(_b1,_b2,_b3,_b4){ +with(_b1){ +if(_b4){ +_selectedRowIndexes=objj_msgSend(objj_msgSend(_selectedRowIndexes,"copy"),"addIndexes:",_b3); +}else{ +if(objj_msgSend(_b3,"count")>0||_allowsEmptySelection){ +_selectedRowIndexes=objj_msgSend(_b3,"copy"); +} +} +objj_msgSend(_b1,"_drawSelection"); +} +}),new objj_method(sel_getUid("selectedRowIndexes"),function(_b5,_b6){ +with(_b5){ +return _selectedRowIndexes; +} +}),new objj_method(sel_getUid("numberOfSelectedRows"),function(_b7,_b8){ +with(_b7){ +return objj_msgSend(_selectedRowIndexes,"count"); +} +}),new objj_method(sel_getUid("deselectAll:"),function(_b9,_ba,_bb){ +with(_b9){ +if(!_allowsEmptySelection||objj_msgSend(_selectedRowIndexes,"count")===0||((_delegateSelectorsCache&_4)&&!objj_msgSend(_delegate,"selectionShouldChangeInTableView:",_b9))){ +return; +} +objj_msgSend(_b9,"selectRowIndexes:byExtendingSelection:",objj_msgSend(CPIndexSet,"indexSet"),NO); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPTableViewSelectionDidChangeNotification,_b9,nil); +} +}),new objj_method(sel_getUid("editColumn:row:withEvent:select:"),function(_bc,_bd,_be,_bf,_c0,_c1){ +with(_bc){ +} +}),new objj_method(sel_getUid("_updateSelectionWithMouseAtRow:"),function(_c2,_c3,_c4){ +with(_c2){ +var _c5; +if(_allowsMultipleSelection){ +_c5=objj_msgSend(CPIndexSet,"indexSetWithIndexesInRange:",CPMakeRange(MIN(_c4,_selectionStartRow),ABS(_c4-_selectionStartRow)+1)); +}else{ +if(_c4>=0&&_c4<_numberOfRows){ +_c5=objj_msgSend(CPIndexSet,"indexSetWithIndex:",_c4); +}else{ +_c5=objj_msgSend(CPIndexSet,"indexSet"); +} +} +if(_allowsMultipleSelection&&_selectionModifier&(CPCommandKeyMask|CPControlKeyMask|CPAlternateKeyMask)){ +var _c6=objj_msgSend(_c5,"copy"),_c7=objj_msgSend(_c5,"copy"); +objj_msgSend(_c7,"removeIndexes:",_previousSelectedRowIndexes); +objj_msgSend(_c6,"removeIndexes:",_c7); +objj_msgSend(_c5,"addIndexes:",_previousSelectedRowIndexes); +objj_msgSend(_c5,"removeIndexes:",_c6); +} +if(!objj_msgSend(_c5,"isEqualToIndexSet:",_selectedRowIndexes)){ +if((_delegateSelectorsCache&_4)&&!objj_msgSend(_delegate,"selectionShouldChangeInTableView:",_c2)){ +return; +} +if(_delegateSelectorsCache&_6){ +_c5=objj_msgSend(_delegate,"tableView:selectionIndexesForProposedSelection:",_c2,_c5); +}else{ +if(_delegateSelectorsCache&_2){ +var _c8=[]; +objj_msgSend(_c5,"getIndexes:maxCount:inIndexRange:",_c8,Number.MAX_VALUE,nil); +for(var i=0;i<_c8.length;i++){ +if(!objj_msgSend(_delegate,"tableView:shouldSelectRow:",_c2,_c8[i])){ +objj_msgSend(_c5,"removeIndex:",_c8[i]); +} +} +} +} +} +if(!_allowsEmptySelection&&objj_msgSend(_c5,"count")===0){ +return; +} +if(!objj_msgSend(_c5,"isEqualToIndexSet:",_selectedRowIndexes)){ +objj_msgSend(_c2,"selectRowIndexes:byExtendingSelection:",_c5,NO); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPTableViewSelectionIsChangingNotification,_c2,nil); +} +} +}),new objj_method(sel_getUid("mouseDown:"),function(_ca,_cb,_cc){ +with(_ca){ +objj_msgSend(_ca,"trackSelection:",_cc); +} +}),new objj_method(sel_getUid("setDoubleAction:"),function(_cd,_ce,_cf){ +with(_cd){ +_doubleAction=_cf; +} +}),new objj_method(sel_getUid("doubleAction"),function(_d0,_d1){ +with(_d0){ +return _doubleAction; +} +}),new objj_method(sel_getUid("clickedColumn"),function(_d2,_d3){ +with(_d2){ +return _clickedColumn; +} +}),new objj_method(sel_getUid("clickedRow"),function(_d4,_d5){ +with(_d4){ +return _clickedRow; +} +}),new objj_method(sel_getUid("trackSelection:"),function(_d6,_d7,_d8){ +with(_d6){ +var _d9=objj_msgSend(_d8,"type"),_da=objj_msgSend(_d6,"convertPoint:fromView:",objj_msgSend(_d8,"locationInWindow"),nil),_db=MAX(0,MIN(_numberOfRows-1,objj_msgSend(_d6,"_rowAtY:",_da.y))); +if(_d9==CPLeftMouseUp){ +_clickedRow=objj_msgSend(_d6,"rowAtPoint:",_da); +_clickedColumn=objj_msgSend(_d6,"columnAtPoint:",_da); +if(objj_msgSend(_d8,"clickCount")===2){ +CPLog.warn("edit?!"); +objj_msgSend(_d6,"sendAction:to:",_doubleAction,_target); +}else{ +if(!objj_msgSend(_previousSelectedRowIndexes,"isEqualToIndexSet:",_selectedRowIndexes)){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:userInfo:",CPTableViewSelectionDidChangeNotification,_d6,nil); +} +objj_msgSend(_d6,"sendAction:to:",_action,_target); +} +return; +} +if(_d9==CPLeftMouseDown){ +_previousSelectedRowIndexes=_selectedRowIndexes; +_selectionModifier=objj_msgSend(_d8,"modifierFlags"); +if(_selectionModifier&CPShiftKeyMask){ +_selectionStartRow=(ABS(objj_msgSend(_previousSelectedRowIndexes,"firstIndex")-_db)0){ +_e6=_selectionViews[_df.pop()]; +}else{ +if(_selectionViewsPool.length>0){ +_e6=_selectionViewsPool.pop(); +objj_msgSend(_dc,"addSubview:positioned:relativeTo:",_e6,CPWindowBelow,nil); +}else{ +_e6=objj_msgSend(objj_msgSend(CPView,"alloc"),"init"); +objj_msgSend(_e6,"setBackgroundColor:",objj_msgSend(CPColor,"alternateSelectedControlColor")); +objj_msgSend(_dc,"addSubview:positioned:relativeTo:",_e6,CPWindowBelow,nil); +} +} +_selectionViews[_e5]=_e6; +var _e7=objj_msgSend(_dc,"rectOfRow:",_e5); +_e7.size.height+=_intercellSpacing.height-1; +objj_msgSend(_e6,"setFrame:",_e7); +} +for(var i=0;i<_df.length;i++){ +var row=_df[i],_e6=_selectionViews[row]; +objj_msgSend(_e6,"removeFromSuperview"); +_selectionViewsPool.push(_e6); +} +_currentlySelected=objj_msgSend(_selectedRowIndexes,"copy"); +} +})]); +class_addMethods(_9,[new objj_method(sel_getUid("initialize"),function(_e8,_e9){ +with(_e8){ +} +})]); +var _ea="CPTableViewDataSourceKey",_eb="CPTableViewDelegateKey",_ec="CPTableViewHeaderViewKey",_ed="CPTableViewTableColumnsKey",_ee="CPTableViewRowHeightKey",_ef="CPTableViewIntercellSpacingKey",_f0="CPTableViewMultipleSelectionKey",_f1="CPTableViewEmptySelectionKey"; +var _8=objj_getClass("CPTableView"); +if(!_8){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTableView\"")); +} +var _9=_8.isa; +class_addMethods(_8,[new objj_method(sel_getUid("initWithCoder:"),function(_f2,_f3,_f4){ +with(_f2){ +if(_f2=objj_msgSendSuper({receiver:_f2,super_class:objj_getClass("CPControl")},"initWithCoder:",_f4)){ +objj_msgSend(_f2,"_init"); +_dataSource=objj_msgSend(_f4,"decodeObjectForKey:",_ea); +_delegate=objj_msgSend(_f4,"decodeObjectForKey:",_eb); +_rowHeight=objj_msgSend(_f4,"decodeFloatForKey:",_ee); +_intercellSpacing=objj_msgSend(_f4,"decodeSizeForKey:",_ef); +_allowsMultipleSelection=objj_msgSend(_f4,"decodeBoolForKey:",_f0); +_allowsEmptySelection=objj_msgSend(_f4,"decodeBoolForKey:",_f1); +var _f5=objj_msgSend(_f4,"decodeObjectForKey:",_ed); +for(var i=0;i<_f5.length;i++){ +objj_msgSend(_f2,"addTableColumn:",_f5[i]); +} +} +return _f2; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_f7,_f8,_f9){ +with(_f7){ +objj_msgSendSuper({receiver:_f7,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_f9); +objj_msgSend(_f9,"encodeObject:forKey:",_dataSource,_ea); +objj_msgSend(_f9,"encodeObject:forKey:",_delegate,_eb); +objj_msgSend(_f9,"encodeObject:forKey:",_tableColumns,_ed); +objj_msgSend(_f9,"encodeFloat:forKey:",_rowHeight,_ee); +objj_msgSend(_f9,"encodeSize:forKey:",_intercellSpacing,_ef); +objj_msgSend(_f9,"encodeBool:forKey:",_allowsMultipleSelection,_f0); +objj_msgSend(_f9,"encodeBool:forKey:",_allowsEmptySelection,_f1); +} +})]); +var _8=objj_getClass("CPColor"); +if(!_8){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPColor\"")); +} +var _9=_8.isa; +class_addMethods(_9,[new objj_method(sel_getUid("alternateSelectedControlColor"),function(_fa,_fb){ +with(_fa){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[0.22,0.46,0.84,1]); +} +}),new objj_method(sel_getUid("secondarySelectedControlColor"),function(_fc,_fd){ +with(_fc){ +return objj_msgSend(objj_msgSend(CPColor,"alloc"),"_initWithRGBA:",[0.83,0.83,0.83,1]); +} +})]); +p;11;CPTabView.ji;13;CPImageView.ji;15;CPTabViewItem.ji;8;CPView.jc;18589; +CPTopTabsBezelBorder=0; +CPNoTabsBezelBorder=4; +CPNoTabsLineBorder=5; +CPNoTabsNoBorder=6; +var _1=nil,_2=nil,_3=nil,_4=nil,_5=nil; +var _6=7,_7=7; +var _8=1,_9=2,_a=4,_b=8; +var _c=objj_allocateClassPair(CPView,"CPTabView"),_d=_c.isa; +class_addIvars(_c,[new objj_ivar("_labelsView"),new objj_ivar("_backgroundView"),new objj_ivar("_separatorView"),new objj_ivar("_auxiliaryView"),new objj_ivar("_contentView"),new objj_ivar("_tabViewItems"),new objj_ivar("_selectedTabViewItem"),new objj_ivar("_tabViewType"),new objj_ivar("_delegate"),new objj_ivar("_delegateSelectors")]); +objj_registerClassPair(_c); +objj_addClassForBundle(_c,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_c,[new objj_method(sel_getUid("initWithFrame:"),function(_e,_f,_10){ +with(_e){ +_e=objj_msgSendSuper({receiver:_e,super_class:objj_getClass("CPView")},"initWithFrame:",_10); +if(_e){ +_tabViewType=CPTopTabsBezelBorder; +_tabViewItems=[]; +} +return _e; +} +}),new objj_method(sel_getUid("viewDidMoveToWindow"),function(_11,_12){ +with(_11){ +if(_tabViewType!=CPTopTabsBezelBorder||_labelsView){ +return; +} +objj_msgSend(_11,"_createBezelBorder"); +objj_msgSend(_11,"layoutSubviews"); +} +}),new objj_method(sel_getUid("_createBezelBorder"),function(_13,_14){ +with(_13){ +var _15=objj_msgSend(_13,"bounds"); +_labelsView=objj_msgSend(objj_msgSend(_CPTabLabelsView,"alloc"),"initWithFrame:",CGRectMake(0,0,CGRectGetWidth(_15),0)); +objj_msgSend(_labelsView,"setTabView:",_13); +objj_msgSend(_labelsView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_13,"addSubview:",_labelsView); +_backgroundView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_backgroundView,"setBackgroundColor:",_5); +objj_msgSend(_backgroundView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +objj_msgSend(_13,"addSubview:",_backgroundView); +_separatorView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_separatorView,"setBackgroundColor:",objj_msgSend(objj_msgSend(_13,"class"),"bezelBorderColor")); +objj_msgSend(_separatorView,"setAutoresizingMask:",CPViewWidthSizable|CPViewMaxYMargin); +objj_msgSend(_13,"addSubview:",_separatorView); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_16,_17){ +with(_16){ +if(_tabViewType==CPTopTabsBezelBorder){ +var _18=objj_msgSend(_16,"bounds"),_19=objj_msgSend(_CPTabLabelsView,"height"); +_18.origin.y+=_19; +_18.size.height-=_19; +objj_msgSend(_backgroundView,"setFrame:",_18); +var _1a=5; +if(_auxiliaryView){ +_1a=CGRectGetHeight(objj_msgSend(_auxiliaryView,"frame")); +objj_msgSend(_auxiliaryView,"setFrame:",CGRectMake(_6,_19,CGRectGetWidth(_18)-_6-_7,_1a)); +} +objj_msgSend(_separatorView,"setFrame:",CGRectMake(_6,_19+_1a,CGRectGetWidth(_18)-_6-_7,1)); +} +objj_msgSend(_contentView,"setFrame:",objj_msgSend(_16,"contentRect")); +} +}),new objj_method(sel_getUid("addTabViewItem:"),function(_1b,_1c,_1d){ +with(_1b){ +objj_msgSend(_1b,"insertTabViewItem:atIndex:",_1d,objj_msgSend(_tabViewItems,"count")); +} +}),new objj_method(sel_getUid("insertTabViewItem:atIndex:"),function(_1e,_1f,_20,_21){ +with(_1e){ +if(!_labelsView&&_tabViewType==CPTopTabsBezelBorder){ +objj_msgSend(_1e,"_createBezelBorder"); +} +objj_msgSend(_tabViewItems,"insertObject:atIndex:",_20,_21); +objj_msgSend(_labelsView,"tabView:didAddTabViewItem:",_1e,_20); +if(objj_msgSend(_tabViewItems,"count")==1){ +objj_msgSend(_1e,"selectFirstTabViewItem:",_1e); +} +if(_delegateSelectors&_b){ +objj_msgSend(_delegate,"tabViewDidChangeNumberOfTabViewItems:",_1e); +} +} +}),new objj_method(sel_getUid("removeTabViewItem:"),function(_22,_23,_24){ +with(_22){ +objj_msgSend(_tabViewItems,"removeObjectIdenticalTo:",_24); +objj_msgSend(_labelsView,"tabView:didRemoveTabViewItem:",_22,_24); +if(_delegateSelectors&_b){ +objj_msgSend(_delegate,"tabViewDidChangeNumberOfTabViewItems:",_22); +} +} +}),new objj_method(sel_getUid("indexOfTabViewItem:"),function(_25,_26,_27){ +with(_25){ +return objj_msgSend(_tabViewItems,"indexOfObjectIdenticalTo:",_27); +} +}),new objj_method(sel_getUid("indexOfTabViewItemWithIdentifier:"),function(_28,_29,_2a){ +with(_28){ +var _2b=0,_2c=objj_msgSend(_tabViewItems,"count"); +for(;_2b<_2c;++_2b){ +if(objj_msgSend(objj_msgSend(_tabViewItems[_2b],"identifier"),"isEqual:",_2a)){ +return _2b; +} +} +return _2b; +} +}),new objj_method(sel_getUid("numberOfTabViewItems"),function(_2d,_2e){ +with(_2d){ +return objj_msgSend(_tabViewItems,"count"); +} +}),new objj_method(sel_getUid("tabViewItemAtIndex:"),function(_2f,_30,_31){ +with(_2f){ +return _tabViewItems[_31]; +} +}),new objj_method(sel_getUid("tabViewItems"),function(_32,_33){ +with(_32){ +return _tabViewItems; +} +}),new objj_method(sel_getUid("selectFirstTabViewItem:"),function(_34,_35,_36){ +with(_34){ +var _37=objj_msgSend(_tabViewItems,"count"); +if(_37){ +objj_msgSend(_34,"selectTabViewItemAtIndex:",0); +} +} +}),new objj_method(sel_getUid("selectLastTabViewItem:"),function(_38,_39,_3a){ +with(_38){ +var _3b=objj_msgSend(_tabViewItems,"count"); +if(_3b){ +objj_msgSend(_38,"selectTabViewItemAtIndex:",_3b-1); +} +} +}),new objj_method(sel_getUid("selectNextTabViewItem:"),function(_3c,_3d,_3e){ +with(_3c){ +if(!_selectedTabViewItem){ +return; +} +var _3f=objj_msgSend(_3c,"indexOfTabViewItem:",_selectedTabViewItem),_40=objj_msgSend(_tabViewItems,"count"); +objj_msgSend(_3c,"selectTabViewItemAtIndex:",_3f+1%_40); +} +}),new objj_method(sel_getUid("selectPreviousTabViewItem:"),function(_41,_42,_43){ +with(_41){ +if(!_selectedTabViewItem){ +return; +} +var _44=objj_msgSend(_41,"indexOfTabViewItem:",_selectedTabViewItem),_45=objj_msgSend(_tabViewItems,"count"); +objj_msgSend(_41,"selectTabViewItemAtIndex:",_44==0?_45:_44-1); +} +}),new objj_method(sel_getUid("selectTabViewItem:"),function(_46,_47,_48){ +with(_46){ +if((_delegateSelectors&_9)&&!objj_msgSend(_delegate,"tabView:shouldSelectTabViewItem:",_46,_48)){ +return; +} +if(_delegateSelectors&_a){ +objj_msgSend(_delegate,"tabView:willSelectTabViewItem:",_46,_48); +} +if(_selectedTabViewItem){ +_selectedTabViewItem._tabState=CPBackgroundTab; +objj_msgSend(_labelsView,"tabView:didChangeStateOfTabViewItem:",_46,_selectedTabViewItem); +objj_msgSend(_contentView,"removeFromSuperview"); +objj_msgSend(_auxiliaryView,"removeFromSuperview"); +} +_selectedTabViewItem=_48; +_selectedTabViewItem._tabState=CPSelectedTab; +_contentView=objj_msgSend(_selectedTabViewItem,"view"); +objj_msgSend(_contentView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +_auxiliaryView=objj_msgSend(_selectedTabViewItem,"auxiliaryView"); +objj_msgSend(_auxiliaryView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_46,"addSubview:",_contentView); +if(_auxiliaryView){ +objj_msgSend(_46,"addSubview:",_auxiliaryView); +} +objj_msgSend(_labelsView,"tabView:didChangeStateOfTabViewItem:",_46,_selectedTabViewItem); +objj_msgSend(_46,"layoutSubviews"); +if(_delegateSelectors&_8){ +objj_msgSend(_delegate,"tabView:didSelectTabViewItem:",_46,_48); +} +} +}),new objj_method(sel_getUid("selectTabViewItemAtIndex:"),function(_49,_4a,_4b){ +with(_49){ +objj_msgSend(_49,"selectTabViewItem:",_tabViewItems[_4b]); +} +}),new objj_method(sel_getUid("selectedTabViewItem"),function(_4c,_4d){ +with(_4c){ +return _selectedTabViewItem; +} +}),new objj_method(sel_getUid("setTabViewType:"),function(_4e,_4f,_50){ +with(_4e){ +if(_tabViewType==_50){ +return; +} +_tabViewType=_50; +if(_tabViewType==CPNoTabsBezelBorder||_tabViewType==CPNoTabsLineBorder||_tabViewType==CPNoTabsNoBorder){ +objj_msgSend(_labelsView,"removeFromSuperview"); +}else{ +if(!objj_msgSend(_labelsView,"superview")){ +objj_msgSend(_4e,"addSubview:",_labelsView); +} +} +if(_tabViewType==CPNoTabsLineBorder||_tabViewType==CPNoTabsNoBorder){ +objj_msgSend(_backgroundView,"removeFromSuperview"); +}else{ +if(!objj_msgSend(_backgroundView,"superview")){ +objj_msgSend(_4e,"addSubview:",_backgroundView); +} +} +objj_msgSend(_4e,"layoutSubviews"); +} +}),new objj_method(sel_getUid("tabViewType"),function(_51,_52){ +with(_51){ +return _tabViewType; +} +}),new objj_method(sel_getUid("contentRect"),function(_53,_54){ +with(_53){ +var _55=CGRectMakeCopy(objj_msgSend(_53,"bounds")); +if(_tabViewType==CPTopTabsBezelBorder){ +var _56=objj_msgSend(_CPTabLabelsView,"height"),_57=_auxiliaryView?CGRectGetHeight(objj_msgSend(_auxiliaryView,"frame")):5,_58=1; +_55.origin.y+=_56+_57+_58; +_55.size.height-=_56+_57+_58*2; +_55.origin.x+=_6; +_55.size.width-=_6+_7; +} +return _55; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_59,_5a,_5b){ +with(_59){ +if(_delegate==_5b){ +return; +} +_delegate=_5b; +_delegateSelectors=0; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tabView:shouldSelectTabViewItem:"))){ +_delegateSelectors|=_9; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tabView:willSelectTabViewItem:"))){ +_delegateSelectors|=_a; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tabView:didSelectTabViewItem:"))){ +_delegateSelectors|=_8; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("tabViewDidChangeNumberOfTabViewItems:"))){ +_delegateSelectors|=_b; +} +} +}),new objj_method(sel_getUid("mouseDown:"),function(_5c,_5d,_5e){ +with(_5c){ +var _5f=objj_msgSend(_labelsView,"convertPoint:fromView:",objj_msgSend(_5e,"locationInWindow"),nil),_60=objj_msgSend(_labelsView,"representedTabViewItemAtPoint:",_5f); +if(_60){ +objj_msgSend(_5c,"selectTabViewItem:",_60); +} +} +})]); +class_addMethods(_d,[new objj_method(sel_getUid("initialize"),function(_61,_62){ +with(_61){ +if(_61!=CPTabView){ +return; +} +var _63=objj_msgSend(CPBundle,"bundleForClass:",_61),_64=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initByReferencingFile:size:","",CGSizeMake(7,0)),_65=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_63,"pathForResource:","CPTabView/CPTabViewBezelBackgroundCenter.png"),CGSizeMake(1,1)),_66=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_63,"pathForResource:","CPTabView/CPTabViewBezelBorderLeft.png"),CGSizeMake(7,1)),_67=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_63,"pathForResource:","CPTabView/CPTabViewBezelBorder.png"),CGSizeMake(1,1)),_68=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_63,"pathForResource:","CPTabView/CPTabViewBezelBorderRight.png"),CGSizeMake(7,1)); +_5=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[_64,_64,_64,_66,_65,_68,_66,_67,_68])); +_4=objj_msgSend(CPColor,"colorWithPatternImage:",_67); +} +}),new objj_method(sel_getUid("bezelBorderColor"),function(_69,_6a){ +with(_69){ +return _4; +} +})]); +var _6b="CPTabViewItemsKey",_6c="CPTabViewSelectedItemKey",_6d="CPTabViewTypeKey",_6e="CPTabViewDelegateKey"; +var _c=objj_getClass("CPTabView"); +if(!_c){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTabView\"")); +} +var _d=_c.isa; +class_addMethods(_c,[new objj_method(sel_getUid("initWithCoder:"),function(_6f,_70,_71){ +with(_6f){ +if(_6f=objj_msgSendSuper({receiver:_6f,super_class:objj_getClass("CPView")},"initWithCoder:",_71)){ +_tabViewType=objj_msgSend(_71,"decodeIntForKey:",_6d); +_tabViewItems=[]; +objj_msgSend(_6f,"_createBezelBorder"); +var _72=objj_msgSend(_71,"decodeObjectForKey:",_6b); +for(var i=0;_72&&i<_72.length;i++){ +objj_msgSend(_6f,"insertTabViewItem:atIndex:",_72[i],i); +} +var _74=objj_msgSend(_71,"decodeObjectForKey:",_6c); +if(_74){ +objj_msgSend(_6f,"selectTabViewItem:",_74); +} +objj_msgSend(_6f,"setDelegate:",objj_msgSend(_71,"decodeObjectForKey:",_6e)); +} +return _6f; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_75,_76,_77){ +with(_75){ +var _78=_subviews; +_subviews=[]; +objj_msgSendSuper({receiver:_75,super_class:objj_getClass("CPView")},"encodeWithCoder:",_77); +_subviews=_78; +objj_msgSend(_77,"encodeObject:forKey:",_tabViewItems,_6b); +objj_msgSend(_77,"encodeObject:forKey:",_selectedTabViewItem,_6c); +objj_msgSend(_77,"encodeInt:forKey:",_tabViewType,_6d); +objj_msgSend(_77,"encodeConditionalObject:forKey:",_delegate,_6e); +} +})]); +var _79=nil,_7a=10,_7b=15; +var _c=objj_allocateClassPair(CPView,"_CPTabLabelsView"),_d=_c.isa; +class_addIvars(_c,[new objj_ivar("_tabView"),new objj_ivar("_tabLabels")]); +objj_registerClassPair(_c); +objj_addClassForBundle(_c,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_c,[new objj_method(sel_getUid("initWithFrame:"),function(_7c,_7d,_7e){ +with(_7c){ +_7c=objj_msgSendSuper({receiver:_7c,super_class:objj_getClass("CPView")},"initWithFrame:",_7e); +if(_7c){ +_tabLabels=[]; +objj_msgSend(_7c,"setBackgroundColor:",_79); +objj_msgSend(_7c,"setFrameSize:",CGSizeMake(CGRectGetWidth(_7e),26)); +} +return _7c; +} +}),new objj_method(sel_getUid("setTabView:"),function(_7f,_80,_81){ +with(_7f){ +_tabView=_81; +} +}),new objj_method(sel_getUid("tabView"),function(_82,_83){ +with(_82){ +return _tabView; +} +}),new objj_method(sel_getUid("tabView:didAddTabViewItem:"),function(_84,_85,_86,_87){ +with(_84){ +var _88=objj_msgSend(objj_msgSend(_CPTabLabel,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_88,"setTabViewItem:",_87); +_tabLabels.push(_88); +objj_msgSend(_84,"addSubview:",_88); +objj_msgSend(_84,"layoutSubviews"); +} +}),new objj_method(sel_getUid("tabView:didRemoveTabViewItem:"),function(_89,_8a,_8b,_8c){ +with(_89){ +var _8d=objj_msgSend(_8b,"indexOfTabViewItem:",_8c),_8e=_tabLabels[_8d]; +objj_msgSend(_tabLabels,"removeObjectAtIndex:",_8d); +objj_msgSend(_8e,"removeFromSuperview"); +objj_msgSend(_89,"layoutSubviews"); +} +}),new objj_method(sel_getUid("tabView:didChangeStateOfTabViewItem:"),function(_8f,_90,_91,_92){ +with(_8f){ +objj_msgSend(_tabLabels[objj_msgSend(_91,"indexOfTabViewItem:",_92)],"setTabState:",objj_msgSend(_92,"tabState")); +} +}),new objj_method(sel_getUid("representedTabViewItemAtPoint:"),function(_93,_94,_95){ +with(_93){ +var _96=0,_97=_tabLabels.length; +for(;_96<_97;++_96){ +var _98=_tabLabels[_96]; +if(CGRectContainsPoint(objj_msgSend(_98,"frame"),_95)){ +return objj_msgSend(_98,"tabViewItem"); +} +} +return nil; +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_99,_9a){ +with(_99){ +var _9b=0,_9c=_tabLabels.length,_9d=((objj_msgSend(_99,"bounds").size.width)-(_9c-1)*_7a-2*_7b)/_9c,x=_7b; +for(;_9b<_9c;++_9b){ +var _9f=_tabLabels[_9b],_a0={origin:{x:x,y:8},size:{width:_9d,height:18}}; +objj_msgSend(_9f,"setFrame:",_a0); +x=(_a0.origin.x+_a0.size.width)+_7a; +} +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_a1,_a2,_a3){ +with(_a1){ +if(CGSizeEqualToSize(objj_msgSend(_a1,"frame").size,_a3)){ +return; +} +objj_msgSendSuper({receiver:_a1,super_class:objj_getClass("CPView")},"setFrameSize:",_a3); +objj_msgSend(_a1,"layoutSubviews"); +} +})]); +class_addMethods(_d,[new objj_method(sel_getUid("initialize"),function(_a4,_a5){ +with(_a4){ +if(_a4!=objj_msgSend(_CPTabLabelsView,"class")){ +return; +} +var _a6=objj_msgSend(CPBundle,"bundleForClass:",_a4); +_79=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPThreePartImage,"alloc"),"initWithImageSlices:isVertical:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_a6,"pathForResource:","CPTabView/_CPTabLabelsViewLeft.png"),CGSizeMake(12,26)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_a6,"pathForResource:","CPTabView/_CPTabLabelsViewCenter.png"),CGSizeMake(1,26)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_a6,"pathForResource:","CPTabView/_CPTabLabelsViewRight.png"),CGSizeMake(12,26))],NO)); +} +}),new objj_method(sel_getUid("height"),function(_a7,_a8){ +with(_a7){ +return 26; +} +})]); +var _a9=nil,_aa=nil; +var _c=objj_allocateClassPair(CPView,"_CPTabLabel"),_d=_c.isa; +class_addIvars(_c,[new objj_ivar("_tabViewItem"),new objj_ivar("_labelField")]); +objj_registerClassPair(_c); +objj_addClassForBundle(_c,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_c,[new objj_method(sel_getUid("initWithFrame:"),function(_ab,_ac,_ad){ +with(_ab){ +_ab=objj_msgSendSuper({receiver:_ab,super_class:objj_getClass("CPView")},"initWithFrame:",_ad); +if(_ab){ +_labelField=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CGRectMakeZero()); +objj_msgSend(_labelField,"setAlignment:",CPCenterTextAlignment); +objj_msgSend(_labelField,"setFrame:",CGRectMake(5,0,CGRectGetWidth(_ad)-10,20)); +objj_msgSend(_labelField,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_labelField,"setFont:",objj_msgSend(CPFont,"boldSystemFontOfSize:",11)); +objj_msgSend(_ab,"addSubview:",_labelField); +objj_msgSend(_ab,"setTabState:",CPBackgroundTab); +} +return _ab; +} +}),new objj_method(sel_getUid("setTabState:"),function(_ae,_af,_b0){ +with(_ae){ +objj_msgSend(_ae,"setBackgroundColor:",_b0==CPSelectedTab?_aa:_a9); +} +}),new objj_method(sel_getUid("setTabViewItem:"),function(_b1,_b2,_b3){ +with(_b1){ +_tabViewItem=_b3; +objj_msgSend(_b1,"update"); +} +}),new objj_method(sel_getUid("tabViewItem"),function(_b4,_b5){ +with(_b4){ +return _tabViewItem; +} +}),new objj_method(sel_getUid("update"),function(_b6,_b7){ +with(_b6){ +objj_msgSend(_labelField,"setStringValue:",objj_msgSend(_tabViewItem,"label")); +} +})]); +class_addMethods(_d,[new objj_method(sel_getUid("initialize"),function(_b8,_b9){ +with(_b8){ +if(_b8!=objj_msgSend(_CPTabLabel,"class")){ +return; +} +var _ba=objj_msgSend(CPBundle,"bundleForClass:",_b8); +_a9=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPThreePartImage,"alloc"),"initWithImageSlices:isVertical:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ba,"pathForResource:","CPTabView/_CPTabLabelBackgroundLeft.png"),CGSizeMake(6,18)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ba,"pathForResource:","CPTabView/_CPTabLabelBackgroundCenter.png"),CGSizeMake(1,18)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ba,"pathForResource:","CPTabView/_CPTabLabelBackgroundRight.png"),CGSizeMake(6,18))],NO)); +_aa=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPThreePartImage,"alloc"),"initWithImageSlices:isVertical:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ba,"pathForResource:","CPTabView/_CPTabLabelSelectedLeft.png"),CGSizeMake(3,18)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ba,"pathForResource:","CPTabView/_CPTabLabelSelectedCenter.png"),CGSizeMake(1,18)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_ba,"pathForResource:","CPTabView/_CPTabLabelSelectedRight.png"),CGSizeMake(3,18))],NO)); +} +})]); +p;15;CPTabViewItem.jI;21;Foundation/CPObject.jI;15;AppKit/CPView.jc;2568; +CPSelectedTab=0; +CPBackgroundTab=1; +CPPressedTab=2; +var _1=objj_allocateClassPair(CPObject,"CPTabViewItem"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_identifier"),new objj_ivar("_label"),new objj_ivar("_view"),new objj_ivar("_auxiliaryView")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithIdentifier:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_identifier=_5; +} +return _3; +} +}),new objj_method(sel_getUid("setLabel:"),function(_6,_7,_8){ +with(_6){ +_label=_8; +} +}),new objj_method(sel_getUid("label"),function(_9,_a){ +with(_9){ +return _label; +} +}),new objj_method(sel_getUid("tabState"),function(_b,_c){ +with(_b){ +return _tabState; +} +}),new objj_method(sel_getUid("setIdentifier:"),function(_d,_e,_f){ +with(_d){ +_identifier=_f; +} +}),new objj_method(sel_getUid("identifier"),function(_10,_11){ +with(_10){ +return _identifier; +} +}),new objj_method(sel_getUid("setView:"),function(_12,_13,_14){ +with(_12){ +_view=_14; +} +}),new objj_method(sel_getUid("view"),function(_15,_16){ +with(_15){ +return _view; +} +}),new objj_method(sel_getUid("setAuxiliaryView:"),function(_17,_18,_19){ +with(_17){ +_auxiliaryView=_19; +} +}),new objj_method(sel_getUid("auxiliaryView"),function(_1a,_1b){ +with(_1a){ +return _auxiliaryView; +} +}),new objj_method(sel_getUid("tabView"),function(_1c,_1d){ +with(_1c){ +return _tabView; +} +})]); +var _1e="CPTabViewItemIdentifierKey",_1f="CPTabViewItemLabelKey",_20="CPTabViewItemViewKey",_21="CPTabViewItemAuxViewKey"; +var _1=objj_getClass("CPTabViewItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTabViewItem\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_22,_23,_24){ +with(_22){ +_22=objj_msgSendSuper({receiver:_22,super_class:objj_getClass("CPObject")},"init"); +if(_22){ +_identifier=objj_msgSend(_24,"decodeObjectForKey:",_1e); +_label=objj_msgSend(_24,"decodeObjectForKey:",_1f); +_view=objj_msgSend(_24,"decodeObjectForKey:",_20); +_auxiliaryView=objj_msgSend(_24,"decodeObjectForKey:",_21); +} +return _22; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_25,_26,_27){ +with(_25){ +objj_msgSend(_27,"encodeObject:forKey:",_identifier,_1e); +objj_msgSend(_27,"encodeObject:forKey:",_label,_1f); +objj_msgSend(_27,"encodeObject:forKey:",_view,_20); +objj_msgSend(_27,"encodeObject:forKey:",_auxiliaryView,_21); +} +})]); +p;13;CPTextField.ji;11;CPControl.ji;17;CPStringDrawing.ji;17;CPCompatibility.jc;16064; +CPLineBreakByWordWrapping=0; +CPLineBreakByCharWrapping=1; +CPLineBreakByClipping=2; +CPLineBreakByTruncatingHead=3; +CPLineBreakByTruncatingTail=4; +CPLineBreakByTruncatingMiddle=5; +CPTextFieldSquareBezel=0; +CPTextFieldRoundedBezel=1; +var _1="•"; +var _2=objj_getClass("CPString"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPString\"")); +} +var _3=_2.isa; +class_addMethods(_2,[new objj_method(sel_getUid("string"),function(_4,_5){ +with(_4){ +return _4; +} +})]); +CPTextFieldStateRounded=CPThemeState("rounded"); +CPTextFieldStatePlaceholder=CPThemeState("placeholder"); +var _2=objj_allocateClassPair(CPControl,"CPTextField"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_isEditable"),new objj_ivar("_isSelectable"),new objj_ivar("_isSecure"),new objj_ivar("_drawsBackground"),new objj_ivar("_textFieldBackgroundColor"),new objj_ivar("_placeholderString"),new objj_ivar("_delegate"),new objj_ivar("_textDidChangeValue"),new objj_ivar("_bezelStyle"),new objj_ivar("_isBordered"),new objj_ivar("_controlSize")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithFrame:"),function(_6,_7,_8){ +with(_6){ +_6=objj_msgSendSuper({receiver:_6,super_class:objj_getClass("CPControl")},"initWithFrame:",_8); +if(_6){ +objj_msgSend(_6,"setStringValue:",""); +objj_msgSend(_6,"setPlaceholderString:",""); +_sendActionOn=CPKeyUpMask|CPKeyDownMask; +objj_msgSend(_6,"setValue:forThemeAttribute:",CPLeftTextAlignment,"alignment"); +} +return _6; +} +}),new objj_method(sel_getUid("setEditable:"),function(_9,_a,_b){ +with(_9){ +_isEditable=_b; +} +}),new objj_method(sel_getUid("isEditable"),function(_c,_d){ +with(_c){ +return _isEditable; +} +}),new objj_method(sel_getUid("setSelectable:"),function(_e,_f,_10){ +with(_e){ +_isSelectable=_10; +} +}),new objj_method(sel_getUid("isSelectable"),function(_11,_12){ +with(_11){ +return _isSelectable; +} +}),new objj_method(sel_getUid("setSecure:"),function(_13,_14,_15){ +with(_13){ +_isSecure=_15; +} +}),new objj_method(sel_getUid("isSecure"),function(_16,_17){ +with(_16){ +return _isSecure; +} +}),new objj_method(sel_getUid("setBezeled:"),function(_18,_19,_1a){ +with(_18){ +if(_1a){ +objj_msgSend(_18,"setThemeState:",CPThemeStateBezeled); +}else{ +objj_msgSend(_18,"unsetThemeState:",CPThemeStateBezeled); +} +} +}),new objj_method(sel_getUid("isBezeled"),function(_1b,_1c){ +with(_1b){ +return objj_msgSend(_1b,"hasThemeState:",CPThemeStateBezeled); +} +}),new objj_method(sel_getUid("setBezelStyle:"),function(_1d,_1e,_1f){ +with(_1d){ +var _20=_1f===CPTextFieldRoundedBezel; +if(_20){ +objj_msgSend(_1d,"setThemeState:",CPTextFieldStateRounded); +}else{ +objj_msgSend(_1d,"unsetThemeState:",CPTextFieldStateRounded); +} +} +}),new objj_method(sel_getUid("bezelStyle"),function(_21,_22){ +with(_21){ +if(objj_msgSend(_21,"hasThemeState:",CPTextFieldStateRounded)){ +return CPTextFieldRoundedBezel; +} +return CPTextFieldSquareBezel; +} +}),new objj_method(sel_getUid("setBordered:"),function(_23,_24,_25){ +with(_23){ +if(_25){ +objj_msgSend(_23,"setThemeState:",CPThemeStateBordered); +}else{ +objj_msgSend(_23,"unsetThemeState:",CPThemeStateBordered); +} +} +}),new objj_method(sel_getUid("isBordered"),function(_26,_27){ +with(_26){ +return objj_msgSend(_26,"hasThemeState:",CPThemeStateBordered); +} +}),new objj_method(sel_getUid("setDrawsBackground:"),function(_28,_29,_2a){ +with(_28){ +if(_drawsBackground==_2a){ +return; +} +_drawsBackground=_2a; +objj_msgSend(_28,"setNeedsLayout"); +objj_msgSend(_28,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("drawsBackground"),function(_2b,_2c){ +with(_2b){ +return _drawsBackground; +} +}),new objj_method(sel_getUid("setTextFieldBackgroundColor:"),function(_2d,_2e,_2f){ +with(_2d){ +if(_textFieldBackgroundColor==_2f){ +return; +} +_textFieldBackgroundColor=_2f; +objj_msgSend(_2d,"setNeedsLayout"); +objj_msgSend(_2d,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("textFieldBackgroundColor"),function(_30,_31){ +with(_30){ +return _textFieldBackgroundColor; +} +}),new objj_method(sel_getUid("acceptsFirstResponder"),function(_32,_33){ +with(_32){ +return objj_msgSend(_32,"isEditable")&&objj_msgSend(_32,"isEnabled"); +} +}),new objj_method(sel_getUid("becomeFirstResponder"),function(_34,_35){ +with(_34){ +if(CPTextFieldInputOwner&&objj_msgSend(CPTextFieldInputOwner,"window")!==objj_msgSend(_34,"window")){ +objj_msgSend(objj_msgSend(CPTextFieldInputOwner,"window"),"makeFirstResponder:",nil); +} +objj_msgSend(_34,"setThemeState:",CPThemeStateEditing); +objj_msgSend(_34,"_updatePlaceholderState"); +objj_msgSend(_34,"setNeedsLayout"); +return YES; +} +}),new objj_method(sel_getUid("resignFirstResponder"),function(_36,_37){ +with(_36){ +objj_msgSend(_36,"unsetThemeState:",CPThemeStateEditing); +objj_msgSend(_36,"_updatePlaceholderState"); +objj_msgSend(_36,"setNeedsLayout"); +objj_msgSend(_36,"textDidEndEditing:",objj_msgSend(CPNotification,"notificationWithName:object:userInfo:",CPControlTextDidBeginEditingNotification,_36,nil)); +return YES; +} +}),new objj_method(sel_getUid("mouseDown:"),function(_38,_39,_3a){ +with(_38){ +if(objj_msgSend(_38,"isEditable")&&objj_msgSend(_38,"isEnabled")){ +return objj_msgSend(objj_msgSend(_38,"window"),"makeFirstResponder:",_38); +}else{ +return objj_msgSend(objj_msgSend(_38,"nextResponder"),"mouseDown:",_3a); +} +} +}),new objj_method(sel_getUid("objectValue"),function(_3b,_3c){ +with(_3b){ +return objj_msgSendSuper({receiver:_3b,super_class:objj_getClass("CPControl")},"objectValue"); +} +}),new objj_method(sel_getUid("setObjectValue:"),function(_3d,_3e,_3f){ +with(_3d){ +objj_msgSendSuper({receiver:_3d,super_class:objj_getClass("CPControl")},"setObjectValue:",_3f); +objj_msgSend(_3d,"_updatePlaceholderState"); +} +}),new objj_method(sel_getUid("_updatePlaceholderState"),function(_40,_41){ +with(_40){ +var _42=objj_msgSend(_40,"stringValue"); +if((!_42||objj_msgSend(_42,"length")===0)&&!objj_msgSend(_40,"hasThemeState:",CPThemeStateEditing)){ +objj_msgSend(_40,"setThemeState:",CPTextFieldStatePlaceholder); +}else{ +objj_msgSend(_40,"unsetThemeState:",CPTextFieldStatePlaceholder); +} +} +}),new objj_method(sel_getUid("setPlaceholderString:"),function(_43,_44,_45){ +with(_43){ +if(_placeholderString===_45){ +return; +} +_placeholderString=_45; +if(objj_msgSend(_43,"hasThemeState:",CPTextFieldStatePlaceholder)){ +objj_msgSend(_43,"setNeedsLayout"); +objj_msgSend(_43,"setNeedsDisplay:",YES); +} +} +}),new objj_method(sel_getUid("placeholderString"),function(_46,_47){ +with(_46){ +return _placeholderString; +} +}),new objj_method(sel_getUid("sizeToFit"),function(_48,_49){ +with(_48){ +var _4a=objj_msgSend((objj_msgSend(_48,"stringValue")||" "),"sizeWithFont:",objj_msgSend(_48,"currentValueForThemeAttribute:","font")),_4b=objj_msgSend(_48,"currentValueForThemeAttribute:","content-inset"),_4c=objj_msgSend(_48,"currentValueForThemeAttribute:","min-size"),_4d=objj_msgSend(_48,"currentValueForThemeAttribute:","max-size"); +_4a.width=MAX(_4a.width+_4b.left+_4b.right,_4c.width); +_4a.height=MAX(_4a.height+_4b.top+_4b.bottom,_4c.height); +if(_4d.width>=0){ +_4a.width=MIN(_4a.width,_4d.width); +} +if(_4d.height>=0){ +_4a.height=MIN(_4a.height,_4d.height); +} +if(objj_msgSend(_48,"isEditable")){ +_4a.width=CGRectGetWidth(objj_msgSend(_48,"frame")); +} +objj_msgSend(_48,"setFrameSize:",_4a); +} +}),new objj_method(sel_getUid("selectText:"),function(_4e,_4f,_50){ +with(_4e){ +} +}),new objj_method(sel_getUid("setDelegate:"),function(_51,_52,_53){ +with(_51){ +var _54=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(_delegate){ +objj_msgSend(_54,"removeObserver:name:object:",_delegate,CPControlTextDidBeginEditingNotification,_51); +objj_msgSend(_54,"removeObserver:name:object:",_delegate,CPControlTextDidChangeNotification,_51); +objj_msgSend(_54,"removeObserver:name:object:",_delegate,CPControlTextDidEndEditingNotification,_51); +} +_delegate=_53; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("controlTextDidBeginEditing:"))){ +objj_msgSend(_54,"addObserver:selector:name:object:",_delegate,sel_getUid("controlTextDidBeginEditing:"),CPControlTextDidBeginEditingNotification,_51); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("controlTextDidChange:"))){ +objj_msgSend(_54,"addObserver:selector:name:object:",_delegate,sel_getUid("controlTextDidChange:"),CPControlTextDidChangeNotification,_51); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("controlTextDidEndEditing:"))){ +objj_msgSend(_54,"addObserver:selector:name:object:",_delegate,sel_getUid("controlTextDidEndEditing:"),CPControlTextDidEndEditingNotification,_51); +} +} +}),new objj_method(sel_getUid("delegate"),function(_55,_56){ +with(_55){ +return _delegate; +} +}),new objj_method(sel_getUid("contentRectForBounds:"),function(_57,_58,_59){ +with(_57){ +var _5a=objj_msgSend(_57,"currentValueForThemeAttribute:","content-inset"); +if(!_5a){ +return _59; +} +_59.origin.x+=_5a.left; +_59.origin.y+=_5a.top; +_59.size.width-=_5a.left+_5a.right; +_59.size.height-=_5a.top+_5a.bottom; +return _59; +} +}),new objj_method(sel_getUid("bezelRectForBounds:"),function(_5b,_5c,_5d){ +with(_5b){ +var _5e=objj_msgSend(_5b,"currentValueForThemeAttribute:","bezel-inset"); +if(((_5e).top===0&&(_5e).right===0&&(_5e).bottom===0&&(_5e).left===0)){ +return _5d; +} +_5d.origin.x+=_5e.left; +_5d.origin.y+=_5e.top; +_5d.size.width-=_5e.left+_5e.right; +_5d.size.height-=_5e.top+_5e.bottom; +return _5d; +} +}),new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"),function(_5f,_60,_61){ +with(_5f){ +if(_61==="bezel-view"){ +return objj_msgSend(_5f,"bezelRectForBounds:",objj_msgSend(_5f,"bounds")); +}else{ +if(_61==="content-view"){ +return objj_msgSend(_5f,"contentRectForBounds:",objj_msgSend(_5f,"bounds")); +} +} +return objj_msgSendSuper({receiver:_5f,super_class:objj_getClass("CPControl")},"rectForEphemeralSubviewNamed:",_61); +} +}),new objj_method(sel_getUid("createEphemeralSubviewNamed:"),function(_62,_63,_64){ +with(_62){ +if(_64==="bezel-view"){ +var _65=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +objj_msgSend(_65,"setHitTests:",NO); +return _65; +}else{ +var _65=objj_msgSend(objj_msgSend(_CPImageAndTextView,"alloc"),"initWithFrame:",{origin:{x:0,y:0},size:{width:0,height:0}}); +return _65; +} +return objj_msgSendSuper({receiver:_62,super_class:objj_getClass("CPControl")},"createEphemeralSubviewNamed:",_64); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_66,_67){ +with(_66){ +var _68=objj_msgSend(_66,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","bezel-view",CPWindowBelow,"content-view"); +if(_68){ +objj_msgSend(_68,"setBackgroundColor:",objj_msgSend(_66,"currentValueForThemeAttribute:","bezel-color")); +} +var _69=objj_msgSend(_66,"layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:","content-view",CPWindowAbove,"bezel-view"); +if(_69){ +objj_msgSend(_69,"setHidden:",objj_msgSend(_66,"hasThemeState:",CPThemeStateEditing)); +var _6a=""; +if(objj_msgSend(_66,"hasThemeState:",CPTextFieldStatePlaceholder)){ +_6a=objj_msgSend(_66,"placeholderString"); +}else{ +_6a=objj_msgSend(_66,"stringValue"); +if(objj_msgSend(_66,"isSecure")){ +_6a=_6b(_6a); +} +} +objj_msgSend(_69,"setText:",_6a); +objj_msgSend(_69,"setTextColor:",objj_msgSend(_66,"currentValueForThemeAttribute:","text-color")); +objj_msgSend(_69,"setFont:",objj_msgSend(_66,"currentValueForThemeAttribute:","font")); +objj_msgSend(_69,"setAlignment:",objj_msgSend(_66,"currentValueForThemeAttribute:","alignment")); +objj_msgSend(_69,"setVerticalAlignment:",objj_msgSend(_66,"currentValueForThemeAttribute:","vertical-alignment")); +objj_msgSend(_69,"setLineBreakMode:",objj_msgSend(_66,"currentValueForThemeAttribute:","line-break-mode")); +objj_msgSend(_69,"setTextShadowColor:",objj_msgSend(_66,"currentValueForThemeAttribute:","text-shadow-color")); +objj_msgSend(_69,"setTextShadowOffset:",objj_msgSend(_66,"currentValueForThemeAttribute:","text-shadow-offset")); +} +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("textFieldWithStringValue:placeholder:width:"),function(_6c,_6d,_6e,_6f,_70){ +with(_6c){ +return objj_msgSend(_6c,"textFieldWithStringValue:placeholder:width:theme:",_6e,_6f,_70,objj_msgSend(CPTheme,"defaultTheme")); +} +}),new objj_method(sel_getUid("textFieldWithStringValue:placeholder:width:theme:"),function(_71,_72,_73,_74,_75,_76){ +with(_71){ +var _77=objj_msgSend(objj_msgSend(_71,"alloc"),"initWithFrame:",CGRectMake(0,0,_75,29)); +objj_msgSend(_77,"setTheme:",_76); +objj_msgSend(_77,"setStringValue:",_73); +objj_msgSend(_77,"setPlaceholderString:",_74); +objj_msgSend(_77,"setBordered:",YES); +objj_msgSend(_77,"setBezeled:",YES); +objj_msgSend(_77,"setEditable:",YES); +objj_msgSend(_77,"sizeToFit"); +return _77; +} +}),new objj_method(sel_getUid("roundedTextFieldWithStringValue:placeholder:width:"),function(_78,_79,_7a,_7b,_7c){ +with(_78){ +return objj_msgSend(_78,"roundedTextFieldWithStringValue:placeholder:width:theme:",_7a,_7b,_7c,objj_msgSend(CPTheme,"defaultTheme")); +} +}),new objj_method(sel_getUid("roundedTextFieldWithStringValue:placeholder:width:theme:"),function(_7d,_7e,_7f,_80,_81,_82){ +with(_7d){ +var _83=objj_msgSend(objj_msgSend(CPTextField,"alloc"),"initWithFrame:",CGRectMake(0,0,_81,29)); +objj_msgSend(_83,"setTheme:",_82); +objj_msgSend(_83,"setStringValue:",_7f); +objj_msgSend(_83,"setPlaceholderString:",_80); +objj_msgSend(_83,"setBezelStyle:",CPTextFieldRoundedBezel); +objj_msgSend(_83,"setBordered:",YES); +objj_msgSend(_83,"setBezeled:",YES); +objj_msgSend(_83,"setEditable:",YES); +objj_msgSend(_83,"sizeToFit"); +return _83; +} +}),new objj_method(sel_getUid("labelWithTitle:"),function(_84,_85,_86){ +with(_84){ +return objj_msgSend(_84,"labelWithTitle:theme:",_86,objj_msgSend(CPTheme,"defaultTheme")); +} +}),new objj_method(sel_getUid("labelWithTitle:theme:"),function(_87,_88,_89,_8a){ +with(_87){ +var _8b=objj_msgSend(objj_msgSend(_87,"alloc"),"init"); +objj_msgSend(_8b,"setStringValue:",_89); +objj_msgSend(_8b,"sizeToFit"); +return _8b; +} +}),new objj_method(sel_getUid("themeClass"),function(_8c,_8d){ +with(_8c){ +return "textfield"; +} +}),new objj_method(sel_getUid("themeAttributes"),function(_8e,_8f){ +with(_8e){ +return objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[{top:(0),right:(0),bottom:(0),left:(0)},{top:(2),right:(2),bottom:(2),left:(2)},nil],["bezel-inset","content-inset","bezel-color"]); +} +})]); +var _6b=function(_90){ +if(!_90){ +return ""; +} +var _91="",_92=_90.length; +while(_92--){ +_91+=_1; +} +return _91; +}; +var _93="CPTextFieldIsEditableKey",_94="CPTextFieldIsSelectableKey",_95="CPTextFieldIsBorderedKey",_96="CPTextFieldIsBezeledKey",_97="CPTextFieldBezelStyleKey",_98="CPTextFieldDrawsBackgroundKey",_99="CPTextFieldLineBreakModeKey",_9a="CPTextFieldBackgroundColorKey",_9b="CPTextFieldPlaceholderStringKey"; +var _2=objj_getClass("CPTextField"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTextField\"")); +} +var _3=_2.isa; +class_addMethods(_2,[new objj_method(sel_getUid("initWithCoder:"),function(_9c,_9d,_9e){ +with(_9c){ +_9c=objj_msgSendSuper({receiver:_9c,super_class:objj_getClass("CPControl")},"initWithCoder:",_9e); +if(_9c){ +objj_msgSend(_9c,"setEditable:",objj_msgSend(_9e,"decodeBoolForKey:",_93)); +objj_msgSend(_9c,"setSelectable:",objj_msgSend(_9e,"decodeBoolForKey:",_94)); +objj_msgSend(_9c,"setDrawsBackground:",objj_msgSend(_9e,"decodeBoolForKey:",_98)); +objj_msgSend(_9c,"setTextFieldBackgroundColor:",objj_msgSend(_9e,"decodeObjectForKey:",_9a)); +objj_msgSend(_9c,"setPlaceholderString:",objj_msgSend(_9e,"decodeObjectForKey:",_9b)); +} +return _9c; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_9f,_a0,_a1){ +with(_9f){ +objj_msgSendSuper({receiver:_9f,super_class:objj_getClass("CPControl")},"encodeWithCoder:",_a1); +objj_msgSend(_a1,"encodeBool:forKey:",_isEditable,_93); +objj_msgSend(_a1,"encodeBool:forKey:",_isSelectable,_94); +objj_msgSend(_a1,"encodeBool:forKey:",_drawsBackground,_98); +objj_msgSend(_a1,"encodeObject:forKey:",_textFieldBackgroundColor,_9a); +objj_msgSend(_a1,"encodeObject:forKey:",_placeholderString,_9b); +} +})]); +p;9;CPTheme.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;10887; +var _1={},_2=nil; +var _3=objj_allocateClassPair(CPObject,"CPTheme"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_name"),new objj_ivar("_attributes")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initWithName:"),function(_5,_6,_7){ +with(_5){ +_5=objj_msgSendSuper({receiver:_5,super_class:objj_getClass("CPObject")},"init"); +if(_5){ +_name=_7; +_attributes=objj_msgSend(CPDictionary,"dictionary"); +_1[_name]=_5; +} +return _5; +} +}),new objj_method(sel_getUid("name"),function(_8,_9){ +with(_8){ +return _name; +} +}),new objj_method(sel_getUid("_attributeWithName:forClass:"),function(_a,_b,_c,_d){ +with(_a){ +var _e=objj_msgSend(_attributes,"objectForKey:",_d); +if(!_e){ +return nil; +} +return objj_msgSend(_e,"objectForKey:",_c); +} +}),new objj_method(sel_getUid("takeThemeFromObject:"),function(_f,_10,_11){ +with(_f){ +var _12=objj_msgSend(_11,"_themeAttributeDictionary"),_13=nil,_14=objj_msgSend(_12,"keyEnumerator"),_15=objj_msgSend(objj_msgSend(_11,"class"),"themeClass"); +while(_13=objj_msgSend(_14,"nextObject")){ +objj_msgSend(_f,"_recordAttribute:forClass:",objj_msgSend(_12,"objectForKey:",_13),_15); +} +} +}),new objj_method(sel_getUid("_recordAttribute:forClass:"),function(_16,_17,_18,_19){ +with(_16){ +if(!objj_msgSend(_18,"hasValues")){ +return; +} +var _1a=objj_msgSend(_attributes,"objectForKey:",_19); +if(!_1a){ +_1a=objj_msgSend(CPDictionary,"dictionary"); +objj_msgSend(_attributes,"setObject:forKey:",_1a,_19); +} +var _1b=objj_msgSend(_18,"name"),_1c=objj_msgSend(_1a,"objectForKey:",_1b); +if(_1c){ +objj_msgSend(_1a,"setObject:forKey:",objj_msgSend(_1c,"attributeMergedWithAttribute:",_18),_1b); +}else{ +objj_msgSend(_1a,"setObject:forKey:",_18,_1b); +} +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("setDefaultTheme:"),function(_1d,_1e,_1f){ +with(_1d){ +_2=_1f; +} +}),new objj_method(sel_getUid("defaultTheme"),function(_20,_21){ +with(_20){ +return _2; +} +}),new objj_method(sel_getUid("themeNamed:"),function(_22,_23,_24){ +with(_22){ +return _1[_24]; +} +})]); +var _25="CPThemeNameKey",_26="CPThemeAttributesKey"; +var _3=objj_getClass("CPTheme"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPTheme\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("initWithCoder:"),function(_27,_28,_29){ +with(_27){ +_27=objj_msgSendSuper({receiver:_27,super_class:objj_getClass("CPObject")},"init"); +if(_27){ +_name=objj_msgSend(_29,"decodeObjectForKey:",_25); +_attributes=objj_msgSend(_29,"decodeObjectForKey:",_26); +_1[_name]=_27; +} +return _27; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_2a,_2b,_2c){ +with(_2a){ +objj_msgSend(_2c,"encodeObject:forKey:",_name,_25); +objj_msgSend(_2c,"encodeObject:forKey:",_attributes,_26); +} +})]); +var _3=objj_allocateClassPair(CPKeyedUnarchiver,"_CPThemeKeyedUnarchiver"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_bundle")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initForReadingWithData:bundle:"),function(_2d,_2e,_2f,_30){ +with(_2d){ +_2d=objj_msgSendSuper({receiver:_2d,super_class:objj_getClass("CPKeyedUnarchiver")},"initForReadingWithData:",_2f); +if(_2d){ +_bundle=_30; +} +return _2d; +} +}),new objj_method(sel_getUid("bundle"),function(_31,_32){ +with(_31){ +return _bundle; +} +}),new objj_method(sel_getUid("awakenCustomResources"),function(_33,_34){ +with(_33){ +return YES; +} +})]); +var _35={},_36={},_37=0; +CPThemeState=function(_38){ +var _39=_35[_38]; +if(_39===undefined){ +if(_38.indexOf("+")===-1){ +_39=1<<_37++; +}else{ +var _39=0,_3a=_38.split("+"),_3b=_3a.length; +while(_3b--){ +var _3c=_3a[_3b],_3d=_35[_3c]; +if(_3d===undefined){ +_3d=1<<_37++; +_35[_3c]=_3d; +_36[_3d]=_3c; +} +_39|=_3d; +} +} +_35[_38]=_39; +_36[_39]=_38; +} +return _39; +}; +CPThemeStateName=function(_3e){ +var _3f=_36[_3e]; +if(_3f!==undefined){ +return _3f; +} +if(!(_3e&(_3e-1))){ +return ""; +} +var _40=1,_3f=""; +for(;_40<_3e;_40<<=1){ +if(_3e&_40){ +_3f+=(_3f.length===0?"":"+")+_36[_40]; +} +} +_36[_3e]=_3f; +return _3f; +}; +_36[0]="normal"; +CPThemeStateNormal=_35["normal"]=0; +CPThemeStateDisabled=CPThemeState("disabled"); +CPThemeStateHighlighted=CPThemeState("highlighted"); +CPThemeStateSelected=CPThemeState("selected"); +CPThemeStateBezeled=CPThemeState("bezeled"); +CPThemeStateBordered=CPThemeState("bordered"); +CPThemeStateEditable=CPThemeState("editable"); +CPThemeStateEditing=CPThemeState("editing"); +CPThemeStateVertical=CPThemeState("vertical"); +CPThemeStateDefault=CPThemeState("default"); +CPThemeStateCircular=CPThemeState("circular"); +var _3=objj_allocateClassPair(CPObject,"_CPThemeAttribute"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_name"),new objj_ivar("_defaultValue"),new objj_ivar("_values"),new objj_ivar("_cache"),new objj_ivar("_parentAttribute")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initWithName:defaultValue:"),function(_41,_42,_43,_44){ +with(_41){ +_41=objj_msgSendSuper({receiver:_41,super_class:objj_getClass("CPObject")},"init"); +if(_41){ +_cache={}; +_name=_43; +_defaultValue=_44; +_values=objj_msgSend(CPDictionary,"dictionary"); +} +return _41; +} +}),new objj_method(sel_getUid("name"),function(_45,_46){ +with(_45){ +return _name; +} +}),new objj_method(sel_getUid("defaultValue"),function(_47,_48){ +with(_47){ +return _defaultValue; +} +}),new objj_method(sel_getUid("hasValues"),function(_49,_4a){ +with(_49){ +return objj_msgSend(_values,"count")>0; +} +}),new objj_method(sel_getUid("isTrivial"),function(_4b,_4c){ +with(_4b){ +return (objj_msgSend(_values,"count")===1)&&(Number(objj_msgSend(_values,"allKeys")[0])===CPThemeStateNormal); +} +}),new objj_method(sel_getUid("setValue:"),function(_4d,_4e,_4f){ +with(_4d){ +_cache={}; +if(_4f===undefined||_4f===nil){ +_values=objj_msgSend(CPDictionary,"dictionary"); +}else{ +_values=objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",_4f,String(CPThemeStateNormal)); +} +} +}),new objj_method(sel_getUid("setValue:forState:"),function(_50,_51,_52,_53){ +with(_50){ +_cache={}; +if((_52===undefined)||(_52===nil)){ +objj_msgSend(_values,"removeObjectForKey:",String(_53)); +}else{ +objj_msgSend(_values,"setObject:forKey:",_52,String(_53)); +} +} +}),new objj_method(sel_getUid("value"),function(_54,_55){ +with(_54){ +return objj_msgSend(_54,"valueForState:",CPThemeStateNormal); +} +}),new objj_method(sel_getUid("valueForState:"),function(_56,_57,_58){ +with(_56){ +var _59=_cache[_58]; +if(_59!==undefined){ +return _59; +} +_59=objj_msgSend(_values,"objectForKey:",String(_58)); +if((_59===undefined||_59===nil)&&_58!==CPThemeStateNormal){ +if(_58&(_58-1)){ +var _5a=0,_5b=objj_msgSend(_values,"allKeys"),_5c=_5b.length; +while(_5c--){ +var _5d=Number(_5b[_5c]); +if((_5d&_58)===_5d){ +var _5e=_5f[_5d]; +if(_5e===undefined){ +_5e=_60(_5d); +} +if(_5e>_5a){ +_5a=_5e; +_59=objj_msgSend(_values,"objectForKey:",String(_5d)); +} +} +} +} +if(_59===undefined||_59===nil){ +_59=objj_msgSend(_values,"objectForKey:",String(CPThemeStateNormal)); +} +} +if(_59===undefined||_59===nil){ +_59=objj_msgSend(_parentAttribute,"valueForState:",_58); +} +if(_59===undefined||_59===nil){ +_59=_defaultValue; +} +_cache[_58]=_59; +return _59; +} +}),new objj_method(sel_getUid("setParentAttribute:"),function(_61,_62,_63){ +with(_61){ +if(_parentAttribute===_63){ +return; +} +_cache={}; +_parentAttribute=_63; +} +}),new objj_method(sel_getUid("attributeMergedWithAttribute:"),function(_64,_65,_66){ +with(_64){ +var _67=objj_msgSend(objj_msgSend(_CPThemeAttribute,"alloc"),"initWithName:defaultValue:",_name,_defaultValue); +_67._values=objj_msgSend(_values,"copy"); +objj_msgSend(_67._values,"addEntriesFromDictionary:",_66._values); +return _67; +} +})]); +var _3=objj_getClass("_CPThemeAttribute"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"_CPThemeAttribute\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("initWithCoder:"),function(_68,_69,_6a){ +with(_68){ +_68=objj_msgSendSuper({receiver:_68,super_class:objj_getClass("CPObject")},"init"); +if(_68){ +_cache={}; +_name=objj_msgSend(_6a,"decodeObjectForKey:","name"); +_values=objj_msgSend(CPDictionary,"dictionary"); +if(objj_msgSend(_6a,"containsValueForKey:","value")){ +var _6b=CPThemeStateNormal; +if(objj_msgSend(_6a,"containsValueForKey:","state")){ +_6b=CPThemeState(objj_msgSend(_6a,"decodeObjectForKey:","state")); +} +objj_msgSend(_values,"setObject:forKey:",objj_msgSend(_6a,"decodeObjectForKey:","value"),_6b); +}else{ +var _6c=objj_msgSend(_6a,"decodeObjectForKey:","values"),_6d=objj_msgSend(_6c,"allKeys"),_6e=_6d.length; +while(_6e--){ +var key=_6d[_6e]; +objj_msgSend(_values,"setObject:forKey:",objj_msgSend(_6c,"objectForKey:",key),CPThemeState(key)); +} +} +} +return _68; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_70,_71,_72){ +with(_70){ +objj_msgSend(_72,"encodeObject:forKey:",_name,"name"); +var _73=objj_msgSend(_values,"allKeys"),_74=_73.length; +if(_74===1){ +var _75=_73[0]; +if(Number(_75)!==CPThemeStateNormal){ +objj_msgSend(_72,"encodeObject:forKey:",CPThemeStateName(Number(_75)),"state"); +} +objj_msgSend(_72,"encodeObject:forKey:",objj_msgSend(_values,"objectForKey:",_75),"value"); +}else{ +var _76=objj_msgSend(CPDictionary,"dictionary"); +while(_74--){ +var key=_73[_74]; +objj_msgSend(_76,"setObject:forKey:",objj_msgSend(_values,"objectForKey:",key),CPThemeStateName(Number(key))); +} +objj_msgSend(_72,"encodeObject:forKey:",_76,"values"); +} +} +})]); +var _5f=[0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6]; +var _60=function(_78){ +var _79=0,_7a=_78; +while(_78){ +++_79; +_78&=(_78-1); +} +_5f[_7a]=_79; +return _79; +}; +_60.displayName="numberOfOnes"; +CPThemeAttributeEncode=function(_7b,_7c){ +var _7d=_7c._values,_7e=objj_msgSend(_7d,"count"),key="$a"+objj_msgSend(_7c,"name"); +if(_7e===1){ +var _80=objj_msgSend(_7d,"allKeys")[0]; +if(Number(_80)===0){ +objj_msgSend(_7b,"encodeObject:forKey:",objj_msgSend(_7d,"objectForKey:",_80),key); +return YES; +} +} +if(_7e>=1){ +objj_msgSend(_7b,"encodeObject:forKey:",_7c,key); +return YES; +} +return NO; +}; +CPThemeAttributeDecode=function(_81,_82,_83,_84,_85){ +var key="$a"+_82; +if(!objj_msgSend(_81,"containsValueForKey:",key)){ +var _87=objj_msgSend(objj_msgSend(_CPThemeAttribute,"alloc"),"initWithName:defaultValue:",_82,_83); +}else{ +var _87=objj_msgSend(_81,"decodeObjectForKey:",key); +if(!_87.isa||!objj_msgSend(_87,"isKindOfClass:",objj_msgSend(_CPThemeAttribute,"class"))){ +var _88=objj_msgSend(objj_msgSend(_CPThemeAttribute,"alloc"),"initWithName:defaultValue:",_82,_83); +objj_msgSend(_88,"setValue:",_87); +_87=_88; +} +} +if(_84&&_85){ +objj_msgSend(_87,"setParentAttribute:",objj_msgSend(_84,"_attributeWithName:forClass:",_82,_85)); +} +return _87; +}; +p;14;CPThemeBlend.jI;21;Foundation/CPObject.jI;16;AppKit/CPTheme.jI;29;AppKit/_CPCibCustomResource.jI;30;AppKit/_CPCibKeyedUnarchiver.jc;1452; +var _1=objj_allocateClassPair(CPObject,"CPThemeBlend"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_bundle"),new objj_ivar("_themes"),new objj_ivar("_loadDelegate")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("themes"),function(_3,_4){ +with(_3){ +return _themes; +} +}),new objj_method(sel_getUid("initWithContentsOfURL:"),function(_5,_6,_7){ +with(_5){ +_5=objj_msgSendSuper({receiver:_5,super_class:objj_getClass("CPObject")},"init"); +if(_5){ +_bundle=objj_msgSend(objj_msgSend(CPBundle,"alloc"),"initWithPath:",_7+"/Info.plist"); +} +return _5; +} +}),new objj_method(sel_getUid("loadWithDelegate:"),function(_8,_9,_a){ +with(_8){ +_loadDelegate=_a; +objj_msgSend(_bundle,"loadWithDelegate:",_8); +} +}),new objj_method(sel_getUid("bundleDidFinishLoading:"),function(_b,_c,_d){ +with(_b){ +var _e=objj_msgSend(_bundle,"objectForInfoDictionaryKey:","CPBundleReplacedFiles"),_f=0,_10=_e.length,_11=objj_msgSend(_bundle,"bundlePath"); +while(_10--){ +var _12=_e[_10]; +if(objj_msgSend(_12,"pathExtension")==="keyedtheme"){ +var _13=objj_msgSend(objj_msgSend(_CPThemeKeyedUnarchiver,"alloc"),"initForReadingWithData:bundle:",objj_msgSend(CPData,"dataWithString:",objj_files[_11+"/"+_12].contents),_bundle); +objj_msgSend(_13,"decodeObjectForKey:","root"); +objj_msgSend(_13,"finishDecoding"); +} +} +objj_msgSend(_loadDelegate,"blendDidFinishLoading:",_b); +} +})]); +p;11;CPToolbar.jI;21;Foundation/CPObject.ji;15;CPPopUpButton.ji;15;CPToolbarItem.jc;17238; +CPToolbarDisplayModeDefault=0; +CPToolbarDisplayModeIconAndLabel=1; +CPToolbarDisplayModeIconOnly=2; +CPToolbarDisplayModeLabelOnly=3; +var _1=nil; +var _2=nil; +var _3=objj_allocateClassPair(CPObject,"CPToolbar"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_identifier"),new objj_ivar("_displayMode"),new objj_ivar("_showsBaselineSeparator"),new objj_ivar("_allowsUserCustomization"),new objj_ivar("_isVisible"),new objj_ivar("_delegate"),new objj_ivar("_itemIdentifiers"),new objj_ivar("_identifiedItems"),new objj_ivar("_defaultItems"),new objj_ivar("_allowedItems"),new objj_ivar("_selectableItems"),new objj_ivar("_items"),new objj_ivar("_itemsSortedByVisibilityPriority"),new objj_ivar("_toolbarView"),new objj_ivar("_window")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initWithIdentifier:"),function(_5,_6,_7){ +with(_5){ +_5=objj_msgSendSuper({receiver:_5,super_class:objj_getClass("CPObject")},"init"); +if(_5){ +_items=[]; +_identifier=_7; +_isVisible=YES; +objj_msgSend(CPToolbar,"_addToolbar:forIdentifier:",_5,_identifier); +} +return _5; +} +}),new objj_method(sel_getUid("setDisplayMode:"),function(_8,_9,_a){ +with(_8){ +} +}),new objj_method(sel_getUid("identifier"),function(_b,_c){ +with(_b){ +return _identifier; +} +}),new objj_method(sel_getUid("delegate"),function(_d,_e){ +with(_d){ +return _delegate; +} +}),new objj_method(sel_getUid("isVisible"),function(_f,_10){ +with(_f){ +return _isVisible; +} +}),new objj_method(sel_getUid("setVisible:"),function(_11,_12,_13){ +with(_11){ +if(_isVisible===_13){ +return; +} +_isVisible=_13; +objj_msgSend(_window,"_noteToolbarChanged"); +} +}),new objj_method(sel_getUid("_window"),function(_14,_15){ +with(_14){ +return _window; +} +}),new objj_method(sel_getUid("_setWindow:"),function(_16,_17,_18){ +with(_16){ +_window=_18; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_19,_1a,_1b){ +with(_19){ +if(_delegate==_1b){ +return; +} +_delegate=_1b; +objj_msgSend(_19,"_reloadToolbarItems"); +} +}),new objj_method(sel_getUid("_loadConfiguration"),function(_1c,_1d){ +with(_1c){ +} +}),new objj_method(sel_getUid("_toolbarView"),function(_1e,_1f){ +with(_1e){ +if(!_toolbarView){ +_toolbarView=objj_msgSend(objj_msgSend(_CPToolbarView,"alloc"),"initWithFrame:",CPRectMake(0,0,1200,59)); +objj_msgSend(_toolbarView,"setToolbar:",_1e); +objj_msgSend(_toolbarView,"setAutoresizingMask:",CPViewWidthSizable); +objj_msgSend(_toolbarView,"reloadToolbarItems"); +} +return _toolbarView; +} +}),new objj_method(sel_getUid("_reloadToolbarItems"),function(_20,_21){ +with(_20){ +if(!_delegate){ +return; +} +var _22=objj_msgSend(_itemIdentifiers,"count"); +if(!_22){ +_itemIdentifiers=objj_msgSend(objj_msgSend(_delegate,"toolbarDefaultItemIdentifiers:",_20),"mutableCopy"); +_22=objj_msgSend(_itemIdentifiers,"count"); +} +_items=[]; +var _23=0; +for(;_23<_22;++_23){ +var _24=_itemIdentifiers[_23],_25=objj_msgSend(CPToolbarItem,"_standardItemWithItemIdentifier:",_24); +if(!_25){ +_25=objj_msgSend(_delegate,"toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:",_20,_24,YES); +} +_25=objj_msgSend(_25,"copy"); +if(_25==nil){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,sprintf("_delegate %s returned nil toolbar item returned for identifier %s",_delegate,_24)); +} +objj_msgSend(_items,"addObject:",_25); +} +_itemsSortedByVisibilityPriority=objj_msgSend(_items,"sortedArrayUsingFunction:context:",_26,NULL); +objj_msgSend(_toolbarView,"reloadToolbarItems"); +} +}),new objj_method(sel_getUid("items"),function(_27,_28){ +with(_27){ +return _items; +} +}),new objj_method(sel_getUid("visibleItems"),function(_29,_2a){ +with(_29){ +return objj_msgSend(_toolbarView,"visibleItems"); +} +}),new objj_method(sel_getUid("itemsSortedByVisibilityPriority"),function(_2b,_2c){ +with(_2b){ +return _itemsSortedByVisibilityPriority; +} +}),new objj_method(sel_getUid("_itemForItemIdentifier:willBeInsertedIntoToolbar:"),function(_2d,_2e,_2f,_30){ +with(_2d){ +var _31=objj_msgSend(_identifiedItems,"objectForKey:",_2f); +if(!_31){ +_31=objj_msgSend(CPToolbarItem,"_standardItemWithItemIdentifier:",_2f); +if(_delegate&&!_31){ +_31=objj_msgSend(objj_msgSend(_delegate,"toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:",_2d,_2f,_30),"copy"); +if(!_31){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,sprintf("_delegate %s returned nil toolbar item returned for identifier %s",_delegate,_2f)); +} +} +objj_msgSend(_identifiedItems,"setObject:forKey:",_31,_2f); +} +return _31; +} +}),new objj_method(sel_getUid("_itemsWithIdentifiers:"),function(_32,_33,_34){ +with(_32){ +var _35=[]; +for(var i=0;i<_34.length;i++){ +objj_msgSend(_35,"addObject:",objj_msgSend(_32,"_itemForItemIdentifier:willBeInsertedIntoToolbar:",_34[i],NO)); +} +return _35; +} +}),new objj_method(sel_getUid("_defaultToolbarItems"),function(_37,_38){ +with(_37){ +if(!_defaultItems){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("toolbarDefaultItemIdentifiers:"))){ +_defaultItems=objj_msgSend(_37,"_itemsWithIdentifiers:",objj_msgSend(_delegate,"toolbarDefaultItemIdentifiers:",_37)); +} +} +return _defaultItems; +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("initialize"),function(_39,_3a){ +with(_39){ +if(_39!=objj_msgSend(CPToolbar,"class")){ +return; +} +_1=objj_msgSend(CPDictionary,"dictionary"); +_2=objj_msgSend(CPDictionary,"dictionary"); +} +}),new objj_method(sel_getUid("_addToolbar:forIdentifier:"),function(_3b,_3c,_3d,_3e){ +with(_3b){ +var _3f=objj_msgSend(_1,"objectForKey:",_3e); +if(!_3f){ +_3f=[]; +objj_msgSend(_1,"setObject:forKey:",_3f,_3e); +} +objj_msgSend(_3f,"addObject:",_3d); +} +})]); +var _40="CPToolbarIdentifierKey",_41="CPToolbarDisplayModeKey",_42="CPToolbarShowsBaselineSeparatorKey",_43="CPToolbarAllowsUserCustomizationKey",_44="CPToolbarIsVisibleKey",_45="CPToolbarDelegateKey",_46="CPToolbarIdentifiedItemsKey",_47="CPToolbarDefaultItemsKey",_48="CPToolbarAllowedItemsKey",_49="CPToolbarSelectableItemsKey"; +var _3=objj_getClass("CPToolbar"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPToolbar\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("initWithCoder:"),function(_4a,_4b,_4c){ +with(_4a){ +_4a=objj_msgSendSuper({receiver:_4a,super_class:objj_getClass("CPObject")},"init"); +if(_4a){ +_identifier=objj_msgSend(_4c,"decodeObjectForKey:",_40); +_displayMode=objj_msgSend(_4c,"decodeIntForKey:",_41); +_showsBaselineSeparator=objj_msgSend(_4c,"decodeBoolForKey:",_42); +_allowsUserCustomization=objj_msgSend(_4c,"decodeBoolForKey:",_43); +_isVisible=objj_msgSend(_4c,"decodeBoolForKey:",_44); +_identifiedItems=objj_msgSend(_4c,"decodeObjectForKey:",_46); +_defaultItems=objj_msgSend(_4c,"decodeObjectForKey:",_47); +_allowedItems=objj_msgSend(_4c,"decodeObjectForKey:",_48); +_selectableItems=objj_msgSend(_4c,"decodeObjectForKey:",_49); +_items=[]; +objj_msgSend(CPToolbar,"_addToolbar:forIdentifier:",_4a,_identifier); +objj_msgSend(_4a,"setDelegate:",objj_msgSend(_4c,"decodeObjectForKey:",_45)); +} +return _4a; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_4d,_4e,_4f){ +with(_4d){ +objj_msgSend(_4f,"encodeObject:forKey:",_identifier,_40); +objj_msgSend(_4f,"encodeInt:forKey:",_displayMode,_41); +objj_msgSend(_4f,"encodeBool:forKey:",_showsBaselineSeparator,_42); +objj_msgSend(_4f,"encodeBool:forKey:",_allowsUserCustomization,_43); +objj_msgSend(_4f,"encodeBool:forKey:",_isVisible,_44); +objj_msgSend(_4f,"encodeObject:forKey:",_identifiedItems,_46); +objj_msgSend(_4f,"encodeObject:forKey:",_defaultItems,_47); +objj_msgSend(_4f,"encodeObject:forKey:",_allowedItems,_48); +objj_msgSend(_4f,"encodeObject:forKey:",_selectableItems,_49); +objj_msgSend(_4f,"encodeConditionalObject:forKey:",_delegate,_45); +} +})]); +var _50=nil,_51=nil,_52=nil; +var _53=5,_54=10,_55=20; +var _56=function(_57,_58,_59,_5a){ +return {index:_57,view:_58,label:_59,minWidth:_5a}; +}; +var _3=objj_allocateClassPair(CPView,"_CPToolbarView"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_toolbar"),new objj_ivar("_flexibleWidthIndexes"),new objj_ivar("_visibleFlexibleWidthIndexes"),new objj_ivar("_itemInfos"),new objj_ivar("_visibleItems"),new objj_ivar("_invisibleItems"),new objj_ivar("_additionalItemsButton"),new objj_ivar("_labelColor"),new objj_ivar("_labelShadowColor"),new objj_ivar("_minWidth")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initWithFrame:"),function(_5b,_5c,_5d){ +with(_5b){ +_5b=objj_msgSendSuper({receiver:_5b,super_class:objj_getClass("CPView")},"initWithFrame:",_5d); +if(_5b){ +_minWidth=0; +_labelColor=objj_msgSend(CPColor,"blackColor"); +_labelShadowColor=objj_msgSend(CPColor,"colorWithWhite:alpha:",1,0.75); +_additionalItemsButton=objj_msgSend(objj_msgSend(CPPopUpButton,"alloc"),"initWithFrame:pullsDown:",CGRectMake(0,0,10,15),YES); +objj_msgSend(_additionalItemsButton,"setBordered:",NO); +objj_msgSend(_additionalItemsButton,"setImagePosition:",CPImageOnly); +objj_msgSend(objj_msgSend(_additionalItemsButton,"menu"),"setShowsStateColumn:",NO); +objj_msgSend(_additionalItemsButton,"setAlternateImage:",_52); +} +return _5b; +} +}),new objj_method(sel_getUid("setToolbar:"),function(_5e,_5f,_60){ +with(_5e){ +_toolbar=_60; +} +}),new objj_method(sel_getUid("toolbar"),function(_61,_62){ +with(_61){ +return _toolbar; +} +}),new objj_method(sel_getUid("setLabelColor:"),function(_63,_64,_65){ +with(_63){ +if(_labelColor===_65){ +return; +} +_labelColor=_65; +var _66=objj_msgSend(_toolbar,"items"),_67=objj_msgSend(_66,"count"); +while(_67--){ +objj_msgSend(objj_msgSend(_63,"labelForItem:",_66[_67]),"setTextColor:",_labelColor); +} +} +}),new objj_method(sel_getUid("setLabelShadowColor:"),function(_68,_69,_6a){ +with(_68){ +if(_labelShadowColor===_6a){ +return; +} +_labelShadowColor=_6a; +var _6b=objj_msgSend(_toolbar,"items"),_6c=objj_msgSend(_6b,"count"); +while(_6c--){ +objj_msgSend(objj_msgSend(_68,"labelForItem:",_6b[_6c]),"setTextShadowColor:",_labelShadowColor); +} +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_6d,_6e,_6f){ +with(_6d){ +objj_msgSend(_6d,"layoutSubviews"); +} +}),new objj_method(sel_getUid("layoutSubviews"),function(_70,_71){ +with(_70){ +var _72=objj_msgSend(_toolbar,"items"),_73=CGRectGetWidth(objj_msgSend(_70,"bounds")),_74=_minWidth,_75=objj_msgSend(CPIndexSet,"indexSet"),_76=[]; +_visibleItems=_72; +if(_73<_74){ +_73-=_55; +_visibleItems=objj_msgSend(_visibleItems,"copy"); +var _77=objj_msgSend(_toolbar,"itemsSortedByVisibilityPriority"),_78=_77.length; +while(_74>_73){ +var _79=_77[_78--]; +_74-=objj_msgSend(_70,"minWidthForItem:",_79)+_54; +objj_msgSend(_visibleItems,"removeObjectIdenticalTo:",_79); +objj_msgSend(_76,"addObject:",_79); +objj_msgSend(objj_msgSend(_70,"viewForItem:",_79),"setHidden:",YES); +objj_msgSend(objj_msgSend(_70,"labelForItem:",_79),"setHidden:",YES); +} +} +var _7a=_visibleItems.length,_7b=0; +while(_7a--){ +var _79=_visibleItems[_7a],_7c=objj_msgSend(_79,"minSize"),_7d=objj_msgSend(_70,"viewForItem:",_79); +if(_7c.width!=objj_msgSend(_79,"maxSize").width){ +objj_msgSend(_75,"addIndex:",_7a); +}else{ +objj_msgSend(_7d,"setFrameSize:",CGSizeMake(objj_msgSend(_79,"minSize").width,CGRectGetHeight(objj_msgSend(_7d,"frame")))); +} +objj_msgSend(_7d,"setHidden:",NO); +objj_msgSend(objj_msgSend(_70,"labelForItem:",_79),"setHidden:",NO); +if(_7b<_7c.height){ +_7b=_7c.height; +} +} +var _7e=_73-_74,_7f=0; +while(_7e&&objj_msgSend(_75,"count")){ +_7f+=_7e/objj_msgSend(_75,"count"); +_7e=0; +var _7a=CPNotFound; +while((_7a=objj_msgSend(_75,"indexGreaterThanIndex:",_7a))!=CPNotFound){ +var _79=_visibleItems[_7a]; +_7d=objj_msgSend(_70,"viewForItem:",_79),_80=objj_msgSend(_7d,"frame"),proposedWidth=objj_msgSend(_79,"minSize").width+_7f,constrainedWidth=MIN(proposedWidth,objj_msgSend(_79,"maxSize").width); +if(constrainedWidth_a7){ +return CPOrderedAscending; +} +return CPOrderedDescending; +}; +p;15;CPToolbarItem.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jI;16;AppKit/CPImage.jI;15;AppKit/CPView.jc;9705; +CPToolbarItemVisibilityPriorityStandard=0; +CPToolbarItemVisibilityPriorityLow=-1000; +CPToolbarItemVisibilityPriorityHigh=1000; +CPToolbarItemVisibilityPriorityUser=2000; +CPToolbarSeparatorItemIdentifier="CPToolbarSeparatorItemIdentifier"; +CPToolbarSpaceItemIdentifier="CPToolbarSpaceItemIdentifier"; +CPToolbarFlexibleSpaceItemIdentifier="CPToolbarFlexibleSpaceItemIdentifier"; +CPToolbarShowColorsItemIdentifier="CPToolbarShowColorsItemIdentifier"; +CPToolbarShowFontsItemIdentifier="CPToolbarShowFontsItemIdentifier"; +CPToolbarCustomizeToolbarItemIdentifier="CPToolbarCustomizeToolbarItemIdentifier"; +CPToolbarPrintItemIdentifier="CPToolbarPrintItemIdentifier"; +var _1=objj_allocateClassPair(CPObject,"CPToolbarItem"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_itemIdentifier"),new objj_ivar("_toolbar"),new objj_ivar("_label"),new objj_ivar("_paletteLabel"),new objj_ivar("_toolTip"),new objj_ivar("_tag"),new objj_ivar("_target"),new objj_ivar("_action"),new objj_ivar("_isEnabled"),new objj_ivar("_image"),new objj_ivar("_alternateImage"),new objj_ivar("_view"),new objj_ivar("_minSize"),new objj_ivar("_maxSize"),new objj_ivar("_visibilityPriority")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithItemIdentifier:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_itemIdentifier=_5; +_tag=0; +_isEnabled=YES; +_minSize=CGSizeMakeZero(); +_maxSize=CGSizeMakeZero(); +_visibilityPriority=CPToolbarItemVisibilityPriorityStandard; +} +return _3; +} +}),new objj_method(sel_getUid("itemIdentifier"),function(_6,_7){ +with(_6){ +return _itemIdentifier; +} +}),new objj_method(sel_getUid("toolbar"),function(_8,_9){ +with(_8){ +return _toolbar; +} +}),new objj_method(sel_getUid("label"),function(_a,_b){ +with(_a){ +return _label; +} +}),new objj_method(sel_getUid("setLabel:"),function(_c,_d,_e){ +with(_c){ +_label=_e; +} +}),new objj_method(sel_getUid("paletteLabel"),function(_f,_10){ +with(_f){ +return _paletteLabel; +} +}),new objj_method(sel_getUid("setPaletteLabel:"),function(_11,_12,_13){ +with(_11){ +_paletteLabel=_13; +} +}),new objj_method(sel_getUid("toolTip"),function(_14,_15){ +with(_14){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("toolTip"))){ +return objj_msgSend(_view,"toolTip"); +} +return _toolTip; +} +}),new objj_method(sel_getUid("setToolTip:"),function(_16,_17,_18){ +with(_16){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setToolTip:"))){ +objj_msgSend(view,"setToolTip:",_18); +} +_toolTip=_18; +} +}),new objj_method(sel_getUid("tag"),function(_19,_1a){ +with(_19){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("tag"))){ +return objj_msgSend(_view,"tag"); +} +return _tag; +} +}),new objj_method(sel_getUid("setTag:"),function(_1b,_1c,_1d){ +with(_1b){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setTag:"))){ +objj_msgSend(_view,"setTag:",_1d); +} +_tag=_1d; +} +}),new objj_method(sel_getUid("target"),function(_1e,_1f){ +with(_1e){ +if(_view){ +return objj_msgSend(_view,"respondsToSelector:",sel_getUid("target"))?objj_msgSend(_view,"target"):nil; +} +return _target; +} +}),new objj_method(sel_getUid("setTarget:"),function(_20,_21,_22){ +with(_20){ +if(!_view){ +_target=_22; +}else{ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setTarget:"))){ +objj_msgSend(_view,"setTarget:",_22); +} +} +} +}),new objj_method(sel_getUid("action"),function(_23,_24){ +with(_23){ +if(_view){ +return objj_msgSend(_view,"respondsToSelector:",sel_getUid("action"))?objj_msgSend(_view,"action"):nil; +} +return _action; +} +}),new objj_method(sel_getUid("setAction:"),function(_25,_26,_27){ +with(_25){ +if(!_view){ +_action=_27; +}else{ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setAction:"))){ +objj_msgSend(_view,"setAction:",_27); +} +} +} +}),new objj_method(sel_getUid("isEnabled"),function(_28,_29){ +with(_28){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("isEnabled"))){ +return objj_msgSend(_view,"isEnabled"); +} +return _isEnabled; +} +}),new objj_method(sel_getUid("setEnabled:"),function(_2a,_2b,_2c){ +with(_2a){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setEnabled:"))){ +objj_msgSend(_view,"setEnabled:",_2c); +} +_isEnabled=_2c; +} +}),new objj_method(sel_getUid("image"),function(_2d,_2e){ +with(_2d){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("image"))){ +return objj_msgSend(_view,"image"); +} +return _image; +} +}),new objj_method(sel_getUid("setImage:"),function(_2f,_30,_31){ +with(_2f){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setImage:"))){ +objj_msgSend(_view,"setImage:",_31); +} +_image=_31; +if(!_image){ +return; +} +if(_minSize.width==0&&_minSize.height==0&&_maxSize.width==0&&_maxSize.height==0){ +var _32=objj_msgSend(_image,"size"); +if(_32.width>0||_32.height>0){ +objj_msgSend(_2f,"setMinSize:",_32); +objj_msgSend(_2f,"setMaxSize:",_32); +} +} +} +}),new objj_method(sel_getUid("setAlternateImage:"),function(_33,_34,_35){ +with(_33){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("setAlternateImage:"))){ +objj_msgSend(_view,"setAlternateImage:",_35); +} +_alternateImage=_35; +} +}),new objj_method(sel_getUid("alternateImage"),function(_36,_37){ +with(_36){ +if(objj_msgSend(_view,"respondsToSelector:",sel_getUid("alternateIamge"))){ +return objj_msgSend(_view,"alternateImage"); +} +return _alternateImage; +} +}),new objj_method(sel_getUid("view"),function(_38,_39){ +with(_38){ +return _view; +} +}),new objj_method(sel_getUid("setView:"),function(_3a,_3b,_3c){ +with(_3a){ +if(_view==_3c){ +return; +} +_view=_3c; +if(_view){ +if(_tag!==0&&objj_msgSend(_view,"respondsToSelector:",sel_getUid("setTag:"))){ +objj_msgSend(_view,"setTag:",_tag); +} +_target=nil; +_action=nil; +} +} +}),new objj_method(sel_getUid("minSize"),function(_3d,_3e){ +with(_3d){ +return _minSize; +} +}),new objj_method(sel_getUid("setMinSize:"),function(_3f,_40,_41){ +with(_3f){ +_minSize=CGSizeMakeCopy(_41); +_maxSize=CGSizeMake(MAX(_minSize.width,_maxSize.width),MAX(_minSize.height,_maxSize.height)); +} +}),new objj_method(sel_getUid("maxSize"),function(_42,_43){ +with(_42){ +return _maxSize; +} +}),new objj_method(sel_getUid("setMaxSize:"),function(_44,_45,_46){ +with(_44){ +_maxSize=CGSizeMakeCopy(_46); +_minSize=CGSizeMake(MIN(_minSize.width,_maxSize.width),MIN(_minSize.height,_maxSize.height)); +} +}),new objj_method(sel_getUid("visibilityPriority"),function(_47,_48){ +with(_47){ +return _visibilityPriority; +} +}),new objj_method(sel_getUid("setVisibilityPriority:"),function(_49,_4a,_4b){ +with(_49){ +_visibilityPriority=_4b; +} +})]); +var _1=objj_getClass("CPToolbarItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPToolbarItem\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("copy"),function(_4c,_4d){ +with(_4c){ +var _4e=objj_msgSend(objj_msgSend(objj_msgSend(_4c,"class"),"alloc"),"initWithItemIdentifier:",_itemIdentifier); +if(_view){ +objj_msgSend(_4e,"setView:",objj_msgSend(CPKeyedUnarchiver,"unarchiveObjectWithData:",objj_msgSend(CPKeyedArchiver,"archivedDataWithRootObject:",_view))); +} +objj_msgSend(_4e,"setLabel:",_label); +objj_msgSend(_4e,"setPaletteLabel:",_paletteLabel); +objj_msgSend(_4e,"setToolTip:",objj_msgSend(_4c,"toolTip")); +objj_msgSend(_4e,"setTag:",objj_msgSend(_4c,"tag")); +objj_msgSend(_4e,"setTarget:",objj_msgSend(_4c,"target")); +objj_msgSend(_4e,"setAction:",objj_msgSend(_4c,"action")); +objj_msgSend(_4e,"setEnabled:",objj_msgSend(_4c,"isEnabled")); +objj_msgSend(_4e,"setImage:",objj_msgSend(_4c,"image")); +objj_msgSend(_4e,"setAlternateImage:",objj_msgSend(_4c,"alternateImage")); +objj_msgSend(_4e,"setMinSize:",_minSize); +objj_msgSend(_4e,"setMaxSize:",_maxSize); +objj_msgSend(_4e,"setVisibilityPriority:",_visibilityPriority); +return _4e; +} +})]); +var _4f=nil,_50=nil; +var _1=objj_getClass("CPToolbarItem"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPToolbarItem\"")); +} +var _2=_1.isa; +class_addMethods(_2,[new objj_method(sel_getUid("_separatorItemView"),function(_51,_52){ +with(_51){ +if(!_4f){ +_4f=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(0,0,2,32)); +sizes={}; +sizes["CPToolbarItemSeparator"]=[CGSizeMake(2,26),CGSizeMake(2,1),CGSizeMake(2,26)]; +objj_msgSend(_4f,"setBackgroundColor:",_CPControlThreePartImagePattern(YES,sizes,"CPToolbarItem","Separator")); +} +return _4f; +} +}),new objj_method(sel_getUid("_spaceItemView"),function(_53,_54){ +with(_53){ +if(!_50){ +_50=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMakeZero()); +} +return _50; +} +}),new objj_method(sel_getUid("_standardItemWithItemIdentifier:"),function(_55,_56,_57){ +with(_55){ +var _58=objj_msgSend(objj_msgSend(CPToolbarItem,"alloc"),"initWithItemIdentifier:",_57); +switch(_57){ +case CPToolbarSeparatorItemIdentifier: +objj_msgSend(_58,"setView:",objj_msgSend(_55,"_separatorItemView")); +objj_msgSend(_58,"setMinSize:",CGSizeMake(2,0)); +objj_msgSend(_58,"setMaxSize:",CGSizeMake(2,100000)); +return _58; +case CPToolbarSpaceItemIdentifier: +objj_msgSend(_58,"setView:",objj_msgSend(_55,"_spaceItemView")); +objj_msgSend(_58,"setMinSize:",CGSizeMake(32,32)); +objj_msgSend(_58,"setMaxSize:",CGSizeMake(32,32)); +return _58; +case CPToolbarFlexibleSpaceItemIdentifier: +objj_msgSend(_58,"setView:",objj_msgSend(_55,"_spaceItemView")); +objj_msgSend(_58,"setMinSize:",CGSizeMake(32,32)); +objj_msgSend(_58,"setMaxSize:",CGSizeMake(10000,32)); +return _58; +case CPToolbarShowColorsItemIdentifier: +return nil; +case CPToolbarShowFontsItemIdentifier: +return nil; +case CPToolbarCustomizeToolbarItemIdentifier: +return nil; +case CPToolbarPrintItemIdentifier: +return nil; +} +return nil; +} +})]); +p;8;CPView.jI;20;Foundation/CPArray.jI;26;Foundation/CPObjJRuntime.ji;19;CGAffineTransform.ji;12;CGGeometry.ji;9;CPColor.ji;20;CPDOMDisplayServer.ji;12;CPGeometry.ji;19;CPGraphicsContext.ji;13;CPResponder.ji;9;CPTheme.jc;40774; +CPViewNotSizable=0; +CPViewMinXMargin=1; +CPViewWidthSizable=2; +CPViewMaxXMargin=4; +CPViewMinYMargin=8; +CPViewHeightSizable=16; +CPViewMaxYMargin=32; +CPViewBoundsDidChangeNotification="CPViewBoundsDidChangeNotification"; +CPViewFrameDidChangeNotification="CPViewFrameDidChangeNotification"; +var _1=nil,_2=nil; +var _3=objj_allocateClassPair(CPResponder,"CPView"),_4=_3.isa; +class_addIvars(_3,[new objj_ivar("_window"),new objj_ivar("_superview"),new objj_ivar("_subviews"),new objj_ivar("_graphicsContext"),new objj_ivar("_tag"),new objj_ivar("_frame"),new objj_ivar("_bounds"),new objj_ivar("_boundsTransform"),new objj_ivar("_inverseBoundsTransform"),new objj_ivar("_registeredDraggedTypes"),new objj_ivar("_registeredDraggedTypesArray"),new objj_ivar("_isHidden"),new objj_ivar("_hitTests"),new objj_ivar("_postsFrameChangedNotifications"),new objj_ivar("_postsBoundsChangedNotifications"),new objj_ivar("_inhibitFrameAndBoundsChangedNotifications"),new objj_ivar("_displayHash"),new objj_ivar("_dirtyRect"),new objj_ivar("_opacity"),new objj_ivar("_backgroundColor"),new objj_ivar("_autoresizesSubviews"),new objj_ivar("_autoresizingMask"),new objj_ivar("_layer"),new objj_ivar("_wantsLayer"),new objj_ivar("_isInFullScreenMode"),new objj_ivar("_fullScreenModeState"),new objj_ivar("_needsLayout"),new objj_ivar("_ephemeralSubviews"),new objj_ivar("_theme"),new objj_ivar("_themeAttributes"),new objj_ivar("_themeState"),new objj_ivar("_nextKeyView"),new objj_ivar("_previousKeyView")]); +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("init"),function(_5,_6){ +with(_5){ +return objj_msgSend(_5,"initWithFrame:",CGRectMakeZero()); +} +}),new objj_method(sel_getUid("initWithFrame:"),function(_7,_8,_9){ +with(_7){ +_7=objj_msgSendSuper({receiver:_7,super_class:objj_getClass("CPResponder")},"init"); +if(_7){ +var _a=(_9.size.width),_b=(_9.size.height); +_subviews=[]; +_registeredDraggedTypes=objj_msgSend(CPSet,"set"); +_registeredDraggedTypesArray=[]; +_tag=-1; +_frame={origin:{x:_9.origin.x,y:_9.origin.y},size:{width:_9.size.width,height:_9.size.height}}; +_bounds={origin:{x:0,y:0},size:{width:_a,height:_b}}; +_autoresizingMask=CPViewNotSizable; +_autoresizesSubviews=YES; +_opacity=1; +_isHidden=NO; +_hitTests=YES; +_displayHash=objj_msgSend(_7,"hash"); +_theme=objj_msgSend(CPTheme,"defaultTheme"); +_themeState=CPThemeStateNormal; +objj_msgSend(_7,"_loadThemeAttributes"); +} +return _7; +} +}),new objj_method(sel_getUid("superview"),function(_c,_d){ +with(_c){ +return _superview; +} +}),new objj_method(sel_getUid("subviews"),function(_e,_f){ +with(_e){ +return _subviews; +} +}),new objj_method(sel_getUid("window"),function(_10,_11){ +with(_10){ +return _window; +} +}),new objj_method(sel_getUid("addSubview:"),function(_12,_13,_14){ +with(_12){ +objj_msgSend(_12,"_insertSubview:atIndex:",_14,CPNotFound); +} +}),new objj_method(sel_getUid("addSubview:positioned:relativeTo:"),function(_15,_16,_17,_18,_19){ +with(_15){ +var _1a=_19?objj_msgSend(_subviews,"indexOfObjectIdenticalTo:",_19):CPNotFound; +if(_1a===CPNotFound){ +_1a=(_18===CPWindowAbove)?objj_msgSend(_subviews,"count"):0; +}else{ +if(_18===CPWindowAbove){ +++_1a; +} +} +objj_msgSend(_15,"_insertSubview:atIndex:",_17,_1a); +} +}),new objj_method(sel_getUid("_insertSubview:atIndex:"),function(_1b,_1c,_1d,_1e){ +with(_1b){ +var _1f=_subviews.length; +objj_msgSend(objj_msgSend(_1b,"window"),"_dirtyKeyViewLoop"); +if(_1d._superview==_1b){ +var _20=objj_msgSend(_subviews,"indexOfObjectIdenticalTo:",_1d); +if(_20===_1e||_20===_1f-1&&_1e===_1f){ +return; +} +objj_msgSend(_subviews,"removeObjectAtIndex:",_20); +if(_1e>_20){ +--_1e; +} +--_1f; +}else{ +objj_msgSend(_1d,"removeFromSuperview"); +objj_msgSend(_1d,"_setWindow:",_window); +objj_msgSend(_1d,"viewWillMoveToSuperview:",_1b); +_1d._superview=_1b; +} +if(_1e===CPNotFound||_1e>=_1f){ +_subviews.push(_1d); +}else{ +_subviews.splice(_1e,0,_1d); +} +objj_msgSend(_1d,"setNextResponder:",_1b); +objj_msgSend(_1d,"viewDidMoveToSuperview"); +objj_msgSend(_1b,"didAddSubview:",_1d); +} +}),new objj_method(sel_getUid("didAddSubview:"),function(_21,_22,_23){ +with(_21){ +} +}),new objj_method(sel_getUid("removeFromSuperview"),function(_24,_25){ +with(_24){ +if(!_superview){ +return; +} +objj_msgSend(objj_msgSend(_24,"window"),"_dirtyKeyViewLoop"); +objj_msgSend(_superview,"willRemoveSubview:",_24); +objj_msgSend(objj_msgSend(_superview,"subviews"),"removeObject:",_24); +_superview=nil; +objj_msgSend(_24,"_setWindow:",nil); +} +}),new objj_method(sel_getUid("replaceSubview:with:"),function(_26,_27,_28,_29){ +with(_26){ +if(_28._superview!=_26){ +return; +} +var _2a=objj_msgSend(_subviews,"indexOfObjectIdenticalTo:",_28); +objj_msgSend(_28,"removeFromSuperview"); +objj_msgSend(_26,"_insertSubview:atIndex:",_29,_2a); +} +}),new objj_method(sel_getUid("_setWindow:"),function(_2b,_2c,_2d){ +with(_2b){ +if(_window===_2d){ +return; +} +objj_msgSend(objj_msgSend(_2b,"window"),"_dirtyKeyViewLoop"); +if(objj_msgSend(_window,"firstResponder")===_2b){ +objj_msgSend(_window,"makeFirstResponder:",nil); +} +objj_msgSend(_2b,"viewWillMoveToWindow:",_2d); +if(_registeredDraggedTypes){ +objj_msgSend(_window,"_noteUnregisteredDraggedTypes:",_registeredDraggedTypes); +objj_msgSend(_2d,"_noteRegisteredDraggedTypes:",_registeredDraggedTypes); +} +_window=_2d; +var _2e=objj_msgSend(_subviews,"count"); +while(_2e--){ +objj_msgSend(_subviews[_2e],"_setWindow:",_2d); +} +objj_msgSend(_2b,"viewDidMoveToWindow"); +objj_msgSend(objj_msgSend(_2b,"window"),"_dirtyKeyViewLoop"); +} +}),new objj_method(sel_getUid("isDescendantOf:"),function(_2f,_30,_31){ +with(_2f){ +var _32=_2f; +do{ +if(_32==_31){ +return YES; +} +}while(_32=objj_msgSend(_32,"superview")); +return NO; +} +}),new objj_method(sel_getUid("viewDidMoveToSuperview"),function(_33,_34){ +with(_33){ +objj_msgSend(_33,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("viewDidMoveToWindow"),function(_35,_36){ +with(_35){ +} +}),new objj_method(sel_getUid("viewWillMoveToSuperview:"),function(_37,_38,_39){ +with(_37){ +} +}),new objj_method(sel_getUid("viewWillMoveToWindow:"),function(_3a,_3b,_3c){ +with(_3a){ +} +}),new objj_method(sel_getUid("willRemoveSubview:"),function(_3d,_3e,_3f){ +with(_3d){ +} +}),new objj_method(sel_getUid("enclosingMenuItem"),function(_40,_41){ +with(_40){ +var _42=_40; +while(_42&&!objj_msgSend(_42,"isKindOfClass:",objj_msgSend(_CPMenuItemView,"class"))){ +_42=objj_msgSend(_42,"superview"); +} +if(_42){ +return _42._menuItem; +} +return nil; +} +}),new objj_method(sel_getUid("setTag:"),function(_43,_44,_45){ +with(_43){ +_tag=_45; +} +}),new objj_method(sel_getUid("tag"),function(_46,_47){ +with(_46){ +return _tag; +} +}),new objj_method(sel_getUid("viewWithTag:"),function(_48,_49,_4a){ +with(_48){ +if(objj_msgSend(_48,"tag")===_4a){ +return _48; +} +var _4b=0,_4c=_subviews.length; +for(;_4b<_4c;++_4b){ +var _4d=objj_msgSend(_subviews[_4b],"viewWithTag:",_4a); +if(_4d){ +return _4d; +} +} +return nil; +} +}),new objj_method(sel_getUid("isFlipped"),function(_4e,_4f){ +with(_4e){ +return YES; +} +}),new objj_method(sel_getUid("setFrame:"),function(_50,_51,_52){ +with(_50){ +if(((_frame.origin.x==_52.origin.x&&_frame.origin.y==_52.origin.y)&&(_frame.size.width==_52.size.width&&_frame.size.height==_52.size.height))){ +return; +} +_inhibitFrameAndBoundsChangedNotifications=YES; +objj_msgSend(_50,"setFrameOrigin:",_52.origin); +objj_msgSend(_50,"setFrameSize:",_52.size); +_inhibitFrameAndBoundsChangedNotifications=NO; +if(_postsFrameChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewFrameDidChangeNotification,_50); +} +} +}),new objj_method(sel_getUid("frame"),function(_53,_54){ +with(_53){ +return {origin:{x:_frame.origin.x,y:_frame.origin.y},size:{width:_frame.size.width,height:_frame.size.height}}; +} +}),new objj_method(sel_getUid("setCenter:"),function(_55,_56,_57){ +with(_55){ +objj_msgSend(_55,"setFrameOrigin:",CGPointMake(_57.x-_frame.size.width/2,_57.y-_frame.size.height/2)); +} +}),new objj_method(sel_getUid("center"),function(_58,_59){ +with(_58){ +return CGPointMake(_frame.size.width/2+_frame.origin.x,_frame.size.height/2+_frame.origin.y); +} +}),new objj_method(sel_getUid("setFrameOrigin:"),function(_5a,_5b,_5c){ +with(_5a){ +var _5d=_frame.origin; +if(!_5c||(_5d.x==_5c.x&&_5d.y==_5c.y)){ +return; +} +_5d.x=_5c.x; +_5d.y=_5c.y; +if(_postsFrameChangedNotifications&&!_inhibitFrameAndBoundsChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewFrameDidChangeNotification,_5a); +} +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_5e,_5f,_60){ +with(_5e){ +var _61=_frame.size; +if(!_60||(_61.width==_60.width&&_61.height==_60.height)){ +return; +} +var _62={width:_61.width,height:_61.height}; +_61.width=_60.width; +_61.height=_60.height; +if(YES){ +_bounds.size.width=_60.width; +_bounds.size.height=_60.height; +} +if(_layer){ +objj_msgSend(_layer,"_owningViewBoundsChanged"); +} +if(_autoresizesSubviews){ +objj_msgSend(_5e,"resizeSubviewsWithOldSize:",_62); +} +objj_msgSend(_5e,"setNeedsLayout"); +objj_msgSend(_5e,"setNeedsDisplay:",YES); +if(_postsFrameChangedNotifications&&!_inhibitFrameAndBoundsChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewFrameDidChangeNotification,_5e); +} +} +}),new objj_method(sel_getUid("setBounds:"),function(_63,_64,_65){ +with(_63){ +if(((_bounds.origin.x==_65.origin.x&&_bounds.origin.y==_65.origin.y)&&(_bounds.size.width==_65.size.width&&_bounds.size.height==_65.size.height))){ +return; +} +_inhibitFrameAndBoundsChangedNotifications=YES; +objj_msgSend(_63,"setBoundsOrigin:",_65.origin); +objj_msgSend(_63,"setBoundsSize:",_65.size); +_inhibitFrameAndBoundsChangedNotifications=NO; +if(_postsBoundsChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewBoundsDidChangeNotification,_63); +} +} +}),new objj_method(sel_getUid("bounds"),function(_66,_67){ +with(_66){ +return {origin:{x:_bounds.origin.x,y:_bounds.origin.y},size:{width:_bounds.size.width,height:_bounds.size.height}}; +} +}),new objj_method(sel_getUid("setBoundsOrigin:"),function(_68,_69,_6a){ +with(_68){ +var _6b=_bounds.origin; +if((_6b.x==_6a.x&&_6b.y==_6a.y)){ +return; +} +_6b.x=_6a.x; +_6b.y=_6a.y; +if(_6b.x!=0||_6b.y!=0){ +_boundsTransform={a:1,b:0,c:0,d:1,tx:-_6b.x,ty:-_6b.y}; +_inverseBoundsTransform=CGAffineTransformInvert(_boundsTransform); +}else{ +_boundsTransform=nil; +_inverseBoundsTransform=nil; +} +if(_postsBoundsChangedNotifications&&!_inhibitFrameAndBoundsChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewBoundsDidChangeNotification,_68); +} +} +}),new objj_method(sel_getUid("setBoundsSize:"),function(_6c,_6d,_6e){ +with(_6c){ +var _6f=_bounds.size; +if((_6f.width==_6e.width&&_6f.height==_6e.height)){ +return; +} +var _70=_frame.size; +if(!(_6f.width==_70.width&&_6f.height==_70.height)){ +var _71=_bounds.origin; +_71.x/=_6f.width/_70.width; +_71.y/=_6f.height/_70.height; +} +_6f.width=_6e.width; +_6f.height=_6e.height; +if(!(_6f.width==_70.width&&_6f.height==_70.height)){ +var _71=_bounds.origin; +_71.x*=_6f.width/_70.width; +_71.y*=_6f.height/_70.height; +} +if(_postsBoundsChangedNotifications&&!_inhibitFrameAndBoundsChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewBoundsDidChangeNotification,_6c); +} +} +}),new objj_method(sel_getUid("resizeWithOldSuperviewSize:"),function(_72,_73,_74){ +with(_72){ +var _75=objj_msgSend(_72,"autoresizingMask"); +if(_75==CPViewNotSizable){ +return; +} +var _76=_superview._frame,_77={origin:{x:_frame.origin.x,y:_frame.origin.y},size:{width:_frame.size.width,height:_frame.size.height}},dX=((_76.size.width)-_74.width)/(((_75&CPViewMinXMargin)?1:0)+(_75&CPViewWidthSizable?1:0)+(_75&CPViewMaxXMargin?1:0)),dY=((_76.size.height)-_74.height)/((_75&CPViewMinYMargin?1:0)+(_75&CPViewHeightSizable?1:0)+(_75&CPViewMaxYMargin?1:0)); +if(_75&CPViewMinXMargin){ +_77.origin.x+=dX; +} +if(_75&CPViewWidthSizable){ +_77.size.width+=dX; +} +if(_75&CPViewMinYMargin){ +_77.origin.y+=dY; +} +if(_75&CPViewHeightSizable){ +_77.size.height+=dY; +} +objj_msgSend(_72,"setFrame:",_77); +} +}),new objj_method(sel_getUid("resizeSubviewsWithOldSize:"),function(_7a,_7b,_7c){ +with(_7a){ +var _7d=_subviews.length; +while(_7d--){ +objj_msgSend(_subviews[_7d],"resizeWithOldSuperviewSize:",_7c); +} +} +}),new objj_method(sel_getUid("setAutoresizesSubviews:"),function(_7e,_7f,_80){ +with(_7e){ +_autoresizesSubviews=!!_80; +} +}),new objj_method(sel_getUid("autoresizesSubviews"),function(_81,_82){ +with(_81){ +return _autoresizesSubviews; +} +}),new objj_method(sel_getUid("setAutoresizingMask:"),function(_83,_84,_85){ +with(_83){ +_autoresizingMask=_85; +} +}),new objj_method(sel_getUid("autoresizingMask"),function(_86,_87){ +with(_86){ +return _autoresizingMask; +} +}),new objj_method(sel_getUid("enterFullScreenMode"),function(_88,_89){ +with(_88){ +return objj_msgSend(_88,"enterFullScreenMode:withOptions:",nil,nil); +} +}),new objj_method(sel_getUid("enterFullScreenMode:withOptions:"),function(_8a,_8b,_8c,_8d){ +with(_8a){ +_fullScreenModeState=_8e(_8a); +var _8f=objj_msgSend(objj_msgSend(CPWindow,"alloc"),"initWithContentRect:styleMask:",objj_msgSend(objj_msgSend(CPDOMWindowBridge,"sharedDOMWindowBridge"),"contentBounds"),CPBorderlessWindowMask); +objj_msgSend(_8f,"setLevel:",CPScreenSaverWindowLevel); +objj_msgSend(_8f,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +var _90=objj_msgSend(_8f,"contentView"); +objj_msgSend(_90,"setBackgroundColor:",objj_msgSend(CPColor,"blackColor")); +objj_msgSend(_90,"addSubview:",_8a); +objj_msgSend(_8a,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +objj_msgSend(_8a,"setFrame:",CGRectMakeCopy(objj_msgSend(_90,"bounds"))); +objj_msgSend(_8f,"makeKeyAndOrderFront:",_8a); +objj_msgSend(_8f,"makeFirstResponder:",_8a); +_isInFullScreenMode=YES; +return YES; +} +}),new objj_method(sel_getUid("exitFullScreenMode"),function(_91,_92){ +with(_91){ +objj_msgSend(_91,"exitFullScreenModeWithOptions:",nil); +} +}),new objj_method(sel_getUid("exitFullScreenModeWithOptions:"),function(_93,_94,_95){ +with(_93){ +if(!_isInFullScreenMode){ +return; +} +_isInFullScreenMode=NO; +objj_msgSend(_93,"setFrame:",_fullScreenModeState.frame); +objj_msgSend(_93,"setAutoresizingMask:",_fullScreenModeState.autoresizingMask); +objj_msgSend(_fullScreenModeState.superview,"_insertSubview:atIndex:",_93,_fullScreenModeState.index); +objj_msgSend(objj_msgSend(_93,"window"),"orderOut:",_93); +} +}),new objj_method(sel_getUid("isInFullScreenMode"),function(_96,_97){ +with(_96){ +return _isInFullScreenMode; +} +}),new objj_method(sel_getUid("setHidden:"),function(_98,_99,_9a){ +with(_98){ +_9a=!!_9a; +if(_isHidden===_9a){ +return; +} +_isHidden=_9a; +if(_9a){ +var _9b=objj_msgSend(_window,"firstResponder"); +if(objj_msgSend(_9b,"isKindOfClass:",objj_msgSend(CPView,"class"))){ +do{ +if(_98==_9b){ +objj_msgSend(_window,"makeFirstResponder:",objj_msgSend(_98,"nextValidKeyView")); +break; +} +}while(_9b=objj_msgSend(_9b,"superview")); +} +} +} +}),new objj_method(sel_getUid("isHidden"),function(_9c,_9d){ +with(_9c){ +return _isHidden; +} +}),new objj_method(sel_getUid("setAlphaValue:"),function(_9e,_9f,_a0){ +with(_9e){ +if(_opacity==_a0){ +return; +} +_opacity=_a0; +} +}),new objj_method(sel_getUid("alphaValue"),function(_a1,_a2){ +with(_a1){ +return _opacity; +} +}),new objj_method(sel_getUid("isHiddenOrHasHiddenAncestor"),function(_a3,_a4){ +with(_a3){ +var _a5=_a3; +while(_a5&&!objj_msgSend(_a5,"isHidden")){ +_a5=objj_msgSend(_a5,"superview"); +} +return _a5!==nil; +} +}),new objj_method(sel_getUid("acceptsFirstMouse:"),function(_a6,_a7,_a8){ +with(_a6){ +return YES; +} +}),new objj_method(sel_getUid("hitTests"),function(_a9,_aa){ +with(_a9){ +return _hitTests; +} +}),new objj_method(sel_getUid("setHitTests:"),function(_ab,_ac,_ad){ +with(_ab){ +_hitTests=!!_ad; +} +}),new objj_method(sel_getUid("hitTest:"),function(_ae,_af,_b0){ +with(_ae){ +if(_isHidden||!_hitTests||!CPRectContainsPoint(_frame,_b0)){ +return nil; +} +var _b1=nil,i=_subviews.length,_b3={x:_b0.x-(_frame.origin.x),y:_b0.y-(_frame.origin.y)}; +if(_inverseBoundsTransform){ +_b3={x:_b3.x*_inverseBoundsTransform.a+_b3.y*_inverseBoundsTransform.c+_inverseBoundsTransform.tx,y:_b3.x*_inverseBoundsTransform.b+_b3.y*_inverseBoundsTransform.d+_inverseBoundsTransform.ty}; +} +while(i--){ +if(_b1=objj_msgSend(_subviews[i],"hitTest:",_b3)){ +return _b1; +} +} +return _ae; +} +}),new objj_method(sel_getUid("mouseDownCanMoveWindow"),function(_b4,_b5){ +with(_b4){ +return !objj_msgSend(_b4,"isOpaque"); +} +}),new objj_method(sel_getUid("mouseDown:"),function(_b6,_b7,_b8){ +with(_b6){ +if(objj_msgSend(_b6,"mouseDownCanMoveWindow")){ +objj_msgSendSuper({receiver:_b6,super_class:objj_getClass("CPResponder")},"mouseDown:",_b8); +} +} +}),new objj_method(sel_getUid("setBackgroundColor:"),function(_b9,_ba,_bb){ +with(_b9){ +if(_backgroundColor==_bb){ +return; +} +_backgroundColor=_bb; +} +}),new objj_method(sel_getUid("backgroundColor"),function(_bc,_bd){ +with(_bc){ +return _backgroundColor; +} +}),new objj_method(sel_getUid("convertPoint:fromView:"),function(_be,_bf,_c0,_c1){ +with(_be){ +return CGPointApplyAffineTransform(_c0,_c2(_c1,_be)); +} +}),new objj_method(sel_getUid("convertPoint:toView:"),function(_c3,_c4,_c5,_c6){ +with(_c3){ +return CGPointApplyAffineTransform(_c5,_c2(_c3,_c6)); +} +}),new objj_method(sel_getUid("convertSize:fromView:"),function(_c7,_c8,_c9,_ca){ +with(_c7){ +return CGSizeApplyAffineTransform(_c9,_c2(_ca,_c7)); +} +}),new objj_method(sel_getUid("convertSize:toView:"),function(_cb,_cc,_cd,_ce){ +with(_cb){ +return CGSizeApplyAffineTransform(_cd,_c2(_cb,_ce)); +} +}),new objj_method(sel_getUid("convertRect:fromView:"),function(_cf,_d0,_d1,_d2){ +with(_cf){ +return CGRectApplyAffineTransform(_d1,_c2(_d2,_cf)); +} +}),new objj_method(sel_getUid("convertRect:toView:"),function(_d3,_d4,_d5,_d6){ +with(_d3){ +return CGRectApplyAffineTransform(_d5,_c2(_d3,_d6)); +} +}),new objj_method(sel_getUid("setPostsFrameChangedNotifications:"),function(_d7,_d8,_d9){ +with(_d7){ +_d9=!!_d9; +if(_postsFrameChangedNotifications===_d9){ +return; +} +_postsFrameChangedNotifications=_d9; +if(_postsFrameChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewFrameDidChangeNotification,_d7); +} +} +}),new objj_method(sel_getUid("postsFrameChangedNotifications"),function(_da,_db){ +with(_da){ +return _postsFrameChangedNotifications; +} +}),new objj_method(sel_getUid("setPostsBoundsChangedNotifications:"),function(_dc,_dd,_de){ +with(_dc){ +_de=!!_de; +if(_postsBoundsChangedNotifications===_de){ +return; +} +_postsBoundsChangedNotifications=_de; +if(_postsBoundsChangedNotifications){ +objj_msgSend(_1,"postNotificationName:object:",CPViewBoundsDidChangeNotification,_dc); +} +} +}),new objj_method(sel_getUid("postsBoundsChangedNotifications"),function(_df,_e0){ +with(_df){ +return _postsBoundsChangedNotifications; +} +}),new objj_method(sel_getUid("dragImage:at:offset:event:pasteboard:source:slideBack:"),function(_e1,_e2,_e3,_e4,_e5,_e6,_e7,_e8,_e9){ +with(_e1){ +objj_msgSend(_window,"dragImage:at:offset:event:pasteboard:source:slideBack:",_e3,objj_msgSend(_e1,"convertPoint:toView:",_e4,nil),_e5,_e6,_e7,_e8,_e9); +} +}),new objj_method(sel_getUid("dragView:at:offset:event:pasteboard:source:slideBack:"),function(_ea,_eb,_ec,_ed,_ee,_ef,_f0,_f1,_f2){ +with(_ea){ +objj_msgSend(_window,"dragView:at:offset:event:pasteboard:source:slideBack:",_ec,objj_msgSend(_ea,"convertPoint:toView:",_ed,nil),_ee,_ef,_f0,_f1,_f2); +} +}),new objj_method(sel_getUid("registerForDraggedTypes:"),function(_f3,_f4,_f5){ +with(_f3){ +if(!_f5||!objj_msgSend(_f5,"count")){ +return; +} +var _f6=objj_msgSend(_f3,"window"); +objj_msgSend(_f6,"_noteUnregisteredDraggedTypes:",_registeredDraggedTypes); +objj_msgSend(_registeredDraggedTypes,"addObjectsFromArray:",_f5); +objj_msgSend(_f6,"_noteRegisteredDraggedTypes:",_registeredDraggedTypes); +_registeredDraggedTypesArray=nil; +} +}),new objj_method(sel_getUid("registeredDraggedTypes"),function(_f7,_f8){ +with(_f7){ +if(!_registeredDraggedTypesArray){ +_registeredDraggedTypesArray=objj_msgSend(_registeredDraggedTypes,"allObjects"); +} +return _registeredDraggedTypesArray; +} +}),new objj_method(sel_getUid("unregisterDraggedTypes"),function(_f9,_fa){ +with(_f9){ +objj_msgSend(objj_msgSend(_f9,"window"),"_noteUnregisteredDraggedTypes:",_registeredDraggedTypes); +_registeredDraggedTypes=objj_msgSend(CPSet,"set"); +_registeredDraggedTypesArray=[]; +} +}),new objj_method(sel_getUid("drawRect:"),function(_fb,_fc,_fd){ +with(_fb){ +} +}),new objj_method(sel_getUid("setNeedsDisplay:"),function(_fe,_ff,_100){ +with(_fe){ +if(_100){ +objj_msgSend(_fe,"setNeedsDisplayInRect:",objj_msgSend(_fe,"bounds")); +} +} +}),new objj_method(sel_getUid("setNeedsDisplayInRect:"),function(self,_cmd,_103){ +with(self){ +if((_103.size.width<=0||_103.size.height<=0)){ +return; +} +if(_dirtyRect&&!(_dirtyRect.size.width<=0||_dirtyRect.size.height<=0)){ +_dirtyRect=CGRectUnion(_103,_dirtyRect); +}else{ +_dirtyRect={origin:{x:_103.origin.x,y:_103.origin.y},size:{width:_103.size.width,height:_103.size.height}}; +} +} +}),new objj_method(sel_getUid("needsDisplay"),function(self,_cmd){ +with(self){ +return _dirtyRect&&!(_dirtyRect.size.width<=0||_dirtyRect.size.height<=0); +} +}),new objj_method(sel_getUid("displayIfNeeded"),function(self,_cmd){ +with(self){ +if(objj_msgSend(self,"needsDisplay")){ +objj_msgSend(self,"displayRect:",_dirtyRect); +} +} +}),new objj_method(sel_getUid("display"),function(self,_cmd){ +with(self){ +objj_msgSend(self,"displayRect:",objj_msgSend(self,"visibleRect")); +} +}),new objj_method(sel_getUid("displayIfNeededInRect:"),function(self,_cmd,_10c){ +with(self){ +if(objj_msgSend(self,"needsDisplay")){ +objj_msgSend(self,"displayRect:",_10c); +} +} +}),new objj_method(sel_getUid("displayRect:"),function(self,_cmd,_10f){ +with(self){ +objj_msgSend(self,"viewWillDraw"); +objj_msgSend(self,"displayRectIgnoringOpacity:inContext:",_10f,nil); +_dirtyRect=NULL; +} +}),new objj_method(sel_getUid("displayRectIgnoringOpacity:inContext:"),function(self,_cmd,_112,_113){ +with(self){ +objj_msgSend(self,"lockFocus"); +CGContextClearRect(objj_msgSend(objj_msgSend(CPGraphicsContext,"currentContext"),"graphicsPort"),_112); +objj_msgSend(self,"drawRect:",_112); +objj_msgSend(self,"unlockFocus"); +} +}),new objj_method(sel_getUid("viewWillDraw"),function(self,_cmd){ +with(self){ +} +}),new objj_method(sel_getUid("lockFocus"),function(self,_cmd){ +with(self){ +if(!_graphicsContext){ +var _118=CGBitmapGraphicsContextCreate(); +_DOMContentsElement=_118.DOMElement; +_DOMContentsElement.style.zIndex=-100; +_DOMContentsElement.style.overflow="hidden"; +_DOMContentsElement.style.position="absolute"; +_DOMContentsElement.style.visibility="visible"; +_DOMContentsElement.width=ROUND((_frame.size.width)); +_DOMContentsElement.height=ROUND((_frame.size.height)); +_DOMContentsElement.style.top="0px"; +_DOMContentsElement.style.left="0px"; +_DOMContentsElement.style.width=ROUND((_frame.size.width))+"px"; +_DOMContentsElement.style.height=ROUND((_frame.size.height))+"px"; +if(_DOMContentsElement.CPDOMDisplayContext){ +_DOMContentsElement.CPDOMDisplayContext[0]=-1; +} +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=6; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMElement; +CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++]=_DOMContentsElement; +_graphicsContext=objj_msgSend(CPGraphicsContext,"graphicsContextWithGraphicsPort:flipped:",_118,YES); +} +objj_msgSend(CPGraphicsContext,"setCurrentContext:",_graphicsContext); +CGContextSaveGState(objj_msgSend(_graphicsContext,"graphicsPort")); +} +}),new objj_method(sel_getUid("unlockFocus"),function(self,_cmd){ +with(self){ +CGContextRestoreGState(objj_msgSend(_graphicsContext,"graphicsPort")); +objj_msgSend(CPGraphicsContext,"setCurrentContext:",nil); +} +}),new objj_method(sel_getUid("setNeedsLayout"),function(self,_cmd){ +with(self){ +_needsLayout=YES; +} +}),new objj_method(sel_getUid("layoutIfNeeded"),function(self,_cmd){ +with(self){ +if(_needsLayout){ +_needsLayout=NO; +objj_msgSend(self,"layoutSubviews"); +} +} +}),new objj_method(sel_getUid("layoutSubviews"),function(self,_cmd){ +with(self){ +} +}),new objj_method(sel_getUid("isOpaque"),function(self,_cmd){ +with(self){ +return NO; +} +}),new objj_method(sel_getUid("visibleRect"),function(self,_cmd){ +with(self){ +if(!_superview){ +return _bounds; +} +return CGRectIntersection(objj_msgSend(self,"convertRect:fromView:",objj_msgSend(_superview,"visibleRect"),_superview),_bounds); +} +}),new objj_method(sel_getUid("_enclosingClipView"),function(self,_cmd){ +with(self){ +var _127=_superview,_128=objj_msgSend(CPClipView,"class"); +while(_127&&!objj_msgSend(_127,"isKindOfClass:",_128)){ +_127=_127._superview; +} +return _127; +} +}),new objj_method(sel_getUid("scrollPoint:"),function(self,_cmd,_12b){ +with(self){ +var _12c=objj_msgSend(self,"_enclosingClipView"); +if(!_12c){ +return; +} +objj_msgSend(_12c,"scrollToPoint:",objj_msgSend(self,"convertPoint:toView:",_12b,_12c)); +} +}),new objj_method(sel_getUid("scrollRectToVisible:"),function(self,_cmd,_12f){ +with(self){ +var _130=objj_msgSend(self,"visibleRect"); +_12f=CGRectIntersection(_12f,_bounds); +if((_12f.size.width<=0||_12f.size.height<=0)||CGRectContainsRect(_130,_12f)){ +return NO; +} +var _131=objj_msgSend(self,"_enclosingClipView"); +if(!_131){ +return NO; +} +var _132={x:_130.origin.x,y:_130.origin.y}; +if((_12f.origin.x)<=(_130.origin.x)){ +_132.x=(_12f.origin.x); +}else{ +if((_12f.origin.x+_12f.size.width)>(_130.origin.x+_130.size.width)){ +_132.x+=(_12f.origin.x+_12f.size.width)-(_130.origin.x+_130.size.width); +} +} +if((_12f.origin.y)<=(_130.origin.y)){ +_132.y=CGRectGetMinY(_12f); +}else{ +if((_12f.origin.y+_12f.size.height)>(_130.origin.y+_130.size.height)){ +_132.y+=(_12f.origin.y+_12f.size.height)-(_130.origin.y+_130.size.height); +} +} +objj_msgSend(_131,"scrollToPoint:",CGPointMake(_132.x,_132.y)); +return YES; +} +}),new objj_method(sel_getUid("autoscroll:"),function(self,_cmd,_135){ +with(self){ +return objj_msgSend(objj_msgSend(self,"superview"),"autoscroll:",_135); +} +}),new objj_method(sel_getUid("adjustScroll:"),function(self,_cmd,_138){ +with(self){ +return _138; +} +}),new objj_method(sel_getUid("scrollRect:by:"),function(self,_cmd,_13b,_13c){ +with(self){ +} +}),new objj_method(sel_getUid("enclosingScrollView"),function(self,_cmd){ +with(self){ +var _13f=_superview,_140=objj_msgSend(CPScrollView,"class"); +while(_13f&&!objj_msgSend(_13f,"isKindOfClass:",_140)){ +_13f=_13f._superview; +} +return _13f; +} +}),new objj_method(sel_getUid("scrollClipView:toPoint:"),function(self,_cmd,_143,_144){ +with(self){ +objj_msgSend(_143,"scrollToPoint:",_144); +} +}),new objj_method(sel_getUid("reflectScrolledClipView:"),function(self,_cmd,_147){ +with(self){ +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("initialize"),function(self,_cmd){ +with(self){ +if(self!==objj_msgSend(CPView,"class")){ +return; +} +_1=objj_msgSend(CPNotificationCenter,"defaultCenter"); +} +})]); +var _3=objj_getClass("CPView"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPView\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("canBecomeKeyView"),function(self,_cmd){ +with(self){ +return objj_msgSend(self,"acceptsFirstResponder")&&!objj_msgSend(self,"isHiddenOrHasHiddenAncestor"); +} +}),new objj_method(sel_getUid("nextKeyView"),function(self,_cmd){ +with(self){ +return _nextKeyView; +} +}),new objj_method(sel_getUid("nextValidKeyView"),function(self,_cmd){ +with(self){ +var _150=objj_msgSend(self,"nextKeyView"); +while(_150&&!objj_msgSend(_150,"canBecomeKeyView")){ +_150=objj_msgSend(_150,"nextKeyView"); +} +return _150; +} +}),new objj_method(sel_getUid("previousKeyView"),function(self,_cmd){ +with(self){ +return _previousKeyView; +} +}),new objj_method(sel_getUid("previousValidKeyView"),function(self,_cmd){ +with(self){ +var _155=objj_msgSend(self,"previousKeyView"); +while(_155&&!objj_msgSend(_155,"canBecomeKeyView")){ +_155=objj_msgSend(_155,"previousKeyView"); +} +return _155; +} +}),new objj_method(sel_getUid("_setPreviousKeyView:"),function(self,_cmd,_158){ +with(self){ +_previousKeyView=_158; +} +}),new objj_method(sel_getUid("setNextKeyView:"),function(self,_cmd,next){ +with(self){ +_nextKeyView=next; +objj_msgSend(_nextKeyView,"_setPreviousKeyView:",self); +} +})]); +var _3=objj_getClass("CPView"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPView\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("setLayer:"),function(self,_cmd,_15e){ +with(self){ +if(_layer==_15e){ +return; +} +if(_layer){ +_layer._owningView=nil; +} +_layer=_15e; +if(_layer){ +var _15f=CGRectMakeCopy(objj_msgSend(self,"bounds")); +objj_msgSend(_layer,"_setOwningView:",self); +} +} +}),new objj_method(sel_getUid("layer"),function(self,_cmd){ +with(self){ +return _layer; +} +}),new objj_method(sel_getUid("setWantsLayer:"),function(self,_cmd,_164){ +with(self){ +_wantsLayer=!!_164; +} +}),new objj_method(sel_getUid("wantsLayer"),function(self,_cmd){ +with(self){ +return _wantsLayer; +} +})]); +var _3=objj_getClass("CPView"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPView\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("themeState"),function(self,_cmd){ +with(self){ +return _themeState; +} +}),new objj_method(sel_getUid("hasThemeState:"),function(self,_cmd,_16b){ +with(self){ +return !!(_themeState&((typeof _16b==="string")?CPThemeState(_16b):_16b)); +} +}),new objj_method(sel_getUid("setThemeState:"),function(self,_cmd,_16e){ +with(self){ +var _16f=(typeof _16e==="string")?CPThemeState(_16e):_16e; +if(_themeState&_16f){ +return NO; +} +_themeState|=_16f; +objj_msgSend(self,"setNeedsLayout"); +objj_msgSend(self,"setNeedsDisplay:",YES); +return YES; +} +}),new objj_method(sel_getUid("unsetThemeState:"),function(self,_cmd,_172){ +with(self){ +var _173=((typeof _172==="string")?CPThemeState(_172):_172); +if(!(_themeState&_173)){ +return NO; +} +_themeState&=~_173; +objj_msgSend(self,"setNeedsLayout"); +objj_msgSend(self,"setNeedsDisplay:",YES); +return YES; +} +}),new objj_method(sel_getUid("_loadThemeAttributes"),function(self,_cmd){ +with(self){ +var _176=objj_msgSend(self,"class"),_177=objj_msgSend(_176,"_themeAttributes"),_178=_177.length; +if(!_178){ +return; +} +var _179=objj_msgSend(self,"theme"),_17a=objj_msgSend(_176,"themeClass"); +_themeAttributes={}; +while(_178--){ +var _17b=_177[_178--],_17c=objj_msgSend(objj_msgSend(_CPThemeAttribute,"alloc"),"initWithName:defaultValue:",_17b,_177[_178]); +objj_msgSend(_17c,"setParentAttribute:",objj_msgSend(_179,"_attributeWithName:forClass:",_17b,_17a)); +_themeAttributes[_17b]=_17c; +} +} +}),new objj_method(sel_getUid("setTheme:"),function(self,_cmd,_17f){ +with(self){ +if(_theme===_17f){ +return; +} +_theme=_17f; +objj_msgSend(self,"viewDidChangeTheme"); +} +}),new objj_method(sel_getUid("theme"),function(self,_cmd){ +with(self){ +return _theme; +} +}),new objj_method(sel_getUid("viewDidChangeTheme"),function(self,_cmd){ +with(self){ +if(!_themeAttributes){ +return; +} +var _184=objj_msgSend(self,"theme"),_185=objj_msgSend(objj_msgSend(self,"class"),"themeClass"); +for(var _186 in _themeAttributes){ +if(_themeAttributes.hasOwnProperty(_186)){ +objj_msgSend(_themeAttributes[_186],"setParentAttribute:",objj_msgSend(_184,"_attributeWithName:forClass:",_186,_185)); +} +} +objj_msgSend(self,"setNeedsLayout"); +objj_msgSend(self,"setNeedsDisplay:",YES); +} +}),new objj_method(sel_getUid("_themeAttributeDictionary"),function(self,_cmd){ +with(self){ +var _189=objj_msgSend(CPDictionary,"dictionary"); +if(_themeAttributes){ +var _18a=objj_msgSend(self,"theme"); +for(var _18b in _themeAttributes){ +if(_themeAttributes.hasOwnProperty(_18b)){ +objj_msgSend(_189,"setObject:forKey:",_themeAttributes[_18b],_18b); +} +} +} +return _189; +} +}),new objj_method(sel_getUid("setValue:forThemeAttribute:inState:"),function(self,_cmd,_18e,_18f,_190){ +with(self){ +if(!_themeAttributes||!_themeAttributes[_18f]){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,objj_msgSend(self,"className")+" does not contain theme attribute '"+_18f+"'"); +} +var _191=objj_msgSend(self,"currentValueForThemeAttribute:",_18f); +objj_msgSend(_themeAttributes[_18f],"setValue:forState:",_18e,_190); +if(objj_msgSend(self,"currentValueForThemeAttribute:",_18f)===_191){ +return; +} +objj_msgSend(self,"setNeedsDisplay:",YES); +objj_msgSend(self,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("setValue:forThemeAttribute:"),function(self,_cmd,_194,_195){ +with(self){ +if(!_themeAttributes||!_themeAttributes[_195]){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,objj_msgSend(self,"className")+" does not contain theme attribute '"+_195+"'"); +} +var _196=objj_msgSend(self,"currentValueForThemeAttribute:",_195); +objj_msgSend(_themeAttributes[_195],"setValue:",_194); +if(objj_msgSend(self,"currentValueForThemeAttribute:",_195)===_196){ +return; +} +objj_msgSend(self,"setNeedsDisplay:",YES); +objj_msgSend(self,"setNeedsLayout"); +} +}),new objj_method(sel_getUid("valueForThemeAttribute:inState:"),function(self,_cmd,_199,_19a){ +with(self){ +if(!_themeAttributes||!_themeAttributes[_199]){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,objj_msgSend(self,"className")+" does not contain theme attribute '"+_199+"'"); +} +return objj_msgSend(_themeAttributes[_199],"valueForState:",_19a); +} +}),new objj_method(sel_getUid("valueForThemeAttribute:"),function(self,_cmd,_19d){ +with(self){ +if(!_themeAttributes||!_themeAttributes[_19d]){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,objj_msgSend(self,"className")+" does not contain theme attribute '"+_19d+"'"); +} +return objj_msgSend(_themeAttributes[_19d],"value"); +} +}),new objj_method(sel_getUid("currentValueForThemeAttribute:"),function(self,_cmd,_1a0){ +with(self){ +if(!_themeAttributes||!_themeAttributes[_1a0]){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,objj_msgSend(self,"className")+" does not contain theme attribute '"+_1a0+"'"); +} +return objj_msgSend(_themeAttributes[_1a0],"valueForState:",_themeState); +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("themeClass"),function(self,_cmd){ +with(self){ +return nil; +} +}),new objj_method(sel_getUid("themeAttributes"),function(self,_cmd){ +with(self){ +return nil; +} +}),new objj_method(sel_getUid("_themeAttributes"),function(self,_cmd){ +with(self){ +if(!_2){ +_2={}; +} +var _1a7=objj_msgSend(self,"class"),_1a8=objj_msgSend(CPView,"class"),_1a9=[]; +for(;_1a7&&_1a7!==_1a8;_1a7=objj_msgSend(_1a7,"superclass")){ +var _1aa=_2[class_getName(_1a7)]; +if(_1aa){ +_1a9=_1a9.length?_1a9.concat(_1aa):_1a9; +_2[objj_msgSend(self,"className")]=_1a9; +break; +} +var _1ab=objj_msgSend(_1a7,"themeAttributes"); +if(!_1ab){ +continue; +} +var _1ac=objj_msgSend(_1ab,"allKeys"),_1ad=_1ac.length; +while(_1ad--){ +var _1ae=_1ac[_1ad]; +_1a9.push(objj_msgSend(_1ab,"objectForKey:",_1ae)); +_1a9.push(_1ae); +} +} +return _1a9; +} +})]); +var _1af="CPViewAutoresizingMask",_1b0="CPViewAutoresizesSubviews",_1b1="CPViewBackgroundColor",_1b2="CPViewBoundsKey",_1b3="CPViewFrameKey",_1b4="CPViewHitTestsKey",_1b5="CPViewIsHiddenKey",_1b6="CPViewOpacityKey",_1b7="CPViewSubviewsKey",_1b8="CPViewSuperviewKey",_1b9="CPViewTagKey",_1ba="CPViewThemeStateKey",_1bb="CPViewWindowKey",_1bc="CPViewNextKeyViewKey",_1bd="CPViewPreviousKeyViewKey"; +var _3=objj_getClass("CPView"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPView\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("initWithCoder:"),function(self,_cmd,_1c0){ +with(self){ +_frame=objj_msgSend(_1c0,"decodeRectForKey:",_1b3); +_bounds=objj_msgSend(_1c0,"decodeRectForKey:",_1b2); +self=objj_msgSendSuper({receiver:self,super_class:objj_getClass("CPResponder")},"initWithCoder:",_1c0); +if(self){ +_tag=objj_msgSend(_1c0,"containsValueForKey:",_1b9)?objj_msgSend(_1c0,"decodeIntForKey:",_1b9):-1; +_window=objj_msgSend(_1c0,"decodeObjectForKey:",_1bb); +_subviews=objj_msgSend(_1c0,"decodeObjectForKey:",_1b7)||[]; +_superview=objj_msgSend(_1c0,"decodeObjectForKey:",_1b8); +_registeredDraggedTypes=objj_msgSend(CPSet,"set"); +_registeredDraggedTypesArray=[]; +_autoresizingMask=objj_msgSend(_1c0,"decodeIntForKey:",_1af)||CPViewNotSizable; +_autoresizesSubviews=!objj_msgSend(_1c0,"containsValueForKey:",_1b0)||objj_msgSend(_1c0,"decodeBoolForKey:",_1b0); +_hitTests=!objj_msgSend(_1c0,"containsValueForKey:",_1b4)||objj_msgSend(_1c0,"decodeObjectForKey:",_1b4); +_displayHash=objj_msgSend(self,"hash"); +if(objj_msgSend(_1c0,"containsValueForKey:",_1b5)){ +objj_msgSend(self,"setHidden:",objj_msgSend(_1c0,"decodeBoolForKey:",_1b5)); +}else{ +_isHidden=NO; +} +if(objj_msgSend(_1c0,"containsValueForKey:",_1b6)){ +objj_msgSend(self,"setAlphaValue:",objj_msgSend(_1c0,"decodeIntForKey:",_1b6)); +}else{ +_opacity=1; +} +objj_msgSend(self,"setBackgroundColor:",objj_msgSend(_1c0,"decodeObjectForKey:",_1b1)); +_theme=objj_msgSend(CPTheme,"defaultTheme"); +_themeState=CPThemeState(objj_msgSend(_1c0,"decodeIntForKey:",_1ba)); +_themeAttributes={}; +var _1c1=objj_msgSend(self,"class"),_1c2=objj_msgSend(_1c1,"themeClass"),_1c3=objj_msgSend(_1c1,"_themeAttributes"),_1c4=_1c3.length; +while(_1c4--){ +var _1c5=_1c3[_1c4--]; +_themeAttributes[_1c5]=CPThemeAttributeDecode(_1c0,_1c5,_1c3[_1c4],_theme,_1c2); +} +objj_msgSend(self,"setNeedsDisplay:",YES); +} +return self; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(self,_cmd,_1c8){ +with(self){ +objj_msgSendSuper({receiver:self,super_class:objj_getClass("CPResponder")},"encodeWithCoder:",_1c8); +if(_tag!==-1){ +objj_msgSend(_1c8,"encodeInt:forKey:",_tag,_1b9); +} +objj_msgSend(_1c8,"encodeRect:forKey:",_frame,_1b3); +objj_msgSend(_1c8,"encodeRect:forKey:",_bounds,_1b2); +if(_window!==nil){ +objj_msgSend(_1c8,"encodeConditionalObject:forKey:",_window,_1bb); +} +if(_subviews.length>0){ +objj_msgSend(_1c8,"encodeObject:forKey:",_subviews,_1b7); +} +if(_superview!==nil){ +objj_msgSend(_1c8,"encodeConditionalObject:forKey:",_superview,_1b8); +} +if(_autoresizingMask!==CPViewNotSizable){ +objj_msgSend(_1c8,"encodeInt:forKey:",_autoresizingMask,_1af); +} +if(!_autoresizesSubviews){ +objj_msgSend(_1c8,"encodeBool:forKey:",_autoresizesSubviews,_1b0); +} +if(_backgroundColor!==nil){ +objj_msgSend(_1c8,"encodeObject:forKey:",_backgroundColor,_1b1); +} +if(_hitTests!==YES){ +objj_msgSend(_1c8,"encodeBool:forKey:",_hitTests,_1b4); +} +if(_opacity!==1){ +objj_msgSend(_1c8,"encodeFloat:forKey:",_opacity,_1b6); +} +if(_isHidden){ +objj_msgSend(_1c8,"encodeBool:forKey:",_isHidden,_1b5); +} +var _1c9=objj_msgSend(self,"nextKeyView"); +if(_1c9!==nil){ +objj_msgSend(_1c8,"encodeConditionalObject:forKey:",_1c9,_1bc); +} +var _1ca=objj_msgSend(self,"previousKeyView"); +if(_1ca!==nil){ +objj_msgSend(_1c8,"encodeConditionalObject:forKey:",_1ca,_1bd); +} +objj_msgSend(_1c8,"encodeInt:forKey:",CPThemeStateName(_themeState),_1ba); +for(var _1cb in _themeAttributes){ +if(_themeAttributes.hasOwnProperty(_1cb)){ +CPThemeAttributeEncode(_1c8,_themeAttributes[_1cb]); +} +} +} +})]); +var _8e=function(_1cc){ +var _1cd=_1cc._superview; +return {autoresizingMask:_1cc._autoresizingMask,frame:CGRectMakeCopy(_1cc._frame),index:(_1cd?objj_msgSend(_1cd._subviews,"indexOfObjectIdenticalTo:",_1cc):0),superview:_1cd}; +}; +var _c2=function(_1ce,_1cf){ +var _1d0=CGAffineTransformMakeIdentity(),_1d1=YES,_1d2=nil,_1d3=nil; +if(_1ce){ +var view=_1ce; +while(view&&view!=_1cf){ +var _1d5=view._frame; +_1d0.tx+=(_1d5.origin.x); +_1d0.ty+=(_1d5.origin.y); +if(view._boundsTransform){ +var tx=_1d0.tx*view._boundsTransform.a+_1d0.ty*view._boundsTransform.c+view._boundsTransform.tx; +_1d0.ty=_1d0.tx*view._boundsTransform.b+_1d0.ty*view._boundsTransform.d+view._boundsTransform.ty; +_1d0.tx=tx; +var a=_1d0.a*view._boundsTransform.a+_1d0.b*view._boundsTransform.c,b=_1d0.a*view._boundsTransform.b+_1d0.b*view._boundsTransform.d,c=_1d0.c*view._boundsTransform.a+_1d0.d*view._boundsTransform.c; +_1d0.d=_1d0.c*view._boundsTransform.b+_1d0.d*view._boundsTransform.d; +_1d0.a=a; +_1d0.b=b; +_1d0.c=c; +} +view=view._superview; +} +if(view===_1cf){ +return _1d0; +}else{ +if(_1ce&&_1cf){ +_1d2=objj_msgSend(_1ce,"window"); +_1d3=objj_msgSend(_1cf,"window"); +if(_1d2&&_1d3&&_1d2!==_1d3){ +_1d1=NO; +var _1d5=objj_msgSend(_1d2,"frame"); +_1d0.tx+=(_1d5.origin.x); +_1d0.ty+=(_1d5.origin.y); +} +} +} +} +var view=_1cf; +while(view){ +var _1d5=view._frame; +_1d0.tx-=(_1d5.origin.x); +_1d0.ty-=(_1d5.origin.y); +if(view._boundsTransform){ +var tx=_1d0.tx*view._inverseBoundsTransform.a+_1d0.ty*view._inverseBoundsTransform.c+view._inverseBoundsTransform.tx; +_1d0.ty=_1d0.tx*view._inverseBoundsTransform.b+_1d0.ty*view._inverseBoundsTransform.d+view._inverseBoundsTransform.ty; +_1d0.tx=tx; +var a=_1d0.a*view._inverseBoundsTransform.a+_1d0.b*view._inverseBoundsTransform.c,b=_1d0.a*view._inverseBoundsTransform.b+_1d0.b*view._inverseBoundsTransform.d,c=_1d0.c*view._inverseBoundsTransform.a+_1d0.d*view._inverseBoundsTransform.c; +_1d0.d=_1d0.c*view._inverseBoundsTransform.b+_1d0.d*view._inverseBoundsTransform.d; +_1d0.a=a; +_1d0.b=b; +_1d0.c=c; +} +view=view._superview; +} +if(!_1d1){ +var _1d5=objj_msgSend(_1d3,"frame"); +_1d0.tx-=(_1d5.origin.x); +_1d0.ty-=(_1d5.origin.y); +} +return _1d0; +}; +p;11;CPWebView.jI;15;AppKit/CPView.jc;13060; +CPWebViewProgressStartedNotification="CPWebViewProgressStartedNotification"; +CPWebViewProgressFinishedNotification="CPWebViewProgressFinishedNotification"; +CPWebViewScrollAppKit=1; +CPWebViewScrollNative=2; +var _1=objj_allocateClassPair(CPView,"CPWebView"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_scrollView"),new objj_ivar("_frameView"),new objj_ivar("_iframe"),new objj_ivar("_mainFrameURL"),new objj_ivar("_backwardStack"),new objj_ivar("_forwardStack"),new objj_ivar("_ignoreLoadStart"),new objj_ivar("_ignoreLoadEnd"),new objj_ivar("_downloadDelegate"),new objj_ivar("_frameLoadDelegate"),new objj_ivar("_policyDelegate"),new objj_ivar("_resourceLoadDelegate"),new objj_ivar("_UIDelegate"),new objj_ivar("_wso"),new objj_ivar("_url"),new objj_ivar("_html"),new objj_ivar("_loadCallback"),new objj_ivar("_scrollMode"),new objj_ivar("_scrollSize")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFrame:frameName:groupName:"),function(_3,_4,_5,_6,_7){ +with(_3){ +if(_3=objj_msgSend(_3,"initWithFrame:",_5)){ +_iframe.name=_6; +} +return _3; +} +}),new objj_method(sel_getUid("initWithFrame:"),function(_8,_9,_a){ +with(_8){ +if(_8=objj_msgSendSuper({receiver:_8,super_class:objj_getClass("CPView")},"initWithFrame:",_a)){ +_mainFrameURL=nil; +_backwardStack=[]; +_forwardStack=[]; +_scrollMode=CPWebViewScrollNative; +objj_msgSend(_8,"_initDOMWithFrame:",_a); +} +return _8; +} +}),new objj_method(sel_getUid("_initDOMWithFrame:"),function(_b,_c,_d){ +with(_b){ +_ignoreLoadStart=YES; +_ignoreLoadEnd=YES; +_iframe=document.createElement("iframe"); +_iframe.name="iframe_"+Math.floor(Math.random()*10000); +_iframe.style.width="100%"; +_iframe.style.height="100%"; +_iframe.style.borderWidth="0px"; +objj_msgSend(_b,"setDrawsBackground:",YES); +_loadCallback=function(){ +if(!_ignoreLoadStart){ +objj_msgSend(_b,"_startedLoading"); +if(_mainFrameURL){ +objj_msgSend(_backwardStack,"addObject:",_mainFrameURL); +} +_mainFrameURL=_iframe.src; +_mainFrameURL=_iframe.src; +objj_msgSend(_forwardStack,"removeAllObjects"); +}else{ +_ignoreLoadStart=NO; +} +if(!_ignoreLoadEnd){ +objj_msgSend(_b,"_finishedLoading"); +}else{ +_ignoreLoadEnd=NO; +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +}; +if(_iframe.addEventListener){ +_iframe.addEventListener("load",_loadCallback,false); +}else{ +if(_iframe.attachEvent){ +_iframe.attachEvent("onload",_loadCallback); +} +} +_frameView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",objj_msgSend(_b,"bounds")); +_scrollView=objj_msgSend(objj_msgSend(CPScrollView,"alloc"),"initWithFrame:",objj_msgSend(_b,"bounds")); +objj_msgSend(_scrollView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +objj_msgSend(_scrollView,"setDocumentView:",_frameView); +_frameView._DOMElement.appendChild(_iframe); +objj_msgSend(_b,"_setScrollMode:",_scrollMode); +objj_msgSend(_b,"addSubview:",_scrollView); +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_e,_f,_10){ +with(_e){ +objj_msgSendSuper({receiver:_e,super_class:objj_getClass("CPView")},"setFrameSize:",_10); +objj_msgSend(_e,"_resizeWebFrame"); +} +}),new objj_method(sel_getUid("_resizeWebFrame"),function(_11,_12){ +with(_11){ +if(_scrollMode===CPWebViewScrollAppKit){ +if(_scrollSize){ +objj_msgSend(_frameView,"setFrameSize:",_scrollSize); +}else{ +objj_msgSend(_frameView,"setFrameSize:",objj_msgSend(_scrollView,"bounds").size); +var win=null; +try{ +win=objj_msgSend(_11,"DOMWindow"); +} +catch(e){ +} +if(win&&win.document){ +var _14=win.document.body.scrollWidth,_15=win.document.body.scrollHeight; +_iframe.setAttribute("width",_14); +_iframe.setAttribute("height",_15); +objj_msgSend(_frameView,"setFrameSize:",CGSizeMake(_14,_15)); +}else{ +CPLog.warn("using default size 800*1600"); +objj_msgSend(_frameView,"setFrameSize:",CGSizeMake(800,1600)); +} +} +} +} +}),new objj_method(sel_getUid("setScrollMode:"),function(_16,_17,_18){ +with(_16){ +if(_scrollMode==_18){ +return; +} +objj_msgSend(_16,"_setScrollMode:",_18); +} +}),new objj_method(sel_getUid("_setScrollMode:"),function(_19,_1a,_1b){ +with(_19){ +_scrollMode=_1b; +_ignoreLoadStart=YES; +_ignoreLoadEnd=YES; +var _1c=_iframe.parentNode; +_1c.removeChild(_iframe); +if(_scrollMode===CPWebViewScrollAppKit){ +objj_msgSend(_scrollView,"setHasHorizontalScroller:",YES); +objj_msgSend(_scrollView,"setHasVerticalScroller:",YES); +_iframe.setAttribute("scrolling","no"); +}else{ +objj_msgSend(_scrollView,"setHasHorizontalScroller:",NO); +objj_msgSend(_scrollView,"setHasVerticalScroller:",NO); +_iframe.setAttribute("scrolling","auto"); +objj_msgSend(_frameView,"setFrameSize:",objj_msgSend(_scrollView,"bounds").size); +} +_1c.appendChild(_iframe); +} +}),new objj_method(sel_getUid("loadHTMLString:"),function(_1d,_1e,_1f){ +with(_1d){ +objj_msgSend(_1d,"loadHTMLString:baseURL:",_1f,nil); +} +}),new objj_method(sel_getUid("loadHTMLString:baseURL:"),function(_20,_21,_22,URL){ +with(_20){ +objj_msgSend(_20,"_setScrollMode:",CPWebViewScrollAppKit); +objj_msgSend(_20,"_startedLoading"); +_ignoreLoadStart=YES; +_ignoreLoadEnd=NO; +_url=null; +_html=_22; +objj_msgSend(_20,"_load"); +} +}),new objj_method(sel_getUid("_loadMainFrameURL"),function(_24,_25){ +with(_24){ +objj_msgSend(_24,"_setScrollMode:",CPWebViewScrollNative); +objj_msgSend(_24,"_startedLoading"); +_ignoreLoadStart=YES; +_ignoreLoadEnd=NO; +_url=_mainFrameURL; +_html=null; +objj_msgSend(_24,"_load"); +} +}),new objj_method(sel_getUid("_load"),function(_26,_27){ +with(_26){ +if(_url){ +_iframe.src=_url; +}else{ +if(_html){ +_iframe.src=""; +window.setTimeout(function(){ +var win=objj_msgSend(_26,"DOMWindow"); +win.document.write(_html); +window.setTimeout(_loadCallback,1); +},0); +} +} +} +}),new objj_method(sel_getUid("_startedLoading"),function(_29,_2a){ +with(_29){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPWebViewProgressStartedNotification,_29); +if(objj_msgSend(_frameLoadDelegate,"respondsToSelector:",sel_getUid("webView:didStartProvisionalLoadForFrame:"))){ +objj_msgSend(_frameLoadDelegate,"webView:didStartProvisionalLoadForFrame:",_29,nil); +} +} +}),new objj_method(sel_getUid("_finishedLoading"),function(_2b,_2c){ +with(_2b){ +objj_msgSend(_2b,"_resizeWebFrame"); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPWebViewProgressFinishedNotification,_2b); +if(objj_msgSend(_frameLoadDelegate,"respondsToSelector:",sel_getUid("webView:didFinishLoadForFrame:"))){ +objj_msgSend(_frameLoadDelegate,"webView:didFinishLoadForFrame:",_2b,nil); +} +} +}),new objj_method(sel_getUid("mainFrameURL"),function(_2d,_2e){ +with(_2d){ +return _mainFrameURL; +} +}),new objj_method(sel_getUid("setMainFrameURL:"),function(_2f,_30,_31){ +with(_2f){ +if(_mainFrameURL){ +objj_msgSend(_backwardStack,"addObject:",_mainFrameURL); +} +_mainFrameURL=_31; +objj_msgSend(_forwardStack,"removeAllObjects"); +objj_msgSend(_2f,"_loadMainFrameURL"); +} +}),new objj_method(sel_getUid("goBack"),function(_32,_33){ +with(_32){ +if(_backwardStack.length>0){ +if(_mainFrameURL){ +objj_msgSend(_forwardStack,"addObject:",_mainFrameURL); +} +_mainFrameURL=objj_msgSend(_backwardStack,"lastObject"); +objj_msgSend(_backwardStack,"removeLastObject"); +objj_msgSend(_32,"_loadMainFrameURL"); +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("goForward"),function(_34,_35){ +with(_34){ +if(_forwardStack.length>0){ +if(_mainFrameURL){ +objj_msgSend(_backwardStack,"addObject:",_mainFrameURL); +} +_mainFrameURL=objj_msgSend(_forwardStack,"lastObject"); +objj_msgSend(_forwardStack,"removeLastObject"); +objj_msgSend(_34,"_loadMainFrameURL"); +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("canGoBack"),function(_36,_37){ +with(_36){ +return (_backwardStack.length>0); +} +}),new objj_method(sel_getUid("canGoForward"),function(_38,_39){ +with(_38){ +return (_forwardStack.length>0); +} +}),new objj_method(sel_getUid("backForwardList"),function(_3a,_3b){ +with(_3a){ +return {back:_backwardStack,forward:_forwardStack}; +} +}),new objj_method(sel_getUid("close"),function(_3c,_3d){ +with(_3c){ +_iframe.parentNode.removeChild(_iframe); +} +}),new objj_method(sel_getUid("DOMWindow"),function(_3e,_3f){ +with(_3e){ +return (_iframe.contentDocument&&_iframe.contentDocument.defaultView)||_iframe.contentWindow; +} +}),new objj_method(sel_getUid("windowScriptObject"),function(_40,_41){ +with(_40){ +var win=objj_msgSend(_40,"DOMWindow"); +if(!_wso||win!=objj_msgSend(_wso,"window")){ +if(win){ +_wso=objj_msgSend(objj_msgSend(CPWebScriptObject,"alloc"),"initWithWindow:",win); +}else{ +_wso=nil; +} +} +return _wso; +} +}),new objj_method(sel_getUid("stringByEvaluatingJavaScriptFromString:"),function(_43,_44,_45){ +with(_43){ +var _46=objj_msgSend(_43,"objectByEvaluatingJavaScriptFromString:",_45); +return _46?String(_46):nil; +} +}),new objj_method(sel_getUid("objectByEvaluatingJavaScriptFromString:"),function(_47,_48,_49){ +with(_47){ +return objj_msgSend(objj_msgSend(_47,"windowScriptObject"),"evaluateWebScript:",_49); +} +}),new objj_method(sel_getUid("computedStyleForElement:pseudoElement:"),function(_4a,_4b,_4c,_4d){ +with(_4a){ +var win=objj_msgSend(objj_msgSend(_4a,"windowScriptObject"),"window"); +if(win){ +return win.document.defaultView.getComputedStyle(_4c,_4d); +} +return nil; +} +}),new objj_method(sel_getUid("drawsBackground"),function(_4f,_50){ +with(_4f){ +return _iframe.style.backgroundColor!=""; +} +}),new objj_method(sel_getUid("setDrawsBackground:"),function(_51,_52,_53){ +with(_51){ +_iframe.style.backgroundColor=_53?"white":""; +} +}),new objj_method(sel_getUid("takeStringURLFrom:"),function(_54,_55,_56){ +with(_54){ +objj_msgSend(_54,"setMainFrameURL:",objj_msgSend(_56,"stringValue")); +} +}),new objj_method(sel_getUid("goBack:"),function(_57,_58,_59){ +with(_57){ +objj_msgSend(_57,"goBack"); +} +}),new objj_method(sel_getUid("goForward:"),function(_5a,_5b,_5c){ +with(_5a){ +objj_msgSend(_5a,"goForward"); +} +}),new objj_method(sel_getUid("stopLoading:"),function(_5d,_5e,_5f){ +with(_5d){ +} +}),new objj_method(sel_getUid("reload:"),function(_60,_61,_62){ +with(_60){ +objj_msgSend(_60,"_loadMainFrameURL"); +} +}),new objj_method(sel_getUid("print:"),function(_63,_64,_65){ +with(_63){ +try{ +objj_msgSend(_63,"DOMWindow").print(); +} +catch(e){ +alert("Please click the webpage and select \"Print\" from the \"File\" menu"); +} +} +}),new objj_method(sel_getUid("downloadDelegate"),function(_66,_67){ +with(_66){ +return _downloadDelegate; +} +}),new objj_method(sel_getUid("setDownloadDelegate:"),function(_68,_69,_6a){ +with(_68){ +_downloadDelegate=_6a; +} +}),new objj_method(sel_getUid("frameLoadDelegate"),function(_6b,_6c){ +with(_6b){ +return _frameLoadDelegate; +} +}),new objj_method(sel_getUid("setFrameLoadDelegate:"),function(_6d,_6e,_6f){ +with(_6d){ +_frameLoadDelegate=_6f; +} +}),new objj_method(sel_getUid("policyDelegate"),function(_70,_71){ +with(_70){ +return _policyDelegate; +} +}),new objj_method(sel_getUid("setPolicyDelegate:"),function(_72,_73,_74){ +with(_72){ +_policyDelegate=_74; +} +}),new objj_method(sel_getUid("resourceLoadDelegate"),function(_75,_76){ +with(_75){ +return _resourceLoadDelegate; +} +}),new objj_method(sel_getUid("setResourceLoadDelegate:"),function(_77,_78,_79){ +with(_77){ +_resourceLoadDelegate=_79; +} +}),new objj_method(sel_getUid("UIDelegate"),function(_7a,_7b){ +with(_7a){ +return _UIDelegate; +} +}),new objj_method(sel_getUid("setUIDelegate:"),function(_7c,_7d,_7e){ +with(_7c){ +_UIDelegate=_7e; +} +})]); +var _1=objj_allocateClassPair(CPObject,"CPWebScriptObject"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_window")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithWindow:"),function(_7f,_80,_81){ +with(_7f){ +if(_7f=objj_msgSendSuper({receiver:_7f,super_class:objj_getClass("CPObject")},"init")){ +_window=_81; +} +return _7f; +} +}),new objj_method(sel_getUid("callWebScriptMethod:withArguments:"),function(_82,_83,_84,_85){ +with(_82){ +if(typeof _window[_84]=="function"){ +try{ +return _window[_84].apply(_85); +} +catch(e){ +} +} +return undefined; +} +}),new objj_method(sel_getUid("evaluateWebScript:"),function(_86,_87,_88){ +with(_86){ +try{ +return _window.eval(_88); +} +catch(e){ +} +return undefined; +} +}),new objj_method(sel_getUid("window"),function(_89,_8a){ +with(_89){ +return _window; +} +})]); +var _1=objj_getClass("CPWebView"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPWebView\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_8b,_8c,_8d){ +with(_8b){ +_8b=objj_msgSendSuper({receiver:_8b,super_class:objj_getClass("CPView")},"initWithCoder:",_8d); +if(_8b){ +_mainFrameURL=nil; +_backwardStack=[]; +_forwardStack=[]; +_scrollMode=CPWebViewScrollNative; +objj_msgSend(_8b,"setBackgroundColor:",objj_msgSend(CPColor,"whiteColor")); +} +return _8b; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_8e,_8f,_90){ +with(_8e){ +var _91=_subviews; +_subviews=[]; +objj_msgSendSuper({receiver:_8e,super_class:objj_getClass("CPView")},"encodeWithCoder:",_90); +_subviews=_91; +} +})]); +p;10;CPWindow.jI;25;Foundation/CPCountedSet.jI;33;Foundation/CPNotificationCenter.jI;26;Foundation/CPUndoManager.ji;12;CGGeometry.ji;13;CPAnimation.ji;13;CPResponder.jc;39968; +CPBorderlessWindowMask=0; +CPTitledWindowMask=1<<0; +CPClosableWindowMask=1<<1; +CPMiniaturizableWindowMask=1<<2; +CPResizableWindowMask=1<<3; +CPTexturedBackgroundWindowMask=1<<8; +CPBorderlessBridgeWindowMask=1<<20; +CPHUDBackgroundWindowMask=1<<21; +CPWindowNotSizable=0; +CPWindowMinXMargin=1; +CPWindowWidthSizable=2; +CPWindowMaxXMargin=4; +CPWindowMinYMargin=8; +CPWindowHeightSizable=16; +CPWindowMaxYMargin=32; +CPBackgroundWindowLevel=-1; +CPNormalWindowLevel=4; +CPFloatingWindowLevel=5; +CPSubmenuWindowLevel=6; +CPTornOffMenuWindowLevel=6; +CPMainMenuWindowLevel=8; +CPStatusWindowLevel=9; +CPModalPanelWindowLevel=10; +CPPopUpMenuWindowLevel=11; +CPDraggingWindowLevel=12; +CPScreenSaverWindowLevel=13; +CPWindowOut=0; +CPWindowAbove=1; +CPWindowBelow=2; +CPWindowWillCloseNotification="CPWindowWillCloseNotification"; +CPWindowDidBecomeMainNotification="CPWindowDidBecomeMainNotification"; +CPWindowDidResignMainNotification="CPWindowDidResignMainNotification"; +CPWindowDidMoveNotification="CPWindowDidMoveNotification"; +var _1=20,_2=19,_3=10,_4=10,_5=5,_6=nil; +var _7=nil,_8=nil; +var _9=objj_allocateClassPair(CPResponder,"CPWindow"),_a=_9.isa; +class_addIvars(_9,[new objj_ivar("_windowNumber"),new objj_ivar("_styleMask"),new objj_ivar("_frame"),new objj_ivar("_level"),new objj_ivar("_isVisible"),new objj_ivar("_isAnimating"),new objj_ivar("_hasShadow"),new objj_ivar("_isMovableByWindowBackground"),new objj_ivar("_isDocumentEdited"),new objj_ivar("_isDocumentSaving"),new objj_ivar("_shadowView"),new objj_ivar("_windowView"),new objj_ivar("_contentView"),new objj_ivar("_toolbarView"),new objj_ivar("_mouseOverView"),new objj_ivar("_leftMouseDownView"),new objj_ivar("_rightMouseDownView"),new objj_ivar("_toolbar"),new objj_ivar("_firstResponder"),new objj_ivar("_initialFirstResponder"),new objj_ivar("_delegate"),new objj_ivar("_title"),new objj_ivar("_acceptsMouseMovedEvents"),new objj_ivar("_ignoresMouseEvents"),new objj_ivar("_windowController"),new objj_ivar("_minSize"),new objj_ivar("_maxSize"),new objj_ivar("_undoManager"),new objj_ivar("_representedURL"),new objj_ivar("_registeredDraggedTypes"),new objj_ivar("_registeredDraggedTypesArray"),new objj_ivar("_inclusiveRegisteredDraggedTypes"),new objj_ivar("_defaultButton"),new objj_ivar("_defaultButtonEnabled"),new objj_ivar("_autorecalculatesKeyViewLoop"),new objj_ivar("_keyViewLoopIsDirty"),new objj_ivar("_bridge"),new objj_ivar("_autoresizingMask"),new objj_ivar("_delegateRespondsToWindowWillReturnUndoManagerSelector"),new objj_ivar("_isFullBridge"),new objj_ivar("_fullBridgeSession")]); +objj_registerClassPair(_9); +objj_addClassForBundle(_9,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_9,[new objj_method(sel_getUid("initWithContentRect:styleMask:"),function(_b,_c,_d,_e){ +with(_b){ +return objj_msgSend(_b,"initWithContentRect:styleMask:bridge:",_d,_e,nil); +} +}),new objj_method(sel_getUid("initWithContentRect:styleMask:bridge:"),function(_f,_10,_11,_12,_13){ +with(_f){ +_f=objj_msgSendSuper({receiver:_f,super_class:objj_getClass("CPResponder")},"init"); +if(_f){ +_isFullBridge=NO; +_registeredDraggedTypes=objj_msgSend(CPSet,"set"); +_registeredDraggedTypesArray=[]; +_windowNumber=objj_msgSend(CPApp._windows,"count"); +CPApp._windows[_windowNumber]=_f; +_styleMask=_12; +_level=CPNormalWindowLevel; +_minSize=CGSizeMake(0,0); +_maxSize=CGSizeMake(1000000,1000000); +var _14=objj_msgSend(objj_msgSend(_f,"class"),"_windowViewClassForStyleMask:",_12); +_frame=objj_msgSend(_14,"frameRectForContentRect:",_11); +_windowView=objj_msgSend(objj_msgSend(_14,"alloc"),"initWithFrame:styleMask:",CGRectMake(0,0,CGRectGetWidth(_frame),CGRectGetHeight(_frame)),_12); +objj_msgSend(_windowView,"_setWindow:",_f); +objj_msgSend(_windowView,"setNextResponder:",_f); +objj_msgSend(_f,"setMovableByWindowBackground:",_12&CPHUDBackgroundWindowMask); +objj_msgSend(_f,"setContentView:",objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMakeZero())); +_firstResponder=_f; +objj_msgSend(_f,"setBridge:",_13); +objj_msgSend(_f,"setNextResponder:",CPApp); +objj_msgSend(_f,"setHasShadow:",_12!==CPBorderlessWindowMask); +if(_12&CPBorderlessBridgeWindowMask){ +objj_msgSend(_f,"setFullBridge:",YES); +} +_defaultButtonEnabled=YES; +_keyViewLoopIsDirty=YES; +} +return _f; +} +}),new objj_method(sel_getUid("awakeFromCib"),function(_15,_16){ +with(_15){ +if(_initialFirstResponder){ +objj_msgSend(_15,"makeFirstResponder:",_initialFirstResponder); +} +_keyViewLoopIsDirty=!objj_msgSend(_15,"_hasKeyViewLoop"); +} +}),new objj_method(sel_getUid("_setWindowView:"),function(_17,_18,_19){ +with(_17){ +if(_windowView===_19){ +return; +} +var _1a=_windowView; +_windowView=_19; +} +}),new objj_method(sel_getUid("setFullBridge:"),function(_1b,_1c,_1d){ +with(_1b){ +_1d=!!_1d; +if(_isFullBridge===_1d){ +return; +} +_isFullBridge=_1d; +if(_isFullBridge){ +_fullBridgeSession=_CPWindowFullBridgeSessionMake(_windowView,objj_msgSend(_1b,"contentRectForFrameRect:",objj_msgSend(_1b,"frame")),objj_msgSend(_1b,"hasShadow"),objj_msgSend(_1b,"level")); +var _1e=objj_msgSend(objj_msgSend(_1b,"class"),"_windowViewClassForFullBridgeStyleMask:",_styleMask),_1f=objj_msgSend(objj_msgSend(_1e,"alloc"),"initWithFrame:styleMask:",CGRectMakeZero(),_styleMask); +objj_msgSend(_1b,"_setWindowView:",_1f); +objj_msgSend(_1b,"setLevel:",CPBackgroundWindowLevel); +objj_msgSend(_1b,"setHasShadow:",NO); +objj_msgSend(_1b,"setAutoresizingMask:",CPWindowWidthSizable|CPWindowHeightSizable); +objj_msgSend(_1b,"setFrame:",objj_msgSend(_bridge,"visibleFrame")); +}else{ +var _1f=_fullBridgeSession.windowView; +objj_msgSend(_1b,"_setWindowView:",_1f); +objj_msgSend(_1b,"setLevel:",_fullBridgeSession.level); +objj_msgSend(_1b,"setHasShadow:",_fullBridgeSession.hasShadow); +objj_msgSend(_1b,"setAutoresizingMask:",CPWindowNotSizable); +objj_msgSend(_1b,"setFrame:",objj_msgSend(_1f,"frameRectForContentRect:",_fullBridgeSession.contentRect)); +} +} +}),new objj_method(sel_getUid("isFullBridge"),function(_20,_21){ +with(_20){ +return _isFullBridge; +} +}),new objj_method(sel_getUid("styleMask"),function(_22,_23){ +with(_22){ +return _styleMask; +} +}),new objj_method(sel_getUid("contentRectForFrameRect:"),function(_24,_25,_26){ +with(_24){ +return objj_msgSend(_windowView,"contentRectForFrameRect:",_26); +} +}),new objj_method(sel_getUid("frameRectForContentRect:"),function(_27,_28,_29){ +with(_27){ +return objj_msgSend(_windowView,"frameRectForContentRect:",_29); +} +}),new objj_method(sel_getUid("frame"),function(_2a,_2b){ +with(_2a){ +return {origin:{x:_frame.origin.x,y:_frame.origin.y},size:{width:_frame.size.width,height:_frame.size.height}}; +} +}),new objj_method(sel_getUid("setFrame:display:animate:"),function(_2c,_2d,_2e,_2f,_30){ +with(_2c){ +if(_30){ +var _31=objj_msgSend(objj_msgSend(_CPWindowFrameAnimation,"alloc"),"initWithWindow:targetFrame:",_2c,_2e); +objj_msgSend(_31,"startAnimation"); +}else{ +objj_msgSend(_2c,"setFrameOrigin:",_2e.origin); +objj_msgSend(_2c,"setFrameSize:",_2e.size); +} +} +}),new objj_method(sel_getUid("setFrame:"),function(_32,_33,_34){ +with(_32){ +objj_msgSend(_32,"setFrame:display:animate:",_34,YES,NO); +} +}),new objj_method(sel_getUid("setFrameOrigin:"),function(_35,_36,_37){ +with(_35){ +var _38=_frame.origin; +if((_38.x==_37.x&&_38.y==_37.y)){ +return; +} +_38.x=_37.x; +_38.y=_37.y; +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPWindowDidMoveNotification,_35); +} +}),new objj_method(sel_getUid("setFrameSize:"),function(_39,_3a,_3b){ +with(_39){ +_3b={width:MIN(MAX(_3b.width,_minSize.width),_maxSize.width),height:MIN(MAX(_3b.height,_minSize.height),_maxSize.height)}; +if((_frame.size.width==_3b.width&&_frame.size.height==_3b.height)){ +return; +} +_frame.size=_3b; +objj_msgSend(_windowView,"setFrameSize:",_3b); +if(_hasShadow){ +objj_msgSend(_shadowView,"setFrameSize:",{width:_1+_3b.width+_2,height:_4+_3b.height+_3+_5}); +} +if(!_isAnimating&&objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowDidResize:"))){ +objj_msgSend(_delegate,"windowDidResize:",_39); +} +} +}),new objj_method(sel_getUid("orderFront:"),function(_3c,_3d,_3e){ +with(_3c){ +objj_msgSend(_bridge,"order:window:relativeTo:",CPWindowAbove,_3c,nil); +} +}),new objj_method(sel_getUid("orderBack:"),function(_3f,_40,_41){ +with(_3f){ +} +}),new objj_method(sel_getUid("orderOut:"),function(_42,_43,_44){ +with(_42){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowWillClose:"))){ +objj_msgSend(_delegate,"windowWillClose:",_42); +} +objj_msgSend(_bridge,"order:window:relativeTo:",CPWindowOut,_42,nil); +if(objj_msgSend(CPApp,"keyWindow")==_42){ +objj_msgSend(_42,"resignKeyWindow"); +CPApp._keyWindow=nil; +} +} +}),new objj_method(sel_getUid("orderWindow:relativeTo:"),function(_45,_46,_47,_48){ +with(_45){ +objj_msgSend(_bridge,"order:window:relativeTo:",_47,_45,CPApp._windows[_48]); +} +}),new objj_method(sel_getUid("setLevel:"),function(_49,_4a,_4b){ +with(_49){ +_level=_4b; +} +}),new objj_method(sel_getUid("level"),function(_4c,_4d){ +with(_4c){ +return _level; +} +}),new objj_method(sel_getUid("isVisible"),function(_4e,_4f){ +with(_4e){ +return _isVisible; +} +}),new objj_method(sel_getUid("showsResizeIndicator"),function(_50,_51){ +with(_50){ +return objj_msgSend(_windowView,"showsResizeIndicator"); +} +}),new objj_method(sel_getUid("setShowsResizeIndicator:"),function(_52,_53,_54){ +with(_52){ +objj_msgSend(_windowView,"setShowsResizeIndicator:",_54); +} +}),new objj_method(sel_getUid("resizeIndicatorOffset"),function(_55,_56){ +with(_55){ +return objj_msgSend(_windowView,"resizeIndicatorOffset"); +} +}),new objj_method(sel_getUid("setResizeIndicatorOffset:"),function(_57,_58,_59){ +with(_57){ +objj_msgSend(_windowView,"setResizeIndicatorOffset:",_59); +} +}),new objj_method(sel_getUid("setContentView:"),function(_5a,_5b,_5c){ +with(_5a){ +if(_contentView){ +objj_msgSend(_contentView,"removeFromSuperview"); +} +var _5d=CGRectMake(0,0,CGRectGetWidth(_frame),CGRectGetHeight(_frame)); +_contentView=_5c; +objj_msgSend(_contentView,"setFrame:",objj_msgSend(_5a,"contentRectForFrameRect:",_5d)); +objj_msgSend(_contentView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +objj_msgSend(_windowView,"addSubview:",_contentView); +} +}),new objj_method(sel_getUid("contentView"),function(_5e,_5f){ +with(_5e){ +return _contentView; +} +}),new objj_method(sel_getUid("setBackgroundColor:"),function(_60,_61,_62){ +with(_60){ +objj_msgSend(_windowView,"setBackgroundColor:",_62); +} +}),new objj_method(sel_getUid("backgroundColor"),function(_63,_64){ +with(_63){ +return objj_msgSend(_windowView,"backgroundColor"); +} +}),new objj_method(sel_getUid("setMinSize:"),function(_65,_66,_67){ +with(_65){ +if(CGSizeEqualToSize(_minSize,_67)){ +return; +} +_minSize=CGSizeCreateCopy(_67); +var _68=CGSizeMakeCopy(objj_msgSend(_65,"frame").size),_69=NO; +if(_68.width<_minSize.width){ +_68.width=_minSize.width; +_69=YES; +} +if(_68.height<_minSize.height){ +_68.height=_minSize.height; +_69=YES; +} +if(_69){ +objj_msgSend(_65,"setFrameSize:",_68); +} +} +}),new objj_method(sel_getUid("minSize"),function(_6a,_6b){ +with(_6a){ +return _minSize; +} +}),new objj_method(sel_getUid("setMaxSize:"),function(_6c,_6d,_6e){ +with(_6c){ +if(CGSizeEqualToSize(_maxSize,_6e)){ +return; +} +_maxSize=CGSizeCreateCopy(_6e); +var _6f=CGSizeMakeCopy(objj_msgSend(_6c,"frame").size),_70=NO; +if(_6f.width>_maxSize.width){ +_6f.width=_maxSize.width; +_70=YES; +} +if(_6f.height>_maxSize.height){ +_6f.height=_maxSize.height; +_70=YES; +} +if(_70){ +objj_msgSend(_6c,"setFrameSize:",_6f); +} +} +}),new objj_method(sel_getUid("maxSize"),function(_71,_72){ +with(_71){ +return _maxSize; +} +}),new objj_method(sel_getUid("hasShadow"),function(_73,_74){ +with(_73){ +return _hasShadow; +} +}),new objj_method(sel_getUid("setHasShadow:"),function(_75,_76,_77){ +with(_75){ +if(_hasShadow===_77){ +return; +} +_hasShadow=_77; +if(_hasShadow){ +var _78=objj_msgSend(_windowView,"bounds"); +_shadowView=objj_msgSend(objj_msgSend(CPView,"alloc"),"initWithFrame:",CGRectMake(-_1,-_3+_5,_1+CGRectGetWidth(_78)+_2,_3+CGRectGetHeight(_78)+_4)); +if(!_6){ +var _79=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPWindow,"class")); +_6=objj_msgSend(CPColor,"colorWithPatternImage:",objj_msgSend(objj_msgSend(CPNinePartImage,"alloc"),"initWithImageSlices:",[objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_79,"pathForResource:","CPWindow/CPWindowShadow0.png"),CGSizeMake(20,19)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_79,"pathForResource:","CPWindow/CPWindowShadow1.png"),CGSizeMake(1,19)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_79,"pathForResource:","CPWindow/CPWindowShadow2.png"),CGSizeMake(19,19)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_79,"pathForResource:","CPWindow/CPWindowShadow3.png"),CGSizeMake(20,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_79,"pathForResource:","CPWindow/CPWindowShadow4.png"),CGSizeMake(1,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_79,"pathForResource:","CPWindow/CPWindowShadow5.png"),CGSizeMake(19,1)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_79,"pathForResource:","CPWindow/CPWindowShadow6.png"),CGSizeMake(20,18)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_79,"pathForResource:","CPWindow/CPWindowShadow7.png"),CGSizeMake(1,18)),objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_79,"pathForResource:","CPWindow/CPWindowShadow8.png"),CGSizeMake(19,18))])); +} +objj_msgSend(_shadowView,"setBackgroundColor:",_6); +objj_msgSend(_shadowView,"setAutoresizingMask:",CPViewWidthSizable|CPViewHeightSizable); +}else{ +if(_shadowView){ +_shadowView=nil; +} +} +} +}),new objj_method(sel_getUid("setDelegate:"),function(_7a,_7b,_7c){ +with(_7a){ +_delegate=_7c; +_delegateRespondsToWindowWillReturnUndoManagerSelector=objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowWillReturnUndoManager:")); +var _7d=objj_msgSend(CPNotificationCenter,"defaultCenter"); +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowDidBecomeMain:"))){ +objj_msgSend(_7d,"addObserver:selector:name:object:",_delegate,sel_getUid("windowDidBecomeMain:"),CPWindowDidBecomeMainNotification,_7a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowDidResignMain:"))){ +objj_msgSend(_7d,"addObserver:selector:name:object:",_delegate,sel_getUid("windowDidResignMain:"),CPWindowDidResignMainNotification,_7a); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowDidMove:"))){ +objj_msgSend(_7d,"addObserver:selector:name:object:",_delegate,sel_getUid("windowDidMove:"),CPWindowDidMoveNotification,_7a); +} +} +}),new objj_method(sel_getUid("delegate"),function(_7e,_7f){ +with(_7e){ +return _delegate; +} +}),new objj_method(sel_getUid("setWindowController:"),function(_80,_81,_82){ +with(_80){ +_windowController=_82; +} +}),new objj_method(sel_getUid("windowController"),function(_83,_84){ +with(_83){ +return _windowController; +} +}),new objj_method(sel_getUid("doCommandBySelector:"),function(_85,_86,_87){ +with(_85){ +if(objj_msgSend(_delegate,"respondsToSelector:",_87)){ +objj_msgSend(_delegate,"performSelector:",_87); +}else{ +objj_msgSendSuper({receiver:_85,super_class:objj_getClass("CPResponder")},"doCommandBySelector:",_87); +} +} +}),new objj_method(sel_getUid("acceptsFirstResponder"),function(_88,_89){ +with(_88){ +return YES; +} +}),new objj_method(sel_getUid("makeFirstResponder:"),function(_8a,_8b,_8c){ +with(_8a){ +if(_firstResponder==_8c){ +return YES; +} +if(!objj_msgSend(_firstResponder,"resignFirstResponder")){ +return NO; +} +if(!_8c||!objj_msgSend(_8c,"acceptsFirstResponder")||!objj_msgSend(_8c,"becomeFirstResponder")){ +_firstResponder=_8a; +return NO; +} +_firstResponder=_8c; +return YES; +} +}),new objj_method(sel_getUid("firstResponder"),function(_8d,_8e){ +with(_8d){ +return _firstResponder; +} +}),new objj_method(sel_getUid("acceptsMouseMovedEvents"),function(_8f,_90){ +with(_8f){ +return _acceptsMouseMovedEvents; +} +}),new objj_method(sel_getUid("setAcceptsMouseMovedEvents:"),function(_91,_92,_93){ +with(_91){ +_acceptsMouseMovedEvents=_93; +} +}),new objj_method(sel_getUid("ignoresMouseEvents"),function(_94,_95){ +with(_94){ +return _ignoresMouseEvents; +} +}),new objj_method(sel_getUid("setIgnoresMouseEvents:"),function(_96,_97,_98){ +with(_96){ +_ignoresMouseEvents=_98; +} +}),new objj_method(sel_getUid("title"),function(_99,_9a){ +with(_99){ +return _title; +} +}),new objj_method(sel_getUid("setTitle:"),function(_9b,_9c,_9d){ +with(_9b){ +_title=_9d; +objj_msgSend(_windowView,"setTitle:",_9d); +objj_msgSend(_9b,"_synchronizeMenuBarTitleWithWindowTitle"); +} +}),new objj_method(sel_getUid("setTitleWithRepresentedFilename:"),function(_9e,_9f,_a0){ +with(_9e){ +objj_msgSend(_9e,"setRepresentedFilename:",_a0); +objj_msgSend(_9e,"setTitle:",objj_msgSend(_a0,"lastPathComponent")); +} +}),new objj_method(sel_getUid("setRepresentedFilename:"),function(_a1,_a2,_a3){ +with(_a1){ +objj_msgSend(_a1,"setRepresentedURL:",_a3); +} +}),new objj_method(sel_getUid("representedFilename"),function(_a4,_a5){ +with(_a4){ +return _representedURL; +} +}),new objj_method(sel_getUid("setRepresentedURL:"),function(_a6,_a7,_a8){ +with(_a6){ +_representedURL=_a8; +} +}),new objj_method(sel_getUid("representedURL"),function(_a9,_aa){ +with(_a9){ +return _representedURL; +} +}),new objj_method(sel_getUid("setMovableByWindowBackground:"),function(_ab,_ac,_ad){ +with(_ab){ +_isMovableByWindowBackground=_ad; +} +}),new objj_method(sel_getUid("isMovableByWindowBackground"),function(_ae,_af){ +with(_ae){ +return _isMovableByWindowBackground; +} +}),new objj_method(sel_getUid("center"),function(_b0,_b1){ +with(_b0){ +var _b2=objj_msgSend(_b0,"frame").size,_b3=objj_msgSend(_bridge,"contentBounds").size; +objj_msgSend(_b0,"setFrameOrigin:",CGPointMake((_b3.width-_b2.width)/2,(_b3.height-_b2.height)/2)); +} +}),new objj_method(sel_getUid("sendEvent:"),function(_b4,_b5,_b6){ +with(_b4){ +var _b7=objj_msgSend(_b6,"type"),_b8=objj_msgSend(_b6,"locationInWindow"); +switch(_b7){ +case CPKeyUp: +return objj_msgSend(objj_msgSend(_b4,"firstResponder"),"keyUp:",_b6); +case CPKeyDown: +return objj_msgSend(objj_msgSend(_b4,"firstResponder"),"keyDown:",_b6); +case CPScrollWheel: +return objj_msgSend(objj_msgSend(_windowView,"hitTest:",_b8),"scrollWheel:",_b6); +case CPLeftMouseUp: +if(!_leftMouseDownView){ +return objj_msgSend(objj_msgSend(_windowView,"hitTest:",_b8),"mouseUp:",_b6); +} +objj_msgSend(_leftMouseDownView,"mouseUp:",_b6); +_leftMouseDownView=nil; +return; +case CPLeftMouseDown: +_leftMouseDownView=objj_msgSend(_windowView,"hitTest:",_b8); +if(_leftMouseDownView!=_firstResponder&&objj_msgSend(_leftMouseDownView,"acceptsFirstResponder")){ +objj_msgSend(_b4,"makeFirstResponder:",_leftMouseDownView); +} +var _b9=objj_msgSend(_b6,"window"); +if(objj_msgSend(_b9,"isKeyWindow")||objj_msgSend(_b9,"becomesKeyOnlyIfNeeded")){ +return objj_msgSend(_leftMouseDownView,"mouseDown:",_b6); +}else{ +objj_msgSend(_b4,"makeKeyAndOrderFront:",_b4); +if(objj_msgSend(_leftMouseDownView,"acceptsFirstMouse:",_b6)){ +return objj_msgSend(_leftMouseDownView,"mouseDown:",_b6); +} +} +break; +case CPLeftMouseDragged: +if(!_leftMouseDownView){ +return objj_msgSend(objj_msgSend(_windowView,"hitTest:",_b8),"mouseDragged:",_b6); +} +return objj_msgSend(_leftMouseDownView,"mouseDragged:",_b6); +case CPRightMouseUp: +return objj_msgSend(_rightMouseDownView,"mouseUp:",_b6); +case CPRightMouseDown: +_rightMouseDownView=objj_msgSend(_windowView,"hitTest:",_b8); +return objj_msgSend(_rightMouseDownView,"mouseDown:",_b6); +case CPRightMouseDragged: +return objj_msgSend(_rightMouseDownView,"mouseDragged:",_b6); +case CPMouseMoved: +if(!_acceptsMouseMovedEvents){ +return; +} +var _ba=objj_msgSend(_windowView,"hitTest:",_b8); +if(_ba!=_mouseOverView){ +if(_mouseOverView){ +objj_msgSend(_mouseOverView,"mouseExited:",objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",CPMouseExited,_b8,objj_msgSend(_b6,"modifierFlags"),objj_msgSend(_b6,"timestamp"),_windowNumber,nil,-1,1,0)); +} +if(_ba){ +objj_msgSend(_ba,"mouseEntered:",objj_msgSend(CPEvent,"mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:",CPMouseEntered,_b8,objj_msgSend(_b6,"modifierFlags"),objj_msgSend(_b6,"timestamp"),_windowNumber,nil,-1,1,0)); +} +_mouseOverView=_ba; +} +objj_msgSend(_mouseOverView,"mouseMoved:",_b6); +} +} +}),new objj_method(sel_getUid("windowNumber"),function(_bb,_bc){ +with(_bb){ +return _windowNumber; +} +}),new objj_method(sel_getUid("becomeKeyWindow"),function(_bd,_be){ +with(_bd){ +if(_firstResponder!=_bd&&objj_msgSend(_firstResponder,"respondsToSelector:",sel_getUid("becomeKeyWindow"))){ +objj_msgSend(_firstResponder,"becomeKeyWindow"); +} +} +}),new objj_method(sel_getUid("canBecomeKeyWindow"),function(_bf,_c0){ +with(_bf){ +return YES; +} +}),new objj_method(sel_getUid("isKeyWindow"),function(_c1,_c2){ +with(_c1){ +return objj_msgSend(CPApp,"keyWindow")==_c1; +} +}),new objj_method(sel_getUid("makeKeyAndOrderFront:"),function(_c3,_c4,_c5){ +with(_c3){ +objj_msgSend(_c3,"orderFront:",_c3); +objj_msgSend(_c3,"makeKeyWindow"); +objj_msgSend(_c3,"makeMainWindow"); +} +}),new objj_method(sel_getUid("makeKeyWindow"),function(_c6,_c7){ +with(_c6){ +if(!objj_msgSend(_c6,"canBecomeKeyWindow")){ +return; +} +objj_msgSend(CPApp._keyWindow,"resignKeyWindow"); +CPApp._keyWindow=_c6; +objj_msgSend(_c6,"becomeKeyWindow"); +} +}),new objj_method(sel_getUid("resignKeyWindow"),function(_c8,_c9){ +with(_c8){ +if(_firstResponder!=_c8&&objj_msgSend(_firstResponder,"respondsToSelector:",sel_getUid("resignKeyWindow"))){ +objj_msgSend(_firstResponder,"resignKeyWindow"); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowDidResignKey:"))){ +objj_msgSend(_delegate,"windowDidResignKey:",_c8); +} +} +}),new objj_method(sel_getUid("dragImage:at:offset:event:pasteboard:source:slideBack:"),function(_ca,_cb,_cc,_cd,_ce,_cf,_d0,_d1,_d2){ +with(_ca){ +objj_msgSend(objj_msgSend(CPDragServer,"sharedDragServer"),"dragImage:fromWindow:at:offset:event:pasteboard:source:slideBack:",_cc,_ca,objj_msgSend(_ca,"convertBaseToBridge:",_cd),_ce,_cf,_d0,_d1,_d2); +} +}),new objj_method(sel_getUid("_noteRegisteredDraggedTypes:"),function(_d3,_d4,_d5){ +with(_d3){ +if(!_d5){ +return; +} +if(!_inclusiveRegisteredDraggedTypes){ +_inclusiveRegisteredDraggedTypes=objj_msgSend(CPCountedSet,"set"); +} +objj_msgSend(_inclusiveRegisteredDraggedTypes,"unionSet:",_d5); +} +}),new objj_method(sel_getUid("_noteUnregisteredDraggedTypes:"),function(_d6,_d7,_d8){ +with(_d6){ +if(!_d8){ +return; +} +objj_msgSend(_inclusiveRegisteredDraggedTypes,"minusSet:",_d8); +if(objj_msgSend(_inclusiveRegisteredDraggedTypes,"count")===0){ +_inclusiveRegisteredDraggedTypes=nil; +} +} +}),new objj_method(sel_getUid("dragView:at:offset:event:pasteboard:source:slideBack:"),function(_d9,_da,_db,_dc,_dd,_de,_df,_e0,_e1){ +with(_d9){ +objj_msgSend(objj_msgSend(CPDragServer,"sharedDragServer"),"dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:",_db,_d9,objj_msgSend(_d9,"convertBaseToBridge:",_dc),_dd,_de,_df,_e0,_e1); +} +}),new objj_method(sel_getUid("registerForDraggedTypes:"),function(_e2,_e3,_e4){ +with(_e2){ +if(!_e4){ +return; +} +objj_msgSend(_e2,"_noteUnregisteredDraggedTypes:",_registeredDraggedTypes); +objj_msgSend(_registeredDraggedTypes,"addObjectsFromArray:",_e4); +objj_msgSend(_e2,"_noteRegisteredDraggedTypes:",_registeredDraggedTypes); +_registeredDraggedTypesArray=nil; +} +}),new objj_method(sel_getUid("registeredDraggedTypes"),function(_e5,_e6){ +with(_e5){ +if(!_registeredDraggedTypesArray){ +_registeredDraggedTypesArray=objj_msgSend(_registeredDraggedTypes,"allObjects"); +} +return _registeredDraggedTypesArray; +} +}),new objj_method(sel_getUid("unregisterDraggedTypes"),function(_e7,_e8){ +with(_e7){ +objj_msgSend(_e7,"_noteUnregisteredDraggedTypes:",_registeredDraggedTypes); +_registeredDraggedTypes=objj_msgSend(CPSet,"set"); +_registeredDraggedTypesArray=[]; +} +}),new objj_method(sel_getUid("setDocumentEdited:"),function(_e9,_ea,_eb){ +with(_e9){ +if(_isDocumentEdited==_eb){ +return; +} +_isDocumentEdited=_eb; +objj_msgSend(CPMenu,"_setMenuBarIconImageAlphaValue:",_isDocumentEdited?0.5:1); +} +}),new objj_method(sel_getUid("isDocumentEdited"),function(_ec,_ed){ +with(_ec){ +return _isDocumentEdited; +} +}),new objj_method(sel_getUid("setDocumentSaving:"),function(_ee,_ef,_f0){ +with(_ee){ +if(_isDocumentSaving==_f0){ +return; +} +_isDocumentSaving=_f0; +objj_msgSend(_ee,"_synchronizeSaveMenuWithDocumentSaving"); +objj_msgSend(_windowView,"windowDidChangeDocumentSaving"); +} +}),new objj_method(sel_getUid("isDocumentSaving"),function(_f1,_f2){ +with(_f1){ +return _isDocumentSaving; +} +}),new objj_method(sel_getUid("_synchronizeSaveMenuWithDocumentSaving"),function(_f3,_f4){ +with(_f3){ +if(!objj_msgSend(_f3,"isMainWindow")){ +return; +} +var _f5=objj_msgSend(CPApp,"mainMenu"),_f6=objj_msgSend(_f5,"indexOfItemWithTitle:",_isDocumentSaving?"Save":"Saving..."); +if(_f6==CPNotFound){ +return; +} +var _f7=objj_msgSend(_f5,"itemAtIndex:",_f6); +if(_isDocumentSaving){ +_7=objj_msgSend(_f7,"image"); +objj_msgSend(_f7,"setTitle:","Saving..."); +objj_msgSend(_f7,"setImage:",_8); +objj_msgSend(_f7,"setEnabled:",NO); +}else{ +objj_msgSend(_f7,"setTitle:","Save"); +objj_msgSend(_f7,"setImage:",_7); +objj_msgSend(_f7,"setEnabled:",YES); +} +} +}),new objj_method(sel_getUid("performClose:"),function(_f8,_f9,_fa){ +with(_f8){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("windowShouldClose:"))){ +if(!objj_msgSend(_delegate,"windowShouldClose:",_f8)){ +return; +} +}else{ +if(objj_msgSend(_f8,"respondsToSelector:",sel_getUid("windowShouldClose:"))&&!objj_msgSend(_f8,"windowShouldClose:",_f8)){ +return; +} +} +objj_msgSend(_f8,"close"); +} +}),new objj_method(sel_getUid("close"),function(_fb,_fc){ +with(_fb){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPWindowWillCloseNotification,_fb); +objj_msgSend(_fb,"orderOut:",nil); +} +}),new objj_method(sel_getUid("isMainWindow"),function(_fd,_fe){ +with(_fd){ +return objj_msgSend(CPApp,"mainWindow")==_fd; +} +}),new objj_method(sel_getUid("canBecomeMainWindow"),function(_ff,_cmd){ +with(_ff){ +if(objj_msgSend(_ff,"isVisible")){ +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("makeMainWindow"),function(self,_cmd){ +with(self){ +if(!objj_msgSend(self,"canBecomeMainWindow")){ +return; +} +objj_msgSend(CPApp._mainWindow,"resignMainWindow"); +CPApp._mainWindow=self; +objj_msgSend(self,"becomeMainWindow"); +} +}),new objj_method(sel_getUid("becomeMainWindow"),function(self,_cmd){ +with(self){ +objj_msgSend(self,"_synchronizeMenuBarTitleWithWindowTitle"); +objj_msgSend(self,"_synchronizeSaveMenuWithDocumentSaving"); +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPWindowDidBecomeMainNotification,self); +} +}),new objj_method(sel_getUid("resignMainWindow"),function(self,_cmd){ +with(self){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPWindowDidResignMainNotification,self); +} +}),new objj_method(sel_getUid("toolbar"),function(self,_cmd){ +with(self){ +return _toolbar; +} +}),new objj_method(sel_getUid("setToolbar:"),function(self,_cmd,_10b){ +with(self){ +if(_toolbar===_10b){ +return; +} +objj_msgSend(objj_msgSend(_10b,"_window"),"setToolbar:",nil); +objj_msgSend(_toolbar,"_setWindow:",nil); +_toolbar=_10b; +objj_msgSend(_toolbar,"_setWindow:",self); +objj_msgSend(self,"_noteToolbarChanged"); +} +}),new objj_method(sel_getUid("toggleToolbarShown:"),function(self,_cmd,_10e){ +with(self){ +var _10f=objj_msgSend(self,"toolbar"); +objj_msgSend(_10f,"setVisible:",!objj_msgSend(_10f,"isVisible")); +} +}),new objj_method(sel_getUid("_noteToolbarChanged"),function(self,_cmd){ +with(self){ +var _112=CGRectMakeCopy(objj_msgSend(self,"frame")),_113; +objj_msgSend(_windowView,"noteToolbarChanged"); +if(_isFullBridge){ +_113=objj_msgSend(_bridge,"visibleFrame"); +}else{ +_113=CGRectMakeCopy(objj_msgSend(self,"frame")); +_113.origin=_112.origin; +} +objj_msgSend(self,"setFrame:",_113); +} +}),new objj_method(sel_getUid("_setAttachedSheetFrameOrigin"),function(self,_cmd){ +with(self){ +var _116=objj_msgSend(objj_msgSend(self,"contentView"),"frame"),_117=CGRectMakeCopy(objj_msgSend(_attachedSheet,"frame")); +_117.origin.y=CGRectGetMinY(_frame)+CGRectGetMinY(_116); +_117.origin.x=CGRectGetMinX(_frame)+FLOOR((CGRectGetWidth(_frame)-CGRectGetWidth(_117))/2); +objj_msgSend(_attachedSheet,"setFrameOrigin:",_117.origin); +} +}),new objj_method(sel_getUid("_animateAttachedSheet"),function(self,_cmd){ +with(self){ +} +}),new objj_method(sel_getUid("_attachSheet:modalDelegate:didEndSelector:contextInfo:"),function(self,_cmd,_11c,_11d,_11e,_11f){ +with(self){ +_attachedSheet=_11c; +_11c._isSheet=YES; +objj_msgSend(self,"_setAttachedSheetFrameOrigin"); +objj_msgSend(_bridge,"order:window:relativeTo:",CPWindowAbove,_11c,self); +} +}),new objj_method(sel_getUid("attachedSheet"),function(self,_cmd){ +with(self){ +return _attachedSheet; +} +}),new objj_method(sel_getUid("isSheet"),function(self,_cmd){ +with(self){ +return _isSheet; +} +}),new objj_method(sel_getUid("becomesKeyOnlyIfNeeded"),function(self,_cmd){ +with(self){ +return NO; +} +}),new objj_method(sel_getUid("worksWhenModal"),function(self,_cmd){ +with(self){ +return NO; +} +}),new objj_method(sel_getUid("keyDown:"),function(self,_cmd,_12a){ +with(self){ +if(!objj_msgSend(self,"performKeyEquivalent:",_12a)){ +objj_msgSend(self,"interpretKeyEvents:",[_12a]); +} +} +}),new objj_method(sel_getUid("insertNewline:"),function(self,_cmd,_12d){ +with(self){ +if(_defaultButton&&_defaultButtonEnabled){ +objj_msgSend(_defaultButton,"performClick:",nil); +} +} +}),new objj_method(sel_getUid("insertTab:"),function(self,_cmd,_130){ +with(self){ +objj_msgSend(self,"selectNextKeyView:",nil); +} +}),new objj_method(sel_getUid("_dirtyKeyViewLoop"),function(self,_cmd){ +with(self){ +if(_autorecalculatesKeyViewLoop){ +_keyViewLoopIsDirty=YES; +} +} +}),new objj_method(sel_getUid("_hasKeyViewLoop"),function(self,_cmd){ +with(self){ +var _135=[]; +objj_msgSend(self,"_appendSubviewsOf:toArray:",_contentView,_135); +for(var i=0,_137=objj_msgSend(_135,"count");i<_137;i++){ +if(_135[i]._nextKeyView){ +return YES; +} +} +return NO; +} +}),new objj_method(sel_getUid("recalculateKeyViewLoop"),function(self,_cmd){ +with(self){ +var _13a=[]; +objj_msgSend(self,"_appendSubviewsOf:toArray:",_contentView,_13a); +var _13b=objj_msgSend(_13a,"sortedArrayUsingFunction:context:",_13c,_contentView),_13d=objj_msgSend(_13b,"count"); +for(var i=0;i<_13d;i++){ +objj_msgSend(_13b[i],"setNextKeyView:",_13b[(i+1)%_13d]); +} +_keyViewLoopIsDirty=NO; +} +}),new objj_method(sel_getUid("_appendSubviewsOf:toArray:"),function(self,_cmd,_141,_142){ +with(self){ +var _143=objj_msgSend(_141,"subviews"),_144=objj_msgSend(_143,"count"); +while(_144--){ +objj_msgSend(self,"_appendSubviewsOf:toArray:",_143[_144],_142); +} +objj_msgSend(_142,"addObject:",_141); +} +}),new objj_method(sel_getUid("setAutorecalculatesKeyViewLoop:"),function(self,_cmd,_147){ +with(self){ +if(_autorecalculatesKeyViewLoop===_147){ +return; +} +_autorecalculatesKeyViewLoop=_147; +objj_msgSend(self,"_dirtyKeyViewLoop"); +} +}),new objj_method(sel_getUid("autorecalculatesKeyViewLoop"),function(self,_cmd){ +with(self){ +return _autorecalculatesKeyViewLoop; +} +}),new objj_method(sel_getUid("selectNextKeyView:"),function(self,_cmd,_14c){ +with(self){ +if(objj_msgSend(_firstResponder,"isKindOfClass:",objj_msgSend(CPView,"class"))){ +objj_msgSend(self,"selectKeyViewFollowingView:",_firstResponder); +} +} +}),new objj_method(sel_getUid("selectPreviousKeyView:"),function(self,_cmd,_14f){ +with(self){ +if(objj_msgSend(_firstResponder,"isKindOfClass:",objj_msgSend(CPView,"class"))){ +objj_msgSend(self,"selectKeyViewPrecedingView:",_firstResponder); +} +} +}),new objj_method(sel_getUid("selectKeyViewFollowingView:"),function(self,_cmd,_152){ +with(self){ +if(_keyViewLoopIsDirty){ +objj_msgSend(self,"recalculateKeyViewLoop"); +} +objj_msgSend(self,"makeFirstResponder:",objj_msgSend(_152,"nextValidKeyView")); +} +}),new objj_method(sel_getUid("selectKeyViewPrecedingView:"),function(self,_cmd,_155){ +with(self){ +if(_keyViewLoopIsDirty){ +objj_msgSend(self,"recalculateKeyViewLoop"); +} +objj_msgSend(self,"makeFirstResponder:",objj_msgSend(_155,"previousValidKeyView")); +} +}),new objj_method(sel_getUid("setDefaultButtonCell:"),function(self,_cmd,_158){ +with(self){ +objj_msgSend(self,"setDefaultButton:",_158); +} +}),new objj_method(sel_getUid("defaultButtonCell"),function(self,_cmd){ +with(self){ +return objj_msgSend(self,"defaultButton"); +} +}),new objj_method(sel_getUid("setDefaultButton:"),function(self,_cmd,_15d){ +with(self){ +objj_msgSend(_defaultButton,"setDefaultButton:",NO); +_defaultButton=_15d; +objj_msgSend(_defaultButton,"setDefaultButton:",YES); +} +}),new objj_method(sel_getUid("defaultButton"),function(self,_cmd){ +with(self){ +return _defaultButton; +} +}),new objj_method(sel_getUid("enableKeyEquivalentForDefaultButton"),function(self,_cmd){ +with(self){ +_defaultButtonEnabled=YES; +} +}),new objj_method(sel_getUid("enableKeyEquivalentForDefaultButtonCell"),function(self,_cmd){ +with(self){ +objj_msgSend(self,"enableKeyEquivalentForDefaultButton"); +} +}),new objj_method(sel_getUid("disableKeyEquivalentForDefaultButton"),function(self,_cmd){ +with(self){ +_defaultButtonEnabled=NO; +} +}),new objj_method(sel_getUid("disableKeyEquivalentForDefaultButtonCell"),function(self,_cmd){ +with(self){ +objj_msgSend(self,"disableKeyEquivalentForDefaultButton"); +} +})]); +class_addMethods(_a,[new objj_method(sel_getUid("initialize"),function(self,_cmd){ +with(self){ +if(self!=objj_msgSend(CPWindow,"class")){ +return; +} +var _16a=objj_msgSend(CPBundle,"bundleForClass:",objj_msgSend(CPWindow,"class")); +_8=objj_msgSend(objj_msgSend(CPImage,"alloc"),"initWithContentsOfFile:size:",objj_msgSend(_16a,"pathForResource:","CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"),CGSizeMake(16,16)); +} +}),new objj_method(sel_getUid("_windowViewClassForStyleMask:"),function(self,_cmd,_16d){ +with(self){ +if(_16d&CPHUDBackgroundWindowMask){ +return _CPHUDWindowView; +}else{ +if(_16d===CPBorderlessWindowMask){ +return _CPBorderlessWindowView; +} +} +return _CPStandardWindowView; +} +}),new objj_method(sel_getUid("_windowViewClassForFullBridgeStyleMask:"),function(self,_cmd,_170){ +with(self){ +return _CPBorderlessBridgeWindowView; +} +}),new objj_method(sel_getUid("frameRectForContentRect:styleMask:"),function(self,_cmd,_173,_174){ +with(self){ +return objj_msgSend(objj_msgSend(objj_msgSend(self,"class"),"_windowViewClassForStyleMask:",_styleMask),"frameRectForContentRect:",_173); +} +})]); +var _13c=function(a,b,_177){ +var _178=objj_msgSend(a,"convertRect:toView:",objj_msgSend(a,"bounds"),nil),_179=objj_msgSend(b,"convertRect:toView:",objj_msgSend(b,"bounds"),nil); +if(CGRectGetMinY(_178) + + + + CPBundleExecutable + AppKit.sj + CPBundleIdentifier + com.280n.AppKit + CPBundleInfoDictionaryVersion + 6.0 + CPBundleName + AppKit + CPBundlePackageType + FMWK + CPBundlePlatforms + + browser + rhino + + CPBundleReplacedFiles + + _CPBorderlessBridgeWindowView.j + _CPBorderlessWindowView.j + _CPCibClassSwapper.j + _CPCibConnector.j + _CPCibCustomObject.j + _CPCibCustomResource.j + _CPCibCustomView.j + _CPCibKeyedUnarchiver.j + _CPCibObjectData.j + _CPCibWindowTemplate.j + _CPCornerView.j + _CPHUDWindowView.j + _CPImageAndTextView.j + _CPStandardWindowView.j + _CPWindowView.j + AppKit.j + CAAnimation.j + CABackingStore.j + CAFlashLayer.j + CALayer.j + CAMediaTimingFunction.j + CGAffineTransform.j + CGColor.j + CGColorSpace.j + CGContext.j + CGGeometry.j + CGGradient.j + CGPath.j + CPAlert.j + CPAnimation.j + CPApplication.j + CPBezierPath.j + CPButton.j + CPButtonBar.j + CPCheckBox.j + CPCib.j + CPCibLoading.j + CPClipView.j + CPCollectionView.j + CPColor.j + CPColorPanel.j + CPColorPicker.j + CPColorWell.j + CPCompatibility.j + CPControl.j + CPCookie.j + CPDocument.j + CPDocumentController.j + CPDOMDisplayServer.j + CPDOMWindowBridge.j + CPDOMWindowLayer.j + CPDragServer.j + CPEvent.j + CPFlashMovie.j + CPFlashView.j + CPFont.j + CPFontManager.j + CPGeometry.j + CPGraphicsContext.j + CPImage.j + CPImageView.j + CPMenu.j + CPMenuItem.j + CPOpenPanel.j + CPOutlineView.j + CPPanel.j + CPPasteboard.j + CPPopUpButton.j + CPProgressIndicator.j + CPRadio.j + CPResponder.j + CPSavePanel.j + CPScroller.j + CPScrollView.j + CPSearchField.j + CPSecureTextField.j + CPSegmentedControl.j + CPShadow.j + CPShadowView.j + CPSlider.j + CPSliderColorPicker.j + CPSplitView.j + CPStringDrawing.j + CPTableColumn.j + CPTableHeaderView.j + CPTableView.j + CPTabView.j + CPTabViewItem.j + CPTextField.j + CPTheme.j + CPThemeBlend.j + CPToolbar.j + CPToolbarItem.j + CPView.j + CPWebView.j + CPWindow.j + CPWindowController.j + NEWCPTableColumn.j + NEWCPTableView.j + OLDCPTableColumn.j + OLDCPTableView.j + + CPBundleVersion + 0.7.1 + + diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Aristo.sj b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Aristo.sj new file mode 100644 index 0000000..265f30b --- /dev/null +++ b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Aristo.sj @@ -0,0 +1 @@ +@STATIC;1.0;p;17;Aristo.keyedthemet;73929;280NPLIST;1.0;D;K;4;$topD;K;4;rootD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;7;CPThemeK;8;$classesA;S;7;CPThemeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;14;CPThemeNameKeyD;K;6;CP$UIDd;1;3E;K;20;CPThemeAttributesKeyD;K;6;CP$UIDd;1;5E;E;S;6;AristoD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;buttonD;K;6;CP$UIDd;1;6E;K;12;popup-buttonD;K;6;CP$UIDd;1;7E;K;8;scrollerD;K;6;CP$UIDd;1;8E;K;9;textfieldD;K;6;CP$UIDd;1;9E;K;5;radioD;K;6;CP$UIDd;2;10E;K;9;check-boxD;K;6;CP$UIDd;2;11E;K;17;segmented-controlD;K;6;CP$UIDd;2;12E;K;6;sliderD;K;6;CP$UIDd;2;13E;K;10;button-barD;K;6;CP$UIDd;2;14E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;max-sizeD;K;6;CP$UIDd;2;16E;K;8;min-sizeD;K;6;CP$UIDd;2;17E;K;13;image-scalingD;K;6;CP$UIDd;2;18E;K;14;image-positionD;K;6;CP$UIDd;2;19E;K;18;text-shadow-offsetD;K;6;CP$UIDd;2;20E;K;17;text-shadow-colorD;K;6;CP$UIDd;2;21E;K;4;fontD;K;6;CP$UIDd;2;22E;K;10;text-colorD;K;6;CP$UIDd;2;23E;K;15;line-break-modeD;K;6;CP$UIDd;2;24E;K;18;vertical-alignmentD;K;6;CP$UIDd;2;25E;K;9;alignmentD;K;6;CP$UIDd;2;26E;K;11;bezel-colorD;K;6;CP$UIDd;2;27E;K;13;content-insetD;K;6;CP$UIDd;2;28E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;max-sizeD;K;6;CP$UIDd;2;29E;K;8;min-sizeD;K;6;CP$UIDd;2;30E;K;13;image-scalingD;K;6;CP$UIDd;2;31E;K;14;image-positionD;K;6;CP$UIDd;2;32E;K;18;text-shadow-offsetD;K;6;CP$UIDd;2;33E;K;17;text-shadow-colorD;K;6;CP$UIDd;2;34E;K;4;fontD;K;6;CP$UIDd;2;35E;K;10;text-colorD;K;6;CP$UIDd;2;36E;K;15;line-break-modeD;K;6;CP$UIDd;2;37E;K;18;vertical-alignmentD;K;6;CP$UIDd;2;38E;K;9;alignmentD;K;6;CP$UIDd;2;39E;K;11;bezel-colorD;K;6;CP$UIDd;2;40E;K;13;content-insetD;K;6;CP$UIDd;2;41E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;19;minimum-knob-lengthD;K;6;CP$UIDd;2;42E;K;10;knob-insetD;K;6;CP$UIDd;2;43E;K;11;track-insetD;K;6;CP$UIDd;2;44E;K;19;increment-line-sizeD;K;6;CP$UIDd;2;45E;K;19;decrement-line-sizeD;K;6;CP$UIDd;2;46E;K;10;knob-colorD;K;6;CP$UIDd;2;47E;K;20;increment-line-colorD;K;6;CP$UIDd;2;48E;K;20;decrement-line-colorD;K;6;CP$UIDd;2;49E;K;15;knob-slot-colorD;K;6;CP$UIDd;2;50E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;fontD;K;6;CP$UIDd;2;51E;K;10;text-colorD;K;6;CP$UIDd;2;52E;K;9;alignmentD;K;6;CP$UIDd;2;53E;K;11;bezel-colorD;K;6;CP$UIDd;2;54E;K;13;content-insetD;K;6;CP$UIDd;2;55E;K;11;bezel-insetD;K;6;CP$UIDd;2;56E;K;8;max-sizeD;K;6;CP$UIDd;2;57E;K;8;min-sizeD;K;6;CP$UIDd;2;58E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;min-sizeD;K;6;CP$UIDd;2;59E;K;13;image-scalingD;K;6;CP$UIDd;2;60E;K;14;image-positionD;K;6;CP$UIDd;2;61E;K;4;fontD;K;6;CP$UIDd;2;62E;K;18;vertical-alignmentD;K;6;CP$UIDd;2;63E;K;9;alignmentD;K;6;CP$UIDd;2;64E;K;11;bezel-colorD;K;6;CP$UIDd;2;65E;K;13;content-insetD;K;6;CP$UIDd;2;66E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;min-sizeD;K;6;CP$UIDd;2;67E;K;13;image-scalingD;K;6;CP$UIDd;2;68E;K;14;image-positionD;K;6;CP$UIDd;2;69E;K;4;fontD;K;6;CP$UIDd;2;70E;K;18;vertical-alignmentD;K;6;CP$UIDd;2;71E;K;9;alignmentD;K;6;CP$UIDd;2;72E;K;11;bezel-colorD;K;6;CP$UIDd;2;73E;K;13;content-insetD;K;6;CP$UIDd;2;74E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;18;text-shadow-offsetD;K;6;CP$UIDd;2;75E;K;17;text-shadow-colorD;K;6;CP$UIDd;2;76E;K;4;fontD;K;6;CP$UIDd;2;77E;K;10;text-colorD;K;6;CP$UIDd;2;78E;K;15;line-break-modeD;K;6;CP$UIDd;2;79E;K;14;default-heightD;K;6;CP$UIDd;2;80E;K;17;divider-thicknessD;K;6;CP$UIDd;2;81E;K;19;divider-bezel-colorD;K;6;CP$UIDd;2;82E;K;26;center-segment-bezel-colorD;K;6;CP$UIDd;2;83E;K;25;right-segment-bezel-colorD;K;6;CP$UIDd;2;84E;K;24;left-segment-bezel-colorD;K;6;CP$UIDd;2;85E;K;13;content-insetD;K;6;CP$UIDd;2;86E;K;11;bezel-insetD;K;6;CP$UIDd;2;87E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;11;track-colorD;K;6;CP$UIDd;2;88E;K;11;track-widthD;K;6;CP$UIDd;2;89E;K;9;knob-sizeD;K;6;CP$UIDd;2;90E;K;10;knob-colorD;K;6;CP$UIDd;2;91E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;11;bezel-colorD;K;6;CP$UIDd;2;92E;E;E;D;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;93E;K;5;valueD;K;6;CP$UIDd;2;95E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;96E;K;5;valueD;K;6;CP$UIDd;2;97E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;98E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;100E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;101E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;103E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;104E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;106E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;107E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;110E;K;6;valuesD;K;6;CP$UIDd;3;111E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;112E;K;5;valueD;K;6;CP$UIDd;3;113E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;114E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;115E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;116E;K;6;valuesD;K;6;CP$UIDd;3;117E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;118E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;119E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;93E;K;5;valueD;K;6;CP$UIDd;3;120E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;96E;K;5;valueD;K;6;CP$UIDd;3;121E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;98E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;100E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;101E;K;5;valueD;K;6;CP$UIDd;3;122E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;104E;K;5;valueD;K;6;CP$UIDd;3;123E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;107E;K;5;valueD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;110E;K;5;valueD;K;6;CP$UIDd;3;124E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;112E;K;5;valueD;K;6;CP$UIDd;3;113E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;114E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;115E;K;5;valueD;K;6;CP$UIDd;3;125E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;116E;K;6;valuesD;K;6;CP$UIDd;3;126E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;118E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;127E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;128E;K;6;valuesD;K;6;CP$UIDd;3;129E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;130E;K;6;valuesD;K;6;CP$UIDd;3;131E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;132E;K;6;valuesD;K;6;CP$UIDd;3;133E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;134E;K;6;valuesD;K;6;CP$UIDd;3;135E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;136E;K;6;valuesD;K;6;CP$UIDd;3;137E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;138E;K;6;valuesD;K;6;CP$UIDd;3;139E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;140E;K;6;valuesD;K;6;CP$UIDd;3;141E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;142E;K;6;valuesD;K;6;CP$UIDd;3;143E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;144E;K;6;valuesD;K;6;CP$UIDd;3;145E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;107E;K;6;valuesD;K;6;CP$UIDd;3;146E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;110E;K;5;stateD;K;6;CP$UIDd;3;147E;K;5;valueD;K;6;CP$UIDd;3;148E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;115E;K;5;valueD;K;6;CP$UIDd;3;125E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;116E;K;6;valuesD;K;6;CP$UIDd;3;149E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;118E;K;6;valuesD;K;6;CP$UIDd;3;150E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;151E;K;6;valuesD;K;6;CP$UIDd;3;152E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;93E;K;5;stateD;K;6;CP$UIDd;3;153E;K;5;valueD;K;6;CP$UIDd;3;154E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;96E;K;5;stateD;K;6;CP$UIDd;3;153E;K;5;valueD;K;6;CP$UIDd;3;155E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;96E;K;5;valueD;K;6;CP$UIDd;3;156E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;98E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;100E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;107E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;114E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;115E;K;6;valuesD;K;6;CP$UIDd;3;157E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;116E;K;6;valuesD;K;6;CP$UIDd;3;158E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;118E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;159E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;96E;K;5;valueD;K;6;CP$UIDd;3;160E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;2;98E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;100E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;107E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;114E;K;5;valueD;K;6;CP$UIDd;2;99E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;115E;K;6;valuesD;K;6;CP$UIDd;3;161E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;116E;K;6;valuesD;K;6;CP$UIDd;3;162E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;118E;K;5;stateD;K;6;CP$UIDd;3;102E;K;5;valueD;K;6;CP$UIDd;3;163E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;101E;K;5;valueD;K;6;CP$UIDd;3;164E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;104E;K;5;valueD;K;6;CP$UIDd;3;165E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;107E;K;5;valueD;K;6;CP$UIDd;3;109E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;110E;K;5;valueD;K;6;CP$UIDd;3;166E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;112E;K;5;valueD;K;6;CP$UIDd;3;113E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;167E;K;5;valueD;K;6;CP$UIDd;3;168E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;169E;K;5;valueD;K;6;CP$UIDd;3;170E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;171E;K;6;valuesD;K;6;CP$UIDd;3;172E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;173E;K;6;valuesD;K;6;CP$UIDd;3;174E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;175E;K;6;valuesD;K;6;CP$UIDd;3;176E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;177E;K;6;valuesD;K;6;CP$UIDd;3;178E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;118E;K;5;valueD;K;6;CP$UIDd;3;179E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;151E;K;5;valueD;K;6;CP$UIDd;3;180E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;181E;K;6;valuesD;K;6;CP$UIDd;3;182E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;183E;K;5;valueD;K;6;CP$UIDd;3;184E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;185E;K;6;valuesD;K;6;CP$UIDd;3;186E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;138E;K;6;valuesD;K;6;CP$UIDd;3;187E;E;D;K;6;$classD;K;6;CP$UIDd;2;15E;K;4;nameD;K;6;CP$UIDd;3;116E;K;5;valueD;K;6;CP$UIDd;3;188E;E;S;8;max-sizeD;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;189E;E;S;8;min-sizeD;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;190E;E;S;13;image-scalingd;1;2S;14;image-positionS;18;text-shadow-offsetS;8;borderedD;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;191E;E;S;17;text-shadow-colorD;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;193E;E;S;4;fontD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;108E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;194E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;195E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;196E;E;S;10;text-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;7;defaultD;K;6;CP$UIDd;3;197E;K;6;normalD;K;6;CP$UIDd;3;198E;E;E;S;15;line-break-moded;1;4S;18;vertical-alignmentS;9;alignmentS;11;bezel-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;28;highlighted+bordered+defaultD;K;6;CP$UIDd;3;199E;K;16;bordered+defaultD;K;6;CP$UIDd;3;200E;K;20;highlighted+borderedD;K;6;CP$UIDd;3;201E;K;8;borderedD;K;6;CP$UIDd;3;202E;E;E;S;13;content-insetD;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;203E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;189E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;204E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;191E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;205E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;206E;E;d;1;0D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;19;bordered+pulls-downD;K;6;CP$UIDd;3;207E;K;8;borderedD;K;6;CP$UIDd;3;208E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;209E;E;S;19;minimum-knob-lengthD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;210E;K;8;verticalD;K;6;CP$UIDd;3;210E;E;E;S;10;knob-insetD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;211E;K;8;verticalD;K;6;CP$UIDd;3;212E;E;E;S;11;track-insetD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;213E;K;8;verticalD;K;6;CP$UIDd;3;214E;E;E;S;19;increment-line-sizeD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;215E;K;8;verticalD;K;6;CP$UIDd;3;216E;E;E;S;19;decrement-line-sizeD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;217E;K;8;verticalD;K;6;CP$UIDd;3;218E;E;E;S;10;knob-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;219E;K;8;verticalD;K;6;CP$UIDd;3;220E;E;E;S;20;increment-line-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;221E;K;11;highlightedD;K;6;CP$UIDd;3;222E;K;8;disabledD;K;6;CP$UIDd;3;223E;K;17;disabled+verticalD;K;6;CP$UIDd;3;224E;K;20;highlighted+verticalD;K;6;CP$UIDd;3;225E;K;8;verticalD;K;6;CP$UIDd;3;226E;E;E;S;20;decrement-line-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;227E;K;11;highlightedD;K;6;CP$UIDd;3;228E;K;8;disabledD;K;6;CP$UIDd;3;229E;K;17;disabled+verticalD;K;6;CP$UIDd;3;230E;K;20;highlighted+verticalD;K;6;CP$UIDd;3;231E;K;8;verticalD;K;6;CP$UIDd;3;232E;E;E;S;15;knob-slot-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;233E;K;8;disabledD;K;6;CP$UIDd;3;234E;K;17;disabled+verticalD;K;6;CP$UIDd;3;235E;K;8;verticalD;K;6;CP$UIDd;3;236E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;normalD;K;6;CP$UIDd;3;237E;K;7;bezeledD;K;6;CP$UIDd;3;237E;E;E;S;11;placeholderD;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;238E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;15;bezeled+roundedD;K;6;CP$UIDd;3;239E;K;23;bezeled+editing+roundedD;K;6;CP$UIDd;3;240E;K;15;bezeled+editingD;K;6;CP$UIDd;3;241E;K;7;bezeledD;K;6;CP$UIDd;3;242E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;15;bezeled+roundedD;K;6;CP$UIDd;3;243E;K;7;bezeledD;K;6;CP$UIDd;3;244E;E;E;S;11;bezel-insetD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;15;bezeled+roundedD;K;6;CP$UIDd;3;245E;K;23;bezeled+editing+roundedD;K;6;CP$UIDd;3;246E;K;15;bezeled+editingD;K;6;CP$UIDd;3;247E;K;7;bezeledD;K;6;CP$UIDd;3;248E;E;E;S;15;bezeled+roundedD;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;249E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;250E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;251E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;borderedD;K;6;CP$UIDd;3;125E;K;6;normalD;K;6;CP$UIDd;3;125E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;17;selected+borderedD;K;6;CP$UIDd;3;252E;K;8;borderedD;K;6;CP$UIDd;3;253E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;254E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;251E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;borderedD;K;6;CP$UIDd;3;125E;K;6;normalD;K;6;CP$UIDd;3;125E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;17;selected+borderedD;K;6;CP$UIDd;3;255E;K;8;borderedD;K;6;CP$UIDd;3;256E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;254E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;191E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;257E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;258E;E;S;14;default-heightd;2;24S;17;divider-thicknessd;1;1S;19;divider-bezel-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;11;highlightedD;K;6;CP$UIDd;3;259E;K;8;selectedD;K;6;CP$UIDd;3;260E;K;8;disabledD;K;6;CP$UIDd;3;261E;K;6;normalD;K;6;CP$UIDd;3;259E;E;E;S;26;center-segment-bezel-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;20;highlighted+selectedD;K;6;CP$UIDd;3;262E;K;11;highlightedD;K;6;CP$UIDd;3;263E;K;8;selectedD;K;6;CP$UIDd;3;264E;K;8;disabledD;K;6;CP$UIDd;3;265E;K;6;normalD;K;6;CP$UIDd;3;266E;E;E;S;25;right-segment-bezel-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;20;highlighted+selectedD;K;6;CP$UIDd;3;267E;K;11;highlightedD;K;6;CP$UIDd;3;268E;K;8;selectedD;K;6;CP$UIDd;3;269E;K;8;disabledD;K;6;CP$UIDd;3;270E;K;6;normalD;K;6;CP$UIDd;3;271E;E;E;S;24;left-segment-bezel-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;20;highlighted+selectedD;K;6;CP$UIDd;3;272E;K;11;highlightedD;K;6;CP$UIDd;3;273E;K;8;selectedD;K;6;CP$UIDd;3;274E;K;8;disabledD;K;6;CP$UIDd;3;275E;K;6;normalD;K;6;CP$UIDd;3;276E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;277E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;278E;E;S;11;track-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;circularD;K;6;CP$UIDd;3;279E;K;8;verticalD;K;6;CP$UIDd;3;280E;K;6;normalD;K;6;CP$UIDd;3;281E;E;E;S;11;track-widthd;1;5S;9;knob-sizeD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;circularD;K;6;CP$UIDd;3;282E;K;6;normalD;K;6;CP$UIDd;3;283E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;circularD;K;6;CP$UIDd;3;284E;K;20;highlighted+circularD;K;6;CP$UIDd;3;284E;K;11;highlightedD;K;6;CP$UIDd;3;285E;K;6;normalD;K;6;CP$UIDd;3;286E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;288E;E;S;24;{"width":-1,"height":24}S;23;{"width":0,"height":24}S;22;{"width":0,"height":1}D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;170E;E;E;S;5;Ariald;2;12T;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;290E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;3;291E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;292E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;293E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;294E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;295E;E;S;39;{"top":0,"right":5,"bottom":0,"left":5}S;24;{"width":32,"height":24}D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;297E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;298E;E;S;40;{"top":0,"right":32,"bottom":0,"left":5}d;2;19D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;299E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;300E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;301E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;302E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;306E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;307E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;309E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;310E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;311E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;312E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;313E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;314E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;315E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;316E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;317E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;318E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;319E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;320E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;321E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;322E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;323E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;324E;E;D;K;6;$classD;K;6;CP$UIDd;3;108E;K;13;CPFontNameKeyD;K;6;CP$UIDd;3;194E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;3;195E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;326E;D;K;6;CP$UIDd;3;327E;D;K;6;CP$UIDd;3;328E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;329E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;330E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;332E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;333E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;334E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;335E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;336E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;278E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;278E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;337E;E;S;24;{"width":-1,"height":30}S;23;{"width":0,"height":30}S;23;{"width":0,"height":17}D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;338E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;339E;E;S;40;{"top":0,"right":0,"bottom":0,"left":20}D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;340E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;341E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;289E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;342E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;343E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;344E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;345E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;346E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;347E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;348E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;349E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;350E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;351E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;352E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;353E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;354E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;355E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;356E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;357E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;358E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;359E;E;S;39;{"top":0,"right":4,"bottom":0,"left":4}S;39;{"top":0,"right":0,"bottom":0,"left":0}D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;360E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;361E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;362E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;363E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;364E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;365E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;366E;E;D;K;6;$classD;K;6;CP$UIDd;3;105E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;3;367E;E;D;K;10;$classnameS;16;CPThreePartImageK;8;$classesA;S;16;CPThreePartImageS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;368E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;f;18;0.9411764705882353D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;369E;D;K;6;CP$UIDd;3;370E;D;K;6;CP$UIDd;3;371E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;296E;D;K;6;CP$UIDd;3;170E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;372E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;373E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;374E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;375E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;f;19;0.30980392156862746D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;376E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;377E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;S;39;{"top":2,"right":0,"bottom":0,"left":0}S;39;{"top":0,"right":1,"bottom":0,"left":1}S;43;{"top":0,"right":-10,"bottom":0,"left":-11}S;41;{"top":-9,"right":0,"bottom":-9,"left":0}S;24;{"width":31,"height":17}S;24;{"width":17,"height":30}S;24;{"width":32,"height":17}D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;378E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;379E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;196E;E;D;K;10;$classnameS;20;_CPCibCustomResourceK;8;$classesA;S;20;_CPCibCustomResourceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;381E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;382E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;383E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;384E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;385E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;386E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;387E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;388E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;389E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;390E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;391E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;392E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;393E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;394E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;395E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;396E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;397E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;398E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;399E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;400E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;401E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;402E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;403E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;404E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;405E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;406E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;407E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;408E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;409E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;410E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;411E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;412E;E;F;f;18;0.7411764705882353f;18;0.7803921568627451f;18;0.8274509803921568D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;413E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;414E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;10;$classnameS;15;CPNinePartImageK;8;$classesA;S;15;CPNinePartImageS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;3;331E;K;29;CPNinePartImageImageSlicesKeyD;K;6;CP$UIDd;3;415E;E;D;K;6;$classD;K;6;CP$UIDd;3;331E;K;29;CPNinePartImageImageSlicesKeyD;K;6;CP$UIDd;3;416E;E;S;41;{"top":9,"right":14,"bottom":6,"left":14}S;39;{"top":9,"right":7,"bottom":5,"left":8}S;39;{"top":4,"right":4,"bottom":4,"left":4}S;39;{"top":4,"right":4,"bottom":3,"left":4}D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;417E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;418E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;419E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;420E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;421E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;422E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;423E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;424E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;425E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;426E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;427E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;428E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;429E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;430E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;431E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;432E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;433E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;434E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;435E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;436E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;437E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;438E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;439E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;440E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;441E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;442E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;443E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;444E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;445E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;446E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;447E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;448E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;449E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;450E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;451E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;452E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;453E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;454E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;455E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;456E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;457E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;458E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;459E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;196E;E;D;K;6;$classD;K;6;CP$UIDd;3;287E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;3;460E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;3;325E;E;S;22;{"width":5,"height":5}S;24;{"width":23,"height":24}D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;461E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;462E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;463E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;464E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;465E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;466E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;467E;D;K;6;CP$UIDd;3;468E;D;K;6;CP$UIDd;3;469E;E;E;f;20;0.050980392156862744f;3;0.2f;19;0.27450980392156865D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;470E;D;K;6;CP$UIDd;3;471E;D;K;6;CP$UIDd;3;472E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;473E;D;K;6;CP$UIDd;3;474E;D;K;6;CP$UIDd;3;475E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;476E;D;K;6;CP$UIDd;3;477E;D;K;6;CP$UIDd;3;478E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;479E;D;K;6;CP$UIDd;3;480E;D;K;6;CP$UIDd;3;481E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;482E;D;K;6;CP$UIDd;3;483E;D;K;6;CP$UIDd;3;484E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;485E;D;K;6;CP$UIDd;3;486E;D;K;6;CP$UIDd;3;487E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;488E;D;K;6;CP$UIDd;3;489E;D;K;6;CP$UIDd;3;490E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;491E;D;K;6;CP$UIDd;3;492E;D;K;6;CP$UIDd;3;493E;E;E;S;7;CPImageS;24;scroller-right-arrow.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;494E;E;E;S;36;scroller-right-arrow-highlighted.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;495E;E;E;S;33;scroller-right-arrow-disabled.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;496E;E;E;S;32;scroller-down-arrow-disabled.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;497E;E;E;S;35;scroller-down-arrow-highlighted.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;498E;E;E;S;23;scroller-down-arrow.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;499E;E;E;S;23;scroller-left-arrow.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;500E;E;E;S;35;scroller-left-arrow-highlighted.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;501E;E;E;S;32;scroller-left-arrow-disabled.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;502E;E;E;S;30;scroller-up-arrow-disabled.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;503E;E;E;S;33;scroller-up-arrow-highlighted.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;504E;E;E;S;21;scroller-up-arrow.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;505E;E;E;S;29;scroller-horizontal-track.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;506E;E;E;S;38;scroller-horizontal-track-disabled.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;507E;E;E;S;36;scroller-vertical-track-disabled.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;508E;E;E;S;27;scroller-vertical-track.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;509E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;510E;D;K;6;CP$UIDd;3;511E;D;K;6;CP$UIDd;3;512E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;513E;D;K;6;CP$UIDd;3;514E;D;K;6;CP$UIDd;3;515E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;516E;D;K;6;CP$UIDd;3;517E;D;K;6;CP$UIDd;3;518E;D;K;6;CP$UIDd;3;519E;D;K;6;CP$UIDd;3;520E;D;K;6;CP$UIDd;3;521E;D;K;6;CP$UIDd;3;522E;D;K;6;CP$UIDd;3;523E;D;K;6;CP$UIDd;3;524E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;525E;D;K;6;CP$UIDd;3;526E;D;K;6;CP$UIDd;3;527E;D;K;6;CP$UIDd;3;528E;D;K;6;CP$UIDd;3;529E;D;K;6;CP$UIDd;3;530E;D;K;6;CP$UIDd;3;531E;D;K;6;CP$UIDd;3;532E;D;K;6;CP$UIDd;3;533E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;534E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;535E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;536E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;537E;D;K;6;CP$UIDd;1;0E;D;K;6;CP$UIDd;1;0E;E;E;S;35;segmented-control-bezel-divider.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;538E;E;E;S;47;segmented-control-bezel-highlighted-divider.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;539E;E;E;S;44;segmented-control-bezel-inactive-divider.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;540E;E;E;S;53;segmented-control-bezel-pushed-highlighted-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;541E;E;E;S;41;segmented-control-bezel-pushed-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;542E;E;E;S;46;segmented-control-bezel-highlighted-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;543E;E;E;S;43;segmented-control-bezel-inactive-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;544E;E;E;S;34;segmented-control-bezel-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;545E;E;E;S;52;segmented-control-bezel-pushed-highlighted-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;546E;E;E;S;40;segmented-control-bezel-pushed-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;547E;E;E;S;45;segmented-control-bezel-highlighted-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;548E;E;E;S;42;segmented-control-bezel-inactive-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;549E;E;E;S;33;segmented-control-bezel-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;550E;E;E;S;51;segmented-control-bezel-pushed-highlighted-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;551E;E;E;S;39;segmented-control-bezel-pushed-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;552E;E;E;S;44;segmented-control-bezel-highlighted-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;553E;E;E;S;41;segmented-control-bezel-inactive-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;554E;E;E;S;32;segmented-control-bezel-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;555E;E;E;S;25;slider-circular-bezel.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;556E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;557E;D;K;6;CP$UIDd;3;558E;D;K;6;CP$UIDd;3;559E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;192E;K;10;CP.objectsA;D;K;6;CP$UIDd;3;560E;D;K;6;CP$UIDd;3;561E;D;K;6;CP$UIDd;3;562E;E;E;S;24;slider-circular-knob.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;563E;E;E;S;20;knob-highlighted.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;564E;E;E;S;8;knob.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;565E;E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;566E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;567E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;566E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;568E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;569E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;570E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;571E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;572E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;573E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;574E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;575E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;576E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;577E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;578E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;579E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;580E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;581E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;582E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;583E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;584E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;585E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;586E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;587E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;588E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;589E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;590E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;591E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;592E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;593E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;594E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;589E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;595E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;591E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;596E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;597E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;598E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;589E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;599E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;591E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;600E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;601E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;602E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;603E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;604E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;605E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;606E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;607E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;608E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;609E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;610E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;611E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;612E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;613E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;614E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;303E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;305E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;615E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;616E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;616E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;616E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;617E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;618E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;619E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;620E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;621E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;622E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;623E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;624E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;625E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;626E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;627E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;628E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;629E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;630E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;631E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;632E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;633E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;634E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;635E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;636E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;637E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;638E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;639E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;640E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;641E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;642E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;643E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;644E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;645E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;646E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;647E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;648E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;649E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;650E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;651E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;652E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;653E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;654E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;655E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;656E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;657E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;658E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;659E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;660E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;661E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;662E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;663E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;664E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;665E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;666E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;667E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;668E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;669E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;670E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;671E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;672E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;675E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;676E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;677E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;678E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;679E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;680E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;681E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;682E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;683E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;684E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;685E;E;D;K;6;$classD;K;6;CP$UIDd;3;308E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;3;380E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;3;686E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;3;687E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;363E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;364E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;364E;E;S;19;buttonbar-bezel.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;688E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;689E;E;E;S;25;buttonbar-bezel-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;690E;E;E;S;41;default-button-bezel-highlighted-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;691E;E;E;S;43;default-button-bezel-highlighted-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;692E;E;E;S;42;default-button-bezel-highlighted-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;693E;E;E;S;29;default-button-bezel-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;694E;E;E;S;31;default-button-bezel-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;695E;E;E;S;30;default-button-bezel-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;696E;E;E;S;33;button-bezel-highlighted-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;697E;E;E;S;35;button-bezel-highlighted-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;698E;E;E;S;34;button-bezel-highlighted-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;699E;E;E;S;21;button-bezel-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;700E;E;E;S;23;button-bezel-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;701E;E;E;S;22;button-bezel-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;702E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;703E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;704E;E;E;S;31;popup-bezel-right-pullsdown.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;705E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;706E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;707E;E;E;S;21;popup-bezel-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;708E;E;E;S;33;scroller-horizontal-knob-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;709E;E;E;S;35;scroller-horizontal-knob-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;710E;E;E;S;34;scroller-horizontal-knob-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;711E;E;E;S;30;scroller-vertical-knob-top.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;712E;E;E;S;33;scroller-vertical-knob-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;713E;E;E;S;33;scroller-vertical-knob-bottom.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;714E;E;E;S;23;{"width":1,"height":17}S;23;{"width":17,"height":1}S;32;textfield-bezel-rounded-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;715E;E;E;S;34;textfield-bezel-rounded-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;716E;E;E;S;33;textfield-bezel-rounded-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;717E;E;E;S;40;textfield-bezel-rounded-focused-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;718E;E;E;S;42;textfield-bezel-rounded-focused-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;719E;E;E;S;41;textfield-bezel-rounded-focused-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;720E;E;E;S;36;textfield-bezel-square-focused-0.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;721E;E;E;S;36;textfield-bezel-square-focused-1.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;722E;E;E;S;36;textfield-bezel-square-focused-2.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;723E;E;E;S;36;textfield-bezel-square-focused-3.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;724E;E;E;S;36;textfield-bezel-square-focused-4.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;725E;E;E;S;36;textfield-bezel-square-focused-5.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;726E;E;E;S;36;textfield-bezel-square-focused-6.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;727E;E;E;S;36;textfield-bezel-square-focused-7.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;728E;E;E;S;36;textfield-bezel-square-focused-8.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;729E;E;E;S;28;textfield-bezel-square-0.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;730E;E;E;S;28;textfield-bezel-square-1.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;731E;E;E;S;28;textfield-bezel-square-2.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;732E;E;E;S;28;textfield-bezel-square-3.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;733E;E;E;S;28;textfield-bezel-square-4.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;734E;E;E;S;28;textfield-bezel-square-5.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;735E;E;E;S;28;textfield-bezel-square-6.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;736E;E;E;S;28;textfield-bezel-square-7.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;737E;E;E;S;28;textfield-bezel-square-8.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;738E;E;E;S;24;radio-bezel-selected.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;739E;E;E;S;15;radio-bezel.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;740E;E;E;S;28;check-box-bezel-selected.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;741E;E;E;S;19;check-box-bezel.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;742E;E;E;S;23;{"width":1,"height":24}S;23;{"width":4,"height":24}S;24;{"width":34,"height":34}S;22;vertical-track-top.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;743E;E;E;S;25;vertical-track-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;744E;E;E;S;25;vertical-track-bottom.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;745E;E;E;S;25;horizontal-track-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;746E;E;E;S;27;horizontal-track-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;747E;E;E;S;26;horizontal-track-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;3;748E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;749E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;749E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;750E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;751E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;674E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;673E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;751E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;752E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;753E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;754E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;755E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;756E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;757E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;758E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;759E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;758E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;760E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;304E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;761E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;762E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;761E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;763E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;764E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;763E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;765E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;766E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;765E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;767E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;768E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;767E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;769E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;764E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;769E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;770E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;771E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;770E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;772E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;772E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;773E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;773E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;774E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;775E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;776E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;777E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;766E;E;D;K;6;$classD;K;6;CP$UIDd;2;94E;K;15;CPValueValueKeyD;K;6;CP$UIDd;3;777E;E;S;23;{"width":1,"height":26}S;24;{"width":13,"height":26}S;24;{"width":27,"height":24}S;24;{"width":11,"height":15}S;23;{"width":1,"height":15}S;23;{"width":9,"height":15}S;23;{"width":15,"height":8}S;23;{"width":15,"height":1}S;24;{"width":15,"height":10}S;24;{"width":13,"height":22}S;23;{"width":1,"height":22}S;23;{"width":1,"height":30}S;22;{"width":6,"height":7}S;22;{"width":1,"height":7}S;22;{"width":6,"height":1}S;22;{"width":1,"height":1}S;22;{"width":6,"height":5}S;22;{"width":1,"height":5}S;22;{"width":2,"height":3}S;22;{"width":1,"height":3}S;22;{"width":2,"height":1}S;22;{"width":2,"height":2}S;22;{"width":1,"height":2}S;24;{"width":17,"height":17}S;24;{"width":15,"height":16}S;22;{"width":5,"height":6}S;22;{"width":5,"height":1}S;22;{"width":5,"height":4}S;22;{"width":4,"height":5}E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E;p;21;Aristo-HUD.keyedthemet;6757;280NPLIST;1.0;D;K;4;$topD;K;4;rootD;K;6;CP$UIDd;1;2E;E;K;8;$objectsA;S;5;$nullD;K;10;$classnameS;7;CPThemeK;8;$classesA;S;7;CPThemeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;1E;K;14;CPThemeNameKeyD;K;6;CP$UIDd;1;3E;K;20;CPThemeAttributesKeyD;K;6;CP$UIDd;1;5E;E;S;10;Aristo-HUDD;K;10;$classnameS;12;CPDictionaryK;8;$classesA;S;12;CPDictionaryS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;6;buttonD;K;6;CP$UIDd;1;6E;E;E;D;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;8;max-sizeD;K;6;CP$UIDd;1;8E;K;8;min-sizeD;K;6;CP$UIDd;1;9E;K;13;image-scalingD;K;6;CP$UIDd;2;10E;K;14;image-positionD;K;6;CP$UIDd;2;11E;K;4;fontD;K;6;CP$UIDd;2;12E;K;10;text-colorD;K;6;CP$UIDd;2;13E;K;15;line-break-modeD;K;6;CP$UIDd;2;14E;K;18;vertical-alignmentD;K;6;CP$UIDd;2;15E;K;9;alignmentD;K;6;CP$UIDd;2;16E;K;11;bezel-colorD;K;6;CP$UIDd;2;17E;K;13;content-insetD;K;6;CP$UIDd;2;18E;E;E;D;K;10;$classnameS;17;_CPThemeAttributeK;8;$classesA;S;17;_CPThemeAttributeS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;19E;K;5;valueD;K;6;CP$UIDd;2;21E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;22E;K;5;valueD;K;6;CP$UIDd;2;23E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;24E;K;5;valueD;K;6;CP$UIDd;2;25E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;26E;K;5;valueD;K;6;CP$UIDd;2;25E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;27E;K;5;stateD;K;6;CP$UIDd;2;28E;K;5;valueD;K;6;CP$UIDd;2;30E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;31E;K;5;valueD;K;6;CP$UIDd;2;33E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;34E;K;5;valueD;K;6;CP$UIDd;2;35E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;36E;K;5;valueD;K;6;CP$UIDd;2;25E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;37E;K;5;valueD;K;6;CP$UIDd;2;25E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;38E;K;6;valuesD;K;6;CP$UIDd;2;39E;E;D;K;6;$classD;K;6;CP$UIDd;1;7E;K;4;nameD;K;6;CP$UIDd;2;40E;K;5;stateD;K;6;CP$UIDd;2;28E;K;5;valueD;K;6;CP$UIDd;2;41E;E;S;8;max-sizeD;K;10;$classnameS;21;_CPKeyedArchiverValueK;8;$classesA;S;21;_CPKeyedArchiverValueS;7;CPValueS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;42E;E;S;8;min-sizeD;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;43E;E;S;13;image-scalingd;1;2S;14;image-positionS;4;fontS;8;borderedD;K;10;$classnameS;6;CPFontK;8;$classesA;S;6;CPFontS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;29E;K;13;CPFontNameKeyD;K;6;CP$UIDd;2;44E;K;13;CPFontSizeKeyD;K;6;CP$UIDd;2;45E;K;15;CPFontIsBoldKeyD;K;6;CP$UIDd;2;46E;E;S;10;text-colorD;K;10;$classnameS;7;CPColorK;8;$classesA;S;7;CPColorS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;20;CPColorComponentsKeyD;K;6;CP$UIDd;2;48E;E;S;15;line-break-moded;1;4S;18;vertical-alignmentS;9;alignmentS;11;bezel-colorD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;20;highlighted+borderedD;K;6;CP$UIDd;2;49E;K;8;borderedD;K;6;CP$UIDd;2;50E;E;E;S;13;content-insetD;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;51E;E;S;24;{"width":-1,"height":20}S;23;{"width":0,"height":20}S;5;Ariald;2;11F;D;K;10;$classnameS;7;CPArrayK;8;$classesA;S;7;CPArrayS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;52E;D;K;6;CP$UIDd;2;52E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;2;54E;E;D;K;6;$classD;K;6;CP$UIDd;2;32E;K;22;CPColorPatternImageKeyD;K;6;CP$UIDd;2;55E;E;S;39;{"top":2,"right":5,"bottom":4,"left":5}d;1;1D;K;10;$classnameS;16;CPThreePartImageK;8;$classesA;S;16;CPThreePartImageS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;2;56E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;2;46E;E;D;K;6;$classD;K;6;CP$UIDd;2;53E;K;30;CPThreePartImageImageSlicesKeyD;K;6;CP$UIDd;2;57E;K;29;CPThreePartImageIsVerticalKeyD;K;6;CP$UIDd;2;46E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;59E;D;K;6;CP$UIDd;2;60E;D;K;6;CP$UIDd;2;61E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;47E;K;10;CP.objectsA;D;K;6;CP$UIDd;2;62E;D;K;6;CP$UIDd;2;63E;D;K;6;CP$UIDd;2;64E;E;E;D;K;10;$classnameS;20;_CPCibCustomResourceK;8;$classesA;S;20;_CPCibCustomResourceS;8;CPObjectE;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;2;65E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;2;66E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;2;67E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;2;65E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;2;68E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;2;69E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;2;65E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;2;70E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;2;71E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;2;65E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;2;72E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;2;73E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;2;65E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;2;74E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;2;75E;E;D;K;6;$classD;K;6;CP$UIDd;2;58E;K;32;_CPCibCustomResourceClassNameKeyD;K;6;CP$UIDd;2;65E;K;35;_CPCibCustomResourceResourceNameKeyD;K;6;CP$UIDd;2;76E;K;33;_CPCibCustomResourcePropertiesKeyD;K;6;CP$UIDd;2;77E;E;S;7;CPImageS;37;HUD/button-bezel-highlighted-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;2;78E;E;E;S;39;HUD/button-bezel-highlighted-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;2;79E;E;E;S;38;HUD/button-bezel-highlighted-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;2;80E;E;E;S;25;HUD/button-bezel-left.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;2;81E;E;E;S;27;HUD/button-bezel-center.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;2;82E;E;E;S;26;HUD/button-bezel-right.pngD;K;6;$classD;K;6;CP$UIDd;1;4E;K;10;CP.objectsD;K;4;sizeD;K;6;CP$UIDd;2;83E;E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;84E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;85E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;84E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;84E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;85E;E;D;K;6;$classD;K;6;CP$UIDd;2;20E;K;15;CPValueValueKeyD;K;6;CP$UIDd;2;84E;E;S;24;{"width":13,"height":20}S;23;{"width":1,"height":20}E;K;9;$archiverS;15;CPKeyedArchiverK;8;$versionS;6;100000E; \ No newline at end of file diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Info.plist b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Info.plist new file mode 100644 index 0000000..2b14d98 --- /dev/null +++ b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Info.plist @@ -0,0 +1 @@ +280NPLIST;1.0;D;K;12;CPBundleNameS;6;AristoK;18;CPBundleIdentifierS;6;AristoK;21;CPBundleReplacedFilesA;S;17;Aristo.keyedthemeS;21;Aristo-HUD.keyedthemeE;K;18;CPBundleExecutableS;9;Aristo.sjE; \ No newline at end of file diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-center.png new file mode 100644 index 0000000..6b3e348 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-center.png new file mode 100644 index 0000000..0f35e8c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-left.png new file mode 100644 index 0000000..fe9f274 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-right.png new file mode 100644 index 0000000..809339a Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-left.png new file mode 100644 index 0000000..6c10bf5 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-right.png new file mode 100644 index 0000000..91439ae Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-center.png new file mode 100644 index 0000000..9d33b4a Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-center.png new file mode 100644 index 0000000..0d03b41 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-left.png new file mode 100644 index 0000000..1f0dfad Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-right.png new file mode 100644 index 0000000..ee90e94 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-left.png new file mode 100644 index 0000000..43b127c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-right.png new file mode 100644 index 0000000..b7d5b55 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel-right.png new file mode 100644 index 0000000..c6b22ff Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel.png new file mode 100644 index 0000000..72f5b73 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/check-box-bezel-selected.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/check-box-bezel-selected.png new file mode 100644 index 0000000..e8fd934 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/check-box-bezel-selected.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/check-box-bezel.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/check-box-bezel.png new file mode 100644 index 0000000..1541ecb Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/check-box-bezel.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-center.png new file mode 100644 index 0000000..73f7c1e Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-center.png new file mode 100644 index 0000000..1c064ca Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-left.png new file mode 100644 index 0000000..0b0ab90 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-right.png new file mode 100644 index 0000000..eaa4a61 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-left.png new file mode 100644 index 0000000..fead580 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-right.png new file mode 100644 index 0000000..9e3a174 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/horizontal-track-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/horizontal-track-center.png new file mode 100644 index 0000000..67f2ec8 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/horizontal-track-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/horizontal-track-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/horizontal-track-left.png new file mode 100644 index 0000000..bf628c5 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/horizontal-track-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/horizontal-track-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/horizontal-track-right.png new file mode 100644 index 0000000..3255821 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/horizontal-track-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/knob-highlighted.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/knob-highlighted.png new file mode 100644 index 0000000..4154b0f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/knob-highlighted.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/knob.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/knob.png new file mode 100644 index 0000000..9272760 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/knob.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-arrows-pullsdown.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-arrows-pullsdown.png new file mode 100644 index 0000000..4403da2 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-arrows-pullsdown.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-arrows.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-arrows.png new file mode 100644 index 0000000..16abca2 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-arrows.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right-pullsdown.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right-pullsdown.png new file mode 100644 index 0000000..dde750f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right-pullsdown.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right.png new file mode 100644 index 0000000..cd89b2f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/radio-bezel-selected.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/radio-bezel-selected.png new file mode 100644 index 0000000..96fa554 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/radio-bezel-selected.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/radio-bezel.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/radio-bezel.png new file mode 100644 index 0000000..90cf20c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/radio-bezel.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-disabled.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-disabled.png new file mode 100644 index 0000000..f6f3020 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-disabled.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-highlighted.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-highlighted.png new file mode 100644 index 0000000..00f3466 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-highlighted.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow.png new file mode 100644 index 0000000..e5a516a Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-center.png new file mode 100644 index 0000000..514e235 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-left.png new file mode 100644 index 0000000..8975054 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-right.png new file mode 100644 index 0000000..2e34e2c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track-disabled.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track-disabled.png new file mode 100644 index 0000000..cd90029 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track-disabled.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track.png new file mode 100644 index 0000000..3043f26 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-disabled.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-disabled.png new file mode 100644 index 0000000..34e8f9b Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-disabled.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-highlighted.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-highlighted.png new file mode 100644 index 0000000..3c88f8e Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-highlighted.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow.png new file mode 100644 index 0000000..ff8c145 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-disabled.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-disabled.png new file mode 100644 index 0000000..2d154f2 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-disabled.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-highlighted.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-highlighted.png new file mode 100644 index 0000000..b924bb1 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-highlighted.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow.png new file mode 100644 index 0000000..1ad602e Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-disabled.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-disabled.png new file mode 100644 index 0000000..7da7d03 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-disabled.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-highlighted.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-highlighted.png new file mode 100644 index 0000000..52c58d7 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-highlighted.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow.png new file mode 100644 index 0000000..ce98d9f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-bottom.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-bottom.png new file mode 100644 index 0000000..93be370 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-bottom.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-center.png new file mode 100644 index 0000000..0e71759 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-top.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-top.png new file mode 100644 index 0000000..297b28a Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-top.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track-disabled.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track-disabled.png new file mode 100644 index 0000000..a3b3544 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track-disabled.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track.png new file mode 100644 index 0000000..9a2c7d9 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-center.png new file mode 100644 index 0000000..f45b3fa Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-divider.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-divider.png new file mode 100644 index 0000000..73048d7 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-divider.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-center.png new file mode 100644 index 0000000..15a88e7 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-divider.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-divider.png new file mode 100644 index 0000000..497350b Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-divider.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-left.png new file mode 100644 index 0000000..e7ec7cd Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-right.png new file mode 100644 index 0000000..0fab603 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-center.png new file mode 100644 index 0000000..6a7b478 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-divider.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-divider.png new file mode 100644 index 0000000..74f4ba8 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-divider.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-left.png new file mode 100644 index 0000000..cac1774 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-right.png new file mode 100644 index 0000000..d04835d Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-left.png new file mode 100644 index 0000000..c287590 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-center.png new file mode 100644 index 0000000..5b7021c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-center.png new file mode 100644 index 0000000..f9f6a6e Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-left.png new file mode 100644 index 0000000..aca1e6a Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-right.png new file mode 100644 index 0000000..07b36cf Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-left.png new file mode 100644 index 0000000..f293920 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-right.png new file mode 100644 index 0000000..f337117 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-right.png new file mode 100644 index 0000000..27898ba Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/slider-circular-bezel.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/slider-circular-bezel.png new file mode 100644 index 0000000..0025fc9 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/slider-circular-bezel.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/slider-circular-knob.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/slider-circular-knob.png new file mode 100644 index 0000000..7d9fb3b Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/slider-circular-knob.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/spinner.gif b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/spinner.gif new file mode 100644 index 0000000..06dbc2b Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/spinner.gif differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-center.png new file mode 100644 index 0000000..2ffc73c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-center.png new file mode 100644 index 0000000..b5dad6f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-left.png new file mode 100644 index 0000000..b44bf2c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-right.png new file mode 100644 index 0000000..aeed868 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-left.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-left.png new file mode 100644 index 0000000..c4d22bf Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-left.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-right.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-right.png new file mode 100644 index 0000000..8281342 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-right.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-0.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-0.png new file mode 100644 index 0000000..adb302c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-0.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-1.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-1.png new file mode 100644 index 0000000..e1444f4 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-1.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-2.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-2.png new file mode 100644 index 0000000..549bd1e Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-2.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-3.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-3.png new file mode 100644 index 0000000..204fe57 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-3.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-4.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-4.png new file mode 100644 index 0000000..1f343f5 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-4.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-5.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-5.png new file mode 100644 index 0000000..168ffa2 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-5.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-6.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-6.png new file mode 100644 index 0000000..733370f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-6.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-7.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-7.png new file mode 100644 index 0000000..8b3c225 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-7.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-8.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-8.png new file mode 100644 index 0000000..06f50ab Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-8.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-0.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-0.png new file mode 100644 index 0000000..6cbc8fe Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-0.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-1.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-1.png new file mode 100644 index 0000000..5f88644 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-1.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-2.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-2.png new file mode 100644 index 0000000..348aa40 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-2.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-3.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-3.png new file mode 100644 index 0000000..f747470 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-3.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-4.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-4.png new file mode 100644 index 0000000..1f343f5 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-4.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-5.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-5.png new file mode 100644 index 0000000..438c5b2 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-5.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-6.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-6.png new file mode 100644 index 0000000..98b3c50 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-6.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-7.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-7.png new file mode 100644 index 0000000..f9e23aa Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-7.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-8.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-8.png new file mode 100644 index 0000000..c9148da Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-8.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/vertical-track-bottom.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/vertical-track-bottom.png new file mode 100644 index 0000000..c43104a Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/vertical-track-bottom.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/vertical-track-center.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/vertical-track-center.png new file mode 100644 index 0000000..13b8743 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/vertical-track-center.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/vertical-track-top.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/vertical-track-top.png new file mode 100644 index 0000000..96fdefc Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/vertical-track-top.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/LICENSE b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/LICENSE new file mode 100644 index 0000000..4fa7dc4 --- /dev/null +++ b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/LICENSE @@ -0,0 +1,58 @@ +These graphics come from the Tango Desktop Project (http://tango.freedesktop.org/Tango_Desktop_Project). +They are released under the Creative Commons Attribution Share-Alike license, full text below. + + +(license available from CC here: http://creativecommons.org/licenses/by-sa/2.5/) + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Collective Work" means a work, such as a periodical issue, anthology or encyclopedia, in which the Work in its entirety in unmodified form, along with a number of other contributions, constituting separate and independent works in themselves, are assembled into a collective whole. A work that constitutes a Collective Work will not be considered a Derivative Work (as defined below) for the purposes of this License. +"Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which the Work may be recast, transformed, or adapted, except that a work that constitutes a Collective Work will not be considered a Derivative Work for the purpose of this License. For the avoidance of doubt, where the Work is a musical composition or sound recording, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered a Derivative Work for the purpose of this License. +"Licensor" means the individual or entity that offers the Work under the terms of this License. +"Original Author" means the individual or entity who created the Work. +"Work" means the copyrightable work of authorship offered under the terms of this License. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. +2. Fair Use Rights. Nothing in this license is intended to reduce, limit, or restrict any rights arising from fair use, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to reproduce the Work, to incorporate the Work into one or more Collective Works, and to reproduce the Work as incorporated in the Collective Works; +to create and reproduce Derivative Works; +to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission the Work including as incorporated in Collective Works; +to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission Derivative Works. +For the avoidance of doubt, where the work is a musical composition: + +Performance Royalties Under Blanket Licenses. Licensor waives the exclusive right to collect, whether individually or via a performance rights society (e.g. ASCAP, BMI, SESAC), royalties for the public performance or public digital performance (e.g. webcast) of the Work. +Mechanical Rights and Statutory Royalties. Licensor waives the exclusive right to collect, whether individually or via a music rights society or designated agent (e.g. Harry Fox Agency), royalties for any phonorecord You create from the Work ("cover version") and distribute, subject to the compulsory license created by 17 USC Section 115 of the US Copyright Act (or the equivalent in other jurisdictions). +Webcasting Rights and Statutory Royalties. For the avoidance of doubt, where the Work is a sound recording, Licensor waives the exclusive right to collect, whether individually or via a performance-rights society (e.g. SoundExchange), royalties for the public digital performance (e.g. webcast) of the Work, subject to the compulsory license created by 17 USC Section 114 of the US Copyright Act (or the equivalent in other jurisdictions). +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. All rights not expressly granted by Licensor are hereby reserved. + +4. Restrictions.The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may distribute, publicly display, publicly perform, or publicly digitally perform the Work only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy or phonorecord of the Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Work itself to be made subject to the terms of this License. If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any credit as required by clause 4(c), as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any credit as required by clause 4(c), as requested. +You may distribute, publicly display, publicly perform, or publicly digitally perform a Derivative Work only under the terms of this License, a later version of this License with the same License Elements as this License, or a Creative Commons iCommons license that contains the same License Elements as this License (e.g. Attribution-ShareAlike 2.5 Japan). You must include a copy of, or the Uniform Resource Identifier for, this License or other license specified in the previous sentence with every copy or phonorecord of each Derivative Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Derivative Works that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder, and You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Derivative Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Derivative Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Derivative Work itself to be made subject to the terms of this License. +If you distribute, publicly display, publicly perform, or publicly digitally perform the Work or any Derivative Works or Collective Works, You must keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or (ii) if the Original Author and/or Licensor designate another party or parties (e.g. a sponsor institute, publishing entity, journal) for attribution in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; the title of the Work if supplied; to the extent reasonably practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and in the case of a Derivative Work, a credit identifying the use of the Work in the Derivative Work (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). Such credit may be implemented in any reasonable manner; provided, however, that in the case of a Derivative Work or Collective Work, at a minimum such credit will appear where any other comparable authorship credit appears and in a manner at least as prominent as such other comparable authorship credit. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE MATERIALS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Derivative Works or Collective Works from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You distribute or publicly digitally perform the Work or a Collective Work, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +Each time You distribute or publicly digitally perform a Derivative Work, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/dialog-error.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/dialog-error.png new file mode 100644 index 0000000..aa4ae75 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/dialog-error.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/dialog-information.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/dialog-information.png new file mode 100644 index 0000000..cbaf6db Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/dialog-information.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/dialog-warning.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/dialog-warning.png new file mode 100644 index 0000000..47d84e4 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/dialog-warning.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/New.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/New.png new file mode 100644 index 0000000..058a6ca Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/New.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/NewHighlighted.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/NewHighlighted.png new file mode 100644 index 0000000..6697edd Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/NewHighlighted.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/Open.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/Open.png new file mode 100644 index 0000000..15c6cda Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/Open.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/OpenHighlighted.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/OpenHighlighted.png new file mode 100644 index 0000000..17b5a2b Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/OpenHighlighted.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/Save.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/Save.png new file mode 100644 index 0000000..bdefaef Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/Save.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/SaveHighlighted.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/SaveHighlighted.png new file mode 100644 index 0000000..cbba05f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/SaveHighlighted.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewBottomLeftShadow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewBottomLeftShadow.png new file mode 100644 index 0000000..7b1d88f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewBottomLeftShadow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewBottomRightShadow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewBottomRightShadow.png new file mode 100644 index 0000000..e9d60da Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewBottomRightShadow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewBottomShadow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewBottomShadow.png new file mode 100644 index 0000000..6500896 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewBottomShadow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewLeftShadow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewLeftShadow.png new file mode 100644 index 0000000..6fcbb96 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewLeftShadow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewRightShadow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewRightShadow.png new file mode 100644 index 0000000..7b93553 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewRightShadow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewTopLeftShadow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewTopLeftShadow.png new file mode 100644 index 0000000..7185727 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewTopLeftShadow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewTopRightShadow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewTopRightShadow.png new file mode 100644 index 0000000..e597c5e Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewTopRightShadow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewTopShadow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewTopShadow.png new file mode 100644 index 0000000..483e391 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewTopShadow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPMenuItem/CPMenuItemOnState.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPMenuItem/CPMenuItemOnState.png new file mode 100644 index 0000000..7ea275e Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPMenuItem/CPMenuItemOnState.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPMenuItem/CPMenuItemOnStateHighlighted.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPMenuItem/CPMenuItemOnStateHighlighted.png new file mode 100644 index 0000000..78f90ed Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPMenuItem/CPMenuItemOnStateHighlighted.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarBarRegular.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarBarRegular.png new file mode 100644 index 0000000..5a47190 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarBarRegular.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarHUDBarSmall.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarHUDBarSmall.png new file mode 100644 index 0000000..5bc78a0 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarHUDBarSmall.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular0.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular0.png new file mode 100644 index 0000000..34c84d7 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular0.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular1.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular1.png new file mode 100644 index 0000000..f555903 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular1.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular2.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular2.png new file mode 100644 index 0000000..81e575f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular2.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall0.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall0.png new file mode 100644 index 0000000..ee28212 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall0.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall1.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall1.png new file mode 100644 index 0000000..5f8f753 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall1.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall2.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall2.png new file mode 100644 index 0000000..612a5ac Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall2.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif new file mode 100644 index 0000000..0d2567c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottom.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottom.png new file mode 100644 index 0000000..1739840 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottom.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomLeft.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomLeft.png new file mode 100644 index 0000000..0fa178f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomLeft.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomRight.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomRight.png new file mode 100644 index 0000000..8015c51 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomRight.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyLeft.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyLeft.png new file mode 100644 index 0000000..2ef546f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyLeft.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyRight.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyRight.png new file mode 100644 index 0000000..aec43cd Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyRight.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyTop.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyTop.png new file mode 100644 index 0000000..039ea08 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyTop.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopLeft.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopLeft.png new file mode 100644 index 0000000..7fedc4e Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopLeft.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopRight.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopRight.png new file mode 100644 index 0000000..4914a6a Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopRight.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightBottom.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightBottom.png new file mode 100644 index 0000000..6500896 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightBottom.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightBottomLeft.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightBottomLeft.png new file mode 100644 index 0000000..7b1d88f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightBottomLeft.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightBottomRight.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightBottomRight.png new file mode 100644 index 0000000..e9d60da Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightBottomRight.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightLeft.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightLeft.png new file mode 100644 index 0000000..9e2c8e3 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightLeft.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightRight.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightRight.png new file mode 100644 index 0000000..7b93553 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightRight.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightTop.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightTop.png new file mode 100644 index 0000000..e930dc7 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightTop.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightTopLeft.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightTopLeft.png new file mode 100644 index 0000000..7185727 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightTopLeft.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightTopRight.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightTopRight.png new file mode 100644 index 0000000..e597c5e Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightTopRight.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPSplitView/CPSplitViewHorizontal.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPSplitView/CPSplitViewHorizontal.png new file mode 100644 index 0000000..6a016f6 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPSplitView/CPSplitViewHorizontal.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPSplitView/CPSplitViewVertical.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPSplitView/CPSplitViewVertical.png new file mode 100644 index 0000000..ed3225a Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPSplitView/CPSplitViewVertical.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBackgroundCenter.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBackgroundCenter.png new file mode 100644 index 0000000..f442c81 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBackgroundCenter.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBorder.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBorder.png new file mode 100644 index 0000000..722ba60 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBorder.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBorderLeft.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBorderLeft.png new file mode 100644 index 0000000..9ea5bc2 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBorderLeft.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBorderRight.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBorderRight.png new file mode 100644 index 0000000..0072a22 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBorderRight.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelBackgroundCenter.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelBackgroundCenter.png new file mode 100644 index 0000000..0368070 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelBackgroundCenter.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelBackgroundLeft.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelBackgroundLeft.png new file mode 100644 index 0000000..2536791 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelBackgroundLeft.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelBackgroundRight.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelBackgroundRight.png new file mode 100644 index 0000000..1878fd8 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelBackgroundRight.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelSelectedCenter.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelSelectedCenter.png new file mode 100644 index 0000000..0934e18 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelSelectedCenter.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelSelectedLeft.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelSelectedLeft.png new file mode 100644 index 0000000..dec4cb5 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelSelectedLeft.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelSelectedRight.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelSelectedRight.png new file mode 100644 index 0000000..5180605 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelSelectedRight.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelsViewCenter.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelsViewCenter.png new file mode 100644 index 0000000..e037d82 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelsViewCenter.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelsViewLeft.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelsViewLeft.png new file mode 100644 index 0000000..9ac0cb8 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelsViewLeft.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelsViewRight.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelsViewRight.png new file mode 100644 index 0000000..fa36e51 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelsViewRight.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator0.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator0.png new file mode 100644 index 0000000..a525ea3 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator0.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator1.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator1.png new file mode 100644 index 0000000..d3e6f1f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator1.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator2.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator2.png new file mode 100644 index 0000000..9fcb695 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator2.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow0.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow0.png new file mode 100644 index 0000000..0c18720 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow0.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow1.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow1.png new file mode 100644 index 0000000..109156c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow1.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow2.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow2.png new file mode 100644 index 0000000..e8bc754 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow2.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow3.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow3.png new file mode 100644 index 0000000..ca07535 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow3.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow4.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow4.png new file mode 100644 index 0000000..c8ebdd5 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow4.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow5.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow5.png new file mode 100644 index 0000000..239b403 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow5.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow6.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow6.png new file mode 100644 index 0000000..624d998 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow6.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow7.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow7.png new file mode 100644 index 0000000..80b9a75 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow7.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow8.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow8.png new file mode 100644 index 0000000..eb82b4b Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow8.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground0.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground0.png new file mode 100644 index 0000000..f43a3aa Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground0.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground1.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground1.png new file mode 100644 index 0000000..ee4dba5 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground1.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground2.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground2.png new file mode 100644 index 0000000..76f41a6 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground2.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground3.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground3.png new file mode 100644 index 0000000..a38e4da Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground3.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground4.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground4.png new file mode 100644 index 0000000..83d2305 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground4.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground5.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground5.png new file mode 100644 index 0000000..b49ebef Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground5.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground6.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground6.png new file mode 100644 index 0000000..a2cebe4 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground6.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground7.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground7.png new file mode 100644 index 0000000..d1b3faf Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground7.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground8.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground8.png new file mode 100644 index 0000000..60e25e8 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground8.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardCLoseButtonHighlighted.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardCLoseButtonHighlighted.png new file mode 100644 index 0000000..e2cf52e Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardCLoseButtonHighlighted.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardCloseButton.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardCloseButton.png new file mode 100644 index 0000000..cd922a5 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardCloseButton.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop0.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop0.png new file mode 100644 index 0000000..1b0bfd7 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop0.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop1.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop1.png new file mode 100644 index 0000000..05e7096 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop1.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop2.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop2.png new file mode 100644 index 0000000..f0bafb8 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop2.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindowResizeIndicator.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindowResizeIndicator.png new file mode 100644 index 0000000..bac884d Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindowResizeIndicator.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/FIXME_ImageShadow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/FIXME_ImageShadow.png new file mode 100644 index 0000000..2b3e46c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/FIXME_ImageShadow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/HUDTheme/WindowClose.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/HUDTheme/WindowClose.png new file mode 100644 index 0000000..4d3d405 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/HUDTheme/WindowClose.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/HUDTheme/WindowCloseActive.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/HUDTheme/WindowCloseActive.png new file mode 100644 index 0000000..f422823 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/HUDTheme/WindowCloseActive.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuBarWindow/_CPMenuBarWindowBackground.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuBarWindow/_CPMenuBarWindowBackground.png new file mode 100644 index 0000000..00656af Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuBarWindow/_CPMenuBarWindowBackground.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow1.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow1.png new file mode 100644 index 0000000..9055cb9 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow1.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow3.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow3.png new file mode 100644 index 0000000..1ec560b Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow3.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow4.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow4.png new file mode 100644 index 0000000..0d46be3 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow4.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow5.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow5.png new file mode 100644 index 0000000..c70019c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow5.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow7.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow7.png new file mode 100644 index 0000000..82c60c2 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow7.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreAbove.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreAbove.png new file mode 100644 index 0000000..6a093be Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreAbove.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreBelow.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreBelow.png new file mode 100644 index 0000000..cac3e0e Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreBelow.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded0.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded0.png new file mode 100644 index 0000000..34841cb Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded0.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded2.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded2.png new file mode 100644 index 0000000..12342f6 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded2.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded6.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded6.png new file mode 100644 index 0000000..94eae6f Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded6.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded8.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded8.png new file mode 100644 index 0000000..e2935bb Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded8.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPToolbarView/_CPToolbarViewBackground.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPToolbarView/_CPToolbarViewBackground.png new file mode 100644 index 0000000..25cfcc4 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPToolbarView/_CPToolbarViewBackground.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsAlternateImage.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsAlternateImage.png new file mode 100644 index 0000000..17e951c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsAlternateImage.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsImage.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsImage.png new file mode 100644 index 0000000..6b19961 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsImage.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPWindowView/_CPWindowViewResizeIndicator.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPWindowView/_CPWindowViewResizeIndicator.png new file mode 100644 index 0000000..bac884d Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPWindowView/_CPWindowViewResizeIndicator.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/brightness_bar.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/brightness_bar.png new file mode 100644 index 0000000..3848c2c Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/brightness_bar.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/color_well.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/color_well.png new file mode 100644 index 0000000..0701699 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/color_well.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/slider_button.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/slider_button.png new file mode 100644 index 0000000..602d7db Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/slider_button.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/slider_button_h.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/slider_button_h.png new file mode 100644 index 0000000..1f493e3 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/slider_button_h.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel.png new file mode 100644 index 0000000..81d06b2 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel_black.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel_black.png new file mode 100644 index 0000000..a5f4259 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel_black.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel_button.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel_button.png new file mode 100644 index 0000000..8cca49e Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel_button.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel_button_h.png b/src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel_button_h.png new file mode 100644 index 0000000..f580569 Binary files /dev/null and b/src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel_button_h.png differ diff --git a/src/main/webapp/Frameworks/Debug/AppKit/browser.platform/AppKit.sj b/src/main/webapp/Frameworks/Debug/AppKit/browser.platform/AppKit.sj new file mode 100644 index 0000000..256b98a --- /dev/null +++ b/src/main/webapp/Frameworks/Debug/AppKit/browser.platform/AppKit.sj @@ -0,0 +1,27467 @@ +@STATIC;1.0;p;31;_CPBorderlessBridgeWindowView.ji;15;_CPWindowView.jc;2460; +var _CPToolbarViewBackgroundColor = nil; +{var the_class = objj_allocateClassPair(_CPWindowView, "_CPBorderlessBridgeWindowView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_toolbarBackgroundView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("tile"), function $_CPBorderlessBridgeWindowView__tile(self, _cmd) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("_CPWindowView") }, "tile"); + var theWindow = objj_msgSend(self, "window"), + bounds = objj_msgSend(self, "bounds"); + objj_msgSend(objj_msgSend(theWindow, "contentView"), "setFrame:", CGRectMake(0.0, objj_msgSend(self, "toolbarMaxY"), CGRectGetWidth(bounds), CGRectGetHeight(bounds) - objj_msgSend(self, "toolbarMaxY"))); + if (!objj_msgSend(objj_msgSend(theWindow, "toolbar"), "isVisible")) + { + objj_msgSend(_toolbarBackgroundView, "removeFromSuperview"); + _toolbarBackgroundView = nil; + return; + } + if (!_toolbarBackgroundView) + { + _toolbarBackgroundView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_toolbarBackgroundView, "setBackgroundColor:", objj_msgSend(objj_msgSend(self, "class"), "toolbarBackgroundColor")); + objj_msgSend(_toolbarBackgroundView, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(self, "addSubview:positioned:relativeTo:", _toolbarBackgroundView, CPWindowBelow, nil); + } + var frame = CGRectMakeZero(); + frame.origin = CGPointMakeCopy(objj_msgSend(self, "toolbarOffset")); + frame.size = objj_msgSend(_toolbarView, "frame").size; + objj_msgSend(_toolbarBackgroundView, "setFrame:", frame); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("toolbarBackgroundColor"), function $_CPBorderlessBridgeWindowView__toolbarBackgroundColor(self, _cmd) +{ with(self) +{ + if (!_CPToolbarViewBackgroundColor) + _CPToolbarViewBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(_CPBorderlessBridgeWindowView, "class")), "pathForResource:", "_CPToolbarView/_CPToolbarViewBackground.png"), CGSizeMake(1.0, 59.0))); + return _CPToolbarViewBackgroundColor; +} +})]); +} + +p;25;_CPBorderlessWindowView.ji;15;_CPWindowView.jc;234; +{var the_class = objj_allocateClassPair(_CPWindowView, "_CPBorderlessWindowView"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +} + +p;20;_CPCibClassSwapper.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;2019; +var _CPCibClassSwapperClassNameKey = "_CPCibClassSwapperClassNameKey", + _CPCibClassSwapperOriginalClassNameKey = "_CPCibClassSwapperOriginalClassNameKey"; +{var the_class = objj_allocateClassPair(CPObject, "_CPCibClassSwapper"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(meta_class, [new objj_method(sel_getUid("allocObjectWithCoder:className:"), function $_CPCibClassSwapper__allocObjectWithCoder_className_(self, _cmd, aCoder, aClassName) +{ with(self) +{ + var theClass = objj_msgSend(aCoder, "classForClassName:", aClassName); + if (!theClass) + { + theClass = objj_lookUpClass(aClassName); + if (!theClass) + return nil; + } + return objj_msgSend(theClass, "alloc"); +} +}), new objj_method(sel_getUid("allocWithCoder:"), function $_CPCibClassSwapper__allocWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (objj_msgSend(aCoder, "respondsToSelector:", sel_getUid("usesOriginalClasses")) && objj_msgSend(aCoder, "usesOriginalClasses")) + { + var theClassName = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibClassSwapperOriginalClassNameKey), + object = objj_msgSend(self, "allocObjectWithCoder:className:", aCoder, theClassName); + } + else + { + var theClassName = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibClassSwapperClassNameKey), + object = objj_msgSend(self, "allocObjectWithCoder:className:", aCoder, theClassName); + if (!object) + { + CPLog.error("Unable to find class " + theClassName + " in cib file."); + object = objj_msgSend(self, "allocObjectWithCoder:className:", aCoder, objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibClassSwapperOriginalClassNameKey)); + } + } + if (!object) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "Unable to find class " + theClassName + " in cib file."); + return object; +} +})]); +} + +p;17;_CPCibConnector.jI;21;Foundation/CPObject.jI;29;Foundation/CPKeyValueCoding.jc;4187; + + +var _CPCibConnectorSourceKey = "_CPCibConnectorSourceKey", + _CPCibConnectorDestinationKey = "_CPCibConnectorDestinationKey", + _CPCibConnectorLabelKey = "_CPCibConnectorLabelKey"; + +{var the_class = objj_allocateClassPair(CPObject, "_CPCibConnector"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_source"), new objj_ivar("_destination"), new objj_ivar("_label")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("replaceObjects:"), function $_CPCibConnector__replaceObjects_(self, _cmd, replacementObjects) +{ with(self) +{ + var replacement = replacementObjects[objj_msgSend(_source, "hash")]; + + if (replacement !== undefined) + _source = replacement; + + replacement = replacementObjects[objj_msgSend(_destination, "hash")]; + + if (replacement !== undefined) + _destination = replacement; +} +})]); +} + +{ +var the_class = objj_getClass("_CPCibConnector") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPCibConnector\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPCibConnector__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + + if (self) + { + _source = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibConnectorSourceKey); + _destination = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibConnectorDestinationKey); + _label = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibConnectorLabelKey); + } + + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPCibConnector__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _source, _CPCibConnectorSourceKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _destination, _CPCibConnectorDestinationKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _label, _CPCibConnectorLabelKey); +} +})]); +} + +{var the_class = objj_allocateClassPair(_CPCibConnector, "_CPCibControlConnector"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("establishConnection"), function $_CPCibControlConnector__establishConnection(self, _cmd) +{ with(self) +{ + var selectorName = _label; + + if (!objj_msgSend(selectorName, "hasSuffix:", ":")) + selectorName += ':'; + + var selector = CPSelectorFromString(selectorName); + + if (!selector) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "-[" + objj_msgSend(self, "className") + ' ' + _cmd + "] selector " + selectorName + " does not exist."); + + if (objj_msgSend(_source, "respondsToSelector:", sel_getUid("setAction:"))) + objj_msgSend(_source, sel_getUid("setAction:"), selector); + + else + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "-[" + objj_msgSend(self, "className") + ' ' + _cmd + "] " + objj_msgSend(_source, "description") + " does not respond to setAction:"); + + if (objj_msgSend(_source, "respondsToSelector:", sel_getUid("setTarget:"))) + objj_msgSend(_source, sel_getUid("setTarget:"), _destination); + + else + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "-[" + objj_msgSend(self, "className") + ' ' + _cmd + "] " + objj_msgSend(_source, "description") + " does not respond to setTarget:"); +} +})]); +} + +{var the_class = objj_allocateClassPair(_CPCibConnector, "_CPCibOutletConnector"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("establishConnection"), function $_CPCibOutletConnector__establishConnection(self, _cmd) +{ with(self) +{ + objj_msgSend(_source, "setValue:forKey:", _destination, _label); +} +})]); +} + +p;20;_CPCibCustomObject.jI;21;Foundation/CPObject.jc;2114; + + +var _CPCibCustomObjectClassName = "_CPCibCustomObjectClassName"; + +{var the_class = objj_allocateClassPair(CPObject, "_CPCibCustomObject"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_className")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("customClassName"), function $_CPCibCustomObject__customClassName(self, _cmd) +{ with(self) +{ + return _className; +} +}), new objj_method(sel_getUid("description"), function $_CPCibCustomObject__description(self, _cmd) +{ with(self) +{ + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "description") + " (" + objj_msgSend(self, "customClassName") + ')'; +} +})]); +} + +{ +var the_class = objj_getClass("_CPCibCustomObject") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPCibCustomObject\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPCibCustomObject__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + + if (self) + _className = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibCustomObjectClassName); + + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPCibCustomObject__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _className, _CPCibCustomObjectClassName); +} +}), new objj_method(sel_getUid("_cibInstantiate"), function $_CPCibCustomObject___cibInstantiate(self, _cmd) +{ with(self) +{ + var theClass = CPClassFromString(_className); + + + if (!theClass) + CPLog("Unknown class \"" + _className + "\" in cib file"); + + + if (theClass === objj_msgSend(CPApplication, "class")) + return objj_msgSend(CPApplication, "sharedApplication"); + + return objj_msgSend(objj_msgSend(theClass, "alloc"), "init"); +} +})]); +} + +p;22;_CPCibCustomResource.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;4092; +var _CPCibCustomResourceClassNameKey = "_CPCibCustomResourceClassNameKey", + _CPCibCustomResourceResourceNameKey = "_CPCibCustomResourceResourceNameKey", + _CPCibCustomResourcePropertiesKey = "_CPCibCustomResourcePropertiesKey"; +{var the_class = objj_allocateClassPair(CPObject, "_CPCibCustomResource"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_className"), new objj_ivar("_resourceName"), new objj_ivar("_properties")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithClassName:resourceName:properties:"), function $_CPCibCustomResource__initWithClassName_resourceName_properties_(self, _cmd, aClassName, aResourceName, properties) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _className = aClassName; + _resourceName = aResourceName; + _properties = properties; + } + return self; +} +}), new objj_method(sel_getUid("initWithCoder:"), function $_CPCibCustomResource__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _className = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibCustomResourceClassNameKey); + _resourceName = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibCustomResourceResourceNameKey); + _properties = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibCustomResourcePropertiesKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPCibCustomResource__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _className, _CPCibCustomResourceClassNameKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _resourceName, _CPCibCustomResourceResourceNameKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _properties, _CPCibCustomResourcePropertiesKey); +} +}), new objj_method(sel_getUid("awakeAfterUsingCoder:"), function $_CPCibCustomResource__awakeAfterUsingCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (objj_msgSend(aCoder, "respondsToSelector:", sel_getUid("bundle")) && + (!objj_msgSend(aCoder, "respondsToSelector:", sel_getUid("awakenCustomResources")) || objj_msgSend(aCoder, "awakenCustomResources"))) + if (_className === "CPImage") + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(aCoder, "bundle"), "pathForResource:", _resourceName), objj_msgSend(_properties, "objectForKey:", "size")); + return self; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("imageResourceWithName:size:"), function $_CPCibCustomResource__imageResourceWithName_size_(self, _cmd, aResourceName, aSize) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithClassName:resourceName:properties:", "CPImage", aResourceName, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", aSize, "size")); +} +})]); +} +{ +var the_class = objj_getClass("_CPCibCustomResource") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPCibCustomResource\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("filename"), function $_CPCibCustomResource__filename(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPBundle, "mainBundle"), "pathForResource:", _resourceName); +} +}), new objj_method(sel_getUid("size"), function $_CPCibCustomResource__size(self, _cmd) +{ with(self) +{ + return objj_msgSend(_properties, "objectForKey:", "size"); +} +}), new objj_method(sel_getUid("isThreePartImage"), function $_CPCibCustomResource__isThreePartImage(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("isNinePartImage"), function $_CPCibCustomResource__isNinePartImage(self, _cmd) +{ with(self) +{ + return NO; +} +})]); +} + +p;18;_CPCibCustomView.ji;8;CPView.jc;3751; +{var the_class = objj_allocateClassPair(CPView, "_CPCibCustomView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_className")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("customClassName"), function $_CPCibCustomView__customClassName(self, _cmd) +{ with(self) +{ + return _className; +} +})]); +} +var _CPCibCustomViewClassNameKey = "_CPCibCustomViewClassNameKey"; +{ +var the_class = objj_getClass("_CPCibCustomView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPCibCustomView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPCibCustomView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder); + if (self) + _className = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibCustomViewClassNameKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPCibCustomView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _className, _CPCibCustomViewClassNameKey); +} +}), new objj_method(sel_getUid("drawRect:"), function $_CPCibCustomView__drawRect_(self, _cmd, aRect) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + context = objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"); + CGContextSetLineWidth(context, 1.0); + CGContextSetStrokeColor(context, objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 169.0 / 255.0, 173.0 / 255.0, 178.0 / 255.0, 1.0)); + CGContextStrokeRect(context, CGRectInset(CGRectIntegral(bounds), 0.5, 0.5)); + CGContextSetFillColor(context, objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 224.0 / 255.0, 236.0 / 255.0, 250.0 / 255.0, 1.0)); + CGContextFillRect(context, CGRectInset(bounds, 2.0, 2.0)); +} +}), new objj_method(sel_getUid("_cibInstantiate"), function $_CPCibCustomView___cibInstantiate(self, _cmd) +{ with(self) +{ + var theClass = CPClassFromString(_className); + if (!theClass) + { + CPLog("Unknown class \"" + _className + "\" in cib file, using CPView instead."); + theClass = objj_msgSend(CPView, "class"); + } + if (theClass === objj_msgSend(self, "class")) + { + _className = "CPView"; + return self; + } + var view = objj_msgSend(objj_msgSend(theClass, "alloc"), "initWithFrame:", objj_msgSend(self, "frame")); + if (view) + { + objj_msgSend(view, "setBounds:", objj_msgSend(self, "bounds")); + var subviews = objj_msgSend(objj_msgSend(self, "subviews"), "copy"), + index = 0, + count = subviews.length; + for (; index < count; ++index) + objj_msgSend(view, "addSubview:", subviews[index]); + objj_msgSend(view, "setAutoresizingMask:", objj_msgSend(self, "autoresizingMask")); + objj_msgSend(view, "setAutoresizesSubviews:", objj_msgSend(self, "autoresizesSubviews")); + objj_msgSend(view, "setHitTests:", objj_msgSend(self, "hitTests")); + objj_msgSend(view, "setHidden:", objj_msgSend(self, "isHidden")); + objj_msgSend(view, "setAlphaValue:", objj_msgSend(self, "alphaValue")); + objj_msgSend(_superview, "replaceSubview:with:", self, view); + objj_msgSend(view, "setBackgroundColor:", objj_msgSend(self, "backgroundColor")); + } + return view; +} +})]); +} + +p;23;_CPCibKeyedUnarchiver.jI;30;Foundation/CPKeyedUnarchiver.jc;1596; + + +{var the_class = objj_allocateClassPair(CPKeyedUnarchiver, "_CPCibKeyedUnarchiver"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_bundle"), new objj_ivar("_awakenCustomResources")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initForReadingWithData:bundle:awakenCustomResources:"), function $_CPCibKeyedUnarchiver__initForReadingWithData_bundle_awakenCustomResources_(self, _cmd, data, aBundle, shouldAwakenCustomResources) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPKeyedUnarchiver") }, "initForReadingWithData:", data); + + if (self) + { + _bundle = aBundle; + _awakenCustomResources = shouldAwakenCustomResources; + + objj_msgSend(self, "setDelegate:", self); + } + + return self; +} +}), new objj_method(sel_getUid("bundle"), function $_CPCibKeyedUnarchiver__bundle(self, _cmd) +{ with(self) +{ + return _bundle; +} +}), new objj_method(sel_getUid("awakenCustomResources"), function $_CPCibKeyedUnarchiver__awakenCustomResources(self, _cmd) +{ with(self) +{ + return _awakenCustomResources; +} +}), new objj_method(sel_getUid("replaceObjectAtUID:withObject:"), function $_CPCibKeyedUnarchiver__replaceObjectAtUID_withObject_(self, _cmd, aUID, anObject) +{ with(self) +{ + _objects[aUID] = anObject; +} +}), new objj_method(sel_getUid("objectAtUID:"), function $_CPCibKeyedUnarchiver__objectAtUID_(self, _cmd, aUID) +{ with(self) +{ + return _objects[aUID]; +} +})]); +} + +p;18;_CPCibObjectData.jI;20;Foundation/CPArray.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.ji;7;CPCib.ji;17;_CPCibConnector.jc;9601; +{var the_class = objj_allocateClassPair(CPObject, "_CPCibObjectData"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_namesKeys"), new objj_ivar("_namesValues"), new objj_ivar("_accessibilityConnectors"), new objj_ivar("_accessibilityOidsKeys"), new objj_ivar("_accessibilityOidsValues"), new objj_ivar("_classesKeys"), new objj_ivar("_classesValues"), new objj_ivar("_connections"), new objj_ivar("_fontManager"), new objj_ivar("_framework"), new objj_ivar("_nextOid"), new objj_ivar("_objectsKeys"), new objj_ivar("_objectsValues"), new objj_ivar("_oidKeys"), new objj_ivar("_oidValues"), new objj_ivar("_fileOwner"), new objj_ivar("_visibleWindows"), new objj_ivar("_replacementObjects")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $_CPCibObjectData__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _namesKeys = []; + _namesValues = []; + _classesKeys = []; + _classesValues = []; + _connections = []; + _framework = ""; + _nextOid = []; + _objectsKeys = []; + _objectsValues = []; + _oidKeys = []; + _oidValues = []; + _fileOwner = nil; + _visibleWindows = objj_msgSend(CPSet, "set"); + } + return self; +} +}), new objj_method(sel_getUid("mainMenu"), function $_CPCibObjectData__mainMenu(self, _cmd) +{ with(self) +{ + var index = objj_msgSend(_namesValues, "indexOfObjectIdenticalTo:", "MainMenu"); + if (index === CPNotFound) + { + index = objj_msgSend(_namesValues, "indexOfObjectIdenticalTo:", "Main Menu"); + if (index === CPNotFound) + return nil; + } + return _namesKeys[index]; +} +}), new objj_method(sel_getUid("displayVisibleWindows"), function $_CPCibObjectData__displayVisibleWindows(self, _cmd) +{ with(self) +{ + var object = nil, + objectEnumerator = objj_msgSend(_visibleWindows, "objectEnumerator"); + while (object = objj_msgSend(objectEnumerator, "nextObject")) + objj_msgSend(_replacementObjects[objj_msgSend(object, "hash")], "makeKeyAndOrderFront:", self); +} +})]); +} +var _CPCibObjectDataNamesKeysKey = "_CPCibObjectDataNamesKeysKey", + _CPCibObjectDataNamesValuesKey = "_CPCibObjectDataNamesValuesKey", + _CPCibObjectDataAccessibilityConnectorsKey = "_CPCibObjectDataAccessibilityConnectors", + _CPCibObjectDataAccessibilityOidsKeysKey = "_CPCibObjectDataAccessibilityOidsKeys", + _CPCibObjectDataAccessibilityOidsValuesKey = "_CPCibObjectDataAccessibilityOidsValues", + _CPCibObjectDataClassesKeysKey = "_CPCibObjectDataClassesKeysKey", + _CPCibObjectDataClassesValuesKey = "_CPCibObjectDataClassesValuesKey", + _CPCibObjectDataConnectionsKey = "_CPCibObjectDataConnectionsKey", + _CPCibObjectDataFontManagerKey = "_CPCibObjectDataFontManagerKey", + _CPCibObjectDataFrameworkKey = "_CPCibObjectDataFrameworkKey", + _CPCibObjectDataNextOidKey = "_CPCibObjectDataNextOidKey", + _CPCibObjectDataObjectsKeysKey = "_CPCibObjectDataObjectsKeysKey", + _CPCibObjectDataObjectsValuesKey = "_CPCibObjectDataObjectsValuesKey", + _CPCibObjectDataOidKeysKey = "_CPCibObjectDataOidKeysKey", + _CPCibObjectDataOidValuesKey = "_CPCibObjectDataOidValuesKey", + _CPCibObjectDataFileOwnerKey = "_CPCibObjectDataFileOwnerKey", + _CPCibObjectDataVisibleWindowsKey = "_CPCibObjectDataVisibleWindowsKey"; +{ +var the_class = objj_getClass("_CPCibObjectData") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPCibObjectData\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPCibObjectData__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _replacementObjects = {}; + _namesKeys = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataNamesKeysKey); + _namesValues = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataNamesValuesKey); + _classesKeys = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataClassesKeysKey); + _classesValues = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataClassesValuesKey); + _connections = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataConnectionsKey); + _framework = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataFrameworkKey); + _nextOid = objj_msgSend(aCoder, "decodeIntForKey:", _CPCibObjectDataNextOidKey); + _objectsKeys = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataObjectsKeysKey); + _objectsValues = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataObjectsValuesKey); + _oidKeys = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataOidKeysKey); + _oidValues = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataOidValuesKey); + _fileOwner = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataFileOwnerKey); + _visibleWindows = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataVisibleWindowsKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPCibObjectData__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _namesKeys, _CPCibObjectDataNamesKeysKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _namesValues, _CPCibObjectDataNamesValuesKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _classesKeys, _CPCibObjectDataClassesKeysKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _classesValues, _CPCibObjectDataClassesValuesKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _connections, _CPCibObjectDataConnectionsKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _framework, _CPCibObjectDataFrameworkKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _nextOid, _CPCibObjectDataNextOidKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _objectsKeys, _CPCibObjectDataObjectsKeysKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _objectsValues, _CPCibObjectDataObjectsValuesKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _oidKeys, _CPCibObjectDataOidKeysKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _oidValues, _CPCibObjectDataOidValuesKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _fileOwner, _CPCibObjectDataFileOwnerKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _visibleWindows, _CPCibObjectDataVisibleWindowsKey); +} +}), new objj_method(sel_getUid("instantiateWithOwner:topLevelObjects:"), function $_CPCibObjectData__instantiateWithOwner_topLevelObjects_(self, _cmd, anOwner, topLevelObjects) +{ with(self) +{ + var count = objj_msgSend(_objectsKeys, "count"); + while (count--) + { + var object = _objectsKeys[count], + parent = _objectsValues[count], + instantiatedObject = object; + if (objj_msgSend(object, "respondsToSelector:", sel_getUid("_cibInstantiate"))) + { + var instantiatedObject = objj_msgSend(object, "_cibInstantiate"); + if (instantiatedObject !== object) + { + _replacementObjects[objj_msgSend(object, "hash")] = instantiatedObject; + if (objj_msgSend(instantiatedObject, "isKindOfClass:", objj_msgSend(CPView, "class"))) + { + var clipView = objj_msgSend(instantiatedObject, "superview"); + if (objj_msgSend(clipView, "isKindOfClass:", objj_msgSend(CPClipView, "class"))) + { + var scrollView = objj_msgSend(clipView, "superview"); + if (objj_msgSend(scrollView, "isKindOfClass:", objj_msgSend(CPScrollView, "class"))) + objj_msgSend(scrollView, "setDocumentView:", instantiatedObject); + } + } + } + } + if (topLevelObjects && parent === _fileOwner && object !== _fileOwner) + topLevelObjects.push(instantiatedObject); + } +} +}), new objj_method(sel_getUid("establishConnectionsWithOwner:topLevelObjects:"), function $_CPCibObjectData__establishConnectionsWithOwner_topLevelObjects_(self, _cmd, anOwner, topLevelObjects) +{ with(self) +{ + _replacementObjects[objj_msgSend(_fileOwner, "hash")] = anOwner; + var index = 0, + count = _connections.length; + for (; index < count; ++index) + { + var connection = _connections[index]; + objj_msgSend(connection, "replaceObjects:", _replacementObjects); + objj_msgSend(connection, "establishConnection"); + } +} +}), new objj_method(sel_getUid("awakeWithOwner:topLevelObjects:"), function $_CPCibObjectData__awakeWithOwner_topLevelObjects_(self, _cmd, anOwner, topLevelObjects) +{ with(self) +{ + var count = objj_msgSend(_objectsKeys, "count"); + while (count--) + { + var object = _objectsKeys[count], + instantiatedObject = _replacementObjects[objj_msgSend(object, "hash")]; + if (instantiatedObject) + object = instantiatedObject; + if (object !== anOwner && objj_msgSend(object, "respondsToSelector:", sel_getUid("awakeFromCib"))) + objj_msgSend(object, "awakeFromCib"); + } + if (objj_msgSend(anOwner, "respondsToSelector:", sel_getUid("awakeFromCib"))) + objj_msgSend(anOwner, "awakeFromCib"); +} +})]); +} + +p;22;_CPCibWindowTemplate.jI;21;Foundation/CPObject.jc;4943; + + +var _CPCibWindowTemplateMinSizeKey = "_CPCibWindowTemplateMinSizeKey", + _CPCibWindowTemplateMaxSizeKey = "_CPCibWindowTemplateMaxSizeKey", + + _CPCibWindowTemplateViewClassKey = "_CPCibWindowTemplateViewClassKey", + _CPCibWindowTemplateWindowClassKey = "_CPCibWindowTemplateWindowClassKey", + + _CPCibWindowTemplateWindowRectKey = "_CPCibWindowTemplateWindowRectKey", + _CPCibWindowTemplateWindowStyleMaskKey = "_CPCibWindowTempatStyleMaskKey", + _CPCibWindowTemplateWindowTitleKey = "_CPCibWindowTemplateWindowTitleKey", + _CPCibWindowTemplateWindowViewKey = "_CPCibWindowTemplateWindowViewKey", + + _CPCibWindowTemplateWindowIsFullBridgeKey = "_CPCibWindowTemplateWindowIsFullBridgeKey"; + +{var the_class = objj_allocateClassPair(CPObject, "_CPCibWindowTemplate"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_minSize"), new objj_ivar("_maxSize"), new objj_ivar("_viewClass"), new objj_ivar("_windowClass"), new objj_ivar("_windowRect"), new objj_ivar("_windowStyleMask"), new objj_ivar("_windowTitle"), new objj_ivar("_windowView"), new objj_ivar("_windowIsFullBridge")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPCibWindowTemplate__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + + if (self) + { + if (objj_msgSend(aCoder, "containsValueForKey:", _CPCibWindowTemplateMinSizeKey)) + _minSize = objj_msgSend(aCoder, "decodeSizeForKey:", _CPCibWindowTemplateMinSizeKey); + if (objj_msgSend(aCoder, "containsValueForKey:", _CPCibWindowTemplateMaxSizeKey)) + _maxSize = objj_msgSend(aCoder, "decodeSizeForKey:", _CPCibWindowTemplateMaxSizeKey); + + _viewClass = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibWindowTemplateViewClassKey); + + _windowClass = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibWindowTemplateWindowClassKey); + _windowRect = objj_msgSend(aCoder, "decodeRectForKey:", _CPCibWindowTemplateWindowRectKey); + _windowStyleMask = objj_msgSend(aCoder, "decodeIntForKey:", _CPCibWindowTemplateWindowStyleMaskKey); + + _windowTitle = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibWindowTemplateWindowTitleKey); + _windowView = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibWindowTemplateWindowViewKey); + + _windowIsFullBridge = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibWindowTemplateWindowIsFullBridgeKey); + } + + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPCibWindowTemplate__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (_minSize) + objj_msgSend(aCoder, "encodeSize:forKey:", _minSize, _CPCibWindowTemplateMinSizeKey); + if (_maxSize) + objj_msgSend(aCoder, "encodeSize:forKey:", _maxSize, _CPCibWindowTemplateMaxSizeKey); + + objj_msgSend(aCoder, "encodeObject:forKey:", _viewClass, _CPCibWindowTemplateViewClassKey); + + objj_msgSend(aCoder, "encodeObject:forKey:", _windowClass, _CPCibWindowTemplateWindowClassKey); + objj_msgSend(aCoder, "encodeRect:forKey:", _windowRect, _CPCibWindowTemplateWindowRectKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _windowStyleMask, _CPCibWindowTemplateWindowStyleMaskKey); + + objj_msgSend(aCoder, "encodeObject:forKey:", _windowTitle, _CPCibWindowTemplateWindowTitleKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _windowView, _CPCibWindowTemplateWindowViewKey); + + objj_msgSend(aCoder, "encodeObject:forKey:", _windowIsFullBridge, _CPCibWindowTemplateWindowIsFullBridgeKey); +} +}), new objj_method(sel_getUid("windowClass"), function $_CPCibWindowTemplate__windowClass(self, _cmd) +{ with(self) +{ + return _windowClass; +} +}), new objj_method(sel_getUid("_cibInstantiate"), function $_CPCibWindowTemplate___cibInstantiate(self, _cmd) +{ with(self) +{ + var windowClass = CPClassFromString(objj_msgSend(self, "windowClass")); + + + + + + var theWindow = objj_msgSend(objj_msgSend(windowClass, "alloc"), "initWithContentRect:styleMask:", _windowRect, _windowStyleMask); + + if (_minSize) + objj_msgSend(theWindow, "setMinSize:", _minSize); + if (_maxSize) + objj_msgSend(theWindow, "setMaxSize:", _maxSize); + objj_msgSend(theWindow, "setLevel:", CPFloatingWindowLevel); + + + objj_msgSend(theWindow, "setTitle:", _windowTitle); + + + objj_msgSend(_windowView, "setAutoresizesSubviews:", NO); + + objj_msgSend(theWindow, "setContentView:", _windowView); + + objj_msgSend(_windowView, "setAutoresizesSubviews:", YES); + + if (objj_msgSend(_viewClass, "isKindOfClass:", objj_msgSend(CPToolbar, "class"))) + { + objj_msgSend(theWindow, "setToolbar:", _viewClass); + } + + objj_msgSend(theWindow, "setFullBridge:", _windowIsFullBridge); + + return theWindow; +} +})]); +} + +p;15;_CPCornerView.ji;8;CPView.jc;611; + +{var the_class = objj_allocateClassPair(CPView, "_CPCornerView"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $_CPCornerView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame)) + { + objj_msgSend(self, "setBackgroundColor:", objj_msgSend(CPColor, "purpleColor")); + } + + return self; +} +})]); +} + +p;18;_CPHUDWindowView.jc;9230;var _CPHUDWindowViewBackgroundColor = nil, + CPHUDCloseButtonImage = nil; +var HUD_TITLEBAR_HEIGHT = 26.0; +{var the_class = objj_allocateClassPair(_CPWindowView, "_CPHUDWindowView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_toolbarView"), new objj_ivar("_titleField"), new objj_ivar("_closeButton")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("contentRectForFrameRect:"), function $_CPHUDWindowView__contentRectForFrameRect_(self, _cmd, aFrameRect) +{ with(self) +{ + var contentRect = objj_msgSend(objj_msgSend(self, "class"), "contentRectForFrameRect:", aFrameRect); + if (objj_msgSend(objj_msgSend(objj_msgSend(self, "window"), "toolbar"), "isVisible")) + { + toolbarHeight = CGRectGetHeight(objj_msgSend(objj_msgSend(self, "toolbarView"), "frame")); + contentRect.origin.y += toolbarHeight; + contentRect.size.height -= toolbarHeight; + } + return contentRect; +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $_CPHUDWindowView__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + var frameRect = objj_msgSend(objj_msgSend(self, "class"), "frameRectForContentRect:", aContentRect); + if (objj_msgSend(objj_msgSend(objj_msgSend(self, "window"), "toolbar"), "isVisible")) + { + toolbarHeight = CGRectGetHeight(objj_msgSend(objj_msgSend(self, "toolbarView"), "frame")); + frameRect.origin.y -= toolbarHeight; + frameRect.size.height += toolbarHeight; + } + return frameRect; +} +}), new objj_method(sel_getUid("initWithFrame:styleMask:"), function $_CPHUDWindowView__initWithFrame_styleMask_(self, _cmd, aFrame, aStyleMask) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("_CPWindowView") }, "initWithFrame:styleMask:", aFrame, aStyleMask); + if (self) + { + var bounds = objj_msgSend(self, "bounds"); + objj_msgSend(self, "setBackgroundColor:", _CPHUDWindowViewBackgroundColor); + _titleField = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_titleField, "setHitTests:", NO); + objj_msgSend(_titleField, "setFont:", objj_msgSend(CPFont, "systemFontOfSize:", 11.0)); + objj_msgSend(_titleField, "setTextColor:", objj_msgSend(CPColor, "whiteColor")); + objj_msgSend(_titleField, "setTextShadowColor:", objj_msgSend(CPColor, "blackColor")); + objj_msgSend(_titleField, "setTextShadowOffset:", CGSizeMake(0.0, 1.0)); + objj_msgSend(_titleField, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_titleField, "setLineBreakMode:", CPLineBreakByTruncatingTail); + objj_msgSend(_titleField, "setAlignment:", CPCenterTextAlignment); + objj_msgSend(_titleField, "setStringValue:", "Untitled"); + objj_msgSend(_titleField, "sizeToFit"); + objj_msgSend(_titleField, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_titleField, "setStringValue:", ""); + objj_msgSend(_titleField, "setFrame:", CGRectMake(20.0, 3.0, CGRectGetWidth(objj_msgSend(self, "bounds")) - 40.0, CGRectGetHeight(objj_msgSend(_titleField, "frame")))); + objj_msgSend(self, "addSubview:", _titleField); + if (_styleMask & CPClosableWindowMask) + { + var closeSize = objj_msgSend(_CPHUDWindowViewCloseImage, "size"); + _closeButton = objj_msgSend(objj_msgSend(CPButton, "alloc"), "initWithFrame:", CGRectMake(4.0, 4.0, closeSize.width, closeSize.height)); + objj_msgSend(_closeButton, "setBordered:", NO); + objj_msgSend(_closeButton, "setImage:", _CPHUDWindowViewCloseImage); + objj_msgSend(_closeButton, "setAlternateImage:", _CPHUDWindowViewCloseActiveImage); + objj_msgSend(self, "addSubview:", _closeButton); + } + objj_msgSend(self, "setResizeIndicatorOffset:", CGSizeMake(5.0, 5.0)); + } + return self; +} +}), new objj_method(sel_getUid("viewDidMoveToWindow"), function $_CPHUDWindowView__viewDidMoveToWindow(self, _cmd) +{ with(self) +{ + objj_msgSend(_closeButton, "setTarget:", objj_msgSend(self, "window")); + objj_msgSend(_closeButton, "setAction:", sel_getUid("performClose:")); +} +}), new objj_method(sel_getUid("setTitle:"), function $_CPHUDWindowView__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + objj_msgSend(_titleField, "setStringValue:", aTitle); +} +}), new objj_method(sel_getUid("toolbarView"), function $_CPHUDWindowView__toolbarView(self, _cmd) +{ with(self) +{ + return _toolbarView; +} +}), new objj_method(sel_getUid("toolbarLabelColor"), function $_CPHUDWindowView__toolbarLabelColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPColor, "whiteColor"); +} +}), new objj_method(sel_getUid("toolbarLabelShadowColor"), function $_CPHUDWindowView__toolbarLabelShadowColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPColor, "blackColor"); +} +}), new objj_method(sel_getUid("toolbarOffset"), function $_CPHUDWindowView__toolbarOffset(self, _cmd) +{ with(self) +{ + return CGSizeMake(0.0, HUD_TITLEBAR_HEIGHT); +} +}), new objj_method(sel_getUid("tile"), function $_CPHUDWindowView__tile(self, _cmd) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("_CPWindowView") }, "tile"); + var theWindow = objj_msgSend(self, "window"), + bounds = objj_msgSend(self, "bounds"), + width = CGRectGetWidth(bounds); + objj_msgSend(_titleField, "setFrame:", CGRectMake(20.0, 3.0, width - 40.0, CGRectGetHeight(objj_msgSend(_titleField, "frame")))); + var maxY = objj_msgSend(self, "toolbarMaxY"); + objj_msgSend(objj_msgSend(theWindow, "contentView"), "setFrameOrigin:", CGPointMake(0.0, maxY, width, CGRectGetHeight(bounds) - maxY)); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPHUDWindowView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPHUDWindowView, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPHUDWindowViewBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground0.png"), CPSizeMake(6.0, 78.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground1.png"), CPSizeMake(1.0, 78.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground2.png"), CPSizeMake(6.0, 78.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground3.png"), CPSizeMake(6.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground4.png"), CPSizeMake(1.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground5.png"), CPSizeMake(6.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground6.png"), CPSizeMake(6.0, 6.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground7.png"), CPSizeMake(6.0, 6.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground8.png"), CPSizeMake(6.0, 6.0)) + ])); + _CPHUDWindowViewCloseImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "HUDTheme/WindowClose.png"), CPSizeMake(20.0, 20.0)); + _CPHUDWindowViewCloseActiveImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "HUDTheme/WindowCloseActive.png"), CPSizeMake(20.0, 20.0)); +} +}), new objj_method(sel_getUid("contentRectForFrameRect:"), function $_CPHUDWindowView__contentRectForFrameRect_(self, _cmd, aFrameRect) +{ with(self) +{ + var contentRect = CGRectMakeCopy(aFrameRect), + titleBarHeight = HUD_TITLEBAR_HEIGHT; + contentRect.origin.y += titleBarHeight; + contentRect.size.height -= titleBarHeight; + return contentRect; +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $_CPHUDWindowView__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + var frameRect = CGRectMakeCopy(aContentRect), + titleBarHeight = HUD_TITLEBAR_HEIGHT; + frameRect.origin.y -= titleBarHeight; + frameRect.size.height += titleBarHeight; + return frameRect; +} +})]); +} + +p;21;_CPImageAndTextView.jI;21;Foundation/CPString.ji;9;CPColor.ji;8;CPFont.ji;9;CPImage.ji;13;CPTextField.ji;8;CPView.jc;22447; +CPTopVerticalTextAlignment = 1, +CPCenterVerticalTextAlignment = 2, +CPBottomVerticalTextAlignment = 3; +var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, + _CPImageAndTextViewImageChangedFlag = 1 << 1, + _CPImageAndTextViewTextChangedFlag = 1 << 2, + _CPImageAndTextViewAlignmentChangedFlag = 1 << 3, + _CPImageAndTextViewVerticalAlignmentChangedFlag = 1 << 4, + _CPImageAndTextViewLineBreakModeChangedFlag = 1 << 5, + _CPImageAndTextViewTextColorChangedFlag = 1 << 6, + _CPImageAndTextViewFontChangedFlag = 1 << 7, + _CPImageAndTextViewTextShadowColorChangedFlag = 1 << 8, + _CPImageAndTextViewImagePositionChangedFlag = 1 << 9, + _CPImageAndTextViewImageScalingChangedFlag = 1 << 10; +var HORIZONTAL_MARGIN = 3.0, + VERTICAL_MARGIN = 5.0; +{var the_class = objj_allocateClassPair(CPView, "_CPImageAndTextView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_alignment"), new objj_ivar("_verticalAlignment"), new objj_ivar("_lineBreakMode"), new objj_ivar("_textColor"), new objj_ivar("_font"), new objj_ivar("_textShadowColor"), new objj_ivar("_textShadowOffset"), new objj_ivar("_imagePosition"), new objj_ivar("_imageScaling"), new objj_ivar("_image"), new objj_ivar("_text"), new objj_ivar("_textSize"), new objj_ivar("_flags"), new objj_ivar("_DOMImageElement"), new objj_ivar("_DOMTextElement"), new objj_ivar("_DOMTextShadowElement")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:control:"), function $_CPImageAndTextView__initWithFrame_control_(self, _cmd, aFrame, aControl) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _textShadowOffset = { width:0.0, height:0.0 }; + objj_msgSend(self, "setVerticalAlignment:", CPTopVerticalTextAlignment); + if (aControl) + { + objj_msgSend(self, "setLineBreakMode:", objj_msgSend(aControl, "lineBreakMode")); + objj_msgSend(self, "setTextColor:", objj_msgSend(aControl, "textColor")); + objj_msgSend(self, "setAlignment:", objj_msgSend(aControl, "alignment")); + objj_msgSend(self, "setVerticalAlignment:", objj_msgSend(aControl, "verticalAlignment")); + objj_msgSend(self, "setFont:", objj_msgSend(aControl, "font")); + objj_msgSend(self, "setImagePosition:", objj_msgSend(aControl, "imagePosition")); + objj_msgSend(self, "setImageScaling:", objj_msgSend(aControl, "imageScaling")); + } + else + { + objj_msgSend(self, "setLineBreakMode:", CPLineBreakByClipping); + objj_msgSend(self, "setAlignment:", CPCenterTextAlignment); + objj_msgSend(self, "setFont:", objj_msgSend(CPFont, "systemFontOfSize:", 12.0)); + objj_msgSend(self, "setImagePosition:", CPNoImage); + objj_msgSend(self, "setImageScaling:", CPScaleNone); + } + _textSize = NULL; + } + return self; +} +}), new objj_method(sel_getUid("initWithFrame:"), function $_CPImageAndTextView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + return objj_msgSend(self, "initWithFrame:control:", aFrame, nil); +} +}), new objj_method(sel_getUid("setAlignment:"), function $_CPImageAndTextView__setAlignment_(self, _cmd, anAlignment) +{ with(self) +{ + if (_alignment === anAlignment) + return; + _alignment = anAlignment; + switch (_alignment) + { + case CPLeftTextAlignment: _DOMElement.style.textAlign = "left"; + break; + case CPRightTextAlignment: _DOMElement.style.textAlign = "right"; + break; + case CPCenterTextAlignment: _DOMElement.style.textAlign = "center"; + break; + case CPJustifiedTextAlignment: _DOMElement.style.textAlign = "justify"; + break; + case CPNaturalTextAlignment: _DOMElement.style.textAlign = ""; + break; + } +} +}), new objj_method(sel_getUid("alignment"), function $_CPImageAndTextView__alignment(self, _cmd) +{ with(self) +{ + return _alignment; +} +}), new objj_method(sel_getUid("setVerticalAlignment:"), function $_CPImageAndTextView__setVerticalAlignment_(self, _cmd, anAlignment) +{ with(self) +{ + if (_verticalAlignment === anAlignment) + return; + _verticalAlignment = anAlignment; + _flags |= _CPImageAndTextViewVerticalAlignmentChangedFlag; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("verticalAlignment"), function $_CPImageAndTextView__verticalAlignment(self, _cmd) +{ with(self) +{ + return _verticalAlignment; +} +}), new objj_method(sel_getUid("setLineBreakMode:"), function $_CPImageAndTextView__setLineBreakMode_(self, _cmd, aLineBreakMode) +{ with(self) +{ + if (_lineBreakMode === aLineBreakMode) + return; + _lineBreakMode = aLineBreakMode; + _flags |= _CPImageAndTextViewLineBreakModeChangedFlag; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("lineBreakMode"), function $_CPImageAndTextView__lineBreakMode(self, _cmd) +{ with(self) +{ + return _lineBreakMode; +} +}), new objj_method(sel_getUid("setImagePosition:"), function $_CPImageAndTextView__setImagePosition_(self, _cmd, anImagePosition) +{ with(self) +{ + if (_imagePosition == anImagePosition) + return; + _imagePosition = anImagePosition; + _flags |= _CPImageAndTextViewImagePositionChangedFlag; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("imagePosition"), function $_CPImageAndTextView__imagePosition(self, _cmd) +{ with(self) +{ + return _imagePosition; +} +}), new objj_method(sel_getUid("setImageScaling:"), function $_CPImageAndTextView__setImageScaling_(self, _cmd, anImageScaling) +{ with(self) +{ + if (_imageScaling == anImageScaling) + return; + _imageScaling = anImageScaling; + _flags |= _CPImageAndTextViewImageScalingChangedFlag; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("imageScaling"), function $_CPImageAndTextView__imageScaling(self, _cmd) +{ with(self) +{ + return _imageScaling; +} +}), new objj_method(sel_getUid("setTextColor:"), function $_CPImageAndTextView__setTextColor_(self, _cmd, aTextColor) +{ with(self) +{ + if (_textColor === aTextColor) + return; + _textColor = aTextColor; + _DOMElement.style.color = objj_msgSend(_textColor, "cssString"); +} +}), new objj_method(sel_getUid("textColor"), function $_CPImageAndTextView__textColor(self, _cmd) +{ with(self) +{ + return _textColor; +} +}), new objj_method(sel_getUid("setFont:"), function $_CPImageAndTextView__setFont_(self, _cmd, aFont) +{ with(self) +{ + if (_font === aFont) + return; + _font = aFont; + _flags |= _CPImageAndTextViewFontChangedFlag; + _textSize = NULL; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("font"), function $_CPImageAndTextView__font(self, _cmd) +{ with(self) +{ + return _font; +} +}), new objj_method(sel_getUid("setTextShadowColor:"), function $_CPImageAndTextView__setTextShadowColor_(self, _cmd, aColor) +{ with(self) +{ + if (_textShadowColor === aColor) + return; + _textShadowColor = aColor; + _flags |= _CPImageAndTextViewTextShadowColorChangedFlag; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("textShadowColor"), function $_CPImageAndTextView__textShadowColor(self, _cmd) +{ with(self) +{ + return _textShadowColor; +} +}), new objj_method(sel_getUid("setTextShadowOffset:"), function $_CPImageAndTextView__setTextShadowOffset_(self, _cmd, anOffset) +{ with(self) +{ + if ((_textShadowOffset.width == anOffset.width && _textShadowOffset.height == anOffset.height)) + return; + _textShadowOffset = { width:anOffset.width, height:anOffset.height }; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("textShadowOffset"), function $_CPImageAndTextView__textShadowOffset(self, _cmd) +{ with(self) +{ + return _textShadowOffset; +} +}), new objj_method(sel_getUid("setImage:"), function $_CPImageAndTextView__setImage_(self, _cmd, anImage) +{ with(self) +{ + if (_image == anImage) + return; + _image = anImage; + _flags |= _CPImageAndTextViewImageChangedFlag; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("image"), function $_CPImageAndTextView__image(self, _cmd) +{ with(self) +{ + return _image; +} +}), new objj_method(sel_getUid("setText:"), function $_CPImageAndTextView__setText_(self, _cmd, text) +{ with(self) +{ + if (_text === text) + return; + _text = text; + _flags |= _CPImageAndTextViewTextChangedFlag; + _textSize = NULL; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("text"), function $_CPImageAndTextView__text(self, _cmd) +{ with(self) +{ + return _text; +} +}), new objj_method(sel_getUid("layoutSubviews"), function $_CPImageAndTextView__layoutSubviews(self, _cmd) +{ with(self) +{ + var needsDOMTextElement = _imagePosition !== CPImageOnly && (objj_msgSend(_text, "length") > 0), + hasDOMTextElement = !!_DOMTextElement; + if (needsDOMTextElement !== hasDOMTextElement) + if (hasDOMTextElement) + { + _DOMElement.removeChild(_DOMTextElement); + _DOMTextElement = NULL; + hasDOMTextElement = NO; + } + else + { + _DOMTextElement = document.createElement("div"); + var textStyle = _DOMTextElement.style; + textStyle.position = "absolute"; + textStyle.whiteSpace = "pre"; + textStyle.cursor = "default"; + textStyle.zIndex = 200; + textStyle.overflow = "hidden"; + _DOMElement.appendChild(_DOMTextElement); + hasDOMTextElement = YES; + _flags |= _CPImageAndTextViewTextChangedFlag | _CPImageAndTextViewFontChangedFlag | _CPImageAndTextViewLineBreakModeChangedFlag; + } + var textStyle = hasDOMTextElement ? _DOMTextElement.style : nil; + var needsDOMTextShadowElement = hasDOMTextElement && !!_textShadowColor, + hasDOMTextShadowElement = !!_DOMTextShadowElement; + if (needsDOMTextShadowElement !== hasDOMTextShadowElement) + if (hasDOMTextShadowElement) + { + _DOMElement.removeChild(_DOMTextShadowElement); + _DOMTextShadowElement = NULL; + hasDOMTextShadowElement = NO; + } + else + { + _DOMTextShadowElement = document.createElement("div"); + var shadowStyle = _DOMTextShadowElement.style; + shadowStyle.font = objj_msgSend(_font ? _font : objj_msgSend(CPFont, "systemFontOfSize:", 12.0), "cssString"); + shadowStyle.position = "absolute"; + shadowStyle.whiteSpace = textStyle.whiteSpace; + shadowStyle.cursor = "default"; + shadowStyle.zIndex = 150; + shadowStyle.textOverflow = textStyle.textOverflow; + if (document.attachEvent) + { + shadowStyle.overflow = textStyle.overflow; + shadowStyle.wordWrap = textStyle.wordWrap; + } + else + { + shadowStyle.overflowX = textStyle.overflowX; + shadowStyle.overflowY = textStyle.overflowY; + } + _DOMElement.appendChild(_DOMTextShadowElement); + hasDOMTextShadowElement = YES; + _flags |= _CPImageAndTextViewTextChangedFlag; + } + var shadowStyle = hasDOMTextShadowElement ? _DOMTextShadowElement.style : nil; + if (hasDOMTextElement) + { + if (_flags & _CPImageAndTextViewTextChangedFlag) + if (CPFeatureIsCompatible(CPJavascriptInnerTextFeature)) + { + _DOMTextElement.innerText = _text; + if (_DOMTextShadowElement) + _DOMTextShadowElement.innerText = _text; + } + else if (CPFeatureIsCompatible(CPJavascriptTextContentFeature)) + { + _DOMTextElement.textContent = _text; + if (_DOMTextShadowElement) + _DOMTextShadowElement.textContent = _text; + } + if (_flags & _CPImageAndTextViewFontChangedFlag) + { + var fontStyle = objj_msgSend(_font ? _font : objj_msgSend(CPFont, "systemFontOfSize:", 12.0), "cssString"); + textStyle.font = fontStyle; + if (shadowStyle) + shadowStyle.font = fontStyle; + } + if (_flags & _CPImageAndTextViewLineBreakModeChangedFlag) + { + switch (_lineBreakMode) + { + case CPLineBreakByClipping: textStyle.overflow = "hidden"; + textStyle.textOverflow = "clip"; + textStyle.whiteSpace = "pre"; + if (document.attachEvent) + textStyle.wordWrap = "normal"; + break; + case CPLineBreakByTruncatingHead: + case CPLineBreakByTruncatingMiddle: + case CPLineBreakByTruncatingTail: textStyle.textOverflow = "ellipsis"; + textStyle.whiteSpace = "nowrap"; + textStyle.overflow = "hidden"; + if (document.attachEvent) + textStyle.wordWrap = "normal"; + break; + case CPLineBreakByCharWrapping: + case CPLineBreakByWordWrapping: if (document.attachEvent) + { + textStyle.whiteSpace = "pre"; + textStyle.wordWrap = "break-word"; + } + else + { + textStyle.whiteSpace = "-o-pre-wrap"; + textStyle.whiteSpace = "-pre-wrap"; + textStyle.whiteSpace = "-moz-pre-wrap"; + textStyle.whiteSpace = "pre-wrap"; + } + textStyle.overflow = "hidden"; + textStyle.textOverflow = "clip"; + break; + } + if (shadowStyle) + { + if (document.attachEvent) + { + shadowStyle.wordWrap = textStyle.wordWrap; + shadowStyle.overflow = textStyle.overflow; + } + else + { + shadowStyle.overflowX = textStyle.overflowX; + shadowStyle.overflowY = textStyle.overflowY; + } + shadowStyle.whiteSpace = textStyle.whiteSpace; + shadowStyle.textOverflow = textStyle.textOverflow; + } + } + } + var needsDOMImageElement = _image !== nil && _imagePosition !== CPNoImage, + hasDOMImageElement = !!_DOMImageElement; + if (needsDOMImageElement !== hasDOMImageElement) + if (hasDOMImageElement) + { + _DOMElement.removeChild(_DOMImageElement); + _DOMImageElement = NULL; + hasDOMImageElement = NO; + } + else + { + _DOMImageElement = document.createElement("img"); + var imageStyle = _DOMImageElement.style; + imageStyle.top = "0px"; + imageStyle.left = "0px"; + imageStyle.position = "absolute"; + imageStyle.zIndex = 100; + _DOMElement.appendChild(_DOMImageElement); + hasDOMImageElement = YES; + } + var size = objj_msgSend(self, "bounds").size, + textRect = { origin: { x:0.0, y:0.0 }, size: { width:size.width, height:size.height } }; + if (hasDOMImageElement) + { + if (!imageStyle) + var imageStyle = _DOMImageElement.style; + if (_flags & _CPImageAndTextViewImageChangedFlag) + _DOMImageElement.src = objj_msgSend(_image, "filename"); + var centerX = size.width / 2.0, + centerY = size.height / 2.0, + imageSize = objj_msgSend(_image, "size"), + imageWidth = imageSize.width, + imageHeight = imageSize.height; + if (_imageScaling === CPScaleToFit) + { + imageWidth = size.width; + imageHeight = size.height; + } + else if (_imageScaling === CPScaleProportionally) + { + var scale = MIN(MIN(size.width, imageWidth) / imageWidth, MIN(size.height, imageHeight) / imageHeight); + imageWidth *= scale; + imageHeight *= scale; + } + _DOMImageElement.width = imageWidth; + _DOMImageElement.height = imageHeight; + imageStyle.width = imageWidth + "px"; + imageStyle.height = imageHeight + "px"; + if (_imagePosition === CPImageBelow) + { + imageStyle.left = FLOOR(centerX - imageWidth / 2.0) + "px"; + imageStyle.top = FLOOR(size.height - imageHeight) + "px"; + textRect.size.height = size.height - imageHeight - VERTICAL_MARGIN; + } + else if (_imagePosition === CPImageAbove) + { + if (!_DOMImageElement.CPDOMDisplayContext) _DOMImageElement.CPDOMDisplayContext = []; var __index = _DOMImageElement.CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageElement.CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageElement; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = FLOOR(centerX - imageWidth / 2.0); CPDOMDisplayServerInstructions[__index + 4] = 0;; + textRect.origin.y += imageHeight + VERTICAL_MARGIN; + textRect.size.height = size.height - imageHeight - VERTICAL_MARGIN; + } + else if (_imagePosition === CPImageLeft) + { + imageStyle.top = FLOOR(centerY - imageHeight / 2.0) + "px"; + imageStyle.left = "0px"; + textRect.origin.x = imageWidth + HORIZONTAL_MARGIN; + textRect.size.width -= imageWidth + HORIZONTAL_MARGIN; + } + else if (_imagePosition === CPImageRight) + { + imageStyle.top = FLOOR(centerY - imageHeight / 2.0) + "px"; + imageStyle.left = FLOOR(size.width - imageWidth) + "px"; + textRect.size.width -= imageWidth + HORIZONTAL_MARGIN; + } + else if (_imagePosition === CPImageOnly) + { + imageStyle.top = FLOOR(centerY - imageHeight / 2.0) + "px"; + imageStyle.left = FLOOR(centerX - imageWidth / 2.0) + "px"; + } + } + if (hasDOMTextElement) + { + var textRectX = (textRect.origin.x), + textRectY = (textRect.origin.y), + textRectWidth = (textRect.size.width), + textRectHeight = (textRect.size.height); + if (_verticalAlignment !== CPTopVerticalTextAlignment) + { + if (!_textSize) + { + if (_lineBreakMode === CPLineBreakByCharWrapping || + _lineBreakMode === CPLineBreakByWordWrapping) + _textSize = objj_msgSend(_text, "sizeWithFont:inWidth:", _font, textRectWidth); + else + _textSize = objj_msgSend(_text, "sizeWithFont:", _font); + } + if (_verticalAlignment === CPCenterVerticalTextAlignment) + { + textRectY = textRectY + (textRectHeight - _textSize.height) / 2.0; + textRectHeight = _textSize.height; + } + else + { + textRectY = textRectY + textRectHeight - _textSize.height; + textRectHeight = _textSize.height; + } + } + textStyle.top = ROUND(textRectY) + "px"; + textStyle.left = ROUND(textRectX) + "px"; + textStyle.width = ROUND(textRectWidth) + "px"; + textStyle.height = ROUND(textRectHeight) + "px"; + if (shadowStyle) + { + if (_flags & _CPImageAndTextViewTextShadowColorChangedFlag) + shadowStyle.color = objj_msgSend(_textShadowColor, "cssString"); + shadowStyle.top = ROUND(textRectY + _textShadowOffset.height) + "px"; + shadowStyle.left = ROUND(textRectX + _textShadowOffset.width) + "px"; + shadowStyle.width = ROUND(textRectWidth) + "px"; + shadowStyle.height = ROUND(textRectHeight) + "px"; + } + } + _flags = 0; +} +}), new objj_method(sel_getUid("sizeToFit"), function $_CPImageAndTextView__sizeToFit(self, _cmd) +{ with(self) +{ + var size = CGSizeMakeZero(); + if ((_imagePosition !== CPNoImage) && _image) + { + var imageSize = objj_msgSend(_image, "size"); + size.width += imageSize.width; + size.height += imageSize.height; + } + if ((_imagePosition !== CPImageOnly) && objj_msgSend(_text, "length") > 0) + { + if (!_textSize) + _textSize = objj_msgSend(_text, "sizeWithFont:", _font ? _font : objj_msgSend(CPFont, "systemFontOfSize:", 12.0)); + if (_imagePosition === CPImageLeft || _imagePosition === CPImageRight) + { + size.width += _textSize.width + HORIZONTAL_MARGIN; + size.height = MAX(size.height, _textSize.height); + } + else if (_imagePosition === CPImageAbove || _imagePosition === CPImageBelow) + { + size.width = MAX(size.width, _textSize.width); + size.height += _textSize.height + VERTICAL_MARGIN; + } + else + { + size.width = MAX(size.width, _textSize.width); + size.height = MAX(size.height, _textSize.height); + } + } + objj_msgSend(self, "setFrameSize:", size); +} +})]); +} + +p;23;_CPStandardWindowView.ji;15;_CPWindowView.jc;14081; +var GRADIENT_HEIGHT = 41.0; +var _CPTexturedWindowHeadGradientColor = nil, + _CPTexturedWindowHeadSolidColor = nil; +{var the_class = objj_allocateClassPair(CPView, "_CPTexturedWindowHeadView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_gradientView"), new objj_ivar("_solidView"), new objj_ivar("_dividerView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $_CPTexturedWindowHeadView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + var theClass = objj_msgSend(self, "class"), + bounds = objj_msgSend(self, "bounds"); + _gradientView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), GRADIENT_HEIGHT)); + objj_msgSend(_gradientView, "setBackgroundColor:", objj_msgSend(theClass, "gradientColor")); + objj_msgSend(self, "addSubview:", _gradientView); + _solidView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, GRADIENT_HEIGHT, CGRectGetWidth(bounds), CGRectGetHeight(bounds) - GRADIENT_HEIGHT)); + objj_msgSend(_solidView, "setBackgroundColor:", objj_msgSend(theClass, "solidColor")); + objj_msgSend(self, "addSubview:", _solidView); + } + return self; +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $_CPTexturedWindowHeadView__resizeSubviewsWithOldSize_(self, _cmd, aSize) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"); + objj_msgSend(_gradientView, "setFrameSize:", CGSizeMake(CGRectGetWidth(bounds), GRADIENT_HEIGHT)); + objj_msgSend(_solidView, "setFrameSize:", CGSizeMake(CGRectGetWidth(bounds), CGRectGetHeight(bounds) - GRADIENT_HEIGHT)); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("gradientColor"), function $_CPTexturedWindowHeadView__gradientColor(self, _cmd) +{ with(self) +{ + if (!_CPTexturedWindowHeadGradientColor) + { + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(_CPWindowView, "class")); + _CPTexturedWindowHeadGradientColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPThreePartImage, "alloc"), "initWithImageSlices:isVertical:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/Standard/CPWindowStandardTop0.png"), CGSizeMake(6.0, 41.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/Standard/CPWindowStandardTop1.png"), CGSizeMake(1.0, 41.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/Standard/CPWindowStandardTop2.png"), CGSizeMake(6.0, 41.0)) + ], NO + )); + } + return _CPTexturedWindowHeadGradientColor; +} +}), new objj_method(sel_getUid("solidColor"), function $_CPTexturedWindowHeadView__solidColor(self, _cmd) +{ with(self) +{ + if (!_CPTexturedWindowHeadSolidColor) + _CPTexturedWindowHeadSolidColor = objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 195.0 / 255.0, 195.0 / 255.0, 195.0 / 255.0, 1.0); + return _CPTexturedWindowHeadSolidColor; +} +})]); +} +var _CPStandardWindowViewBodyBackgroundColor = nil, + _CPStandardWindowViewDividerBackgroundColor = nil, + _CPStandardWindowViewTitleBackgroundColor = nil, + _CPStandardWindowViewCloseButtonImage = nil, + _CPStandardWindowViewCloseButtonHighlightedImage = nil; +var STANDARD_GRADIENT_HEIGHT = 41.0; + STANDARD_TITLEBAR_HEIGHT = 25.0; +{var the_class = objj_allocateClassPair(_CPWindowView, "_CPStandardWindowView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_headView"), new objj_ivar("_dividerView"), new objj_ivar("_bodyView"), new objj_ivar("_toolbarView"), new objj_ivar("_titleField"), new objj_ivar("_closeButton")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("contentRectForFrameRect:"), function $_CPStandardWindowView__contentRectForFrameRect_(self, _cmd, aFrameRect) +{ with(self) +{ + var contentRect = objj_msgSend(objj_msgSend(self, "class"), "contentRectForFrameRect:", aFrameRect), + theToolbar = objj_msgSend(objj_msgSend(self, "window"), "toolbar"); + if (objj_msgSend(theToolbar, "isVisible")) + { + toolbarHeight = CGRectGetHeight(objj_msgSend(objj_msgSend(theToolbar, "_toolbarView"), "frame")); + contentRect.origin.y += toolbarHeight; + contentRect.size.height -= toolbarHeight; + } + return contentRect; +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $_CPStandardWindowView__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + var frameRect = objj_msgSend(objj_msgSend(self, "class"), "frameRectForContentRect:", aContentRect), + theToolbar = objj_msgSend(objj_msgSend(self, "window"), "toolbar"); + if (objj_msgSend(theToolbar, "isVisible")) + { + toolbarHeight = CGRectGetHeight(objj_msgSend(objj_msgSend(theToolbar, "_toolbarView"), "frame")); + frameRect.origin.y -= toolbarHeight; + frameRect.size.height += toolbarHeight; + } + return frameRect; +} +}), new objj_method(sel_getUid("initWithFrame:styleMask:"), function $_CPStandardWindowView__initWithFrame_styleMask_(self, _cmd, aFrame, aStyleMask) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("_CPWindowView") }, "initWithFrame:styleMask:", aFrame, aStyleMask); + if (self) + { + var theClass = objj_msgSend(self, "class"), + bounds = objj_msgSend(self, "bounds"); + _headView = objj_msgSend(objj_msgSend(_CPTexturedWindowHeadView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), objj_msgSend(objj_msgSend(self, "class"), "titleBarHeight"))); + objj_msgSend(_headView, "setAutoresizingMask:", CPViewWidthSizable);; + objj_msgSend(_headView, "setHitTests:", NO); + objj_msgSend(self, "addSubview:", _headView); + _dividerView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, CGRectGetMaxY(objj_msgSend(_headView, "frame")), CGRectGetWidth(bounds), 1.0)); + objj_msgSend(_dividerView, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_dividerView, "setBackgroundColor:", objj_msgSend(theClass, "dividerBackgroundColor")); + objj_msgSend(_dividerView, "setHitTests:", NO); + objj_msgSend(self, "addSubview:", _dividerView); + var y = CGRectGetMaxY(objj_msgSend(_dividerView, "frame")); + _bodyView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, y, CGRectGetWidth(bounds), CGRectGetHeight(bounds) - y)); + objj_msgSend(_bodyView, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + objj_msgSend(_bodyView, "setBackgroundColor:", objj_msgSend(theClass, "bodyBackgroundColor")); + objj_msgSend(_bodyView, "setHitTests:", NO); + objj_msgSend(self, "addSubview:", _bodyView); + objj_msgSend(self, "setResizeIndicatorOffset:", CGSizeMake(2.0, 2.0)); + _titleField = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_titleField, "setFont:", objj_msgSend(CPFont, "boldSystemFontOfSize:", 12.0)); + objj_msgSend(_titleField, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_titleField, "setLineBreakMode:", CPLineBreakByTruncatingTail); + objj_msgSend(_titleField, "setAlignment:", CPCenterTextAlignment); + objj_msgSend(_titleField, "setTextShadowColor:", objj_msgSend(CPColor, "whiteColor")); + objj_msgSend(_titleField, "setTextShadowOffset:", CGSizeMake(0.0, 1.0)); + objj_msgSend(_titleField, "setStringValue:", "Untitled"); + objj_msgSend(_titleField, "sizeToFit"); + objj_msgSend(_titleField, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_titleField, "setStringValue:", ""); + objj_msgSend(self, "addSubview:", _titleField); + if (_styleMask & CPClosableWindowMask) + { + if (!_CPStandardWindowViewCloseButtonImage) + { + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPWindow, "class")); + _CPStandardWindowViewCloseButtonImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/Standard/CPWindowStandardCloseButton.png"), CGSizeMake(16.0, 16.0)); + _CPStandardWindowViewCloseButtonHighlightedImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/Standard/CPWindowStandardCloseButtonHighlighted.png"), CGSizeMake(16.0, 16.0)); + } + _closeButton = objj_msgSend(objj_msgSend(CPButton, "alloc"), "initWithFrame:", CGRectMake(8.0, 7.0, 16.0, 16.0)); + objj_msgSend(_closeButton, "setBordered:", NO); + objj_msgSend(_closeButton, "setImage:", _CPStandardWindowViewCloseButtonImage); + objj_msgSend(_closeButton, "setAlternateImage:", _CPStandardWindowViewCloseButtonHighlightedImage); + objj_msgSend(self, "addSubview:", _closeButton); + } + objj_msgSend(self, "tile"); + } + return self; +} +}), new objj_method(sel_getUid("viewDidMoveToWindow"), function $_CPStandardWindowView__viewDidMoveToWindow(self, _cmd) +{ with(self) +{ + objj_msgSend(_closeButton, "setTarget:", objj_msgSend(self, "window")); + objj_msgSend(_closeButton, "setAction:", sel_getUid("performClose:")); +} +}), new objj_method(sel_getUid("toolbarOffset"), function $_CPStandardWindowView__toolbarOffset(self, _cmd) +{ with(self) +{ + return CGSizeMake(0.0, objj_msgSend(objj_msgSend(self, "class"), "titleBarHeight")); +} +}), new objj_method(sel_getUid("tile"), function $_CPStandardWindowView__tile(self, _cmd) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("_CPWindowView") }, "tile"); + var theWindow = objj_msgSend(self, "window"), + bounds = objj_msgSend(self, "bounds"), + width = CGRectGetWidth(bounds); + objj_msgSend(_headView, "setFrameSize:", CGSizeMake(width, objj_msgSend(self, "toolbarMaxY"))); + objj_msgSend(_dividerView, "setFrame:", CGRectMake(0.0, CGRectGetMaxY(objj_msgSend(_headView, "frame")), width, 1.0)); + var dividerMaxY = CGRectGetMaxY(objj_msgSend(_dividerView, "frame")); + objj_msgSend(_bodyView, "setFrame:", CGRectMake(0.0, dividerMaxY, width, CGRectGetHeight(bounds) - dividerMaxY)); + objj_msgSend(_titleField, "setFrame:", CGRectMake(10.0, 3.0, width - 20.0, CGRectGetHeight(objj_msgSend(_titleField, "frame")))); + objj_msgSend(objj_msgSend(theWindow, "contentView"), "setFrameOrigin:", CGPointMake(0.0, CGRectGetMaxY(objj_msgSend(_dividerView, "frame")))); +} +}), new objj_method(sel_getUid("setTitle:"), function $_CPStandardWindowView__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + objj_msgSend(_titleField, "setStringValue:", aTitle); +} +}), new objj_method(sel_getUid("mouseDown:"), function $_CPStandardWindowView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (CGRectContainsPoint(objj_msgSend(_headView, "frame"), objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil))) + return objj_msgSend(self, "trackMoveWithEvent:", anEvent); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("_CPWindowView") }, "mouseDown:", anEvent); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("bodyBackgroundColor"), function $_CPStandardWindowView__bodyBackgroundColor(self, _cmd) +{ with(self) +{ + if (!_CPStandardWindowViewBodyBackgroundColor) + _CPStandardWindowViewBodyBackgroundColor = objj_msgSend(CPColor, "colorWithWhite:alpha:", 0.96, 1.0); + return _CPStandardWindowViewBodyBackgroundColor; +} +}), new objj_method(sel_getUid("dividerBackgroundColor"), function $_CPStandardWindowView__dividerBackgroundColor(self, _cmd) +{ with(self) +{ + if (!_CPStandardWindowViewDividerBackgroundColor) + _CPStandardWindowViewDividerBackgroundColor = objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 125.0 / 255.0, 125.0 / 255.0, 125.0 / 255.0, 1.0); + return _CPStandardWindowViewDividerBackgroundColor; +} +}), new objj_method(sel_getUid("titleColor"), function $_CPStandardWindowView__titleColor(self, _cmd) +{ with(self) +{ + if (!_CPStandardWindowViewTitleBackgroundColor) + _CPStandardWindowViewTitleBackgroundColor = objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 44.0 / 255.0, 44.0 / 255.0, 44.0 / 255.0, 1.0); + return _CPStandardWindowViewTitleBackgroundColor; +} +}), new objj_method(sel_getUid("contentRectForFrameRect:"), function $_CPStandardWindowView__contentRectForFrameRect_(self, _cmd, aFrameRect) +{ with(self) +{ + var contentRect = CGRectMakeCopy(aFrameRect), + titleBarHeight = objj_msgSend(self, "titleBarHeight") + 1.0; + contentRect.origin.y += titleBarHeight; + contentRect.size.height -= titleBarHeight; + return contentRect; +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $_CPStandardWindowView__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + var frameRect = CGRectMakeCopy(aContentRect), + titleBarHeight = objj_msgSend(self, "titleBarHeight") + 1.0; + frameRect.origin.y -= titleBarHeight; + frameRect.size.height += titleBarHeight; + return frameRect; +} +}), new objj_method(sel_getUid("titleBarHeight"), function $_CPStandardWindowView__titleBarHeight(self, _cmd) +{ with(self) +{ + return STANDARD_TITLEBAR_HEIGHT; +} +})]); +} + +p;15;_CPWindowView.ji;8;CPView.ji;13;CPImageView.jc;12531; +var _CPWindowViewResizeIndicatorImage = nil; +{var the_class = objj_allocateClassPair(CPView, "_CPWindowView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_styleMask"), new objj_ivar("_resizeIndicator"), new objj_ivar("_resizeIndicatorOffset"), new objj_ivar("_toolbarView"), new objj_ivar("_resizeFrame"), new objj_ivar("_mouseDraggedPoint"), new objj_ivar("_cachedScreenFrame")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("contentRectForFrameRect:"), function $_CPWindowView__contentRectForFrameRect_(self, _cmd, aFrameRect) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "class"), "contentRectForFrameRect:", aFrameRect); +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $_CPWindowView__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "class"), "frameRectForContentRect:", aContentRect); +} +}), new objj_method(sel_getUid("initWithFrame:styleMask:"), function $_CPWindowView__initWithFrame_styleMask_(self, _cmd, aFrame, aStyleMask) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _styleMask = aStyleMask; + _resizeIndicatorOffset = CGSizeMake(0.0, 0.0); + _toolbarOffset = CGSizeMake(0.0, 0.0); + objj_msgSend(self, "setShowsResizeIndicator:", !(_styleMask & CPBorderlessBridgeWindowMask) && (_styleMask & CPResizableWindowMask)); + } + return self; +} +}), new objj_method(sel_getUid("setTitle:"), function $_CPWindowView__setTitle_(self, _cmd, aTitle) +{ with(self) +{ +} +}), new objj_method(sel_getUid("acceptsFirstMouse:"), function $_CPWindowView__acceptsFirstMouse_(self, _cmd, anEvent) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("mouseDown:"), function $_CPWindowView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + var theWindow = objj_msgSend(self, "window"); + if ((_styleMask & CPResizableWindowMask) && _resizeIndicator) + { + var frame = objj_msgSend(_resizeIndicator, "frame"); + if (CGRectContainsPoint(frame, objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil))) + return objj_msgSend(self, "trackResizeWithEvent:", anEvent); + } + if (objj_msgSend(theWindow, "isMovableByWindowBackground")) + objj_msgSend(self, "trackMoveWithEvent:", anEvent); + else + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "mouseDown:", anEvent); +} +}), new objj_method(sel_getUid("trackResizeWithEvent:"), function $_CPWindowView__trackResizeWithEvent_(self, _cmd, anEvent) +{ with(self) +{ + var location = objj_msgSend(anEvent, "locationInWindow"), + type = objj_msgSend(anEvent, "type"); + if (type === CPLeftMouseUp) + return; + var theWindow = objj_msgSend(self, "window"); + if (type === CPLeftMouseDown) + { + var frame = objj_msgSend(theWindow, "frame"); + _resizeFrame = CGRectMake(location.x, location.y, CGRectGetWidth(frame), CGRectGetHeight(frame)); + } + else if (type === CPLeftMouseDragged) + objj_msgSend(theWindow, "setFrameSize:", CGSizeMake(CGRectGetWidth(_resizeFrame) + location.x - CGRectGetMinX(_resizeFrame), CGRectGetHeight(_resizeFrame) + location.y - CGRectGetMinY(_resizeFrame))); + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackResizeWithEvent:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("_pointWithinScreenFrame:"), function $_CPWindowView___pointWithinScreenFrame_(self, _cmd, aPoint) +{ with(self) +{ + var visibleFrame = _cachedScreenFrame; + if (!visibleFrame) + visibleFrame = objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "visibleFrame"); + var restrictedPoint = CGPointMake(0, 0); + restrictedPoint.x = MIN(MAX(aPoint.x, -_frame.size.width + 4.0), CGRectGetMaxX(visibleFrame) - 4.0); + restrictedPoint.y = MIN(MAX(aPoint.y, 0.0), CGRectGetMaxY(visibleFrame) - 8.0); + return restrictedPoint; +} +}), new objj_method(sel_getUid("trackMoveWithEvent:"), function $_CPWindowView__trackMoveWithEvent_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"); + if (type === CPLeftMouseUp) + { + _cachedScreenFrame = nil; + return; + } + else if (type === CPLeftMouseDown) + { + _mouseDraggedPoint = objj_msgSend(objj_msgSend(self, "window"), "convertBaseToBridge:", objj_msgSend(anEvent, "locationInWindow")); + _cachedScreenFrame = objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "visibleFrame"); + } + else if (type === CPLeftMouseDragged) + { + var theWindow = objj_msgSend(self, "window"), + frame = objj_msgSend(theWindow, "frame"), + location = objj_msgSend(theWindow, "convertBaseToBridge:", objj_msgSend(anEvent, "locationInWindow")), + origin = objj_msgSend(self, "_pointWithinScreenFrame:", CGPointMake((frame.origin.x) + (location.x - _mouseDraggedPoint.x), + (frame.origin.y) + (location.y - _mouseDraggedPoint.y))); + objj_msgSend(theWindow, "setFrameOrigin:", origin); + _mouseDraggedPoint = objj_msgSend(self, "_pointWithinScreenFrame:", location); + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackMoveWithEvent:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("setShowsResizeIndicator:"), function $_CPWindowView__setShowsResizeIndicator_(self, _cmd, shouldShowResizeIndicator) +{ with(self) +{ + if (shouldShowResizeIndicator) + { + var size = objj_msgSend(_CPWindowViewResizeIndicatorImage, "size"), + boundsSize = objj_msgSend(self, "frame").size; + _resizeIndicator = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CGRectMake(boundsSize.width - size.width - _resizeIndicatorOffset.width, boundsSize.height - size.height - _resizeIndicatorOffset.height, size.width, size.height)); + objj_msgSend(_resizeIndicator, "setImage:", _CPWindowViewResizeIndicatorImage); + objj_msgSend(_resizeIndicator, "setAutoresizingMask:", CPViewMinXMargin | CPViewMinYMargin); + objj_msgSend(self, "addSubview:", _resizeIndicator); + } + else + { + objj_msgSend(_resizeIndicator, "removeFromSuperview"); + _resizeIndicator = nil; + } +} +}), new objj_method(sel_getUid("showsResizeIndicator"), function $_CPWindowView__showsResizeIndicator(self, _cmd) +{ with(self) +{ + return _resizeIndicator !== nil; +} +}), new objj_method(sel_getUid("setResizeIndicatorOffset:"), function $_CPWindowView__setResizeIndicatorOffset_(self, _cmd, anOffset) +{ with(self) +{ + if (CGSizeEqualToSize(_resizeIndicatorOffset, anOffset)) + return; + _resizeIndicatorOffset = anOffset; + if (!_resizeIndicator) + return; + var size = objj_msgSend(_resizeIndicator, "frame").size, + boundsSize = objj_msgSend(self, "frame").size; + objj_msgSend(_resizeIndicator, "setFrameOrigin:", CGPointMake(boundsSize.width - size.width - anOffset.width, boundsSize.height - size.height - anOffset.height)); +} +}), new objj_method(sel_getUid("resizeIndicatorOffset"), function $_CPWindowView__resizeIndicatorOffset(self, _cmd) +{ with(self) +{ + return _resizeIndicatorOffset; +} +}), new objj_method(sel_getUid("windowDidChangeDocumentEdited"), function $_CPWindowView__windowDidChangeDocumentEdited(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("windowDidChangeDocumentSaving"), function $_CPWindowView__windowDidChangeDocumentSaving(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("showsToolbar"), function $_CPWindowView__showsToolbar(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("toolbarOffset"), function $_CPWindowView__toolbarOffset(self, _cmd) +{ with(self) +{ + return CGSizeMakeZero(); +} +}), new objj_method(sel_getUid("toolbarLabelColor"), function $_CPWindowView__toolbarLabelColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPColor, "blackColor"); +} +}), new objj_method(sel_getUid("toolbarMaxY"), function $_CPWindowView__toolbarMaxY(self, _cmd) +{ with(self) +{ + if (!_toolbarView || objj_msgSend(_toolbarView, "isHidden")) + return objj_msgSend(self, "toolbarOffset").height; + return CGRectGetMaxY(objj_msgSend(_toolbarView, "frame")); +} +}), new objj_method(sel_getUid("toolbarView"), function $_CPWindowView__toolbarView(self, _cmd) +{ with(self) +{ + return _toolbarView; +} +}), new objj_method(sel_getUid("tile"), function $_CPWindowView__tile(self, _cmd) +{ with(self) +{ + var theWindow = objj_msgSend(self, "window"), + bounds = objj_msgSend(self, "bounds"), + width = CGRectGetWidth(bounds); + if (objj_msgSend(objj_msgSend(theWindow, "toolbar"), "isVisible")) + { + var toolbarView = objj_msgSend(self, "toolbarView"), + toolbarOffset = objj_msgSend(self, "toolbarOffset"); + objj_msgSend(toolbarView, "setFrame:", CGRectMake(toolbarOffset.width, toolbarOffset.height, width, CGRectGetHeight(objj_msgSend(toolbarView, "frame")))); + } + if (objj_msgSend(self, "showsResizeIndicator")) + { + var size = objj_msgSend(_resizeIndicator, "frame").size, + boundsSize = objj_msgSend(self, "bounds").size; + objj_msgSend(_resizeIndicator, "setFrameOrigin:", CGPointMake(boundsSize.width - size.width - _resizeIndicatorOffset.width, boundsSize.height - size.height - _resizeIndicatorOffset.height)); + } +} +}), new objj_method(sel_getUid("noteToolbarChanged"), function $_CPWindowView__noteToolbarChanged(self, _cmd) +{ with(self) +{ + var theWindow = objj_msgSend(self, "window"), + toolbar = objj_msgSend(theWindow, "toolbar"), + toolbarView = objj_msgSend(toolbar, "_toolbarView"); + if (_toolbarView !== toolbarView) + { + objj_msgSend(_toolbarView, "removeFromSuperview"); + if (toolbarView) + { + objj_msgSend(toolbarView, "removeFromSuperview"); + objj_msgSend(toolbarView, "setLabelColor:", objj_msgSend(self, "toolbarLabelColor")); + if (objj_msgSend(self, "respondsToSelector:", sel_getUid("toolbarLabelShadowColor"))) + objj_msgSend(toolbarView, "setLabelShadowColor:", objj_msgSend(self, "toolbarLabelShadowColor")); + objj_msgSend(self, "addSubview:", toolbarView); + } + _toolbarView = toolbarView; + } + objj_msgSend(toolbarView, "setHidden:", !objj_msgSend(self, "showsToolbar") || !objj_msgSend(toolbar, "isVisible")); + if (theWindow) + { + var contentRect = objj_msgSend(self, "convertRect:toView:", objj_msgSend(objj_msgSend(theWindow, "contentView"), "frame"), nil); + contentRect.origin = objj_msgSend(theWindow, "convertBaseToBridge:", contentRect.origin); + objj_msgSend(self, "setAutoresizesSubviews:", NO); + objj_msgSend(theWindow, "setFrame:", objj_msgSend(theWindow, "frameRectForContentRect:", contentRect)); + objj_msgSend(self, "setAutoresizesSubviews:", YES); + } + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("didAddSubview:"), function $_CPWindowView__didAddSubview_(self, _cmd, aView) +{ with(self) +{ + if (!_resizeIndicator || aView === _resizeIndicator) + return; + objj_msgSend(self, "addSubview:", _resizeIndicator); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPWindowView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPWindowView, "class")) + return; + _CPWindowViewResizeIndicatorImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPWindow, "class")), "pathForResource:", "_CPWindowView/_CPWindowViewResizeIndicator.png"), CGSizeMake(12.0, 12.0)); +} +}), new objj_method(sel_getUid("contentRectForFrameRect:"), function $_CPWindowView__contentRectForFrameRect_(self, _cmd, aFrameRect) +{ with(self) +{ + return CGRectMakeCopy(aFrameRect); +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $_CPWindowView__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + return CGRectMakeCopy(aContentRect); +} +})]); +} + +p;8;AppKit.ji;9;CALayer.ji;9;CPAlert.ji;13;CPAnimation.ji;15;CPApplication.ji;14;CPBezierPath.ji;10;CPButton.ji;13;CPButtonBar.ji;12;CPCheckBox.ji;7;CPCib.ji;14;CPCibLoading.ji;12;CPClipView.ji;18;CPCollectionView.ji;9;CPColor.ji;14;CPColorPanel.ji;13;CPColorWell.ji;17;CPCompatibility.ji;11;CPControl.ji;10;CPCookie.ji;12;CPDocument.ji;22;CPDocumentController.ji;9;CPEvent.ji;14;CPFlashMovie.ji;13;CPFlashView.ji;8;CPFont.ji;15;CPFontManager.ji;12;CPGeometry.ji;9;CPImage.ji;13;CPImageView.ji;8;CPMenu.ji;12;CPMenuItem.ji;9;CPPanel.ji;14;CPPasteboard.ji;15;CPPopUpButton.ji;21;CPProgressIndicator.ji;9;CPRadio.ji;13;CPResponder.ji;14;CPScrollView.ji;12;CPScroller.ji;19;CPSecureTextField.ji;20;CPSegmentedControl.ji;10;CPShadow.ji;10;CPSlider.ji;13;CPSplitView.ji;11;CPTabView.ji;15;CPTableColumn.ji;13;CPTableView.ji;13;CPTextField.ji;11;CPToolbar.ji;15;CPToolbarItem.ji;8;CPView.ji;11;CPWebView.ji;10;CPWindow.ji;20;CPWindowController.jp;13;CAAnimation.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.ji;23;CAMediaTimingFunction.jc;5403; +{var the_class = objj_allocateClassPair(CPObject, "CAAnimation"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_isRemovedOnCompletion"), new objj_ivar("_delegate")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CAAnimation__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _isRemovedOnCompletion = YES; + return self; +} +}), new objj_method(sel_getUid("shouldArchiveValueForKey:"), function $CAAnimation__shouldArchiveValueForKey_(self, _cmd, aKey) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("setRemovedOnCompletion:"), function $CAAnimation__setRemovedOnCompletion_(self, _cmd, isRemovedOnCompletion) +{ with(self) +{ + _isRemovedOnCompletion = isRemovedOnCompletion; +} +}), new objj_method(sel_getUid("removedOnCompletion"), function $CAAnimation__removedOnCompletion(self, _cmd) +{ with(self) +{ + return _isRemovedOnCompletion; +} +}), new objj_method(sel_getUid("isRemovedOnCompletion"), function $CAAnimation__isRemovedOnCompletion(self, _cmd) +{ with(self) +{ + return _isRemovedOnCompletion; +} +}), new objj_method(sel_getUid("timingFunction"), function $CAAnimation__timingFunction(self, _cmd) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CAAnimation__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; +} +}), new objj_method(sel_getUid("delegate"), function $CAAnimation__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("runActionForKey:object:arguments:"), function $CAAnimation__runActionForKey_object_arguments_(self, _cmd, aKey, anObject, arguments) +{ with(self) +{ + objj_msgSend(anObject, "addAnimation:forKey:", self, aKey); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("animation"), function $CAAnimation__animation(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "init"); +} +}), new objj_method(sel_getUid("defaultValueForKey:"), function $CAAnimation__defaultValueForKey_(self, _cmd, aKey) +{ with(self) +{ + return nil; +} +})]); +} +{var the_class = objj_allocateClassPair(CAAnimation, "CAPropertyAnimation"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_keyPath"), new objj_ivar("_isCumulative"), new objj_ivar("_isAdditive")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setKeyPath:"), function $CAPropertyAnimation__setKeyPath_(self, _cmd, aKeyPath) +{ with(self) +{ + _keyPath = aKeyPath; +} +}), new objj_method(sel_getUid("keyPath"), function $CAPropertyAnimation__keyPath(self, _cmd) +{ with(self) +{ + return _keyPath; +} +}), new objj_method(sel_getUid("setCumulative:"), function $CAPropertyAnimation__setCumulative_(self, _cmd, isCumulative) +{ with(self) +{ + _isCumulative = isCumulative; +} +}), new objj_method(sel_getUid("cumulative"), function $CAPropertyAnimation__cumulative(self, _cmd) +{ with(self) +{ + return _isCumulative; +} +}), new objj_method(sel_getUid("isCumulative"), function $CAPropertyAnimation__isCumulative(self, _cmd) +{ with(self) +{ + return _isCumulative; +} +}), new objj_method(sel_getUid("setAdditive:"), function $CAPropertyAnimation__setAdditive_(self, _cmd, isAdditive) +{ with(self) +{ + _isAdditive = isAdditive; +} +}), new objj_method(sel_getUid("additive"), function $CAPropertyAnimation__additive(self, _cmd) +{ with(self) +{ + return _isAdditive; +} +}), new objj_method(sel_getUid("isAdditive"), function $CAPropertyAnimation__isAdditive(self, _cmd) +{ with(self) +{ + return _isAdditive; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("animationWithKeyPath:"), function $CAPropertyAnimation__animationWithKeyPath_(self, _cmd, aKeyPath) +{ with(self) +{ + var animation = objj_msgSend(self, "animation"); + objj_msgSend(animation, "setKeyPath:", aKeyPath); + return animation; +} +})]); +} +{var the_class = objj_allocateClassPair(CAPropertyAnimation, "CABasicAnimation"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_fromValue"), new objj_ivar("_toValue"), new objj_ivar("_byValue")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setFromValue:"), function $CABasicAnimation__setFromValue_(self, _cmd, aValue) +{ with(self) +{ + _fromValue = aValue; +} +}), new objj_method(sel_getUid("fromValue"), function $CABasicAnimation__fromValue(self, _cmd) +{ with(self) +{ + return _fromValue; +} +}), new objj_method(sel_getUid("setToValue:"), function $CABasicAnimation__setToValue_(self, _cmd, aValue) +{ with(self) +{ + _toValue = aValue; +} +}), new objj_method(sel_getUid("toValue"), function $CABasicAnimation__toValue(self, _cmd) +{ with(self) +{ + return _toValue; +} +}), new objj_method(sel_getUid("setByValue:"), function $CABasicAnimation__setByValue_(self, _cmd, aValue) +{ with(self) +{ + _byValue = aValue; +} +}), new objj_method(sel_getUid("byValue"), function $CABasicAnimation__byValue(self, _cmd) +{ with(self) +{ + return _byValue; +} +})]); +} + +p;16;CABackingStore.ji;12;CGGeometry.ji;17;CPCompatibility.jc;841; +CABackingStoreGetContext= function(aBackingStore) +{ + return aBackingStore.context; +} +if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) +{ +CABackingStoreCreate = function() +{ + var DOMElement = document.createElement("canvas"); + DOMElement.style.position = "absolute"; + return { context:DOMElement.getContext("2d"), buffer:DOMElement, _image:DOMElement }; +} +CABackingStoreSetSize = function(aBackingStore, aSize) +{ + var buffer = aBackingStore.buffer; + buffer.width = aSize.width; + buffer.height = aSize.height; + buffer.style.width = aSize.width + "px";; + buffer.style.height = aSize.height + "px";; +} +} +else +{ +CABackingStoreCreate = function() +{ + var context = CGBitmapGraphicsContextCreate(); + context.buffer = ""; + return { context:context }; +} +CABackingStoreSetSize = function(aBackingStore, aSize) +{ +} +} + +p;14;CAFlashLayer.ji;9;CALayer.ji;14;CPFlashMovie.jc;1108; +{var the_class = objj_allocateClassPair(CALayer, "CAFlashLayer"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_flashMovie")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setFlashMovie:"), function $CAFlashLayer__setFlashMovie_(self, _cmd, aFlashMovie) +{ with(self) +{ + if (_flashMovie == aFlashMovie) + return; + _flashMovie = aFlashMovie; + _DOMElement.innerHTML = ""; +} +}), new objj_method(sel_getUid("flashMovie"), function $CAFlashLayer__flashMovie(self, _cmd) +{ with(self) +{ + return _flashMovie; +} +})]); +} + +p;9;CALayer.jI;21;Foundation/CPObject.jI;23;AppKit/CABackingStore.jI;18;AppKit/CGContext.jI;19;AppKit/CGGeometry.ji;12;CGGeometry.jc;36412; +CGAffineTransformMake= function(a, b, c, d, tx, ty) { return { a:a, b:b, c:c, d:d, tx:tx, ty:ty }; } +CGAffineTransformMakeIdentity= function() { return { a:1.0, b:0.0, c:0.0, d:1.0, tx:0.0, ty:0.0 }; } +CGAffineTransformMakeCopy= function(anAffineTransform) { return { a:anAffineTransform.a, b:anAffineTransform.b, c:anAffineTransform.c, d:anAffineTransform.d, tx:anAffineTransform.tx, ty:anAffineTransform.ty }; } +CGAffineTransformMakeScale= function(sx, sy) { return { a:sx, b:0.0, c:0.0, d:sy, tx:0.0, ty:0.0 }; } +CGAffineTransformMakeTranslation= function(tx, ty) { return { a:1.0, b:0.0, c:0.0, d:1.0, tx:tx, ty:ty }; } +CGAffineTransformTranslate= function(aTransform, tx, ty) { return { a:aTransform.a, b:aTransform.b, c:aTransform.c, d:aTransform.d, tx:aTransform.tx + aTransform.a * tx + aTransform.c * ty, ty:aTransform.ty + aTransform.b * tx + aTransform.d * ty }; } +CGAffineTransformScale= function(aTransform, sx, sy) { return { a:aTransform.a * sx, b:aTransform.b * sx, c:aTransform.c * sy, d:aTransform.d * sy, tx:aTransform.tx, ty:aTransform.ty }; } +CGAffineTransformConcat= function(lhs, rhs) { return { a:lhs.a * rhs.a + lhs.b * rhs.c, b:lhs.a * rhs.b + lhs.b * rhs.d, c:lhs.c * rhs.a + lhs.d * rhs.c, d:lhs.c * rhs.b + lhs.d * rhs.d, tx:lhs.tx * rhs.a + lhs.ty * rhs.c + rhs.tx, ty:lhs.tx * rhs.b + lhs.ty * rhs.d + rhs.ty }; } +CGPointApplyAffineTransform= function(aPoint, aTransform) { return { x:aPoint.x * aTransform.a + aPoint.y * aTransform.c + aTransform.tx, y:aPoint.x * aTransform.b + aPoint.y * aTransform.d + aTransform.ty }; } +CGSizeApplyAffineTransform= function(aSize, aTransform) { return { width:aSize.width * aTransform.a + aSize.height * aTransform.c, height:aSize.width * aTransform.b + aSize.height * aTransform.d }; } +CGAffineTransformIsIdentity= function(aTransform) { return (aTransform.a == 1 && aTransform.b == 0 && aTransform.c == 0 && aTransform.d == 1 && aTransform.tx == 0 && aTransform.ty == 0); } +CGAffineTransformEqualToTransform= function(lhs, rhs) { return (lhs.a == rhs.a && lhs.b == rhs.b && lhs.c == rhs.c && lhs.d == rhs.d && lhs.tx == rhs.tx && lhs.ty == rhs.ty); } +CGStringCreateWithCGAffineTransform= function(aTransform) { return (" [[ " + aTransform.a + ", " + aTransform.b + ", 0 ], [ " + aTransform.c + ", " + aTransform.d + ", 0 ], [ " + aTransform.tx + ", " + aTransform.ty + ", 1]]"); } +CGAffineTransformCreateCopy= function(aTransform) +{ + return { a:aTransform.a, b:aTransform.b, c:aTransform.c, d:aTransform.d, tx:aTransform.tx, ty:aTransform.ty }; +} +CGAffineTransformMakeRotation= function(anAngle) +{ + var sin = SIN(anAngle), + cos = COS(anAngle); + return { a:cos, b:sin, c:-sin, d:cos, tx:0.0, ty:0.0 }; +} +CGAffineTransformRotate= function(aTransform, anAngle) +{ + var sin = SIN(anAngle), + cos = COS(anAngle); + return { + a:aTransform.a * cos + aTransform.c * sin, + b:aTransform.b * cos + aTransform.d * sin, + c:aTransform.c * cos - aTransform.a * sin, + d:aTransform.d * cos - aTransform.b * sin, + tx:aTransform.tx, + ty:aTransform.ty + }; +} +CGAffineTransformInvert= function(aTransform) +{ + var determinant = 1 / (aTransform.a * aTransform.d - aTransform.b * aTransform.c); + return { + a:determinant * aTransform.d, + b:-determinant * aTransform.b, + c:-determinant * aTransform.c, + d:determinant * aTransform.a, + tx:determinant * (aTransform.c * aTransform.ty - aTransform.d * aTransform.tx), + ty:determinant * (aTransform.b * aTransform.tx - aTransform.a * aTransform.ty) + }; +} +CGRectApplyAffineTransform= function(aRect, anAffineTransform) +{ + var top = (aRect.origin.y), + left = (aRect.origin.x), + right = (aRect.origin.x + aRect.size.width), + bottom = (aRect.origin.y + aRect.size.height), + topLeft = CGPointApplyAffineTransform({ x:left, y:top }, anAffineTransform), + topRight = CGPointApplyAffineTransform({ x:right, y:top }, anAffineTransform), + bottomLeft = CGPointApplyAffineTransform({ x:left, y:bottom }, anAffineTransform), + bottomRight = CGPointApplyAffineTransform({ x:right, y:bottom }, anAffineTransform), + minX = MIN(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x), + maxX = MAX(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x), + minY = MIN(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y), + maxY = MAX(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y); + return { origin: { x:minX, y:minY }, size: { width:(maxX - minX), height:(maxY - minY) } }; +} +CPStringFromCGAffineTransform= function(anAffineTransform) +{ + return '{' + anAffineTransform.a + ", " + anAffineTransform.b + ", " + anAffineTransform.c + ", " + anAffineTransform.d + ", " + anAffineTransform.tx + ", " + anAffineTransform.ty + '}'; +} +var CALayerGeometryBoundsMask = 1, + CALayerGeometryPositionMask = 2, + CALayerGeometryAnchorPointMask = 4, + CALayerGeometryAffineTransformMask = 8, + CALayerGeometryParentSublayerTransformMask = 16; +var USE_BUFFER = NO; +var CALayerFrameOriginUpdateMask = 1, + CALayerFrameSizeUpdateMask = 2, + CALayerZPositionUpdateMask = 4, + CALayerDisplayUpdateMask = 8, + CALayerCompositeUpdateMask = 16, + CALayerDOMUpdateMask = CALayerZPositionUpdateMask | CALayerFrameOriginUpdateMask | CALayerFrameSizeUpdateMask; +var CALayerRegisteredRunLoopUpdates = nil; +{var the_class = objj_allocateClassPair(CPObject, "CALayer"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_frame"), new objj_ivar("_bounds"), new objj_ivar("_position"), new objj_ivar("_zPosition"), new objj_ivar("_anchorPoint"), new objj_ivar("_affineTransform"), new objj_ivar("_sublayerTransform"), new objj_ivar("_sublayerTransformForSublayers"), new objj_ivar("_backingStoreFrame"), new objj_ivar("_standardBackingStoreFrame"), new objj_ivar("_hasSublayerTransform"), new objj_ivar("_hasCustomBackingStoreFrame"), new objj_ivar("_opacity"), new objj_ivar("_isHidden"), new objj_ivar("_backgroundColor"), new objj_ivar("_superlayer"), new objj_ivar("_sublayers"), new objj_ivar("_runLoopUpdateMask"), new objj_ivar("_needsDisplayOnBoundsChange"), new objj_ivar("_delegate"), new objj_ivar("_delegateRespondsToDisplayLayerSelector"), new objj_ivar("_delegateRespondsToDrawLayerInContextSelector"), new objj_ivar("_DOMElement"), new objj_ivar("_DOMContentsElement"), new objj_ivar("_contents"), new objj_ivar("_context"), new objj_ivar("_owningView"), new objj_ivar("_transformToLayer"), new objj_ivar("_transformFromLayer")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CALayer__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + + if (self) + { + _frame = CGRectMakeZero(); + + _backingStoreFrame = CGRectMakeZero(); + _standardBackingStoreFrame = CGRectMakeZero(); + + _bounds = CGRectMakeZero(); + _position = CGPointMakeZero(); + _zPosition = 0.0; + _anchorPoint = CGPointMake(0.5, 0.5); + _affineTransform = CGAffineTransformMakeIdentity(); + _sublayerTransform = CGAffineTransformMakeIdentity(); + + _transformToLayer = CGAffineTransformMakeIdentity(); + _transformFromLayer = CGAffineTransformMakeIdentity(); + + _opacity = 1.0; + _isHidden = NO; + _masksToBounds = NO; + + _sublayers = []; + + _DOMElement = document.createElement("div"); + + _DOMElement.style.overflow = "visible"; + _DOMElement.style.position = "absolute"; + _DOMElement.style.visibility = "visible"; + _DOMElement.style.top = "0px"; + _DOMElement.style.left = "0px"; + _DOMElement.style.zIndex = 0; + _DOMElement.style.width = "0px"; + _DOMElement.style.height = "0px"; + } + + return self; +} +}), new objj_method(sel_getUid("setBounds:"), function $CALayer__setBounds_(self, _cmd, aBounds) +{ with(self) +{ + if (CGRectEqualToRect(_bounds, aBounds)) + return; + + var oldOrigin = _bounds.origin; + + _bounds = { origin: { x:aBounds.origin.x, y:aBounds.origin.y }, size: { width:aBounds.size.width, height:aBounds.size.height } }; + + if (_hasSublayerTransform) + _CALayerUpdateSublayerTransformForSublayers(self); + _CALayerRecalculateGeometry(self, CALayerGeometryBoundsMask); +} +}), new objj_method(sel_getUid("bounds"), function $CALayer__bounds(self, _cmd) +{ with(self) +{ + return _bounds; +} +}), new objj_method(sel_getUid("setPosition:"), function $CALayer__setPosition_(self, _cmd, aPosition) +{ with(self) +{ + if (CGPointEqualToPoint(_position, aPosition)) + return; + _position = { x:aPosition.x, y:aPosition.y }; + _CALayerRecalculateGeometry(self, CALayerGeometryPositionMask); +} +}), new objj_method(sel_getUid("position"), function $CALayer__position(self, _cmd) +{ with(self) +{ + return _position; +} +}), new objj_method(sel_getUid("setZPosition:"), function $CALayer__setZPosition_(self, _cmd, aZPosition) +{ with(self) +{ + if (_zPosition == aZPosition) + return; + _zPosition = aZPosition; + objj_msgSend(self, "registerRunLoopUpdateWithMask:", CALayerZPositionUpdateMask); +} +}), new objj_method(sel_getUid("setAnchorPoint:"), function $CALayer__setAnchorPoint_(self, _cmd, anAnchorPoint) +{ with(self) +{ + anAnchorPoint = { x:anAnchorPoint.x, y:anAnchorPoint.y }; + anAnchorPoint.x = MIN(1.0, MAX(0.0, anAnchorPoint.x)); + anAnchorPoint.y = MIN(1.0, MAX(0.0, anAnchorPoint.y)); + if (CGPointEqualToPoint(_anchorPoint, anAnchorPoint)) + return; + _anchorPoint = anAnchorPoint; + if (_hasSublayerTransform) + _CALayerUpdateSublayerTransformForSublayers(self); + if (_owningView) + _position = CGPointMake((_bounds.size.width) * _anchorPoint.x, (_bounds.size.height) * _anchorPoint.y); + _CALayerRecalculateGeometry(self, CALayerGeometryAnchorPointMask); +} +}), new objj_method(sel_getUid("anchorPoint"), function $CALayer__anchorPoint(self, _cmd) +{ with(self) +{ + return _anchorPoint; +} +}), new objj_method(sel_getUid("setAffineTransform:"), function $CALayer__setAffineTransform_(self, _cmd, anAffineTransform) +{ with(self) +{ + if (CGAffineTransformEqualToTransform(_affineTransform, anAffineTransform)) + return; + _affineTransform = { a:anAffineTransform.a, b:anAffineTransform.b, c:anAffineTransform.c, d:anAffineTransform.d, tx:anAffineTransform.tx, ty:anAffineTransform.ty }; + _CALayerRecalculateGeometry(self, CALayerGeometryAffineTransformMask); +} +}), new objj_method(sel_getUid("affineTransform"), function $CALayer__affineTransform(self, _cmd) +{ with(self) +{ + return _affineTransform; +} +}), new objj_method(sel_getUid("setSublayerTransform:"), function $CALayer__setSublayerTransform_(self, _cmd, anAffineTransform) +{ with(self) +{ + if (CGAffineTransformEqualToTransform(_sublayerTransform, anAffineTransform)) + return; + var hadSublayerTransform = _hasSublayerTransform; + _sublayerTransform = { a:anAffineTransform.a, b:anAffineTransform.b, c:anAffineTransform.c, d:anAffineTransform.d, tx:anAffineTransform.tx, ty:anAffineTransform.ty }; + _hasSublayerTransform = !(_sublayerTransform.a == 1 && _sublayerTransform.b == 0 && _sublayerTransform.c == 0 && _sublayerTransform.d == 1 && _sublayerTransform.tx == 0 && _sublayerTransform.ty == 0); + if (_hasSublayerTransform) + { + _CALayerUpdateSublayerTransformForSublayers(self); + var index = _sublayers.length; + while (index--) + _CALayerRecalculateGeometry(_sublayers[index], CALayerGeometryParentSublayerTransformMask); + } +} +}), new objj_method(sel_getUid("sublayerTransform"), function $CALayer__sublayerTransform(self, _cmd) +{ with(self) +{ + return _sublayerTransform; +} +}), new objj_method(sel_getUid("transformToLayer"), function $CALayer__transformToLayer(self, _cmd) +{ with(self) +{ + return _transformToLayer; +} +}), new objj_method(sel_getUid("setFrame:"), function $CALayer__setFrame_(self, _cmd, aFrame) +{ with(self) +{ + alert("FIXME IMPLEMENT"); +} +}), new objj_method(sel_getUid("frame"), function $CALayer__frame(self, _cmd) +{ with(self) +{ + if (!_frame) + _frame = objj_msgSend(self, "convertRect:toLayer:", _bounds, _superlayer); + return _frame; +} +}), new objj_method(sel_getUid("backingStoreFrame"), function $CALayer__backingStoreFrame(self, _cmd) +{ with(self) +{ + return _backingStoreFrame; +} +}), new objj_method(sel_getUid("setBackingStoreFrame:"), function $CALayer__setBackingStoreFrame_(self, _cmd, aFrame) +{ with(self) +{ + _hasCustomBackingStoreFrame = (aFrame != nil); + if (aFrame == nil) + aFrame = CGRectMakeCopy(_standardBackingStoreFrame); + else + { + if (_superlayer) + { + aFrame = objj_msgSend(_superlayer, "convertRect:toLayer:", aFrame, nil); + var bounds = objj_msgSend(_superlayer, "bounds"), + frame = objj_msgSend(_superlayer, "convertRect:toLayer:", bounds, nil); + aFrame.origin.x -= (frame.origin.x); + aFrame.origin.y -= (frame.origin.y); + } + else + aFrame = CGRectMakeCopy(aFrame); + } + if (!CGPointEqualToPoint(_backingStoreFrame.origin, aFrame.origin)) + objj_msgSend(self, "registerRunLoopUpdateWithMask:", CALayerFrameOriginUpdateMask); + if (!CGSizeEqualToSize(_backingStoreFrame.size, aFrame.size)) + objj_msgSend(self, "registerRunLoopUpdateWithMask:", CALayerFrameSizeUpdateMask); + _backingStoreFrame = aFrame; +} +}), new objj_method(sel_getUid("contents"), function $CALayer__contents(self, _cmd) +{ with(self) +{ + return _contents; +} +}), new objj_method(sel_getUid("setContents:"), function $CALayer__setContents_(self, _cmd, contents) +{ with(self) +{ + if (_contents == contents) + return; + _contents = contents; + objj_msgSend(self, "composite"); +} +}), new objj_method(sel_getUid("composite"), function $CALayer__composite(self, _cmd) +{ with(self) +{ + if (USE_BUFFER && !_contents || !_context) + return; + CGContextClearRect(_context, { origin: { x:0.0, y:0.0 }, size: { width:(_backingStoreFrame.size.width), height:(_backingStoreFrame.size.height) } }); + var transform = _transformFromLayer; + if (_superlayer) + { + var superlayerTransform = _CALayerGetTransform(_superlayer, nil), + superlayerOrigin = CGPointApplyAffineTransform(_superlayer._bounds.origin, superlayerTransform); + transform = CGAffineTransformConcat(transform, superlayerTransform); + transform.tx -= superlayerOrigin.x; + transform.ty -= superlayerOrigin.y; + } + transform.tx -= (_backingStoreFrame.origin.x); + transform.ty -= (_backingStoreFrame.origin.y); + CGContextSaveGState(_context); + CGContextConcatCTM(_context, transform); + if (USE_BUFFER) + { + _context.drawImage(_contents.buffer, (_bounds.origin.x), (_bounds.origin.y)); + } + else + objj_msgSend(self, "drawInContext:", _context); + CGContextRestoreGState(_context); +} +}), new objj_method(sel_getUid("display"), function $CALayer__display(self, _cmd) +{ with(self) +{ + if (!_context) + { + _context = CGBitmapGraphicsContextCreate(); + _DOMContentsElement = _context.DOMElement; + _DOMContentsElement.style.zIndex = -100; + _DOMContentsElement.style.overflow = "hidden"; + _DOMContentsElement.style.position = "absolute"; + _DOMContentsElement.style.visibility = "visible"; + _DOMContentsElement.width = ROUND((_backingStoreFrame.size.width)); + _DOMContentsElement.height = ROUND((_backingStoreFrame.size.height)); + _DOMContentsElement.style.top = "0px"; + _DOMContentsElement.style.left = "0px"; + _DOMContentsElement.style.width = ROUND((_backingStoreFrame.size.width)) + "px"; + _DOMContentsElement.style.height = ROUND((_backingStoreFrame.size.height)) + "px"; + _DOMElement.appendChild(_DOMContentsElement); + } + if (USE_BUFFER) + { + if (_delegateRespondsToDisplayLayerSelector) + return objj_msgSend(_delegate, "displayInLayer:", self); + if ((_backingStoreFrame.size.width) == 0.0 || (_backingStoreFrame.size.height) == 0.0) + return; + if (!_contents) + _contents = CABackingStoreCreate(); + CABackingStoreSetSize(_contents, _bounds.size); + objj_msgSend(self, "drawInContext:", CABackingStoreGetContext(_contents)); + } + objj_msgSend(self, "composite"); +} +}), new objj_method(sel_getUid("drawInContext:"), function $CALayer__drawInContext_(self, _cmd, aContext) +{ with(self) +{ + if (_backgroundColor) + { + CGContextSetFillColor(aContext, _backgroundColor); + CGContextFillRect(aContext, _bounds); + } + if (_delegateRespondsToDrawLayerInContextSelector) + objj_msgSend(_delegate, "drawLayer:inContext:", self, aContext); +} +}), new objj_method(sel_getUid("opacity"), function $CALayer__opacity(self, _cmd) +{ with(self) +{ + return _opacity; +} +}), new objj_method(sel_getUid("setOpacity:"), function $CALayer__setOpacity_(self, _cmd, anOpacity) +{ with(self) +{ + if (_opacity == anOpacity) + return; + _opacity = anOpacity; + _DOMElement.style.opacity = anOpacity; + _DOMElement.style.filter = "alpha(opacity=" + anOpacity * 100 + ")"; +} +}), new objj_method(sel_getUid("setHidden:"), function $CALayer__setHidden_(self, _cmd, isHidden) +{ with(self) +{ + _isHidden = isHidden; + _DOMElement.style.display = isHidden ? "none" : "block"; +} +}), new objj_method(sel_getUid("hidden"), function $CALayer__hidden(self, _cmd) +{ with(self) +{ + return _isHidden; +} +}), new objj_method(sel_getUid("isHidden"), function $CALayer__isHidden(self, _cmd) +{ with(self) +{ + return _isHidden; +} +}), new objj_method(sel_getUid("setMasksToBounds:"), function $CALayer__setMasksToBounds_(self, _cmd, masksToBounds) +{ with(self) +{ + if (_masksToBounds == masksToBounds) + return; + _masksToBounds = masksToBounds; + _DOMElement.style.overflow = _masksToBounds ? "hidden" : "visible"; +} +}), new objj_method(sel_getUid("setBackgroundColor:"), function $CALayer__setBackgroundColor_(self, _cmd, aColor) +{ with(self) +{ + _backgroundColor = aColor; + objj_msgSend(self, "setNeedsDisplay"); +} +}), new objj_method(sel_getUid("backgroundColor"), function $CALayer__backgroundColor(self, _cmd) +{ with(self) +{ + return _backgroundColor; +} +}), new objj_method(sel_getUid("sublayers"), function $CALayer__sublayers(self, _cmd) +{ with(self) +{ + return _sublayers; +} +}), new objj_method(sel_getUid("superlayer"), function $CALayer__superlayer(self, _cmd) +{ with(self) +{ + return _superlayer; +} +}), new objj_method(sel_getUid("addSublayer:"), function $CALayer__addSublayer_(self, _cmd, aLayer) +{ with(self) +{ + objj_msgSend(self, "insertSublayer:atIndex:", aLayer, _sublayers.length); + return; + if (_DOMContentsElement && aLayer._zPosition > _DOMContentsElement.style.zIndex) _DOMContentsElement.style.zIndex -= 100.0;; + objj_msgSend(_sublayers, "addObject:", aLayer); + _DOMElement.appendChild(aLayer._DOMElement); +} +}), new objj_method(sel_getUid("removeFromSuperlayer"), function $CALayer__removeFromSuperlayer(self, _cmd) +{ with(self) +{ + if (_owningView) + objj_msgSend(_owningView, "setLayer:", nil); + if (!_superlayer) + return; + _superlayer._DOMElement.removeChild(_DOMElement); + objj_msgSend(_superlayer._sublayers, "removeObject:", self); + _superlayer = nil; +} +}), new objj_method(sel_getUid("insertSublayer:atIndex:"), function $CALayer__insertSublayer_atIndex_(self, _cmd, aLayer, anIndex) +{ with(self) +{ + if (!aLayer) + return; + var superlayer = objj_msgSend(aLayer, "superlayer"); + if (superlayer == self) + { + var index = objj_msgSend(_sublayers, "indexOfObjectIdenticalTo:", aLayer); + if (index == anIndex) + return; + objj_msgSend(_sublayers, "removeObjectAtIndex:", index); + if (index < anIndex) + --anIndex; + } + else if (superlayer != nil) + objj_msgSend(aLayer, "removeFromSuperlayer"); + if (_DOMContentsElement && aLayer._zPosition > _DOMContentsElement.style.zIndex) _DOMContentsElement.style.zIndex -= 100.0;; + objj_msgSend(_sublayers, "insertObject:atIndex:", aLayer, anIndex); + if (anIndex >= _sublayers.length - 1) + _DOMElement.appendChild(aLayer._DOMElement); + else + _DOMElement.insertBefore(aLayer._DOMElement, _sublayers[anIndex + 1]._DOMElement); + aLayer._superlayer = self; + if (self != superlayer) + _CALayerRecalculateGeometry(aLayer, 0xFFFFFFF); +} +}), new objj_method(sel_getUid("insertSublayer:below:"), function $CALayer__insertSublayer_below_(self, _cmd, aLayer, aSublayer) +{ with(self) +{ + var index = aSublayer ? objj_msgSend(_sublayers, "indexOfObjectIdenticalTo:", aSublayer) : 0; + objj_msgSend(self, "insertSublayer:atIndex:", aLayer, index == CPNotFound ? _sublayers.length : index); +} +}), new objj_method(sel_getUid("insertSublayer:above:"), function $CALayer__insertSublayer_above_(self, _cmd, aLayer, aSublayer) +{ with(self) +{ + var index = aSublayer ? objj_msgSend(_sublayers, "indexOfObjectIdenticalTo:", aSublayer) : _sublayers.length; + if (index == CPNotFound) + objj_msgSend(CPException, "raise:reason:", "CALayerNotFoundException", "aSublayer is not a sublayer of this layer"); + objj_msgSend(_sublayers, "insertObject:atIndex:", aLayer, index == CPNotFound ? _sublayers.length : index + 1); +} +}), new objj_method(sel_getUid("replaceSublayer:with:"), function $CALayer__replaceSublayer_with_(self, _cmd, aSublayer, aLayer) +{ with(self) +{ + if (aSublayer == aLayer) + return; + if (aSublayer._superlayer != self) + { + alert("EXCEPTION"); + return; + } + if (_DOMContentsElement && aLayer._zPosition > _DOMContentsElement.style.zIndex) _DOMContentsElement.style.zIndex -= 100.0;; + objj_msgSend(_sublayers, "replaceObjectAtIndex:withObject:", objj_msgSend(_sublayers, "indexOfObjectIdenticalTo:", aSublayer), aLayer); + _DOMElement.replaceChild(aSublayer._DOMElement, aLayer._DOMElement); +} +}), new objj_method(sel_getUid("registerRunLoopUpdateWithMask:"), function $CALayer__registerRunLoopUpdateWithMask_(self, _cmd, anUpdateMask) +{ with(self) +{ + if (CALayerRegisteredRunLoopUpdates == nil) + { + CALayerRegisteredRunLoopUpdates = {}; + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "performSelector:target:argument:order:modes:", sel_getUid("runLoopUpdateLayers"), CALayer, nil, 0, [CPDefaultRunLoopMode]); + } + _runLoopUpdateMask |= anUpdateMask; + CALayerRegisteredRunLoopUpdates[objj_msgSend(self, "hash")] = self; +} +}), new objj_method(sel_getUid("setNeedsComposite"), function $CALayer__setNeedsComposite(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "registerRunLoopUpdateWithMask:", CALayerCompositeUpdateMask); +} +}), new objj_method(sel_getUid("setNeedsDisplay"), function $CALayer__setNeedsDisplay(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "registerRunLoopUpdateWithMask:", CALayerDisplayUpdateMask); +} +}), new objj_method(sel_getUid("setNeedsDisplayOnBoundsChange:"), function $CALayer__setNeedsDisplayOnBoundsChange_(self, _cmd, needsDisplayOnBoundsChange) +{ with(self) +{ + _needsDisplayOnBoundsChange = needsDisplayOnBoundsChange; +} +}), new objj_method(sel_getUid("needsDisplayOnBoundsChange"), function $CALayer__needsDisplayOnBoundsChange(self, _cmd) +{ with(self) +{ + return _needsDisplayOnBoundsChange; +} +}), new objj_method(sel_getUid("setNeedsDisplayInRect:"), function $CALayer__setNeedsDisplayInRect_(self, _cmd, aRect) +{ with(self) +{ + _dirtyRect = aRect; + objj_msgSend(self, "display"); +} +}), new objj_method(sel_getUid("convertPoint:fromLayer:"), function $CALayer__convertPoint_fromLayer_(self, _cmd, aPoint, aLayer) +{ with(self) +{ + return CGPointApplyAffineTransform(aPoint, _CALayerGetTransform(aLayer, self)); +} +}), new objj_method(sel_getUid("convertPoint:toLayer:"), function $CALayer__convertPoint_toLayer_(self, _cmd, aPoint, aLayer) +{ with(self) +{ + return CGPointApplyAffineTransform(aPoint, _CALayerGetTransform(self, aLayer)); +} +}), new objj_method(sel_getUid("convertRect:fromLayer:"), function $CALayer__convertRect_fromLayer_(self, _cmd, aRect, aLayer) +{ with(self) +{ + return CGRectApplyAffineTransform(aRect, _CALayerGetTransform(aLayer, self)); +} +}), new objj_method(sel_getUid("convertRect:toLayer:"), function $CALayer__convertRect_toLayer_(self, _cmd, aRect, aLayer) +{ with(self) +{ + return CGRectApplyAffineTransform(aRect, _CALayerGetTransform(self, aLayer)); +} +}), new objj_method(sel_getUid("containsPoint:"), function $CALayer__containsPoint_(self, _cmd, aPoint) +{ with(self) +{ + return (aPoint.x >= (_bounds.origin.x) && aPoint.y >= (_bounds.origin.y) && aPoint.x < (_bounds.origin.x + _bounds.size.width) && aPoint.y < (_bounds.origin.y + _bounds.size.height)); +} +}), new objj_method(sel_getUid("hitTest:"), function $CALayer__hitTest_(self, _cmd, aPoint) +{ with(self) +{ + if (_isHidden) + return nil; + var point = CGPointApplyAffineTransform(aPoint, _transformToLayer); + if (!(point.x >= (_bounds.origin.x) && point.y >= (_bounds.origin.y) && point.x < (_bounds.origin.x + _bounds.size.width) && point.y < (_bounds.origin.y + _bounds.size.height))) + return nil; + var layer = nil, + index = _sublayers.length; + while (index--) + if (layer = objj_msgSend(_sublayers[index], "hitTest:", point)) + return layer; + return self; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CALayer__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate == aDelegate) + return; + _delegate = aDelegate; + _delegateRespondsToDisplayLayerSelector = objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("displayLayer:")); + _delegateRespondsToDrawLayerInContextSelector = objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("drawLayer:inContext:")); + if (_delegateRespondsToDisplayLayerSelector || _delegateRespondsToDrawLayerInContextSelector) + objj_msgSend(self, "setNeedsDisplay"); +} +}), new objj_method(sel_getUid("delegate"), function $CALayer__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("_setOwningView:"), function $CALayer___setOwningView_(self, _cmd, anOwningView) +{ with(self) +{ + _owningView = anOwningView; + if (_owningView) + { + _owningView = anOwningView; + _bounds.size = CGSizeMakeCopy(objj_msgSend(_owningView, "bounds").size); + _position = CGPointMake((_bounds.size.width) * _anchorPoint.x, (_bounds.size.height) * _anchorPoint.y); + } + _CALayerRecalculateGeometry(self, CALayerGeometryPositionMask | CALayerGeometryBoundsMask); +} +}), new objj_method(sel_getUid("_owningViewBoundsChanged"), function $CALayer___owningViewBoundsChanged(self, _cmd) +{ with(self) +{ + _bounds.size = CGSizeMakeCopy(objj_msgSend(_owningView, "bounds").size); + _position = CGPointMake((_bounds.size.width) * _anchorPoint.x, (_bounds.size.height) * _anchorPoint.y); + _CALayerRecalculateGeometry(self, CALayerGeometryPositionMask | CALayerGeometryBoundsMask); +} +}), new objj_method(sel_getUid("_update"), function $CALayer___update(self, _cmd) +{ with(self) +{ + window.loop = true; + var mask = _runLoopUpdateMask; + if (mask & CALayerDOMUpdateMask) + _CALayerUpdateDOM(self, mask); + if (mask & CALayerDisplayUpdateMask) + objj_msgSend(self, "display"); + else if (mask & CALayerFrameSizeUpdateMask || mask & CALayerCompositeUpdateMask) + objj_msgSend(self, "composite"); + _runLoopUpdateMask = 0; + window.loop = false; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("layer"), function $CALayer__layer(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(objj_msgSend(self, "class"), "alloc"), "init"); +} +}), new objj_method(sel_getUid("runLoopUpdateLayers"), function $CALayer__runLoopUpdateLayers(self, _cmd) +{ with(self) +{if (window.oops) {alert(window.latest); objj_debug_print_backtrace();} + window.loop = true; + for (hash in CALayerRegisteredRunLoopUpdates) + { + var layer = CALayerRegisteredRunLoopUpdates[hash], + mask = layer._runLoopUpdateMask; + if (mask & CALayerDOMUpdateMask) + _CALayerUpdateDOM(layer, mask); + if (mask & CALayerDisplayUpdateMask) + objj_msgSend(layer, "display"); + else if (mask & CALayerFrameSizeUpdateMask || mask & CALayerCompositeUpdateMask) + objj_msgSend(layer, "composite"); + layer._runLoopUpdateMask = 0; + } + window.loop= false; + CALayerRegisteredRunLoopUpdates = nil; +} +})]); +} +_CALayerUpdateSublayerTransformForSublayers= function(aLayer) +{ + var bounds = aLayer._bounds, + anchorPoint = aLayer._anchorPoint, + translateX = (bounds.size.width) * anchorPoint.x, + translateY = (bounds.size.height) * anchorPoint.y; + aLayer._sublayerTransformForSublayers = CGAffineTransformConcat( + CGAffineTransformMakeTranslation(-translateX, -translateY), + CGAffineTransformConcat(aLayer._sublayerTransform, + CGAffineTransformMakeTranslation(translateX, translateY))); +} +_CALayerUpdateDOM= function(aLayer, aMask) +{ + var DOMElementStyle = aLayer._DOMElement.style; + if (aMask & CALayerZPositionUpdateMask) + DOMElementStyle.zIndex = aLayer._zPosition; + var frame = aLayer._backingStoreFrame; + if (aMask & CALayerFrameOriginUpdateMask) + { + DOMElementStyle.top = ROUND((frame.origin.y)) + "px"; + DOMElementStyle.left = ROUND((frame.origin.x)) + "px"; + } + if (aMask & CALayerFrameSizeUpdateMask) + { + var width = MAX(0.0, ROUND((frame.size.width))), + height = MAX(0.0, ROUND((frame.size.height))), + DOMContentsElement = aLayer._DOMContentsElement; + DOMElementStyle.width = width + "px"; + DOMElementStyle.height = height + "px"; + if (DOMContentsElement) + { + DOMContentsElement.width = width; + DOMContentsElement.height = height; + DOMContentsElement.style.width = width + "px"; + DOMContentsElement.style.height = height + "px"; + } + } +} +_CALayerRecalculateGeometry= function(aLayer, aGeometryChange) +{ + var bounds = aLayer._bounds, + superlayer = aLayer._superlayer, + width = (bounds.size.width), + height = (bounds.size.height), + position = aLayer._position, + anchorPoint = aLayer._anchorPoint, + affineTransform = aLayer._affineTransform, + backingStoreFrameSize = { width:aLayer._backingStoreFrame.width, height:aLayer._backingStoreFrame.height }, + hasCustomBackingStoreFrame = aLayer._hasCustomBackingStoreFrame; + aLayer._transformFromLayer = CGAffineTransformConcat( + CGAffineTransformMakeTranslation(-width * anchorPoint.x - (aLayer._bounds.origin.x), -height * anchorPoint.y - (aLayer._bounds.origin.y)), + CGAffineTransformConcat(affineTransform, + CGAffineTransformMakeTranslation(position.x, position.y))); + if (superlayer && superlayer._hasSublayerTransform) + { + var tx = aLayer._transformFromLayer.tx * superlayer._sublayerTransformForSublayers.a + aLayer._transformFromLayer.ty * superlayer._sublayerTransformForSublayers.c + superlayer._sublayerTransformForSublayers.tx;aLayer._transformFromLayer.ty = aLayer._transformFromLayer.tx * superlayer._sublayerTransformForSublayers.b + aLayer._transformFromLayer.ty * superlayer._sublayerTransformForSublayers.d + superlayer._sublayerTransformForSublayers.ty;aLayer._transformFromLayer.tx = tx;var a = aLayer._transformFromLayer.a * superlayer._sublayerTransformForSublayers.a + aLayer._transformFromLayer.b * superlayer._sublayerTransformForSublayers.c, b = aLayer._transformFromLayer.a * superlayer._sublayerTransformForSublayers.b + aLayer._transformFromLayer.b * superlayer._sublayerTransformForSublayers.d, c = aLayer._transformFromLayer.c * superlayer._sublayerTransformForSublayers.a + aLayer._transformFromLayer.d * superlayer._sublayerTransformForSublayers.c;aLayer._transformFromLayer.d = aLayer._transformFromLayer.c * superlayer._sublayerTransformForSublayers.b + aLayer._transformFromLayer.d * superlayer._sublayerTransformForSublayers.d;aLayer._transformFromLayer.a = a;aLayer._transformFromLayer.b = b;aLayer._transformFromLayer.c = c;; + } + aLayer._transformToLayer = CGAffineTransformInvert(aLayer._transformFromLayer); + aLayer._frame = nil; + aLayer._standardBackingStoreFrame = objj_msgSend(aLayer, "convertRect:toLayer:", bounds, nil); + if (superlayer) + { + var bounds = objj_msgSend(superlayer, "bounds"), + frame = objj_msgSend(superlayer, "convertRect:toLayer:", bounds, nil); + aLayer._standardBackingStoreFrame.origin.x -= (frame.origin.x); + aLayer._standardBackingStoreFrame.origin.y -= (frame.origin.y); + } + var origin = aLayer._standardBackingStoreFrame.origin, + size = aLayer._standardBackingStoreFrame.size; + origin.x = FLOOR(origin.x); + origin.y = FLOOR(origin.y); + size.width = CEIL(size.width) + 1.0; + size.height = CEIL(size.height) + 1.0; + if (!hasCustomBackingStoreFrame) + { + var backingStoreFrame = CGRectMakeCopy(aLayer._standardBackingStoreFrame); + if (ROUND((backingStoreFrame.origin.x)) != ROUND((aLayer._backingStoreFrame.origin.x)) || + ROUND((backingStoreFrame.origin.y)) != ROUND((aLayer._backingStoreFrame.origin.y))) + objj_msgSend(aLayer, "registerRunLoopUpdateWithMask:", CALayerFrameOriginUpdateMask); + if (((backingStoreFrame.size.width) != ROUND((aLayer._backingStoreFrame.size.width)) || + (backingStoreFrame.size.height) != ROUND((aLayer._backingStoreFrame.size.height)))) + objj_msgSend(aLayer, "registerRunLoopUpdateWithMask:", CALayerFrameSizeUpdateMask); + aLayer._backingStoreFrame = backingStoreFrame; + } + if (aGeometryChange & CALayerGeometryBoundsMask && aLayer._needsDisplayOnBoundsChange) + objj_msgSend(aLayer, "setNeedsDisplay"); + else if (hasCustomBackingStoreFrame || (aGeometryChange & ~(CALayerGeometryPositionMask | CALayerGeometryAnchorPointMask))) + objj_msgSend(aLayer, "setNeedsComposite"); + var sublayers = aLayer._sublayers, + index = 0, + count = sublayers.length; + for (; index < count; ++index) + _CALayerRecalculateGeometry(sublayers[index], aGeometryChange); +} +_CALayerGetTransform= function(fromLayer, toLayer) +{ + var transform = CGAffineTransformMakeIdentity(); + if (fromLayer) + { + var layer = fromLayer; + while (layer && layer != toLayer) + { + var transformFromLayer = layer._transformFromLayer; + var tx = transform.tx * transformFromLayer.a + transform.ty * transformFromLayer.c + transformFromLayer.tx;transform.ty = transform.tx * transformFromLayer.b + transform.ty * transformFromLayer.d + transformFromLayer.ty;transform.tx = tx;var a = transform.a * transformFromLayer.a + transform.b * transformFromLayer.c, b = transform.a * transformFromLayer.b + transform.b * transformFromLayer.d, c = transform.c * transformFromLayer.a + transform.d * transformFromLayer.c;transform.d = transform.c * transformFromLayer.b + transform.d * transformFromLayer.d;transform.a = a;transform.b = b;transform.c = c;; + layer = layer._superlayer; + } + if (layer == toLayer) + return transform; + } + var layers = [], + layer = toLayer; + while (layer) + { + layers.push(layer); + layer = layer._superlayer; + } + var index = layers.length; + while (index--) + { + var transformToLayer = layers[index]._transformToLayer; + var tx = transform.tx * transformToLayer.a + transform.ty * transformToLayer.c + transformToLayer.tx;transform.ty = transform.tx * transformToLayer.b + transform.ty * transformToLayer.d + transformToLayer.ty;transform.tx = tx;var a = transform.a * transformToLayer.a + transform.b * transformToLayer.c, b = transform.a * transformToLayer.b + transform.b * transformToLayer.d, c = transform.c * transformToLayer.a + transform.d * transformToLayer.c;transform.d = transform.c * transformToLayer.b + transform.d * transformToLayer.d;transform.a = a;transform.b = b;transform.c = c;; + } + return transform; +} + +p;23;CAMediaTimingFunction.jI;21;Foundation/CPObject.jI;25;Foundation/CPDictionary.jI;21;Foundation/CPString.jc;3065; +kCAMediaTimingFunctionLinear = "kCAMediaTimingFunctionLinear"; +kCAMediaTimingFunctionEaseIn = "kCAMediaTimingFunctionEaseIn"; +kCAMediaTimingFunctionEaseOut = "kCAMediaTimingFunctionEaseOut"; +kCAMediaTimingFunctionEaseInEaseOut = "kCAMediaTimingFunctionEaseInEaseOut"; +var CAMediaNamedTimingFunctions = nil; +{var the_class = objj_allocateClassPair(CPObject, "CAMediaTimingFunction"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_c1x"), new objj_ivar("_c1y"), new objj_ivar("_c2x"), new objj_ivar("_c2y")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithControlPoints::::"), function $CAMediaTimingFunction__initWithControlPoints____(self, _cmd, c1x, c1y, c2x, c2y) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _c1x = c1x; + _c1y = c1y; + _c2x = c2x; + _c2y = c2y; + } + return self; +} +}), new objj_method(sel_getUid("getControlPointAtIndex:values:"), function $CAMediaTimingFunction__getControlPointAtIndex_values_(self, _cmd, anIndex, reference) +{ with(self) +{ + if (anIndex == 0) + { + reference[0] = 0; + reference[1] = 0; + } + else if (anIndex == 1) + { + reference[0] = _c1x; + reference[1] = _c1y; + } + else if (anIndex == 2) + { + reference[0] = _c2x; + reference[1] = _c2y; + } + else + { + reference[0] = 1.0; + reference[1] = 1.0; + } +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("functionWithName:"), function $CAMediaTimingFunction__functionWithName_(self, _cmd, aName) +{ with(self) +{ + if (!CAMediaNamedTimingFunctions) + { + CAMediaNamedTimingFunctions = objj_msgSend(CPDictionary, "dictionary"); + objj_msgSend(CAMediaNamedTimingFunctions, "setObject:forKey:", objj_msgSend(CAMediaTimingFunction, "functionWithControlPoints::::", 0.0 , 0.0 , 1.0 , 1.0), kCAMediaTimingFunctionLinear); + objj_msgSend(CAMediaNamedTimingFunctions, "setObject:forKey:", objj_msgSend(CAMediaTimingFunction, "functionWithControlPoints::::", 0.42 , 0.0 , 1.0 , 1.0), kCAMediaTimingFunctionEaseIn); + objj_msgSend(CAMediaNamedTimingFunctions, "setObject:forKey:", objj_msgSend(CAMediaTimingFunction, "functionWithControlPoints::::", 0.0 , 0.0 , 0.58 , 1.0), kCAMediaTimingFunctionEaseOut); + objj_msgSend(CAMediaNamedTimingFunctions, "setObject:forKey:", objj_msgSend(CAMediaTimingFunction, "functionWithControlPoints::::", 0.42 , 0.0 , 0.58 , 1.0), kCAMediaTimingFunctionEaseInEaseOut); + } + return objj_msgSend(CAMediaNamedTimingFunctions, "objectForKey:", aName); +} +}), new objj_method(sel_getUid("functionWithControlPoints::::"), function $CAMediaTimingFunction__functionWithControlPoints____(self, _cmd, c1x, c1y, c2x, c2y) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithControlPoints::::", c1x , c1y , c2x , c2y); +} +})]); +} + +p;19;CGAffineTransform.ji;12;CGGeometry.jc;4830; +CGAffineTransformMake= function(a, b, c, d, tx, ty) { return { a:a, b:b, c:c, d:d, tx:tx, ty:ty }; } +CGAffineTransformMakeIdentity= function() { return { a:1.0, b:0.0, c:0.0, d:1.0, tx:0.0, ty:0.0 }; } +CGAffineTransformMakeCopy= function(anAffineTransform) { return { a:anAffineTransform.a, b:anAffineTransform.b, c:anAffineTransform.c, d:anAffineTransform.d, tx:anAffineTransform.tx, ty:anAffineTransform.ty }; } +CGAffineTransformMakeScale= function(sx, sy) { return { a:sx, b:0.0, c:0.0, d:sy, tx:0.0, ty:0.0 }; } +CGAffineTransformMakeTranslation= function(tx, ty) { return { a:1.0, b:0.0, c:0.0, d:1.0, tx:tx, ty:ty }; } +CGAffineTransformTranslate= function(aTransform, tx, ty) { return { a:aTransform.a, b:aTransform.b, c:aTransform.c, d:aTransform.d, tx:aTransform.tx + aTransform.a * tx + aTransform.c * ty, ty:aTransform.ty + aTransform.b * tx + aTransform.d * ty }; } +CGAffineTransformScale= function(aTransform, sx, sy) { return { a:aTransform.a * sx, b:aTransform.b * sx, c:aTransform.c * sy, d:aTransform.d * sy, tx:aTransform.tx, ty:aTransform.ty }; } +CGAffineTransformConcat= function(lhs, rhs) { return { a:lhs.a * rhs.a + lhs.b * rhs.c, b:lhs.a * rhs.b + lhs.b * rhs.d, c:lhs.c * rhs.a + lhs.d * rhs.c, d:lhs.c * rhs.b + lhs.d * rhs.d, tx:lhs.tx * rhs.a + lhs.ty * rhs.c + rhs.tx, ty:lhs.tx * rhs.b + lhs.ty * rhs.d + rhs.ty }; } +CGPointApplyAffineTransform= function(aPoint, aTransform) { return { x:aPoint.x * aTransform.a + aPoint.y * aTransform.c + aTransform.tx, y:aPoint.x * aTransform.b + aPoint.y * aTransform.d + aTransform.ty }; } +CGSizeApplyAffineTransform= function(aSize, aTransform) { return { width:aSize.width * aTransform.a + aSize.height * aTransform.c, height:aSize.width * aTransform.b + aSize.height * aTransform.d }; } +CGAffineTransformIsIdentity= function(aTransform) { return (aTransform.a == 1 && aTransform.b == 0 && aTransform.c == 0 && aTransform.d == 1 && aTransform.tx == 0 && aTransform.ty == 0); } +CGAffineTransformEqualToTransform= function(lhs, rhs) { return (lhs.a == rhs.a && lhs.b == rhs.b && lhs.c == rhs.c && lhs.d == rhs.d && lhs.tx == rhs.tx && lhs.ty == rhs.ty); } +CGStringCreateWithCGAffineTransform= function(aTransform) { return (" [[ " + aTransform.a + ", " + aTransform.b + ", 0 ], [ " + aTransform.c + ", " + aTransform.d + ", 0 ], [ " + aTransform.tx + ", " + aTransform.ty + ", 1]]"); } +CGAffineTransformCreateCopy= function(aTransform) +{ + return { a:aTransform.a, b:aTransform.b, c:aTransform.c, d:aTransform.d, tx:aTransform.tx, ty:aTransform.ty }; +} +CGAffineTransformMakeRotation= function(anAngle) +{ + var sin = SIN(anAngle), + cos = COS(anAngle); + return { a:cos, b:sin, c:-sin, d:cos, tx:0.0, ty:0.0 }; +} +CGAffineTransformRotate= function(aTransform, anAngle) +{ + var sin = SIN(anAngle), + cos = COS(anAngle); + return { + a:aTransform.a * cos + aTransform.c * sin, + b:aTransform.b * cos + aTransform.d * sin, + c:aTransform.c * cos - aTransform.a * sin, + d:aTransform.d * cos - aTransform.b * sin, + tx:aTransform.tx, + ty:aTransform.ty + }; +} +CGAffineTransformInvert= function(aTransform) +{ + var determinant = 1 / (aTransform.a * aTransform.d - aTransform.b * aTransform.c); + return { + a:determinant * aTransform.d, + b:-determinant * aTransform.b, + c:-determinant * aTransform.c, + d:determinant * aTransform.a, + tx:determinant * (aTransform.c * aTransform.ty - aTransform.d * aTransform.tx), + ty:determinant * (aTransform.b * aTransform.tx - aTransform.a * aTransform.ty) + }; +} +CGRectApplyAffineTransform= function(aRect, anAffineTransform) +{ + var top = (aRect.origin.y), + left = (aRect.origin.x), + right = (aRect.origin.x + aRect.size.width), + bottom = (aRect.origin.y + aRect.size.height), + topLeft = CGPointApplyAffineTransform({ x:left, y:top }, anAffineTransform), + topRight = CGPointApplyAffineTransform({ x:right, y:top }, anAffineTransform), + bottomLeft = CGPointApplyAffineTransform({ x:left, y:bottom }, anAffineTransform), + bottomRight = CGPointApplyAffineTransform({ x:right, y:bottom }, anAffineTransform), + minX = MIN(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x), + maxX = MAX(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x), + minY = MIN(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y), + maxY = MAX(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y); + return { origin: { x:minX, y:minY }, size: { width:(maxX - minX), height:(maxY - minY) } }; +} +CPStringFromCGAffineTransform= function(anAffineTransform) +{ + return '{' + anAffineTransform.a + ", " + anAffineTransform.b + ", " + anAffineTransform.c + ", " + anAffineTransform.d + ", " + anAffineTransform.tx + ", " + anAffineTransform.ty + '}'; +} + +p;9;CGColor.ji;14;CGColorSpace.jc;3028; +var CFTypeGlobalCount = 0; +CFHashCode= function(aCFObject) +{ + if (!aCFObject.hash) + aCFObject.hash = ++CFTypeGlobalCount; + return aCFObject; +} +kCGColorWhite = "kCGColorWhite"; +kCGColorBlack = "kCGColorBlack"; +kCGColorClear = "kCGColorClear"; +var _CGColorMap = { }; +CGColorGetConstantColor= function(aColorName) +{ + alert("FIX ME"); +} +CGColorRetain= function(aColor) +{ + return aColor; +} +CGColorRelease= function() +{ +} +CGColorCreate= function(aColorSpace, components) +{ + if (!aColorSpace || !components) + return NULL; + var components = components.slice(); + CGColorSpaceStandardizeComponents(aColorSpace, components); + var UID = CFHashCode(aColorSpace) + components.join(""); + if (_CGColorMap[UID]) + return _CGColorMap[UID]; + return _CGColorMap[UID] = { colorspace:aColorSpace, pattern:NULL, components:components }; +} +CGColorCreateCopy= function(aColor) +{ + return aColor; +} +CGColorCreateGenericGray= function(gray, alpha) +{ + return CGColorCreate(0, [gray, alpha]); +} +CGColorCreateGenericRGB= function(red, green, blue, alpha) +{ + return CGColorCreate(0, [red, green, blue, alpha]); +} +CGColorCreateGenericCMYK= function(cyan, magenta, yellow, black, alpha) +{ + return CGColorCreate(0, [cyan, magenta, yellow, black, alpha]); +} +CGColorCreateCopyWithAlpha= function(aColor, anAlpha) +{ + var components = aColor.components; + if (!aColor || anAlpha == components[components.length - 1]) + return aColor; + if (aColor.pattern) + var copy = CGColorCreateWithPattern(aColor.colorspace, aColor.pattern, components); + else + var copy = CGColorCreate(aColor.colorspace, components); + copy.components[components.length - 1] = anAlpha; + return copy; +} +CGColorCreateWithPattern= function(aColorSpace, aPattern, components) +{ + if (!aColorSpace || !aPattern || !components) + return NULL; + return { colorspace:aColorSpace, pattern:aPattern, components:components.slice() }; +} +CGColorEqualToColor= function(lhs, rhs) +{ + if (lhs == rhs) + return true; + if (!lhs || !rhs) + return false; + var lhsComponents = lhs.components, + rhsComponents = rhs.components, + lhsComponentCount = lhsComponents.length; + if (lhsComponentCount != rhsComponents.length) + return false; + while (lhsComponentCount--) + if (lhsComponents[lhsComponentCount] != rhsComponents[lhsComponentCount]) + return false; + if (lhs.pattern != rhs.pattern) + return false; + if (CGColorSpaceEqualToColorSpace(lhs.colorspace, rhs.colorspace)) + return false; + return true; +} +CGColorGetAlpha= function(aColor) +{ + var components = aColor.components; + return components[components.length - 1]; +} +CGColorGetColorSpace= function(aColor) +{ + return aColor.colorspace; +} +CGColorGetComponents= function(aColor) +{ + return aColor.components; +} +CGColorGetNumberOfComponents= function(aColor) +{ + return aColor.components.length; +} +CGColorGetPattern= function(aColor) +{ + return aColor.pattern; +} + +p;14;CGColorSpace.jc;4672;kCGColorSpaceModelUnknown = -1; +kCGColorSpaceModelMonochrome = 0; +kCGColorSpaceModelRGB = 1; +kCGColorSpaceModelCMYK = 2; +kCGColorSpaceModelLab = 3; +kCGColorSpaceModelDeviceN = 4; +kCGColorSpaceModelIndexed = 5; +kCGColorSpaceModelPattern = 6; +kCGColorSpaceGenericGray = "CGColorSpaceGenericGray"; +kCGColorSpaceGenericRGB = "CGColorSpaceGenericRGB"; +kCGColorSpaceGenericCMYK = "CGColorSpaceGenericCMYK"; +kCGColorSpaceGenericRGBLinear = "CGColorSpaceGenericRGBLinear"; +kCGColorSpaceGenericRGBHDR = "CGColorSpaceGenericRGBHDR"; +kCGColorSpaceAdobeRGB1998 = "CGColorSpaceAdobeRGB1998"; +kCGColorSpaceSRGB = "CGColorSpaceSRGB"; +var _CGNamedColorSpaces = {}; +CGColorSpaceCreateCalibratedGray= function(aWhitePoint, aBlackPoint, gamma) +{ + return { model:kCGColorSpaceModelMonochrome, count:1, base:NULL }; +} +CGColorSpaceCreateCalibratedRGB= function(aWhitePoint, aBlackPoint, gamma) +{ + return { model:kCGColorSpaceModelRGB, count:1, base:NULL }; +} +CGColorSpaceCreateICCBased= function(aComponentCount, range, profile, alternate) +{ + return NULL; +} +CGColorSpaceCreateLab= function(aWhitePoint, aBlackPoint, aRange) +{ + return NULL; +} +CGColorSpaceCreateDeviceCMYK= function() +{ + return CGColorSpaceCreateWithName(kCGColorSpaceGenericCMYK); +} +CGColorSpaceCreateDeviceGray= function() +{ + return CGColorSpaceCreateWithName(kCGColorSpaceGenericGray); +} +CGColorSpaceCreateDeviceRGB= function() +{ + return CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB); +} +CGColorSpaceCreateWithPlatformColorSpace= function() +{ + return NULL; +} +CGColorSpaceCreateIndexed= function(aBaseColorSpace, lastIndex, colorTable) +{ + return NULL; +} +CGColorSpaceCreatePattern= function(aBaseColorSpace) +{ + if (aBaseColorSpace) + return { model:kCGColorSpaceModelPattern, count:aBaseColorSpace.count, base:aBaseColorSpace }; + return { model:kCGColorSpaceModelPattern, count:0, base:NULL }; +} +CGColorSpaceCreateWithName= function(aName) +{ + var colorSpace = _CGNamedColorSpaces[aName]; + if (colorSpace) + return colorSpace; + switch (aName) + { + case kCGColorSpaceGenericGray: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelMonochrome, count:1, base:NULL }; + case kCGColorSpaceGenericRGB: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelRGB, count:3, base:NULL }; + case kCGColorSpaceGenericCMYK: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelCMYK, count:4, base:NULL }; + case kCGColorSpaceGenericRGBLinear: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelRGB, count:3, base:NULL }; + case kCGColorSpaceGenericRGBHDR: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelRGB, count:3, base:NULL }; + case kCGColorSpaceAdobeRGB1998: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelRGB, count:3, base:NULL }; + case kCGColorSpaceSRGB: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelRGB, count:3, base:NULL }; + } + return NULL; +} +CGColorSpaceCopyICCProfile= function(aColorSpace) +{ + return NULL; +} +CGColorSpaceGetNumberOfComponents= function(aColorSpace) +{ + return aColorSpace.count; +} +CGColorSpaceGetTypeID= function(aColorSpace) +{ +} +CGColorSpaceGetModel= function(aColorSpace) +{ + return aColorSpace.model; +} +CGColorSpaceGetBaseColorSpace= function(aColorSpace) +{ +} +CGColorSpaceGetColorTableCount= function(aColorSpace) +{ +} +CGColorSpaceGetColorTable= function(aColorSpace) +{ +} +CGColorSpaceRelease= function(aColorSpace) +{ +} +CGColorSpaceRetain= function(aColorSpace) +{ + return aColorSpace; +} +CGColorSpaceStandardizeComponents= function(aColorSpace, components) +{ + var count = aColorSpace.count; + { if (count > components.length) { components[count] = 1; return; } var component = components[count]; if (component < 0) components[count] = 0; else if (component > 1) components[count] = 1; else components[count] = ROUND(component * 1000) / 1000; }; + if (aColorSpace.base) + aColorSpace = aColorSpace.base; + switch (aColorSpace.model) + { + case kCGColorSpaceModelMonochrome: + case kCGColorSpaceModelRGB: + case kCGColorSpaceModelCMYK: + case kCGColorSpaceModelDeviceN: while (count--) + { if (count > components.length) { components[count] = 1; return; } var component = components[count]; if (component < 0) components[count] = 0; else if (component > 1) components[count] = 1; else components[count] = ROUND(component * 255) / 255; }; + break; + case kCGColorSpaceModelIndexed: + case kCGColorSpaceModelLab: + case kCGColorSpaceModelPattern: break; + } +} + +p;11;CGContext.ji;12;CGGeometry.ji;19;CGAffineTransform.ji;8;CGPath.jc;31196; +kCGLineCapButt = 0; +kCGLineCapRound = 1; +kCGLineCapSquare = 2; +kCGLineJoinMiter = 0; +kCGLineJoinRound = 1; +kCGLineJoinBevel = 2; +kCGPathFill = 0; +kCGPathEOFill = 1; +kCGPathStroke = 2; +kCGPathFillStroke = 3; +kCGPathEOFillStroke = 4; +kCGBlendModeNormal = 0; +kCGBlendModeMultiply = 1; +kCGBlendModeScreen = 2; +kCGBlendModeOverlay = 3; +kCGBlendModeDarken = 4; +kCGBlendModeLighten = 5; +kCGBlendModeColorDodge = 6; +kCGBlendModeColorBurn = 7; +kCGBlendModeSoftLight = 8; +kCGBlendModeHardLight = 9; +kCGBlendModeDifference = 10; +kCGBlendModeExclusion = 11; +kCGBlendModeHue = 12; +kCGBlendModeSaturation = 13; +kCGBlendModeColor = 14; +kCGBlendModeLuminosity = 15; +kCGBlendModeClear = 16; +kCGBlendModeCopy = 17; +kCGBlendModeSourceIn = 18; +kCGBlendModeSourceOut = 19; +kCGBlendModeSourceAtop = 20; +kCGBlendModeDestinationOver = 21; +kCGBlendModeDestinationIn = 22; +kCGBlendModeDestinationOut = 23; +kCGBlendModeDestinationAtop = 24; +kCGBlendModeXOR = 25; +kCGBlendModePlusDarker = 26; +kCGBlendModePlusLighter = 27; +CGContextRelease= function() +{ +} +CGContextRetain= function(aContext) +{ + return aContext; +} +if (!CPFeatureIsCompatible(CPHTMLCanvasFeature)) +{ +CGGStateCreate= function() +{ + return { alpha:1.0, strokeStyle:"#000", fillStyle:"#ccc", lineWidth:1.0, lineJoin:kCGLineJoinMiter, lineCap:kCGLineCapButt, miterLimit:10.0, globalAlpha:1.0, + blendMode:kCGBlendModeNormal, + shadowOffset:{ width:0.0, height:0.0 }, shadowBlur:0.0, shadowColor:NULL, CTM:{ a:1.0, b:0.0, c:0.0, d:1.0, tx:0.0, ty:0.0 } }; +} +CGGStateCreateCopy= function(aGState) +{ + return { alpha:aGState.alpha, strokeStyle:aGState.strokeStyle, fillStyle:aGState.fillStyle, lineWidth:aGState.lineWidth, + lineJoin:aGState.lineJoin, lineCap:aGState.lineCap, miterLimit:aGState.miterLimit, globalAlpha:aGState.globalAlpha, + blendMode:aGState.blendMode, + shadowOffset:aGState.shadowOffset, shadowBlur:aGState.shadowBlur, shadowColor:aGState.shadowColor, CTM:{ a:aGState.CTM.a, b:aGState.CTM.b, c:aGState.CTM.c, d:aGState.CTM.d, tx:aGState.CTM.tx, ty:aGState.CTM.ty } }; +} +CGBitmapGraphicsContextCreate= function() +{ + return { DOMElement:document.createElement("div"), path:NULL, gState:CGGStateCreate(), gStateStack:[] }; +} +CGContextSaveGState= function(aContext) +{ + aContext.gStateStack.push(CGGStateCreateCopy(aContext.gState)); +} +CGContextRestoreGState= function(aContext) +{ + aContext.gState = aContext.gStateStack.pop(); +} +CGContextSetLineCap= function(aContext, aLineCap) +{ + aContext.gState.lineCap = aLineCap; +} +CGContextSetLineJoin= function(aContext, aLineJoin) +{ + aContext.gState.lineJoin = aLineJoin; +} +CGContextSetLineWidth= function(aContext, aLineWidth) +{ + aContext.gState.lineWidth = aLineWidth; +} +CGContextSetMiterLimit= function(aContext, aMiterLimit) +{ + aContext.gState.miterLimit = aMiterLimit; +} +CGContextSetBlendMode= function(aContext, aBlendMode) +{ + aContext.gState.blendMode = aBlendMode; +} +CGContextAddArc= function(aContext, x, y, radius, startAngle, endAngle, clockwise) +{ + CGPathAddArc(aContext.path, aContext.gState.CTM, x, y, radius, startAngle, endAngle, clockwise); +} +CGContextAddArcToPoint= function(aContext, x1, y1, x2, y2, radius) +{ + CGPathAddArcToPoint(aContext.path, aContext.gState.CTM, x1, y1, x2, y2, radius); +} +CGContextAddCurveToPoint= function(aContext, cp1x, cp1y, cp2x, cp2y, x, y) +{ + CGPathAddCurveToPoint(aContext.path, aContext.gState.CTM, cp1x, cp1y, cp2x, cp2y, x, y); +} +CGContextAddLines= function(aContext, points, count) +{ + CGPathAddLines(aContext.path, aContext.gState.CTM, points, count); +} +CGContextAddLineToPoint= function(aContext, x, y) +{ + CGPathAddLineToPoint(aContext.path, aContext.gState.CTM, x, y); +} +CGContextAddPath= function(aContext, aPath) +{ + if (!aContext || CGPathIsEmpty(aPath)) + return; + if (!aContext.path) + aContext.path = CGPathCreateMutable(); + CGPathAddPath(aContext.path, aContext.gState.CTM, aPath); +} +CGContextAddQuadCurveToPoint= function(aContext, cpx, cpy, x, y) +{ + CGPathAddQuadCurveToPoint(aContext.path, aContext.gState.CTM, cpx, cpy, x, y); +} +CGContextAddRect= function(aContext, aRect) +{ + CGPathAddRect(aContext.path, aContext.gState.CTM, aRect); +} +CGContextAddRects= function(aContext, rects, count) +{ + CGPathAddRects(aContext.path, aContext.gState.CTM, rects, count); +} +CGContextBeginPath= function(aContext) +{ + aContext.path = CGPathCreateMutable(); +} +CGContextClosePath= function(aContext) +{ + CGPathCloseSubpath(aContext.path); +} +CGContextMoveToPoint= function(aContext, x, y) +{ + if (!aContext.path) + aContext.path = CGPathCreateMutable(); + CGPathMoveToPoint(aContext.path, aContext.gState.CTM, x, y); +} +CGContextFillRect= function(aContext, aRect) +{ + CGContextFillRects(aContext, [aRect], 1); +} +CGContextFillRects= function(aContext, rects, count) +{ + if (arguments[2] === undefined) + var count = rects.length; + CGContextBeginPath(aContext); + CGContextAddRects(aContext, rects, count); + CGContextClosePath(aContext); + CGContextDrawPath(aContext, kCGPathFill); +} +CGContextStrokeRect= function(aContext, aRect) +{ + CGContextBeginPath(aContext); + CGContextAddRect(aContext, aRect); + CGContextClosePath(aContext); + CGContextDrawPath(aContext, kCGPathStroke); +} +CGContextStrokeRectWithWidth= function(aContext, aRect, aWidth) +{ + CGContextSaveGState(aContext); + CGContextSetLineWidth(aContext, aWidth); + CGContextStrokeRect(aContext, aRect); + CGContextRestoreGState(aContext); +} +CGContextConcatCTM= function(aContext, aTransform) +{ + var CTM = aContext.gState.CTM; + var tx = CTM.tx * aTransform.a + CTM.ty * aTransform.c + aTransform.tx;CTM.ty = CTM.tx * aTransform.b + CTM.ty * aTransform.d + aTransform.ty;CTM.tx = tx;var a = CTM.a * aTransform.a + CTM.b * aTransform.c, b = CTM.a * aTransform.b + CTM.b * aTransform.d, c = CTM.c * aTransform.a + CTM.d * aTransform.c;CTM.d = CTM.c * aTransform.b + CTM.d * aTransform.d;CTM.a = a;CTM.b = b;CTM.c = c;; +} +CGContextGetCTM= function(aContext) +{ + return aContext.gState.CTM; +} +CGContextRotateCTM= function(aContext, anAngle) +{ + var gState = aContext.gState; + gState.CTM = CGAffineTransformRotate(gState.CTM, anAngle); +} +CGContextScaleCTM= function(aContext, sx, sy) +{ + var gState = aContext.gState; + gState.CTM = { a:gState.CTM.a * sx, b:gState.CTM.b * sx, c:gState.CTM.c * sy, d:gState.CTM.d * sy, tx:gState.CTM.tx, ty:gState.CTM.ty }; +} +CGContextTranslateCTM= function(aContext, tx, ty) +{ + var gState = aContext.gState; + gState.CTM = { a:gState.CTM.a, b:gState.CTM.b, c:gState.CTM.c, d:gState.CTM.d, tx:gState.CTM.tx + gState.CTM.a * tx + gState.CTM.c * ty, ty:gState.CTM.ty + gState.CTM.b * tx + gState.CTM.d * ty }; +} +CGContextSetShadow= function(aContext, aSize, aBlur) +{ + var gState = aContext.gState; + gState.shadowOffset = { width:aSize.width, height:aSize.height }; + gState.shadowBlur = aBlur; + gState.shadowColor = objj_msgSend(CPColor, "shadowColor"); +} +CGContextSetShadowWithColor= function(aContext, aSize, aBlur, aColor) +{ + var gState = aContext.gState; + gState.shadowOffset = { width:aSize.width, height:aSize.height }; + gState.shadowBlur = aBlur; + gState.shadowColor = aColor; +} +CGContextSetAlpha= function(aContext, anAlpha) +{ + aContext.gState.alpha = MAX(MIN(anAlpha, 1.0), 0.0); +} +} +CGContextEOFillPath= function(aContext) +{ + CGContextDrawPath(aContext, kCGPathEOFill); +} +CGContextFillPath= function(aContext) +{ + CGContextDrawPath(aContext, kCGPathFill); +} +var KAPPA = 4.0 * ((SQRT2 - 1.0) / 3.0); +CGContextAddEllipseInRect= function(aContext, aRect) +{ + CGContextAddPath(aContext, CGPathWithEllipseInRect(aRect)); +} +CGContextFillEllipseInRect= function(aContext, aRect) +{ + CGContextBeginPath(aContext); + CGContextAddEllipseInRect(aContext, aRect); + CGContextClosePath(aContext); + CGContextFillPath(aContext); +} +CGContextStrokeEllipseInRect= function(aContext, aRect) +{ + CGContextBeginPath(aContext); + CGContextAddEllipseInRect(aContext, aRect); + CGContextClosePath(aContext); + CGContextStrokePath(aContext); +} +CGContextStrokePath= function(aContext) +{ + CGContextDrawPath(aContext, kCGPathStroke); +} +CGContextStrokeLineSegments= function(aContext, points, count) +{ + var i = 0; + if (arguments["count"] == NULL) + var count = points.length; + CGContextBeginPath(aContext); + for (; i < count; i += 2) + { + CGContextMoveToPoint(aContext, points[i].x, points[i].y); + CGContextAddLineToPoint(aContext, points[i + 1].x, points[i + 1].y); + } + CGContextStrokePath(aContext); +} +CGContextSetFillColor= function(aContext, aColor) +{ + if (aColor) + aContext.gState.fillStyle = objj_msgSend(aColor, "cssString"); +} +CGContextSetStrokeColor= function(aContext, aColor) +{ + if (aColor) + aContext.gState.strokeStyle = objj_msgSend(aColor, "cssString"); +} +CGContextFillRoundedRectangleInRect= function(aContext, aRect, aRadius, ne, se, sw, nw) +{ + CGContextAddPath(aContext, CGPathWithRoundedRectangleInRect(aRect, aRadius, aRadius, ne, se, sw, nw)); + CGContextFillPath(aContext); +} +CGContextStrokeRoundedRectangleInRect= function(aContext, aRect, aRadius, ne, se, sw, nw) +{ + CGContextAddPath(aContext, CGPathWithRoundedRectangleInRect(aRect, aRadius, aRadius, ne, se, sw, nw)); + CGContextStrokePath(aContext); +} +if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) +{ +var CANVAS_LINECAP_TABLE = [ "butt", "round", "square" ], + CANVAS_LINEJOIN_TABLE = [ "miter", "round", "bevel" ], + CANVAS_COMPOSITE_TABLE = [ "source-over", "source-over", "source-over", "source-over", "darker", + "lighter", "source-over", "source-over", "source-over", "source-over", + "source-over", "source-over", "source-over", "source-over", "source-over", + "source-over", "source-over", + "copy", "source-in", "source-out", "source-atop", + "destination-over", "destination-in", "destination-out", "destination-atop", + "xor", "source-over", "source-over" ]; +CGContextSaveGState= function(aContext) +{ + aContext.save(); +} +CGContextRestoreGState= function(aContext) +{ + aContext.restore(); +} +CGContextSetLineCap= function(aContext, aLineCap) +{ + aContext.lineCap = CANVAS_LINECAP_TABLE[aLineCap]; +} +CGContextSetLineJoin= function(aContext, aLineJoin) +{ + aContext.lineJoin = CANVAS_LINEJOIN_TABLE[aLineJoin]; +} +CGContextSetLineWidth= function(aContext, aLineWidth) +{ + aContext.lineWidth = aLineWidth; +} +CGContextSetMiterLimit= function(aContext, aMiterLimit) +{ + aContext.miterLimit = aMiterLimit; +} +CGContextSetBlendMode= function(aContext, aBlendMode) +{ + aContext.globalCompositeOperation = CANVAS_COMPOSITE_TABLE[aBlendMode]; +} +CGContextAddArc= function(aContext, x, y, radius, startAngle, endAngle, clockwise) +{ + aContext.arc(x, y, radius, startAngle, endAngle, !clockwise); +} +CGContextAddArcToPoint= function(aContext, x1, y1, x2, y2, radius) +{ + aContext.arcTo(x1, y1, x2, y2, radius); +} +CGContextAddCurveToPoint= function(aContext, cp1x, cp1y, cp2x, cp2y, x, y) +{ + aContext.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); +} +CGContextAddLineToPoint= function(aContext, x, y) +{ + aContext.lineTo(x, y); +} +CGContextAddPath= function(aContext, aPath) +{ + if (!aContext || CGPathIsEmpty(aPath)) + return; + var elements = aPath.elements, + i = 0, + count = aPath.count; + for (; i < count; ++i) + { + var element = elements[i], + type = element.type; + switch (type) + { + case kCGPathElementMoveToPoint: aContext.moveTo(element.x, element.y); + break; + case kCGPathElementAddLineToPoint: aContext.lineTo(element.x, element.y); + break; + case kCGPathElementAddQuadCurveToPoint: aContext.quadraticCurveTo(element.cpx, element.cpy, element.x, element.y); + break; + case kCGPathElementAddCurveToPoint: aContext.bezierCurveTo(element.cp1x, element.cp1y, element.cp2x, element.cp2y, element.x, element.y); + break; + case kCGPathElementCloseSubpath: aContext.closePath(); + break; + case kCGPathElementAddArc: aContext.arc(element.x, element.y, element.radius, element.startAngle, element.endAngle, element.clockwise); + break; + case kCGPathElementAddArcTo: + break; + } + } +} +CGContextAddRect= function(aContext, aRect) +{ + aContext.rect((aRect.origin.x), (aRect.origin.y), (aRect.size.width), (aRect.size.height)); +} +CGContextAddRects= function(aContext, rects, count) +{ + var i = 0; + if (arguments["count"] == NULL) + var count = rects.length; + for (; i < count; ++i) + { + var rect = rects[i]; + aContext.rect((rect.origin.x), (rect.origin.y), (rect.size.width), (rect.size.height)); + } +} +CGContextBeginPath= function(aContext) +{ + aContext.beginPath(); +} +CGContextClosePath= function(aContext) +{ + aContext.closePath(); +} +CGContextMoveToPoint= function(aContext, x, y) +{ + aContext.moveTo(x, y); +} +CGContextClearRect= function(aContext, aRect) +{ + aContext.clearRect((aRect.origin.x), (aRect.origin.y), (aRect.size.width), (aRect.size.height)); +} +CGContextDrawPath= function(aContext, aMode) +{ + if (aMode == kCGPathFill || aMode == kCGPathFillStroke) + aContext.fill(); + else if (aMode == kCGPathEOFill || aMode == kCGPathEOFillStroke) + alert("not implemented!!!"); + if (aMode == kCGPathStroke || aMode == kCGPathFillStroke || aMode == kCGPathEOFillStroke) + aContext.stroke(); +} +CGContextFillRect= function(aContext, aRect) +{ + aContext.fillRect((aRect.origin.x), (aRect.origin.y), (aRect.size.width), (aRect.size.height)); +} +CGContextFillRects= function(aContext, rects, count) +{ + var i = 0; + if (arguments["count"] == NULL) + var count = rects.length; + for (; i < count; ++i) + { + var rect = rects[i]; + aContext.fillRect((rect.origin.x), (rect.origin.y), (rect.size.width), (rect.size.height)); + } +} +CGContextStrokeRect= function(aContext, aRect) +{ + aContext.strokeRect((aRect.origin.x), (aRect.origin.y), (aRect.size.width), (aRect.size.height)); +} +CGContextClip= function(aContext) +{ + aContext.clip(); +} +CGContextClipToRect= function(aContext, aRect) +{ + aContext.beginPath(); + aContext.rect((aRect.origin.x), (aRect.origin.y), (aRect.size.width), (aRect.size.height)); + aContext.closePath(); + aContext.clip(); +} +CGContextClipToRects= function(aContext, rects, count) +{ + if (arguments["count"] == NULL) + var count = rects.length; + aContext.beginPath(); + CGContextAddRects(aContext, rects, count); + aContext.clip(); +} +CGContextSetAlpha= function(aContext, anAlpha) +{ + aContext.globalAlpha = anAlpha; +} +CGContextSetFillColor= function(aContext, aColor) +{ + aContext.fillStyle = objj_msgSend(aColor, "cssString"); +} +CGContextSetStrokeColor= function(aContext, aColor) +{ + aContext.strokeStyle = objj_msgSend(aColor, "cssString"); +} +CGContextSetShadow= function(aContext, aSize, aBlur) +{ + aContext.shadowOffsetX = aSize.width; + aContext.shadowOffsetY = aSize.height; + aContext.shadowBlur = aBlur; +} +CGContextSetShadowWithColor= function(aContext, aSize, aBlur, aColor) +{ + aContext.shadowOffsetX = aSize.width; + aContext.shadowOffsetY = aSize.height; + aContext.shadowBlur = aBlur; + aContext.shadowColor = objj_msgSend(aColor, "cssString"); +} +CGContextRotateCTM= function(aContext, anAngle) +{ + aContext.rotate(anAngle); +} +CGContextScaleCTM= function(aContext, sx, sy) +{ + aContext.scale(sx, sy); +} +CGContextTranslateCTM= function(aContext, tx, ty) +{ + aContext.translate(tx, ty); +} +eigen= function(anAffineTransform) +{ + alert("IMPLEMENT ME!"); +} +if (CPFeatureIsCompatible(CPJavaScriptCanvasTransformFeature)) +{ +CGContextConcatCTM = function(aContext, anAffineTransform) +{ + aContext.transform(anAffineTransform.a, anAffineTransform.b, anAffineTransform.c, anAffineTransform.d, anAffineTransform.tx, anAffineTransform.ty); +} +} +else +{ +CGContextConcatCTM = function(aContext, anAffineTransform) +{ + var a = anAffineTransform.a, + b = anAffineTransform.b, + c = anAffineTransform.c, + d = anAffineTransform.d, + tx = anAffineTransform.tx, + ty = anAffineTransform.ty, + sx = 1.0, + sy = 1.0, + a1 = 0.0, + a2 = 0.0; + if (b == 0.0 && c == 0.0) + { + sx = a; + sy = d; + } + else if (a * b == -c * d) + { + var sign = (a * d < 0.0 || b * c > 0.0) ? -1.0 : 1.0, a2 = (ATAN2(b, d) + ATAN2(-sign * c, sign * a)) / 2.0, cos = COS(a2), sin = SIN(a2); if (cos == 0) { sx = -c / sin; sy = b / sin; } else if (sin == 0) { sx = a / cos; sy = d / cos; } else { abs_cos = ABS(cos); abs_sin = ABS(sin); sx = (abs_cos * a / cos + abs_sin * -c / sin) / (abs_cos + abs_sin); sy = (abs_cos * d / cos + abs_sin * b / sin) / (abs_cos + abs_sin); } + } + else if (a * c == -b * d) + { + var sign = (a * d < 0.0 || b * c > 0.0) ? -1.0 : 1.0; a1 = (Math.atan2(sign * b, sign * a) + Math.atan2(-c, d)) / 2.0, cos = COS(a1), sin = SIN(a1); if (cos == 0) { sx = b / sin; sy = -c / sin; } else if (sin == 0) { sx = a / cos; sy = d / cos; } else { abs_cos = ABS(cos); abs_sin = ABS(sin); sx = (abs_cos * a / cos + abs_sin * b / sin) / (abs_cos + abs_sin); sy = (abs_cos * d / cos + abs_sin * -c / sin) / (abs_cos + abs_sin); } + } + else + { + var transpose = CGAffineTransformMake(a, c, b, d, 0.0, 0.0), + u = eigen(CGAffineTransformConcat(anAffineTransform, transpose)), + v = eigen(CGAffineTransformConcat(transpose, anAffineTransform)), + U = CGAffineTransformMake(u.vector_1.x, u.vector_2.x, u.vector_1.y, u.vector_2.y, 0.0, 0.0), + VT = CGAffineTransformMake(v.vector_1.x, v.vector_1.y, v.vector_2.x, v.vector_2.y, 0.0, 0.0), + S = CGAffineTransformConcat(CGAffineTransformConcat(CGAffineTransformInvert(U), anAffineTransform), CGAffineTransformInvert(VT)); + a = VT.a; + b = VT.b; + c = VT.c; + d = VT.d; + var sign = (a * d < 0.0 || b * c > 0.0) ? -1.0 : 1.0, a2 = (ATAN2(b, d) + ATAN2(-sign * c, sign * a)) / 2.0, cos = COS(a2), sin = SIN(a2); if (cos == 0) { sx = -c / sin; sy = b / sin; } else if (sin == 0) { sx = a / cos; sy = d / cos; } else { abs_cos = ABS(cos); abs_sin = ABS(sin); sx = (abs_cos * a / cos + abs_sin * -c / sin) / (abs_cos + abs_sin); sy = (abs_cos * d / cos + abs_sin * b / sin) / (abs_cos + abs_sin); } + S.a *= sx; + S.d *= sy; + a = U.a; + b = U.b; + c = U.c; + d = U.d; + var sign = (a * d < 0.0 || b * c > 0.0) ? -1.0 : 1.0; a1 = (Math.atan2(sign * b, sign * a) + Math.atan2(-c, d)) / 2.0, cos = COS(a1), sin = SIN(a1); if (cos == 0) { sx = b / sin; sy = -c / sin; } else if (sin == 0) { sx = a / cos; sy = d / cos; } else { abs_cos = ABS(cos); abs_sin = ABS(sin); sx = (abs_cos * a / cos + abs_sin * b / sin) / (abs_cos + abs_sin); sy = (abs_cos * d / cos + abs_sin * -c / sin) / (abs_cos + abs_sin); } + sx = S.a * sx; + sy = S.d * sy; + } + if (tx != 0 || ty != 0) + CGContextTranslateCTM(aContext, tx, ty); + if (a1 != 0.0) + CGContextRotateCTM(aContext, a1); + if (sx != 1.0 || sy != 1.0) + CGContextScaleCTM(aContext, sx, sy); + if (a2 != 0.0) + CGContextRotateCTM(aContext, a2); +} +} +CGContextDrawImage= function(aContext, aRect, anImage) +{ + aContext.drawImage(anImage._image, (aRect.origin.x), (aRect.origin.y), (aRect.size.width), (aRect.size.height)); +} +to_string= function(aColor) +{ + return "rgba(" + ROUND(aColor.components[0] * 255) + ", " + ROUND(aColor.components[1] * 255) + ", " + ROUND(255 * aColor.components[2]) + ", " + aColor.components[3] + ")"; +} +CGContextDrawLinearGradient= function(aContext, aGradient, aStartPoint, anEndPoint, options) +{ + var colors = aGradient.colors, + count = colors.length, + linearGradient = aContext.createLinearGradient(aStartPoint.x, aStartPoint.y, anEndPoint.x, anEndPoint.y); + while (count--) + linearGradient.addColorStop(aGradient.locations[count], to_string(colors[count])); + aContext.fillStyle = linearGradient; + aContext.fill(); +} +CGBitmapGraphicsContextCreate= function() +{ + var DOMElement = document.createElement("canvas"), + context = DOMElement.getContext("2d"); + context.DOMElement = DOMElement; + return context; +} +} +else if (CPFeatureIsCompatible(CPVMLFeature)) +{ +var VML_TRUTH_TABLE = [ "f", "t"], + VML_LINECAP_TABLE = [ "flat", "round", "square" ], + VML_LINEJOIN_TABLE = [ "miter", "round", "bevel" ], + VML_ELEMENT_TABLE = [ " m ", " l ", "qb", " c ", " x ", [" at ", " wa "]]; +var _CGBitmapGraphicsContextCreate = CGBitmapGraphicsContextCreate; +CGBitmapGraphicsContextCreate= function() +{ + document.namespaces.add("cg_vml_", "urn:schemas-microsoft-com:vml"); + document.createStyleSheet().cssText = "cg_vml_\\:*{behavior:url(#default#VML)}"; + CGBitmapGraphicsContextCreate = _CGBitmapGraphicsContextCreate; + return _CGBitmapGraphicsContextCreate(); +} +CGContextClearRect= function(aContext, aRect) +{ + if (aContext.buffer != nil) + aContext.buffer = ""; + else + aContext.DOMElement.innerHTML = ""; + aContext.path = NULL; +} +var W = 10.0, + H = 10.0, + Z = 10.0, + Z_2 = Z / 2.0; +CGContextDrawImage= function(aContext, aRect, anImage) +{ + var string = ""; + if (anImage.buffer != nil) + string = anImage.buffer; + else + { + var ctm = aContext.gState.CTM, + origin = CGPointApplyAffineTransform(aRect.origin, ctm), + similarity = ctm.a == ctm.d && ctm.b == -ctm.c, + vml = [""); + string = vml.join(""); + } + if (aContext.buffer != nil) + aContext.buffer += string; + else + aContext.DOMElement.insertAdjacentHTML("BeforeEnd", string); +} +CGContextDrawPath= function(aContext, aMode) +{ + if (!aContext || CGPathIsEmpty(aContext.path)) + return; + var elements = aContext.path.elements, + i = 0, + count = aContext.path.count, + gState = aContext.gState, + fill = (aMode == kCGPathFill || aMode == kCGPathFillStroke) ? 1 : 0, + stroke = (aMode == kCGPathStroke || aMode == kCGPathFillStroke) ? 1 : 0, + opacity = gState.alpha, + vml = [ "= x) + { + if (start.y < y) + start.x += 0.125; + else + start.y += 0.125; + } + else + { + if (end.y <= y) + end.x += 0.125; + else + end.y += 0.125; + } + vml.push(VML_ELEMENT_TABLE[type][clockwise], + (ROUND(Z * (x - radius) - Z_2)), ',', (ROUND(Z * (y - radius) - Z_2)), " ", + (ROUND(Z * (x + radius) - Z_2)), ',', (ROUND(Z * (y + radius) - Z_2)), " ", + (ROUND(Z * (start.x) - Z_2)), ',', (ROUND(Z * (start.y) - Z_2)), " ", + (ROUND(Z * (end.x) - Z_2)), ',', (ROUND(Z * (end.y) - Z_2))); + break; + case kCGPathElementAddArcTo: break; + } + } + vml.push("\">"); + if (gState.gradient) + vml.push(gState.gradient) + else if (fill) + vml.push(""); + if (stroke) + vml.push( ""); + var shadowColor = gState.shadowColor; + if (shadowColor) + { + var shadowOffset = gState.shadowOffset; + vml.push(""); + } + vml.push(""); + aContext.path = NULL; + if (aContext.buffer != nil) + aContext.buffer += vml.join(""); + else + aContext.DOMElement.insertAdjacentHTML("BeforeEnd", vml.join("")); +} +to_string= function(aColor) +{ + return "rgb(" + ROUND(aColor.components[0] * 255) + ", " + ROUND(aColor.components[1] * 255) + ", " + ROUND(255 * aColor.components[2]) + ")"; +} +CGContextDrawLinearGradient= function(aContext, aGradient, aStartPoint, anEndPoint, options) +{ + if (!aContext || !aGradient) + return; + var vml = nil; + if (aGradient.vml_gradient) + { + var stops = objj_msgSend(objj_msgSend(aGradient.vml_gradient, "stops"), "sortedArrayUsingSelector:", sel_getUid("comparePosition:")), + count = objj_msgSend(stops, "count"); + vml = [""); + } + else + { + var colors = aGradient.colors, + count = colors.length; + vml = [""); + } + aContext.gState.gradient = vml.join(""); + console.log(vml.join("")); +} +} + +p;12;CGGeometry.jc;7658;CGPointMake= function(x, y) { return { x:x, y:y }; } +CGPointMakeZero= function() { return { x:0.0, y:0.0 }; } +CGPointMakeCopy= function(aPoint) { return { x:aPoint.x, y:aPoint.y }; } +CGPointCreateCopy= function(aPoint) { return { x:aPoint.x, y:aPoint.y }; } +CGPointEqualToPoint= function(lhsPoint, rhsPoint) { return (lhsPoint.x == rhsPoint.x && lhsPoint.y == rhsPoint.y); } +CGStringFromPoint= function(aPoint) { return ("{" + aPoint.x + ", " + aPoint.y + "}"); } +CGSizeMake= function(width, height) { return { width:width, height:height }; } +CGSizeMakeZero= function() { return { width:0.0, height:0.0 }; } +CGSizeMakeCopy= function(aSize) { return { width:aSize.width, height:aSize.height }; } +CGSizeCreateCopy= function(aSize) { return { width:aSize.width, height:aSize.height }; } +CGSizeEqualToSize= function(lhsSize, rhsSize) { return (lhsSize.width == rhsSize.width && lhsSize.height == rhsSize.height); } +CGStringFromSize= function(aSize) { return ("{" + aSize.width + ", " + aSize.height + "}"); } +CGRectMake= function(x, y, width, height) { return { origin: { x:x, y:y }, size: { width:width, height:height } }; } +CGRectMakeZero= function() { return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; } +CGRectMakeCopy= function(aRect) { return { origin: { x:aRect.origin.x, y:aRect.origin.y }, size: { width:aRect.size.width, height:aRect.size.height } }; } +CGRectCreateCopy= function(aRect) { return { origin: { x:aRect.origin.x, y:aRect.origin.y }, size: { width:aRect.size.width, height:aRect.size.height } }; } +CGRectEqualToRect= function(lhsRect, rhsRect) { return ((lhsRect.origin.x == rhsRect.origin.x && lhsRect.origin.y == rhsRect.origin.y) && (lhsRect.size.width == rhsRect.size.width && lhsRect.size.height == rhsRect.size.height)); } +CGStringFromRect= function(aRect) { return ("{" + ("{" + aRect.origin.x + ", " + aRect.origin.y + "}") + ", " + ("{" + aRect.size.width + ", " + aRect.size.height + "}") + "}"); } +CGRectOffset= function(aRect, dX, dY) { return { origin: { x:aRect.origin.x + dX, y:aRect.origin.y + dY }, size: { width:aRect.size.width, height:aRect.size.height } }; } +CGRectInset= function(aRect, dX, dY) { return { origin: { x:aRect.origin.x + dX, y:aRect.origin.y + dY }, size: { width:aRect.size.width - 2 * dX, height:aRect.size.height - 2 * dY } }; } +CGRectGetHeight= function(aRect) { return (aRect.size.height); } +CGRectGetMaxX= function(aRect) { return (aRect.origin.x + aRect.size.width); } +CGRectGetMaxY= function(aRect) { return (aRect.origin.y + aRect.size.height); } +CGRectGetMidX= function(aRect) { return (aRect.origin.x + (aRect.size.width) / 2.0); } +CGRectGetMidY= function(aRect) { return (aRect.origin.y + (aRect.size.height) / 2.0); } +CGRectGetMinX= function(aRect) { return (aRect.origin.x); } +CGRectGetMinY= function(aRect) { return (aRect.origin.y); } +CGRectGetWidth= function(aRect) { return (aRect.size.width); } +CGRectIsEmpty= function(aRect) { return (aRect.size.width <= 0.0 || aRect.size.height <= 0.0); } +CGRectIsNull= function(aRect) { return (aRect.size.width <= 0.0 || aRect.size.height <= 0.0); } +CGRectContainsPoint= function(aRect, aPoint) { return (aPoint.x >= (aRect.origin.x) && aPoint.y >= (aRect.origin.y) && aPoint.x < (aRect.origin.x + aRect.size.width) && aPoint.y < (aRect.origin.y + aRect.size.height)); } +CGInsetMake= function(top, right, bottom, left) { return { top:(top), right:(right), bottom:(bottom), left:(left) }; } +CGInsetMakeZero= function() { return { top:(0), right:(0), bottom:(0), left:(0) }; } +CGInsetMakeCopy= function(anInset) { return { top:(anInset.top), right:(anInset.right), bottom:(anInset.bottom), left:(anInset.left) }; } +CGInsetIsEmpty= function(anInset) { return ((anInset).top === 0 && (anInset).right === 0 && (anInset).bottom === 0 && (anInset).left === 0); } +CGRectContainsRect= function(lhsRect, rhsRect) +{ + var union = CGRectUnion(lhsRect, rhsRect); + return ((union.origin.x == lhsRect.origin.x && union.origin.y == lhsRect.origin.y) && (union.size.width == lhsRect.size.width && union.size.height == lhsRect.size.height)); +} +CGRectIntersectsRect= function(lhsRect, rhsRect) +{ + var intersection = CGRectIntersection(lhsRect, rhsRect); + return !(intersection.size.width <= 0.0 || intersection.size.height <= 0.0); +} +CGRectIntegral= function(aRect) +{ + aRect = CGRectStandardize(aRect); + var x = FLOOR((aRect.origin.x)), + y = FLOOR((aRect.origin.y)); + aRect.size.width = CEIL((aRect.origin.x + aRect.size.width)) - x; + aRect.size.height = CEIL((aRect.origin.y + aRect.size.height)) - y; + aRect.origin.x = x; + aRect.origin.y = y; + return aRect; +} +CGRectIntersection= function(lhsRect, rhsRect) +{ + var intersection = { origin: { x:MAX((lhsRect.origin.x), (rhsRect.origin.x)), y:MAX((lhsRect.origin.y), (rhsRect.origin.y)) }, size: { width:0, height:0 } }; + intersection.size.width = MIN((lhsRect.origin.x + lhsRect.size.width), (rhsRect.origin.x + rhsRect.size.width)) - (intersection.origin.x); + intersection.size.height = MIN((lhsRect.origin.y + lhsRect.size.height), (rhsRect.origin.y + rhsRect.size.height)) - (intersection.origin.y); + return (intersection.size.width <= 0.0 || intersection.size.height <= 0.0) ? { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } } : intersection; +} +CGRectStandardize= function(aRect) +{ + var width = (aRect.size.width), + height = (aRect.size.height), + standardized = aRect; + if (width < 0.0) + { + if (standardized == aRect) + standardized = { origin: { x:aRect.origin.x, y:aRect.origin.y }, size: { width:aRect.size.width, height:aRect.size.height } }; + standardized.origin.x += width; + standardized.size.width = -width; + } + if (height < 0.0) + { + if (standardized == aRect) + standardized = { origin: { x:aRect.origin.x, y:aRect.origin.y }, size: { width:aRect.size.width, height:aRect.size.height } }; + standardized.origin.y += height; + standardized.size.height = -height; + } + return standardized; +} +CGRectUnion= function(lhsRect, rhsRect) +{ + var minX = MIN((lhsRect.origin.x), (rhsRect.origin.x)), + minY = MIN((lhsRect.origin.y), (rhsRect.origin.y)), + maxX = MAX((lhsRect.origin.x + lhsRect.size.width), (rhsRect.origin.x + rhsRect.size.width)), + maxY = MAX((lhsRect.origin.y + lhsRect.size.height), (rhsRect.origin.y + rhsRect.size.height)); + return { origin: { x:minX, y:minY }, size: { width:maxX - minX, height:maxY - minY } }; +} +CGPointFromString= function(aString) +{ + var comma = aString.indexOf(','); + return { x:parseInt(aString.substr(1, comma - 1)), y:parseInt(aString.substring(comma + 1, aString.length)) }; +} +CGSizeFromString= function(aString) +{ + var comma = aString.indexOf(','); + return { width:parseInt(aString.substr(1, comma - 1)), height:parseInt(aString.substring(comma + 1, aString.length)) }; +} +CGRectFromString= function(aString) +{ + var comma = aString.indexOf(',', aString.indexOf(',') + 1); + return { origin:CGPointFromString(aString.substr(1, comma - 1)), size:CGSizeFromString(aString.substring(comma + 2, aString.length)) }; +} +CGPointFromEvent= function(anEvent) +{ + return { x:anEvent.clientX, y:anEvent.clientY }; +} +CGInsetFromString= function(aString) +{ + var numbers = aString.substr(1, aString.length - 2).split(','); + return { top:(parseFloat(numbers[0])), right:(parseFloat(numbers[1])), bottom:(parseFloat(numbers[2])), left:(parseFloat(numbers[3])) }; +} +CGInsetFromCPString = CGInsetFromString; +CPStringFromCGInset= function(anInset) +{ + return '{' + anInset.top + ", " + anInset.left + ", " + anInset.bottom + ", " + anInset.right + '}'; +} + +p;12;CGGradient.ji;9;CGColor.ji;14;CGColorSpace.jc;750; +kCGGradientDrawsBeforeStartLocation = 1 << 0; +kCGGradientDrawsAfterEndLocation = 1 << 1; +CGGradientCreateWithColorComponents= function(aColorSpace, components, locations, count) +{ + if (arguments["count"] == NULL) + var count = locations.length; + var colors = []; + while (count--) + { + var offset = count * 4; + colors[count] = CGColorCreate(aColorSpace, components.slice(offset, offset + 4)); + } + return CGGradientCreateWithColors(aColorSpace, colors, locations); +} +CGGradientCreateWithColors= function(aColorSpace, colors, locations) +{ + return { colorspace:aColorSpace, colors:colors, locations:locations }; +} +CGGradientRelease= function() +{ +} +CGGradientRetain= function(aGradient) +{ + return aGradient; +} + +p;8;CGPath.ji;12;CGGeometry.ji;19;CGAffineTransform.jc;12124; +kCGPathElementMoveToPoint = 0; +kCGPathElementAddLineToPoint = 1; +kCGPathElementAddQuadCurveToPoint = 2; +kCGPathElementAddCurveToPoint = 3; +kCGPathElementCloseSubpath = 4; +kCGPathElementAddArc = 5; +kCGPathElementAddArcToPoint = 6; +CGPathCreateMutable= function() +{ + return { count:0, start:NULL, current:NULL, elements:[] }; +} +CGPathCreateMutableCopy= function(aPath) +{ + var path = CGPathCreateMutable(); + CGPathAddPath(path, aPath); + return path; +} +CGPathCreateCopy= function(aPath) +{ + return CGPathCreateMutableCopy(aPath); +} +CGPathRelease= function(aPath) +{ +} +CGPathRetain= function(aPath) +{ + return aPath; +} +CGPathAddArc= function(aPath, aTransform, x, y, aRadius, aStartAngle, anEndAngle, isClockwise) +{ + if (aTransform && !(aTransform.a == 1 && aTransform.b == 0 && aTransform.c == 0 && aTransform.d == 1 && aTransform.tx == 0 && aTransform.ty == 0)) + { + var center = { x:x, y:y }, + end = { x:COS(anEndAngle), y:SIN(anEndAngle) }, + start = { x:COS(aStartAngle), y:SIN(aStartAngle) }; + end = { x:end.x * aTransform.a + end.y * aTransform.c + aTransform.tx, y:end.x * aTransform.b + end.y * aTransform.d + aTransform.ty }; + start = { x:start.x * aTransform.a + start.y * aTransform.c + aTransform.tx, y:start.x * aTransform.b + start.y * aTransform.d + aTransform.ty }; + center = { x:center.x * aTransform.a + center.y * aTransform.c + aTransform.tx, y:center.x * aTransform.b + center.y * aTransform.d + aTransform.ty }; + x = center.x; + y = center.y; + var oldEndAngle = anEndAngle, + oldStartAngle = aStartAngle; + anEndAngle = ATAN2(end.y - aTransform.ty, end.x - aTransform.tx); + aStartAngle = ATAN2(start.y - aTransform.ty, start.x - aTransform.tx); + if (anEndAngle == aStartAngle && oldEndAngle != oldStartAngle) + if (oldStartAngle > oldEndAngle) + anEndAngle = anEndAngle - PI2; + else + aStartAngle = aStartAngle - PI2; + aRadius = { width:aRadius, height:0 }; + aRadius = { width:aRadius.width * aTransform.a + aRadius.height * aTransform.c, height:aRadius.width * aTransform.b + aRadius.height * aTransform.d }; + aRadius = SQRT(aRadius.width * aRadius.width + aRadius.height * aRadius.height); + } + aPath.current = { x:x + aRadius * COS(anEndAngle), y:y + aRadius * SIN(anEndAngle) }; + aPath.elements[aPath.count++] = { type:kCGPathElementAddArc, x:x, y:y, radius:aRadius, startAngle:aStartAngle, endAngle:anEndAngle }; +} +CGPathAddArcToPoint= function(aPath, aTransform, x1, y1, x2, y2, aRadius) +{ +} +CGPathAddCurveToPoint= function(aPath, aTransform, cp1x, cp1y, cp2x, cp2y, x, y) +{ + var cp1 = { x:cp1x, y:cp1y }, + cp2 = { x:cp2x, y:cp2y }, + end = { x:x, y:y }; + if (aTransform) + { + cp1 = { x:cp1.x * aTransform.a + cp1.y * aTransform.c + aTransform.tx, y:cp1.x * aTransform.b + cp1.y * aTransform.d + aTransform.ty }; + cp2 = { x:cp2.x * aTransform.a + cp2.y * aTransform.c + aTransform.tx, y:cp2.x * aTransform.b + cp2.y * aTransform.d + aTransform.ty }; + end = { x:end.x * aTransform.a + end.y * aTransform.c + aTransform.tx, y:end.x * aTransform.b + end.y * aTransform.d + aTransform.ty }; + } + aPath.current = end; + aPath.elements[aPath.count++] = { type:kCGPathElementAddCurveToPoint, cp1x:cp1.x, cp1y:cp1.y, cp2x:cp2.x, cp2y:cp2.y, x:end.x, y:end.y }; +} +CGPathAddLines= function(aPath, aTransform, points, count) +{ + var i = 1; + if (arguments["count"] == NULL) + var count = points.length; + if (!aPath || count < 2) + return; + CGPathMoveToPoint(aPath, aTransform, points[0].x, points[0].y); + for (; i < count; ++i) + CGPathAddLineToPoint(aPath, aTransform, points[i].x, points[i].y); +} +CGPathAddLineToPoint= function(aPath, aTransform, x, y) +{ + var point = { x:x, y:y }; + if (aTransform != NULL) + point = { x:point.x * aTransform.a + point.y * aTransform.c + aTransform.tx, y:point.x * aTransform.b + point.y * aTransform.d + aTransform.ty }; + aPath.elements[aPath.count++] = { type: kCGPathElementAddLineToPoint, x:point.x, y:point.y }; + aPath.current = point; +} +CGPathAddPath= function(aPath, aTransform, anotherPath) +{ + for (var i = 0, count = anotherPath.count; i < count; ++i) + { + var element = anotherPath.elements[i]; + switch (element.type) + { + case kCGPathElementAddLineToPoint: CGPathAddLineToPoint(aPath, aTransform, element.x, element.y); + break; + case kCGPathElementAddCurveToPoint: CGPathAddCurveToPoint(aPath, aTransform, + element.cp1x, element.cp1y, + element.cp2x, element.cp2y, + element.x, element.y); + break; + case kCGPathElementAddArc: CGPathAddArc(aPath, aTransform, element.x, element.y, + element.radius, element.startAngle, + element.endAngle, element.isClockwise); + break; + case kCGPathElementAddQuadCurveToPoint: CGPathAddQuadCurveToPoint(aPath, aTransform, + element.cpx, element.cpy, + element.x, element.y); + break; + case kCGPathElementMoveToPoint: CGPathMoveToPoint(aPath, aTransform, element.x, element.y); + break; + case kCGPathElementCloseSubpath: CGPathCloseSubpath(aPath); + break; + } + } +} +CGPathAddQuadCurveToPoint= function(aPath, aTransform, cpx, cpy, x, y) +{ + var cp = { x:cpx, y:cpy }, + end = { x:x, y:y }; + if (aTransform) + { + cp = { x:control.x * aTransform.a + control.y * aTransform.c + aTransform.tx, y:control.x * aTransform.b + control.y * aTransform.d + aTransform.ty }; + end = { x:end.x * aTransform.a + end.y * aTransform.c + aTransform.tx, y:end.x * aTransform.b + end.y * aTransform.d + aTransform.ty }; + } + aPath.elements[aPath.count++] = { type:kCGPathElementAddQuadCurveToPoint, cpx:cp.x, cpy:cp.y, x:end.x, y:end.y } + aPath.current = end; +} +CGPathAddRect= function(aPath, aTransform, aRect) +{ + CGPathAddRects(aPath, aTransform, [aRect], 1); +} +CGPathAddRects= function(aPath, aTransform, rects, count) +{ + var i = 0; + if (arguments["count"] == NULL) + var count = rects.length; + for (; i < count; ++i) + { + var rect = rects[i]; + CGPathMoveToPoint(aPath, aTransform, (rect.origin.x), (rect.origin.y)); + CGPathAddLineToPoint(aPath, aTransform, (rect.origin.x + rect.size.width), (rect.origin.y)); + CGPathAddLineToPoint(aPath, aTransform, (rect.origin.x + rect.size.width), (rect.origin.y + rect.size.height)); + CGPathAddLineToPoint(aPath, aTransform, (rect.origin.x), (rect.origin.y + rect.size.height)); + CGPathCloseSubpath(aPath); + } +} +CGPathMoveToPoint= function(aPath, aTransform, x, y) +{ + var point = { x:x, y:y }, + count = aPath.count; + if (aTransform != NULL) + point = { x:point.x * aTransform.a + point.y * aTransform.c + aTransform.tx, y:point.x * aTransform.b + point.y * aTransform.d + aTransform.ty }; + aPath.start = point; + aPath.current = point; + var previous = aPath.elements[count - 1]; + if (count != 0 && previous.type == kCGPathElementMoveToPoint) + { + previous.x = point.x; + previous.y = point.y; + } + else + aPath.elements[aPath.count++] = { type:kCGPathElementMoveToPoint, x:point.x, y:point.y }; +} +var KAPPA = 4.0 * ((SQRT2 - 1.0) / 3.0); +CGPathWithEllipseInRect= function(aRect) +{ + var path = CGPathCreateMutable(); + if ((aRect.size.width) == (aRect.size.height)) + CGPathAddArc(path, nil, (aRect.origin.x + (aRect.size.width) / 2.0), (aRect.origin.y + (aRect.size.height) / 2.0), (aRect.size.width) / 2.0, 0.0, 2 * PI, YES); + else + { + var axis = { width:(aRect.size.width) / 2.0, height:(aRect.size.height) / 2.0 }, + center = { x:(aRect.origin.x) + axis.width, y:(aRect.origin.y) + axis.height }; + CGPathMoveToPoint(path, nil, center.x, center.y - axis.height); + CGPathAddCurveToPoint(path, nil, center.x + (KAPPA * axis.width), center.y - axis.height, center.x + axis.width, center.y - (KAPPA * axis.height), center.x + axis.width, center.y); + CGPathAddCurveToPoint(path, nil, center.x + axis.width, center.y + (KAPPA * axis.height), center.x + (KAPPA * axis.width), center.y + axis.height, center.x, center.y + axis.height); + CGPathAddCurveToPoint(path, nil, center.x - (KAPPA * axis.width), center.y + axis.height, center.x - axis.width, center.y + (KAPPA * axis.height), center.x - axis.width, center.y); + CGPathAddCurveToPoint(path, nil, center.x - axis.width, center.y - (KAPPA * axis.height), center.x - (KAPPA * axis.width), center.y - axis.height, center.x, center.y - axis.height); + } + CGPathCloseSubpath(path); + return path; +} +CGPathWithRoundedRectangleInRect= function(aRect, xRadius, yRadius , ne, se, sw, nw) +{ + var path = CGPathCreateMutable(), + xMin = (aRect.origin.x), + xMax = (aRect.origin.x + aRect.size.width), + yMin = (aRect.origin.y), + yMax = (aRect.origin.y + aRect.size.height); + CGPathMoveToPoint(path, nil, xMin + xRadius, yMin); + if (ne) + { + CGPathAddLineToPoint(path, nil, xMax - xRadius, yMin); + CGPathAddCurveToPoint(path, nil, xMax - xRadius, yMin, xMax, yMin, xMax, yMin + xRadius); + } + else + CGPathAddLineToPoint(path, nil, xMax, yMin); + if (se) + { + CGPathAddLineToPoint(path, nil, xMax, yMax - xRadius); + CGPathAddCurveToPoint(path, nil, xMax, yMax - xRadius, xMax, yMax, xMax - xRadius, yMax); + } + else + CGPathAddLineToPoint(path, nil, xMax, yMax); + if (sw) + { + CGPathAddLineToPoint(path, nil, xMin + xRadius, yMax); + CGPathAddCurveToPoint(path, nil, xMin + xRadius, yMax, xMin, yMax, xMin, yMax - xRadius); + } + else + CGPathAddLineToPoint(path, nil, xMin, yMax); + if (nw) + { + CGPathAddLineToPoint(path, nil, xMin, yMin + xRadius); + CGPathAddCurveToPoint(path, nil, xMin, yMin + xRadius, xMin, yMin, xMin + xRadius, yMin); + } else + CGPathAddLineToPoint(path, nil, xMin, yMin); + CGPathCloseSubpath(path); + return path; +} +CGPathCloseSubpath= function(aPath) +{ + var count = aPath.count; + if (count == 0 || aPath.elements[count - 1].type == kCGPathElementCloseSubpath) + return; + aPath.elements[aPath.count++] = { type:kCGPathElementCloseSubpath, points:[aPath.start] }; +} +CGPathEqualToPath= function(aPath, anotherPath) +{ + if (aPath == anotherPath) + return YES; + if (aPath.count != anotherPath.count || !(aPath.start.x == anotherPath.start.x && aPath.start.y == anotherPath.start.y) || !(aPath.current.x == anotherPath.current.x && aPath.current.y == anotherPath.current.y)) + return NO; + var i = 0, + count = aPath.count; + for (; i < count; ++i) + { + var element = aPath[i], + anotherElement = anotherPath[i]; + if (element.type != anotherElement.type) + return NO; + if ((element.type == kCGPathElementAddArc || element.type == kCGPathElementAddArcToPoint) && + element.radius != anotherElement.radius) + return NO; + var j = element.points.length; + while (j--) + if (!(element.points[j].x == anotherElement.points[j].x && element.points[j].y == anotherElement.points[j].y)) + return NO; + } + return YES; +} +CGPathGetCurrentPoint= function(aPath) +{ + return { x:aPath.current.x, y:aPath.current.y }; +} +CGPathIsEmpty= function(aPath) +{ + return !aPath || aPath.count == 0; +} + +p;9;CPAlert.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jI;22;AppKit/CPApplication.jI;17;AppKit/CPButton.jI;16;AppKit/CPColor.jI;15;AppKit/CPFont.jI;16;AppKit/CPImage.jI;20;AppKit/CPImageView.jI;16;AppKit/CPPanel.jI;20;AppKit/CPTextField.jc;7353; +CPWarningAlertStyle = 0; +CPInformationalAlertStyle = 1; +CPCriticalAlertStyle = 2; +var CPAlertWarningImage, + CPAlertInformationImage, + CPAlertErrorImage; +{var the_class = objj_allocateClassPair(CPObject, "CPAlert"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_alertPanel"), new objj_ivar("_messageLabel"), new objj_ivar("_alertImageView"), new objj_ivar("_alertStyle"), new objj_ivar("_windowTitle"), new objj_ivar("_windowStyle"), new objj_ivar("_buttonCount"), new objj_ivar("_buttons"), new objj_ivar("_delegate")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPAlert__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _buttonCount = 0; + _buttons = objj_msgSend(CPArray, "array"); + _alertStyle = CPWarningAlertStyle; + _messageLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMake(57.0, 10.0, 220.0, 80.0)); + objj_msgSend(_messageLabel, "setFont:", objj_msgSend(CPFont, "systemFontOfSize:", 12.0)); + objj_msgSend(_messageLabel, "setLineBreakMode:", CPLineBreakByWordWrapping); + objj_msgSend(_messageLabel, "setAlignment:", CPJustifiedTextAlignment); + _alertImageView = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CGRectMake(15.0, 12.0, 32.0, 32.0)); + objj_msgSend(self, "setWindowStyle:", nil); + } + return self; +} +}), new objj_method(sel_getUid("setWindowStyle:"), function $CPAlert__setWindowStyle_(self, _cmd, styleMask) +{ with(self) +{ + _windowStyle = styleMask; + _alertPanel = objj_msgSend(objj_msgSend(CPPanel, "alloc"), "initWithContentRect:styleMask:", CGRectMake(0.0, 0.0, 300.0, 130.0), styleMask ? styleMask | CPTitledWindowMask : CPTitledWindowMask); + objj_msgSend(_alertPanel, "setFloatingPanel:", YES); + objj_msgSend(_alertPanel, "center"); + objj_msgSend(_messageLabel, "setTextColor:", (styleMask == CPHUDBackgroundWindowMask) ? objj_msgSend(CPColor, "whiteColor") : objj_msgSend(CPColor, "blackColor")); + var count = objj_msgSend(_buttons, "count"); + for(var i=0; i < count; i++) + { + var button = _buttons[i]; + objj_msgSend(button, "setFrameSize:", CGSizeMake(objj_msgSend(button, "frame").size.width, (styleMask == CPHUDBackgroundWindowMask) ? 20.0 : 24.0)); + objj_msgSend(button, "setBezelStyle:", (styleMask == CPHUDBackgroundWindowMask) ? CPHUDBezelStyle : CPRoundedBezelStyle); + objj_msgSend(objj_msgSend(_alertPanel, "contentView"), "addSubview:", button); + } + objj_msgSend(objj_msgSend(_alertPanel, "contentView"), "addSubview:", _messageLabel); + objj_msgSend(objj_msgSend(_alertPanel, "contentView"), "addSubview:", _alertImageView); +} +}), new objj_method(sel_getUid("setTitle:"), function $CPAlert__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + _windowTitle = aTitle; +} +}), new objj_method(sel_getUid("title"), function $CPAlert__title(self, _cmd) +{ with(self) +{ + return _windowTitle; +} +}), new objj_method(sel_getUid("windowStyle"), function $CPAlert__windowStyle(self, _cmd) +{ with(self) +{ + return _windowStyle; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPAlert__setDelegate_(self, _cmd, delegate) +{ with(self) +{ + _delegate = delegate; +} +}), new objj_method(sel_getUid("delegate"), function $CPAlert__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("setAlertStyle:"), function $CPAlert__setAlertStyle_(self, _cmd, style) +{ with(self) +{ + _alertStyle = style; +} +}), new objj_method(sel_getUid("alertStyle"), function $CPAlert__alertStyle(self, _cmd) +{ with(self) +{ + return _alertStyle; +} +}), new objj_method(sel_getUid("setMessageText:"), function $CPAlert__setMessageText_(self, _cmd, messageText) +{ with(self) +{ + objj_msgSend(_messageLabel, "setStringValue:", messageText); +} +}), new objj_method(sel_getUid("messageText"), function $CPAlert__messageText(self, _cmd) +{ with(self) +{ + return objj_msgSend(_messageLabel, "stringValue"); +} +}), new objj_method(sel_getUid("addButtonWithTitle:"), function $CPAlert__addButtonWithTitle_(self, _cmd, title) +{ with(self) +{ + var button = objj_msgSend(objj_msgSend(CPButton, "alloc"), "initWithFrame:", CGRectMake(200.0 - (_buttonCount * 90.0), 98.0, 80.0, (_windowStyle == CPHUDBackgroundWindowMask) ? 20.0 : 24.0)); + objj_msgSend(button, "setTitle:", title); + objj_msgSend(button, "setTarget:", self); + objj_msgSend(button, "setTag:", _buttonCount); + objj_msgSend(button, "setAction:", sel_getUid("_notifyDelegate:")); + objj_msgSend(button, "setBezelStyle:", (_windowStyle == CPHUDBackgroundWindowMask) ? CPHUDBezelStyle : CPRoundRectBezelStyle); + objj_msgSend(objj_msgSend(_alertPanel, "contentView"), "addSubview:", button); + if (_buttonCount == 0) + objj_msgSend(_alertPanel, "setDefaultButton:", button); + _buttonCount++; + objj_msgSend(_buttons, "addObject:", button); +} +}), new objj_method(sel_getUid("runModal"), function $CPAlert__runModal(self, _cmd) +{ with(self) +{ + var theTitle; + switch (_alertStyle) + { + case CPWarningAlertStyle: objj_msgSend(_alertImageView, "setImage:", CPAlertWarningImage); + theTitle = "Warning"; + break; + case CPInformationalAlertStyle: objj_msgSend(_alertImageView, "setImage:", CPAlertInformationImage); + theTitle = "Information"; + break; + case CPCriticalAlertStyle: objj_msgSend(_alertImageView, "setImage:", CPAlertErrorImage); + theTitle = "Error"; + break; + } + objj_msgSend(_alertPanel, "setTitle:", _windowTitle ? _windowTitle : theTitle); + objj_msgSend(CPApp, "runModalForWindow:", _alertPanel); +} +}), new objj_method(sel_getUid("_notifyDelegate:"), function $CPAlert___notifyDelegate_(self, _cmd, button) +{ with(self) +{ + if (_delegate && objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("alertDidEnd:returnCode:"))) + objj_msgSend(_delegate, "alertDidEnd:returnCode:", self, objj_msgSend(button, "tag")); + objj_msgSend(CPApp, "abortModal"); + objj_msgSend(_alertPanel, "close"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPAlert__initialize(self, _cmd) +{ with(self) +{ + if (self != CPAlert) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(self, "class")); + CPAlertWarningImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPAlert/dialog-warning.png"), CGSizeMake(32.0, 32.0)); + CPAlertInformationImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPAlert/dialog-information.png"), CGSizeMake(32.0, 32.0)); + CPAlertErrorImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPAlert/dialog-error.png"), CGSizeMake(32.0, 32.0)); +} +})]); +} + +p;13;CPAnimation.jI;21;Foundation/CPObject.ji;23;CAMediaTimingFunction.jc;5807; +CPAnimationEaseInOut = 0; +CPAnimationEaseIn = 1; +CPAnimationEaseOut = 2; +CPAnimationLinear = 3; +ACTUAL_FRAME_RATE = 0; +{var the_class = objj_allocateClassPair(CPObject, "CPAnimation"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_lastTime"), new objj_ivar("_duration"), new objj_ivar("_animationCurve"), new objj_ivar("_timingFunction"), new objj_ivar("_frameRate"), new objj_ivar("_progress"), new objj_ivar("_delegate"), new objj_ivar("_timer")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithDuration:animationCurve:"), function $CPAnimation__initWithDuration_animationCurve_(self, _cmd, aDuration, anAnimationCurve) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _progress = 0.0; + _duration = MAX(0.0, aDuration); + _animationCurve = anAnimationCurve; + _frameRate = 60.0; + } + return self; +} +}), new objj_method(sel_getUid("setAnimationCurve:"), function $CPAnimation__setAnimationCurve_(self, _cmd, anAnimationCurve) +{ with(self) +{ + switch (_animationCurve) + { + case CPAnimationEaseInOut: timingFunctionName = kCAMediaTimingFunctionEaseInEaseOut; + break; + case CPAnimationEaseIn: timingFunctionName = kCAMediaTimingFunctionEaseIn; + break; + case CPAnimationEaseOut: timingFunctionName = kCAMediaTimingFunctionEaseOut; + break; + case CPAnimationLinear: timingFunctionName = kCAMediaTimingFunctionLinear; + break; + default: objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "Invalid value provided for animation curve"); + break; + } + _animationCurve = anAnimationCurve; + _timingFunction = objj_msgSend(CAMediaTimingFunction, "functionWithName:", timingFunctionName); +} +}), new objj_method(sel_getUid("animationCurve"), function $CPAnimation__animationCurve(self, _cmd) +{ with(self) +{ + return _animationCurve; +} +}), new objj_method(sel_getUid("setDuration:"), function $CPAnimation__setDuration_(self, _cmd, aDuration) +{ with(self) +{ + if (aDuration < 0) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "aDuration can't be negative"); + _duration = aDuration; +} +}), new objj_method(sel_getUid("duration"), function $CPAnimation__duration(self, _cmd) +{ with(self) +{ + return _duration; +} +}), new objj_method(sel_getUid("setFrameRate:"), function $CPAnimation__setFrameRate_(self, _cmd, frameRate) +{ with(self) +{ + if (frameRate < 0) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "frameRate can't be negative"); + _frameRate = frameRate; +} +}), new objj_method(sel_getUid("frameRate"), function $CPAnimation__frameRate(self, _cmd) +{ with(self) +{ + return _frameRate; +} +}), new objj_method(sel_getUid("delegate"), function $CPAnimation__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPAnimation__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; +} +}), new objj_method(sel_getUid("startAnimation"), function $CPAnimation__startAnimation(self, _cmd) +{ with(self) +{ + if (_timer || _delegate && objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("animationShouldStart")) && !objj_msgSend(_delegate, "animationShouldStart:", self)) + return; + if (_progress === 1.0) + _progress = 0.0; + ACTUAL_FRAME_RATE = 0; + _lastTime = new Date(); + _timer = objj_msgSend(CPTimer, "scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:", 0.0, self, sel_getUid("animationTimerDidFire:"), nil, YES); +} +}), new objj_method(sel_getUid("animationTimerDidFire:"), function $CPAnimation__animationTimerDidFire_(self, _cmd, aTimer) +{ with(self) +{ + var currentTime = new Date(), + progress = MIN(1.0, objj_msgSend(self, "currentProgress") + (currentTime - _lastTime) / (_duration * 1000.0)); + _lastTime = currentTime; + ++ACTUAL_FRAME_RATE; + objj_msgSend(self, "setCurrentProgress:", progress); + if (progress === 1.0) + { + objj_msgSend(_timer, "invalidate"); + _timer = nil; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("animationDidEnd:"))) + objj_msgSend(_delegate, "animationDidEnd:", self); + } +} +}), new objj_method(sel_getUid("stopAnimation"), function $CPAnimation__stopAnimation(self, _cmd) +{ with(self) +{ + if (!_timer) + return; + objj_msgSend(_timer, "invalidate"); + _timer = nil; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("animationDidStop:"))) + objj_msgSend(_delegate, "animationDidStop:", self); +} +}), new objj_method(sel_getUid("isAnimating"), function $CPAnimation__isAnimating(self, _cmd) +{ with(self) +{ + return _timer; +} +}), new objj_method(sel_getUid("setCurrentProgress:"), function $CPAnimation__setCurrentProgress_(self, _cmd, aProgress) +{ with(self) +{ + _progress = aProgress; +} +}), new objj_method(sel_getUid("currentProgress"), function $CPAnimation__currentProgress(self, _cmd) +{ with(self) +{ + return _progress; +} +}), new objj_method(sel_getUid("currentValue"), function $CPAnimation__currentValue(self, _cmd) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("animation:valueForProgress:"))) + return objj_msgSend(_delegate, "animation:valueForProgress:", self, _progress); + if (_animationCurve == CPAnimationLinear) + return _progress; + alert("IMPLEMENT ANIMATION CURVES!!!"); +} +})]); +} + +p;15;CPApplication.jI;21;Foundation/CPBundle.ji;17;CPCompatibility.ji;9;CPEvent.ji;8;CPMenu.ji;13;CPResponder.ji;22;CPDocumentController.ji;14;CPThemeBlend.jc;23887; +var CPMainCibFile = "CPMainCibFile", + CPMainCibFileHumanFriendly = "Main cib file base name"; +CPApp = nil; +CPApplicationWillFinishLaunchingNotification = "CPApplicationWillFinishLaunchingNotification"; +CPApplicationDidFinishLaunchingNotification = "CPApplicationDidFinishLaunchingNotification"; +CPRunStoppedResponse = -1000; +CPRunAbortedResponse = -1001; +CPRunContinuesResponse = -1002; +{var the_class = objj_allocateClassPair(CPResponder, "CPApplication"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_eventListeners"), new objj_ivar("_currentEvent"), new objj_ivar("_windows"), new objj_ivar("_keyWindow"), new objj_ivar("_mainWindow"), new objj_ivar("_mainMenu"), new objj_ivar("_documentController"), new objj_ivar("_currentSession"), new objj_ivar("_delegate"), new objj_ivar("_namedArgs"), new objj_ivar("_args"), new objj_ivar("_fullArgsString")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPApplication__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "init"); + if (self) + { + _eventListeners = []; + _windows = []; + objj_msgSend(_windows, "addObject:", nil); + _mainMenu = objj_msgSend(objj_msgSend(CPMenu, "alloc"), "initWithTitle:", "MainMenu"); + objj_msgSend(_mainMenu, "setAutoenablesItems:", NO); + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPApplication, "class")), + newMenuItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "New", sel_getUid("newDocument:"), "N"); + objj_msgSend(newMenuItem, "setImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPApplication/New.png"), CGSizeMake(16.0, 16.0))); + objj_msgSend(newMenuItem, "setAlternateImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPApplication/NewHighlighted.png"), CGSizeMake(16.0, 16.0))); + objj_msgSend(_mainMenu, "addItem:", newMenuItem); + var openMenuItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Open", sel_getUid("openDocument:"), "O"); + objj_msgSend(openMenuItem, "setImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPApplication/Open.png"), CGSizeMake(16.0, 16.0))); + objj_msgSend(openMenuItem, "setAlternateImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPApplication/OpenHighlighted.png"), CGSizeMake(16.0, 16.0))); + objj_msgSend(_mainMenu, "addItem:", openMenuItem); + var saveMenu = objj_msgSend(objj_msgSend(CPMenu, "alloc"), "initWithTitle:", "Save"), + saveMenuItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Save", sel_getUid("saveDocument:"), nil); + objj_msgSend(saveMenuItem, "setImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPApplication/Save.png"), CGSizeMake(16.0, 16.0))); + objj_msgSend(saveMenuItem, "setAlternateImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPApplication/SaveHighlighted.png"), CGSizeMake(16.0, 16.0))); + objj_msgSend(saveMenu, "addItem:", objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Save", sel_getUid("saveDocument:"), "S")); + objj_msgSend(saveMenu, "addItem:", objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Save As", sel_getUid("saveDocumentAs:"), nil)); + objj_msgSend(saveMenuItem, "setSubmenu:", saveMenu); + objj_msgSend(_mainMenu, "addItem:", saveMenuItem); + var editMenuItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Edit", nil, nil), + editMenu = objj_msgSend(objj_msgSend(CPMenu, "alloc"), "initWithTitle:", "Edit"), + undoMenuItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Undo", sel_getUid("undo:"), CPUndoKeyEquivalent), + redoMenuItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Redo", sel_getUid("redo:"), CPRedoKeyEquivalent); + objj_msgSend(undoMenuItem, "setKeyEquivalentModifierMask:", CPUndoKeyEquivalentModifierMask); + objj_msgSend(redoMenuItem, "setKeyEquivalentModifierMask:", CPRedoKeyEquivalentModifierMask); + objj_msgSend(editMenu, "addItem:", undoMenuItem); + objj_msgSend(editMenu, "addItem:", redoMenuItem); + objj_msgSend(editMenu, "addItem:", objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Cut", sel_getUid("cut:"), "X")), + objj_msgSend(editMenu, "addItem:", objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Copy", sel_getUid("copy:"), "C")), + objj_msgSend(editMenu, "addItem:", objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Paste", sel_getUid("paste:"), "V")); + objj_msgSend(editMenuItem, "setSubmenu:", editMenu); + objj_msgSend(editMenuItem, "setHidden:", YES); + objj_msgSend(_mainMenu, "addItem:", editMenuItem); + objj_msgSend(_mainMenu, "addItem:", objj_msgSend(CPMenuItem, "separatorItem")); + } + return self; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPApplication__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate == aDelegate) + return; + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_delegate) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPApplicationWillFinishLaunchingNotification, self); + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPApplicationDidFinishLaunchingNotification, self); + } + _delegate = aDelegate; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("applicationWillFinishLaunching:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("applicationWillFinishLaunching:"), CPApplicationWillFinishLaunchingNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("applicationDidFinishLaunching:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("applicationDidFinishLaunching:"), CPApplicationDidFinishLaunchingNotification, self); +} +}), new objj_method(sel_getUid("delegate"), function $CPApplication__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("finishLaunching"), function $CPApplication__finishLaunching(self, _cmd) +{ with(self) +{ + var bundle = objj_msgSend(CPBundle, "mainBundle"), + types = objj_msgSend(bundle, "objectForInfoDictionaryKey:", "CPBundleDocumentTypes"); + if (objj_msgSend(types, "count") > 0) + _documentController = objj_msgSend(CPDocumentController, "sharedDocumentController"); + var delegateClassName = objj_msgSend(bundle, "objectForInfoDictionaryKey:", "CPApplicationDelegateClass"); + if (delegateClassName) + { + var delegateClass = objj_getClass(delegateClassName); + if (delegateClass) + if (objj_msgSend(_documentController, "class") == delegateClass) + objj_msgSend(self, "setDelegate:", _documentController); + else + objj_msgSend(self, "setDelegate:", objj_msgSend(objj_msgSend(delegateClass, "alloc"), "init")); + } + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + objj_msgSend(defaultCenter, "postNotificationName:object:", CPApplicationWillFinishLaunchingNotification, self); + if (_documentController) + objj_msgSend(_documentController, "newDocument:", self); + objj_msgSend(defaultCenter, "postNotificationName:object:", CPApplicationDidFinishLaunchingNotification, self); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); +} +}), new objj_method(sel_getUid("run"), function $CPApplication__run(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "finishLaunching"); +} +}), new objj_method(sel_getUid("runModalForWindow:"), function $CPApplication__runModalForWindow_(self, _cmd, aWindow) +{ with(self) +{ + objj_msgSend(self, "runModalSession:", objj_msgSend(self, "beginModalSessionForWindow:", aWindow)); +} +}), new objj_method(sel_getUid("stopModalWithCode:"), function $CPApplication__stopModalWithCode_(self, _cmd, aCode) +{ with(self) +{ + if (!_currentSession) + { + return; + } + _currentSession._state = aCode; + _currentSession = _currentSession._previous; + objj_msgSend(self, "_removeRunModalLoop"); +} +}), new objj_method(sel_getUid("_removeRunModalLoop"), function $CPApplication___removeRunModalLoop(self, _cmd) +{ with(self) +{ + var count = _eventListeners.length; + while (count--) + if (_eventListeners[count]._callback === _CPRunModalLoop) + { + _eventListeners.splice(count, 1); + return; + } +} +}), new objj_method(sel_getUid("stopModal"), function $CPApplication__stopModal(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "stopModalWithCode:", CPRunStoppedResponse) +} +}), new objj_method(sel_getUid("abortModal"), function $CPApplication__abortModal(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "stopModalWithCode:", CPRunAbortedResponse); +} +}), new objj_method(sel_getUid("beginModalSessionForWindow:"), function $CPApplication__beginModalSessionForWindow_(self, _cmd, aWindow) +{ with(self) +{ + return _CPModalSessionMake(aWindow, 0); +} +}), new objj_method(sel_getUid("runModalSession:"), function $CPApplication__runModalSession_(self, _cmd, aModalSession) +{ with(self) +{ + aModalSession._previous = _currentSession; + _currentSession = aModalSession; + var theWindow = aModalSession._window; + objj_msgSend(theWindow, "center"); + objj_msgSend(theWindow, "makeKeyAndOrderFront:", self); + objj_msgSend(CPApp, "setCallback:forNextEventMatchingMask:untilDate:inMode:dequeue:", _CPRunModalLoop, CPAnyEventMask, nil, 0, NO); +} +}), new objj_method(sel_getUid("modalWindow"), function $CPApplication__modalWindow(self, _cmd) +{ with(self) +{ + if (!_currentSession) + return nil; + return _currentSession._window; +} +}), new objj_method(sel_getUid("_handleKeyEquivalent:"), function $CPApplication___handleKeyEquivalent_(self, _cmd, anEvent) +{ with(self) +{ + if (objj_msgSend(_mainMenu, "performKeyEquivalent:", anEvent)) + return YES; + return NO; +} +}), new objj_method(sel_getUid("sendEvent:"), function $CPApplication__sendEvent_(self, _cmd, anEvent) +{ with(self) +{ + if (objj_msgSend(anEvent, "type") == CPKeyDown && + objj_msgSend(anEvent, "modifierFlags") & (CPCommandKeyMask | CPControlKeyMask) && + objj_msgSend(objj_msgSend(anEvent, "characters"), "length") > 0 && + objj_msgSend(self, "_handleKeyEquivalent:", anEvent)) + return; + if (_eventListeners.length) + { + if (_eventListeners[_eventListeners.length - 1]._mask & (1 << objj_msgSend(anEvent, "type"))) + _eventListeners.pop()._callback(anEvent); + return; + } + objj_msgSend(objj_msgSend(anEvent, "window"), "sendEvent:", anEvent); +} +}), new objj_method(sel_getUid("doCommandBySelector:"), function $CPApplication__doCommandBySelector_(self, _cmd, aSelector) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", aSelector)) + objj_msgSend(_delegate, "performSelector:", aSelector); + else + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "doCommandBySelector:", aSelector); +} +}), new objj_method(sel_getUid("keyWindow"), function $CPApplication__keyWindow(self, _cmd) +{ with(self) +{ + return _keyWindow; +} +}), new objj_method(sel_getUid("mainWindow"), function $CPApplication__mainWindow(self, _cmd) +{ with(self) +{ + return _mainWindow; +} +}), new objj_method(sel_getUid("windowWithWindowNumber:"), function $CPApplication__windowWithWindowNumber_(self, _cmd, aWindowNumber) +{ with(self) +{ + return _windows[aWindowNumber]; +} +}), new objj_method(sel_getUid("windows"), function $CPApplication__windows(self, _cmd) +{ with(self) +{ + return _windows; +} +}), new objj_method(sel_getUid("mainMenu"), function $CPApplication__mainMenu(self, _cmd) +{ with(self) +{ + return _mainMenu; +} +}), new objj_method(sel_getUid("setMainMenu:"), function $CPApplication__setMainMenu_(self, _cmd, aMenu) +{ with(self) +{ + _mainMenu = aMenu; +} +}), new objj_method(sel_getUid("orderFrontColorPanel:"), function $CPApplication__orderFrontColorPanel_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPColorPanel, "sharedColorPanel"), "orderFront:", self); +} +}), new objj_method(sel_getUid("orderFrontStandardAboutPanel:"), function $CPApplication__orderFrontStandardAboutPanel_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "orderFrontStandardAboutPanelWithOptions:", nil); +} +}), new objj_method(sel_getUid("orderFrontStandardAboutPanelWithOptions:"), function $CPApplication__orderFrontStandardAboutPanelWithOptions_(self, _cmd, aDictionary) +{ with(self) +{ +} +}), new objj_method(sel_getUid("tryToPerform:with:"), function $CPApplication__tryToPerform_with_(self, _cmd, anAction, anObject) +{ with(self) +{ + if (!anAction) + return NO; + if (objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "tryToPerform:with:", anAction, anObject)) + return YES; + if(objj_msgSend(_delegate, "respondsToSelector:", anAction)) + { + objj_msgSend(_delegate, "performSelector:withObject:", anAction, anObject); + return YES; + } + return NO; +} +}), new objj_method(sel_getUid("sendAction:to:from:"), function $CPApplication__sendAction_to_from_(self, _cmd, anAction, aTarget, aSender) +{ with(self) +{ + var target = objj_msgSend(self, "targetForAction:to:from:", anAction, aTarget, aSender); + if (!target) + return NO; + objj_msgSend(target, "performSelector:withObject:", anAction, aSender); + return YES; +} +}), new objj_method(sel_getUid("targetForAction:to:from:"), function $CPApplication__targetForAction_to_from_(self, _cmd, anAction, aTarget, aSender) +{ with(self) +{ + if (!anAction) + return nil; + if (aTarget) + return aTarget; + return objj_msgSend(self, "targetForAction:", anAction); +} +}), new objj_method(sel_getUid("_targetForWindow:action:"), function $CPApplication___targetForWindow_action_(self, _cmd, aWindow, anAction) +{ with(self) +{ + var responder = objj_msgSend(aWindow, "firstResponder"), + checkWindow = YES; + while (responder) + { + if (objj_msgSend(responder, "respondsToSelector:", anAction)) + return responder; + if (responder == aWindow) + checkWindow = NO; + responder = objj_msgSend(responder, "nextResponder"); + } + if (checkWindow && objj_msgSend(aWindow, "respondsToSelector:", anAction)) + return aWindow; + var delegate = objj_msgSend(aWindow, "delegate"); + if (objj_msgSend(delegate, "respondsToSelector:", anAction)) + return delegate; + var windowController = objj_msgSend(aWindow, "windowController"); + if (objj_msgSend(windowController, "respondsToSelector:", anAction)) + return windowController; + var theDocument = objj_msgSend(windowController, "document"); + if (theDocument != delegate && objj_msgSend(theDocument, "respondsToSelector:", anAction)) + return theDocument; + return nil; +} +}), new objj_method(sel_getUid("targetForAction:"), function $CPApplication__targetForAction_(self, _cmd, anAction) +{ with(self) +{ + if (!anAction) + return nil; + var target = objj_msgSend(self, "_targetForWindow:action:", objj_msgSend(self, "keyWindow"), anAction); + if (target) + return target; + target = objj_msgSend(self, "_targetForWindow:action:", objj_msgSend(self, "mainWindow"), anAction); + if (target) + return target; + if (objj_msgSend(self, "respondsToSelector:", anAction)) + return self; + if (objj_msgSend(_delegate, "respondsToSelector:", anAction)) + return _delegate; + if (objj_msgSend(_documentController, "respondsToSelector:", anAction)) + return _documentController; + return nil; +} +}), new objj_method(sel_getUid("setCallback:forNextEventMatchingMask:untilDate:inMode:dequeue:"), function $CPApplication__setCallback_forNextEventMatchingMask_untilDate_inMode_dequeue_(self, _cmd, aCallback, aMask, anExpiration, aMode, shouldDequeue) +{ with(self) +{ + _eventListeners.push(_CPEventListenerMake(aMask, aCallback)); + if (_eventListeners.length == 3) objj_debug_print_backtrace(); +} +}), new objj_method(sel_getUid("setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:"), function $CPApplication__setTarget_selector_forNextEventMatchingMask_untilDate_inMode_dequeue_(self, _cmd, aTarget, aSelector, aMask, anExpiration, aMode, shouldDequeue) +{ with(self) +{ + _eventListeners.push(_CPEventListenerMake(aMask, function (anEvent) { objj_msgSend(aTarget, aSelector, anEvent); })); +} +}), new objj_method(sel_getUid("beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:"), function $CPApplication__beginSheet_modalForWindow_modalDelegate_didEndSelector_contextInfo_(self, _cmd, aSheet, aWindow, aModalDelegate, aDidEndSelector, aContextInfo) +{ with(self) +{ + objj_msgSend(aWindow, "_attachSheet:modalDelegate:didEndSelector:contextInfo:", aSheet, aModalDelegate, aDidEndSelector, aContextInfo); +} +}), new objj_method(sel_getUid("arguments"), function $CPApplication__arguments(self, _cmd) +{ with(self) +{ + if(_fullArgsString != window.location.hash) + objj_msgSend(self, "_reloadArguments"); + return _args; +} +}), new objj_method(sel_getUid("setArguments:"), function $CPApplication__setArguments_(self, _cmd, args) +{ with(self) +{ + if(!args || args.length == 0) + { + _args = []; + window.location.hash = "#"; + return; + } + if(objj_msgSend(args, "class") != CPArray) + args = objj_msgSend(CPArray, "arrayWithObject:", args); + _args = args; + var toEncode = objj_msgSend(_args, "copy"); + for(var i=0, count = toEncode.length; i CPOnState) + anObjectValue = CPOnState + else if (anObjectValue < CPOffState) + if (objj_msgSend(self, "allowsMixedState")) + anObjectValue = CPMixedState; + else + anObjectValue = CPOnState; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setObjectValue:", anObjectValue); + switch (objj_msgSend(self, "objectValue")) + { + case CPMixedState: objj_msgSend(self, "unsetThemeState:", CPThemeStateSelected); + objj_msgSend(self, "setThemeState:", CPButtonStateMixed); + break; + case CPOnState: objj_msgSend(self, "unsetThemeState:", CPButtonStateMixed); + objj_msgSend(self, "setThemeState:", CPThemeStateSelected); + break; + case CPOffState: objj_msgSend(self, "unsetThemeState:", CPThemeStateSelected | CPButtonStateMixed); + } +} +}), new objj_method(sel_getUid("nextState"), function $CPButton__nextState(self, _cmd) +{ with(self) +{ + if (objj_msgSend(self, "allowsMixedState")) + { + var value = objj_msgSend(self, "state"); + return value - ((value === -1) ? -2 : 1); + } + return 1 - objj_msgSend(self, "state"); +} +}), new objj_method(sel_getUid("setNextState"), function $CPButton__setNextState(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "setState:", objj_msgSend(self, "nextState")); +} +}), new objj_method(sel_getUid("setState:"), function $CPButton__setState_(self, _cmd, aState) +{ with(self) +{ + objj_msgSend(self, "setIntValue:", aState); +} +}), new objj_method(sel_getUid("state"), function $CPButton__state(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "intValue"); +} +}), new objj_method(sel_getUid("setTitle:"), function $CPButton__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + if (_title === aTitle) + return; + _title = aTitle; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("title"), function $CPButton__title(self, _cmd) +{ with(self) +{ + return _title; +} +}), new objj_method(sel_getUid("setAlternateTitle:"), function $CPButton__setAlternateTitle_(self, _cmd, aTitle) +{ with(self) +{ + if (_alternateTitle === aTitle) + return; + _alternateTitle = aTitle; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("alternateTitle"), function $CPButton__alternateTitle(self, _cmd) +{ with(self) +{ + return _alternateTitle; +} +}), new objj_method(sel_getUid("setImage:"), function $CPButton__setImage_(self, _cmd, anImage) +{ with(self) +{ + if (_image === anImage) + return; + _image = anImage; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("image"), function $CPButton__image(self, _cmd) +{ with(self) +{ + return _image; +} +}), new objj_method(sel_getUid("setAlternateImage:"), function $CPButton__setAlternateImage_(self, _cmd, anImage) +{ with(self) +{ + if (_alternateImage === anImage) + return; + _alternateImage = anImage; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("alternateImage"), function $CPButton__alternateImage(self, _cmd) +{ with(self) +{ + return _alternateImage; +} +}), new objj_method(sel_getUid("setShowsStateBy:"), function $CPButton__setShowsStateBy_(self, _cmd, aMask) +{ with(self) +{ + if (_showsStateBy === aMask) + return; + _showsStateBy = aMask; + objj_msgSend(self, "setNeedsDisplay:", YES); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("showsStateBy"), function $CPButton__showsStateBy(self, _cmd) +{ with(self) +{ + return _showsStateBy; +} +}), new objj_method(sel_getUid("setHighlightsBy:"), function $CPButton__setHighlightsBy_(self, _cmd, aMask) +{ with(self) +{ + if (_highlightsBy === aMask) + return; + _highlightsBy = aMask; + if (objj_msgSend(self, "hasThemeState:", CPThemeStateHighlighted)) + { + objj_msgSend(self, "setNeedsDisplay:", YES); + objj_msgSend(self, "setNeedsLayout"); + } +} +}), new objj_method(sel_getUid("setButtonType:"), function $CPButton__setButtonType_(self, _cmd, aButtonType) +{ with(self) +{ + switch (aButtonType) + { + case CPMomentaryLightButton: objj_msgSend(self, "setHighlightsBy:", CPChangeBackgroundCellMask); + objj_msgSend(self, "setShowsStateBy:", CPNoCellMask); + break; + case CPMomentaryPushInButton: objj_msgSend(self, "setHighlightsBy:", CPPushInCellMask | CPChangeGrayCellMask); + objj_msgSend(self, "setShowsStateBy:", CPNoCellMask); + break; + case CPMomentaryChangeButton: objj_msgSend(self, "setHighlightsBy:", CPContentsCellMask); + objj_msgSend(self, "setShowsStateBy:", CPNoCellMask); + break; + case CPPushOnPushOffButton: objj_msgSend(self, "setHighlightsBy:", CPPushInCellMask | CPChangeGrayCellMask); + objj_msgSend(self, "setShowsStateBy:", CPChangeBackgroundCellMask); + break; + case CPOnOffButton: objj_msgSend(self, "setHighlightsBy:", CPChangeBackgroundCellMask); + objj_msgSend(self, "setShowsStateBy:", CPChangeBackgroundCellMask); + break; + case CPToggleButton: objj_msgSend(self, "setHighlightsBy:", CPPushInCellMask | CPContentsCellMask); + objj_msgSend(self, "setShowsStateBy:", CPContentsCellMask); + break; + case CPSwitchButton: objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "The CPSwitchButton type is not supported in Cappuccino, use the CPCheckBox class instead."); + case CPRadioButton: objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "The CPRadioButton type is not supported in Cappuccino, use the CPRadio class instead."); + default: objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "Unknown button type."); + } + objj_msgSend(self, "setImageDimsWhenDisabled:", YES); +} +}), new objj_method(sel_getUid("setImageDimsWhenDisabled:"), function $CPButton__setImageDimsWhenDisabled_(self, _cmd, imageShouldDimWhenDisabled) +{ with(self) +{ + imageShouldDimWhenDisabled = !!imageShouldDimWhenDisabled; + if (_imageDimsWhenDisabled === imageShouldDimWhenDisabled) + return; + _imageDimsWhenDisabled = imageShouldDimWhenDisabled; + if (_imageDimsWhenDisabled) + { + objj_msgSend(self, "setNeedsDisplay:", YES); + objj_msgSend(self, "setNeedsLayout"); + } +} +}), new objj_method(sel_getUid("imageDimsWhenDisabled"), function $CPButton__imageDimsWhenDisabled(self, _cmd) +{ with(self) +{ + return _imageDimsWhenDisabled; +} +}), new objj_method(sel_getUid("startTrackingAt:"), function $CPButton__startTrackingAt_(self, _cmd, aPoint) +{ with(self) +{ + objj_msgSend(self, "highlight:", YES); + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "startTrackingAt:", aPoint); +} +}), new objj_method(sel_getUid("stopTracking:at:mouseIsUp:"), function $CPButton__stopTracking_at_mouseIsUp_(self, _cmd, lastPoint, aPoint, mouseIsUp) +{ with(self) +{ + objj_msgSend(self, "highlight:", NO); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "stopTracking:at:mouseIsUp:", lastPoint, aPoint, mouseIsUp); + if (mouseIsUp && CGRectContainsPoint(objj_msgSend(self, "bounds"), aPoint)) + objj_msgSend(self, "setNextState"); +} +}), new objj_method(sel_getUid("contentRectForBounds:"), function $CPButton__contentRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + var contentInset = objj_msgSend(self, "currentValueForThemeAttribute:", "content-inset"); + if (((contentInset).top === 0 && (contentInset).right === 0 && (contentInset).bottom === 0 && (contentInset).left === 0)) + return bounds; + bounds.origin.x += contentInset.left; + bounds.origin.y += contentInset.top; + bounds.size.width -= contentInset.left + contentInset.right; + bounds.size.height -= contentInset.top + contentInset.bottom; + return bounds; +} +}), new objj_method(sel_getUid("bezelRectForBounds:"), function $CPButton__bezelRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + if (!objj_msgSend(self, "isBordered")) + return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + var bezelInset = objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-inset"); + if (((bezelInset).top === 0 && (bezelInset).right === 0 && (bezelInset).bottom === 0 && (bezelInset).left === 0)) + return bounds; + bounds.origin.x += bezelInset.left; + bounds.origin.y += bezelInset.top; + bounds.size.width -= bezelInset.left + bezelInset.right; + bounds.size.height -= bezelInset.top + bezelInset.bottom; + return bounds; +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPButton__sizeToFit(self, _cmd) +{ with(self) +{ + var size = objj_msgSend((objj_msgSend(self, "title") || " "), "sizeWithFont:", objj_msgSend(self, "currentValueForThemeAttribute:", "font")), + contentInset = objj_msgSend(self, "currentValueForThemeAttribute:", "content-inset"), + minSize = objj_msgSend(self, "currentValueForThemeAttribute:", "min-size"), + maxSize = objj_msgSend(self, "currentValueForThemeAttribute:", "max-size"); + size.width = MAX(size.width + contentInset.left + contentInset.right, minSize.width); + size.height = MAX(size.height + contentInset.top + contentInset.bottom, minSize.height); + if (maxSize.width >= 0.0) + size.width = MIN(size.width, maxSize.width); + if (maxSize.height >= 0.0) + size.height = MIN(size.height, maxSize.height); + objj_msgSend(self, "setFrameSize:", size); +} +}), new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPButton__rectForEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "bezel-view") + return objj_msgSend(self, "bezelRectForBounds:", objj_msgSend(self, "bounds")); + else if (aName === "content-view") + return objj_msgSend(self, "contentRectForBounds:", objj_msgSend(self, "bounds")); + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "rectForEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPButton__createEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "bezel-view") + { + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + objj_msgSend(view, "setHitTests:", NO); + return view; + } + else + return objj_msgSend(objj_msgSend(_CPImageAndTextView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "createEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPButton__layoutSubviews(self, _cmd) +{ with(self) +{ + var bezelView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "bezel-view", CPWindowBelow, "content-view"); + if (bezelView) + objj_msgSend(bezelView, "setBackgroundColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-color")); + var contentView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "content-view", CPWindowAbove, "bezel-view"); + if (contentView) + { + objj_msgSend(contentView, "setText:", (objj_msgSend(self, "hasThemeState:", CPThemeStateHighlighted) && _alternateTitle) ? _alternateTitle : _title); + objj_msgSend(contentView, "setImage:", (objj_msgSend(self, "hasThemeState:", CPThemeStateHighlighted) && _alternateImage) ? _alternateImage : _image); + objj_msgSend(contentView, "setFont:", objj_msgSend(self, "currentValueForThemeAttribute:", "font")); + objj_msgSend(contentView, "setTextColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "text-color")); + objj_msgSend(contentView, "setAlignment:", objj_msgSend(self, "currentValueForThemeAttribute:", "alignment")); + objj_msgSend(contentView, "setVerticalAlignment:", objj_msgSend(self, "currentValueForThemeAttribute:", "vertical-alignment")); + objj_msgSend(contentView, "setLineBreakMode:", objj_msgSend(self, "currentValueForThemeAttribute:", "line-break-mode")); + objj_msgSend(contentView, "setTextShadowColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "text-shadow-color")); + objj_msgSend(contentView, "setTextShadowOffset:", objj_msgSend(self, "currentValueForThemeAttribute:", "text-shadow-offset")); + objj_msgSend(contentView, "setImagePosition:", objj_msgSend(self, "currentValueForThemeAttribute:", "image-position")); + objj_msgSend(contentView, "setImageScaling:", objj_msgSend(self, "currentValueForThemeAttribute:", "image-scaling")); + } +} +}), new objj_method(sel_getUid("setDefaultButton:"), function $CPButton__setDefaultButton_(self, _cmd, shouldBeDefaultButton) +{ with(self) +{ + if (shouldBeDefaultButton) + objj_msgSend(self, "setThemeState:", CPThemeStateDefault); + else + objj_msgSend(self, "unsetThemeState:", CPThemeStateDefault); +} +}), new objj_method(sel_getUid("setBordered:"), function $CPButton__setBordered_(self, _cmd, shouldBeBordered) +{ with(self) +{ + if (shouldBeBordered) + objj_msgSend(self, "setThemeState:", CPThemeStateBordered); + else + objj_msgSend(self, "unsetThemeState:", CPThemeStateBordered); +} +}), new objj_method(sel_getUid("isBordered"), function $CPButton__isBordered(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "hasThemeState:", CPThemeStateBordered); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("buttonWithTitle:"), function $CPButton__buttonWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + return objj_msgSend(self, "buttonWithTitle:theme:", aTitle, objj_msgSend(CPTheme, "defaultTheme")); +} +}), new objj_method(sel_getUid("buttonWithTitle:theme:"), function $CPButton__buttonWithTitle_theme_(self, _cmd, aTitle, aTheme) +{ with(self) +{ + var button = objj_msgSend(objj_msgSend(self, "alloc"), "init"); + objj_msgSend(button, "setTheme:", aTheme); + objj_msgSend(button, "setTitle:", aTitle); + objj_msgSend(button, "sizeToFit"); + return button; +} +}), new objj_method(sel_getUid("themeClass"), function $CPButton__themeClass(self, _cmd) +{ with(self) +{ + return "button"; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPButton__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [{ top:(0), right:(0), bottom:(0), left:(0) }, { top:(0), right:(0), bottom:(0), left:(0) }, nil], ["bezel-inset", "content-inset", "bezel-color"]); +} +})]); +} +{ +var the_class = objj_getClass("CPButton") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPButton\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("setBezelStyle:"), function $CPButton__setBezelStyle_(self, _cmd, aBezelStyle) +{ with(self) +{ +} +}), new objj_method(sel_getUid("bezelStyle"), function $CPButton__bezelStyle(self, _cmd) +{ with(self) +{ +} +})]); +} +var CPButtonImageKey = "CPButtonImageKey", + CPButtonAlternateImageKey = "CPButtonAlternateImageKey", + CPButtonTitleKey = "CPButtonTitleKey", + CPButtonAlternateTitleKey = "CPButtonAlternateTitleKey", + CPButtonIsBorderedKey = "CPButtonIsBorderedKey"; +{ +var the_class = objj_getClass("CPButton") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPButton\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPButton__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder); + if (self) + { + _controlSize = CPRegularControlSize; + objj_msgSend(self, "setImage:", objj_msgSend(aCoder, "decodeObjectForKey:", CPButtonImageKey)); + objj_msgSend(self, "setAlternateImage:", objj_msgSend(aCoder, "decodeObjectForKey:", CPButtonAlternateImageKey)); + objj_msgSend(self, "setTitle:", objj_msgSend(aCoder, "decodeObjectForKey:", CPButtonTitleKey)); + objj_msgSend(self, "setAlternateTitle:", objj_msgSend(aCoder, "decodeObjectForKey:", CPButtonAlternateTitleKey)); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPButton__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _image, CPButtonImageKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _alternateImage, CPButtonAlternateImageKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _title, CPButtonTitleKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _alternateTitle, CPButtonAlternateTitleKey); +} +})]); +} +i;12;CPCheckBox.ji;9;CPRadio.jp;13;CPButtonBar.jI;15;AppKit/CPView.jc;2246; + + + + +{var the_class = objj_allocateClassPair(CPControl, "CPButtonBar"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPButtonBar__rectForEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "bezel-view") + return objj_msgSend(self, "bounds"); + + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "rectForEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPButtonBar__createEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "bezel-view") + { + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + + objj_msgSend(view, "setHitTests:", NO); + + return view; + } + + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "createEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPButtonBar__layoutSubviews(self, _cmd) +{ with(self) +{ + var bezelView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "bezel-view", CPWindowBelow, ""); + + if (bezelView) + objj_msgSend(bezelView, "setBackgroundColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-color")); +} +}), new objj_method(sel_getUid("addSubview:"), function $CPButtonBar__addSubview_(self, _cmd, aSubview) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "addSubview:", aSubview); + + objj_msgSend(aSubview, "setAutoresizingMask:", CPViewMinXMargin); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeClass"), function $CPButtonBar__themeClass(self, _cmd) +{ with(self) +{ + return "button-bar"; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPButtonBar__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [nil], ["bezel-color"]); +} +})]); +} + +p;12;CPCheckBox.ji;10;CPButton.jc;1421; +{var the_class = objj_allocateClassPair(CPButton, "CPCheckBox"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPCheckBox__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "initWithFrame:", aFrame); + if (self) + { + objj_msgSend(self, "setHighlightsBy:", CPContentsCellMask); + objj_msgSend(self, "setShowsStateBy:", CPContentsCellMask); + objj_msgSend(self, "setImagePosition:", CPImageLeft); + objj_msgSend(self, "setAlignment:", CPLeftTextAlignment); + objj_msgSend(self, "setBordered:", YES); + } + return self; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("checkBoxWithTitle:theme:"), function $CPCheckBox__checkBoxWithTitle_theme_(self, _cmd, aTitle, aTheme) +{ with(self) +{ + return objj_msgSend(self, "buttonWithTitle:theme:", aTitle, aTheme); +} +}), new objj_method(sel_getUid("checkBoxWithTitle:"), function $CPCheckBox__checkBoxWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + return objj_msgSend(self, "buttonWithTitle:", aTitle); +} +}), new objj_method(sel_getUid("themeClass"), function $CPCheckBox__themeClass(self, _cmd) +{ with(self) +{ + return "check-box"; +} +})]); +} + +p;7;CPCib.jI;21;Foundation/CPObject.jI;28;Foundation/CPURLConnection.jI;25;Foundation/CPURLRequest.ji;20;_CPCibClassSwapper.ji;20;_CPCibCustomObject.ji;22;_CPCibCustomResource.ji;18;_CPCibCustomView.ji;23;_CPCibKeyedUnarchiver.ji;18;_CPCibObjectData.ji;22;_CPCibWindowTemplate.jc;5776; +CPCibOwner = "CPCibOwner", +CPCibTopLevelObjects = "CPCibTopLevelObjects", +CPCibReplacementClasses = "CPCibReplacementClasses"; +var CPCibObjectDataKey = "CPCibObjectDataKey"; +{var the_class = objj_allocateClassPair(CPObject, "CPCib"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_data"), new objj_ivar("_bundle"), new objj_ivar("_awakenCustomResources"), new objj_ivar("_loadDelegate")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithContentsOfURL:"), function $CPCib__initWithContentsOfURL_(self, _cmd, aURL) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _data = objj_msgSend(CPURLConnection, "sendSynchronousRequest:returningResponse:error:", objj_msgSend(CPURLRequest, "requestWithURL:", aURL), nil, nil); + _awakenCustomResources = YES; + } + return self; +} +}), new objj_method(sel_getUid("initWithContentsOfURL:loadDelegate:"), function $CPCib__initWithContentsOfURL_loadDelegate_(self, _cmd, aURL, aLoadDelegate) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + objj_msgSend(CPURLConnection, "connectionWithRequest:delegate:", objj_msgSend(CPURLRequest, "requestWithURL:", aURL), self); + _awakenCustomResources = YES; + _loadDelegate = aLoadDelegate; + } + return self; +} +}), new objj_method(sel_getUid("initWithCibNamed:bundle:loadDelegate:"), function $CPCib__initWithCibNamed_bundle_loadDelegate_(self, _cmd, aName, aBundle, aLoadDelegate) +{ with(self) +{ + if (!objj_msgSend(aName, "hasSuffix:", ".cib")) + aName = objj_msgSend(aName, "stringByAppendingString:", ".cib"); + self = objj_msgSend(self, "initWithContentsOfURL:loadDelegate:", objj_msgSend(aBundle || objj_msgSend(CPBundle, "mainBundle"), "pathForResource:", aName), aLoadDelegate); + if (self) + _bundle = aBundle; + return self; +} +}), new objj_method(sel_getUid("_setAwakenCustomResources:"), function $CPCib___setAwakenCustomResources_(self, _cmd, shouldAwakenCustomResources) +{ with(self) +{ + _awakenCustomResources = shouldAwakenCustomResources; +} +}), new objj_method(sel_getUid("_awakenCustomResources"), function $CPCib___awakenCustomResources(self, _cmd) +{ with(self) +{ + return _awakenCustomResources; +} +}), new objj_method(sel_getUid("instantiateCibWithExternalNameTable:"), function $CPCib__instantiateCibWithExternalNameTable_(self, _cmd, anExternalNameTable) +{ with(self) +{ + var bundle = _bundle, + owner = objj_msgSend(anExternalNameTable, "objectForKey:", CPCibOwner); + if (!bundle && owner) + bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(owner, "class")); + var unarchiver = objj_msgSend(objj_msgSend(_CPCibKeyedUnarchiver, "alloc"), "initForReadingWithData:bundle:awakenCustomResources:", _data, bundle, _awakenCustomResources), + replacementClasses = objj_msgSend(anExternalNameTable, "objectForKey:", CPCibReplacementClasses); + if (replacementClasses) + { + var key = nil, + keyEnumerator = objj_msgSend(replacementClasses, "keyEnumerator"); + while (key = objj_msgSend(keyEnumerator, "nextObject")) + objj_msgSend(unarchiver, "setClass:forClassName:", objj_msgSend(replacementClasses, "objectForKey:", key), key); + } + var objectData = objj_msgSend(unarchiver, "decodeObjectForKey:", CPCibObjectDataKey); + if (!objectData || !objj_msgSend(objectData, "isKindOfClass:", objj_msgSend(_CPCibObjectData, "class"))) + return NO; + var topLevelObjects = objj_msgSend(anExternalNameTable, "objectForKey:", CPCibTopLevelObjects); + objj_msgSend(objectData, "instantiateWithOwner:topLevelObjects:", owner, topLevelObjects) + objj_msgSend(objectData, "establishConnectionsWithOwner:topLevelObjects:", owner, topLevelObjects); + objj_msgSend(objectData, "awakeWithOwner:topLevelObjects:", owner, topLevelObjects); + var menu; + if ((menu = objj_msgSend(objectData, "mainMenu")) != nil) + { + objj_msgSend(CPApp, "setMainMenu:", menu); + objj_msgSend(CPMenu, "setMenuBarVisible:", YES); + } + objj_msgSend(objectData, "displayVisibleWindows"); + return YES; +} +}), new objj_method(sel_getUid("instantiateCibWithOwner:topLevelObjects:"), function $CPCib__instantiateCibWithOwner_topLevelObjects_(self, _cmd, anOwner, topLevelObjects) +{ with(self) +{ + return objj_msgSend(self, "instantiateCibWithExternalNameTable:", objj_msgSend(CPDictionary, "dictionaryWithObjectsAndKeys:", anOwner, CPCibOwner, topLevelObjects, CPCibTopLevelObjects)); +} +})]); +} +{ +var the_class = objj_getClass("CPCib") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPCib\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("connection:didReceiveData:"), function $CPCib__connection_didReceiveData_(self, _cmd, aConnection, data) +{ with(self) +{ + _data = objj_msgSend(CPData, "dataWithString:", data); +} +}), new objj_method(sel_getUid("connection:didFailWithError:"), function $CPCib__connection_didFailWithError_(self, _cmd, aConnection, anError) +{ with(self) +{ + alert("cib: connection failed."); + _loadDelegate = nil; +} +}), new objj_method(sel_getUid("connectionDidFinishLoading:"), function $CPCib__connectionDidFinishLoading_(self, _cmd, aConnection) +{ with(self) +{ + if (objj_msgSend(_loadDelegate, "respondsToSelector:", sel_getUid("cibDidFinishLoading:"))) + objj_msgSend(_loadDelegate, "cibDidFinishLoading:", self); + _loadDelegate = nil; +} +})]); +} + +p;14;CPCibLoading.jI;21;Foundation/CPBundle.jI;25;Foundation/CPDictionary.jI;21;Foundation/CPString.jc;2555; +var CPCibOwner = "CPCibOwner"; +var LoadInfoForCib = {}; +{ +var the_class = objj_getClass("CPObject") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPObject\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("awakeFromCib"), function $CPObject__awakeFromCib(self, _cmd) +{ with(self) +{ +} +})]); +} +{ +var the_class = objj_getClass("CPBundle") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPBundle\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("loadCibFile:externalNameTable:loadDelegate:"), function $CPBundle__loadCibFile_externalNameTable_loadDelegate_(self, _cmd, aFileName, aNameTable, aDelegate) +{ with(self) +{ + var cib = objj_msgSend(objj_msgSend(CPCib, "alloc"), "initWithCibNamed:bundle:loadDelegate:", aFileName, self, objj_msgSend(self, "class")); + LoadInfoForCib[objj_msgSend(cib, "hash")] = { loadDelegate:aDelegate, externalNameTable:aNameTable }; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("loadCibFile:externalNameTable:loadDelegate:"), function $CPBundle__loadCibFile_externalNameTable_loadDelegate_(self, _cmd, anAbsolutePath, aNameTable, aDelegate) +{ with(self) +{ + var cib = objj_msgSend(objj_msgSend(CPCib, "alloc"), "initWithContentsOfURL:loadDelegate:", anAbsolutePath, self); + LoadInfoForCib[objj_msgSend(cib, "hash")] = { loadDelegate:aDelegate, externalNameTable:aNameTable }; +} +}), new objj_method(sel_getUid("loadCibNamed:owner:loadDelegate:"), function $CPBundle__loadCibNamed_owner_loadDelegate_(self, _cmd, aName, anOwner, aDelegate) +{ with(self) +{ + var bundle = anOwner ? objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(anOwner, "class")) : objj_msgSend(CPBundle, "mainBundle"), + path = objj_msgSend(bundle, "pathForResource:", aName); + objj_msgSend(self, "loadCibFile:externalNameTable:loadDelegate:", path, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", anOwner, CPCibOwner), aDelegate); +} +}), new objj_method(sel_getUid("cibDidFinishLoading:"), function $CPBundle__cibDidFinishLoading_(self, _cmd, aCib) +{ with(self) +{ + var loadInfo = LoadInfoForCib[objj_msgSend(aCib, "hash")]; + delete LoadInfoForCib[objj_msgSend(aCib, "hash")]; + objj_msgSend(aCib, "instantiateCibWithExternalNameTable:", loadInfo.externalNameTable); + objj_msgSend(loadInfo.loadDelegate, "cibDidFinishLoading:", aCib); +} +})]); +} + +p;12;CPClipView.ji;8;CPView.jc;5648; +{var the_class = objj_allocateClassPair(CPView, "CPClipView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_documentView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setDocumentView:"), function $CPClipView__setDocumentView_(self, _cmd, aView) +{ with(self) +{ + if (_documentView == aView) + return; + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_documentView) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPViewFrameDidChangeNotification, _documentView); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPViewBoundsDidChangeNotification, _documentView); + objj_msgSend(_documentView, "removeFromSuperview"); + } + _documentView = aView; + if (_documentView) + { + objj_msgSend(self, "addSubview:", _documentView); + objj_msgSend(_documentView, "setPostsFrameChangedNotifications:", YES); + objj_msgSend(_documentView, "setPostsBoundsChangedNotifications:", YES); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("viewFrameChanged:"), CPViewFrameDidChangeNotification, _documentView); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("viewBoundsChanged:"), CPViewBoundsDidChangeNotification, _documentView); + } +} +}), new objj_method(sel_getUid("documentView"), function $CPClipView__documentView(self, _cmd) +{ with(self) +{ + return _documentView; +} +}), new objj_method(sel_getUid("constrainScrollPoint:"), function $CPClipView__constrainScrollPoint_(self, _cmd, aPoint) +{ with(self) +{ + if (!_documentView) + return { x:0.0, y:0.0 }; + var documentFrame = objj_msgSend(_documentView, "frame"); + aPoint.x = MAX(0.0, MIN(aPoint.x, MAX((documentFrame.size.width) - (_bounds.size.width), 0.0))); + aPoint.y = MAX(0.0, MIN(aPoint.y, MAX((documentFrame.size.height) - (_bounds.size.height), 0.0))); + return aPoint; +} +}), new objj_method(sel_getUid("setBoundsOrigin:"), function $CPClipView__setBoundsOrigin_(self, _cmd, aPoint) +{ with(self) +{ + if ((_bounds.origin.x == aPoint.x && _bounds.origin.y == aPoint.y)) + return; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setBoundsOrigin:", aPoint); + var superview = objj_msgSend(self, "superview"); + if(objj_msgSend(superview, "isKindOfClass:", objj_msgSend(CPScrollView, "class"))) + objj_msgSend(superview, "reflectScrolledClipView:", self); +} +}), new objj_method(sel_getUid("scrollToPoint:"), function $CPClipView__scrollToPoint_(self, _cmd, aPoint) +{ with(self) +{ + objj_msgSend(self, "setBoundsOrigin:", objj_msgSend(self, "constrainScrollPoint:", aPoint)); +} +}), new objj_method(sel_getUid("viewBoundsChanged:"), function $CPClipView__viewBoundsChanged_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "_constrainScrollPoint"); +} +}), new objj_method(sel_getUid("viewFrameChanged:"), function $CPClipView__viewFrameChanged_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "_constrainScrollPoint"); +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $CPClipView__resizeSubviewsWithOldSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "resizeSubviewsWithOldSize:", aSize); + objj_msgSend(self, "_constrainScrollPoint"); +} +}), new objj_method(sel_getUid("_constrainScrollPoint"), function $CPClipView___constrainScrollPoint(self, _cmd) +{ with(self) +{ + var oldScrollPoint = objj_msgSend(self, "bounds").origin; + objj_msgSend(self, "scrollToPoint:", oldScrollPoint); + if (!CGPointEqualToPoint(oldScrollPoint, objj_msgSend(self, "bounds").origin)) + return; + var superview = objj_msgSend(self, "superview"); + if (objj_msgSend(superview, "isKindOfClass:", objj_msgSend(CPScrollView, "class"))) + objj_msgSend(superview, "reflectScrolledClipView:", self); +} +}), new objj_method(sel_getUid("autoscroll:"), function $CPClipView__autoscroll_(self, _cmd, anEvent) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + eventLocation = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + if (CPRectContainsPoint(bounds, eventLocation)) + return NO; + var newRect = CGRectMakeZero(); + newRect.origin = eventLocation; + newRect.size = CPSizeMake(10, 10); + return objj_msgSend(_documentView, "scrollRectToVisible:", newRect); +} +})]); +} +var CPClipViewDocumentViewKey = "CPScrollViewDocumentView"; +{ +var the_class = objj_getClass("CPClipView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPClipView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPClipView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder)) + objj_msgSend(self, "setDocumentView:", objj_msgSend(aCoder, "decodeObjectForKey:", CPClipViewDocumentViewKey)); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPClipView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _documentView, CPClipViewDocumentViewKey); +} +})]); +} + +p;18;CPCollectionView.jI;20;Foundation/CPArray.jI;19;Foundation/CPData.jI;23;Foundation/CPIndexSet.jI;28;Foundation/CPKeyedArchiver.jI;30;Foundation/CPKeyedUnarchiver.jI;15;AppKit/CPView.jc;19001; +{var the_class = objj_allocateClassPair(CPView, "CPCollectionView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_content"), new objj_ivar("_items"), new objj_ivar("_itemData"), new objj_ivar("_itemPrototype"), new objj_ivar("_itemForDragging"), new objj_ivar("_cachedItems"), new objj_ivar("_maxNumberOfRows"), new objj_ivar("_maxNumberOfColumns"), new objj_ivar("_minItemSize"), new objj_ivar("_maxItemSize"), new objj_ivar("_tileWidth"), new objj_ivar("_isSelectable"), new objj_ivar("_allowsMultipleSelection"), new objj_ivar("_allowsEmptySelection"), new objj_ivar("_selectionIndexes"), new objj_ivar("_itemSize"), new objj_ivar("_horizontalMargin"), new objj_ivar("_verticalMargin"), new objj_ivar("_numberOfRows"), new objj_ivar("_numberOfColumns"), new objj_ivar("_delegate")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPCollectionView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _items = []; + _content = []; + _cachedItems = []; + _itemSize = CGSizeMakeZero(); + _minItemSize = CGSizeMakeZero(); + _maxItemSize = CGSizeMakeZero(); + _verticalMargin = 5.0; + _tileWidth = -1.0; + _selectionIndexes = objj_msgSend(CPIndexSet, "indexSet"); + _allowsEmptySelection = YES; + _isSelectable = YES; + } + return self; +} +}), new objj_method(sel_getUid("setItemPrototype:"), function $CPCollectionView__setItemPrototype_(self, _cmd, anItem) +{ with(self) +{ + _itemData = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", anItem); + _itemForDragging = anItem + _itemPrototype = anItem; + objj_msgSend(self, "reloadContent"); +} +}), new objj_method(sel_getUid("itemPrototype"), function $CPCollectionView__itemPrototype(self, _cmd) +{ with(self) +{ + return _itemPrototype; +} +}), new objj_method(sel_getUid("newItemForRepresentedObject:"), function $CPCollectionView__newItemForRepresentedObject_(self, _cmd, anObject) +{ with(self) +{ + var item = nil; + if (_cachedItems.length) + item = _cachedItems.pop(); + else + item = objj_msgSend(CPKeyedUnarchiver, "unarchiveObjectWithData:", _itemData); + objj_msgSend(item, "setRepresentedObject:", anObject); + objj_msgSend(objj_msgSend(item, "view"), "setFrameSize:", _itemSize); + return item; +} +}), new objj_method(sel_getUid("acceptsFirstResponder"), function $CPCollectionView__acceptsFirstResponder(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("isFirstResponder"), function $CPCollectionView__isFirstResponder(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "window"), "firstResponder") == self; +} +}), new objj_method(sel_getUid("setContent:"), function $CPCollectionView__setContent_(self, _cmd, anArray) +{ with(self) +{ + if (_content == anArray) + return; + _content = anArray; + objj_msgSend(self, "reloadContent"); +} +}), new objj_method(sel_getUid("content"), function $CPCollectionView__content(self, _cmd) +{ with(self) +{ + return _content; +} +}), new objj_method(sel_getUid("items"), function $CPCollectionView__items(self, _cmd) +{ with(self) +{ + return _items; +} +}), new objj_method(sel_getUid("setSelectable:"), function $CPCollectionView__setSelectable_(self, _cmd, isSelectable) +{ with(self) +{ + if (_isSelectable == isSelectable) + return; + _isSelectable = isSelectable; + if (!_isSelectable) + { + var index = CPNotFound; + while ((index = objj_msgSend(_selectionIndexes, "indexGreaterThanIndex:", index)) != CPNotFound) + objj_msgSend(_items[index], "setSelected:", NO); + } +} +}), new objj_method(sel_getUid("isSelected"), function $CPCollectionView__isSelected(self, _cmd) +{ with(self) +{ + return _isSelected; +} +}), new objj_method(sel_getUid("setAllowsEmptySelection:"), function $CPCollectionView__setAllowsEmptySelection_(self, _cmd, shouldAllowEmptySelection) +{ with(self) +{ + _allowsEmptySelection = shouldAllowEmptySelection; +} +}), new objj_method(sel_getUid("allowsEmptySelection"), function $CPCollectionView__allowsEmptySelection(self, _cmd) +{ with(self) +{ + return _allowsEmptySelection; +} +}), new objj_method(sel_getUid("setAllowsMultipleSelection:"), function $CPCollectionView__setAllowsMultipleSelection_(self, _cmd, shouldAllowMultipleSelection) +{ with(self) +{ + _allowsMultipleSelection = shouldAllowMultipleSelection; +} +}), new objj_method(sel_getUid("allowsMultipleSelection"), function $CPCollectionView__allowsMultipleSelection(self, _cmd) +{ with(self) +{ + return _allowsMultipleSelection; +} +}), new objj_method(sel_getUid("setSelectionIndexes:"), function $CPCollectionView__setSelectionIndexes_(self, _cmd, anIndexSet) +{ with(self) +{ + if (_selectionIndexes == anIndexSet || !_isSelectable) + return; + var index = CPNotFound; + while ((index = objj_msgSend(_selectionIndexes, "indexGreaterThanIndex:", index)) != CPNotFound) + objj_msgSend(_items[index], "setSelected:", NO); + _selectionIndexes = anIndexSet; + var index = CPNotFound; + while ((index = objj_msgSend(_selectionIndexes, "indexGreaterThanIndex:", index)) != CPNotFound) + objj_msgSend(_items[index], "setSelected:", YES); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("collectionViewDidChangeSelection:"))) + objj_msgSend(_delegate, "collectionViewDidChangeSelection:", self) +} +}), new objj_method(sel_getUid("selectionIndexes"), function $CPCollectionView__selectionIndexes(self, _cmd) +{ with(self) +{ + return _selectionIndexes; +} +}), new objj_method(sel_getUid("reloadContent"), function $CPCollectionView__reloadContent(self, _cmd) +{ with(self) +{ + var count = _items.length; + while (count--) + { + objj_msgSend(objj_msgSend(_items[count], "view"), "removeFromSuperview"); + _cachedItems.push(_items[count]); + } + _items = []; + if (!_itemData || !_content) + return; + var index = 0; + count = _content.length; + for (; index < count; ++index) + { + _items.push(objj_msgSend(self, "newItemForRepresentedObject:", _content[index])); + objj_msgSend(self, "addSubview:", objj_msgSend(_items[index], "view")); + } + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("tile"), function $CPCollectionView__tile(self, _cmd) +{ with(self) +{ + var width = CGRectGetWidth(objj_msgSend(self, "bounds")); + if (!objj_msgSend(_content, "count") || width == _tileWidth) + return; + var itemSize = CGSizeMakeCopy(_minItemSize); + _numberOfColumns = MAX(1.0, FLOOR(width / itemSize.width)); + if (_maxNumberOfColumns > 0) + _numberOfColumns = MIN(_maxNumberOfColumns, _numberOfColumns); + var remaining = width - _numberOfColumns * itemSize.width, + itemsNeedSizeUpdate = NO; + if (remaining > 0 && itemSize.width < _maxItemSize.width) + itemSize.width = MIN(_maxItemSize.width, itemSize.width + FLOOR(remaining / _numberOfColumns)); + if (_maxNumberOfColumns == 1 && itemSize.width < _maxItemSize.width && itemSize.width < width) + itemSize.width = MIN(_maxItemSize.width, width); + if (!CGSizeEqualToSize(_itemSize, itemSize)) + { + _itemSize = itemSize; + itemsNeedSizeUpdate = YES; + } + var index = 0, + count = _items.length; + if (_maxNumberOfColumns > 0 && _maxNumberOfRows > 0) + count = MIN(count, _maxNumberOfColumns * _maxNumberOfRows); + _numberOfRows = CEIL(count / _numberOfColumns); + _horizontalMargin = FLOOR((width - _numberOfColumns * itemSize.width) / (_numberOfColumns + 1)); + var x = _horizontalMargin, + y = -itemSize.height; + for (; index < count; ++index) + { + if (index % _numberOfColumns == 0) + { + x = _horizontalMargin; + y += _verticalMargin + itemSize.height; + } + var view = objj_msgSend(_items[index], "view"); + objj_msgSend(view, "setFrameOrigin:", CGPointMake(x, y)); + if (itemsNeedSizeUpdate) + objj_msgSend(view, "setFrameSize:", _itemSize); + x += itemSize.width + _horizontalMargin; + } + _tileWidth = width; + objj_msgSend(self, "setFrameSize:", CGSizeMake(width, y + itemSize.height + _verticalMargin)); + _tileWidth = -1.0; +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $CPCollectionView__resizeSubviewsWithOldSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("setMaxNumberOfRows:"), function $CPCollectionView__setMaxNumberOfRows_(self, _cmd, aMaxNumberOfRows) +{ with(self) +{ + if (_maxNumberOfRows == aMaxNumberOfRows) + return; + _maxNumberOfRows = aMaxNumberOfRows; + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("maxNumberOfRows"), function $CPCollectionView__maxNumberOfRows(self, _cmd) +{ with(self) +{ + return _maxNumberOfRows; +} +}), new objj_method(sel_getUid("setMaxNumberOfColumns:"), function $CPCollectionView__setMaxNumberOfColumns_(self, _cmd, aMaxNumberOfColumns) +{ with(self) +{ + if (_maxNumberOfColumns == aMaxNumberOfColumns) + return; + _maxNumberOfColumns = aMaxNumberOfColumns; + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("maxNumberOfColumns"), function $CPCollectionView__maxNumberOfColumns(self, _cmd) +{ with(self) +{ + return _maxNumberOfColumns; +} +}), new objj_method(sel_getUid("numberOfRows"), function $CPCollectionView__numberOfRows(self, _cmd) +{ with(self) +{ + return _numberOfRows; +} +}), new objj_method(sel_getUid("numberOfColumns"), function $CPCollectionView__numberOfColumns(self, _cmd) +{ with(self) +{ + return _numberOfColumns; +} +}), new objj_method(sel_getUid("setMinItemSize:"), function $CPCollectionView__setMinItemSize_(self, _cmd, aSize) +{ with(self) +{ + if (CGSizeEqualToSize(_minItemSize, aSize)) + return; + _minItemSize = CGSizeMakeCopy(aSize); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("minItemSize"), function $CPCollectionView__minItemSize(self, _cmd) +{ with(self) +{ + return _minItemSize; +} +}), new objj_method(sel_getUid("setMaxItemSize:"), function $CPCollectionView__setMaxItemSize_(self, _cmd, aSize) +{ with(self) +{ + if (CGSizeEqualToSize(_maxItemSize, aSize)) + return; + _maxItemSize = CGSizeMakeCopy(aSize); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("maxItemSize"), function $CPCollectionView__maxItemSize(self, _cmd) +{ with(self) +{ + return _maxItemSize; +} +}), new objj_method(sel_getUid("mouseUp:"), function $CPCollectionView__mouseUp_(self, _cmd, anEvent) +{ with(self) +{ + if (objj_msgSend(_selectionIndexes, "count") && objj_msgSend(anEvent, "clickCount") == 2 && objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("collectionView:didDoubleClickOnItemAtIndex:"))) + objj_msgSend(_delegate, "collectionView:didDoubleClickOnItemAtIndex:", self, objj_msgSend(_selectionIndexes, "firstIndex")); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPCollectionView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + var location = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil), + row = FLOOR(location.y / (_itemSize.height + _verticalMargin)), + column = FLOOR(location.x / (_itemSize.width + _horizontalMargin)), + index = row * _numberOfColumns + column; + if (index >= 0 && index < _items.length) + objj_msgSend(self, "setSelectionIndexes:", objj_msgSend(CPIndexSet, "indexSetWithIndex:", index)); + else if (_allowsEmptySelection) + objj_msgSend(self, "setSelectionIndexes:", objj_msgSend(CPIndexSet, "indexSet")); +} +}), new objj_method(sel_getUid("mouseDragged:"), function $CPCollectionView__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + if (!objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("collectionView:dragTypesForItemsAtIndexes:"))) + return; + if (!objj_msgSend(_selectionIndexes, "count")) + return; + var dragTypes = objj_msgSend(_delegate, "collectionView:dragTypesForItemsAtIndexes:", self, _selectionIndexes); + objj_msgSend(objj_msgSend(CPPasteboard, "pasteboardWithName:", CPDragPboard), "declareTypes:owner:", dragTypes, self); + var point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + objj_msgSend(_itemForDragging, "setRepresentedObject:", _content[objj_msgSend(_selectionIndexes, "firstIndex")]); + var view = objj_msgSend(_itemForDragging, "view"), + frame = objj_msgSend(view, "frame"); + objj_msgSend(view, "setFrameSize:", _itemSize); + objj_msgSend(view, "setAlphaValue:", 0.7); + objj_msgSend(self, "dragView:at:offset:event:pasteboard:source:slideBack:", view, objj_msgSend(objj_msgSend(_items[objj_msgSend(_selectionIndexes, "firstIndex")], "view"), "frame").origin, CGPointMakeZero(), anEvent, nil, self, YES); +} +}), new objj_method(sel_getUid("pasteboard:provideDataForType:"), function $CPCollectionView__pasteboard_provideDataForType_(self, _cmd, aPasteboard, aType) +{ with(self) +{ + objj_msgSend(aPasteboard, "setData:forType:", objj_msgSend(_delegate, "collectionView:dataForItemsAtIndexes:forType:", self, _selectionIndexes, aType), aType); +} +}), new objj_method(sel_getUid("setVerticalMargin:"), function $CPCollectionView__setVerticalMargin_(self, _cmd, aVerticalMargin) +{ with(self) +{ + if (_verticalMargin == aVerticalMargin) + return; + _verticalMargin = aVerticalMargin; + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("verticalMargin"), function $CPCollectionView__verticalMargin(self, _cmd) +{ with(self) +{ + return _verticalMargin; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPCollectionView__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; +} +}), new objj_method(sel_getUid("delegate"), function $CPCollectionView__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPCollectionViewItem"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_representedObject"), new objj_ivar("_view"), new objj_ivar("_isSelected")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setRepresentedObject:"), function $CPCollectionViewItem__setRepresentedObject_(self, _cmd, anObject) +{ with(self) +{ + if (_representedObject == anObject) + return; + _representedObject = anObject; + objj_msgSend(_view, "setRepresentedObject:", anObject); +} +}), new objj_method(sel_getUid("representedObject"), function $CPCollectionViewItem__representedObject(self, _cmd) +{ with(self) +{ + return _representedObject; +} +}), new objj_method(sel_getUid("setView:"), function $CPCollectionViewItem__setView_(self, _cmd, aView) +{ with(self) +{ + _view = aView; +} +}), new objj_method(sel_getUid("view"), function $CPCollectionViewItem__view(self, _cmd) +{ with(self) +{ + return _view; +} +}), new objj_method(sel_getUid("setSelected:"), function $CPCollectionViewItem__setSelected_(self, _cmd, shouldBeSelected) +{ with(self) +{ + if (_isSelected == shouldBeSelected) + return; + _isSelected = shouldBeSelected; + objj_msgSend(_view, "setSelected:", _isSelected); +} +}), new objj_method(sel_getUid("isSelected"), function $CPCollectionViewItem__isSelected(self, _cmd) +{ with(self) +{ + return _isSelected; +} +}), new objj_method(sel_getUid("collectionView"), function $CPCollectionViewItem__collectionView(self, _cmd) +{ with(self) +{ + return objj_msgSend(_view, "superview"); +} +})]); +} +var CPCollectionViewMinItemSizeKey = "CPCollectionViewMinItemSizeKey", + CPCollectionViewMaxItemSizeKey = "CPCollectionViewMaxItemSizeKey", + CPCollectionViewVerticalMarginKey = "CPCollectionViewVerticalMarginKey"; +{ +var the_class = objj_getClass("CPCollectionView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPCollectionView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPCollectionView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder); + if (self) + { + _items = []; + _content = []; + _cachedItems = []; + _itemSize = CGSizeMakeZero(); + _minItemSize = objj_msgSend(aCoder, "decodeSizeForKey:", CPCollectionViewMinItemSizeKey); + _maxItemSize = objj_msgSend(aCoder, "decodeSizeForKey:", CPCollectionViewMaxItemSizeKey); + _verticalMargin = objj_msgSend(aCoder, "decodeSizeForKey:", CPCollectionViewVerticalMarginKey); + _tileWidth = -1.0; + _selectionIndexes = objj_msgSend(CPIndexSet, "indexSet"); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPCollectionView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeSize:forKey:", _minItemSize, CPCollectionViewMinItemSizeKey); + objj_msgSend(aCoder, "encodeSize:forKey:", _maxItemSize, CPCollectionViewMaxItemSizeKey); + objj_msgSend(aCoder, "encodeSize:forKey:", _verticalMargin, CPCollectionViewVerticalMarginKey); +} +})]); +} +var CPCollectionViewItemViewKey = "CPCollectionViewItemViewKey"; +{ +var the_class = objj_getClass("CPCollectionViewItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPCollectionViewItem\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("copy"), function $CPCollectionViewItem__copy(self, _cmd) +{ with(self) +{ +} +})]); +} +var CPCollectionViewItemViewKey = "CPCollectionViewItemViewKey"; +{ +var the_class = objj_getClass("CPCollectionViewItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPCollectionViewItem\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPCollectionViewItem__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _view = objj_msgSend(aCoder, "decodeObjectForKey:", CPCollectionViewItemViewKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPCollectionViewItem__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _view, CPCollectionViewItemViewKey); +} +})]); +} + +p;9;CPColor.jI;21;Foundation/CPObject.ji;9;CGColor.ji;17;CPCompatibility.ji;9;CPImage.jc;19669; +var _redComponent = 0, + _greenComponent = 1, + _blueComponent = 2, + _alphaCompnent = 3; +var _hueComponent = 0, + _saturationComponent = 1, + _brightnessComponent = 2; +var cachedBlackColor, + cachedRedColor, + cachedGreenColor, + cachedBlueColor, + cachedYellowColor, + cachedGrayColor, + cachedLightGrayColor, + cachedDarkGrayColor, + cachedWhiteColor, + cachedShadowColor, + cachedClearColor; +{var the_class = objj_allocateClassPair(CPObject, "CPColor"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_components"), new objj_ivar("_patternImage"), new objj_ivar("_cssString")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("_initWithCSSString:"), function $CPColor___initWithCSSString_(self, _cmd, aString) +{ with(self) +{ + if(aString.indexOf("rgb") == CPNotFound) + return nil; + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + var startingIndex = aString.indexOf("("); + var parts = aString.substring(startingIndex+1).split(','); + _components = [ + parseInt(parts[0], 10) / 255.0, + parseInt(parts[1], 10) / 255.0, + parseInt(parts[2], 10) / 255.0, + parts[3] ? parseInt(parts[3], 10) / 255.0 : 1.0 + ] + _cssString = aString; + return self; +} +}), new objj_method(sel_getUid("_initWithRGBA:"), function $CPColor___initWithRGBA_(self, _cmd, components) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _components = components; + if (!CPFeatureIsCompatible(CPCSSRGBAFeature) && _components[3] != 1.0 && window.Base64 && window.CRC32) + { + var bytes = [0x89,0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x8,0x3,0x0,0x0,0x0,0x28,0xcb,0x34,0xbb,0x0,0x0,0x3,0x0,0x50,0x4c,0x54,0x45,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x17,0x89,0x99,0x55,0x0,0x0,0x0,0x1,0x74,0x52,0x4e,0x53,0x0,0x40,0xe6,0xd8,0x66,0x0,0x0,0x0,0x10,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0x60,0x0,0x0,0x0,0x0,0xff,0xff,0x3,0x0,0x0,0x2,0x0,0x1,0x24,0x7f,0x24,0xf1,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,0xff]; + var r_off = 41; + var g_off = 42; + var b_off = 43; + var a_off = 821; + var plte_crc_off = 809; + var trns_crc_off = 822; + var plte_type_off = 37; + var trns_type_off = 817; + bytes[r_off] = Math.round(_components[0]*255); + bytes[g_off] = Math.round(_components[1]*255); + bytes[b_off] = Math.round(_components[2]*255); + bytes[a_off] = Math.round(_components[3]*255); + var new_plte_crc = integerToBytes(CRC32.getCRC(bytes, plte_type_off, 4+768), 4); + var new_trns_crc = integerToBytes(CRC32.getCRC(bytes, trns_type_off, 4+1), 4); + for (var i = 0; i < 4; i++) + { + bytes[plte_crc_off+i] = new_plte_crc[i]; + bytes[trns_crc_off+i] = new_trns_crc[i]; + } + var base64image = Base64.encode(bytes); + _cssString = "url(\"data:image/png;base64," + base64image + "\")"; + } + else + { + var hasAlpha = CPFeatureIsCompatible(CPCSSRGBAFeature) && _components[3] != 1.0; + _cssString = (hasAlpha ? "rgba(" : "rgb(") + + parseInt(_components[0] * 255.0) + ", " + + parseInt(_components[1] * 255.0) + ", " + + parseInt(_components[2] * 255.0) + + (hasAlpha ? (", " + _components[3]) : "") + ")"; + } + } + return self; +} +}), new objj_method(sel_getUid("_initWithPatternImage:"), function $CPColor___initWithPatternImage_(self, _cmd, anImage) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _patternImage = anImage; + _cssString = "url(\"" + objj_msgSend(_patternImage, "filename") + "\")"; + } + return self; +} +}), new objj_method(sel_getUid("patternImage"), function $CPColor__patternImage(self, _cmd) +{ with(self) +{ + return _patternImage; +} +}), new objj_method(sel_getUid("alphaComponent"), function $CPColor__alphaComponent(self, _cmd) +{ with(self) +{ + return _components[3]; +} +}), new objj_method(sel_getUid("blueComponent"), function $CPColor__blueComponent(self, _cmd) +{ with(self) +{ + return _components[2]; +} +}), new objj_method(sel_getUid("greenComponent"), function $CPColor__greenComponent(self, _cmd) +{ with(self) +{ + return _components[1]; +} +}), new objj_method(sel_getUid("redComponent"), function $CPColor__redComponent(self, _cmd) +{ with(self) +{ + return _components[0]; +} +}), new objj_method(sel_getUid("components"), function $CPColor__components(self, _cmd) +{ with(self) +{ + return _components; +} +}), new objj_method(sel_getUid("colorWithAlphaComponent:"), function $CPColor__colorWithAlphaComponent_(self, _cmd, anAlphaComponent) +{ with(self) +{ + var components = _components.slice(); + components[components.length - 1] = anAlphaComponent; + return objj_msgSend(objj_msgSend(objj_msgSend(self, "class"), "alloc"), "_initWithRGBA:", components); +} +}), new objj_method(sel_getUid("hsbComponents"), function $CPColor__hsbComponents(self, _cmd) +{ with(self) +{ + var red = ROUND(_components[_redComponent] * 255.0), + green = ROUND(_components[_greenComponent] * 255.0), + blue = ROUND(_components[_blueComponent] * 255.0); + var max = MAX(red, green, blue), + min = MIN(red, green, blue), + delta = max - min; + var brightness = max / 255.0, + saturation = (max != 0) ? delta / max : 0; + var hue; + if(saturation == 0) + hue = 0; + else + { + var rr = (max - red) / delta; + var gr = (max - green) / delta; + var br = (max - blue) / delta; + if (red == max) + hue = br - gr; + else if (green == max) + hue = 2 + rr - br; + else + hue = 4 + gr - rr; + hue /= 6; + if (hue < 0) + hue++; + } + return [ + ROUND(hue * 360.0), + ROUND(saturation * 100.0), + ROUND(brightness * 100.0) + ]; +} +}), new objj_method(sel_getUid("cssString"), function $CPColor__cssString(self, _cmd) +{ with(self) +{ + return _cssString; +} +}), new objj_method(sel_getUid("hexString"), function $CPColor__hexString(self, _cmd) +{ with(self) +{ + return rgbToHex(objj_msgSend(self, "redComponent"), objj_msgSend(self, "greenComponent"), objj_msgSend(self, "blueComponent")) +} +}), new objj_method(sel_getUid("isEqual:"), function $CPColor__isEqual_(self, _cmd, aColor) +{ with(self) +{ + if (!aColor) + return NO; + if (aColor === self) + return YES; + return objj_msgSend(aColor, "isKindOfClass:", CPColor) && objj_msgSend(aColor, "cssString") === objj_msgSend(self, "cssString"); +} +}), new objj_method(sel_getUid("description"), function $CPColor__description(self, _cmd) +{ with(self) +{ + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "description")+" "+objj_msgSend(self, "cssString"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("colorWithRed:green:blue:alpha:"), function $CPColor__colorWithRed_green_blue_alpha_(self, _cmd, red, green, blue, alpha) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [red, green, blue, alpha]); +} +}), new objj_method(sel_getUid("colorWithCalibratedRed:green:blue:alpha:"), function $CPColor__colorWithCalibratedRed_green_blue_alpha_(self, _cmd, red, green, blue, alpha) +{ with(self) +{ + return objj_msgSend(self, "colorWithRed:green:blue:alpha:", red, green, blue, alpha); +} +}), new objj_method(sel_getUid("colorWithWhite:alpha:"), function $CPColor__colorWithWhite_alpha_(self, _cmd, white, alpha) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [white, white, white, alpha]); +} +}), new objj_method(sel_getUid("colorWithCalibratedWhite:alpha:"), function $CPColor__colorWithCalibratedWhite_alpha_(self, _cmd, white, alpha) +{ with(self) +{ + return objj_msgSend(self, "colorWithWhite:alpha:", white, alpha); +} +}), new objj_method(sel_getUid("colorWithHue:saturation:brightness:"), function $CPColor__colorWithHue_saturation_brightness_(self, _cmd, hue, saturation, brightness) +{ with(self) +{ + return objj_msgSend(self, "colorWithHue:saturation:brightness:alpha:", hue, saturation, brightness, 1.0); +} +}), new objj_method(sel_getUid("colorWithHue:saturation:brightness:alpha:"), function $CPColor__colorWithHue_saturation_brightness_alpha_(self, _cmd, hue, saturation, brightness, alpha) +{ with(self) +{ + if(saturation === 0.0) + return objj_msgSend(CPColor, "colorWithCalibratedWhite:alpha:", brightness / 100.0, alpha); + var f = hue % 60, + p = (brightness * (100 - saturation)) / 10000, + q = (brightness * (6000 - saturation * f)) / 600000, + t = (brightness * (6000 - saturation * (60 -f))) / 600000, + b = brightness / 100.0; + switch(FLOOR(hue / 60)) + { + case 0: return objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", b, t, p, alpha); + case 1: return objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", q, b, p, alpha); + case 2: return objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", p, b, t, alpha); + case 3: return objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", p, q, b, alpha); + case 4: return objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", t, p, b, alpha); + case 5: return objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", b, p, q, alpha); + } +} +}), new objj_method(sel_getUid("colorWithHexString:"), function $CPColor__colorWithHexString_(self, _cmd, hex) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", hexToRGB(hex)); +} +}), new objj_method(sel_getUid("blackColor"), function $CPColor__blackColor(self, _cmd) +{ with(self) +{ + if (!cachedBlackColor) + cachedBlackColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.0, 0.0, 0.0, 1.0]); + return cachedBlackColor; +} +}), new objj_method(sel_getUid("blueColor"), function $CPColor__blueColor(self, _cmd) +{ with(self) +{ + if (!cachedBlueColor) + cachedBlueColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.0, 0.0, 1.0, 1.0]); + return cachedBlueColor; +} +}), new objj_method(sel_getUid("darkGrayColor"), function $CPColor__darkGrayColor(self, _cmd) +{ with(self) +{ + if (!cachedDarkGrayColor) + cachedDarkGrayColor = objj_msgSend(CPColor, "colorWithCalibratedWhite:alpha:", 1.0 / 3.0, 1.0); + return cachedDarkGrayColor; +} +}), new objj_method(sel_getUid("grayColor"), function $CPColor__grayColor(self, _cmd) +{ with(self) +{ + if (!cachedGrayColor) + cachedGrayColor = objj_msgSend(CPColor, "colorWithCalibratedWhite:alpha:", 0.5, 1.0); + return cachedGrayColor; +} +}), new objj_method(sel_getUid("greenColor"), function $CPColor__greenColor(self, _cmd) +{ with(self) +{ + if (!cachedGreenColor) + cachedGreenColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.0, 1.0, 0.0, 1.0]); + return cachedGreenColor; +} +}), new objj_method(sel_getUid("lightGrayColor"), function $CPColor__lightGrayColor(self, _cmd) +{ with(self) +{ + if (!cachedLightGrayColor) + cachedLightGrayColor = objj_msgSend(CPColor, "colorWithCalibratedWhite:alpha:", 2.0 / 3.0, 1.0); + return cachedLightGrayColor; +} +}), new objj_method(sel_getUid("redColor"), function $CPColor__redColor(self, _cmd) +{ with(self) +{ + if (!cachedRedColor) + cachedRedColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [1.0, 0.0, 0.0, 1.0]); + return cachedRedColor; +} +}), new objj_method(sel_getUid("whiteColor"), function $CPColor__whiteColor(self, _cmd) +{ with(self) +{ + if (!cachedWhiteColor) + cachedWhiteColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [1.0, 1.0, 1.0, 1.0]); + return cachedWhiteColor; +} +}), new objj_method(sel_getUid("yellowColor"), function $CPColor__yellowColor(self, _cmd) +{ with(self) +{ + if (!cachedYellowColor) + cachedYellowColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [1.0, 1.0, 0.0, 1.0]); + return cachedYellowColor; +} +}), new objj_method(sel_getUid("shadowColor"), function $CPColor__shadowColor(self, _cmd) +{ with(self) +{ + if (!cachedShadowColor) + cachedShadowColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.0, 0.0, 0.0, 1.0 / 3.0]); + return cachedShadowColor; +} +}), new objj_method(sel_getUid("clearColor"), function $CPColor__clearColor(self, _cmd) +{ with(self) +{ + if (!cachedClearColor) + cachedClearColor = objj_msgSend(self, "colorWithCalibratedWhite:alpha:", 0.0, 0.0); + return cachedClearColor; +} +}), new objj_method(sel_getUid("colorWithPatternImage:"), function $CPColor__colorWithPatternImage_(self, _cmd, anImage) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithPatternImage:", anImage); +} +}), new objj_method(sel_getUid("colorWithCSSString:"), function $CPColor__colorWithCSSString_(self, _cmd, aString) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithCSSString:", aString); +} +})]); +} +{ +var the_class = objj_getClass("CPColor") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPColor\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("set"), function $CPColor__set(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "setFill"); + objj_msgSend(self, "setStroke"); +} +}), new objj_method(sel_getUid("setFill"), function $CPColor__setFill(self, _cmd) +{ with(self) +{ + var ctx = objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"); + CGContextSetFillColor(ctx, self); +} +}), new objj_method(sel_getUid("setStroke"), function $CPColor__setStroke(self, _cmd) +{ with(self) +{ + var ctx = objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"); + CGContextSetStrokeColor(ctx, self); +} +})]); +} +var CPColorComponentsKey = "CPColorComponentsKey", + CPColorPatternImageKey = "CPColorPatternImageKey"; +{ +var the_class = objj_getClass("CPColor") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPColor\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPColor__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (objj_msgSend(aCoder, "containsValueForKey:", CPColorPatternImageKey)) + return objj_msgSend(self, "_initWithPatternImage:", objj_msgSend(aCoder, "decodeObjectForKey:", CPColorPatternImageKey)); + return objj_msgSend(self, "_initWithRGBA:", objj_msgSend(aCoder, "decodeObjectForKey:", CPColorComponentsKey)); +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPColor__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (_patternImage) + objj_msgSend(aCoder, "encodeObject:forKey:", _patternImage, CPColorPatternImageKey); + else + objj_msgSend(aCoder, "encodeObject:forKey:", _components, CPColorComponentsKey); +} +})]); +} +var hexCharacters = "0123456789ABCDEF"; +hexToRGB= function(hex) +{ + if ( hex.length == 3 ) + hex = hex.charAt(0) + hex.charAt(0) + hex.charAt(1) + hex.charAt(1) + hex.charAt(2) + hex.charAt(2); + if(hex.length != 6) + return null; + hex = hex.toUpperCase(); + for(var i=0; i= 0; i--) { + bytes[i] = integer & 255; + integer = integer >> 8 + } + return bytes; +} +rgbToHex= function(r,g,b) { + return byteToHex(r) + byteToHex(g) + byteToHex(b); +} +byteToHex= function(n) { + if (!n || isNaN(n)) return "00"; + n = ROUND(MIN(255,MAX(0,256*n))); + return hexCharacters.charAt((n - n % 16) / 16) + + hexCharacters.charAt(n % 16); +} + +p;14;CPColorPanel.ji;10;CPButton.ji;10;CPCookie.ji;9;CPPanel.ji;8;CPView.jc;21833; +CPColorPanelColorDidChangeNotification = "CPColorPanelColorDidChangeNotification"; +var PREVIEW_HEIGHT = 20.0, + TOOLBAR_HEIGHT = 32.0, + SWATCH_HEIGHT = 14.0, + ICON_WIDTH = 32.0, + ICON_PADDING = 12.0; +var SharedColorPanel = nil, + ColorPickerClasses = []; +CPWheelColorPickerMode = 1; +CPSliderColorPickerMode = 2; +CPColorPickerViewWidth = 265, +CPColorPickerViewHeight = 370; +{var the_class = objj_allocateClassPair(CPPanel, "CPColorPanel"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_toolbar"), new objj_ivar("_swatchView"), new objj_ivar("_previewView"), new objj_ivar("_opacitySlider"), new objj_ivar("_colorPickers"), new objj_ivar("_currentView"), new objj_ivar("_activePicker"), new objj_ivar("_color"), new objj_ivar("_target"), new objj_ivar("_action"), new objj_ivar("_mode")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPColorPanel__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPPanel") }, "initWithContentRect:styleMask:", CGRectMake(500.0, 50.0, 219.0, 370.0), (CPTitledWindowMask | CPClosableWindowMask | CPResizableWindowMask)); + if (self) + { + objj_msgSend(objj_msgSend(self, "contentView"), "setBackgroundColor:", objj_msgSend(CPColor, "colorWithWhite:alpha:", 0.95, 1.0)); + objj_msgSend(self, "setTitle:", "Color Panel"); + objj_msgSend(self, "setLevel:", CPFloatingWindowLevel); + objj_msgSend(self, "setFloatingPanel:", YES); + objj_msgSend(self, "setBecomesKeyOnlyIfNeeded:", YES); + objj_msgSend(self, "setMinSize:", CGSizeMake(219.0, 342.0)); + objj_msgSend(self, "setMaxSize:", CGSizeMake(323.0, 537.0)); + } + return self; +} +}), new objj_method(sel_getUid("setColor:"), function $CPColorPanel__setColor_(self, _cmd, aColor) +{ with(self) +{ + _color = aColor; + objj_msgSend(_previewView, "setBackgroundColor:", _color); + objj_msgSend(CPApp, "sendAction:to:from:", sel_getUid("changeColor:"), nil, self); + if (_target && _action) + objj_msgSend(CPApp, "sendAction:to:from:", _action, _target, self); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPColorPanelColorDidChangeNotification, self); + objj_msgSend(_activePicker, "setColor:", _color); + objj_msgSend(_opacitySlider, "setFloatValue:", objj_msgSend(_color, "alphaComponent")); +} +}), new objj_method(sel_getUid("setColor:updatePicker:"), function $CPColorPanel__setColor_updatePicker_(self, _cmd, aColor, bool) +{ with(self) +{ + objj_msgSend(self, "setColor:", aColor); + if (bool) + objj_msgSend(_activePicker, "setColor:", _color); +} +}), new objj_method(sel_getUid("color"), function $CPColorPanel__color(self, _cmd) +{ with(self) +{ + return _color; +} +}), new objj_method(sel_getUid("opacity"), function $CPColorPanel__opacity(self, _cmd) +{ with(self) +{ + return objj_msgSend(_opacitySlider, "floatValue"); +} +}), new objj_method(sel_getUid("setTarget:"), function $CPColorPanel__setTarget_(self, _cmd, aTarget) +{ with(self) +{ + _target = aTarget; +} +}), new objj_method(sel_getUid("target"), function $CPColorPanel__target(self, _cmd) +{ with(self) +{ + return _target; +} +}), new objj_method(sel_getUid("setAction:"), function $CPColorPanel__setAction_(self, _cmd, anAction) +{ with(self) +{ + _action = anAction; +} +}), new objj_method(sel_getUid("action"), function $CPColorPanel__action(self, _cmd) +{ with(self) +{ + return _action; +} +}), new objj_method(sel_getUid("setMode:"), function $CPColorPanel__setMode_(self, _cmd, mode) +{ with(self) +{ + _mode = mode; +} +}), new objj_method(sel_getUid("_setPicker:"), function $CPColorPanel___setPicker_(self, _cmd, sender) +{ with(self) +{ + var picker = _colorPickers[objj_msgSend(sender, "tag")], + view = objj_msgSend(picker, "provideNewView:", NO); + if (!view) + view = objj_msgSend(picker, "provideNewView:", YES); + if (view == _currentView) + return; + if (_currentView) + objj_msgSend(view, "setFrame:", objj_msgSend(_currentView, "frame")); + else + { + var height = (TOOLBAR_HEIGHT+10+PREVIEW_HEIGHT+5+SWATCH_HEIGHT+32), + bounds = objj_msgSend(objj_msgSend(self, "contentView"), "bounds"); + objj_msgSend(view, "setFrameSize:", CPSizeMake(bounds.size.width - 10, bounds.size.height - height)); + objj_msgSend(view, "setFrameOrigin:", CPPointMake(5, height)); + } + objj_msgSend(_currentView, "removeFromSuperview"); + objj_msgSend(objj_msgSend(self, "contentView"), "addSubview:", view); + _currentView = view; + _activePicker = picker; + objj_msgSend(picker, "setColor:", objj_msgSend(self, "color")); +} +}), new objj_method(sel_getUid("mode"), function $CPColorPanel__mode(self, _cmd) +{ with(self) +{ + return _mode; +} +}), new objj_method(sel_getUid("orderFront:"), function $CPColorPanel__orderFront_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "_loadContentsIfNecessary"); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPPanel") }, "orderFront:", aSender); +} +}), new objj_method(sel_getUid("_loadContentsIfNecessary"), function $CPColorPanel___loadContentsIfNecessary(self, _cmd) +{ with(self) +{ + if (_toolbar) + return; + if (!_color) + _color = objj_msgSend(CPColor, "whiteColor"); + _colorPickers = []; + var count = objj_msgSend(ColorPickerClasses, "count"); + for (var i=0; i objj_msgSend(self, "bounds").size.width - 1 || point.x < 1) + return NO; + objj_msgSend(_colorPanel, "setColor:updatePicker:", objj_msgSend(self, "colorAtIndex:", FLOOR(point.x / 13)), YES); +} +}), new objj_method(sel_getUid("mouseDragged:"), function $_CPColorPanelSwatches__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + var point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + if(point.x > objj_msgSend(self, "bounds").size.width - 1 || point.x < 1) + return NO; + objj_msgSend(objj_msgSend(CPPasteboard, "pasteboardWithName:", CPDragPboard), "declareTypes:owner:", objj_msgSend(CPArray, "arrayWithObject:", CPColorDragType), self); + var swatch = _swatches[FLOOR(point.x / 13)]; + _dragColor = objj_msgSend(objj_msgSend(swatch, "subviews")[0], "backgroundColor"); + var bounds = CPRectCreateCopy(objj_msgSend(swatch, "bounds")); + var dragView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", bounds); + dragFillView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectInset(bounds, 1.0, 1.0)); + objj_msgSend(dragView, "setBackgroundColor:", objj_msgSend(CPColor, "blackColor")); + objj_msgSend(dragFillView, "setBackgroundColor:", _dragColor); + objj_msgSend(dragView, "addSubview:", dragFillView); + objj_msgSend(self, "dragView:at:offset:event:pasteboard:source:slideBack:", dragView, CPPointMake(point.x - bounds.size.width / 2.0, point.y - bounds.size.height / 2.0), CPPointMake(0.0, 0.0), anEvent, nil, self, YES); +} +}), new objj_method(sel_getUid("pasteboard:provideDataForType:"), function $_CPColorPanelSwatches__pasteboard_provideDataForType_(self, _cmd, aPasteboard, aType) +{ with(self) +{ + if(aType == CPColorDragType) + objj_msgSend(aPasteboard, "setData:forType:", _dragColor, aType); +} +}), new objj_method(sel_getUid("performDragOperation:"), function $_CPColorPanelSwatches__performDragOperation_(self, _cmd, aSender) +{ with(self) +{ + var location = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(aSender, "draggingLocation"), nil), + pasteboard = objj_msgSend(aSender, "draggingPasteboard"), + swatch = nil; + if(!objj_msgSend(pasteboard, "availableTypeFromArray:", [CPColorDragType]) || location.x > objj_msgSend(self, "bounds").size.width - 1 || location.x < 1) + return NO; + objj_msgSend(self, "setColor:atIndex:", objj_msgSend(pasteboard, "dataForType:", CPColorDragType), FLOOR(location.x / 13)); +} +})]); +} +{var the_class = objj_allocateClassPair(CPView, "_CPColorPanelPreview"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_colorPanel")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $_CPColorPanelPreview__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + objj_msgSend(self, "registerForDraggedTypes:", objj_msgSend(CPArray, "arrayWithObjects:", CPColorDragType)); + return self; +} +}), new objj_method(sel_getUid("setColorPanel:"), function $_CPColorPanelPreview__setColorPanel_(self, _cmd, aPanel) +{ with(self) +{ + _colorPanel = aPanel; +} +}), new objj_method(sel_getUid("colorPanel"), function $_CPColorPanelPreview__colorPanel(self, _cmd) +{ with(self) +{ + return _colorPanel; +} +}), new objj_method(sel_getUid("performDragOperation:"), function $_CPColorPanelPreview__performDragOperation_(self, _cmd, aSender) +{ with(self) +{ + var pasteboard = objj_msgSend(aSender, "draggingPasteboard"); + if(!objj_msgSend(pasteboard, "availableTypeFromArray:", [CPColorDragType])) + return NO; + var color = objj_msgSend(pasteboard, "dataForType:", CPColorDragType); + objj_msgSend(_colorPanel, "setColor:updatePicker:", color, YES); +} +}), new objj_method(sel_getUid("isOpaque"), function $_CPColorPanelPreview__isOpaque(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("mouseDragged:"), function $_CPColorPanelPreview__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + var point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + objj_msgSend(objj_msgSend(CPPasteboard, "pasteboardWithName:", CPDragPboard), "declareTypes:owner:", objj_msgSend(CPArray, "arrayWithObject:", CPColorDragType), self); + var bounds = CPRectMake(0, 0, 15, 15); + var dragView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", bounds); + dragFillView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectInset(bounds, 1.0, 1.0)); + objj_msgSend(dragView, "setBackgroundColor:", objj_msgSend(CPColor, "blackColor")); + objj_msgSend(dragFillView, "setBackgroundColor:", objj_msgSend(self, "backgroundColor")); + objj_msgSend(dragView, "addSubview:", dragFillView); + objj_msgSend(self, "dragView:at:offset:event:pasteboard:source:slideBack:", dragView, CPPointMake(point.x - bounds.size.width / 2.0, point.y - bounds.size.height / 2.0), CPPointMake(0.0, 0.0), anEvent, nil, self, YES); +} +}), new objj_method(sel_getUid("pasteboard:provideDataForType:"), function $_CPColorPanelPreview__pasteboard_provideDataForType_(self, _cmd, aPasteboard, aType) +{ with(self) +{ + if(aType == CPColorDragType) + objj_msgSend(aPasteboard, "setData:forType:", objj_msgSend(self, "backgroundColor"), aType); +} +})]); +} +i;15;CPColorPicker.ji;21;CPSliderColorPicker.jc;160; +objj_msgSend(CPColorPanel, "provideColorPickerClass:", CPColorWheelColorPicker); +objj_msgSend(CPColorPanel, "provideColorPickerClass:", CPSliderColorPicker); + +p;15;CPColorPicker.jI;21;Foundation/CPObject.ji;14;CPColorPanel.jc;13205; +{var the_class = objj_allocateClassPair(CPObject, "CPColorPicker"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_panel"), new objj_ivar("_mask")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithPickerMask:colorPanel:"), function $CPColorPicker__initWithPickerMask_colorPanel_(self, _cmd, aMask, aPanel) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + _panel = aPanel; + _mask = aMask; + return self; +} +}), new objj_method(sel_getUid("colorPanel"), function $CPColorPicker__colorPanel(self, _cmd) +{ with(self) +{ + return _panel; +} +}), new objj_method(sel_getUid("provideNewButtonImage"), function $CPColorPicker__provideNewButtonImage(self, _cmd) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("setMode:"), function $CPColorPicker__setMode_(self, _cmd, mode) +{ with(self) +{ + return; +} +}), new objj_method(sel_getUid("setColor:"), function $CPColorPicker__setColor_(self, _cmd, aColor) +{ with(self) +{ + return; +} +})]); +} +{var the_class = objj_allocateClassPair(CPColorPicker, "CPColorWheelColorPicker"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_pickerView"), new objj_ivar("_brightnessSlider"), new objj_ivar("_hueSaturationView"), new objj_ivar("_cachedColor")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithPickerMask:colorPanel:"), function $CPColorWheelColorPicker__initWithPickerMask_colorPanel_(self, _cmd, mask, owningColorPanel) +{ with(self) +{ + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPColorPicker") }, "initWithPickerMask:colorPanel:", mask, owningColorPanel); +} +}), new objj_method(sel_getUid("initView"), function $CPColorWheelColorPicker__initView(self, _cmd) +{ with(self) +{ + aFrame = CPRectMake(0, 0, CPColorPickerViewWidth, CPColorPickerViewHeight); + _pickerView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", aFrame); + objj_msgSend(_pickerView, "setAutoresizingMask:", CPViewWidthSizable|CPViewHeightSizable); + _brightnessSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CGRectMake(0, (aFrame.size.height - 34), aFrame.size.width, 15)); + objj_msgSend(_brightnessSlider, "setValue:forThemeAttribute:", 15.0, "track-width"); + objj_msgSend(_brightnessSlider, "setValue:forThemeAttribute:", objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPColorPicker, "class")), "pathForResource:", "brightness_bar.png"))), "track-color"); + objj_msgSend(_brightnessSlider, "setMinValue:", 0.0); + objj_msgSend(_brightnessSlider, "setMaxValue:", 100.0); + objj_msgSend(_brightnessSlider, "setFloatValue:", 100.0); + objj_msgSend(_brightnessSlider, "setTarget:", self); + objj_msgSend(_brightnessSlider, "setAction:", sel_getUid("brightnessSliderDidChange:")); + objj_msgSend(_brightnessSlider, "setAutoresizingMask:", CPViewWidthSizable | CPViewMinYMargin); + _hueSaturationView = objj_msgSend(objj_msgSend(__CPColorWheel, "alloc"), "initWithFrame:", CPRectMake(0, 0, aFrame.size.width, aFrame.size.height - 38)); + objj_msgSend(_hueSaturationView, "setDelegate:", self); + objj_msgSend(_hueSaturationView, "setAutoresizingMask:", (CPViewWidthSizable | CPViewHeightSizable)); + objj_msgSend(_pickerView, "addSubview:", _hueSaturationView); + objj_msgSend(_pickerView, "addSubview:", _brightnessSlider); +} +}), new objj_method(sel_getUid("brightnessSliderDidChange:"), function $CPColorWheelColorPicker__brightnessSliderDidChange_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "updateColor"); +} +}), new objj_method(sel_getUid("colorWheelDidChange:"), function $CPColorWheelColorPicker__colorWheelDidChange_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "updateColor"); +} +}), new objj_method(sel_getUid("updateColor"), function $CPColorWheelColorPicker__updateColor(self, _cmd) +{ with(self) +{ + var hue = objj_msgSend(_hueSaturationView, "angle"), + saturation = objj_msgSend(_hueSaturationView, "distance"), + brightness = objj_msgSend(_brightnessSlider, "floatValue"); + objj_msgSend(_hueSaturationView, "setWheelBrightness:", brightness / 100.0); + objj_msgSend(_brightnessSlider, "setBackgroundColor:", objj_msgSend(CPColor, "colorWithHue:saturation:brightness:", hue, saturation, 100)); + var colorPanel = objj_msgSend(self, "colorPanel"), + opacity = objj_msgSend(colorPanel, "opacity"); + _cachedColor = objj_msgSend(CPColor, "colorWithHue:saturation:brightness:alpha:", hue, saturation, brightness, opacity); + objj_msgSend(objj_msgSend(self, "colorPanel"), "setColor:", _cachedColor); +} +}), new objj_method(sel_getUid("supportsMode:"), function $CPColorWheelColorPicker__supportsMode_(self, _cmd, mode) +{ with(self) +{ + return (mode == CPWheelColorPickerMode) ? YES : NO; +} +}), new objj_method(sel_getUid("currentMode"), function $CPColorWheelColorPicker__currentMode(self, _cmd) +{ with(self) +{ + return CPWheelColorPickerMode; +} +}), new objj_method(sel_getUid("provideNewView:"), function $CPColorWheelColorPicker__provideNewView_(self, _cmd, initialRequest) +{ with(self) +{ + if (initialRequest) + objj_msgSend(self, "initView"); + return _pickerView; +} +}), new objj_method(sel_getUid("setColor:"), function $CPColorWheelColorPicker__setColor_(self, _cmd, newColor) +{ with(self) +{ + if (objj_msgSend(newColor, "isEqual:", _cachedColor)) + return; + var hsb = objj_msgSend(newColor, "hsbComponents"); + objj_msgSend(_hueSaturationView, "setPositionToColor:", newColor); + objj_msgSend(_brightnessSlider, "setFloatValue:", hsb[2]); + objj_msgSend(_hueSaturationView, "setWheelBrightness:", hsb[2] / 100.0); + objj_msgSend(_brightnessSlider, "setBackgroundColor:", objj_msgSend(CPColor, "colorWithHue:saturation:brightness:", hsb[0], hsb[1], 100)); +} +}), new objj_method(sel_getUid("provideNewButtonImage"), function $CPColorWheelColorPicker__provideNewButtonImage(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", CPColorPicker), "pathForResource:", "wheel_button.png"), CGSizeMake(32, 32)); +} +}), new objj_method(sel_getUid("provideNewAlternateButtonImage"), function $CPColorWheelColorPicker__provideNewAlternateButtonImage(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", CPColorPicker), "pathForResource:", "wheel_button_h.png"), CGSizeMake(32, 32)); +} +})]); +} +{var the_class = objj_allocateClassPair(CPView, "__CPColorWheel"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_wheelImage"), new objj_ivar("_blackWheelImage"), new objj_ivar("_crosshair"), new objj_ivar("_delegate"), new objj_ivar("_angle"), new objj_ivar("_distance"), new objj_ivar("_radius")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $__CPColorWheel__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + var path = objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", CPColorPicker), "pathForResource:", "wheel.png"); + _wheelImage = new Image(); + _wheelImage.src = path; + _wheelImage.style.position = "absolute"; + path = objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", CPColorPicker), "pathForResource:", "wheel_black.png"); + _blackWheelImage = new Image(); + _blackWheelImage.src = path; + _blackWheelImage.style.opacity = "0"; + _blackWheelImage.style.filter = "alpha(opacity=0)" + _blackWheelImage.style.position = "absolute"; + _DOMElement.appendChild(_wheelImage); + _DOMElement.appendChild(_blackWheelImage); + objj_msgSend(self, "setWheelSize:", aFrame.size); + _crosshair = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(_radius - 2, _radius - 2, 4, 4)); + objj_msgSend(_crosshair, "setBackgroundColor:", objj_msgSend(CPColor, "blackColor")); + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectInset(objj_msgSend(_crosshair, "bounds"), 1.0, 1.0)); + objj_msgSend(view, "setBackgroundColor:", objj_msgSend(CPColor, "whiteColor")); + objj_msgSend(_crosshair, "addSubview:", view); + objj_msgSend(self, "addSubview:", _crosshair); + return self; +} +}), new objj_method(sel_getUid("setWheelBrightness:"), function $__CPColorWheel__setWheelBrightness_(self, _cmd, brightness) +{ with(self) +{ + _blackWheelImage.style.opacity = 1.0 - brightness; + _blackWheelImage.style.filter = "alpha(opacity=" + (1.0 - brightness)*100 + ")" +} +}), new objj_method(sel_getUid("setFrameSize:"), function $__CPColorWheel__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setFrameSize:", aSize); + objj_msgSend(self, "setWheelSize:", aSize); +} +}), new objj_method(sel_getUid("setWheelSize:"), function $__CPColorWheel__setWheelSize_(self, _cmd, aSize) +{ with(self) +{ + var min = MIN(aSize.width, aSize.height); + _blackWheelImage.style.width = min; + _blackWheelImage.style.height = min; + _blackWheelImage.width = min; + _blackWheelImage.height = min; + _blackWheelImage.style.top = (aSize.height - min) / 2.0 + "px"; + _blackWheelImage.style.left = (aSize.width - min) / 2.0 + "px"; + _wheelImage.style.width = min; + _wheelImage.style.height = min; + _wheelImage.width = min; + _wheelImage.height = min; + _wheelImage.style.top = (aSize.height - min) / 2.0 + "px"; + _wheelImage.style.left = (aSize.width - min) / 2.0 + "px"; + _radius = min / 2.0; + objj_msgSend(self, "setAngle:distance:", objj_msgSend(self, "degreesToRadians:", _angle), (_distance / 100.0) * _radius); +} +}), new objj_method(sel_getUid("setDelegate:"), function $__CPColorWheel__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; +} +}), new objj_method(sel_getUid("delegate"), function $__CPColorWheel__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("angle"), function $__CPColorWheel__angle(self, _cmd) +{ with(self) +{ + return _angle; +} +}), new objj_method(sel_getUid("distance"), function $__CPColorWheel__distance(self, _cmd) +{ with(self) +{ + return _distance; +} +}), new objj_method(sel_getUid("mouseDown:"), function $__CPColorWheel__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "reposition:", anEvent); +} +}), new objj_method(sel_getUid("mouseDragged:"), function $__CPColorWheel__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "reposition:", anEvent); +} +}), new objj_method(sel_getUid("reposition:"), function $__CPColorWheel__reposition_(self, _cmd, anEvent) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + location = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + var midX = CGRectGetMidX(bounds); + var midY = CGRectGetMidY(bounds); + var distance = MIN(SQRT((location.x - midX)*(location.x - midX) + (location.y - midY)*(location.y - midY)), _radius); + var angle = ATAN2(location.y - midY, location.x - midX); + objj_msgSend(self, "setAngle:distance:", angle, distance); + objj_msgSend(_delegate, "colorWheelDidChange:", self); +} +}), new objj_method(sel_getUid("setAngle:distance:"), function $__CPColorWheel__setAngle_distance_(self, _cmd, angle, distance) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"); + var midX = CGRectGetMidX(bounds); + var midY = CGRectGetMidY(bounds); + _angle = objj_msgSend(self, "radiansToDegrees:", angle); + _distance = (distance / _radius) * 100.0; + objj_msgSend(_crosshair, "setFrameOrigin:", CPPointMake(COS(angle) * distance + midX - 2.0, SIN(angle) * distance + midY - 2.0)); +} +}), new objj_method(sel_getUid("setPositionToColor:"), function $__CPColorWheel__setPositionToColor_(self, _cmd, aColor) +{ with(self) +{ + var hsb = objj_msgSend(aColor, "hsbComponents"), + bounds = objj_msgSend(self, "bounds"); + var angle = objj_msgSend(self, "degreesToRadians:", hsb[0]), + distance = (hsb[1] / 100.0) * _radius; + objj_msgSend(self, "setAngle:distance:", angle, distance); +} +}), new objj_method(sel_getUid("radiansToDegrees:"), function $__CPColorWheel__radiansToDegrees_(self, _cmd, radians) +{ with(self) +{ + return ((-radians / PI) * 180 + 360) % 360; +} +}), new objj_method(sel_getUid("degreesToRadians:"), function $__CPColorWheel__degreesToRadians_(self, _cmd, degrees) +{ with(self) +{ + return -(((degrees - 360) / 180) * PI); +} +})]); +} + +p;13;CPColorWell.jI;21;Foundation/CPString.ji;8;CPView.ji;9;CPColor.ji;14;CPColorPanel.jc;7936; +var _CPColorWellDidBecomeExclusiveNotification = "_CPColorWellDidBecomeExclusiveNotification"; +{var the_class = objj_allocateClassPair(CPControl, "CPColorWell"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_active"), new objj_ivar("_bordered"), new objj_ivar("_color"), new objj_ivar("_wellView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPColorWell__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + _active = NO; + _bordered = YES; + _color = objj_msgSend(CPColor, "whiteColor"); + objj_msgSend(self, "drawBezelWithHighlight:", NO); + objj_msgSend(self, "drawWellInside:", CGRectInset(objj_msgSend(self, "bounds"), 3.0, 3.0)); + objj_msgSend(self, "_registerForNotifications"); + } + return self; +} +}), new objj_method(sel_getUid("_registerForNotifications"), function $CPColorWell___registerForNotifications(self, _cmd) +{ with(self) +{ + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("colorWellDidBecomeExclusive:"), _CPColorWellDidBecomeExclusiveNotification, nil); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("colorPanelWillClose:"), CPWindowWillCloseNotification, objj_msgSend(CPColorPanel, "sharedColorPanel")); +} +}), new objj_method(sel_getUid("isBordered"), function $CPColorWell__isBordered(self, _cmd) +{ with(self) +{ + return _bordered; +} +}), new objj_method(sel_getUid("setBordered:"), function $CPColorWell__setBordered_(self, _cmd, bordered) +{ with(self) +{ + if (_bordered == bordered) + return; + _bordered = bordered; + objj_msgSend(self, "drawWellInside:", CGRectInset(objj_msgSend(self, "bounds"), 3.0, 3.0)); +} +}), new objj_method(sel_getUid("color"), function $CPColorWell__color(self, _cmd) +{ with(self) +{ + return _color; +} +}), new objj_method(sel_getUid("setColor:"), function $CPColorWell__setColor_(self, _cmd, aColor) +{ with(self) +{ + if (_color == aColor) + return; + _color = aColor; + objj_msgSend(self, "drawWellInside:", CGRectInset(objj_msgSend(self, "bounds"), 3.0, 3.0)); +} +}), new objj_method(sel_getUid("takeColorFrom:"), function $CPColorWell__takeColorFrom_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "setColor:", objj_msgSend(aSender, "color")); +} +}), new objj_method(sel_getUid("activate:"), function $CPColorWell__activate_(self, _cmd, shouldBeExclusive) +{ with(self) +{ + if (shouldBeExclusive) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", _CPColorWellDidBecomeExclusiveNotification, self); + if (objj_msgSend(self, "isActive")) + return; + _active = YES; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", self, sel_getUid("colorPanelDidChangeColor:"), CPColorPanelColorDidChangeNotification, objj_msgSend(CPColorPanel, "sharedColorPanel")); +} +}), new objj_method(sel_getUid("deactivate"), function $CPColorWell__deactivate(self, _cmd) +{ with(self) +{ + if (!objj_msgSend(self, "isActive")) + return; + _active = NO; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "removeObserver:name:object:", self, CPColorPanelColorDidChangeNotification, objj_msgSend(CPColorPanel, "sharedColorPanel")); +} +}), new objj_method(sel_getUid("isActive"), function $CPColorWell__isActive(self, _cmd) +{ with(self) +{ + return _active; +} +}), new objj_method(sel_getUid("drawBezelWithHighlight:"), function $CPColorWell__drawBezelWithHighlight_(self, _cmd, shouldHighlight) +{ with(self) +{ +} +}), new objj_method(sel_getUid("drawWellInside:"), function $CPColorWell__drawWellInside_(self, _cmd, aRect) +{ with(self) +{ + if (!_wellView) + { + _wellView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", aRect); + objj_msgSend(_wellView, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + objj_msgSend(self, "addSubview:", _wellView); + } + else + objj_msgSend(_wellView, "setFrame:", aRect); + objj_msgSend(_wellView, "setBackgroundColor:", _color); +} +}), new objj_method(sel_getUid("colorPanelDidChangeColor:"), function $CPColorWell__colorPanelDidChangeColor_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "takeColorFrom:", objj_msgSend(aNotification, "object")); + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); +} +}), new objj_method(sel_getUid("colorWellDidBecomeExclusive:"), function $CPColorWell__colorWellDidBecomeExclusive_(self, _cmd, aNotification) +{ with(self) +{ + if (self != objj_msgSend(aNotification, "object")) + objj_msgSend(self, "deactivate"); +} +}), new objj_method(sel_getUid("colorPanelWillClose:"), function $CPColorWell__colorPanelWillClose_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "deactivate"); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPColorWell__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "drawBezelWithHighlight:", YES); +} +}), new objj_method(sel_getUid("mouseDragged:"), function $CPColorWell__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "drawBezelWithHighlight:", CGRectContainsPoint(objj_msgSend(self, "bounds"), objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil))); +} +}), new objj_method(sel_getUid("mouseUp:"), function $CPColorWell__mouseUp_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "drawBezelWithHighlight:", NO); + if (!CGRectContainsPoint(objj_msgSend(self, "bounds"), objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil))) + return; + objj_msgSend(self, "activate:", YES); + var colorPanel = objj_msgSend(CPColorPanel, "sharedColorPanel"); + objj_msgSend(colorPanel, "setColor:", _color); + objj_msgSend(colorPanel, "orderFront:", self); +} +})]); +} +var CPColorWellColorKey = "CPColorWellColorKey", + CPColorWellBorderedKey = "CPColorWellBorderedKey"; +{ +var the_class = objj_getClass("CPColorWell") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPColorWell\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPColorWell__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder); + if (self) + { + _active = NO; + _bordered = objj_msgSend(aCoder, "decodeObjectForKey:", CPColorWellBorderedKey); + _color = objj_msgSend(aCoder, "decodeObjectForKey:", CPColorWellColorKey); + objj_msgSend(self, "drawBezelWithHighlight:", NO); + objj_msgSend(self, "drawWellInside:", CGRectInset(objj_msgSend(self, "bounds"), 3.0, 3.0)); + objj_msgSend(self, "_registerForNotifications"); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPColorWell__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + var actualSubviews = _subviews; + _subviews = objj_msgSend(_subviews, "copy"); + objj_msgSend(_subviews, "removeObjectIdenticalTo:", _wellView); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + _subviews = actualSubviews; + objj_msgSend(aCoder, "encodeObject:forKey:", _color, CPColorWellColorKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _bordered, CPColorWellBorderedKey); +} +})]); +} + +p;17;CPCompatibility.ji;9;CPEvent.jc;4224; +CPUnknownBrowserEngine = 0; +CPGeckoBrowserEngine = 1; +CPInternetExplorerBrowserEngine = 2; +CPKHTMLBrowserEngine = 3; +CPOperaBrowserEngine = 4; +CPWebKitBrowserEngine = 5; +CPCSSRGBAFeature = 1 << 5; +CPHTMLCanvasFeature = 1 << 6; +CPHTMLContentEditableFeature = 1 << 7; +CPJavascriptInnerTextFeature = 1 << 8; +CPJavascriptTextContentFeature = 1 << 9; +CPJavascriptClipboardEventsFeature = 1 << 10; +CPJavascriptClipboardAccessFeature = 1 << 11; +CPJavaScriptCanvasDrawFeature = 1 << 12; +CPJavaScriptCanvasTransformFeature = 1 << 13; +CPVMLFeature = 1 << 14; +CPJavascriptRemedialKeySupport = 1 << 15; +CPJavaScriptShadowFeature = 1 << 20; +CPJavaScriptNegativeMouseWheelValues = 1 << 22; +CPJavaScriptMouseWheelValues_8_15 = 1 << 23 +CPOpacityRequiresFilterFeature = 1 << 24; +CPInputTypeCanBeChangedFeature = 1 << 25; +var USER_AGENT = "", + PLATFORM_ENGINE = CPUnknownBrowserEngine, + PLATFORM_FEATURES = 0; +PLATFORM_FEATURES |= CPInputTypeCanBeChangedFeature; +if (typeof window != "undfined" && typeof window.navigator != "undefined") + USER_AGENT = window.navigator.userAgent; +if (window.opera) +{ + PLATFORM_ENGINE = CPOperaBrowserEngine; + PLATFORM_FEATURES |= CPJavaScriptCanvasDrawFeature; +} +else if (window.attachEvent) +{ + PLATFORM_ENGINE = CPInternetExplorerBrowserEngine; + PLATFORM_FEATURES |= CPVMLFeature; + PLATFORM_FEATURES |= CPJavascriptRemedialKeySupport; + PLATFORM_FEATURES |= CPJavaScriptShadowFeature; + PLATFORM_FEATURES |= CPOpacityRequiresFilterFeature; + PLATFORM_FEATURES &= ~CPInputTypeCanBeChangedFeature; +} +else if (USER_AGENT.indexOf("AppleWebKit/") != -1) +{ + PLATFORM_ENGINE = CPWebKitBrowserEngine; + PLATFORM_FEATURES |= CPCSSRGBAFeature; + PLATFORM_FEATURES |= CPHTMLContentEditableFeature; + PLATFORM_FEATURES |= CPJavascriptClipboardEventsFeature; + PLATFORM_FEATURES |= CPJavascriptClipboardAccessFeature; + PLATFORM_FEATURES |= CPJavaScriptShadowFeature; + var versionStart = USER_AGENT.indexOf("AppleWebKit/") + "AppleWebKit/".length, + versionEnd = USER_AGENT.indexOf(" ", versionStart), + version = parseFloat(USER_AGENT.substring(versionStart, versionEnd), 10); + if(USER_AGENT.indexOf("Plainview") == -1 && version >= 525.14 || USER_AGENT.indexOf("Chrome") != -1) + PLATFORM_FEATURES |= CPJavascriptRemedialKeySupport; +} +else if (USER_AGENT.indexOf("KHTML") != -1) +{ + PLATFORM_ENGINE = CPKHTMLBrowserEngine; +} +else if (USER_AGENT.indexOf("Gecko") !== -1) +{ + PLATFORM_ENGINE = CPGeckoBrowserEngine; + PLATFORM_FEATURES |= CPJavaScriptCanvasDrawFeature; + var index = USER_AGENT.indexOf("Firefox"), + version = (index === -1) ? 2.0 : parseFloat(USER_AGENT.substring(index + "Firefox".length + 1)); + if (version >= 3.0) + PLATFORM_FEATURES |= CPCSSRGBAFeature; + if (version < 3.0) + PLATFORM_FEATURES |= CPJavaScriptMouseWheelValues_8_15; +} +if (typeof document != "undefined") +{ + var canvasElement = document.createElement("canvas"); + if (canvasElement && canvasElement.getContext) + { + PLATFORM_FEATURES |= CPHTMLCanvasFeature; + var context = document.createElement("canvas").getContext("2d"); + if (context && context.setTransform && context.transform) + PLATFORM_FEATURES |= CPJavaScriptCanvasTransformFeature; + } + var DOMElement = document.createElement("div"); + if (DOMElement.innerText != undefined) + PLATFORM_FEATURES |= CPJavascriptInnerTextFeature; + else if (DOMElement.textContent != undefined) + PLATFORM_FEATURES |= CPJavascriptTextContentFeature; +} +CPFeatureIsCompatible= function(aFeature) +{ + return PLATFORM_FEATURES & aFeature; +} +CPBrowserIsEngine= function(anEngine) +{ + return PLATFORM_ENGINE == anEngine; +} +if (USER_AGENT.indexOf("Mac") != -1) +{ + CPPlatformActionKeyMask = CPCommandKeyMask; + CPUndoKeyEquivalent = "Z"; + CPRedoKeyEquivalent = "Z"; + CPUndoKeyEquivalentModifierMask = CPCommandKeyMask; + CPRedoKeyEquivalentModifierMask = CPCommandKeyMask | CPShiftKeyMask; +} +else +{ + CPPlatformActionKeyMask = CPControlKeyMask; + CPUndoKeyEquivalent = "Z"; + CPRedoKeyEquivalent = "Y"; + CPUndoKeyEquivalentModifierMask = CPControlKeyMask; + CPRedoKeyEquivalentModifierMask = CPControlKeyMask; +} + +p;11;CPControl.ji;8;CPFont.ji;10;CPShadow.ji;8;CPView.jc;25045; +CPLeftTextAlignment = 0; +CPRightTextAlignment = 1; +CPCenterTextAlignment = 2; +CPJustifiedTextAlignment = 3; +CPNaturalTextAlignment = 4; +CPRegularControlSize = 0; +CPSmallControlSize = 1; +CPMiniControlSize = 2; +CPControlNormalBackgroundColor = "CPControlNormalBackgroundColor"; +CPControlSelectedBackgroundColor = "CPControlSelectedBackgroundColor"; +CPControlHighlightedBackgroundColor = "CPControlHighlightedBackgroundColor"; +CPControlDisabledBackgroundColor = "CPControlDisabledBackgroundColor"; +CPControlTextDidBeginEditingNotification = "CPControlTextDidBeginEditingNotification"; +CPControlTextDidChangeNotification = "CPControlTextDidChangeNotification"; +CPControlTextDidEndEditingNotification = "CPControlTextDidEndEditingNotification"; +var CPControlBlackColor = objj_msgSend(CPColor, "blackColor"); +{var the_class = objj_allocateClassPair(CPView, "CPControl"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_value"), new objj_ivar("_target"), new objj_ivar("_action"), new objj_ivar("_sendActionOn"), new objj_ivar("_continuousTracking"), new objj_ivar("_trackingWasWithinFrame"), new objj_ivar("_trackingMouseDownFlags"), new objj_ivar("_previousTrackingLocation"), new objj_ivar("_ephemeralSubviewsForNames"), new objj_ivar("_ephereralSubviews"), new objj_ivar("_toolTip")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPControl__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _sendActionOn = CPLeftMouseUpMask; + _trackingMouseDownFlags = 0; + } + return self; +} +}), new objj_method(sel_getUid("setAction:"), function $CPControl__setAction_(self, _cmd, anAction) +{ with(self) +{ + _action = anAction; +} +}), new objj_method(sel_getUid("action"), function $CPControl__action(self, _cmd) +{ with(self) +{ + return _action; +} +}), new objj_method(sel_getUid("setTarget:"), function $CPControl__setTarget_(self, _cmd, aTarget) +{ with(self) +{ + _target = aTarget; +} +}), new objj_method(sel_getUid("target"), function $CPControl__target(self, _cmd) +{ with(self) +{ + return _target; +} +}), new objj_method(sel_getUid("sendAction:to:"), function $CPControl__sendAction_to_(self, _cmd, anAction, anObject) +{ with(self) +{ + objj_msgSend(CPApp, "sendAction:to:from:", anAction, anObject, self); +} +}), new objj_method(sel_getUid("sendActionOn:"), function $CPControl__sendActionOn_(self, _cmd, mask) +{ with(self) +{ + var previousMask = _sendActionOn; + _sendActionOn = mask; + return previousMask; +} +}), new objj_method(sel_getUid("isContinuous"), function $CPControl__isContinuous(self, _cmd) +{ with(self) +{ + return (_sendActionOn & CPPeriodicMask) !== 0; +} +}), new objj_method(sel_getUid("setContinuous:"), function $CPControl__setContinuous_(self, _cmd, flag) +{ with(self) +{ + if (flag) + _sendActionOn |= CPPeriodicMask; + else + _sendActionOn &= ~CPPeriodicMask; +} +}), new objj_method(sel_getUid("tracksMouseOutsideOfFrame"), function $CPControl__tracksMouseOutsideOfFrame(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("trackMouse:"), function $CPControl__trackMouse_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"), + currentLocation = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + isWithinFrame = objj_msgSend(self, "tracksMouseOutsideOfFrame") || CGRectContainsPoint(objj_msgSend(self, "bounds"), currentLocation); + if (type === CPLeftMouseUp) + { + objj_msgSend(self, "stopTracking:at:mouseIsUp:", _previousTrackingLocation, currentLocation, YES); + _trackingMouseDownFlags = 0; + } + else + { + if (type === CPLeftMouseDown) + { + _trackingMouseDownFlags = objj_msgSend(anEvent, "modifierFlags"); + _continuousTracking = objj_msgSend(self, "startTrackingAt:", currentLocation); + } + else if (type === CPLeftMouseDragged) + { + if (isWithinFrame) + { + if (!_trackingWasWithinFrame) + _continuousTracking = objj_msgSend(self, "startTrackingAt:", currentLocation); + else if (_continuousTracking) + _continuousTracking = objj_msgSend(self, "continueTracking:at:", _previousTrackingLocation, currentLocation); + } + else + objj_msgSend(self, "stopTracking:at:mouseIsUp:", _previousTrackingLocation, currentLocation, NO); + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackMouse:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); + } + if ((_sendActionOn & (1 << type)) && isWithinFrame) + objj_msgSend(self, "sendAction:to:", _action, _target); + _trackingWasWithinFrame = isWithinFrame; + _previousTrackingLocation = currentLocation; +} +}), new objj_method(sel_getUid("performClick:"), function $CPControl__performClick_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "highlight:", YES); + objj_msgSend(self, "setState:", objj_msgSend(self, "nextState")); + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); + objj_msgSend(self, "highlight:", NO); +} +}), new objj_method(sel_getUid("mouseDownFlags"), function $CPControl__mouseDownFlags(self, _cmd) +{ with(self) +{ + return _trackingMouseDownFlags; +} +}), new objj_method(sel_getUid("startTrackingAt:"), function $CPControl__startTrackingAt_(self, _cmd, aPoint) +{ with(self) +{ + objj_msgSend(self, "highlight:", YES); + return (_sendActionOn & CPPeriodicMask) || (_sendActionOn & CPLeftMouseDraggedMask); +} +}), new objj_method(sel_getUid("continueTracking:at:"), function $CPControl__continueTracking_at_(self, _cmd, lastPoint, aPoint) +{ with(self) +{ + return (_sendActionOn & CPPeriodicMask) || (_sendActionOn & CPLeftMouseDraggedMask); +} +}), new objj_method(sel_getUid("stopTracking:at:mouseIsUp:"), function $CPControl__stopTracking_at_mouseIsUp_(self, _cmd, lastPoint, aPoint, mouseIsUp) +{ with(self) +{ + objj_msgSend(self, "highlight:", NO); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPControl__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (!objj_msgSend(self, "isEnabled")) + return; + objj_msgSend(self, "trackMouse:", anEvent); +} +}), new objj_method(sel_getUid("objectValue"), function $CPControl__objectValue(self, _cmd) +{ with(self) +{ + return _value; +} +}), new objj_method(sel_getUid("setObjectValue:"), function $CPControl__setObjectValue_(self, _cmd, anObject) +{ with(self) +{ + _value = anObject; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("floatValue"), function $CPControl__floatValue(self, _cmd) +{ with(self) +{ + var floatValue = parseFloat(_value, 10); + return isNaN(floatValue) ? 0.0 : floatValue; +} +}), new objj_method(sel_getUid("setFloatValue:"), function $CPControl__setFloatValue_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", aValue); +} +}), new objj_method(sel_getUid("doubleValue"), function $CPControl__doubleValue(self, _cmd) +{ with(self) +{ + var doubleValue = parseFloat(_value, 10); + return isNaN(doubleValue) ? 0.0 : doubleValue; +} +}), new objj_method(sel_getUid("setDoubleValue:"), function $CPControl__setDoubleValue_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", anObject); +} +}), new objj_method(sel_getUid("intValue"), function $CPControl__intValue(self, _cmd) +{ with(self) +{ + var intValue = parseInt(_value, 10); + return isNaN(intValue) ? 0.0 : intValue; +} +}), new objj_method(sel_getUid("setIntValue:"), function $CPControl__setIntValue_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", anObject); +} +}), new objj_method(sel_getUid("integerValue"), function $CPControl__integerValue(self, _cmd) +{ with(self) +{ + var intValue = parseInt(_value, 10); + return isNaN(intValue) ? 0.0 : intValue; +} +}), new objj_method(sel_getUid("setIntegerValue:"), function $CPControl__setIntegerValue_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", anObject); +} +}), new objj_method(sel_getUid("stringValue"), function $CPControl__stringValue(self, _cmd) +{ with(self) +{ + return (_value === undefined || _value === nil) ? "" : String(_value); +} +}), new objj_method(sel_getUid("setStringValue:"), function $CPControl__setStringValue_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", anObject); +} +}), new objj_method(sel_getUid("takeDoubleValueFrom:"), function $CPControl__takeDoubleValueFrom_(self, _cmd, sender) +{ with(self) +{ + if (objj_msgSend(sender, "respondsToSelector:", sel_getUid("doubleValue"))) + objj_msgSend(self, "setDoubleValue:", objj_msgSend(sender, "doubleValue")); +} +}), new objj_method(sel_getUid("takeFloatValueFrom:"), function $CPControl__takeFloatValueFrom_(self, _cmd, sender) +{ with(self) +{ + if (objj_msgSend(sender, "respondsToSelector:", sel_getUid("floatValue"))) + objj_msgSend(self, "setFloatValue:", objj_msgSend(sender, "floatValue")); +} +}), new objj_method(sel_getUid("takeIntegerValueFrom:"), function $CPControl__takeIntegerValueFrom_(self, _cmd, sender) +{ with(self) +{ + if (objj_msgSend(sender, "respondsToSelector:", sel_getUid("integerValue"))) + objj_msgSend(self, "setIntegerValue:", objj_msgSend(sender, "integerValue")); +} +}), new objj_method(sel_getUid("takeIntValueFrom:"), function $CPControl__takeIntValueFrom_(self, _cmd, sender) +{ with(self) +{ + if (objj_msgSend(sender, "respondsToSelector:", sel_getUid("intValue"))) + objj_msgSend(self, "setIntValue:", objj_msgSend(sender, "intValue")); +} +}), new objj_method(sel_getUid("takeObjectValueFrom:"), function $CPControl__takeObjectValueFrom_(self, _cmd, sender) +{ with(self) +{ + if (objj_msgSend(sender, "respondsToSelector:", sel_getUid("objectValue"))) + objj_msgSend(self, "setObjectValue:", objj_msgSend(sender, "objectValue")); +} +}), new objj_method(sel_getUid("takeStringValueFrom:"), function $CPControl__takeStringValueFrom_(self, _cmd, sender) +{ with(self) +{ + if (objj_msgSend(sender, "respondsToSelector:", sel_getUid("stringValue"))) + objj_msgSend(self, "setStringValue:", objj_msgSend(sender, "stringValue")); +} +}), new objj_method(sel_getUid("textDidBeginEditing:"), function $CPControl__textDidBeginEditing_(self, _cmd, note) +{ with(self) +{ + if(objj_msgSend(note, "object") != self) + return; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPControlTextDidBeginEditingNotification, self, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", objj_msgSend(note, "object"), "CPFieldEditor")); +} +}), new objj_method(sel_getUid("textDidChange:"), function $CPControl__textDidChange_(self, _cmd, note) +{ with(self) +{ + if(objj_msgSend(note, "object") != self) + return; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPControlTextDidChangeNotification, self, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", objj_msgSend(note, "object"), "CPFieldEditor")); +} +}), new objj_method(sel_getUid("textDidEndEditing:"), function $CPControl__textDidEndEditing_(self, _cmd, note) +{ with(self) +{ + if(objj_msgSend(note, "object") != self) + return; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPControlTextDidEndEditingNotification, self, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", objj_msgSend(note, "object"), "CPFieldEditor")); +} +}), new objj_method(sel_getUid("setAlignment:"), function $CPControl__setAlignment_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "alignment");} +}), new objj_method(sel_getUid("alignment"), function $CPControl__alignment(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "alignment");} +}), new objj_method(sel_getUid("setVerticalAlignment:"), function $CPControl__setVerticalAlignment_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "vertical-alignment");} +}), new objj_method(sel_getUid("verticalAlignment"), function $CPControl__verticalAlignment(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "vertical-alignment");} +}), new objj_method(sel_getUid("setLineBreakMode:"), function $CPControl__setLineBreakMode_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "line-break-mode");} +}), new objj_method(sel_getUid("lineBreakMode"), function $CPControl__lineBreakMode(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "line-break-mode");} +}), new objj_method(sel_getUid("setTextColor:"), function $CPControl__setTextColor_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "text-color");} +}), new objj_method(sel_getUid("textColor"), function $CPControl__textColor(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "text-color");} +}), new objj_method(sel_getUid("setFont:"), function $CPControl__setFont_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "font");} +}), new objj_method(sel_getUid("font"), function $CPControl__font(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "font");} +}), new objj_method(sel_getUid("setTextShadowColor:"), function $CPControl__setTextShadowColor_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "text-shadow-color");} +}), new objj_method(sel_getUid("textShadowColor"), function $CPControl__textShadowColor(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "text-shadow-color");} +}), new objj_method(sel_getUid("setTextShadowOffset:"), function $CPControl__setTextShadowOffset_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "text-shadow-offset");} +}), new objj_method(sel_getUid("textShadowOffset"), function $CPControl__textShadowOffset(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "text-shadow-offset");} +}), new objj_method(sel_getUid("setImagePosition:"), function $CPControl__setImagePosition_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "image-position");} +}), new objj_method(sel_getUid("imagePosition"), function $CPControl__imagePosition(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "image-position");} +}), new objj_method(sel_getUid("setImageScaling:"), function $CPControl__setImageScaling_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "image-scaling");} +}), new objj_method(sel_getUid("imageScaling"), function $CPControl__imageScaling(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "image-scaling");} +}), new objj_method(sel_getUid("setEnabled:"), function $CPControl__setEnabled_(self, _cmd, isEnabled) +{ with(self) +{ + if (isEnabled) + objj_msgSend(self, "unsetThemeState:", CPThemeStateDisabled); + else + objj_msgSend(self, "setThemeState:", CPThemeStateDisabled); +} +}), new objj_method(sel_getUid("isEnabled"), function $CPControl__isEnabled(self, _cmd) +{ with(self) +{ + return !objj_msgSend(self, "hasThemeState:", CPThemeStateDisabled); +} +}), new objj_method(sel_getUid("highlight:"), function $CPControl__highlight_(self, _cmd, shouldHighlight) +{ with(self) +{ + objj_msgSend(self, "setHighlighted:", shouldHighlight); +} +}), new objj_method(sel_getUid("setHighlighted:"), function $CPControl__setHighlighted_(self, _cmd, isHighlighted) +{ with(self) +{ + if (isHighlighted) + objj_msgSend(self, "setThemeState:", CPThemeStateHighlighted); + else + objj_msgSend(self, "unsetThemeState:", CPThemeStateHighlighted); +} +}), new objj_method(sel_getUid("isHighlighted"), function $CPControl__isHighlighted(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "hasThemeState:", CPThemeStateHighlighted); +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPControl__createEphemeralSubviewNamed_(self, _cmd, aViewName) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPControl__rectForEphemeralSubviewNamed_(self, _cmd, aViewName) +{ with(self) +{ + return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; +} +}), new objj_method(sel_getUid("layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:"), function $CPControl__layoutEphemeralSubviewNamed_positioned_relativeToEphemeralSubviewNamed_(self, _cmd, aViewName, anOrderingMode, relativeToViewName) +{ with(self) +{ + if (!_ephemeralSubviewsForNames) + { + _ephemeralSubviewsForNames = {}; + _ephemeralSubviews = objj_msgSend(CPSet, "set"); + } + var frame = objj_msgSend(self, "rectForEphemeralSubviewNamed:", aViewName); + if (frame && !(frame.size.width <= 0.0 || frame.size.height <= 0.0)) + { + if (!_ephemeralSubviewsForNames[aViewName]) + { + _ephemeralSubviewsForNames[aViewName] = objj_msgSend(self, "createEphemeralSubviewNamed:", aViewName); + objj_msgSend(_ephemeralSubviews, "addObject:", _ephemeralSubviewsForNames[aViewName]); + if (_ephemeralSubviewsForNames[aViewName]) + objj_msgSend(self, "addSubview:positioned:relativeTo:", _ephemeralSubviewsForNames[aViewName], anOrderingMode, _ephemeralSubviewsForNames[relativeToViewName]); + } + if (_ephemeralSubviewsForNames[aViewName]) + objj_msgSend(_ephemeralSubviewsForNames[aViewName], "setFrame:", frame); + } + else if (_ephemeralSubviewsForNames[aViewName]) + { + objj_msgSend(_ephemeralSubviewsForNames[aViewName], "removeFromSuperview"); + objj_msgSend(_ephemeralSubviews, "removeObject:", _ephemeralSubviewsForNames[aViewName]); + delete _ephemeralSubviewsForNames[aViewName]; + } + return _ephemeralSubviewsForNames[aViewName]; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeAttributes"), function $CPControl__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [CPLeftTextAlignment, + CPTopVerticalTextAlignment, + CPLineBreakByClipping, + objj_msgSend(CPColor, "blackColor"), + objj_msgSend(CPFont, "systemFontOfSize:", 12.0), + nil, + { width:0.0, height:0.0 }, + CPImageLeft, + CPScaleToFit, + { width:0.0, height:0.0 }, + { width:-1.0, height:-1.0 }], ["alignment", + "vertical-alignment", + "line-break-mode", + "text-color", + "font", + "text-shadow-color", + "text-shadow-offset", + "image-position", + "image-scaling", + "min-size", + "max-size"]); +} +})]); +} +var CPControlValueKey = "CPControlValueKey", + CPControlControlStateKey = "CPControlControlStateKey", + CPControlIsEnabledKey = "CPControlIsEnabledKey", + CPControlTargetKey = "CPControlTargetKey", + CPControlActionKey = "CPControlActionKey", + CPControlSendActionOnKey = "CPControlSendActionOnKey"; +var __Deprecated__CPImageViewImageKey = "CPImageViewImageKey"; +{ +var the_class = objj_getClass("CPControl") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPControl\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPControl__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder); + if (self) + { + objj_msgSend(self, "setObjectValue:", objj_msgSend(aCoder, "decodeObjectForKey:", CPControlValueKey)); + objj_msgSend(self, "setTarget:", objj_msgSend(aCoder, "decodeObjectForKey:", CPControlTargetKey)); + objj_msgSend(self, "setAction:", objj_msgSend(aCoder, "decodeObjectForKey:", CPControlActionKey)); + objj_msgSend(self, "sendActionOn:", objj_msgSend(aCoder, "decodeIntForKey:", CPControlSendActionOnKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPControl__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + var count = objj_msgSend(_subviews, "count"), + ephemeral + subviews = nil; + if (count > 0 && objj_msgSend(_ephemeralSubviews, "count") > 0) + { + subviews = objj_msgSend(_subviews.slice(0), "copy"); + while (count--) + if (objj_msgSend(_ephemeralSubviews, "containsObject:", _subviews[count])) + _subviews.splice(count, 1); + } + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + if (subviews) + _subviews = subviews; + if (_value !== nil) + objj_msgSend(aCoder, "encodeObject:forKey:", _value, CPControlValueKey); + if (_target !== nil) + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _target, CPControlTargetKey); + if (_action !== NULL) + objj_msgSend(aCoder, "encodeObject:forKey:", _action, CPControlActionKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _sendActionOn, CPControlSendActionOnKey); +} +})]); +} +var _CPControlSizeIdentifiers = [], + _CPControlCachedColorWithPatternImages = {}, + _CPControlCachedThreePartImagePattern = {}; +_CPControlSizeIdentifiers[CPRegularControlSize] = "Regular"; +_CPControlSizeIdentifiers[CPSmallControlSize] = "Small"; +_CPControlSizeIdentifiers[CPMiniControlSize] = "Mini"; +_CPControlIdentifierForControlSize= function(aControlSize) +{ + return _CPControlSizeIdentifiers[aControlSize]; +} +_CPControlColorWithPatternImage= function(sizes, aClassName) +{ + var index = 1, + count = arguments.length, + identifier = ""; + for (; index < count; ++index) + identifier += arguments[index]; + var color = _CPControlCachedColorWithPatternImages[identifier]; + if (!color) + { + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPControl, "class")); + color = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", aClassName + "/" + identifier + ".png"), sizes[identifier])); + _CPControlCachedColorWithPatternImages[identifier] = color; + } + return color; +} +_CPControlThreePartImagePattern= function(isVertical, sizes, aClassName) +{ + var index = 2, + count = arguments.length, + identifier = ""; + for (; index < count; ++index) + identifier += arguments[index]; + var color = _CPControlCachedThreePartImagePattern[identifier]; + if (!color) + { + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPControl, "class")), + path = aClassName + "/" + identifier; + sizes = sizes[identifier]; + color = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPThreePartImage, "alloc"), "initWithImageSlices:isVertical:", [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", path + "0.png"), sizes[0]), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", path + "1.png"), sizes[1]), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", path + "2.png"), sizes[2]) + ], isVertical)); + _CPControlCachedThreePartImagePattern[identifier] = color; + } + return color; +} + +p;10;CPCookie.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;1831; +{var the_class = objj_allocateClassPair(CPObject, "CPCookie"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_cookieName"), new objj_ivar("_cookieValue"), new objj_ivar("_expires")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithName:"), function $CPCookie__initWithName_(self, _cmd, aName) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + _cookieName = aName; + _cookieValue = objj_msgSend(self, "_readCookieValue"); + return self; +} +}), new objj_method(sel_getUid("value"), function $CPCookie__value(self, _cmd) +{ with(self) +{ + return _cookieValue; +} +}), new objj_method(sel_getUid("name"), function $CPCookie__name(self, _cmd) +{ with(self) +{ + return _cookieName; +} +}), new objj_method(sel_getUid("expires"), function $CPCookie__expires(self, _cmd) +{ with(self) +{ + return _expires; +} +}), new objj_method(sel_getUid("setValue:expires:domain:"), function $CPCookie__setValue_expires_domain_(self, _cmd, value, date, domain) +{ with(self) +{ + if(date) + var expires = "; expires="+date.toGMTString(); + else + var expires = ""; + if(domain) + domain = "; domain="+domain; + else + domain = ""; + document.cookie = _cookieName+"="+value+expires+"; path=/"+domain; +} +}), new objj_method(sel_getUid("_readCookieValue"), function $CPCookie___readCookieValue(self, _cmd) +{ with(self) +{ + var nameEQ = _cookieName + "="; + var ca = document.cookie.split(';'); + for(var i=0;i < ca.length;i++) { + var c = ca[i]; + while (c.charAt(0)==' ') c = c.substring(1,c.length); + if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); + } + return ""; +} +})]); +} + +p;12;CPDocument.jI;21;Foundation/CPString.jI;20;Foundation/CPArray.ji;13;CPResponder.ji;20;CPWindowController.jc;17281; +CPSaveOperation = 0; +CPSaveAsOperation = 1; +CPSaveToOperation = 2; +CPAutosaveOperation = 3; +CPChangeDone = 0; +CPChangeUndone = 1; +CPChangeCleared = 2; +CPChangeReadOtherContents = 3; +CPChangeAutosaved = 4; +CPDocumentWillSaveNotification = "CPDocumentWillSaveNotification"; +CPDocumentDidSaveNotification = "CPDocumentDidSaveNotification"; +CPDocumentDidFailToSaveNotification = "CPDocumentDidFailToSaveNotification"; +var CPDocumentUntitledCount = 0; +{var the_class = objj_allocateClassPair(CPResponder, "CPDocument"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_fileURL"), new objj_ivar("_fileType"), new objj_ivar("_windowControllers"), new objj_ivar("_untitledDocumentIndex"), new objj_ivar("_hasUndoManager"), new objj_ivar("_undoManager"), new objj_ivar("_changeCount"), new objj_ivar("_readConnection"), new objj_ivar("_writeRequest")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPDocument__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "init"); + if (self) + { + _windowControllers = []; + _hasUndoManager = YES; + _changeCount = 0; + objj_msgSend(self, "setNextResponder:", CPApp); + } + return self; +} +}), new objj_method(sel_getUid("initWithType:error:"), function $CPDocument__initWithType_error_(self, _cmd, aType, anError) +{ with(self) +{ + self = objj_msgSend(self, "init"); + if (self) + objj_msgSend(self, "setFileType:", aType); + return self; +} +}), new objj_method(sel_getUid("initWithContentsOfURL:ofType:delegate:didReadSelector:contextInfo:"), function $CPDocument__initWithContentsOfURL_ofType_delegate_didReadSelector_contextInfo_(self, _cmd, anAbsoluteURL, aType, aDelegate, aDidReadSelector, aContextInfo) +{ with(self) +{ + self = objj_msgSend(self, "init"); + if (self) + { + objj_msgSend(self, "readFromURL:ofType:delegate:didReadSelector:contextInfo:", anAbsoluteURL, aType, aDelegate, aDidReadSelector, aContextInfo); + objj_msgSend(self, "setFileURL:", anAbsoluteURL); + objj_msgSend(self, "setFileType:", aType); + } + return self; +} +}), new objj_method(sel_getUid("initForURL:withContentsOfURL:ofType:delegate:didReadSelector:contextInfo:"), function $CPDocument__initForURL_withContentsOfURL_ofType_delegate_didReadSelector_contextInfo_(self, _cmd, anAbsoluteURL, absoluteContentsURL, aType, aDelegate, aDidReadSelector, aContextInfo) +{ with(self) +{ + self = objj_msgSend(self, "init"); + if (self) + { + objj_msgSend(self, "readFromURL:ofType:delegate:didReadSelector:contextInfo:", absoluteContentsURL, aType, aDelegate, aDidReadSelector, aContextInfo); + objj_msgSend(self, "setFileURL:", anAbsoluteURL); + objj_msgSend(self, "setFileType:", aType); + } + return self; +} +}), new objj_method(sel_getUid("dataOfType:error:"), function $CPDocument__dataOfType_error_(self, _cmd, aType, anError) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "dataOfType:error: must be overridden by the document subclass."); +} +}), new objj_method(sel_getUid("readFromData:ofType:error:"), function $CPDocument__readFromData_ofType_error_(self, _cmd, aData, aType, anError) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "readFromData:ofType: must be overridden by the document subclass."); +} +}), new objj_method(sel_getUid("makeWindowControllers"), function $CPDocument__makeWindowControllers(self, _cmd) +{ with(self) +{ + var controller = objj_msgSend(objj_msgSend(CPWindowController, "alloc"), "initWithWindowCibName:", nil); + objj_msgSend(self, "addWindowController:", controller); +} +}), new objj_method(sel_getUid("windowControllers"), function $CPDocument__windowControllers(self, _cmd) +{ with(self) +{ + return _windowControllers; +} +}), new objj_method(sel_getUid("addWindowController:"), function $CPDocument__addWindowController_(self, _cmd, aWindowController) +{ with(self) +{ + objj_msgSend(_windowControllers, "addObject:", aWindowController); + if (objj_msgSend(aWindowController, "document") != self) + { + objj_msgSend(aWindowController, "setNextResponder:", self); + objj_msgSend(aWindowController, "setDocument:", self); + } +} +}), new objj_method(sel_getUid("showWindows"), function $CPDocument__showWindows(self, _cmd) +{ with(self) +{ + objj_msgSend(_windowControllers, "makeObjectsPerformSelector:withObject:", sel_getUid("showWindow:"), self); +} +}), new objj_method(sel_getUid("displayName"), function $CPDocument__displayName(self, _cmd) +{ with(self) +{ + if (_fileURL) + return objj_msgSend(_fileURL, "lastPathComponent"); + if (!_untitledDocumentIndex) + _untitledDocumentIndex = ++CPDocumentUntitledCount; + if (_untitledDocumentIndex == 1) + return "Untitled"; + return "Untitled " + _untitledDocumentIndex; +} +}), new objj_method(sel_getUid("windowCibName"), function $CPDocument__windowCibName(self, _cmd) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("windowControllerDidLoadNib:"), function $CPDocument__windowControllerDidLoadNib_(self, _cmd, aWindowController) +{ with(self) +{ +} +}), new objj_method(sel_getUid("windowControllerWillLoadNib:"), function $CPDocument__windowControllerWillLoadNib_(self, _cmd, aWindowController) +{ with(self) +{ +} +}), new objj_method(sel_getUid("readFromURL:ofType:delegate:didReadSelector:contextInfo:"), function $CPDocument__readFromURL_ofType_delegate_didReadSelector_contextInfo_(self, _cmd, anAbsoluteURL, aType, aDelegate, aDidReadSelector, aContextInfo) +{ with(self) +{ + objj_msgSend(_readConnection, "cancel"); + _readConnection = objj_msgSend(CPURLConnection, "connectionWithRequest:delegate:", objj_msgSend(CPURLRequest, "requestWithURL:", anAbsoluteURL), self); + _readConnection.session = _CPReadSessionMake(aType, aDelegate, aDidReadSelector, aContextInfo); +} +}), new objj_method(sel_getUid("fileURL"), function $CPDocument__fileURL(self, _cmd) +{ with(self) +{ + return _fileURL; +} +}), new objj_method(sel_getUid("setFileURL:"), function $CPDocument__setFileURL_(self, _cmd, aFileURL) +{ with(self) +{ + if (_fileURL == aFileURL) + return; + _fileURL = aFileURL; + objj_msgSend(_windowControllers, "makeObjectsPerformSelector:", sel_getUid("synchronizeWindowTitleWithDocumentName")); +} +}), new objj_method(sel_getUid("saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:"), function $CPDocument__saveToURL_ofType_forSaveOperation_delegate_didSaveSelector_contextInfo_(self, _cmd, anAbsoluteURL, aTypeName, aSaveOperation, aDelegate, aDidSaveSelector, aContextInfo) +{ with(self) +{ + var data = objj_msgSend(self, "dataOfType:error:", objj_msgSend(self, "fileType"), nil), + oldChangeCount = _changeCount; + _writeRequest = objj_msgSend(CPURLRequest, "requestWithURL:", anAbsoluteURL); + objj_msgSend(_writeRequest, "setHTTPMethod:", "POST"); + objj_msgSend(_writeRequest, "setHTTPBody:", objj_msgSend(data, "string")); + objj_msgSend(_writeRequest, "setValue:forHTTPHeaderField:", "close", "Connection"); + if (aSaveOperation == CPSaveOperation) + objj_msgSend(_writeRequest, "setValue:forHTTPHeaderField:", "true", "x-cappuccino-overwrite"); + if (aSaveOperation != CPSaveToOperation) + objj_msgSend(self, "updateChangeCount:", CPChangeCleared); + var connection = objj_msgSend(CPURLConnection, "connectionWithRequest:delegate:", _writeRequest, self); + connection.session = _CPSaveSessionMake(anAbsoluteURL, aSaveOperation, oldChangeCount, aDelegate, aDidSaveSelector, aContextInfo, connection); +} +}), new objj_method(sel_getUid("connection:didReceiveResponse:"), function $CPDocument__connection_didReceiveResponse_(self, _cmd, aConnection, aResponse) +{ with(self) +{ + if (!objj_msgSend(aResponse, "isKindOfClass:", objj_msgSend(CPHTTPURLResponse, "class"))) + return; + var statusCode = objj_msgSend(aResponse, "statusCode"); + if (statusCode === 200) + return; + var session = aConnection.session; + if (aConnection == _readConnection) + { + objj_msgSend(aConnection, "cancel"); + alert("There was an error retrieving the document."); + objj_msgSend(session.delegate, session.didReadSelector, self, NO, session.contextInfo); + } + else + { + if (statusCode == 409) + { + objj_msgSend(aConnection, "cancel"); + if (confirm("There already exists a file with that name, would you like to overwrite it?")) + { + objj_msgSend(_writeRequest, "setValue:forHTTPHeaderField:", "true", "x-cappuccino-overwrite"); + objj_msgSend(aConnection, "start"); + } + else + { + if (session.saveOperation != CPSaveToOperation) + { + _changeCount += session.changeCount; + objj_msgSend(_windowControllers, "makeObjectsPerformSelector:withObject:", sel_getUid("setDocumentEdited:"), objj_msgSend(self, "isDocumentEdited")); + } + _writeRequest = nil; + objj_msgSend(session.delegate, session.didSaveSelector, self, NO, session.contextInfo); + } + } + } +} +}), new objj_method(sel_getUid("connection:didReceiveData:"), function $CPDocument__connection_didReceiveData_(self, _cmd, aConnection, aData) +{ with(self) +{ + var session = aConnection.session; + if (aConnection == _readConnection) + { + objj_msgSend(self, "readFromData:ofType:error:", objj_msgSend(CPData, "dataWithString:", aData), session.fileType, nil); + objj_msgSend(session.delegate, session.didReadSelector, self, YES, session.contextInfo); + } + else + { + if (session.saveOperation != CPSaveToOperation) + objj_msgSend(self, "setFileURL:", session.absoluteURL); + _writeRequest = nil; + objj_msgSend(session.delegate, session.didSaveSelector, self, YES, session.contextInfo); + } +} +}), new objj_method(sel_getUid("connection:didFailWithError:"), function $CPDocument__connection_didFailWithError_(self, _cmd, aConnection, anError) +{ with(self) +{ + var session = aConnection.session; + if (_readConnection == aConnection) + objj_msgSend(session.delegate, session.didReadSelector, self, NO, session.contextInfo); + else + { + if (session.saveOperation != CPSaveToOperation) + { + _changeCount += session.changeCount; + objj_msgSend(_windowControllers, "makeObjectsPerformSelector:withObject:", sel_getUid("setDocumentEdited:"), objj_msgSend(self, "isDocumentEdited")); + } + _writeRequest = nil; + alert("There was an error saving the document."); + objj_msgSend(session.delegate, session.didSaveSelector, self, NO, session.contextInfo); + } +} +}), new objj_method(sel_getUid("connectionDidFinishLoading:"), function $CPDocument__connectionDidFinishLoading_(self, _cmd, aConnection) +{ with(self) +{ + if (_readConnection == aConnection) + _readConnection = nil; +} +}), new objj_method(sel_getUid("isDocumentEdited"), function $CPDocument__isDocumentEdited(self, _cmd) +{ with(self) +{ + return _changeCount != 0; +} +}), new objj_method(sel_getUid("updateChangeCount:"), function $CPDocument__updateChangeCount_(self, _cmd, aChangeType) +{ with(self) +{ + if (aChangeType == CPChangeDone) + ++_changeCount; + else if (aChangeType == CPChangeUndone) + --_changeCount; + else if (aChangeType == CPChangeCleared) + _changeCount = 0; + objj_msgSend(_windowControllers, "makeObjectsPerformSelector:withObject:", sel_getUid("setDocumentEdited:"), objj_msgSend(self, "isDocumentEdited")); +} +}), new objj_method(sel_getUid("setFileType:"), function $CPDocument__setFileType_(self, _cmd, aType) +{ with(self) +{ + _fileType = aType; +} +}), new objj_method(sel_getUid("fileType"), function $CPDocument__fileType(self, _cmd) +{ with(self) +{ + return _fileType; +} +}), new objj_method(sel_getUid("hasUndoManager"), function $CPDocument__hasUndoManager(self, _cmd) +{ with(self) +{ + return _hasUndoManager; +} +}), new objj_method(sel_getUid("setHasUndoManager:"), function $CPDocument__setHasUndoManager_(self, _cmd, aFlag) +{ with(self) +{ + if (_hasUndoManager == aFlag) + return; + _hasUndoManager = aFlag; + if (!_hasUndoManager) + objj_msgSend(self, "setUndoManager:", nil); +} +}), new objj_method(sel_getUid("_undoManagerWillCloseGroup:"), function $CPDocument___undoManagerWillCloseGroup_(self, _cmd, aNotification) +{ with(self) +{ + var undoManager = objj_msgSend(aNotification, "object"); + if (objj_msgSend(undoManager, "isUndoing") || objj_msgSend(undoManager, "isRedoing")) + return; + objj_msgSend(self, "updateChangeCount:", CPChangeDone); +} +}), new objj_method(sel_getUid("_undoManagerDidUndoChange:"), function $CPDocument___undoManagerDidUndoChange_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "updateChangeCount:", CPChangeUndone); +} +}), new objj_method(sel_getUid("_undoManagerDidRedoChange:"), function $CPDocument___undoManagerDidRedoChange_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "updateChangeCount:", CPChangeDone); +} +}), new objj_method(sel_getUid("setUndoManager:"), function $CPDocument__setUndoManager_(self, _cmd, anUndoManager) +{ with(self) +{ + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_undoManager) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPUndoManagerDidUndoChangeNotification, _undoManager); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPUndoManagerDidRedoChangeNotification, _undoManager); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPUndoManagerWillCloseUndoGroupNotification, _undoManager); + } + _undoManager = anUndoManager; + if (_undoManager) + { + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("_undoManagerDidUndoChange:"), CPUndoManagerDidUndoChangeNotification, _undoManager); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("_undoManagerDidRedoChange:"), CPUndoManagerDidRedoChangeNotification, _undoManager); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("_undoManagerWillCloseGroup:"), CPUndoManagerWillCloseUndoGroupNotification, _undoManager); + } +} +}), new objj_method(sel_getUid("undoManager"), function $CPDocument__undoManager(self, _cmd) +{ with(self) +{ + if (_hasUndoManager && !_undoManager) + objj_msgSend(self, "setUndoManager:", objj_msgSend(objj_msgSend(CPUndoManager, "alloc"), "init")); + return _undoManager; +} +}), new objj_method(sel_getUid("windowWillReturnUndoManager:"), function $CPDocument__windowWillReturnUndoManager_(self, _cmd, aWindow) +{ with(self) +{ + return objj_msgSend(self, "undoManager"); +} +}), new objj_method(sel_getUid("saveDocument:"), function $CPDocument__saveDocument_(self, _cmd, aSender) +{ with(self) +{ + if (_fileURL) + { + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPDocumentWillSaveNotification, self); + objj_msgSend(self, "saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:", _fileURL, objj_msgSend(self, "fileType"), CPSaveOperation, self, sel_getUid("document:didSave:contextInfo:"), NULL); + } + else + objj_msgSend(self, "saveDocumentAs:", self); +} +}), new objj_method(sel_getUid("saveDocumentAs:"), function $CPDocument__saveDocumentAs_(self, _cmd, aSender) +{ with(self) +{ + _documentName = window.prompt("Document Name:"); + if (!_documentName) + return; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPDocumentWillSaveNotification, self); + objj_msgSend(self, "saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:", objj_msgSend(self, "proposedFileURL"), objj_msgSend(self, "fileType"), CPSaveAsOperation, self, sel_getUid("document:didSave:contextInfo:"), NULL); +} +}), new objj_method(sel_getUid("document:didSave:contextInfo:"), function $CPDocument__document_didSave_contextInfo_(self, _cmd, aDocument, didSave, aContextInfo) +{ with(self) +{ + if (didSave) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPDocumentDidSaveNotification, self); + else + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPDocumentDidFailToSaveNotification, self); +} +})]); +} +var _CPReadSessionMake = function(aType, aDelegate, aDidReadSelector, aContextInfo) +{ + return { fileType:aType, delegate:aDelegate, didReadSelector:aDidReadSelector, contextInfo:aContextInfo }; +} +var _CPSaveSessionMake = function(anAbsoluteURL, aSaveOperation, aChangeCount, aDelegate, aDidSaveSelector, aContextInfo, aConnection) +{ + return { absoluteURL:anAbsoluteURL, saveOperation:aSaveOperation, changeCount:aChangeCount, delegate:aDelegate, didSaveSelector:aDidSaveSelector, contextInfo:aContextInfo, connection:aConnection }; +} + +p;22;CPDocumentController.jI;21;Foundation/CPObject.jI;21;Foundation/CPBundle.ji;12;CPDocument.jc;8091; +var CPSharedDocumentController = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPDocumentController"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_documents"), new objj_ivar("_documentTypes")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPDocumentController__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _documents = objj_msgSend(objj_msgSend(CPArray, "alloc"), "init"); + if (!CPSharedDocumentController) + CPSharedDocumentController = self; + _documentTypes = objj_msgSend(objj_msgSend(objj_msgSend(CPBundle, "mainBundle"), "infoDictionary"), "objectForKey:", "CPBundleDocumentTypes"); + } + return self; +} +}), new objj_method(sel_getUid("documentForURL:"), function $CPDocumentController__documentForURL_(self, _cmd, aURL) +{ with(self) +{ + var index = 0, + count = objj_msgSend(_documents, "count"); + for (; index < count; ++index) + { + var theDocument = _documents[index]; + if (objj_msgSend(objj_msgSend(theDocument, "fileURL"), "isEqual:", aURL)) + return theDocument; + } + return nil; +} +}), new objj_method(sel_getUid("openUntitledDocumentOfType:display:"), function $CPDocumentController__openUntitledDocumentOfType_display_(self, _cmd, aType, shouldDisplay) +{ with(self) +{ + var theDocument = objj_msgSend(self, "makeUntitledDocumentOfType:error:", aType, nil); + if (theDocument) + objj_msgSend(self, "addDocument:", theDocument); + if (shouldDisplay) + { + objj_msgSend(theDocument, "makeWindowControllers"); + objj_msgSend(theDocument, "showWindows"); + } + return theDocument; +} +}), new objj_method(sel_getUid("makeUntitledDocumentOfType:error:"), function $CPDocumentController__makeUntitledDocumentOfType_error_(self, _cmd, aType, anError) +{ with(self) +{ + return objj_msgSend(objj_msgSend(objj_msgSend(self, "documentClassForType:", aType), "alloc"), "initWithType:error:", aType, anError); +} +}), new objj_method(sel_getUid("openDocumentWithContentsOfURL:display:error:"), function $CPDocumentController__openDocumentWithContentsOfURL_display_error_(self, _cmd, anAbsoluteURL, shouldDisplay, anError) +{ with(self) +{ + var result = objj_msgSend(self, "documentForURL:", anAbsoluteURL); + if (!result) + { + var type = objj_msgSend(self, "typeForContentsOfURL:error:", anAbsoluteURL, anError); + result = objj_msgSend(self, "makeDocumentWithContentsOfURL:ofType:delegate:didReadSelector:contextInfo:", anAbsoluteURL, type, self, sel_getUid("document:didRead:contextInfo:"), objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", shouldDisplay, "shouldDisplay")); + } + else if (shouldDisplay) + objj_msgSend(result, "showWindows"); + return result; +} +}), new objj_method(sel_getUid("reopenDocumentForURL:withContentsOfURL:error:"), function $CPDocumentController__reopenDocumentForURL_withContentsOfURL_error_(self, _cmd, anAbsoluteURL, absoluteContentsURL, anError) +{ with(self) +{ + return objj_msgSend(self, "makeDocumentForURL:withContentsOfURL:ofType:delegate:didReadSelector:contextInfo:", anAbsoluteURL, absoluteContentsURL, objj_msgSend(objj_msgSend(_documentTypes, "objectAtIndex:", 0), "objectForKey:", "CPBundleTypeName"), self, sel_getUid("document:didRead:contextInfo:"), nil); +} +}), new objj_method(sel_getUid("makeDocumentWithContentsOfURL:ofType:delegate:didReadSelector:contextInfo:"), function $CPDocumentController__makeDocumentWithContentsOfURL_ofType_delegate_didReadSelector_contextInfo_(self, _cmd, anAbsoluteURL, aType, aDelegate, aSelector, aContextInfo) +{ with(self) +{ + return objj_msgSend(objj_msgSend(objj_msgSend(self, "documentClassForType:", aType), "alloc"), "initWithContentsOfURL:ofType:delegate:didReadSelector:contextInfo:", anAbsoluteURL, aType, aDelegate, aSelector, aContextInfo); +} +}), new objj_method(sel_getUid("makeDocumentForURL:withContentsOfURL:ofType:delegate:didReadSelector:contextInfo:"), function $CPDocumentController__makeDocumentForURL_withContentsOfURL_ofType_delegate_didReadSelector_contextInfo_(self, _cmd, anAbsoluteURL, absoluteContentsURL, aType, aDelegate, aSelector, aContextInfo) +{ with(self) +{ + return objj_msgSend(objj_msgSend(objj_msgSend(self, "documentClassForType:", aType), "alloc"), "initForURL:withContentsOfURL:ofType:delegate:didReadSelector:contextInfo:", anAbsoluteURL, absoluteContentsURL, aType, aDelegate, aSelector, aContextInfo); +} +}), new objj_method(sel_getUid("document:didRead:contextInfo:"), function $CPDocumentController__document_didRead_contextInfo_(self, _cmd, aDocument, didRead, aContextInfo) +{ with(self) +{ + if (!didRead) + return; + objj_msgSend(self, "addDocument:", aDocument); + objj_msgSend(aDocument, "makeWindowControllers"); + if (objj_msgSend(aContextInfo, "objectForKey:", "shouldDisplay")) + objj_msgSend(aDocument, "showWindows"); +} +}), new objj_method(sel_getUid("newDocument:"), function $CPDocumentController__newDocument_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "openUntitledDocumentOfType:display:", objj_msgSend(objj_msgSend(_documentTypes, "objectAtIndex:", 0), "objectForKey:", "CPBundleTypeName"), YES); +} +}), new objj_method(sel_getUid("documents"), function $CPDocumentController__documents(self, _cmd) +{ with(self) +{ + return _documents; +} +}), new objj_method(sel_getUid("addDocument:"), function $CPDocumentController__addDocument_(self, _cmd, aDocument) +{ with(self) +{ + objj_msgSend(_documents, "addObject:", aDocument); +} +}), new objj_method(sel_getUid("removeDocument:"), function $CPDocumentController__removeDocument_(self, _cmd, aDocument) +{ with(self) +{ + objj_msgSend(_documents, "removeObjectIdenticalTo:", aDocument); +} +}), new objj_method(sel_getUid("defaultType"), function $CPDocumentController__defaultType(self, _cmd) +{ with(self) +{ + return objj_msgSend(_documentTypes[0], "objectForKey:", "CPBundleTypeName"); +} +}), new objj_method(sel_getUid("typeForContentsOfURL:error:"), function $CPDocumentController__typeForContentsOfURL_error_(self, _cmd, anAbsoluteURL, outError) +{ with(self) +{ + var index = 0, + count = _documentTypes.length, + extension = objj_msgSend(objj_msgSend(anAbsoluteURL, "pathExtension"), "lowercaseString"); + for (; index < count; ++index) + { + var documentType = _documentTypes[index], + extensions = objj_msgSend(documentType, "objectForKey:", "CFBundleTypeExtensions"), + extensionIndex = 0, + extensionCount = extensions.length; + for (; extensionIndex < extensionCount; ++extensionIndex) + if (objj_msgSend(extensions[extensionIndex], "lowercaseString") == extension) + return objj_msgSend(documentType, "objectForKey:", "CPBundleTypeName"); + } + return objj_msgSend(self, "defaultType"); +} +}), new objj_method(sel_getUid("_infoForType:"), function $CPDocumentController___infoForType_(self, _cmd, aType) +{ with(self) +{ + var i = 0, + count = objj_msgSend(_documentTypes, "count"); + for (;i < count; ++i) + { + var documentType = _documentTypes[i]; + if (objj_msgSend(documentType, "objectForKey:", "CPBundleTypeName") == aType) + return documentType; + } + return nil; +} +}), new objj_method(sel_getUid("documentClassForType:"), function $CPDocumentController__documentClassForType_(self, _cmd, aType) +{ with(self) +{ + var className = objj_msgSend(objj_msgSend(self, "_infoForType:", aType), "objectForKey:", "CPDocumentClass"); + return className ? CPClassFromString(className) : nil; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("sharedDocumentController"), function $CPDocumentController__sharedDocumentController(self, _cmd) +{ with(self) +{ + if (!CPSharedDocumentController) + objj_msgSend(objj_msgSend(self, "alloc"), "init"); + return CPSharedDocumentController; +} +})]); +} + +p;20;CPDOMDisplayServer.jI;22;Foundation/CPRunLoop.jc;6156; +var CPDOMDisplayRunLoop = nil; +CPDOMDisplayServerInstructions = []; +CPDOMDisplayServerInstructionCount = 0; +CPDOMDisplayServerViews = []; +CPDOMDisplayServerViewsCount = 0; +CPDOMDisplayServerViewsContext = {}; +{var the_class = objj_allocateClassPair(CPObject, "CPDOMDisplayServer"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(meta_class, [new objj_method(sel_getUid("start"), function $CPDOMDisplayServer__start(self, _cmd) +{ with(self) +{ + CPDOMDisplayRunLoop = objj_msgSend(CPRunLoop, "currentRunLoop"); + objj_msgSend(CPDOMDisplayRunLoop, "performSelector:target:argument:order:modes:", sel_getUid("run"), CPDOMDisplayServer, nil, 0, [CPDefaultRunLoopMode]); +} +}), new objj_method(sel_getUid("run"), function $CPDOMDisplayServer__run(self, _cmd) +{ with(self) +{ + while (CPDOMDisplayServerInstructionCount || CPDOMDisplayServerViewsCount) + { + var index = 0; + while (index < CPDOMDisplayServerInstructionCount) + { + var instruction = CPDOMDisplayServerInstructions[index++]; + try{ + switch (instruction) + { + case 0: + case 1: + case 2: + case 3: var element = CPDOMDisplayServerInstructions[index], + style = element.style, + x = (instruction == 0 || instruction == 2) ? "left" : "right", + y = (instruction == 0 || instruction == 1) ? "top" : "bottom"; + CPDOMDisplayServerInstructions[index++] = nil; + var transform = CPDOMDisplayServerInstructions[index++]; + if (transform) + { + var point = { x:CPDOMDisplayServerInstructions[index++], y:CPDOMDisplayServerInstructions[index++] }, + transformed = { x:point.x * transform.a + point.y * transform.c + transform.tx, y:point.x * transform.b + point.y * transform.d + transform.ty }; + style[x] = ROUND(transformed.x) + "px"; + style[y] = ROUND(transformed.y) + "px"; + } + else + { + style[x] = ROUND(CPDOMDisplayServerInstructions[index++]) + "px"; + style[y] = ROUND(CPDOMDisplayServerInstructions[index++]) + "px"; + } + element.CPDOMDisplayContext[0] = -1; + break; + case 4: var element = CPDOMDisplayServerInstructions[index], + style = element.style; + CPDOMDisplayServerInstructions[index++] = nil; + element.CPDOMDisplayContext[4] = -1; + style.width = MAX(0.0, ROUND(CPDOMDisplayServerInstructions[index++])) + "px"; + style.height = MAX(0.0, ROUND(CPDOMDisplayServerInstructions[index++])) + "px"; + break; + case 5: var element = CPDOMDisplayServerInstructions[index]; + CPDOMDisplayServerInstructions[index++] = nil; + element.CPDOMDisplayContext[5] = -1; + element.width = MAX(0.0, ROUND(CPDOMDisplayServerInstructions[index++])); + element.height = MAX(0.0, ROUND(CPDOMDisplayServerInstructions[index++])); + break; + case 6: CPDOMDisplayServerInstructions[index].appendChild(CPDOMDisplayServerInstructions[index + 1]); + CPDOMDisplayServerInstructions[index++] = nil; + CPDOMDisplayServerInstructions[index++] = nil; + break; + case 7: CPDOMDisplayServerInstructions[index].insertBefore(CPDOMDisplayServerInstructions[index + 1], CPDOMDisplayServerInstructions[index + 2]); + CPDOMDisplayServerInstructions[index++] = nil; + CPDOMDisplayServerInstructions[index++] = nil; + CPDOMDisplayServerInstructions[index++] = nil; + break; + case 8: CPDOMDisplayServerInstructions[index].removeChild(CPDOMDisplayServerInstructions[index + 1]); + CPDOMDisplayServerInstructions[index++] = nil; + CPDOMDisplayServerInstructions[index++] = nil; + break; + }}catch(e) { CPLog("here?" + instruction) } + } + CPDOMDisplayServerInstructionCount = 0; + var views = CPDOMDisplayServerViews, + index = 0, + count = CPDOMDisplayServerViewsCount; + CPDOMDisplayServerViews = []; + CPDOMDisplayServerViewsCount = 0; + for (; index < count; ++index) + { + var view = views[index]; + delete CPDOMDisplayServerViewsContext[objj_msgSend(view, "hash")]; + objj_msgSend(view, "layoutIfNeeded"); + objj_msgSend(view, "displayIfNeeded"); + } + } + objj_msgSend(CPDOMDisplayRunLoop, "performSelector:target:argument:order:modes:", sel_getUid("run"), CPDOMDisplayServer, nil, 0, [CPDefaultRunLoopMode]); +} +})]); +} +objj_msgSend(CPDOMDisplayServer, "start"); + +p;19;CPDOMWindowBridge.jI;21;Foundation/CPObject.jI;22;Foundation/CPRunLoop.ji;9;CPEvent.ji;17;CPCompatibility.ji;18;CPDOMWindowLayer.jc;33285; +CPSharedDOMWindowBridge = nil; +var ExcludedDOMElements = []; +var CPDOMWindowGetFrame, + CPDOMEventGetClickCount, + CPDOMEventStop; +{var the_class = objj_allocateClassPair(CPObject, "CPDOMWindowBridge"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_orderedWindows"), new objj_ivar("_mouseDownWindow"), new objj_ivar("_DOMWindow"), new objj_ivar("_DOMBodyElement"), new objj_ivar("_DOMFocusElement"), new objj_ivar("_windowLevels"), new objj_ivar("_windowLayers"), new objj_ivar("_frame"), new objj_ivar("_contentBounds"), new objj_ivar("_mouseIsDown"), new objj_ivar("_lastMouseUp"), new objj_ivar("_lastMouseDown"), new objj_ivar("_charCodes"), new objj_ivar("_keyCode"), new objj_ivar("_DOMEventMode"), new objj_ivar("_DOMPasteboardElement"), new objj_ivar("_pasteboardKeyDownEvent"), new objj_ivar("_overriddenEventType")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPDOMWindowBridge__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + alert("unimplemented"); +} +}), new objj_method(sel_getUid("_initWithDOMWindow:"), function $CPDOMWindowBridge___initWithDOMWindow_(self, _cmd, aDOMWindow) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _DOMWindow = aDOMWindow; + _windowLevels = []; + _windowLayers = objj_msgSend(CPDictionary, "dictionary"); + _DOMBodyElement = document.getElementsByTagName("body")[0]; + _DOMBodyElement.innerHTML = ""; + _DOMBodyElement.style.overflow = "hidden"; + _DOMBodyElement.style.webkitTouchCallout = "none"; + objj_msgSend(CPString, "_resetSize"); + if (document.documentElement) + document.documentElement.style.overflow = "hidden"; + _frame = CPDOMWindowGetFrame(_DOMWindow); + _contentBounds = CGRectMake(0.0, 0.0, CPRectGetWidth(_frame), CPRectGetHeight(_frame)); + _DOMFocusElement = document.createElement("input"); + _DOMFocusElement.style.position = "absolute"; + _DOMFocusElement.style.zIndex = "-1000"; + _DOMFocusElement.style.opacity = "0"; + _DOMFocusElement.style.filter = "alpha(opacity=0)"; + _DOMBodyElement.appendChild(_DOMFocusElement); + _DOMPasteboardElement = document.createElement("input"); + _DOMPasteboardElement.style.position = "absolute"; + _DOMPasteboardElement.style.top = "-10000px"; + _DOMPasteboardElement.style.zIndex = "99"; + _DOMBodyElement.appendChild(_DOMPasteboardElement); + _DOMPasteboardElement.blur(); + _charCodes = {}; + var theClass = objj_msgSend(self, "class"), + keyEventSelector = sel_getUid("_bridgeKeyEvent:"), + keyEventImplementation = class_getMethodImplementation(theClass, keyEventSelector), + keyEventCallback = function (anEvent) { keyEventImplementation(self, nil, anEvent); }, + mouseEventSelector = sel_getUid("_bridgeMouseEvent:"), + mouseEventImplementation = class_getMethodImplementation(theClass, mouseEventSelector), + mouseEventCallback = function (anEvent) { mouseEventImplementation(self, nil, anEvent); }, + scrollEventSelector = sel_getUid("_bridgeScrollEvent:"), + scrollEventImplementation = class_getMethodImplementation(theClass, scrollEventSelector), + scrollEventCallback = function (anEvent) { scrollEventImplementation(self, nil, anEvent); }, + resizeEventSelector = sel_getUid("_bridgeResizeEvent:"), + resizeEventImplementation = class_getMethodImplementation(theClass, resizeEventSelector), + resizeEventCallback = function (anEvent) { resizeEventImplementation(self, nil, anEvent); }, + touchEventSelector = sel_getUid("_bridgeTouchEvent:"), + touchEventImplementation = class_getMethodImplementation(theClass, touchEventSelector), + touchEventCallback = function (anEvent) { touchEventImplementation(self, nil, anEvent); }, + theDocument = _DOMWindow.document; + if (document.addEventListener) + { + _DOMWindow.addEventListener("resize", resizeEventCallback, NO); + theDocument.addEventListener(CPDOMEventMouseUp, mouseEventCallback, NO); + theDocument.addEventListener(CPDOMEventMouseDown, mouseEventCallback, NO); + theDocument.addEventListener(CPDOMEventMouseMoved, mouseEventCallback, NO); + theDocument.addEventListener(CPDOMEventKeyUp, keyEventCallback, NO); + theDocument.addEventListener(CPDOMEventKeyDown, keyEventCallback, NO); + theDocument.addEventListener(CPDOMEventKeyPress, keyEventCallback, NO); + theDocument.addEventListener(CPDOMEventTouchStart, touchEventCallback, NO); + theDocument.addEventListener(CPDOMEventTouchEnd, touchEventCallback, NO); + theDocument.addEventListener(CPDOMEventTouchMove, touchEventCallback, NO); + theDocument.addEventListener(CPDOMEventTouchCancel, touchEventCallback, NO); + _DOMWindow.addEventListener("DOMMouseScroll", scrollEventCallback, NO); + _DOMWindow.addEventListener(CPDOMEventScrollWheel, scrollEventCallback, NO); + } + else if(document.attachEvent) + { + _DOMWindow.attachEvent("onresize", resizeEventCallback); + theDocument.attachEvent("on" + CPDOMEventMouseUp, mouseEventCallback); + theDocument.attachEvent("on" + CPDOMEventMouseDown, mouseEventCallback); + theDocument.attachEvent("on" + CPDOMEventMouseMoved, mouseEventCallback); + theDocument.attachEvent("on" + CPDOMEventDoubleClick, mouseEventCallback); + theDocument.attachEvent("on" + CPDOMEventKeyUp, keyEventCallback); + theDocument.attachEvent("on" + CPDOMEventKeyDown, keyEventCallback); + theDocument.attachEvent("on" + CPDOMEventKeyPress, keyEventCallback); + _DOMWindow.onmousewheel = scrollEventCallback; + theDocument.onmousewheel = scrollEventCallback; + theDocument.body.ondrag = function () { return NO; }; + theDocument.body.onselectstart = function () { return window.event.srcElement == _DOMPasteboardElement; }; + } + ExcludedDOMElements["INPUT"] = YES; + ExcludedDOMElements["SELECT"] = YES; + ExcludedDOMElements["TEXTAREA"] = YES; + ExcludedDOMElements["OPTION"] = YES; + } + return self; +} +}), new objj_method(sel_getUid("frame"), function $CPDOMWindowBridge__frame(self, _cmd) +{ with(self) +{ + return CGRectMakeCopy(_frame); +} +}), new objj_method(sel_getUid("visibleFrame"), function $CPDOMWindowBridge__visibleFrame(self, _cmd) +{ with(self) +{ + var frame = objj_msgSend(self, "frame"); + frame.origin = CGPointMakeZero(); + if (objj_msgSend(CPMenu, "menuBarVisible")) + { + var menuBarHeight = objj_msgSend(objj_msgSend(CPApp, "mainMenu"), "menuBarHeight"); + frame.origin.y += menuBarHeight; + frame.size.height -= menuBarHeight; + } + return frame; +} +}), new objj_method(sel_getUid("contentBounds"), function $CPDOMWindowBridge__contentBounds(self, _cmd) +{ with(self) +{ + return CPRectCreateCopy(_contentBounds); +} +}), new objj_method(sel_getUid("orderedWindowsAtLevel:"), function $CPDOMWindowBridge__orderedWindowsAtLevel_(self, _cmd, aLevel) +{ with(self) +{ + var layer = objj_msgSend(self, "layerAtLevel:create:", aLevel, NO); + if (!layer) + return []; + return objj_msgSend(layer, "orderedWindows"); +} +}), new objj_method(sel_getUid("layerAtLevel:create:"), function $CPDOMWindowBridge__layerAtLevel_create_(self, _cmd, aLevel, aFlag) +{ with(self) +{ + var layer = objj_msgSend(_windowLayers, "objectForKey:", aLevel); + if (!layer && aFlag) + { + layer = objj_msgSend(objj_msgSend(CPDOMWindowLayer, "alloc"), "initWithLevel:", aLevel); + objj_msgSend(_windowLayers, "setObject:forKey:", layer, aLevel); + var low = 0, + high = _windowLevels.length - 1, + middle; + while (low <= high) + { + middle = FLOOR((low + high) / 2); + if (_windowLevels[middle] > aLevel) + high = middle - 1; + else + low = middle + 1; + } + objj_msgSend(_windowLevels, "insertObject:atIndex:", aLevel, _windowLevels[middle] > aLevel ? middle : middle + 1); + layer._DOMElement.style.zIndex = aLevel; + _DOMBodyElement.appendChild(layer._DOMElement); + } + return layer; +} +}), new objj_method(sel_getUid("order:window:relativeTo:"), function $CPDOMWindowBridge__order_window_relativeTo_(self, _cmd, aPlace, aWindow, otherWindow) +{ with(self) +{ + var layer = objj_msgSend(self, "layerAtLevel:create:", objj_msgSend(aWindow, "level"), aPlace != CPWindowOut); + if (aPlace == CPWindowOut) + return objj_msgSend(layer, "removeWindow:", aWindow); + objj_msgSend(layer, "insertWindow:atIndex:", aWindow, (otherWindow ? (aPlace == CPWindowAbove ? otherWindow._index + 1 : otherWindow._index) : CPNotFound)); +} +}), new objj_method(sel_getUid("_dragHitTest:pasteboard:"), function $CPDOMWindowBridge___dragHitTest_pasteboard_(self, _cmd, aPoint, aPasteboard) +{ with(self) +{ + var levels = _windowLevels, + layers = _windowLayers, + levelCount = levels.length; + while (levelCount--) + { + if (levels[levelCount] >= CPDraggingWindowLevel) + continue; + var windows = objj_msgSend(layers, "objectForKey:", levels[levelCount])._windows, + windowCount = windows.length; + while (windowCount--) + { + var theWindow = windows[windowCount]; + if (objj_msgSend(theWindow, "containsPoint:", aPoint)) + return objj_msgSend(theWindow, "_dragHitTest:pasteboard:", aPoint, aPasteboard); + } + } + return nil; +} +}), new objj_method(sel_getUid("_propagateCurrentDOMEvent:"), function $CPDOMWindowBridge___propagateCurrentDOMEvent_(self, _cmd, aFlag) +{ with(self) +{ + StopDOMEventPropagation = !aFlag; +} +}), new objj_method(sel_getUid("hitTest:"), function $CPDOMWindowBridge__hitTest_(self, _cmd, location) +{ with(self) +{ + var levels = _windowLevels, + layers = _windowLayers, + levelCount = levels.length, + theWindow = nil; + while (levelCount-- && !theWindow) + { + var windows = objj_msgSend(layers, "objectForKey:", levels[levelCount])._windows, + windowCount = windows.length; + while (windowCount-- && !theWindow) + { + var candidateWindow = windows[windowCount]; + if (!candidateWindow._ignoresMouseEvents && objj_msgSend(candidateWindow, "containsPoint:", location)) + theWindow = candidateWindow; + } + } + return theWindow; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("sharedDOMWindowBridge"), function $CPDOMWindowBridge__sharedDOMWindowBridge(self, _cmd) +{ with(self) +{ + if (!CPSharedDOMWindowBridge) + CPSharedDOMWindowBridge = objj_msgSend(objj_msgSend(CPDOMWindowBridge, "alloc"), "_initWithDOMWindow:", window); + return CPSharedDOMWindowBridge; +} +})]); +} +var CPDOMWindowGetFrame = function(_DOMWindow) +{ + var frame = nil; + if (_DOMWindow.outerWidth) + frame = CGRectMake(0, 0, _DOMWindow.outerWidth, _DOMWindow.outerHeight); + else + frame = CGRectMake(0, 0, -1, -1); + if (window.screenTop) + frame.origin = CGPointMake(_DOMWindow.screenLeft, _DOMWindow.screenTop, 0); + else if (window.screenX) + frame.origin = CGPointMake(_DOMWindow.screenX, _DOMWindow.screenY, 0); + if (_DOMWindow.innerWidth) + frame.size = CGSizeMake(_DOMWindow.innerWidth, _DOMWindow.innerHeight); + else if (document.documentElement && document.documentElement.clientWidth) + frame.size = CGSizeMake(_DOMWindow.document.documentElement.clientWidth, _DOMWindow.document.documentElement.clientHeight); + else + frame.size = CGSizeMake(_DOMWindow.document.body.clientWidth, _DOMWindow.document.body.clientHeight); + return frame; +} +var KeyCodesToPrevent = {}, + CharacterKeysToPrevent = {}, + KeyCodesWithoutKeyPressEvents = { '8':1, '9':1, '37':1, '38':1, '39':1, '40':1, '46':1, '33':1, '34':1 }; +var CTRL_KEY_CODE = 17; +{ +var the_class = objj_getClass("CPDOMWindowBridge") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPDOMWindowBridge\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("preventCharacterKeysFromPropagating:"), function $CPDOMWindowBridge__preventCharacterKeysFromPropagating_(self, _cmd, characters) +{ with(self) +{ + for(var i=characters.length; i>0; i--) + CharacterKeysToPrevent[""+characters[i-1].toLowerCase()] = YES; +} +}), new objj_method(sel_getUid("preventCharacterKeyFromPropagating:"), function $CPDOMWindowBridge__preventCharacterKeyFromPropagating_(self, _cmd, character) +{ with(self) +{ + CharacterKeysToPrevent[character.toLowerCase()] = YES; +} +}), new objj_method(sel_getUid("clearCharacterKeysToPreventFromPropagating"), function $CPDOMWindowBridge__clearCharacterKeysToPreventFromPropagating(self, _cmd) +{ with(self) +{ + CharacterKeysToPrevent = {}; +} +}), new objj_method(sel_getUid("preventKeyCodesFromPropagating:"), function $CPDOMWindowBridge__preventKeyCodesFromPropagating_(self, _cmd, keyCodes) +{ with(self) +{ + for(var i=keyCodes.length; i>0; i--) + KeyCodesToPrevent[keyCodes[i-1]] = YES; +} +}), new objj_method(sel_getUid("preventKeyCodeFromPropagating:"), function $CPDOMWindowBridge__preventKeyCodeFromPropagating_(self, _cmd, keyCode) +{ with(self) +{ + KeyCodesToPrevent[keyCode] = YES; +} +}), new objj_method(sel_getUid("clearKeyCodesToPreventFromPropagating"), function $CPDOMWindowBridge__clearKeyCodesToPreventFromPropagating(self, _cmd) +{ with(self) +{ + KeyCodesToPrevent = {}; +} +}), new objj_method(sel_getUid("_bridgeMouseEvent:"), function $CPDOMWindowBridge___bridgeMouseEvent_(self, _cmd, aDOMEvent) +{ with(self) +{ + var theType = _overriddenEventType || aDOMEvent.type; + if (theType === CPDOMEventDoubleClick) + { + _overriddenEventType = CPDOMEventMouseDown; + objj_msgSend(self, "_bridgeMouseEvent:", aDOMEvent); + _overriddenEventType = CPDOMEventMouseUp; + objj_msgSend(self, "_bridgeMouseEvent:", aDOMEvent); + _overriddenEventType = nil; + return; + } + try + { + var event, + location = { x:aDOMEvent.clientX, y:aDOMEvent.clientY }, + timestamp = aDOMEvent.timeStamp ? aDOMEvent.timeStamp : new Date(), + sourceElement = (aDOMEvent.target || aDOMEvent.srcElement), + windowNumber = 0, + modifierFlags = (aDOMEvent.shiftKey ? CPShiftKeyMask : 0) | + (aDOMEvent.ctrlKey ? CPControlKeyMask : 0) | + (aDOMEvent.altKey ? CPAlternateKeyMask : 0) | + (aDOMEvent.metaKey ? CPCommandKeyMask : 0); + StopDOMEventPropagation = YES; + if (_mouseDownWindow) + windowNumber = objj_msgSend(_mouseDownWindow, "windowNumber"); + else + { + var theWindow = objj_msgSend(self, "hitTest:", location); + if ((aDOMEvent.type === CPDOMEventMouseDown) && theWindow) + _mouseDownWindow = theWindow; + windowNumber = objj_msgSend(theWindow, "windowNumber"); + } + if (windowNumber) + { + var windowFrame = CPApp._windows[windowNumber]._frame; + location.x -= (windowFrame.origin.x); + location.y -= (windowFrame.origin.y); + } + switch (theType) + { + case CPDOMEventMouseUp: if(_mouseIsDown) + { + event = _CPEventFromNativeMouseEvent(aDOMEvent, CPLeftMouseUp, location, modifierFlags, timestamp, windowNumber, nil, -1, CPDOMEventGetClickCount(_lastMouseUp, timestamp, location), 0); + _mouseIsDown = NO; + _lastMouseUp = event; + _mouseDownWindow = nil; + } + if(_DOMEventMode) + { + _DOMEventMode = NO; + return; + } + break; + case CPDOMEventMouseDown: if (ExcludedDOMElements[sourceElement.tagName] && sourceElement != _DOMFocusElement) + { + _DOMEventMode = YES; + _mouseIsDown = YES; + objj_msgSend(CPApp, "sendEvent:", objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", CPLeftMouseDown, location, modifierFlags, timestamp, windowNumber, nil, -1, CPDOMEventGetClickCount(_lastMouseDown, timestamp, location), 0)); + objj_msgSend(CPApp, "sendEvent:", objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", CPLeftMouseUp, location, modifierFlags, timestamp, windowNumber, nil, -1, CPDOMEventGetClickCount(_lastMouseDown, timestamp, location), 0)); + return; + } + event = _CPEventFromNativeMouseEvent(aDOMEvent, CPLeftMouseDown, location, modifierFlags, timestamp, windowNumber, nil, -1, CPDOMEventGetClickCount(_lastMouseDown, timestamp, location), 0); + _mouseIsDown = YES; + _lastMouseDown = event; + break; + case CPDOMEventMouseMoved: if (_DOMEventMode) + return; + event = _CPEventFromNativeMouseEvent(aDOMEvent, _mouseIsDown ? CPLeftMouseDragged : CPMouseMoved, location, modifierFlags, timestamp, windowNumber, nil, -1, 1, 0); + break; + } + if (event) + { + event._DOMEvent = aDOMEvent; + objj_msgSend(CPApp, "sendEvent:", event); + } + if (StopDOMEventPropagation) + CPDOMEventStop(aDOMEvent); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + catch (anException) + { + objj_exception_report(anException, {path:"CPDOMWindowBridge.j"}); + } +} +}), new objj_method(sel_getUid("_bridgeKeyEvent:"), function $CPDOMWindowBridge___bridgeKeyEvent_(self, _cmd, aDOMEvent) +{ with(self) +{ + try + { + var event, + timestamp = aDOMEvent.timeStamp ? aDOMEvent.timeStamp : new Date(), + sourceElement = (aDOMEvent.target || aDOMEvent.srcElement), + windowNumber = objj_msgSend(objj_msgSend(CPApp, "keyWindow"), "windowNumber"), + modifierFlags = (aDOMEvent.shiftKey ? CPShiftKeyMask : 0) | + (aDOMEvent.ctrlKey ? CPControlKeyMask : 0) | + (aDOMEvent.altKey ? CPAlternateKeyMask : 0) | + (aDOMEvent.metaKey ? CPCommandKeyMask : 0); + if (ExcludedDOMElements[sourceElement.tagName] && sourceElement != _DOMFocusElement && sourceElement != _DOMPasteboardElement) + return; + StopDOMEventPropagation = !(modifierFlags & (CPControlKeyMask | CPCommandKeyMask)) || + CharacterKeysToPrevent[String.fromCharCode(aDOMEvent.keyCode || aDOMEvent.charCode).toLowerCase()] || + KeyCodesToPrevent[aDOMEvent.keyCode]; + var isNativePasteEvent = NO, + isNativeCopyOrCutEvent = NO; + switch (aDOMEvent.type) + { + case CPDOMEventKeyDown: + _keyCode = aDOMEvent.keyCode; + var characters = String.fromCharCode(_keyCode).toLowerCase(); + if (characters == "v" && (modifierFlags & CPPlatformActionKeyMask)) + { + _DOMPasteboardElement.select(); + _DOMPasteboardElement.value = ""; + isNativePasteEvent = YES; + } + else if ((characters == "c" || characters == "x") && (modifierFlags & CPPlatformActionKeyMask)) + isNativeCopyOrCutEvent = YES; + else if (!CPFeatureIsCompatible(CPJavascriptRemedialKeySupport)) + return; + else if (!KeyCodesWithoutKeyPressEvents[_keyCode] && (_keyCode == CTRL_KEY_CODE || !(modifierFlags & CPControlKeyMask))) + return; + case CPDOMEventKeyPress: + if ((aDOMEvent.target || aDOMEvent.srcElement) == _DOMPasteboardElement) + return; + var keyCode = _keyCode, + charCode = aDOMEvent.keyCode || aDOMEvent.charCode, + isARepeat = (_charCodes[keyCode] != nil); + _charCodes[keyCode] = charCode; + var characters = String.fromCharCode(charCode), + charactersIgnoringModifiers = characters.toLowerCase(); + event = objj_msgSend(CPEvent, "keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:", CPKeyDown, location, modifierFlags, timestamp, windowNumber, nil, characters, charactersIgnoringModifiers, isARepeat, keyCode); + if (isNativePasteEvent) + { + _pasteboardKeyDownEvent = event; + window.setNativeTimeout(function () { objj_msgSend(self, "_checkPasteboardElement") }, 0); + return; + } + break; + case CPDOMEventKeyUp: var keyCode = aDOMEvent.keyCode, + charCode = _charCodes[keyCode]; + _charCodes[keyCode] = nil; + var characters = String.fromCharCode(charCode), + charactersIgnoringModifiers = characters.toLowerCase(); + if (!(modifierFlags & CPShiftKeyMask)) + characters = charactersIgnoringModifiers; + event = objj_msgSend(CPEvent, "keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:", CPKeyUp, location, modifierFlags, timestamp, windowNumber, nil, characters, charactersIgnoringModifiers, NO, keyCode); + break; + } + if (event) + { + event._DOMEvent = aDOMEvent; + objj_msgSend(CPApp, "sendEvent:", event); + if (isNativeCopyOrCutEvent) + { + var pasteboard = objj_msgSend(CPPasteboard, "generalPasteboard"), + types = objj_msgSend(pasteboard, "types"); + if (types.length) + { + if (objj_msgSend(types, "indexOfObjectIdenticalTo:", CPStringPboardType) != CPNotFound) + _DOMPasteboardElement.value = objj_msgSend(pasteboard, "stringForType:", CPStringPboardType); + else + _DOMPasteboardElement.value = objj_msgSend(pasteboard, "_generateStateUID"); + _DOMPasteboardElement.select(); + window.setNativeTimeout(function() { objj_msgSend(self, "_clearPasteboardElement"); }, 0); + } + return; + } + } + if (StopDOMEventPropagation) + CPDOMEventStop(aDOMEvent); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + catch (anException) + { + objj_exception_report(anException, {path:"CPDOMWindowBridge.j"}); + } +} +}), new objj_method(sel_getUid("_bridgeScrollEvent:"), function $CPDOMWindowBridge___bridgeScrollEvent_(self, _cmd, aDOMEvent) +{ with(self) +{ + if(!aDOMEvent) + aDOMEvent = window.event; + try + { + if (CPFeatureIsCompatible(CPJavaScriptMouseWheelValues_8_15)) + { + var x = 0.0, + y = 0.0, + element = aDOMEvent.target; + while (element.nodeType !== 1) + element = element.parentNode; + if (element.offsetParent) + { + do + { + x += element.offsetLeft; + y += element.offsetTop; + } while (element = element.offsetParent); + } + var location = { x:(x + ((aDOMEvent.clientX - 8) / 15)), y:(y + ((aDOMEvent.clientY - 8) / 15)) };} + else + var location = { x:aDOMEvent.clientX, y:aDOMEvent.clientY }; + var deltaX = 0.0, + deltaY = 0.0, + windowNumber = 0, + timestamp = aDOMEvent.timeStamp ? aDOMEvent.timeStamp : new Date(), + modifierFlags = (aDOMEvent.shiftKey ? CPShiftKeyMask : 0) | + (aDOMEvent.ctrlKey ? CPControlKeyMask : 0) | + (aDOMEvent.altKey ? CPAlternateKeyMask : 0) | + (aDOMEvent.metaKey ? CPCommandKeyMask : 0); + StopDOMEventPropagation = YES; + windowNumber = objj_msgSend(objj_msgSend(self, "hitTest:", location), "windowNumber"); + if (!windowNumber) + return; + var windowFrame = CPApp._windows[windowNumber]._frame; + location.x -= CGRectGetMinX(windowFrame); + location.y -= CGRectGetMinY(windowFrame); + if(typeof aDOMEvent.wheelDeltaX != "undefined") + { + deltaX = aDOMEvent.wheelDeltaX / 120.0; + deltaY = aDOMEvent.wheelDeltaY / 120.0; + } + else if (aDOMEvent.wheelDelta) + deltaY = aDOMEvent.wheelDelta / 120.0; + else if (aDOMEvent.detail) + deltaY = -aDOMEvent.detail / 3.0; + else + return; + if(!CPFeatureIsCompatible(CPJavaScriptNegativeMouseWheelValues)) + { + deltaX = -deltaX; + deltaY = -deltaY; + } + var event = objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", CPScrollWheel, location, modifierFlags, timestamp, windowNumber, nil, -1, 1, 0 ); + event._DOMEvent = aDOMEvent; + event._deltaX = ROUND(deltaX * 1.5); + event._deltaY = ROUND(deltaY * 1.5); + objj_msgSend(CPApp, "sendEvent:", event); + if (StopDOMEventPropagation) + CPDOMEventStop(aDOMEvent); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + catch (anException) + { + objj_exception_report(anException, {path:"CPDOMWindowBridge.j"}); + } +} +}), new objj_method(sel_getUid("_bridgeResizeEvent:"), function $CPDOMWindowBridge___bridgeResizeEvent_(self, _cmd, aDOMEvent) +{ with(self) +{ + try + { + var oldSize = _frame.size; + _frame = CPDOMWindowGetFrame(_DOMWindow); + _contentBounds.size = CGSizeCreateCopy(_frame.size); + var levels = _windowLevels, + layers = _windowLayers, + levelCount = levels.length; + while (levelCount--) + { + var windows = objj_msgSend(layers, "objectForKey:", levels[levelCount])._windows, + windowCount = windows.length; + while (windowCount--) + objj_msgSend(windows[windowCount], "resizeWithOldBridgeSize:", oldSize); + } + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + catch (anException) + { + objj_exception_report(anException, {path:"CPDOMWindowBridge.j"}); + } +} +}), new objj_method(sel_getUid("_bridgeTouchEvent:"), function $CPDOMWindowBridge___bridgeTouchEvent_(self, _cmd, aDOMEvent) +{ with(self) +{ + try + { + if (aDOMEvent.touches && (aDOMEvent.touches.length == 1 || (aDOMEvent.touches.length == 0 && aDOMEvent.changedTouches.length == 1))) + { + var newEvent = {}; + switch(aDOMEvent.type) + { + case CPDOMEventTouchStart: newEvent.type = CPDOMEventMouseDown; + break; + case CPDOMEventTouchEnd: newEvent.type = CPDOMEventMouseUp; + break; + case CPDOMEventTouchMove: newEvent.type = CPDOMEventMouseMoved; + break; + case CPDOMEventTouchCancel: newEvent.type = CPDOMEventMouseUp; + break; + } + var touch = aDOMEvent.touches.length ? aDOMEvent.touches[0] : aDOMEvent.changedTouches[0]; + newEvent.clientX = touch.clientX; + newEvent.clientY = touch.clientY; + newEvent.timestamp = aDOMEvent.timestamp; + newEvent.target = aDOMEvent.target; + newEvent.shiftKey = newEvent.ctrlKey = newEvent.altKey = newEvent.metaKey = false; + newEvent.preventDefault = function(){if(aDOMEvent.preventDefault) aDOMEvent.preventDefault()}; + newEvent.stopPropagation = function(){if(aDOMEvent.stopPropagation) aDOMEvent.stopPropagation()}; + objj_msgSend(self, "_bridgeMouseEvent:", newEvent); + return; + } + else + { + if (aDOMEvent.preventDefault) + aDOMEvent.preventDefault(); + if (aDOMEvent.stopPropagation) + aDOMEvent.stopPropagation(); + } + } + catch(e) + { + objj_exception_report(e, {path:"CPDOMWindowBridge.j"}); + } +} +}), new objj_method(sel_getUid("_checkPasteboardElement"), function $CPDOMWindowBridge___checkPasteboardElement(self, _cmd) +{ with(self) +{ + try + { + var value = _DOMPasteboardElement.value; + if (objj_msgSend(value, "length")) + { + var pasteboard = objj_msgSend(CPPasteboard, "generalPasteboard"); + if (objj_msgSend(pasteboard, "_stateUID") != value) + { + objj_msgSend(pasteboard, "declareTypes:owner:", [CPStringPboardType], self); + objj_msgSend(pasteboard, "setString:forType:", value, CPStringPboardType); + } + } + objj_msgSend(self, "_clearPasteboardElement"); + objj_msgSend(CPApp, "sendEvent:", _pasteboardKeyDownEvent); + _pasteboardKeyDownEvent = nil; + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + catch (anException) + { + objj_exception_report(anException, {path:"CPDOMWindowBridge.j"}); + } +} +}), new objj_method(sel_getUid("_clearPasteboardElement"), function $CPDOMWindowBridge___clearPasteboardElement(self, _cmd) +{ with(self) +{ + _DOMPasteboardElement.value = ""; + _DOMPasteboardElement.blur(); +} +})]); +} +var CLICK_SPACE_DELTA = 5.0, + CLICK_TIME_DELTA = (typeof document != "undefined" && document.addEventListener) ? 350.0 : 1000.0; +var CPDOMEventGetClickCount = function(aComparisonEvent, aTimestamp, aLocation) +{ + if (!aComparisonEvent) + return 1; + var comparisonLocation = objj_msgSend(aComparisonEvent, "locationInWindow"); + return (aTimestamp - objj_msgSend(aComparisonEvent, "timestamp") < CLICK_TIME_DELTA && + ABS(comparisonLocation.x - aLocation.x) < CLICK_SPACE_DELTA && + ABS(comparisonLocation.y - aLocation.y) < CLICK_SPACE_DELTA) ? objj_msgSend(aComparisonEvent, "clickCount") + 1 : 1; +} +var CPDOMEventStop = function(aDOMEvent) +{ + aDOMEvent.cancelBubble = true; + aDOMEvent.returnValue = false; + if (aDOMEvent.preventDefault) + aDOMEvent.preventDefault(); + if (aDOMEvent.stopPropagation) + aDOMEvent.stopPropagation(); + if (aDOMEvent.type === CPDOMEventMouseDown) + { + CPSharedDOMWindowBridge._DOMFocusElement.focus(); + CPSharedDOMWindowBridge._DOMFocusElement.blur(); + } +} + +p;18;CPDOMWindowLayer.jI;20;Foundation/CPArray.jI;21;Foundation/CPObject.jc;3335; +{var the_class = objj_allocateClassPair(CPObject, "CPDOMWindowLayer"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_level"), new objj_ivar("_windows"), new objj_ivar("_DOMElement")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithLevel:"), function $CPDOMWindowLayer__initWithLevel_(self, _cmd, aLevel) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _level = aLevel; + _windows = []; + _DOMElement = document.createElement("div"); + _DOMElement.style.position = "absolute"; + _DOMElement.style.top = "0px"; + _DOMElement.style.left = "0px"; + _DOMElement.style.width = "1px"; + _DOMElement.style.height = "1px"; + } + return self; +} +}), new objj_method(sel_getUid("level"), function $CPDOMWindowLayer__level(self, _cmd) +{ with(self) +{ + return _level; +} +}), new objj_method(sel_getUid("removeWindow:"), function $CPDOMWindowLayer__removeWindow_(self, _cmd, aWindow) +{ with(self) +{ + if (!aWindow._isVisible) + return; + var index = aWindow._index, + count = _windows.length - 1; + CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 8; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = aWindow._DOMElement;; + objj_msgSend(_windows, "removeObjectAtIndex:", aWindow._index); + for (; index < count; ++index) + { + _windows[index]._index = index; + _windows[index]._DOMElement.style.zIndex = index; + } + aWindow._isVisible = NO; +} +}), new objj_method(sel_getUid("insertWindow:atIndex:"), function $CPDOMWindowLayer__insertWindow_atIndex_(self, _cmd, aWindow, anIndex) +{ with(self) +{ + var count = objj_msgSend(_windows, "count"), + zIndex = (anIndex == CPNotFound ? count : anIndex), + isVisible = aWindow._isVisible; + if (isVisible) + { + zIndex = MIN(zIndex, aWindow._index); + objj_msgSend(_windows, "removeObjectAtIndex:", aWindow._index); + } + else + ++count; + if (anIndex == CPNotFound || anIndex >= count) + objj_msgSend(_windows, "addObject:", aWindow); + else + objj_msgSend(_windows, "insertObject:atIndex:", aWindow, anIndex); + for (; zIndex < count; ++zIndex) + { + _windows[zIndex]._index = zIndex; + _windows[zIndex]._DOMElement.style.zIndex = zIndex; + } + if (!isVisible) + { + if (aWindow._DOMElement.CPDOMDisplayContext) aWindow._DOMElement.CPDOMDisplayContext[0] = -1; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 6; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = aWindow._DOMElement;; + aWindow._isVisible = YES; + if (objj_msgSend(aWindow, "isFullBridge")) + objj_msgSend(aWindow, "setFrame:", objj_msgSend(aWindow._bridge, "visibleFrame")); + } +} +}), new objj_method(sel_getUid("orderedWindows"), function $CPDOMWindowLayer__orderedWindows(self, _cmd) +{ with(self) +{ + return _windows; +} +})]); +} + +p;14;CPDragServer.jI;15;AppKit/CPView.jI;16;AppKit/CPEvent.jI;21;AppKit/CPPasteboard.jI;20;AppKit/CPImageView.jc;12323; +var CPSharedDragServer = nil; +var CPDragServerView = nil, + CPDragServerSource = nil, + CPDragServerWindow = nil, + CPDragServerOffset = nil, + CPDragServerLocation = nil, + CPDragServerPasteboard = nil, + CPDragServerDestination = nil, + CPDragServerDraggingInfo = nil, + CPDragServerPreviousEvent = nil, + CPDragServerAutoscrollInterval = nil; +var CPDragServerIsDraggingImage = NO, + CPDragServerShouldSendDraggedViewMovedTo = NO, + CPDragServerShouldSendDraggedImageMovedTo = NO, + CPDragServerShouldSendDraggedViewEndedAtOperation = NO, + CPDragServerShouldSendDraggedImageEndedAtOperation = NO; +var CPDragServerAutoscroll = function() +{ + objj_msgSend(CPDragServerSource, "autoscroll:", CPDragServerPreviousEvent); +} +var CPDragServerStartDragging = function(anEvent) +{ + CPDragServerUpdateDragging(anEvent); +} +var CPDragServerUpdateDragging = function(anEvent) +{ + if(objj_msgSend(anEvent, "type") == CPLeftMouseUp) + { + if (CPDragServerAutoscrollInterval !== nil) + clearInterval(CPDragServerAutoscrollInterval); + CPDragServerAutoscrollInterval = nil; + CPDragServerLocation = objj_msgSend((objj_msgSend(CPDragServerDestination, "isKindOfClass:", objj_msgSend(CPWindow, "class")) ? CPDragServerDestination : objj_msgSend(CPDragServerDestination, "window")), "convertBridgeToBase:", objj_msgSend(objj_msgSend(anEvent, "window"), "convertBaseToBridge:", objj_msgSend(anEvent, "locationInWindow"))); + objj_msgSend(CPDragServerView, "removeFromSuperview"); + objj_msgSend(CPSharedDragServer._dragWindow, "orderOut:", nil); + if (CPDragServerDestination && + (!objj_msgSend(CPDragServerDestination, "respondsToSelector:", sel_getUid("prepareForDragOperation:")) || objj_msgSend(CPDragServerDestination, "prepareForDragOperation:", CPDragServerDraggingInfo)) && + (!objj_msgSend(CPDragServerDestination, "respondsToSelector:", sel_getUid("performDragOperation:")) || objj_msgSend(CPDragServerDestination, "performDragOperation:", CPDragServerDraggingInfo)) && + objj_msgSend(CPDragServerDestination, "respondsToSelector:", sel_getUid("concludeDragOperation:"))) + objj_msgSend(CPDragServerDestination, "concludeDragOperation:", CPDragServerDraggingInfo); + if (CPDragServerShouldSendDraggedImageEndedAtOperation) + objj_msgSend(CPDragServerSource, "draggedImage:endedAt:operation:", objj_msgSend(CPDragServerView, "image"), CPDragServerLocation, NO); + else if (CPDragServerShouldSendDraggedViewEndedAtOperation) + objj_msgSend(CPDragServerSource, "draggedView:endedAt:operation:", CPDragServerView, CPDragServerLocation, NO); + CPDragServerIsDraggingImage = NO; + CPDragServerDestination = nil; + return; + } + if (CPDragServerAutoscrollInterval === nil) + { + if (objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("autoscroll:"))) + CPDragServerAutoscrollInterval = setInterval(CPDragServerAutoscroll, 100); + } + CPDragServerPreviousEvent = anEvent; + objj_msgSend(CPApp, "setCallback:forNextEventMatchingMask:untilDate:inMode:dequeue:", CPDragServerUpdateDragging, CPMouseMovedMask | CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, 0, NO); + var location = objj_msgSend(anEvent, "locationInWindow"), + operation = + bridgeLocation = objj_msgSend(objj_msgSend(anEvent, "window"), "convertBaseToBridge:", location); + var draggingDestination = objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "_dragHitTest:pasteboard:", bridgeLocation, CPDragServerPasteboard); + CPDragServerLocation = objj_msgSend((objj_msgSend(draggingDestination, "isKindOfClass:", objj_msgSend(CPWindow, "class")) ? draggingDestination : objj_msgSend(draggingDestination, "window")), "convertBridgeToBase:", bridgeLocation); + if(draggingDestination != CPDragServerDestination) + { + if (CPDragServerDestination && objj_msgSend(CPDragServerDestination, "respondsToSelector:", sel_getUid("draggingExited:"))) + objj_msgSend(CPDragServerDestination, "draggingExited:", CPDragServerDraggingInfo); + CPDragServerDestination = draggingDestination; + if (CPDragServerDestination && objj_msgSend(CPDragServerDestination, "respondsToSelector:", sel_getUid("draggingEntered:"))) + objj_msgSend(CPDragServerDestination, "draggingEntered:", CPDragServerDraggingInfo); + } + else if (CPDragServerDestination && objj_msgSend(CPDragServerDestination, "respondsToSelector:", sel_getUid("draggingUpdated:"))) + objj_msgSend(CPDragServerDestination, "draggingUpdated:", CPDragServerDraggingInfo); + location.x -= CPDragServerOffset.x; + location.y -= CPDragServerOffset.y; + objj_msgSend(CPDragServerView, "setFrameOrigin:", location); + if (CPDragServerShouldSendDraggedImageMovedTo) + objj_msgSend(CPDragServerSource, "draggedImage:movedTo:", objj_msgSend(CPDragServerView, "image"), location); + else if (CPDragServerShouldSendDraggedViewMovedTo) + objj_msgSend(CPDragServerSource, "draggedView:movedTo:", CPDragServerView, location); +} +{var the_class = objj_allocateClassPair(CPObject, "CPDraggingInfo"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("draggingSource"), function $CPDraggingInfo__draggingSource(self, _cmd) +{ with(self) +{ + return CPDragServerSource; +} +}), new objj_method(sel_getUid("draggingLocation"), function $CPDraggingInfo__draggingLocation(self, _cmd) +{ with(self) +{ + return CPDragServerLocation; +} +}), new objj_method(sel_getUid("draggingPasteboard"), function $CPDraggingInfo__draggingPasteboard(self, _cmd) +{ with(self) +{ + return CPDragServerPasteboard; +} +}), new objj_method(sel_getUid("draggedImage"), function $CPDraggingInfo__draggedImage(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDragServerView, "image"); +} +}), new objj_method(sel_getUid("draggedImageLocation"), function $CPDraggingInfo__draggedImageLocation(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "draggedViewLocation"); +} +}), new objj_method(sel_getUid("draggedViewLocation"), function $CPDraggingInfo__draggedViewLocation(self, _cmd) +{ with(self) +{ + return objj_msgSend((objj_msgSend(CPDragServerDestination, "isKindOfClass:", objj_msgSend(CPWindow, "class")) ? CPDragServerDestination : objj_msgSend(CPDragServerDestination, "window")), "convertBridgeToBase:", objj_msgSend(CPDragServerView, "frame").origin); +} +}), new objj_method(sel_getUid("draggedView"), function $CPDraggingInfo__draggedView(self, _cmd) +{ with(self) +{ + return CPDragServerView; +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPDragServer"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_dragWindow"), new objj_ivar("_imageView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPDragServer__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _dragWindow = objj_msgSend(objj_msgSend(CPWindow, "alloc"), "initWithContentRect:styleMask:", CPRectMakeZero(), CPBorderlessWindowMask); + objj_msgSend(_dragWindow, "setLevel:", CPDraggingWindowLevel); + } + return self; +} +}), new objj_method(sel_getUid("dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:"), function $CPDragServer__dragView_fromWindow_at_offset_event_pasteboard_source_slideBack_(self, _cmd, aView, aWindow, viewLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack) +{ with(self) +{ + var eventLocation = objj_msgSend(anEvent, "locationInWindow"); + CPDragServerView = aView; + CPDragServerSource = aSourceObject; + CPDragServerWindow = aWindow; + CPDragServerOffset = CPPointMake(eventLocation.x - viewLocation.x, eventLocation.y - viewLocation.y); + CPDragServerPasteboard = objj_msgSend(CPPasteboard, "pasteboardWithName:", CPDragPboard); + objj_msgSend(_dragWindow, "setFrameSize:", CGSizeMakeCopy(objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "frame").size)); + objj_msgSend(_dragWindow, "orderFront:", self); + objj_msgSend(aView, "setFrameOrigin:", viewLocation); + objj_msgSend(objj_msgSend(_dragWindow, "contentView"), "addSubview:", aView); + if (CPDragServerIsDraggingImage) + { + if (objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("draggedImage:beganAt:"))) + objj_msgSend(CPDragServerSource, "draggedImage:beganAt:", objj_msgSend(aView, "image"), viewLocation); + CPDragServerShouldSendDraggedImageMovedTo = objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("draggedImage:movedTo:")); + CPDragServerShouldSendDraggedImageEndedAtOperation = objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("draggedImage:endAt:operation:")); + CPDragServerShouldSendDraggedViewMovedTo = NO; + CPDragServerShouldSendDraggedViewEndedAtOperation = NO; + } + else + { + if (objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("draggedView:beganAt:"))) + objj_msgSend(CPDragServerSource, "draggedView:beganAt:", aView, viewLocation); + CPDragServerShouldSendDraggedViewMovedTo = objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("draggedView:movedTo:")); + CPDragServerShouldSendDraggedViewEndedAtOperation = objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("draggedView:endedAt:operation:")); + CPDragServerShouldSendDraggedImageMovedTo = NO; + CPDragServerShouldSendDraggedImageEndedAtOperation = NO; + } + CPDragServerStartDragging(anEvent); +} +}), new objj_method(sel_getUid("dragImage:fromWindow:at:offset:event:pasteboard:source:slideBack:"), function $CPDragServer__dragImage_fromWindow_at_offset_event_pasteboard_source_slideBack_(self, _cmd, anImage, aWindow, imageLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack) +{ with(self) +{ + CPDragServerIsDraggingImage = YES; + if (!_imageView) + _imageView = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CPRectMakeZero()); + objj_msgSend(_imageView, "setImage:", anImage); + objj_msgSend(_imageView, "setFrameSize:", CGSizeMakeCopy(objj_msgSend(anImage, "size"))); + objj_msgSend(self, "dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:", _imageView, aWindow, imageLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPDragServer__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPDragServer, "class")) + return; + CPDragServerDraggingInfo = objj_msgSend(objj_msgSend(CPDraggingInfo, "alloc"), "init"); +} +}), new objj_method(sel_getUid("sharedDragServer"), function $CPDragServer__sharedDragServer(self, _cmd) +{ with(self) +{ + if (!CPSharedDragServer) + CPSharedDragServer = objj_msgSend(objj_msgSend(CPDragServer, "alloc"), "init"); + return CPSharedDragServer; +} +})]); +} +{ +var the_class = objj_getClass("CPWindow") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPWindow\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("_dragHitTest:pasteboard:"), function $CPWindow___dragHitTest_pasteboard_(self, _cmd, aPoint, aPasteboard) +{ with(self) +{ + if (!_inclusiveRegisteredDraggedTypes) + return nil; + var adjustedPoint = { x:aPoint.x - (_frame.origin.x), y:aPoint.y - (_frame.origin.y) }, + hitView = objj_msgSend(_windowView, "hitTest:", adjustedPoint); + while (hitView && !objj_msgSend(aPasteboard, "availableTypeFromArray:", objj_msgSend(hitView, "registeredDraggedTypes"))) + hitView = objj_msgSend(hitView, "superview"); + if (hitView) + return hitView; + if (objj_msgSend(aPasteboard, "availableTypeFromArray:", objj_msgSend(self, "registeredDraggedTypes"))) + return self; + return nil; +} +})]); +} + +p;9;CPEvent.jI;21;Foundation/CPObject.jc;11847; +CPLeftMouseDown = 1; +CPLeftMouseUp = 2; +CPRightMouseDown = 3; +CPRightMouseUp = 4; +CPMouseMoved = 5; +CPLeftMouseDragged = 6; +CPRightMouseDragged = 7; +CPMouseEntered = 8; +CPMouseExited = 9; +CPKeyDown = 10; +CPKeyUp = 11; +CPFlagsChanged = 12; +CPAppKitDefined = 13; +CPSystemDefined = 14; +CPApplicationDefined = 15; +CPPeriodic = 16; +CPCursorUpdate = 17; +CPScrollWheel = 22; +CPOtherMouseDown = 25; +CPOtherMouseUp = 26; +CPOtherMouseDragged = 27; +CPTouchStart = 28; +CPTouchMove = 29; +CPTouchEnd = 30; +CPTouchCancel = 31; +CPAlphaShiftKeyMask = 1 << 16; +CPShiftKeyMask = 1 << 17; +CPControlKeyMask = 1 << 18; +CPAlternateKeyMask = 1 << 19; +CPCommandKeyMask = 1 << 20; +CPNumericPadKeyMask = 1 << 21; +CPHelpKeyMask = 1 << 22; +CPFunctionKeyMask = 1 << 23; +CPDeviceIndependentModifierFlagsMask = 0xffff0000; +CPLeftMouseDownMask = 1 << CPLeftMouseDown; +CPLeftMouseUpMask = 1 << CPLeftMouseUp; +CPRightMouseDownMask = 1 << CPRightMouseDown; +CPRightMouseUpMask = 1 << CPRightMouseUp; +CPOtherMouseDownMask = 1 << CPOtherMouseDown; +CPOtherMouseUpMask = 1 << CPOtherMouseUp; +CPMouseMovedMask = 1 << CPMouseMoved; +CPLeftMouseDraggedMask = 1 << CPLeftMouseDragged; +CPRightMouseDraggedMask = 1 << CPRightMouseDragged; +CPOtherMouseDragged = 1 << CPOtherMouseDragged; +CPMouseEnteredMask = 1 << CPMouseEntered; +CPMouseExitedMask = 1 << CPMouseExited; +CPCursorUpdateMask = 1 << CPCursorUpdate; +CPKeyDownMask = 1 << CPKeyDown; +CPKeyUpMask = 1 << CPKeyUp; +CPFlagsChangedMask = 1 << CPFlagsChanged; +CPAppKitDefinedMask = 1 << CPAppKitDefined; +CPSystemDefinedMask = 1 << CPSystemDefined; +CPApplicationDefinedMask = 1 << CPApplicationDefined; +CPPeriodicMask = 1 << CPPeriodic; +CPScrollWheelMask = 1 << CPScrollWheel; +CPAnyEventMask = 0xffffffff; +CPDOMEventDoubleClick = "dblclick", +CPDOMEventMouseDown = "mousedown", +CPDOMEventMouseUp = "mouseup", +CPDOMEventMouseMoved = "mousemove", +CPDOMEventMouseDragged = "mousedrag", +CPDOMEventKeyUp = "keyup", +CPDOMEventKeyDown = "keydown", +CPDOMEventKeyPress = "keypress"; +CPDOMEventCopy = "copy"; +CPDOMEventPaste = "paste"; +CPDOMEventScrollWheel = "mousewheel"; +CPDOMEventTouchStart = "touchstart"; +CPDOMEventTouchMove = "touchmove"; +CPDOMEventTouchEnd = "touchend"; +CPDOMEventTouchCancel = "touchcancel"; +var _CPEventPeriodicEventPeriod = 0, + _CPEventPeriodicEventTimer = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPEvent"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_type"), new objj_ivar("_location"), new objj_ivar("_modifierFlags"), new objj_ivar("_timestamp"), new objj_ivar("_context"), new objj_ivar("_eventNumber"), new objj_ivar("_clickCount"), new objj_ivar("_pressure"), new objj_ivar("_window"), new objj_ivar("_windowNumber"), new objj_ivar("_characters"), new objj_ivar("_isARepeat"), new objj_ivar("_keyCode"), new objj_ivar("_DOMEvent"), new objj_ivar("_deltaX"), new objj_ivar("_deltaY"), new objj_ivar("_deltaZ")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("_initMouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:"), function $CPEvent___initMouseEventWithType_location_modifierFlags_timestamp_windowNumber_context_eventNumber_clickCount_pressure_(self, _cmd, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, anEventNumber, aClickCount, aPressure) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _type = anEventType; + _location = CPPointCreateCopy(aPoint); + _modifierFlags = modifierFlags; + _timestamp = aTimestamp; + _context = aGraphicsContext; + _eventNumber = anEventNumber; + _clickCount = aClickCount; + _pressure = aPressure; + _window = objj_msgSend(CPApp, "windowWithWindowNumber:", aWindowNumber); + } + return self; +} +}), new objj_method(sel_getUid("_initKeyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:"), function $CPEvent___initKeyEventWithType_location_modifierFlags_timestamp_windowNumber_context_characters_charactersIgnoringModifiers_isARepeat_keyCode_(self, _cmd, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, characters, unmodCharacters, isARepeat, code) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _type = anEventType; + _location = CPPointCreateCopy(aPoint); + _modifierFlags = modifierFlags; + _timestamp = aTimestamp; + _context = aGraphicsContext; + _characters = characters; + _charactersIgnoringModifiers = unmodCharacters; + _isARepeat = isARepeat; + _keyCode = code; + _windowNumber = aWindowNumber; + } + return self; +} +}), new objj_method(sel_getUid("_initOtherEventWithType:location:modifierFlags:timestamp:windowNumber:context:subtype:data1:data2:"), function $CPEvent___initOtherEventWithType_location_modifierFlags_timestamp_windowNumber_context_subtype_data1_data2_(self, _cmd, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, aSubtype, aData1, aData2) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _type = anEventType; + _location = CPPointCreateCopy(aPoint); + _modifierFlags = modifierFlags; + _timestamp = aTimestamp; + _context = aGraphicsContext; + _subtype = aSubtype; + _data1 = aData1; + _data2 = aData2; + } + return self; +} +}), new objj_method(sel_getUid("locationInWindow"), function $CPEvent__locationInWindow(self, _cmd) +{ with(self) +{ + return _location; +} +}), new objj_method(sel_getUid("modifierFlags"), function $CPEvent__modifierFlags(self, _cmd) +{ with(self) +{ + return _modifierFlags; +} +}), new objj_method(sel_getUid("timestamp"), function $CPEvent__timestamp(self, _cmd) +{ with(self) +{ + return _timestamp; +} +}), new objj_method(sel_getUid("type"), function $CPEvent__type(self, _cmd) +{ with(self) +{ + return _type; +} +}), new objj_method(sel_getUid("window"), function $CPEvent__window(self, _cmd) +{ with(self) +{ + if (!_window) + _window = objj_msgSend(CPApp, "windowWithWindowNumber:", _windowNumber); + return _window; +} +}), new objj_method(sel_getUid("windowNumber"), function $CPEvent__windowNumber(self, _cmd) +{ with(self) +{ + return _windowNumber; +} +}), new objj_method(sel_getUid("buttonNumber"), function $CPEvent__buttonNumber(self, _cmd) +{ with(self) +{ + return _buttonNumber; +} +}), new objj_method(sel_getUid("clickCount"), function $CPEvent__clickCount(self, _cmd) +{ with(self) +{ + return _clickCount; +} +}), new objj_method(sel_getUid("characters"), function $CPEvent__characters(self, _cmd) +{ with(self) +{ + return _characters; +} +}), new objj_method(sel_getUid("charactersIgnoringModifiers"), function $CPEvent__charactersIgnoringModifiers(self, _cmd) +{ with(self) +{ + return _charactersIgnoringModifiers; +} +}), new objj_method(sel_getUid("isARepeat"), function $CPEvent__isARepeat(self, _cmd) +{ with(self) +{ + return _isARepeat; +} +}), new objj_method(sel_getUid("keyCode"), function $CPEvent__keyCode(self, _cmd) +{ with(self) +{ + return _keyCode; +} +}), new objj_method(sel_getUid("pressure"), function $CPEvent__pressure(self, _cmd) +{ with(self) +{ + return _pressure; +} +}), new objj_method(sel_getUid("_DOMEvent"), function $CPEvent___DOMEvent(self, _cmd) +{ with(self) +{ + return _DOMEvent; +} +}), new objj_method(sel_getUid("deltaX"), function $CPEvent__deltaX(self, _cmd) +{ with(self) +{ + return _deltaX; +} +}), new objj_method(sel_getUid("deltaY"), function $CPEvent__deltaY(self, _cmd) +{ with(self) +{ + return _deltaY; +} +}), new objj_method(sel_getUid("deltaZ"), function $CPEvent__deltaZ(self, _cmd) +{ with(self) +{ + return _deltaZ; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:"), function $CPEvent__keyEventWithType_location_modifierFlags_timestamp_windowNumber_context_characters_charactersIgnoringModifiers_isARepeat_keyCode_(self, _cmd, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, characters, unmodCharacters, repeatKey, code) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "_initKeyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:", anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, characters, unmodCharacters, repeatKey, code); +} +}), new objj_method(sel_getUid("mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:"), function $CPEvent__mouseEventWithType_location_modifierFlags_timestamp_windowNumber_context_eventNumber_clickCount_pressure_(self, _cmd, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, anEventNumber, aClickCount, aPressure) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "_initMouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, anEventNumber, aClickCount, aPressure); +} +}), new objj_method(sel_getUid("otherEventWithType:location:modifierFlags:timestamp:windowNumber:context:subtype:data1:data2:"), function $CPEvent__otherEventWithType_location_modifierFlags_timestamp_windowNumber_context_subtype_data1_data2_(self, _cmd, anEventType, aLocation, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, aSubtype, aData1, aData2) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "_initOtherEventWithType:location:modifierFlags:timestamp:windowNumber:context:subtype:data1:data2:", anEventType, aLocation, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, aSubtype, aData1, aData2); +} +}), new objj_method(sel_getUid("startPeriodicEventsAfterDelay:withPeriod:"), function $CPEvent__startPeriodicEventsAfterDelay_withPeriod_(self, _cmd, aDelay, aPeriod) +{ with(self) +{ + _CPEventPeriodicEventPeriod = aPeriod; + _CPEventPeriodicEventTimer = window.setTimeout(function() { _CPEventPeriodicEventTimer = window.setInterval(_CPEventFirePeriodEvent, aPeriod * 1000.0); }, aDelay * 1000.0); +} +}), new objj_method(sel_getUid("stopPeriodicEvents"), function $CPEvent__stopPeriodicEvents(self, _cmd) +{ with(self) +{ + if (_CPEventPeriodicEventTimer === nil) + return; + window.clearTimeout(_CPEventPeriodicEventTimer); + _CPEventPeriodicEventTimer = nil; +} +})]); +} +_CPEventFirePeriodEvent= function() +{ + objj_msgSend(CPApp, "sendEvent:", objj_msgSend(CPEvent, "otherEventWithType:location:modifierFlags:timestamp:windowNumber:context:subtype:data1:data2:", CPPeriodic, { x:0.0, y:0.0 }, 0, 0, 0, nil, 0, 0, 0)); +} +var CPEventClass = objj_msgSend(CPEvent, "class"); +_CPEventFromNativeMouseEvent= function(aNativeEvent, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, anEventNumber, aClickCount, aPressure) +{ + aNativeEvent.isa = CPEventClass; + aNativeEvent._type = anEventType; + aNativeEvent._location = aPoint; + aNativeEvent._modifierFlags = modifierFlags; + aNativeEvent._timestamp = aTimestamp; + aNativeEvent._windowNumber = aWindowNumber; + aNativeEvent._window = nil; + aNativeEvent._context = aGraphicsContext; + aNativeEvent._eventNumber = anEventNumber; + aNativeEvent._clickCount = aClickCount; + aNativeEvent._pressure = aPressure; + return aNativeEvent; +} + +p;14;CPFlashMovie.jI;21;Foundation/CPObject.jc;844; +{var the_class = objj_allocateClassPair(CPObject, "CPFlashMovie"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_fileName")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFile:"), function $CPFlashMovie__initWithFile_(self, _cmd, aFileName) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _fileName = aFileName; + return self; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("flashMovieWithFile:"), function $CPFlashMovie__flashMovieWithFile_(self, _cmd, aFileName) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithFile:", aFileName); +} +})]); +} + +p;13;CPFlashView.ji;19;CPDOMWindowBridge.ji;14;CPFlashMovie.ji;8;CPView.jc;2794; +{var the_class = objj_allocateClassPair(CPView, "CPFlashView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_flashMovie"), new objj_ivar("_DOMEmbedElement"), new objj_ivar("_DOMMParamElement"), new objj_ivar("_DOMObjectElement")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPFlashView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _DOMObjectElement = document.createElement("object"); + _DOMObjectElement.width = "100%"; + _DOMObjectElement.height = "100%"; + _DOMObjectElement.style.top = "0px"; + _DOMObjectElement.style.left = "0px"; + _DOMParamElement = document.createElement("param"); + _DOMParamElement.name = "movie"; + _DOMObjectElement.appendChild(_DOMParamElement); + var param = document.createElement("param"); + param.name = "wmode"; + param.value = "transparent"; + _DOMObjectElement.appendChild(param); + _DOMEmbedElement = document.createElement("embed"); + _DOMEmbedElement.type = "application/x-shockwave-flash"; + _DOMEmbedElement.setAttribute("wmode", "transparent"); + _DOMEmbedElement.width = "100%"; + _DOMEmbedElement.height = "100%"; + _DOMElement.appendChild(_DOMEmbedElement); + _DOMElement.appendChild(_DOMObjectElement); + } + return self; +} +}), new objj_method(sel_getUid("setFlashMovie:"), function $CPFlashView__setFlashMovie_(self, _cmd, aFlashMovie) +{ with(self) +{ + if (_flashMovie == aFlashMovie) + return; + _flashMovie = aFlashMovie; + _DOMParamElement.value = aFlashMovie._fileName; + if (_DOMEmbedElement) + _DOMEmbedElement.src = aFlashMovie._fileName; +} +}), new objj_method(sel_getUid("flashMovie"), function $CPFlashView__flashMovie(self, _cmd) +{ with(self) +{ + return _flashMovie; +} +}), new objj_method(sel_getUid("mouseDragged:"), function $CPFlashView__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "_propagateCurrentDOMEvent:", YES); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPFlashView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "_propagateCurrentDOMEvent:", YES); +} +}), new objj_method(sel_getUid("mouseUp:"), function $CPFlashView__mouseUp_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "_propagateCurrentDOMEvent:", YES); +} +})]); +} + +p;8;CPFont.jc;3659;var _CPFonts = {}; + _CPFontSystemFontFace = "Arial"; +{var the_class = objj_allocateClassPair(CPObject, "CPFont"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_name"), new objj_ivar("_size"), new objj_ivar("_isBold"), new objj_ivar("_cssString")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("_initWithName:size:bold:"), function $CPFont___initWithName_size_bold_(self, _cmd, aName, aSize, isBold) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _name = aName; + _size = aSize; + _isBold = isBold; + _cssString = (_isBold ? "bold " : "") + ROUND(aSize) + "px '" + aName + "'"; + _CPFonts[_cssString] = self; + } + return self; +} +}), new objj_method(sel_getUid("size"), function $CPFont__size(self, _cmd) +{ with(self) +{ + return _size; +} +}), new objj_method(sel_getUid("cssString"), function $CPFont__cssString(self, _cmd) +{ with(self) +{ + return _cssString; +} +}), new objj_method(sel_getUid("familyName"), function $CPFont__familyName(self, _cmd) +{ with(self) +{ + return _name; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("fontWithName:size:"), function $CPFont__fontWithName_size_(self, _cmd, aName, aSize) +{ with(self) +{ + return _CPFonts[(NO ? "bold " : "") + ROUND(aSize) + "px '" + aName + "'"] || objj_msgSend(objj_msgSend(CPFont, "alloc"), "_initWithName:size:bold:", aName, aSize, NO); +} +}), new objj_method(sel_getUid("boldFontWithName:size:"), function $CPFont__boldFontWithName_size_(self, _cmd, aName, aSize) +{ with(self) +{ + return _CPFonts[(YES ? "bold " : "") + ROUND(aSize) + "px '" + aName + "'"] || objj_msgSend(objj_msgSend(CPFont, "alloc"), "_initWithName:size:bold:", aName, aSize, YES); +} +}), new objj_method(sel_getUid("systemFontOfSize:"), function $CPFont__systemFontOfSize_(self, _cmd, aSize) +{ with(self) +{ + return _CPFonts[(NO ? "bold " : "") + ROUND(aSize) + "px '" + _CPFontSystemFontFace + "'"] || objj_msgSend(objj_msgSend(CPFont, "alloc"), "_initWithName:size:bold:", _CPFontSystemFontFace, aSize, NO); +} +}), new objj_method(sel_getUid("boldSystemFontOfSize:"), function $CPFont__boldSystemFontOfSize_(self, _cmd, aSize) +{ with(self) +{ + return _CPFonts[(YES ? "bold " : "") + ROUND(aSize) + "px '" + _CPFontSystemFontFace + "'"] || objj_msgSend(objj_msgSend(CPFont, "alloc"), "_initWithName:size:bold:", _CPFontSystemFontFace, aSize, YES); +} +})]); +} +var CPFontNameKey = "CPFontNameKey", + CPFontSizeKey = "CPFontSizeKey", + CPFontIsBoldKey = "CPFontIsBoldKey"; +{ +var the_class = objj_getClass("CPFont") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPFont\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPFont__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + return objj_msgSend(self, "_initWithName:size:bold:", objj_msgSend(aCoder, "decodeObjectForKey:", CPFontNameKey), objj_msgSend(aCoder, "decodeFloatForKey:", CPFontSizeKey), objj_msgSend(aCoder, "decodeBoolForKey:", CPFontIsBoldKey)); +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPFont__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _name, CPFontNameKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _size, CPFontSizeKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _isBold, CPFontIsBoldKey); +} +})]); +} + +p;15;CPFontManager.jI;21;Foundation/CPObject.jI;15;AppKit/CPFont.jc;4835; +var CPSharedFontManager = nil, + CPFontManagerFactory = Nil; +{var the_class = objj_allocateClassPair(CPObject, "CPFontManager"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_availableFonts")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("availableFonts"), function $CPFontManager__availableFonts(self, _cmd) +{ with(self) +{ + if (!_availableFonts) + { + _CPFontDetectSpan = document.createElement("span"); + _CPFontDetectSpan.fontSize = "24px"; + _CPFontDetectSpan.appendChild(document.createTextNode("mmmmmmmmmml")); + var div = document.createElement("div"); + div.style.position = "absolute"; + div.style.top = "-1000px"; + div.appendChild(_CPFontDetectSpan); + document.getElementsByTagName("body")[0].appendChild(div); + _CPFontDetectReferenceFonts = _CPFontDetectPickTwoDifferentFonts(["monospace", "serif", "sans-serif", "cursive"]); + _availableFonts = []; + for (var i = 0; i < _CPFontDetectAllFonts.length; i++) { + var available = _CPFontDetectFontAvailable(_CPFontDetectAllFonts[i]); + if (available) + _availableFonts.push(_CPFontDetectAllFonts[i]); + } + } + return _availableFonts; +} +}), new objj_method(sel_getUid("fontWithNameIsAvailable:"), function $CPFontManager__fontWithNameIsAvailable_(self, _cmd, aFontName) +{ with(self) +{ + return _CPFontDetectFontAvailable(aFontName); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("sharedFontManager"), function $CPFontManager__sharedFontManager(self, _cmd) +{ with(self) +{ + if (!CPSharedFontManager) + CPSharedFontManager = objj_msgSend(objj_msgSend(CPFontManagerFactory, "alloc"), "init"); + return CPSharedFontManager; +} +}), new objj_method(sel_getUid("setFontManagerFactory:"), function $CPFontManager__setFontManagerFactory_(self, _cmd, aClass) +{ with(self) +{ + CPFontManagerFactory = aClass; +} +})]); +} +var _CPFontDetectSpan, + _CPFontDetectReferenceFonts, + _CPFontDetectAllFonts = [ + "American Typewriter", + "Apple Chancery","Arial","Arial Black","Arial Narrow","Arial Rounded MT Bold","Arial Unicode MS", + "Big Caslon","Bitstream Vera Sans","Bitstream Vera Sans Mono","Bitstream Vera Serif", + "Brush Script MT", + "Cambria", + "Caslon","Castellar","Cataneo BT","Centaur","Century Gothic","Century Schoolbook","Century Schoolbook L", + "Comic Sans", "Comic Sans MS","Consolas","Constantia","Cooper Black","Copperplate","Copperplate Gothic Bold","Copperplate Gothic Light","Corbel","Courier","Courier New", + "Futura", + "Geneva","Georgia","Georgia Ref", "Geeza Pro", "Gigi","Gill Sans","Gill Sans MT","Gill Sans MT Condensed","Gill Sans MT Ext Condensed Bold","Gill Sans Ultra Bold","Gill Sans Ultra Bold Condensed", + "Helvetica","Helvetica Narrow","Helvetica Neue","Herculanum","High Tower Text","Highlight LET","Hoefler Text","Impact","Imprint MT Shadow", + "Lucida","Lucida Bright","Lucida Calligraphy","Lucida Console","Lucida Fax","Lucida Grande","Lucida Handwriting","Lucida Sans","Lucida Sans Typewriter","Lucida Sans Unicode", + "Marker Felt", + "Microsoft Sans Serif","Milano LET","Minion Web","MisterEarl BT","Mistral","Monaco","Monotype Corsiva","Monotype.com","New Century Schoolbook","New York","News Gothic MT", + "Papyrus", + "Tahoma","Techno","Tempus Sans ITC","Terminal","Textile","Times","Times New Roman","Tiranti Solid LET","Trebuchet MS", + "Verdana","Verdana Ref", + "Zapfino"]; +var _CPFontDetectFontAvailable = function(font) { + for (var i = 0; i < _CPFontDetectReferenceFonts.length; i++) + if (_CPFontDetectCompareFonts(_CPFontDetectReferenceFonts[i], font)) + return true; + return false; +} +var _CPFontDetectCache = {}; +var _CPFontDetectCompareFonts = function(fontA, fontB) { + var a; + if (_CPFontDetectCache[fontA]) { + a = _CPFontDetectCache[fontA]; + } else { + _CPFontDetectSpan.style.fontFamily = '"' + fontA + '"'; + _CPFontDetectCache[fontA] = a = { w: _CPFontDetectSpan.offsetWidth, h: _CPFontDetectSpan.offsetHeight }; + } + _CPFontDetectSpan.style.fontFamily= '"' + fontB + '", "' + fontA + '"'; + var bWidth = _CPFontDetectSpan.offsetWidth; + var bHeight = _CPFontDetectSpan.offsetHeight; + return (a.w != bWidth || a.h != bHeight); +} +var _CPFontDetectPickTwoDifferentFonts = function(candidates) { + for (var i = 0; i < candidates.length; i++) + for (var j = 0; j < i; j++) + if (_CPFontDetectCompareFonts(candidates[i], candidates[j])) + return [candidates[i], candidates[j]]; + return [candidates[0]]; +} +objj_msgSend(CPFontManager, "setFontManagerFactory:", objj_msgSend(CPFontManager, "class")); + +p;12;CPGeometry.ji;12;CGGeometry.jc;5444; +CPMinXEdge = 0; +CPMinYEdge = 1; +CPMaxXEdge = 2; +CPMaxYEdge = 3; +CPMakePoint = CGPointMake; +CPMakeSize = CGSizeMake; +CPMakeRect = CGRectMake; +CPPointCreateCopy= function(aPoint) +{ + return { x: aPoint.x, y: aPoint.y }; +} +CPPointMake= function(x, y) +{ + return { x: x, y: y }; +} +CPRectInset= function(aRect, dX, dY) +{ + return CPRectMake( aRect.origin.x + dX, aRect.origin.y + dY, + aRect.size.width - 2 * dX, aRect.size.height - 2*dY); +} +CPRectIntegral= function(aRect) +{ + alert("CPRectIntegral unimplemented"); +} +CPRectIntersection= function(lhsRect, rhsRect) +{ + var intersection = CPRectMake( + Math.max(CPRectGetMinX(lhsRect), CPRectGetMinX(rhsRect)), + Math.max(CPRectGetMinY(lhsRect), CPRectGetMinY(rhsRect)), + 0, 0); + intersection.size.width = Math.min(CPRectGetMaxX(lhsRect), CPRectGetMaxX(rhsRect)) - CPRectGetMinX(intersection); + intersection.size.height = Math.min(CPRectGetMaxY(lhsRect), CPRectGetMaxY(rhsRect)) - CPRectGetMinY(intersection); + return CPRectIsEmpty(intersection) ? CPRectMakeZero() : intersection; +} +CPRectCreateCopy= function(aRect) +{ + return { origin: CPPointCreateCopy(aRect.origin), size: CPSizeCreateCopy(aRect.size) }; +} +CPRectMake= function(x, y, width, height) +{ + return { origin: CPPointMake(x, y), size: CPSizeMake(width, height) }; +} +CPRectOffset= function(aRect, dX, dY) +{ + return CPRectMake(aRect.origin.x + dX, aRect.origin.y + dY, aRect.size.width, aRect.size.height); +} +CPRectStandardize= function(aRect) +{ + var width = CPRectGetWidth(aRect), + height = CPRectGetHeight(aRect), + standardized = CPRectCreateCopy(aRect); + if (width < 0.0) + { + standardized.origin.x += width; + standardized.size.width = -width; + } + if (height < 0.0) + { + standardized.origin.y += height; + standardized.size.height = -height; + } + return standardized; +} +CPRectUnion= function(lhsRect, rhsRect) +{ + var minX = Math.min(CPRectGetMinX(lhsRect), CPRectGetMinX(rhsRect)), + minY = Math.min(CPRectGetMinY(lhsRect), CPRectGetMinY(rhsRect)), + maxX = Math.max(CPRectGetMaxX(lhsRect), CPRectGetMaxX(rhsRect)), + maxY = Math.max(CPRectGetMaxY(lhsRect), CPRectGetMaxY(rhsRect)); + return CPRectMake(minX, minY, maxX - minX, maxY - minY); +} +CPSizeCreateCopy= function(aSize) +{ + return { width: aSize.width, height: aSize.height }; +} +CPSizeMake= function(width, height) +{ + return { width: width, height: height }; +} +CPRectContainsPoint= function(aRect, aPoint) +{ + return aPoint.x >= CPRectGetMinX(aRect) && + aPoint.y >= CPRectGetMinY(aRect) && + aPoint.x < CPRectGetMaxX(aRect) && + aPoint.y < CPRectGetMaxY(aRect); +} +CPRectContainsRect= function(lhsRect, rhsRect) +{ + return CPRectEqualToRect(CPUnionRect(lhsRect, rhsRect), rhsRect); +} +CPPointEqualToPoint= function(lhsPoint, rhsPoint) +{ + return lhsPoint.x == rhsPoint.x && lhsPoint.y == rhsPoint.y; +} +CPRectEqualToRect= function(lhsRect, rhsRect) +{ + return CPPointEqualToPoint(lhsRect.origin, rhsRect.origin) && + CPSizeEqualToSize(lhsRect.size, rhsRect.size); +} +CPRectGetHeight= function(aRect) +{ + return aRect.size.height; +} +CPRectGetMaxX= function(aRect) +{ + return aRect.origin.x + aRect.size.width; +} +CPRectGetMaxY= function(aRect) +{ + return aRect.origin.y + aRect.size.height; +} +CPRectGetMidX= function(aRect) +{ + return aRect.origin.x + (aRect.size.width) / 2.0; +} +CPRectGetMidY= function(aRect) +{ + return aRect.origin.y + (aRect.size.height) / 2.0; +} +CPRectGetMinX= function(aRect) +{ + return aRect.origin.x; +} +CPRectGetMinY= function(aRect) +{ + return aRect.origin.y; +} +CPRectGetWidth= function(aRect) +{ + return aRect.size.width; +} +CPRectIntersectsRect= function(lhsRect, rhsRect) +{ + return !CPRectIsEmpty(CPRectIntersection(lhsRect, rhsRect)); +} +CPRectIsEmpty= function(aRect) +{ + return aRect.size.width <= 0.0 || aRect.size.height <= 0.0; +} +CPRectIsNull= function(aRect) +{ + return aRect.size.width <= 0.0 || aRect.size.height <= 0.0; +} +CPSizeEqualToSize= function(lhsSize, rhsSize) +{ + return lhsSize.width == rhsSize.width && lhsSize.height == rhsSize.height; +} +CPStringFromPoint= function(aPoint) +{ + return "{" + aPoint.x + ", " + aPoint.y + "}"; +} +CPStringFromSize= function(aSize) +{ + return "{" + aSize.width + ", " + aSize.height + "}"; +} +CPStringFromRect= function(aRect) +{ + return "{" + CPStringFromPoint(aRect.origin) + ", " + CPStringFromSize(aRect.size) + "}"; +} +CPPointFromString= function(aString) +{ + var comma = aString.indexOf(','); + return { x:parseFloat(aString.substr(1, comma - 1), 10), y:parseFloat(aString.substring(comma + 1, aString.length), 10) }; +} +CPSizeFromString= function(aString) +{ + var comma = aString.indexOf(','); + return { width:parseFloat(aString.substr(1, comma - 1), 10), height:parseFloat(aString.substring(comma + 1, aString.length), 10) }; +} +CPRectFromString= function(aString) +{ + var comma = aString.indexOf(',', aString.indexOf(',') + 1); + return { origin:CPPointFromString(aString.substr(1, comma - 1)), size:CPSizeFromString(aString.substring(comma + 2, aString.length)) }; +} +CPPointFromEvent= function(anEvent) +{ + return CPPointMake(anEvent.clientX, anEvent.clientY, 0); +} +CPSizeMakeZero= function() +{ + return CPSizeMake(0, 0); +} +CPRectMakeZero= function() +{ + return CPRectMake(0, 0, 0, 0); +} +CPPointMakeZero= function() +{ + return CPPointMake(0, 0, 0); +} + +p;19;CPGraphicsContext.jc;1484;var CPGraphicsContextCurrent = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPGraphicsContext"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_graphicsPort")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithGraphicsPort:"), function $CPGraphicsContext__initWithGraphicsPort_(self, _cmd, aGraphicsPort) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _graphicsPort = aGraphicsPort; + return self; +} +}), new objj_method(sel_getUid("graphicsPort"), function $CPGraphicsContext__graphicsPort(self, _cmd) +{ with(self) +{ + return _graphicsPort; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("currentContext"), function $CPGraphicsContext__currentContext(self, _cmd) +{ with(self) +{ + return CPGraphicsContextCurrent; +} +}), new objj_method(sel_getUid("setCurrentContext:"), function $CPGraphicsContext__setCurrentContext_(self, _cmd, aGraphicsContext) +{ with(self) +{ + CPGraphicsContextCurrent = aGraphicsContext; +} +}), new objj_method(sel_getUid("graphicsContextWithGraphicsPort:flipped:"), function $CPGraphicsContext__graphicsContextWithGraphicsPort_flipped_(self, _cmd, aContext, aFlag) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithGraphicsPort:", aContext); +} +})]); +} + +p;9;CPImage.jI;21;Foundation/CPBundle.jI;33;Foundation/CPNotificationCenter.jI;21;Foundation/CPObject.jI;22;Foundation/CPRunLoop.jI;21;Foundation/CPString.ji;12;CPGeometry.jc;12167; +CPImageLoadStatusInitialized = 0; +CPImageLoadStatusLoading = 1; +CPImageLoadStatusCompleted = 2; +CPImageLoadStatusCancelled = 3; +CPImageLoadStatusInvalidData = 4; +CPImageLoadStatusUnexpectedEOF = 5; +CPImageLoadStatusReadError = 6; +CPImageDidLoadNotification = "CPImageDidLoadNotification"; +CPImageInBundle= function(aFilename, aSize, aBundle) +{ + if (!aBundle) + aBundle = objj_msgSend(CPBundle, "mainBundle"); + if (aSize) + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(aBundle, "pathForResource:", aFilename), aSize); + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:", objj_msgSend(aBundle, "pathForResource:", aFilename)); +} +{ +var the_class = objj_getClass("CPBundle") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPBundle\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("pathForResource:"), function $CPBundle__pathForResource_(self, _cmd, aFilename) +{ with(self) +{ + return objj_msgSend(self, "resourcePath") + '/' + aFilename; +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPImage"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_size"), new objj_ivar("_filename"), new objj_ivar("_delegate"), new objj_ivar("_loadStatus"), new objj_ivar("_image")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initByReferencingFile:size:"), function $CPImage__initByReferencingFile_size_(self, _cmd, aFilename, aSize) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _size = CPSizeCreateCopy(aSize); + _filename = aFilename; + _loadStatus = CPImageLoadStatusInitialized; + } + return self; +} +}), new objj_method(sel_getUid("initWithContentsOfFile:size:"), function $CPImage__initWithContentsOfFile_size_(self, _cmd, aFilename, aSize) +{ with(self) +{ + self = objj_msgSend(self, "initByReferencingFile:size:", aFilename, aSize); + if (self) + objj_msgSend(self, "load"); + return self; +} +}), new objj_method(sel_getUid("initWithContentsOfFile:"), function $CPImage__initWithContentsOfFile_(self, _cmd, aFilename) +{ with(self) +{ + self = objj_msgSend(self, "initByReferencingFile:size:", aFilename, CGSizeMake(-1, -1)); + if (self) + objj_msgSend(self, "load"); + return self; +} +}), new objj_method(sel_getUid("filename"), function $CPImage__filename(self, _cmd) +{ with(self) +{ + return _filename; +} +}), new objj_method(sel_getUid("setSize:"), function $CPImage__setSize_(self, _cmd, aSize) +{ with(self) +{ + _size = CGSizeMakeCopy(aSize); +} +}), new objj_method(sel_getUid("size"), function $CPImage__size(self, _cmd) +{ with(self) +{ + return _size; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPImage__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; +} +}), new objj_method(sel_getUid("delegate"), function $CPImage__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("loadStatus"), function $CPImage__loadStatus(self, _cmd) +{ with(self) +{ + return _loadStatus; +} +}), new objj_method(sel_getUid("load"), function $CPImage__load(self, _cmd) +{ with(self) +{ + if (_loadStatus == CPImageLoadStatusLoading || _loadStatus == CPImageLoadStatusCompleted) + return; + _loadStatus = CPImageLoadStatusLoading; + _image = new Image(); + var isSynchronous = YES; + _image.onload = function () + { + if (isSynchronous) + window.setTimeout(function() { objj_msgSend(self, "_imageDidLoad"); }, 0); + else + { + objj_msgSend(self, "_imageDidLoad"); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + objj_msgSend(self, "_derefFromImage"); + } + _image.onerror = function () + { + if (isSynchronous) + window.setTimeout(function() { objj_msgSend(self, "_imageDidError"); }, 0); + else + { + objj_msgSend(self, "_imageDidError"); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + objj_msgSend(self, "_derefFromImage"); + } + _image.onabort = function () + { + if (isSynchronous) + window.setTimeout(function() { objj_msgSend(self, "_imageDidAbort"); }, 0); + else + { + objj_msgSend(self, "_imageDidAbort"); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + objj_msgSend(self, "_derefFromImage"); + } + _image.src = _filename; + isSynchronous = NO; +} +}), new objj_method(sel_getUid("isThreePartImage"), function $CPImage__isThreePartImage(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("isNinePartImage"), function $CPImage__isNinePartImage(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("_derefFromImage"), function $CPImage___derefFromImage(self, _cmd) +{ with(self) +{ + _image.onload = null; + _image.onerror = null; + _image.onabort = null; +} +}), new objj_method(sel_getUid("_imageDidLoad"), function $CPImage___imageDidLoad(self, _cmd) +{ with(self) +{ + _loadStatus = CPImageLoadStatusCompleted; + if (!_size || (_size.width == -1 && _size.height == -1)) + _size = CGSizeMake(_image.width, _image.height); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPImageDidLoadNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("imageDidLoad:"))) + objj_msgSend(_delegate, "imageDidLoad:", self); +} +}), new objj_method(sel_getUid("_imageDidError"), function $CPImage___imageDidError(self, _cmd) +{ with(self) +{ + _loadStatus = CPImageLoadStatusReadError; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("imageDidError:"))) + objj_msgSend(_delegate, "imageDidError:", self); +} +}), new objj_method(sel_getUid("_imageDidAbort"), function $CPImage___imageDidAbort(self, _cmd) +{ with(self) +{ + _loadStatus = CPImageLoadStatusCancelled; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("imageDidAbort:"))) + objj_msgSend(_delegate, "imageDidAbort:", self); +} +})]); +} +{ +var the_class = objj_getClass("CPImage") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPImage\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPImage__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + return objj_msgSend(self, "initWithContentsOfFile:size:", objj_msgSend(aCoder, "decodeObjectForKey:", "CPFilename"), objj_msgSend(aCoder, "decodeSizeForKey:", "CPSize")); +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPImage__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _filename, "CPFilename"); + objj_msgSend(aCoder, "encodeSize:forKey:", _size, "CPSize"); +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPThreePartImage"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_imageSlices"), new objj_ivar("_isVertical")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithImageSlices:isVertical:"), function $CPThreePartImage__initWithImageSlices_isVertical_(self, _cmd, imageSlices, isVertical) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _imageSlices = imageSlices; + _isVertical = isVertical; + } + return self; +} +}), new objj_method(sel_getUid("filename"), function $CPThreePartImage__filename(self, _cmd) +{ with(self) +{ + return ""; +} +}), new objj_method(sel_getUid("imageSlices"), function $CPThreePartImage__imageSlices(self, _cmd) +{ with(self) +{ + return _imageSlices; +} +}), new objj_method(sel_getUid("isVertical"), function $CPThreePartImage__isVertical(self, _cmd) +{ with(self) +{ + return _isVertical; +} +}), new objj_method(sel_getUid("isThreePartImage"), function $CPThreePartImage__isThreePartImage(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("isNinePartImage"), function $CPThreePartImage__isNinePartImage(self, _cmd) +{ with(self) +{ + return NO; +} +})]); +} +var CPThreePartImageImageSlicesKey = "CPThreePartImageImageSlicesKey", + CPThreePartImageIsVerticalKey = "CPThreePartImageIsVerticalKey"; +{ +var the_class = objj_getClass("CPThreePartImage") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPThreePartImage\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPThreePartImage__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _imageSlices = objj_msgSend(aCoder, "decodeObjectForKey:", CPThreePartImageImageSlicesKey); + _isVertical = objj_msgSend(aCoder, "decodeBoolForKey:", CPThreePartImageIsVerticalKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPThreePartImage__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _imageSlices, CPThreePartImageImageSlicesKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _isVertical, CPThreePartImageIsVerticalKey); +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPNinePartImage"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_imageSlices")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithImageSlices:"), function $CPNinePartImage__initWithImageSlices_(self, _cmd, imageSlices) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _imageSlices = imageSlices; + return self; +} +}), new objj_method(sel_getUid("filename"), function $CPNinePartImage__filename(self, _cmd) +{ with(self) +{ + return ""; +} +}), new objj_method(sel_getUid("imageSlices"), function $CPNinePartImage__imageSlices(self, _cmd) +{ with(self) +{ + return _imageSlices; +} +}), new objj_method(sel_getUid("isThreePartImage"), function $CPNinePartImage__isThreePartImage(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("isNinePartImage"), function $CPNinePartImage__isNinePartImage(self, _cmd) +{ with(self) +{ + return YES; +} +})]); +} +var CPNinePartImageImageSlicesKey = "CPNinePartImageImageSlicesKey"; +{ +var the_class = objj_getClass("CPNinePartImage") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPNinePartImage\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPNinePartImage__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _imageSlices = objj_msgSend(aCoder, "decodeObjectForKey:", CPNinePartImageImageSlicesKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPNinePartImage__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _imageSlices, CPNinePartImageImageSlicesKey); +} +})]); +} + +p;13;CPImageView.jI;33;Foundation/CPNotificationCenter.ji;11;CPControl.ji;9;CPImage.ji;14;CPShadowView.jc;12190; +CPScaleProportionally = 0; +CPScaleToFit = 1; +CPScaleNone = 2; +var CPImageViewShadowBackgroundColor = nil; +var LEFT_SHADOW_INSET = 3.0, + RIGHT_SHADOW_INSET = 3.0, + TOP_SHADOW_INSET = 3.0, + BOTTOM_SHADOW_INSET = 5.0, + VERTICAL_SHADOW_INSET = TOP_SHADOW_INSET + BOTTOM_SHADOW_INSET, + HORIZONTAL_SHADOW_INSET = LEFT_SHADOW_INSET + RIGHT_SHADOW_INSET; +{var the_class = objj_allocateClassPair(CPControl, "CPImageView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_DOMImageElement"), new objj_ivar("_hasShadow"), new objj_ivar("_shadowView"), new objj_ivar("_isEditable"), new objj_ivar("_imageRect")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPImageView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + _DOMImageElement = document.createElement("img"); + _DOMImageElement.style.position = "absolute"; + _DOMImageElement.style.left = "0px"; + _DOMImageElement.style.top = "0px"; + if (_DOMImageElement.CPDOMDisplayContext) _DOMImageElement.CPDOMDisplayContext[0] = -1; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 6; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMImageElement;; + _DOMImageElement.style.visibility = "hidden"; + } + return self; +} +}), new objj_method(sel_getUid("image"), function $CPImageView__image(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "objectValue"); +} +}), new objj_method(sel_getUid("setImage:"), function $CPImageView__setImage_(self, _cmd, anImage) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", anImage); +} +}), new objj_method(sel_getUid("setObjectValue:"), function $CPImageView__setObjectValue_(self, _cmd, anImage) +{ with(self) +{ + var oldImage = objj_msgSend(self, "objectValue"); + if (oldImage === anImage) + return; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setObjectValue:", anImage); + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (oldImage) + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPImageDidLoadNotification, oldImage); + var newImage = objj_msgSend(self, "objectValue"); + _DOMImageElement.src = newImage ? objj_msgSend(newImage, "filename") : ""; + var size = objj_msgSend(newImage, "size"); + if (size && size.width === -1 && size.height === -1) + { + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("imageDidLoad:"), CPImageDidLoadNotification, newImage); + _DOMImageElement.width = 0; + _DOMImageElement.height = 0; + objj_msgSend(_shadowView, "setHidden:", YES); + } + else + { + objj_msgSend(self, "hideOrDisplayContents"); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + } +} +}), new objj_method(sel_getUid("imageDidLoad:"), function $CPImageView__imageDidLoad_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "hideOrDisplayContents"); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("hasShadow"), function $CPImageView__hasShadow(self, _cmd) +{ with(self) +{ + return _hasShadow; +} +}), new objj_method(sel_getUid("setHasShadow:"), function $CPImageView__setHasShadow_(self, _cmd, shouldHaveShadow) +{ with(self) +{ + if (_hasShadow == shouldHaveShadow) + return; + _hasShadow = shouldHaveShadow; + if (_hasShadow) + { + _shadowView = objj_msgSend(objj_msgSend(CPShadowView, "alloc"), "initWithFrame:", objj_msgSend(self, "bounds")); + objj_msgSend(self, "addSubview:", _shadowView); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + } + else + { + objj_msgSend(_shadowView, "removeFromSuperview"); + _shadowView = nil; + } + objj_msgSend(self, "hideOrDisplayContents"); +} +}), new objj_method(sel_getUid("setImageScaling:"), function $CPImageView__setImageScaling_(self, _cmd, anImageScaling) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setImageScaling:", anImageScaling); + if (objj_msgSend(self, "currentValueForThemeAttribute:", "image-scaling") === CPScaleToFit) + { + if (!_DOMImageElement.CPDOMDisplayContext) _DOMImageElement.CPDOMDisplayContext = []; var __index = _DOMImageElement.CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageElement.CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageElement; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = 0.0; CPDOMDisplayServerInstructions[__index + 4] = 0.0;; + } + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("hideOrDisplayContents"), function $CPImageView__hideOrDisplayContents(self, _cmd) +{ with(self) +{ + if (!objj_msgSend(self, "image")) + { + _DOMImageElement.style.visibility = "hidden"; + objj_msgSend(_shadowView, "setHidden:", YES); + } + else + { + _DOMImageElement.style.visibility = "visible"; + objj_msgSend(_shadowView, "setHidden:", NO); + } +} +}), new objj_method(sel_getUid("imageRect"), function $CPImageView__imageRect(self, _cmd) +{ with(self) +{ + return _imageRect; +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPImageView__layoutSubviews(self, _cmd) +{ with(self) +{ + if (!objj_msgSend(self, "image")) + return; + var bounds = objj_msgSend(self, "bounds"), + image = objj_msgSend(self, "image"), + imageScaling = objj_msgSend(self, "currentValueForThemeAttribute:", "image-scaling"), + x = 0.0, + y = 0.0, + insetWidth = (_hasShadow ? HORIZONTAL_SHADOW_INSET : 0.0), + insetHeight = (_hasShadow ? VERTICAL_SHADOW_INSET : 0.0), + boundsWidth = (bounds.size.width), + boundsHeight = (bounds.size.height), + width = boundsWidth - insetWidth, + height = boundsHeight - insetHeight; + if (imageScaling === CPScaleToFit) + { + _DOMImageElement.width = ROUND(width); + _DOMImageElement.height = ROUND(height); + } + else + { + var size = objj_msgSend(image, "size"); + if (size.width == -1 && size.height == -1) + return; + if (imageScaling === CPScaleProportionally) + { + if (width >= size.width && height >= size.height) + { + width = size.width; + height = size.height; + } + else + { + var imageRatio = size.width / size.height, + viewRatio = width / height; + if (viewRatio > imageRatio) + width = height * imageRatio; + else + height = width / imageRatio; + } + _DOMImageElement.width = ROUND(width); + _DOMImageElement.height = ROUND(height); + } + else + { + width = size.width; + height = size.height; + } + if (imageScaling == CPScaleNone) + { + _DOMImageElement.width = ROUND(size.width); + _DOMImageElement.height = ROUND(size.height); + } + var x = (boundsWidth - width) / 2.0, + y = (boundsHeight - height) / 2.0; + if (!_DOMImageElement.CPDOMDisplayContext) _DOMImageElement.CPDOMDisplayContext = []; var __index = _DOMImageElement.CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageElement.CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageElement; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = x; CPDOMDisplayServerInstructions[__index + 4] = y;; + } + _imageRect = { origin: { x:x, y:y }, size: { width:width, height:height } }; + if (_hasShadow) + objj_msgSend(_shadowView, "setFrame:", { origin: { x:x - LEFT_SHADOW_INSET, y:y - TOP_SHADOW_INSET }, size: { width:width + insetWidth, height:height + insetHeight } }); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPImageView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(objj_msgSend(self, "nextResponder"), "mouseDown:", anEvent); +} +}), new objj_method(sel_getUid("setEditable:"), function $CPImageView__setEditable_(self, _cmd, shouldBeEditable) +{ with(self) +{ + if (_isEditable === shouldBeEditable) + return; + _isEditable = shouldBeEditable; + if (_isEditable) + objj_msgSend(self, "registerForDraggedTypes:", [CPImagesPboardType]); + else + { + var draggedTypes = objj_msgSend(self, "registeredDraggedTypes"); + objj_msgSend(self, "unregisterDraggedTypes"); + objj_msgSend(draggedTypes, "removeObjectIdenticalTo:", CPImagesPboardType); + objj_msgSend(self, "registerForDraggedTypes:", draggedTypes); + } +} +}), new objj_method(sel_getUid("isEditable"), function $CPImageView__isEditable(self, _cmd) +{ with(self) +{ + return _isEditable; +} +}), new objj_method(sel_getUid("performDragOperation:"), function $CPImageView__performDragOperation_(self, _cmd, aSender) +{ with(self) +{ + var images = objj_msgSend(CPKeyedUnarchiver, "unarchiveObjectWithData:", objj_msgSend(objj_msgSend(aSender, "draggingPasteboard"), "dataForType:", CPImagesPboardType)); + if (objj_msgSend(images, "count")) + objj_msgSend(self, "setImage:", images[0]); +} +})]); +} +var CPImageViewImageKey = "CPImageViewImageKey", + CPImageViewImageScalingKey = "CPImageViewImageScalingKey", + CPImageViewHasShadowKey = "CPImageViewHasShadowKey", + CPImageViewIsEditableKey = "CPImageViewIsEditableKey"; +{ +var the_class = objj_getClass("CPImageView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPImageView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPImageView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + _DOMImageElement = document.createElement("img"); + _DOMImageElement.style.position = "absolute"; + _DOMImageElement.style.left = "0px"; + _DOMImageElement.style.top = "0px"; + _DOMImageElement.style.visibility = "hidden"; + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder); + if (self) + { + _DOMElement.appendChild(_DOMImageElement); + objj_msgSend(self, "setHasShadow:", objj_msgSend(aCoder, "decodeBoolForKey:", CPImageViewHasShadowKey)); + if (objj_msgSend(aCoder, "decodeBoolForKey:", CPImageViewIsEditableKey) || NO) + objj_msgSend(self, "setEditable:", YES); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPImageView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (_shadowView) + { + var actualSubviews = _subviews; + _subviews = objj_msgSend(_subviews, "copy"); + objj_msgSend(_subviews, "removeObjectIdenticalTo:", _shadowView); + } + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + if (_shadowView) + _subviews = actualSubviews; + objj_msgSend(aCoder, "encodeBool:forKey:", _hasShadow, CPImageViewHasShadowKey); + if (_isEditable) + objj_msgSend(aCoder, "encodeBool:forKey:", _isEditable, CPImageViewIsEditableKey); +} +})]); +} + +p;8;CPMenu.jI;20;Foundation/CPArray.jI;25;Foundation/CPDictionary.jI;33;Foundation/CPNotificationCenter.jI;21;Foundation/CPString.ji;15;CPApplication.ji;12;CPClipView.ji;12;CPMenuItem.ji;9;CPPanel.jc;66475; +CPMenuDidAddItemNotification = "CPMenuDidAddItemNotification"; +CPMenuDidChangeItemNotification = "CPMenuDidChangeItemNotification"; +CPMenuDidRemoveItemNotification = "CPMenuDidRemoveItemNotification"; +CPMenuDidEndTrackingNotification = "CPMenuDidEndTrackingNotification"; +var MENUBAR_HEIGHT = 19.0; +var _CPMenuBarVisible = NO, + _CPMenuBarTitle = "", + _CPMenuBarIconImage = nil, + _CPMenuBarIconImageAlphaValue = 1.0, + _CPMenuBarAttributes = nil, + _CPMenuBarSharedWindow = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPMenu"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_supermenu"), new objj_ivar("_title"), new objj_ivar("_items"), new objj_ivar("_attachedMenu"), new objj_ivar("_autoenablesItems"), new objj_ivar("_showsStateColumn"), new objj_ivar("_delegate"), new objj_ivar("_highlightedIndex"), new objj_ivar("_menuWindow")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("menuBarHeight"), function $CPMenu__menuBarHeight(self, _cmd) +{ with(self) +{ + if (self == objj_msgSend(CPApp, "mainMenu")) + return MENUBAR_HEIGHT; + return 0.0; +} +}), new objj_method(sel_getUid("initWithTitle:"), function $CPMenu__initWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _title = aTitle; + _items = []; + _autoenablesItems = YES; + _showsStateColumn = YES; + } + return self; +} +}), new objj_method(sel_getUid("init"), function $CPMenu__init(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "initWithTitle:", ""); +} +}), new objj_method(sel_getUid("insertItem:atIndex:"), function $CPMenu__insertItem_atIndex_(self, _cmd, aMenuItem, anIndex) +{ with(self) +{ + var menu = objj_msgSend(aMenuItem, "menu"); + if (menu) + if (menu != self) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Attempted to insert item into menu that was already in another menu."); + else + return; + objj_msgSend(aMenuItem, "setMenu:", self); + objj_msgSend(_items, "insertObject:atIndex:", aMenuItem, anIndex); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPMenuDidAddItemNotification, self, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", anIndex, "CPMenuItemIndex")); +} +}), new objj_method(sel_getUid("insertItemWithTitle:action:keyEquivalent:atIndex:"), function $CPMenu__insertItemWithTitle_action_keyEquivalent_atIndex_(self, _cmd, aTitle, anAction, aKeyEquivalent, anIndex) +{ with(self) +{ + var item = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", aTitle, anAction, aKeyEquivalent); + objj_msgSend(self, "insertItem:atIndex:", item, anIndex); + return item; +} +}), new objj_method(sel_getUid("addItem:"), function $CPMenu__addItem_(self, _cmd, aMenuItem) +{ with(self) +{ + objj_msgSend(self, "insertItem:atIndex:", aMenuItem, objj_msgSend(_items, "count")); +} +}), new objj_method(sel_getUid("addItemWithTitle:action:keyEquivalent:"), function $CPMenu__addItemWithTitle_action_keyEquivalent_(self, _cmd, aTitle, anAction, aKeyEquivalent) +{ with(self) +{ + return objj_msgSend(self, "insertItemWithTitle:action:keyEquivalent:atIndex:", aTitle, anAction, aKeyEquivalent, objj_msgSend(_items, "count")); +} +}), new objj_method(sel_getUid("removeItem:"), function $CPMenu__removeItem_(self, _cmd, aMenuItem) +{ with(self) +{ + objj_msgSend(self, "removeItemAtIndex:", objj_msgSend(_items, "indexOfObjectIdenticalTo:", aMenuItem)); +} +}), new objj_method(sel_getUid("removeItemAtIndex:"), function $CPMenu__removeItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + if (anIndex < 0 || anIndex >= _items.length) + return; + objj_msgSend(_items[anIndex], "setMenu:", nil); + objj_msgSend(_items, "removeObjectAtIndex:", anIndex); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPMenuDidRemoveItemNotification, self, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", anIndex, "CPMenuItemIndex")); +} +}), new objj_method(sel_getUid("itemChanged:"), function $CPMenu__itemChanged_(self, _cmd, aMenuItem) +{ with(self) +{ + if (objj_msgSend(aMenuItem, "menu") != self) + return; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPMenuDidChangeItemNotification, self, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", objj_msgSend(_items, "indexOfObjectIdenticalTo:", aMenuItem), "CPMenuItemIndex")); +} +}), new objj_method(sel_getUid("menuWithTag:"), function $CPMenu__menuWithTag_(self, _cmd, aTag) +{ with(self) +{ + var index = objj_msgSend(self, "indexOfItemWithTag:", aTag); + if (index == CPNotFound) + return nil; + return _items[index]; +} +}), new objj_method(sel_getUid("menuWithTitle:"), function $CPMenu__menuWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + var index = objj_msgSend(self, "indexOfItemWithTitle:", aTitle); + if (index == CPNotFound) + return nil; + return _items[index]; +} +}), new objj_method(sel_getUid("itemAtIndex:"), function $CPMenu__itemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(_items, "objectAtIndex:", anIndex); +} +}), new objj_method(sel_getUid("numberOfItems"), function $CPMenu__numberOfItems(self, _cmd) +{ with(self) +{ + return objj_msgSend(_items, "count"); +} +}), new objj_method(sel_getUid("itemArray"), function $CPMenu__itemArray(self, _cmd) +{ with(self) +{ + return _items; +} +}), new objj_method(sel_getUid("indexOfItem:"), function $CPMenu__indexOfItem_(self, _cmd, aMenuItem) +{ with(self) +{ + if (objj_msgSend(aMenuItem, "menu") != self) + return CPNotFound; + return objj_msgSend(_items, "indexOfObjectIdenticalTo:", aMenuItem); +} +}), new objj_method(sel_getUid("indexOfItemWithTitle:"), function $CPMenu__indexOfItemWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + var index = 0, + count = _items.length; + for (; index < count; ++index) + if (objj_msgSend(_items[index], "title") === aTitle) + return index; + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfItemWithTag:"), function $CPMenu__indexOfItemWithTag_(self, _cmd, aTag) +{ with(self) +{ + var index = 0, + count = _items.length; + for (; index < count; ++index) + if (objj_msgSend(_items[index], "tag") == aTag) + return index; + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfItemWithTarget:andAction:"), function $CPMenu__indexOfItemWithTarget_andAction_(self, _cmd, aTarget, anAction) +{ with(self) +{ + var index = 0, + count = _items.length; + for (; index < count; ++index) + { + var item = _items[index]; + if (objj_msgSend(item, "target") == aTarget && (!anAction || objj_msgSend(item, "action") == anAction)) + return index; + } + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfItemWithRepresentedObject:"), function $CPMenu__indexOfItemWithRepresentedObject_(self, _cmd, anObject) +{ with(self) +{ + var index = 0, + count = _items.length; + for (; index < count; ++index) + if (objj_msgSend(objj_msgSend(_items[index], "representedObject"), "isEqual:", anObject)) + return index; + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfItemWithSubmenu:"), function $CPMenu__indexOfItemWithSubmenu_(self, _cmd, aMenu) +{ with(self) +{ + var index = 0, + count = _items.length; + for (; index < count; ++index) + if (objj_msgSend(_items[index], "submenu") == aMenu) + return index; + return CPNotFound; +} +}), new objj_method(sel_getUid("setSubmenu:forItem:"), function $CPMenu__setSubmenu_forItem_(self, _cmd, aMenu, aMenuItem) +{ with(self) +{ + objj_msgSend(aMenuItem, "setTarget:", aMenuItem); + objj_msgSend(aMenuItem, "setAction:", sel_getUid("submenuAction:")); + objj_msgSend(aMenuItem, "setSubmenu:", aMenu); +} +}), new objj_method(sel_getUid("submenuAction:"), function $CPMenu__submenuAction_(self, _cmd, aSender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("attachedMenu"), function $CPMenu__attachedMenu(self, _cmd) +{ with(self) +{ + return _attachedMenu; +} +}), new objj_method(sel_getUid("isAttached"), function $CPMenu__isAttached(self, _cmd) +{ with(self) +{ + return _isAttached; +} +}), new objj_method(sel_getUid("locationOfSubmenu:"), function $CPMenu__locationOfSubmenu_(self, _cmd, aMenu) +{ with(self) +{ +} +}), new objj_method(sel_getUid("supermenu"), function $CPMenu__supermenu(self, _cmd) +{ with(self) +{ + return _supermenu; +} +}), new objj_method(sel_getUid("setSupermenu:"), function $CPMenu__setSupermenu_(self, _cmd, aMenu) +{ with(self) +{ + _supermenu = aMenu; +} +}), new objj_method(sel_getUid("isTornOff"), function $CPMenu__isTornOff(self, _cmd) +{ with(self) +{ + return !_supermenu || self == objj_msgSend(CPApp, "mainMenu"); +} +}), new objj_method(sel_getUid("setAutoenablesItems:"), function $CPMenu__setAutoenablesItems_(self, _cmd, aFlag) +{ with(self) +{ + _autoenablesItems = aFlag; +} +}), new objj_method(sel_getUid("autoenablesItems"), function $CPMenu__autoenablesItems(self, _cmd) +{ with(self) +{ + return _autoenablesItems; +} +}), new objj_method(sel_getUid("update"), function $CPMenu__update(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("setTitle:"), function $CPMenu__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + _title = aTitle; +} +}), new objj_method(sel_getUid("title"), function $CPMenu__title(self, _cmd) +{ with(self) +{ + return _title; +} +}), new objj_method(sel_getUid("setShowsStateColumn:"), function $CPMenu__setShowsStateColumn_(self, _cmd, shouldShowStateColumn) +{ with(self) +{ + _showsStateColumn = shouldShowStateColumn; +} +}), new objj_method(sel_getUid("showsStateColumn"), function $CPMenu__showsStateColumn(self, _cmd) +{ with(self) +{ + return _showsStateColumn; +} +}), new objj_method(sel_getUid("highlightedItem"), function $CPMenu__highlightedItem(self, _cmd) +{ with(self) +{ + return _highlightedIndex >= 0 ? _items[_highlightedIndex] : nil; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPMenu__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; +} +}), new objj_method(sel_getUid("delegate"), function $CPMenu__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("cancelTracking"), function $CPMenu__cancelTracking(self, _cmd) +{ with(self) +{ + objj_msgSend(_menuWindow, "cancelTracking"); +} +}), new objj_method(sel_getUid("_setMenuWindow:"), function $CPMenu___setMenuWindow_(self, _cmd, aMenuWindow) +{ with(self) +{ + _menuWindow = aMenuWindow; +} +}), new objj_method(sel_getUid("performKeyEquivalent:"), function $CPMenu__performKeyEquivalent_(self, _cmd, anEvent) +{ with(self) +{ + if (_autoenablesItems) + objj_msgSend(self, "update"); + var index = 0, + count = _items.length, + characters = objj_msgSend(anEvent, "charactersIgnoringModifiers"), + modifierFlags = objj_msgSend(anEvent, "modifierFlags"); + for(; index < count; ++index) + { + var item = _items[index], + modifierMask = objj_msgSend(item, "keyEquivalentModifierMask"); + if ((modifierFlags & (CPShiftKeyMask | CPAlternateKeyMask | CPCommandKeyMask | CPControlKeyMask)) == modifierMask && + objj_msgSend(characters, "caseInsensitiveCompare:", objj_msgSend(item, "keyEquivalent")) == CPOrderedSame) + { + if (objj_msgSend(item, "isEnabled")) + objj_msgSend(self, "performActionForItemAtIndex:", index); + else + { + } + return YES; + } + if (objj_msgSend(objj_msgSend(item, "submenu"), "performKeyEquivalent:", anEvent)) + return YES; + } + return NO; +} +}), new objj_method(sel_getUid("performActionForItemAtIndex:"), function $CPMenu__performActionForItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + var item = _items[anIndex]; + objj_msgSend(CPApp, "sendAction:to:from:", objj_msgSend(item, "action"), objj_msgSend(item, "target"), item); +} +}), new objj_method(sel_getUid("_itemIsHighlighted:"), function $CPMenu___itemIsHighlighted_(self, _cmd, aMenuItem) +{ with(self) +{ + return _items[_highlightedIndex] == aMenuItem; +} +}), new objj_method(sel_getUid("_highlightItemAtIndex:"), function $CPMenu___highlightItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + var previousHighlightedIndex = _highlightedIndex; + _highlightedIndex = anIndex; + if (previousHighlightedIndex != CPNotFound) + objj_msgSend(objj_msgSend(_items[previousHighlightedIndex], "_menuItemView"), "highlight:", NO); + if (_highlightedIndex != CPNotFound) + objj_msgSend(objj_msgSend(_items[_highlightedIndex], "_menuItemView"), "highlight:", YES); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPMenu__initialize(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(self, "class"), "setMenuBarAttributes:", objj_msgSend(CPDictionary, "dictionary")); +} +}), new objj_method(sel_getUid("menuBarVisible"), function $CPMenu__menuBarVisible(self, _cmd) +{ with(self) +{ + return _CPMenuBarVisible; +} +}), new objj_method(sel_getUid("setMenuBarVisible:"), function $CPMenu__setMenuBarVisible_(self, _cmd, menuBarShouldBeVisible) +{ with(self) +{ + if (_CPMenuBarVisible == menuBarShouldBeVisible) + return; + _CPMenuBarVisible = menuBarShouldBeVisible; + if (menuBarShouldBeVisible) + { + if (!_CPMenuBarSharedWindow) + _CPMenuBarSharedWindow = objj_msgSend(objj_msgSend(_CPMenuBarWindow, "alloc"), "init"); + objj_msgSend(_CPMenuBarSharedWindow, "setMenu:", objj_msgSend(CPApp, "mainMenu")); + objj_msgSend(_CPMenuBarSharedWindow, "setTitle:", _CPMenuBarTitle); + objj_msgSend(_CPMenuBarSharedWindow, "setIconImage:", _CPMenuBarIconImage); + objj_msgSend(_CPMenuBarSharedWindow, "setIconImageAlphaValue:", _CPMenuBarIconImageAlphaValue); + objj_msgSend(_CPMenuBarSharedWindow, "setColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarBackgroundColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTextColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTextColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTitleColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTitleColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTextShadowColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTextShadowColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTitleShadowColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTitleShadowColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setHighlightColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarHighlightColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setHighlightTextColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarHighlightTextColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setHighlightTextShadowColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarHighlightTextShadowColor")); + objj_msgSend(_CPMenuBarSharedWindow, "orderFront:", self); + } + else + objj_msgSend(_CPMenuBarSharedWindow, "orderOut:", self); + objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "_bridgeResizeEvent:", nil); +} +}), new objj_method(sel_getUid("setMenuBarTitle:"), function $CPMenu__setMenuBarTitle_(self, _cmd, aTitle) +{ with(self) +{ + _CPMenuBarTitle = aTitle; + objj_msgSend(_CPMenuBarSharedWindow, "setTitle:", _CPMenuBarTitle); +} +}), new objj_method(sel_getUid("menuBarTitle"), function $CPMenu__menuBarTitle(self, _cmd) +{ with(self) +{ + return _CPMenuBarTitle; +} +}), new objj_method(sel_getUid("setMenuBarIconImage:"), function $CPMenu__setMenuBarIconImage_(self, _cmd, anImage) +{ with(self) +{ + _CPMenuBarImage = anImage; + objj_msgSend(_CPMenuBarSharedWindow, "setIconImage:", anImage); +} +}), new objj_method(sel_getUid("menuBarIconImage"), function $CPMenu__menuBarIconImage(self, _cmd) +{ with(self) +{ + return _CPMenuBarImage; +} +}), new objj_method(sel_getUid("setMenuBarAttributes:"), function $CPMenu__setMenuBarAttributes_(self, _cmd, attributes) +{ with(self) +{ + if (_CPMenuBarAttributes == attributes) + return; + _CPMenuBarAttributes = objj_msgSend(attributes, "copy"); + var textColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarTextColor"), + titleColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarTitleColor"), + textShadowColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarTextShadowColor"), + titleShadowColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarTitleShadowColor"), + highlightColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarHighlightColor"), + highlightTextColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarHighlightTextColor"), + highlightTextShadowColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarHighlightTextShadowColor"); + if (!textColor && titleColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", titleColor, "CPMenuBarTextColor"); + else if (textColor && !titleColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", textColor, "CPMenuBarTitleColor"); + else if (!textColor && !titleColor) + { + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "colorWithRed:green:blue:alpha:", 0.051, 0.2, 0.275, 1.0), "CPMenuBarTextColor"); + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "colorWithRed:green:blue:alpha:", 0.051, 0.2, 0.275, 1.0), "CPMenuBarTitleColor"); + } + if (!textShadowColor && titleShadowColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", titleShadowColor, "CPMenuBarTextShadowColor"); + else if (textShadowColor && !titleShadowColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", textShadowColor, "CPMenuBarTitleShadowColor"); + else if (!textShadowColor && !titleShadowColor) + { + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "whiteColor"), "CPMenuBarTextShadowColor"); + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "whiteColor"), "CPMenuBarTitleShadowColor"); + } + if (!highlightColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 94.0/255.0, 130.0/255.0, 186.0/255.0, 1.0), "CPMenuBarHighlightColor"); + if (!highlightTextColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "whiteColor"), "CPMenuBarHighlightTextColor"); + if (!highlightTextShadowColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "blackColor"), "CPMenuBarHighlightTextShadowColor"); + if (_CPMenuBarSharedWindow) + { + objj_msgSend(_CPMenuBarSharedWindow, "setColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarBackgroundColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTextColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTextColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTitleColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTitleColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTextShadowColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTextShadowColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTitleShadowColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTitleShadowColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setHighlightColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarHighlightColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setHighlightTextColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarHighlightTextColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setHighlightTextShadowColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarHighlightTextShadowColor")); + } +} +}), new objj_method(sel_getUid("menuBarAttributes"), function $CPMenu__menuBarAttributes(self, _cmd) +{ with(self) +{ + return _CPMenuBarAttributes; +} +}), new objj_method(sel_getUid("_setMenuBarIconImageAlphaValue:"), function $CPMenu___setMenuBarIconImageAlphaValue_(self, _cmd, anAlphaValue) +{ with(self) +{ + _CPMenuBarIconImageAlphaValue = anAlphaValue; + objj_msgSend(_CPMenuBarSharedWindow, "setIconImageAlphaValue:", anAlphaValue); +} +}), new objj_method(sel_getUid("menuBarHeight"), function $CPMenu__menuBarHeight(self, _cmd) +{ with(self) +{ + return MENUBAR_HEIGHT; +} +}), new objj_method(sel_getUid("popUpContextMenu:withEvent:forView:"), function $CPMenu__popUpContextMenu_withEvent_forView_(self, _cmd, aMenu, anEvent, aView) +{ with(self) +{ + objj_msgSend(self, "popUpContextMenu:withEvent:forView:withFont:", aMenu, anEvent, aView, nil); +} +}), new objj_method(sel_getUid("popUpContextMenu:withEvent:forView:withFont:"), function $CPMenu__popUpContextMenu_withEvent_forView_withFont_(self, _cmd, aMenu, anEvent, aView, aFont) +{ with(self) +{ + objj_msgSend(self, "_popUpContextMenu:withEvent:forView:withFont:forMenuBar:", aMenu, anEvent, aView, aFont, NO); +} +}), new objj_method(sel_getUid("_popUpContextMenu:withEvent:forView:withFont:forMenuBar:"), function $CPMenu___popUpContextMenu_withEvent_forView_withFont_forMenuBar_(self, _cmd, aMenu, anEvent, aView, aFont, isForMenuBar) +{ with(self) +{ + var delegate = objj_msgSend(aMenu, "delegate"); + if (objj_msgSend(delegate, "respondsToSelector:", sel_getUid("menuWillOpen:"))) + objj_msgSend(delegate, "menuWillOpen:", aMenu); + if (!aFont) + aFont = objj_msgSend(CPFont, "systemFontOfSize:", 12.0); + var theWindow = objj_msgSend(aView, "window"), + menuWindow = objj_msgSend(_CPMenuWindow, "menuWindowWithMenu:font:", aMenu, aFont); + objj_msgSend(menuWindow, "setDelegate:", self); + objj_msgSend(menuWindow, "setBackgroundStyle:", isForMenuBar ? _CPMenuWindowMenuBarBackgroundStyle : _CPMenuWindowPopUpBackgroundStyle); + objj_msgSend(menuWindow, "setFrameOrigin:", objj_msgSend(objj_msgSend(anEvent, "window"), "convertBaseToBridge:", objj_msgSend(anEvent, "locationInWindow"))); + objj_msgSend(menuWindow, "orderFront:", self); + objj_msgSend(menuWindow, "beginTrackingWithEvent:sessionDelegate:didEndSelector:", anEvent, self, sel_getUid("_menuWindowDidFinishTracking:highlightedItem:")); +} +}), new objj_method(sel_getUid("_menuWindowDidFinishTracking:highlightedItem:"), function $CPMenu___menuWindowDidFinishTracking_highlightedItem_(self, _cmd, aMenuWindow, aMenuItem) +{ with(self) +{ + var menu = objj_msgSend(aMenuWindow, "menu"); + objj_msgSend(_CPMenuWindow, "poolMenuWindow:", aMenuWindow); + var delegate = objj_msgSend(menu, "delegate"); + if (objj_msgSend(delegate, "respondsToSelector:", sel_getUid("menuDidClose:"))) + objj_msgSend(delegate, "menuDidClose:", menu); + if(objj_msgSend(aMenuItem, "isEnabled")) + objj_msgSend(CPApp, "sendAction:to:from:", objj_msgSend(aMenuItem, "action"), objj_msgSend(aMenuItem, "target"), aMenuItem); +} +})]); +} +var CPMenuTitleKey = "CPMenuTitleKey", + CPMenuItemsKey = "CPMenuItemsKey", + CPMenuShowsStateColumnKey = "CPMenuShowsStateColumnKey"; +{ +var the_class = objj_getClass("CPMenu") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPMenu\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPMenu__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _title = objj_msgSend(aCoder, "decodeObjectForKey:", CPMenuTitleKey); + _items = objj_msgSend(aCoder, "decodeObjectForKey:", CPMenuItemsKey); + _showsStateColumn = !objj_msgSend(aCoder, "containsValueForKey:", CPMenuShowsStateColumnKey) || objj_msgSend(aCoder, "decodeBoolForKey:", CPMenuShowsStateColumnKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPMenu__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _title, CPMenuTitleKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _items, CPMenuItemsKey); + if (!_showsStateColumn) + objj_msgSend(aCoder, "encodeBool:forKey:", _showsStateColumn, CPMenuShowsStateColumnKey); +} +})]); +} +var _CPMenuWindowPool = [], + _CPMenuWindowPoolCapacity = 5, + _CPMenuWindowBackgroundColors = [], + _CPMenuWindowScrollingStateUp = -1, + _CPMenuWindowScrollingStateDown = 1, + _CPMenuWindowScrollingStateNone = 0; +_CPMenuWindowMenuBarBackgroundStyle = 0; +_CPMenuWindowPopUpBackgroundStyle = 1; +_CPMenuWindowAttachedMenuBackgroundStyle = 2; +var STICKY_TIME_INTERVAL = 500, + TOP_MARGIN = 5.0, + LEFT_MARGIN = 1.0, + RIGHT_MARGIN = 1.0, + BOTTOM_MARGIN = 5.0, + SCROLL_INDICATOR_HEIGHT = 16.0; +{var the_class = objj_allocateClassPair(CPWindow, "_CPMenuWindow"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_menuView"), new objj_ivar("_menuClipView"), new objj_ivar("_lastMouseOverMenuView"), new objj_ivar("_moreAboveView"), new objj_ivar("_moreBelowView"), new objj_ivar("_sessionDelegate"), new objj_ivar("_didEndSelector"), new objj_ivar("_startTime"), new objj_ivar("_scrollingState"), new objj_ivar("_lastScreenLocation"), new objj_ivar("_isShowingTopScrollIndicator"), new objj_ivar("_isShowingBottomScrollIndicator"), new objj_ivar("_trackingCanceled"), new objj_ivar("_unconstrainedFrame")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $_CPMenuWindow__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPWindow") }, "initWithContentRect:styleMask:", CGRectMakeZero(), CPBorderlessWindowMask); + if (self) + { + objj_msgSend(self, "setLevel:", CPPopUpMenuWindowLevel); + objj_msgSend(self, "setHasShadow:", YES); + objj_msgSend(self, "setAcceptsMouseMovedEvents:", YES); + _unconstrainedFrame = CGRectMakeZero(); + var contentView = objj_msgSend(self, "contentView"); + _menuView = objj_msgSend(objj_msgSend(_CPMenuView, "alloc"), "initWithFrame:", CGRectMakeZero()); + _menuClipView = objj_msgSend(objj_msgSend(CPClipView, "alloc"), "initWithFrame:", CGRectMake(LEFT_MARGIN, TOP_MARGIN, 0.0, 0.0)); + objj_msgSend(_menuClipView, "setDocumentView:", _menuView); + objj_msgSend(contentView, "addSubview:", _menuClipView); + _moreAboveView = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_moreAboveView, "setImage:", _CPMenuWindowMoreAboveImage); + objj_msgSend(_moreAboveView, "setFrameSize:", objj_msgSend(_CPMenuWindowMoreAboveImage, "size")); + objj_msgSend(contentView, "addSubview:", _moreAboveView); + _moreBelowView = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_moreBelowView, "setImage:", _CPMenuWindowMoreBelowImage); + objj_msgSend(_moreBelowView, "setFrameSize:", objj_msgSend(_CPMenuWindowMoreBelowImage, "size")); + objj_msgSend(contentView, "addSubview:", _moreBelowView); + } + return self; +} +}), new objj_method(sel_getUid("overlapOffsetWidth"), function $_CPMenuWindow__overlapOffsetWidth(self, _cmd) +{ with(self) +{ + return LEFT_MARGIN; +} +}), new objj_method(sel_getUid("setFont:"), function $_CPMenuWindow__setFont_(self, _cmd, aFont) +{ with(self) +{ + objj_msgSend(_menuView, "setFont:", aFont); +} +}), new objj_method(sel_getUid("setBackgroundStyle:"), function $_CPMenuWindow__setBackgroundStyle_(self, _cmd, aBackgroundStyle) +{ with(self) +{ + var color = _CPMenuWindowBackgroundColors[aBackgroundStyle]; + if (!color) + { + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(self, "class")); + if (aBackgroundStyle == _CPMenuWindowPopUpBackgroundStyle) + color = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowRounded0.png"), CGSizeMake(4.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow1.png"), CGSizeMake(1.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowRounded2.png"), CGSizeMake(4.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow3.png"), CGSizeMake(4.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow4.png"), CGSizeMake(1.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow5.png"), CGSizeMake(4.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowRounded6.png"), CGSizeMake(4.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow7.png"), CGSizeMake(1.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowRounded8.png"), CGSizeMake(4.0, 4.0)) + ])); + else if (aBackgroundStyle == _CPMenuWindowMenuBarBackgroundStyle) + color = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow3.png"), CGSizeMake(4.0, 0.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow4.png"), CGSizeMake(1.0, 0.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow5.png"), CGSizeMake(4.0, 0.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow3.png"), CGSizeMake(4.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow4.png"), CGSizeMake(1.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow5.png"), CGSizeMake(4.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowRounded6.png"), CGSizeMake(4.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow7.png"), CGSizeMake(1.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowRounded8.png"), CGSizeMake(4.0, 4.0)) + ])); + _CPMenuWindowBackgroundColors[aBackgroundStyle] = color; + } + objj_msgSend(self, "setBackgroundColor:", color); +} +}), new objj_method(sel_getUid("setMenu:"), function $_CPMenuWindow__setMenu_(self, _cmd, aMenu) +{ with(self) +{ + objj_msgSend(aMenu, "_setMenuWindow:", self); + objj_msgSend(_menuView, "setMenu:", aMenu); + var menuViewSize = objj_msgSend(_menuView, "frame").size; + objj_msgSend(self, "setFrameSize:", CGSizeMake(LEFT_MARGIN + menuViewSize.width + RIGHT_MARGIN, TOP_MARGIN + menuViewSize.height + BOTTOM_MARGIN)); + objj_msgSend(_menuView, "scrollPoint:", CGPointMake(0.0, 0.0)); + objj_msgSend(_menuClipView, "setFrame:", CGRectMake(LEFT_MARGIN, TOP_MARGIN, menuViewSize.width, menuViewSize.height)); +} +}), new objj_method(sel_getUid("setMinWidth:"), function $_CPMenuWindow__setMinWidth_(self, _cmd, aWidth) +{ with(self) +{ + var size = objj_msgSend(self, "frame").size; + objj_msgSend(self, "setFrameSize:", CGSizeMake(MAX(size.width, aWidth), size.height)); +} +}), new objj_method(sel_getUid("rectForItemAtIndex:"), function $_CPMenuWindow__rectForItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(_menuView, "convertRect:toView:", objj_msgSend(_menuView, "rectForItemAtIndex:", anIndex), nil); +} +}), new objj_method(sel_getUid("orderFront:"), function $_CPMenuWindow__orderFront_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "constrainToScreen"); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPWindow") }, "orderFront:", aSender); +} +}), new objj_method(sel_getUid("constrainToScreen"), function $_CPMenuWindow__constrainToScreen(self, _cmd) +{ with(self) +{ + _unconstrainedFrame = CGRectMakeCopy(objj_msgSend(self, "frame")); + var screenBounds = CGRectInset(objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "contentBounds"), 5.0, 5.0), + constrainedFrame = CGRectIntersection(_unconstrainedFrame, screenBounds), + menuViewOrigin = objj_msgSend(self, "convertBaseToBridge:", CGPointMake(LEFT_MARGIN, TOP_MARGIN)); + constrainedFrame.origin.x = CGRectGetMinX(_unconstrainedFrame); + constrainedFrame.size.width = CGRectGetWidth(_unconstrainedFrame); + if (CGRectGetWidth(constrainedFrame) > CGRectGetWidth(screenBounds)) + constrainedFrame.size.width = CGRectGetWidth(screenBounds); + if (CGRectGetMaxX(constrainedFrame) > CGRectGetMaxX(screenBounds)) + constrainedFrame.origin.x -= CGRectGetMaxX(constrainedFrame) - CGRectGetMaxX(screenBounds); + if (CGRectGetMinX(constrainedFrame) < CGRectGetMinX(screenBounds)) + constrainedFrame.origin.x = CGRectGetMinX(screenBounds); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPWindow") }, "setFrame:", constrainedFrame); + var topMargin = TOP_MARGIN, + bottomMargin = BOTTOM_MARGIN, + contentView = objj_msgSend(self, "contentView"), + bounds = objj_msgSend(contentView, "bounds"); + var moreAbove = menuViewOrigin.y < CGRectGetMinY(constrainedFrame) + TOP_MARGIN, + moreBelow = menuViewOrigin.y + CGRectGetHeight(objj_msgSend(_menuView, "frame")) > CGRectGetMaxY(constrainedFrame) - BOTTOM_MARGIN; + if (moreAbove) + { + topMargin += SCROLL_INDICATOR_HEIGHT; + var frame = objj_msgSend(_moreAboveView, "frame"); + objj_msgSend(_moreAboveView, "setFrameOrigin:", CGPointMake((CGRectGetWidth(bounds) - CGRectGetWidth(frame)) / 2.0, (TOP_MARGIN + SCROLL_INDICATOR_HEIGHT - CGRectGetHeight(frame)) / 2.0)); + } + objj_msgSend(_moreAboveView, "setHidden:", !moreAbove); + if (moreBelow) + { + bottomMargin += SCROLL_INDICATOR_HEIGHT; + objj_msgSend(_moreBelowView, "setFrameOrigin:", CGPointMake((CGRectGetWidth(bounds) - CGRectGetWidth(objj_msgSend(_moreBelowView, "frame"))) / 2.0, CGRectGetHeight(bounds) - SCROLL_INDICATOR_HEIGHT - BOTTOM_MARGIN)); + } + objj_msgSend(_moreBelowView, "setHidden:", !moreBelow); + var clipFrame = CGRectMake(LEFT_MARGIN, topMargin, CGRectGetWidth(constrainedFrame) - LEFT_MARGIN - RIGHT_MARGIN, CGRectGetHeight(constrainedFrame) - topMargin - bottomMargin) + objj_msgSend(_menuClipView, "setFrame:", clipFrame); + objj_msgSend(_menuView, "setFrameSize:", CGSizeMake(CGRectGetWidth(clipFrame), CGRectGetHeight(objj_msgSend(_menuView, "frame")))); + objj_msgSend(_menuView, "scrollPoint:", CGPointMake(0.0, objj_msgSend(self, "convertBaseToBridge:", clipFrame.origin).y - menuViewOrigin.y)); +} +}), new objj_method(sel_getUid("cancelTracking"), function $_CPMenuWindow__cancelTracking(self, _cmd) +{ with(self) +{ + _trackingCanceled = YES; +} +}), new objj_method(sel_getUid("beginTrackingWithEvent:sessionDelegate:didEndSelector:"), function $_CPMenuWindow__beginTrackingWithEvent_sessionDelegate_didEndSelector_(self, _cmd, anEvent, aSessionDelegate, aDidEndSelector) +{ with(self) +{ + _startTime = objj_msgSend(anEvent, "timestamp"); + _scrollingState = _CPMenuWindowScrollingStateNone; + _trackingCanceled = NO; + _sessionDelegate = aSessionDelegate; + _didEndSelector = aDidEndSelector; + objj_msgSend(self, "trackEvent:", anEvent); +} +}), new objj_method(sel_getUid("trackEvent:"), function $_CPMenuWindow__trackEvent_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"), + theWindow = objj_msgSend(anEvent, "window"), + screenLocation = theWindow ? objj_msgSend(theWindow, "convertBaseToBridge:", objj_msgSend(anEvent, "locationInWindow")) : objj_msgSend(anEvent, "locationInWindow"); + if (type == CPPeriodic) + { + var constrainedBounds = CGRectInset(objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "contentBounds"), 5.0, 5.0); + if (_scrollingState == _CPMenuWindowScrollingStateUp) + { + if (CGRectGetMinY(_unconstrainedFrame) < CGRectGetMinY(constrainedBounds)) + _unconstrainedFrame.origin.y += 10; + } + else if (_scrollingState == _CPMenuWindowScrollingStateDown) + if (CGRectGetMaxY(_unconstrainedFrame) > CGRectGetHeight(constrainedBounds)) + _unconstrainedFrame.origin.y -= 10; + objj_msgSend(self, "setFrame:", _unconstrainedFrame); + objj_msgSend(self, "constrainToScreen"); + screenLocation = _lastScreenLocation; + } + _lastScreenLocation = screenLocation; + var menu = objj_msgSend(_menuView, "menu"), + menuLocation = objj_msgSend(self, "convertBridgeToBase:", screenLocation), + activeItemIndex = objj_msgSend(_menuView, "itemIndexAtPoint:", objj_msgSend(_menuView, "convertPoint:fromView:", menuLocation, nil)), + mouseOverMenuView = objj_msgSend(objj_msgSend(menu, "itemAtIndex:", activeItemIndex), "view"); + if (mouseOverMenuView) + { + if (!_lastMouseOverMenuView) + objj_msgSend(menu, "_highlightItemAtIndex:", CPNotFound); + if (_lastMouseOverMenuView != mouseOverMenuView) + { + objj_msgSend(mouseOverMenuView, "mouseExited:", anEvent); + objj_msgSend(_lastMouseOverMenuView, "mouseEntered:", anEvent); + _lastMouseOverMenuView = mouseOverMenuView; + } + objj_msgSend(self, "sendEvent:", objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", type, menuLocation, objj_msgSend(anEvent, "modifierFlags"), objj_msgSend(anEvent, "timestamp"), objj_msgSend(self, "windowNumber"), nil, 0, objj_msgSend(anEvent, "clickCount"), objj_msgSend(anEvent, "pressure"))); + } + else + { + if (_lastMouseOverMenuView) + { + objj_msgSend(_lastMouseOverMenuView, "mouseExited:", anEvent); + _lastMouseOverMenuView = nil; + } + objj_msgSend(menu, "_highlightItemAtIndex:", objj_msgSend(_menuView, "itemIndexAtPoint:", objj_msgSend(_menuView, "convertPoint:fromView:", objj_msgSend(self, "convertBridgeToBase:", screenLocation), nil))); + if (type == CPMouseMoved || type == CPLeftMouseDragged || type == CPLeftMouseDown) + { + var frame = objj_msgSend(self, "frame"), + oldScrollingState = _scrollingState; + _scrollingState = _CPMenuWindowScrollingStateNone; + if (screenLocation.y < CGRectGetMinY(frame) + TOP_MARGIN + SCROLL_INDICATOR_HEIGHT) + _scrollingState = _CPMenuWindowScrollingStateUp; + else if (screenLocation.y > CGRectGetMaxY(frame) - BOTTOM_MARGIN - SCROLL_INDICATOR_HEIGHT) + _scrollingState = _CPMenuWindowScrollingStateDown; + if (_scrollingState != oldScrollingState) + if (_scrollingState == _CPMenuWindowScrollingStateNone) + objj_msgSend(CPEvent, "stopPeriodicEvents"); + else if (oldScrollingState == _CPMenuWindowScrollingStateNone) + objj_msgSend(CPEvent, "startPeriodicEventsAfterDelay:withPeriod:", 0.0, 0.04); + } + else if (type == CPLeftMouseUp && (objj_msgSend(anEvent, "timestamp") - _startTime > STICKY_TIME_INTERVAL)) + { + if (_scrollingState != _CPMenuWindowScrollingStateNone) + objj_msgSend(CPEvent, "stopPeriodicEvents"); + objj_msgSend(self, "cancelTracking"); + } + } + if (_trackingCanceled) + { + objj_msgSend(CPEvent, "stopPeriodicEvents"); + var highlightedItem = objj_msgSend(objj_msgSend(_menuView, "menu"), "highlightedItem"); + objj_msgSend(menu, "_highlightItemAtIndex:", CPNotFound); + objj_msgSend(_menuView, "setMenu:", nil); + objj_msgSend(self, "orderOut:", self); + if (_sessionDelegate && _didEndSelector) + objj_msgSend(_sessionDelegate, _didEndSelector, self, highlightedItem); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPMenuDidEndTrackingNotification, menu); + var delegate = objj_msgSend(menu, "delegate"); + if (objj_msgSend(delegate, "respondsToSelector:", sel_getUid("menuDidClose:"))) + objj_msgSend(delegate, "menuDidClose:", menu); + return; + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackEvent:"), CPPeriodicMask | CPMouseMovedMask | CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("menuWindowWithMenu:font:"), function $_CPMenuWindow__menuWindowWithMenu_font_(self, _cmd, aMenu, aFont) +{ with(self) +{ + var menuWindow = nil; + if (_CPMenuWindowPool.length) + menuWindow = _CPMenuWindowPool.pop(); + else + menuWindow = objj_msgSend(objj_msgSend(_CPMenuWindow, "alloc"), "init"); + objj_msgSend(menuWindow, "setFont:", aFont); + objj_msgSend(menuWindow, "setMenu:", aMenu); + return menuWindow; +} +}), new objj_method(sel_getUid("poolMenuWindow:"), function $_CPMenuWindow__poolMenuWindow_(self, _cmd, aMenuWindow) +{ with(self) +{ + if (!aMenuWindow || _CPMenuWindowPool.length >= _CPMenuWindowPoolCapacity) + return; + _CPMenuWindowPool.push(aMenuWindow); +} +}), new objj_method(sel_getUid("initialize"), function $_CPMenuWindow__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPMenuWindow, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPMenuWindowMoreAboveImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowMoreAbove.png"), CGSizeMake(38.0, 18.0)); + _CPMenuWindowMoreBelowImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowMoreBelow.png"), CGSizeMake(38.0, 18.0)); +} +})]); +} +{var the_class = objj_allocateClassPair(CPView, "_CPMenuView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_menuItemViews"), new objj_ivar("_visibleMenuItemInfos"), new objj_ivar("_font")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setFont:"), function $_CPMenuView__setFont_(self, _cmd, aFont) +{ with(self) +{ + _font = aFont; +} +}), new objj_method(sel_getUid("rectForItemAtIndex:"), function $_CPMenuView__rectForItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(_menuItemViews[anIndex == CPNotFound ? 0 : anIndex], "frame"); +} +}), new objj_method(sel_getUid("itemIndexAtPoint:"), function $_CPMenuView__itemIndexAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var x = aPoint.x, + bounds = objj_msgSend(self, "bounds"); + if (x < CGRectGetMinX(bounds) || x > CGRectGetMaxX(bounds)) + return CPNotFound; + var y = aPoint.y, + low = 0, + high = _visibleMenuItemInfos.length - 1; + while (low <= high) + { + var middle = FLOOR(low + (high - low) / 2), + info = _visibleMenuItemInfos[middle] + frame = objj_msgSend(info.view, "frame"); + if (y < CGRectGetMinY(frame)) + high = middle - 1; + else if (y > CGRectGetMaxY(frame)) + low = middle + 1; + else + return info.index; + } + return CPNotFound; +} +}), new objj_method(sel_getUid("setMenu:"), function $_CPMenuView__setMenu_(self, _cmd, aMenu) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setMenu:", aMenu); + objj_msgSend(_menuItemViews, "makeObjectsPerformSelector:", sel_getUid("removeFromSuperview")); + _menuItemViews = []; + _visibleMenuItemInfos = []; + var menu = objj_msgSend(self, "menu"); + if (!menu) + return; + var items = objj_msgSend(menu, "itemArray"), + index = 0, + count = objj_msgSend(items, "count"), + maxWidth = 0, + y = 0, + showsStateColumn = objj_msgSend(menu, "showsStateColumn"); + for (; index < count; ++index) + { + var item = items[index], + view = objj_msgSend(item, "_menuItemView"); + _menuItemViews.push(view); + if (objj_msgSend(item, "isHidden")) + continue; + _visibleMenuItemInfos.push({ view:view, index:index }); + objj_msgSend(view, "setFont:", _font); + objj_msgSend(view, "setShowsStateColumn:", showsStateColumn); + objj_msgSend(view, "synchronizeWithMenuItem"); + objj_msgSend(view, "setFrameOrigin:", CGPointMake(0.0, y)); + objj_msgSend(self, "addSubview:", view); + var size = objj_msgSend(view, "minSize"), + width = size.width; + if (maxWidth < width) + maxWidth = width; + y += size.height; + } + for (index = 0; index < count; ++index) + { + var view = _menuItemViews[index]; + objj_msgSend(view, "setFrameSize:", CGSizeMake(maxWidth, CGRectGetHeight(objj_msgSend(view, "frame")))); + } + objj_msgSend(self, "setAutoresizesSubviews:", NO); + objj_msgSend(self, "setFrameSize:", CGSizeMake(maxWidth, y)); + objj_msgSend(self, "setAutoresizesSubviews:", YES); +} +})]); +} +var MENUBAR_HEIGHT = 29.0, + MENUBAR_MARGIN = 10.0, + MENUBAR_LEFT_MARGIN = 10.0, + MENUBAR_RIGHT_MARGIN = 10.0; +var _CPMenuBarWindowBackgroundColor = nil, + _CPMenuBarWindowFont = nil; +{var the_class = objj_allocateClassPair(CPPanel, "_CPMenuBarWindow"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_menu"), new objj_ivar("_highlightView"), new objj_ivar("_menuItemViews"), new objj_ivar("_trackingMenuItem"), new objj_ivar("_iconImageView"), new objj_ivar("_titleField"), new objj_ivar("_textColor"), new objj_ivar("_titleColor"), new objj_ivar("_textShadowColor"), new objj_ivar("_titleShadowColor"), new objj_ivar("_highlightColor"), new objj_ivar("_highlightTextColor"), new objj_ivar("_highlightTextShadowColor")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $_CPMenuBarWindow__init(self, _cmd) +{ with(self) +{ + var bridgeWidth = CGRectGetWidth(objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "contentBounds")); + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPPanel") }, "initWithContentRect:styleMask:", CGRectMake(0.0, 0.0, bridgeWidth, MENUBAR_HEIGHT), CPBorderlessWindowMask); + if (self) + { + objj_msgSend(self, "setLevel:", -1); + objj_msgSend(self, "setAutoresizingMask:", CPWindowWidthSizable); + var contentView = objj_msgSend(self, "contentView"); + objj_msgSend(contentView, "setAutoresizesSubviews:", NO); + objj_msgSend(self, "setBecomesKeyOnlyIfNeeded:", YES); + _iconImageView = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, 16.0, 16.0)); + objj_msgSend(contentView, "addSubview:", _iconImageView); + _titleField = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_titleField, "setFont:", objj_msgSend(CPFont, "boldSystemFontOfSize:", 12.0)); + objj_msgSend(_titleField, "setAlignment:", CPCenterTextAlignment); + objj_msgSend(_titleField, "setTextShadowOffset:", CGSizeMake(0, 1)); + objj_msgSend(contentView, "addSubview:", _titleField); + } + return self; +} +}), new objj_method(sel_getUid("setTitle:"), function $_CPMenuBarWindow__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + var bundleName = objj_msgSend(objj_msgSend(CPBundle, "mainBundle"), "objectForInfoDictionaryKey:", "CPBundleName"); + if (!objj_msgSend(bundleName, "length")) + document.title = aTitle; + else if (objj_msgSend(aTitle, "length")) + document.title = aTitle + " - " + bundleName; + else + document.title = bundleName; + objj_msgSend(_titleField, "setStringValue:", aTitle); + objj_msgSend(_titleField, "sizeToFit"); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("setIconImage:"), function $_CPMenuBarWindow__setIconImage_(self, _cmd, anImage) +{ with(self) +{ + objj_msgSend(_iconImageView, "setImage:", anImage); + objj_msgSend(_iconImageView, "setHidden:", anImage == nil); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("setIconImageAlphaValue:"), function $_CPMenuBarWindow__setIconImageAlphaValue_(self, _cmd, anAlphaValue) +{ with(self) +{ + objj_msgSend(_iconImageView, "setAlphaValue:", anAlphaValue); +} +}), new objj_method(sel_getUid("setColor:"), function $_CPMenuBarWindow__setColor_(self, _cmd, aColor) +{ with(self) +{ + if (!aColor) + { + if (!_CPMenuBarWindowBackgroundColor) + _CPMenuBarWindowBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(_CPMenuBarWindow, "class")), "pathForResource:", "_CPMenuBarWindow/_CPMenuBarWindowBackground.png"), CGSizeMake(1.0, 18.0))); + objj_msgSend(objj_msgSend(self, "contentView"), "setBackgroundColor:", _CPMenuBarWindowBackgroundColor); + } + else + objj_msgSend(objj_msgSend(self, "contentView"), "setBackgroundColor:", aColor); +} +}), new objj_method(sel_getUid("setTextColor:"), function $_CPMenuBarWindow__setTextColor_(self, _cmd, aColor) +{ with(self) +{ + if (_textColor == aColor) + return; + _textColor = aColor; + objj_msgSend(_menuItemViews, "makeObjectsPerformSelector:withObject:", sel_getUid("setTextColor:"), _textColor); +} +}), new objj_method(sel_getUid("setTitleColor:"), function $_CPMenuBarWindow__setTitleColor_(self, _cmd, aColor) +{ with(self) +{ + if (_titleColor == aColor) + return; + _titleColor = aColor; + objj_msgSend(_titleField, "setTextColor:", aColor ? aColor : objj_msgSend(CPColor, "blackColor")); +} +}), new objj_method(sel_getUid("setTextShadowColor:"), function $_CPMenuBarWindow__setTextShadowColor_(self, _cmd, aColor) +{ with(self) +{ + if (_textShadowColor == aColor) + return; + _textShadowColor = aColor; + objj_msgSend(_menuItemViews, "makeObjectsPerformSelector:withObject:", sel_getUid("setTextShadowColor:"), _textShadowColor); +} +}), new objj_method(sel_getUid("setTitleShadowColor:"), function $_CPMenuBarWindow__setTitleShadowColor_(self, _cmd, aColor) +{ with(self) +{ + if (_titleShadowColor == aColor) + return; + _titleShadowColor = aColor; + objj_msgSend(_titleField, "setTextShadowColor:", aColor ? aColor : objj_msgSend(CPColor, "whiteColor")); +} +}), new objj_method(sel_getUid("setHighlightColor:"), function $_CPMenuBarWindow__setHighlightColor_(self, _cmd, aColor) +{ with(self) +{ + if (_highlightColor == aColor) + return; + _highlightColor = aColor; +} +}), new objj_method(sel_getUid("setHighlightTextColor:"), function $_CPMenuBarWindow__setHighlightTextColor_(self, _cmd, aColor) +{ with(self) +{ + if (_highlightTextColor == aColor) + return; + _highlightTextColor = aColor; + objj_msgSend(_menuItemViews, "makeObjectsPerformSelector:withObject:", sel_getUid("setActivateColor:"), _highlightTextColor); +} +}), new objj_method(sel_getUid("setHighlightTextShadowColor:"), function $_CPMenuBarWindow__setHighlightTextShadowColor_(self, _cmd, aColor) +{ with(self) +{ + if (_highlightTextShadowColor == aColor) + return; + _highlightTextShadowColor = aColor; + objj_msgSend(_menuItemViews, "makeObjectsPerformSelector:withObject:", sel_getUid("setActivateShadowColor:"), _highlightTextShadowColor); +} +}), new objj_method(sel_getUid("setMenu:"), function $_CPMenuBarWindow__setMenu_(self, _cmd, aMenu) +{ with(self) +{ + if (_menu == aMenu) + return; + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_menu) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPMenuDidAddItemNotification, _menu); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPMenuDidChangeItemNotification, _menu); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPMenuDidRemoveItemNotification, _menu); + var items = objj_msgSend(_menu, "itemArray"), + count = items.length; + while (count--) + objj_msgSend(objj_msgSend(items[count], "_menuItemView"), "removeFromSuperview"); + } + _menu = aMenu; + if (_menu) + { + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("menuDidAddItem:"), CPMenuDidAddItemNotification, _menu); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("menuDidChangeItem:"), CPMenuDidChangeItemNotification, _menu); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("menuDidRemoveItem:"), CPMenuDidRemoveItemNotification, _menu); + } + _menuItemViews = []; + var contentView = objj_msgSend(self, "contentView"), + items = objj_msgSend(_menu, "itemArray"), + count = items.length; + for (index = 0; index < count; ++index) + { + var item = items[index], + menuItemView = objj_msgSend(item, "_menuItemView"); + _menuItemViews.push(menuItemView); + objj_msgSend(menuItemView, "setShowsStateColumn:", NO); + objj_msgSend(menuItemView, "setBelongsToMenuBar:", YES); + objj_msgSend(menuItemView, "setFont:", _CPMenuBarWindowFont); + objj_msgSend(menuItemView, "setTextColor:", _textColor); + objj_msgSend(menuItemView, "setHidden:", objj_msgSend(item, "isHidden")); + objj_msgSend(menuItemView, "synchronizeWithMenuItem"); + objj_msgSend(contentView, "addSubview:", menuItemView); + } + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("menuDidChangeItem:"), function $_CPMenuBarWindow__menuDidChangeItem_(self, _cmd, aNotification) +{ with(self) +{ + var menuItem = objj_msgSend(_menu, "itemAtIndex:", objj_msgSend(objj_msgSend(aNotification, "userInfo"), "objectForKey:", "CPMenuItemIndex")), + menuItemView = objj_msgSend(menuItem, "_menuItemView"); + objj_msgSend(menuItemView, "setHidden:", objj_msgSend(menuItem, "isHidden")); + objj_msgSend(menuItemView, "synchronizeWithMenuItem"); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("menuDidAddItem:"), function $_CPMenuBarWindow__menuDidAddItem_(self, _cmd, aNotification) +{ with(self) +{ + var index = objj_msgSend(objj_msgSend(aNotification, "userInfo"), "objectForKey:", "CPMenuItemIndex"), + menuItem = objj_msgSend(_menu, "itemAtIndex:", index), + menuItemView = objj_msgSend(menuItem, "_menuItemView"); + objj_msgSend(_menuItemViews, "insertObject:atIndex:", menuItemView, index); + objj_msgSend(menuItemView, "setShowsStateColumn:", NO); + objj_msgSend(menuItemView, "setBelongsToMenuBar:", YES); + objj_msgSend(menuItemView, "setFont:", _CPMenuBarWindowFont); + objj_msgSend(menuItemView, "setTextColor:", _textColor); + objj_msgSend(menuItemView, "setHidden:", objj_msgSend(menuItem, "isHidden")); + objj_msgSend(menuItemView, "synchronizeWithMenuItem"); + objj_msgSend(objj_msgSend(self, "contentView"), "addSubview:", menuItemView); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("menuDidRemoveItem:"), function $_CPMenuBarWindow__menuDidRemoveItem_(self, _cmd, aNotification) +{ with(self) +{ + var index = objj_msgSend(objj_msgSend(aNotification, "userInfo"), "objectForKey:", "CPMenuItemIndex"), + menuItemView = objj_msgSend(_menuItemViews, "objectAtIndex:", index); + objj_msgSend(_menuItemViews, "removeObjectAtIndex:", index); + objj_msgSend(menuItemView, "removeFromSuperview"); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("frameForMenuItem:"), function $_CPMenuBarWindow__frameForMenuItem_(self, _cmd, aMenuItem) +{ with(self) +{ + var frame = objj_msgSend(objj_msgSend(aMenuItem, "_menuItemView"), "frame"); + frame.origin.x -= 5.0; + frame.origin.y = 0; + frame.size.width += 10.0; + frame.size.height = MENUBAR_HEIGHT; + return frame; +} +}), new objj_method(sel_getUid("menuItemAtPoint:"), function $_CPMenuBarWindow__menuItemAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var items = objj_msgSend(_menu, "itemArray"), + count = items.length; + while (count--) + { + var item = items[count]; + if (objj_msgSend(item, "isHidden") || objj_msgSend(item, "isSeparatorItem")) + continue; + if (CGRectContainsPoint(objj_msgSend(self, "frameForMenuItem:", item), aPoint)) + return item; + } + return nil; +} +}), new objj_method(sel_getUid("mouseDown:"), function $_CPMenuBarWindow__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + _trackingMenuItem = objj_msgSend(self, "menuItemAtPoint:", objj_msgSend(anEvent, "locationInWindow")); + if (!objj_msgSend(_trackingMenuItem, "isEnabled")) + return; + if (objj_msgSend(objj_msgSend(_trackingMenuItem, "_menuItemView"), "eventOnSubmenu:", anEvent)) + return objj_msgSend(self, "showMenu:", anEvent); + if (objj_msgSend(_trackingMenuItem, "isEnabled")) + objj_msgSend(self, "trackEvent:", anEvent); +} +}), new objj_method(sel_getUid("trackEvent:"), function $_CPMenuBarWindow__trackEvent_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"); + if (type === CPPeriodic) + return objj_msgSend(self, "showMenu:", anEvent); + var frame = objj_msgSend(self, "frameForMenuItem:", _trackingMenuItem), + menuItemView = objj_msgSend(_trackingMenuItem, "_menuItemView"), + onMenuItemView = CGRectContainsPoint(frame, objj_msgSend(anEvent, "locationInWindow")); + if (type == CPLeftMouseDown) + { + if (objj_msgSend(_trackingMenuItem, "submenu") != nil) + { + var action = objj_msgSend(_trackingMenuItem, "action"); + if (!action || action === sel_getUid("submenuAction:")) + return objj_msgSend(self, "showMenu:", anEvent); + objj_msgSend(CPEvent, "startPeriodicEventsAfterDelay:withPeriod:", 0.0, 0.5); + } + objj_msgSend(menuItemView, "highlight:", onMenuItemView); + } + else if (type == CPLeftMouseDragged) + { + if (!onMenuItemView && objj_msgSend(_trackingMenuItem, "submenu")) + return objj_msgSend(self, "showMenu:", anEvent); + objj_msgSend(menuItemView, "highlight:", onMenuItemView); + } + else + { + objj_msgSend(CPEvent, "stopPeriodicEvents"); + objj_msgSend(menuItemView, "highlight:", NO); + if (onMenuItemView) + objj_msgSend(CPApp, "sendAction:to:from:", objj_msgSend(_trackingMenuItem, "action"), objj_msgSend(_trackingMenuItem, "target"), _trackingMenuItem); + return; + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackEvent:"), CPPeriodicMask | CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("showMenu:"), function $_CPMenuBarWindow__showMenu_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(CPEvent, "stopPeriodicEvents"); + var frame = objj_msgSend(self, "frameForMenuItem:", _trackingMenuItem), + menuItemView = objj_msgSend(_trackingMenuItem, "_menuItemView"); + if (!_highlightView) + { + _highlightView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", frame); + objj_msgSend(_highlightView, "setBackgroundColor:", _highlightColor ? _highlightColor : objj_msgSend(CPColor, "colorWithRed:green:blue:alpha:", 95.0/255.0, 131.0/255.0, 185.0/255.0, 1.0)); + } + else + objj_msgSend(_highlightView, "setFrame:", frame); + objj_msgSend(objj_msgSend(self, "contentView"), "addSubview:positioned:relativeTo:", _highlightView, CPWindowBelow, menuItemView); + objj_msgSend(menuItemView, "activate:", YES); + var submenu = objj_msgSend(_trackingMenuItem, "submenu"); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", self, sel_getUid("menuDidEndTracking:"), CPMenuDidEndTrackingNotification, submenu); + objj_msgSend(CPMenu, "_popUpContextMenu:withEvent:forView:withFont:forMenuBar:", submenu, objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", CPLeftMouseDown, CGPointMake(CGRectGetMinX(frame), CGRectGetMaxY(frame)), objj_msgSend(anEvent, "modifierFlags"), objj_msgSend(anEvent, "timestamp"), objj_msgSend(self, "windowNumber"), nil, 0, objj_msgSend(anEvent, "clickCount"), objj_msgSend(anEvent, "pressure")), objj_msgSend(self, "contentView"), nil, YES); +} +}), new objj_method(sel_getUid("menuDidEndTracking:"), function $_CPMenuBarWindow__menuDidEndTracking_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(_highlightView, "removeFromSuperview"); + objj_msgSend(objj_msgSend(_trackingMenuItem, "_menuItemView"), "activate:", NO); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "removeObserver:name:object:", self, CPMenuDidEndTrackingNotification, objj_msgSend(aNotification, "object")); +} +}), new objj_method(sel_getUid("tile"), function $_CPMenuBarWindow__tile(self, _cmd) +{ with(self) +{ + var items = objj_msgSend(_menu, "itemArray"), + index = 0, + count = items.length, + x = MENUBAR_LEFT_MARGIN, + y = 0.0, + isLeftAligned = YES; + for (; index < count; ++index) + { + var item = items[index]; + if (objj_msgSend(item, "isSeparatorItem")) + { + x = CGRectGetWidth(objj_msgSend(self, "frame")) - MENUBAR_RIGHT_MARGIN; + isLeftAligned = NO; + continue; + } + if (objj_msgSend(item, "isHidden")) + continue; + var menuItemView = objj_msgSend(item, "_menuItemView"), + frame = objj_msgSend(menuItemView, "frame"); + if (isLeftAligned) + { + objj_msgSend(menuItemView, "setFrameOrigin:", CGPointMake(x, (MENUBAR_HEIGHT - 1.0 - CGRectGetHeight(frame)) / 2.0)); + x += CGRectGetWidth(objj_msgSend(menuItemView, "frame")) + MENUBAR_MARGIN; + } + else + { + objj_msgSend(menuItemView, "setFrameOrigin:", CGPointMake(x - CGRectGetWidth(frame), (MENUBAR_HEIGHT - 1.0 - CGRectGetHeight(frame)) / 2.0)); + x = CGRectGetMinX(objj_msgSend(menuItemView, "frame")) - MENUBAR_MARGIN; + } + } + var bounds = objj_msgSend(objj_msgSend(self, "contentView"), "bounds"), + titleFrame = objj_msgSend(_titleField, "frame"); + if (objj_msgSend(_iconImageView, "isHidden")) + objj_msgSend(_titleField, "setFrameOrigin:", CGPointMake((CGRectGetWidth(bounds) - CGRectGetWidth(titleFrame)) / 2.0, (CGRectGetHeight(bounds) - CGRectGetHeight(titleFrame)) / 2.0)); + else + { + var iconFrame = objj_msgSend(_iconImageView, "frame"), + iconWidth = CGRectGetWidth(iconFrame), + totalWidth = iconWidth + CGRectGetWidth(titleFrame); + objj_msgSend(_iconImageView, "setFrameOrigin:", CGPointMake((CGRectGetWidth(bounds) - totalWidth) / 2.0, (CGRectGetHeight(bounds) - CGRectGetHeight(iconFrame)) / 2.0)); + objj_msgSend(_titleField, "setFrameOrigin:", CGPointMake((CGRectGetWidth(bounds) - totalWidth) / 2.0 + iconWidth, (CGRectGetHeight(bounds) - CGRectGetHeight(titleFrame)) / 2.0)); + } +} +}), new objj_method(sel_getUid("setFrameSize:"), function $_CPMenuBarWindow__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPPanel") }, "setFrameSize:", aSize); + objj_msgSend(self, "tile"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPMenuBarWindow__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPMenuBarWindow, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPMenuBarWindowFont = objj_msgSend(CPFont, "systemFontOfSize:", 11.0); +} +})]); +} + +p;12;CPMenuItem.jI;20;Foundation/CPCoder.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jI;16;AppKit/CPImage.jI;15;AppKit/CPMenu.jI;15;AppKit/CPView.jc;32013; +{var the_class = objj_allocateClassPair(CPObject, "CPMenuItem"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_isSeparator"), new objj_ivar("_title"), new objj_ivar("_font"), new objj_ivar("_target"), new objj_ivar("_action"), new objj_ivar("_isEnabled"), new objj_ivar("_isHidden"), new objj_ivar("_tag"), new objj_ivar("_state"), new objj_ivar("_image"), new objj_ivar("_alternateImage"), new objj_ivar("_onStateImage"), new objj_ivar("_offStateImage"), new objj_ivar("_mixedStateImage"), new objj_ivar("_submenu"), new objj_ivar("_menu"), new objj_ivar("_keyEquivalent"), new objj_ivar("_keyEquivalentModifierMask"), new objj_ivar("_mnemonicLocation"), new objj_ivar("_isAlternate"), new objj_ivar("_indentationLevel"), new objj_ivar("_toolTip"), new objj_ivar("_representedObject"), new objj_ivar("_view"), new objj_ivar("_menuItemView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithTitle:action:keyEquivalent:"), function $CPMenuItem__initWithTitle_action_keyEquivalent_(self, _cmd, aTitle, anAction, aKeyEquivalent) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _isSeparator = NO; + _title = aTitle; + _action = anAction; + _isEnabled = YES; + _tag = 0; + _state = CPOffState; + _keyEquivalent = aKeyEquivalent || ""; + _keyEquivalentModifierMask = CPPlatformActionKeyMask; + _mnemonicLocation = CPNotFound; + } + return self; +} +}), new objj_method(sel_getUid("setEnabled:"), function $CPMenuItem__setEnabled_(self, _cmd, isEnabled) +{ with(self) +{ + if (objj_msgSend(_menu, "autoenablesItems")) + return; + _isEnabled = isEnabled; + objj_msgSend(_menuItemView, "setDirty"); + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("isEnabled"), function $CPMenuItem__isEnabled(self, _cmd) +{ with(self) +{ + return _isEnabled; +} +}), new objj_method(sel_getUid("setHidden:"), function $CPMenuItem__setHidden_(self, _cmd, isHidden) +{ with(self) +{ + if (_isHidden == isHidden) + return; + _isHidden = isHidden; + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("isHidden"), function $CPMenuItem__isHidden(self, _cmd) +{ with(self) +{ + return _isHidden; +} +}), new objj_method(sel_getUid("isHiddenOrHasHiddenAncestor"), function $CPMenuItem__isHiddenOrHasHiddenAncestor(self, _cmd) +{ with(self) +{ + if (_isHidden) + return YES; + var supermenu = objj_msgSend(_menu, "supermenu"); + if (objj_msgSend(objj_msgSend(supermenu, "itemAtIndex:", objj_msgSend(supermenu, "indexOfItemWithSubmenu:", _menu)), "isHiddenOrHasHiddenAncestor")) + return YES; + return NO; +} +}), new objj_method(sel_getUid("setTarget:"), function $CPMenuItem__setTarget_(self, _cmd, aTarget) +{ with(self) +{ + _target = aTarget; +} +}), new objj_method(sel_getUid("target"), function $CPMenuItem__target(self, _cmd) +{ with(self) +{ + return _target; +} +}), new objj_method(sel_getUid("setAction:"), function $CPMenuItem__setAction_(self, _cmd, anAction) +{ with(self) +{ + _action = anAction; +} +}), new objj_method(sel_getUid("action"), function $CPMenuItem__action(self, _cmd) +{ with(self) +{ + return _action; +} +}), new objj_method(sel_getUid("setTitle:"), function $CPMenuItem__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + _mnemonicLocation = CPNotFound; + if (_title == aTitle) + return; + _title = aTitle; + objj_msgSend(_menuItemView, "setDirty"); + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("title"), function $CPMenuItem__title(self, _cmd) +{ with(self) +{ + return _title; +} +}), new objj_method(sel_getUid("setTextColor:"), function $CPMenuItem__setTextColor_(self, _cmd, aColor) +{ with(self) +{ +} +}), new objj_method(sel_getUid("setFont:"), function $CPMenuItem__setFont_(self, _cmd, aFont) +{ with(self) +{ + if (_font == aFont) + return; + _font = aFont; + objj_msgSend(_menu, "itemChanged:", self); + objj_msgSend(_menuItemView, "setDirty"); +} +}), new objj_method(sel_getUid("font"), function $CPMenuItem__font(self, _cmd) +{ with(self) +{ + return _font; +} +}), new objj_method(sel_getUid("setTag:"), function $CPMenuItem__setTag_(self, _cmd, aTag) +{ with(self) +{ + _tag = aTag; +} +}), new objj_method(sel_getUid("tag"), function $CPMenuItem__tag(self, _cmd) +{ with(self) +{ + return _tag; +} +}), new objj_method(sel_getUid("setState:"), function $CPMenuItem__setState_(self, _cmd, aState) +{ with(self) +{ + if (_state == aState) + return; + _state = aState; + objj_msgSend(_menu, "itemChanged:", self); + objj_msgSend(_menuItemView, "setDirty"); +} +}), new objj_method(sel_getUid("state"), function $CPMenuItem__state(self, _cmd) +{ with(self) +{ + return _state; +} +}), new objj_method(sel_getUid("setImage:"), function $CPMenuItem__setImage_(self, _cmd, anImage) +{ with(self) +{ + if (_image == anImage) + return; + _image = anImage; + objj_msgSend(_menuItemView, "setDirty"); + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("image"), function $CPMenuItem__image(self, _cmd) +{ with(self) +{ + return _image; +} +}), new objj_method(sel_getUid("setAlternateImage:"), function $CPMenuItem__setAlternateImage_(self, _cmd, anImage) +{ with(self) +{ + _alternateImage = anImage; +} +}), new objj_method(sel_getUid("alternateImage"), function $CPMenuItem__alternateImage(self, _cmd) +{ with(self) +{ + return _alternateImage; +} +}), new objj_method(sel_getUid("setOnStateImage:"), function $CPMenuItem__setOnStateImage_(self, _cmd, anImage) +{ with(self) +{ + if (_onStateImage == anImage) + return; + _onStateImage = anImage; + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("onStateImage"), function $CPMenuItem__onStateImage(self, _cmd) +{ with(self) +{ + return _onStateImage; +} +}), new objj_method(sel_getUid("setOffStateImage:"), function $CPMenuItem__setOffStateImage_(self, _cmd, anImage) +{ with(self) +{ + if (_offStateImage == anImage) + return; + _offStateImage = anImage; + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("offStateImage"), function $CPMenuItem__offStateImage(self, _cmd) +{ with(self) +{ + return _offStateImage; +} +}), new objj_method(sel_getUid("setMixedStateImage:"), function $CPMenuItem__setMixedStateImage_(self, _cmd, anImage) +{ with(self) +{ + if (_mixedStateImage == anImage) + return; + _mixedStateImage = anImage; + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("mixedStateImage"), function $CPMenuItem__mixedStateImage(self, _cmd) +{ with(self) +{ + return _mixedStateImage; +} +}), new objj_method(sel_getUid("setSubmenu:"), function $CPMenuItem__setSubmenu_(self, _cmd, aMenu) +{ with(self) +{ + var supermenu = objj_msgSend(_submenu, "supermenu"); + if (supermenu == self) + return; + if (supermenu) + return alert("bad"); + objj_msgSend(_submenu, "setSupermenu:", _menu); + _submenu = aMenu; + objj_msgSend(_menuItemView, "setDirty"); + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("submenu"), function $CPMenuItem__submenu(self, _cmd) +{ with(self) +{ + return _submenu; +} +}), new objj_method(sel_getUid("hasSubmenu"), function $CPMenuItem__hasSubmenu(self, _cmd) +{ with(self) +{ + return _submenu ? YES : NO; +} +}), new objj_method(sel_getUid("isSeparatorItem"), function $CPMenuItem__isSeparatorItem(self, _cmd) +{ with(self) +{ + return _isSeparator; +} +}), new objj_method(sel_getUid("setMenu:"), function $CPMenuItem__setMenu_(self, _cmd, aMenu) +{ with(self) +{ + _menu = aMenu; +} +}), new objj_method(sel_getUid("menu"), function $CPMenuItem__menu(self, _cmd) +{ with(self) +{ + return _menu; +} +}), new objj_method(sel_getUid("setKeyEquivalent:"), function $CPMenuItem__setKeyEquivalent_(self, _cmd, aString) +{ with(self) +{ + _keyEquivalent = aString || ""; +} +}), new objj_method(sel_getUid("keyEquivalent"), function $CPMenuItem__keyEquivalent(self, _cmd) +{ with(self) +{ + return _keyEquivalent; +} +}), new objj_method(sel_getUid("setKeyEquivalentModifierMask:"), function $CPMenuItem__setKeyEquivalentModifierMask_(self, _cmd, aMask) +{ with(self) +{ + _keyEquivalentModifierMask = aMask; +} +}), new objj_method(sel_getUid("keyEquivalentModifierMask"), function $CPMenuItem__keyEquivalentModifierMask(self, _cmd) +{ with(self) +{ + return _keyEquivalentModifierMask; +} +}), new objj_method(sel_getUid("setMnemonicLocation:"), function $CPMenuItem__setMnemonicLocation_(self, _cmd, aLocation) +{ with(self) +{ + _mnemonicLocation = aLocation; +} +}), new objj_method(sel_getUid("mnemonicLocation"), function $CPMenuItem__mnemonicLocation(self, _cmd) +{ with(self) +{ + return _mnemonicLocation; +} +}), new objj_method(sel_getUid("setTitleWithMnemonicLocation:"), function $CPMenuItem__setTitleWithMnemonicLocation_(self, _cmd, aTitle) +{ with(self) +{ + var location = objj_msgSend(aTitle, "rangeOfString:", "&").location; + if (location == CPNotFound) + objj_msgSend(self, "setTitle:", aTitle); + else + { + objj_msgSend(self, "setTitle:", objj_msgSend(aTitle, "substringToIndex:", location) + objj_msgSend(aTitle, "substringFromIndex:", location + 1)); + objj_msgSend(self, "setMnemonicLocation:", location); + } +} +}), new objj_method(sel_getUid("mnemonic"), function $CPMenuItem__mnemonic(self, _cmd) +{ with(self) +{ + return _mnemonicLocation == CPNotFound ? "" : objj_msgSend(_title, "characterAtIndex:", _mnemonicLocation); +} +}), new objj_method(sel_getUid("setAlternate:"), function $CPMenuItem__setAlternate_(self, _cmd, isAlternate) +{ with(self) +{ + _isAlternate = isAlternate; +} +}), new objj_method(sel_getUid("isAlternate"), function $CPMenuItem__isAlternate(self, _cmd) +{ with(self) +{ + return _isAlternate; +} +}), new objj_method(sel_getUid("setIndentationLevel:"), function $CPMenuItem__setIndentationLevel_(self, _cmd, aLevel) +{ with(self) +{ + if (aLevel < 0) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "setIndentationLevel: argument must be greater than 0."); + _indentationLevel = MIN(15, aLevel); +} +}), new objj_method(sel_getUid("indentationLevel"), function $CPMenuItem__indentationLevel(self, _cmd) +{ with(self) +{ + return _indentationLevel; +} +}), new objj_method(sel_getUid("setToolTip:"), function $CPMenuItem__setToolTip_(self, _cmd, aToolTip) +{ with(self) +{ + _toolTip = aToolTip; +} +}), new objj_method(sel_getUid("toolTip"), function $CPMenuItem__toolTip(self, _cmd) +{ with(self) +{ + return _toolTip; +} +}), new objj_method(sel_getUid("setRepresentedObject:"), function $CPMenuItem__setRepresentedObject_(self, _cmd, anObject) +{ with(self) +{ + _representedObject = anObject; +} +}), new objj_method(sel_getUid("representedObject"), function $CPMenuItem__representedObject(self, _cmd) +{ with(self) +{ + return _representedObject; +} +}), new objj_method(sel_getUid("setView:"), function $CPMenuItem__setView_(self, _cmd, aView) +{ with(self) +{ + if (_view === aView) + return; + _view = aView; + objj_msgSend(_menuItemView, "setDirty"); + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("view"), function $CPMenuItem__view(self, _cmd) +{ with(self) +{ + return _view; +} +}), new objj_method(sel_getUid("isHighlighted"), function $CPMenuItem__isHighlighted(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "menu"), "highlightedItem") == self; +} +}), new objj_method(sel_getUid("_menuItemView"), function $CPMenuItem___menuItemView(self, _cmd) +{ with(self) +{ + if (!_menuItemView) + _menuItemView = objj_msgSend(objj_msgSend(_CPMenuItemView, "alloc"), "initWithFrame:forMenuItem:", CGRectMakeZero(), self); + return _menuItemView; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("separatorItem"), function $CPMenuItem__separatorItem(self, _cmd) +{ with(self) +{ + var separatorItem = objj_msgSend(objj_msgSend(self, "alloc"), "initWithTitle:action:keyEquivalent:", "", nil, nil); + separatorItem._isSeparator = YES; + return separatorItem; +} +})]); +} +var CPMenuItemIsSeparatorKey = "CPMenuItemIsSeparatorKey", + CPMenuItemTitleKey = "CPMenuItemTitleKey", + CPMenuItemTargetKey = "CPMenuItemTargetKey", + CPMenuItemActionKey = "CPMenuItemActionKey", + CPMenuItemIsEnabledKey = "CPMenuItemIsEnabledKey", + CPMenuItemIsHiddenKey = "CPMenuItemIsHiddenKey", + CPMenuItemTagKey = "CPMenuItemTagKey", + CPMenuItemStateKey = "CPMenuItemStateKey", + CPMenuItemImageKey = "CPMenuItemImageKey", + CPMenuItemAlternateImageKey = "CPMenuItemAlternateImageKey", + CPMenuItemSubmenuKey = "CPMenuItemSubmenuKey", + CPMenuItemMenuKey = "CPMenuItemMenuKey", + CPMenuItemRepresentedObjectKey = "CPMenuItemRepresentedObjectKey", + CPMenuItemViewKey = "CPMenuItemViewKey"; +{ +var the_class = objj_getClass("CPMenuItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPMenuItem\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPMenuItem__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _isSeparator = objj_msgSend(aCoder, "containsValueForKey:", CPMenuItemIsSeparatorKey) && objj_msgSend(aCoder, "decodeBoolForKey:", CPMenuItemIsSeparatorKey); + _title = objj_msgSend(aCoder, "decodeObjectForKey:", CPMenuItemTitleKey); + _target = objj_msgSend(aCoder, "decodeObjectForKey:", CPMenuItemTargetKey); + _action = objj_msgSend(aCoder, "decodeObjectForKey:", CPMenuItemActionKey); + _isEnabled = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemIsEnabledKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemIsEnabledKey)) : (YES); + _isHidden = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemIsHiddenKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemIsHiddenKey)) : (NO); + _tag = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemTagKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemTagKey)) : (0); + _state = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemStateKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemStateKey)) : (CPOffState); + _image = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemImageKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemImageKey)) : (nil); + _alternateImage = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemAlternateImageKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemAlternateImageKey)) : (nil); + _submenu = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemSubmenuKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemSubmenuKey)) : (nil); + _menu = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemMenuKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemMenuKey)) : (nil); + _representedObject = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemRepresentedObjectKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemRepresentedObjectKey)) : (nil); + _view = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemViewKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemViewKey)) : (nil); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPMenuItem__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (_isSeparator) + objj_msgSend(aCoder, "encodeBool:forKey:", _isSeparator, CPMenuItemIsSeparatorKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _title, CPMenuItemTitleKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _target, CPMenuItemTargetKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _action, CPMenuItemActionKey); + if ((_isEnabled) !== (YES)) objj_msgSend(aCoder, "encodeObject:forKey:", (_isEnabled), (CPMenuItemIsEnabledKey));; + if ((_isHidden) !== (NO)) objj_msgSend(aCoder, "encodeObject:forKey:", (_isHidden), (CPMenuItemIsHiddenKey));; + if ((_tag) !== (0)) objj_msgSend(aCoder, "encodeObject:forKey:", (_tag), (CPMenuItemTagKey));; + if ((_state) !== (CPOffState)) objj_msgSend(aCoder, "encodeObject:forKey:", (_state), (CPMenuItemStateKey));; + if ((_image) !== (nil)) objj_msgSend(aCoder, "encodeObject:forKey:", (_image), (CPMenuItemImageKey));; + if ((_alternateImage) !== (nil)) objj_msgSend(aCoder, "encodeObject:forKey:", (_alternateImage), (CPMenuItemAlternateImageKey));; + if ((_submenu) !== (nil)) objj_msgSend(aCoder, "encodeObject:forKey:", (_submenu), (CPMenuItemSubmenuKey));; + if ((_menu) !== (nil)) objj_msgSend(aCoder, "encodeObject:forKey:", (_menu), (CPMenuItemMenuKey));; + if ((_representedObject) !== (nil)) objj_msgSend(aCoder, "encodeObject:forKey:", (_representedObject), (CPMenuItemRepresentedObjectKey));; + if ((_view) !== (nil)) objj_msgSend(aCoder, "encodeObject:forKey:", (_view), (CPMenuItemViewKey));; +} +})]); +} +var LEFT_MARGIN = 3.0, + RIGHT_MARGIN = 16.0, + STATE_COLUMN_WIDTH = 14.0, + INDENTATION_WIDTH = 17.0, + VERTICAL_MARGIN = 4.0; +var _CPMenuItemSelectionColor = nil, + _CPMenuItemTextShadowColor = nil, + _CPMenuItemDefaultStateImages = [], + _CPMenuItemDefaultStateHighlightedImages = []; +{var the_class = objj_allocateClassPair(CPView, "_CPMenuItemView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_menuItem"), new objj_ivar("_font"), new objj_ivar("_textColor"), new objj_ivar("_textShadowColor"), new objj_ivar("_activateColor"), new objj_ivar("_activateShadowColor"), new objj_ivar("_minSize"), new objj_ivar("_isDirty"), new objj_ivar("_showsStateColumn"), new objj_ivar("_belongsToMenuBar"), new objj_ivar("_stateView"), new objj_ivar("_imageAndTextView"), new objj_ivar("_submenuView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:forMenuItem:"), function $_CPMenuItemView__initWithFrame_forMenuItem_(self, _cmd, aFrame, aMenuItem) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _menuItem = aMenuItem; + _showsStateColumn = YES; + _isDirty = YES; + objj_msgSend(self, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(self, "synchronizeWithMenuItem"); + } + return self; +} +}), new objj_method(sel_getUid("minSize"), function $_CPMenuItemView__minSize(self, _cmd) +{ with(self) +{ + return _minSize; +} +}), new objj_method(sel_getUid("setDirty"), function $_CPMenuItemView__setDirty(self, _cmd) +{ with(self) +{ + _isDirty = YES; +} +}), new objj_method(sel_getUid("synchronizeWithMenuItem"), function $_CPMenuItemView__synchronizeWithMenuItem(self, _cmd) +{ with(self) +{ + if (!_isDirty) + return; + _isDirty = NO; + var view = objj_msgSend(_menuItem, "view"); + if (objj_msgSend(_menuItem, "isSeparatorItem")) + { + var line = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, 5.0, 10.0, 1.0)); + view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, 0.0, 10.0)); + objj_msgSend(view, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(line, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(line, "setBackgroundColor:", objj_msgSend(CPColor, "lightGrayColor")); + objj_msgSend(view, "addSubview:", line); + } + if (view) + { + objj_msgSend(_imageAndTextView, "removeFromSuperview"); + _imageAndTextView = nil; + objj_msgSend(_stateView, "removeFromSuperview"); + _stateView = nil; + objj_msgSend(_submenuView, "removeFromSuperview"); + _submenuView = nil; + _minSize = objj_msgSend(view, "frame").size; + objj_msgSend(self, "setFrameSize:", _minSize); + objj_msgSend(self, "addSubview:", view); + return; + } + var x = _belongsToMenuBar ? 0.0 : (LEFT_MARGIN + objj_msgSend(_menuItem, "indentationLevel") * INDENTATION_WIDTH); + if (_showsStateColumn) + { + if (!_stateView) + { + _stateView = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CGRectMake(x, (CGRectGetHeight(objj_msgSend(self, "frame")) - STATE_COLUMN_WIDTH) / 2.0, STATE_COLUMN_WIDTH, STATE_COLUMN_WIDTH)); + objj_msgSend(_stateView, "setAutoresizingMask:", CPViewMinYMargin | CPViewMaxYMargin); + objj_msgSend(self, "addSubview:", _stateView); + } + var state = objj_msgSend(_menuItem, "state"); + switch (state) + { + case CPOffState: + case CPOnState: + case CPMixedState: objj_msgSend(_stateView, "setImage:", _CPMenuItemDefaultStateImages[state]); + break; + default: objj_msgSend(_stateView, "setImage:", nil); + } + x += STATE_COLUMN_WIDTH; + } + else + { + objj_msgSend(_stateView, "removeFromSuperview"); + _stateView = nil; + } + if (!_imageAndTextView) + { + _imageAndTextView = objj_msgSend(objj_msgSend(_CPImageAndTextView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, 0.0, 0.0)); + objj_msgSend(_imageAndTextView, "setImagePosition:", CPImageLeft); + objj_msgSend(_imageAndTextView, "setTextShadowOffset:", CGSizeMake(0.0, 1.0)); + objj_msgSend(self, "addSubview:", _imageAndTextView); + } + var font = objj_msgSend(_menuItem, "font"); + if (!font) + font = _font; + objj_msgSend(_imageAndTextView, "setFont:", font); + objj_msgSend(_imageAndTextView, "setVerticalAlignment:", CPCenterVerticalTextAlignment); + objj_msgSend(_imageAndTextView, "setImage:", objj_msgSend(_menuItem, "image")); + objj_msgSend(_imageAndTextView, "setText:", objj_msgSend(_menuItem, "title")); + objj_msgSend(_imageAndTextView, "setTextColor:", objj_msgSend(self, "textColor")); + objj_msgSend(_imageAndTextView, "setTextShadowColor:", objj_msgSend(self, "textShadowColor")); + objj_msgSend(_imageAndTextView, "setTextShadowOffset:", CGSizeMake(0, 1)); + objj_msgSend(_imageAndTextView, "setFrameOrigin:", CGPointMake(x, VERTICAL_MARGIN)); + objj_msgSend(_imageAndTextView, "sizeToFit"); + var frame = objj_msgSend(_imageAndTextView, "frame"); + frame.size.height += 2 * VERTICAL_MARGIN; + x += CGRectGetWidth(frame); + if (objj_msgSend(_menuItem, "hasSubmenu")) + { + x += 3.0; + if (!_submenuView) + { + _submenuView = objj_msgSend(objj_msgSend(_CPMenuItemArrowView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, 10.0, 10.0)); + objj_msgSend(self, "addSubview:", _submenuView); + } + objj_msgSend(_submenuView, "setHidden:", NO); + objj_msgSend(_submenuView, "setColor:", _belongsToMenuBar ? objj_msgSend(self, "textColor") : nil); + objj_msgSend(_submenuView, "setFrameOrigin:", CGPointMake(x, (CGRectGetHeight(frame) - 10.0) / 2.0)); + x += 10.0; + } + else + objj_msgSend(_submenuView, "setHidden:", YES); + _minSize = CGSizeMake(x + (_belongsToMenuBar ? 0.0 : RIGHT_MARGIN) + 3.0, CGRectGetHeight(frame)); + objj_msgSend(self, "setFrameSize:", _minSize); +} +}), new objj_method(sel_getUid("overlapOffsetWidth"), function $_CPMenuItemView__overlapOffsetWidth(self, _cmd) +{ with(self) +{ + return LEFT_MARGIN + (objj_msgSend(objj_msgSend(_menuItem, "menu"), "showsStateColumn") ? STATE_COLUMN_WIDTH : 0.0); +} +}), new objj_method(sel_getUid("setShowsStateColumn:"), function $_CPMenuItemView__setShowsStateColumn_(self, _cmd, shouldShowStateColumn) +{ with(self) +{ + _showsStateColumn = shouldShowStateColumn; +} +}), new objj_method(sel_getUid("setBelongsToMenuBar:"), function $_CPMenuItemView__setBelongsToMenuBar_(self, _cmd, shouldBelongToMenuBar) +{ with(self) +{ + _belongsToMenuBar = shouldBelongToMenuBar; +} +}), new objj_method(sel_getUid("highlight:"), function $_CPMenuItemView__highlight_(self, _cmd, shouldHighlight) +{ with(self) +{ + if (_belongsToMenuBar) + objj_msgSend(_imageAndTextView, "setImage:", shouldHighlight ? objj_msgSend(_menuItem, "alternateImage") : objj_msgSend(_menuItem, "image")); + else if (objj_msgSend(_menuItem, "isEnabled")) + { + if (shouldHighlight) + { + objj_msgSend(self, "setBackgroundColor:", _CPMenuItemSelectionColor); + objj_msgSend(_imageAndTextView, "setTextColor:", objj_msgSend(CPColor, "whiteColor")); + objj_msgSend(_imageAndTextView, "setTextShadowColor:", _CPMenuItemTextShadowColor); + } + else + { + objj_msgSend(self, "setBackgroundColor:", nil); + objj_msgSend(_imageAndTextView, "setTextColor:", objj_msgSend(self, "textColor")); + objj_msgSend(_imageAndTextView, "setTextShadowColor:", objj_msgSend(self, "textShadowColor")); + } + var state = objj_msgSend(_menuItem, "state"); + switch (state) + { + case CPOffState: + case CPOnState: + case CPMixedState: objj_msgSend(_stateView, "setImage:", shouldHighlight ? _CPMenuItemDefaultStateHighlightedImages[state] : _CPMenuItemDefaultStateImages[state]); + break; + default: objj_msgSend(_stateView, "setImage:", nil); + } + } +} +}), new objj_method(sel_getUid("activate:"), function $_CPMenuItemView__activate_(self, _cmd, shouldActivate) +{ with(self) +{ + objj_msgSend(_imageAndTextView, "setImage:", objj_msgSend(_menuItem, "image")); + if (shouldActivate) + { + objj_msgSend(_imageAndTextView, "setTextColor:", objj_msgSend(self, "activateColor") || objj_msgSend(CPColor, "whiteColor")); + objj_msgSend(_imageAndTextView, "setTextShadowColor:", objj_msgSend(self, "activateShadowColor") || objj_msgSend(CPColor, "blackColor")); + objj_msgSend(_submenuView, "setColor:", objj_msgSend(self, "activateColor") || objj_msgSend(CPColor, "whiteColor")); + } + else + { + objj_msgSend(_imageAndTextView, "setTextColor:", objj_msgSend(self, "textColor")); + objj_msgSend(_imageAndTextView, "setTextShadowColor:", objj_msgSend(self, "textShadowColor")); + objj_msgSend(_submenuView, "setColor:", objj_msgSend(self, "textColor")); + } +} +}), new objj_method(sel_getUid("eventOnSubmenu:"), function $_CPMenuItemView__eventOnSubmenu_(self, _cmd, anEvent) +{ with(self) +{ + if (!objj_msgSend(_menuItem, "hasSubmenu")) + return NO; + return CGRectContainsPoint(objj_msgSend(_submenuView, "frame"), objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil)); +} +}), new objj_method(sel_getUid("isHidden"), function $_CPMenuItemView__isHidden(self, _cmd) +{ with(self) +{ + return objj_msgSend(_menuItem, "isHidden"); +} +}), new objj_method(sel_getUid("menuItem"), function $_CPMenuItemView__menuItem(self, _cmd) +{ with(self) +{ + return _menuItem; +} +}), new objj_method(sel_getUid("setFont:"), function $_CPMenuItemView__setFont_(self, _cmd, aFont) +{ with(self) +{ + if (_font == aFont) + return; + _font = aFont; + objj_msgSend(self, "setDirty"); +} +}), new objj_method(sel_getUid("setTextColor:"), function $_CPMenuItemView__setTextColor_(self, _cmd, aColor) +{ with(self) +{ + if (_textColor == aColor) + return; + _textColor = aColor; + objj_msgSend(_imageAndTextView, "setTextColor:", objj_msgSend(self, "textColor")); + objj_msgSend(_submenuView, "setColor:", objj_msgSend(self, "textColor")); +} +}), new objj_method(sel_getUid("textColor"), function $_CPMenuItemView__textColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(_menuItem, "isEnabled") ? (_textColor ? _textColor : objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 70.0 / 255.0, 69.0 / 255.0, 69.0 / 255.0, 1.0)) : objj_msgSend(CPColor, "darkGrayColor"); +} +}), new objj_method(sel_getUid("setTextShadowColor:"), function $_CPMenuItemView__setTextShadowColor_(self, _cmd, aColor) +{ with(self) +{ + if (_textShadowColor == aColor) + return; + _textShadowColor = aColor; + objj_msgSend(_imageAndTextView, "setTextShadowColor:", objj_msgSend(self, "textShadowColor")); +} +}), new objj_method(sel_getUid("textShadowColor"), function $_CPMenuItemView__textShadowColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(_menuItem, "isEnabled") ? (_textShadowColor ? _textShadowColor : objj_msgSend(CPColor, "colorWithWhite:alpha:", 1.0, 0.8)) : objj_msgSend(CPColor, "colorWithWhite:alpha:", 0.8, 0.8); +} +}), new objj_method(sel_getUid("setActivateColor:"), function $_CPMenuItemView__setActivateColor_(self, _cmd, aColor) +{ with(self) +{ + _activateColor = aColor; +} +}), new objj_method(sel_getUid("activateColor"), function $_CPMenuItemView__activateColor(self, _cmd) +{ with(self) +{ + return _activateColor; +} +}), new objj_method(sel_getUid("setActivateShadowColor:"), function $_CPMenuItemView__setActivateShadowColor_(self, _cmd, aColor) +{ with(self) +{ + _activateShadowColor = aColor; +} +}), new objj_method(sel_getUid("activateShadowColor"), function $_CPMenuItemView__activateShadowColor(self, _cmd) +{ with(self) +{ + return _activateShadowColor; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPMenuItemView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPMenuItemView, "class")) + return; + _CPMenuItemSelectionColor = objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 95.0 / 255.0, 131.0 / 255.0, 185.0 / 255.0, 1.0); + _CPMenuItemTextShadowColor = objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 26.0 / 255.0, 73.0 / 255.0, 109.0 / 255.0, 1.0) + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPMenuItemDefaultStateImages[CPOffState] = nil; + _CPMenuItemDefaultStateHighlightedImages[CPOffState] = nil; + _CPMenuItemDefaultStateImages[CPOnState] = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPMenuItem/CPMenuItemOnState.png"), CGSizeMake(14.0, 14.0)); + _CPMenuItemDefaultStateHighlightedImages[CPOnState] = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPMenuItem/CPMenuItemOnStateHighlighted.png"), CGSizeMake(14.0, 14.0)); + _CPMenuItemDefaultStateImages[CPMixedState] = nil; + _CPMenuItemDefaultStateHighlightedImages[CPMixedState] = nil; +} +}), new objj_method(sel_getUid("leftMargin"), function $_CPMenuItemView__leftMargin(self, _cmd) +{ with(self) +{ + return LEFT_MARGIN + STATE_COLUMN_WIDTH; +} +})]); +} +{var the_class = objj_allocateClassPair(CPView, "_CPMenuItemArrowView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_color")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setColor:"), function $_CPMenuItemArrowView__setColor_(self, _cmd, aColor) +{ with(self) +{ + if (_color == aColor) + return; + _color = aColor; + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("drawRect:"), function $_CPMenuItemArrowView__drawRect_(self, _cmd, aRect) +{ with(self) +{ + var context = objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"); + CGContextBeginPath(context); + CGContextMoveToPoint(context, 1.0, 4.0); + CGContextAddLineToPoint(context, 9.0, 4.0); + CGContextAddLineToPoint(context, 5.0, 8.0); + CGContextAddLineToPoint(context, 1.0, 4.0); + CGContextClosePath(context); + CGContextSetFillColor(context, _color); + CGContextFillPath(context); +} +})]); +} + +p;13;CPOpenPanel.jI;16;AppKit/CPPanel.jc;2883; + + +var SharedOpenPanel = nil; + +{var the_class = objj_allocateClassPair(CPPanel, "CPOpenPanel"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_files"), new objj_ivar("_canChooseFiles"), new objj_ivar("_canChooseDirectories"), new objj_ivar("_allowsMultipleSelection")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("canChooseFiles"), function $CPOpenPanel__canChooseFiles(self, _cmd) +{ with(self) +{ +return _canChooseFiles; +} +}), +new objj_method(sel_getUid("setCanChooseFiles:"), function $CPOpenPanel__setCanChooseFiles_(self, _cmd, newValue) +{ with(self) +{ +_canChooseFiles = newValue; +} +}), +new objj_method(sel_getUid("canChooseDirectories"), function $CPOpenPanel__canChooseDirectories(self, _cmd) +{ with(self) +{ +return _canChooseDirectories; +} +}), +new objj_method(sel_getUid("setCanChooseDirectories:"), function $CPOpenPanel__setCanChooseDirectories_(self, _cmd, newValue) +{ with(self) +{ +_canChooseDirectories = newValue; +} +}), +new objj_method(sel_getUid("allowsMultipleSelection"), function $CPOpenPanel__allowsMultipleSelection(self, _cmd) +{ with(self) +{ +return _allowsMultipleSelection; +} +}), +new objj_method(sel_getUid("setAllowsMultipleSelection:"), function $CPOpenPanel__setAllowsMultipleSelection_(self, _cmd, newValue) +{ with(self) +{ +_allowsMultipleSelection = newValue; +} +}), new objj_method(sel_getUid("init"), function $CPOpenPanel__init(self, _cmd) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPPanel") }, "init")) + { + _files = []; + _canChooseFiles = YES; + } + + return self; +} +}), new objj_method(sel_getUid("filenames"), function $CPOpenPanel__filenames(self, _cmd) +{ with(self) +{ + return _files; +} +}), new objj_method(sel_getUid("runModalForDirectory:file:types:"), function $CPOpenPanel__runModalForDirectory_file_types_(self, _cmd, absoluteDirectoryPath, filename, fileTypes) +{ with(self) +{ + + if (window.Titanium) + { + _files = Titanium.Desktop.openFiles({ + path:absoluteDirectoryPath, + types:fileTypes, + multiple:_allowsMultipleSelection, + filename:filename, + directories:_canChooseDirectories, + files:_canChooseFiles + }); + } + +} +}), new objj_method(sel_getUid("runModalForTypes:"), function $CPOpenPanel__runModalForTypes_(self, _cmd, fileTypes) +{ with(self) +{alert("HERE"); + objj_msgSend(self, "runModalForDirectory:file:types:", "/", nil, fileTypes); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("openPanel"), function $CPOpenPanel__openPanel(self, _cmd) +{ with(self) +{ + if (!SharedOpenPanel) + SharedOpenPanel = objj_msgSend(objj_msgSend(CPOpenPanel, "alloc"), "init"); + + return SharedOpenPanel; +} +})]); +} + +p;15;CPOutlineView.ji;13;CPTableView.jc;3363; +{var the_class = objj_allocateClassPair(CPTableView, "CPOutlineView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_outlineDataSource"), new objj_ivar("_itemsByRow")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPOutlineView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTableView") }, "initWithFrame:", aFrame); + if (self) + { + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTableView") }, "setDataSource:", self); + _itemsByRow = objj_msgSend(objj_msgSend(CPArray, "alloc"), "init"); + } + return self; +} +}), new objj_method(sel_getUid("setDataSource:"), function $CPOutlineView__setDataSource_(self, _cmd, aDataSource) +{ with(self) +{ + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("outlineView:child:ofItem"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source must implement 'outlineView:child:ofItem'"); + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("outlineView:isItemExpandable"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source must implement 'outlineView:isItemExpandable'"); + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("outlineView:numberOfChildrenOfItem"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source must implement 'outlineView:numberOfChildrenOfItem'"); + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("outlineView:objectValueForTableColumn:byItem"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source must implement 'outlineView:objectValueForTableColumn:byItem'"); + _outlineDataSource = aDataSource; + objj_msgSend(self, "reloadData"); +} +}), new objj_method(sel_getUid("reloadData"), function $CPOutlineView__reloadData(self, _cmd) +{ with(self) +{ + _numberOfVisibleItems = objj_msgSend(_outlineDataSource, "outlineView:numberOfChildrenOfItem:", self, nil); + _numberOfRows = _numberOfVisibleItems; + var i = 0; + for (; i < _numberOfVisibleItems; ++i) + _itemsByRow[i] = objj_msgSend(_outlineDataSource, "outlineView:child:ofItem:", self, i, nil); + objj_msgSend(self, "loadTableCellsInRect:", objj_msgSend(self, "bounds")); +} +})]); +} +{ +var the_class = objj_getClass("CPOutlineView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPOutlineView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("numberOfRowsInTableView:"), function $CPOutlineView__numberOfRowsInTableView_(self, _cmd, aTableView) +{ with(self) +{ + return _numberOfVisibleItems; +} +}), new objj_method(sel_getUid("tableView:objectValueForTableColumn:row:"), function $CPOutlineView__tableView_objectValueForTableColumn_row_(self, _cmd, aTableView, aTableColumn, aRowIndex) +{ with(self) +{ + return objj_msgSend(_outlineDataSource, "outlineView:objectValueForTableColumn:byItem:", self, aTableColumn, _itemsByRow[aRowIndex]); +} +})]); +} + +p;9;CPPanel.ji;10;CPWindow.jc;1654; +CPOKButton = 1; +CPCancelButton = 0; +{var the_class = objj_allocateClassPair(CPWindow, "CPPanel"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_becomesKeyOnlyIfNeeded"), new objj_ivar("_worksWhenModal")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("isFloatingPanel"), function $CPPanel__isFloatingPanel(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "level") == CPFloatingWindowLevel; +} +}), new objj_method(sel_getUid("setFloatingPanel:"), function $CPPanel__setFloatingPanel_(self, _cmd, isFloatingPanel) +{ with(self) +{ + objj_msgSend(self, "setLevel:", isFloatingPanel ? CPFloatingWindowLevel : CPNormalWindowLevel); +} +}), new objj_method(sel_getUid("becomesKeyOnlyIfNeeded"), function $CPPanel__becomesKeyOnlyIfNeeded(self, _cmd) +{ with(self) +{ + return _becomesKeyOnlyIfNeeded; +} +}), new objj_method(sel_getUid("setBecomesKeyOnlyIfNeeded:"), function $CPPanel__setBecomesKeyOnlyIfNeeded_(self, _cmd, shouldBecomeKeyOnlyIfNeeded) +{ with(self) +{ + _becomesKeyOnlyIfNeeded = shouldBecomeKeyOnlyIfNeeded +} +}), new objj_method(sel_getUid("worksWhenModal"), function $CPPanel__worksWhenModal(self, _cmd) +{ with(self) +{ + return _worksWhenModal; +} +}), new objj_method(sel_getUid("setWorksWhenModal:"), function $CPPanel__setWorksWhenModal_(self, _cmd, shouldWorkWhenModal) +{ with(self) +{ + _worksWhenModal = shouldWorkWhenModal; +} +}), new objj_method(sel_getUid("canBecomeMainWindow"), function $CPPanel__canBecomeMainWindow(self, _cmd) +{ with(self) +{ + return NO; +} +})]); +} + +p;14;CPPasteboard.jI;21;Foundation/CPObject.jI;20;Foundation/CPArray.jI;25;Foundation/CPDictionary.jI;40;Foundation/CPPropertyListSerialization.jc;6120; +CPGeneralPboard = "CPGeneralPboard"; +CPFontPboard = "CPFontPboard"; +CPRulerPboard = "CPRulerPboard"; +CPFindPboard = "CPFindPboard"; +CPDragPboard = "CPDragPboard"; +CPColorPboardType = "CPColorPboardType"; +CPFilenamesPboardType = "CPFilenamesPboardType"; +CPFontPboardType = "CPFontPboardType"; +CPHTMLPboardType = "CPHTMLPboardType"; +CPStringPboardType = "CPStringPboardType"; +CPURLPboardType = "CPURLPboardType"; +CPImagesPboardType = "CPImagesPboardType"; +CPVideosPboardType = "CPVideosPboardType"; +CPImagePboardType = "CPImagePboardType"; +var CPPasteboards = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPPasteboard"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_types"), new objj_ivar("_owners"), new objj_ivar("_provided"), new objj_ivar("_changeCount"), new objj_ivar("_stateUID")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("_initWithName:"), function $CPPasteboard___initWithName_(self, _cmd, aName) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _name = aName; + _types = []; + _owners = objj_msgSend(CPDictionary, "dictionary"); + _provided = objj_msgSend(CPDictionary, "dictionary"); + _changeCount = 0; + } + return self; +} +}), new objj_method(sel_getUid("addTypes:owner:"), function $CPPasteboard__addTypes_owner_(self, _cmd, types, anOwner) +{ with(self) +{ + var i = 0, + count = types.length; + for (; i < count; ++i) + { + var type = types[i]; + if(!objj_msgSend(_owners, "objectForKey:", type)) + { + objj_msgSend(_types, "addObject:", type); + objj_msgSend(_provided, "removeObjectForKey:", type); + } + objj_msgSend(_owners, "setObject:forKey:", anOwner, type); + } + return ++_changeCount; +} +}), new objj_method(sel_getUid("declareTypes:owner:"), function $CPPasteboard__declareTypes_owner_(self, _cmd, types, anOwner) +{ with(self) +{ + objj_msgSend(_types, "setArray:", types); + _owners = objj_msgSend(CPDictionary, "dictionary"); + _provided = objj_msgSend(CPDictionary, "dictionary"); + var count = _types.length; + while (count--) + objj_msgSend(_owners, "setObject:forKey:", anOwner, _types[count]); + return ++_changeCount; +} +}), new objj_method(sel_getUid("setData:forType:"), function $CPPasteboard__setData_forType_(self, _cmd, aData, aType) +{ with(self) +{ + objj_msgSend(_provided, "setObject:forKey:", aData, aType); + return YES; +} +}), new objj_method(sel_getUid("setPropertyList:forType:"), function $CPPasteboard__setPropertyList_forType_(self, _cmd, aPropertyList, aType) +{ with(self) +{ + return objj_msgSend(self, "setData:forType:", objj_msgSend(CPPropertyListSerialization, "dataFromPropertyList:format:errorDescription:", aPropertyList, CPPropertyListXMLFormat_v1_0, nil), aType); +} +}), new objj_method(sel_getUid("setString:forType:"), function $CPPasteboard__setString_forType_(self, _cmd, aString, aType) +{ with(self) +{ + return objj_msgSend(self, "setPropertyList:forType:", aString, aType); +} +}), new objj_method(sel_getUid("availableTypeFromArray:"), function $CPPasteboard__availableTypeFromArray_(self, _cmd, anArray) +{ with(self) +{ + return objj_msgSend(_types, "firstObjectCommonWithArray:", anArray); +} +}), new objj_method(sel_getUid("types"), function $CPPasteboard__types(self, _cmd) +{ with(self) +{ + return _types; +} +}), new objj_method(sel_getUid("changeCount"), function $CPPasteboard__changeCount(self, _cmd) +{ with(self) +{ + return _changeCount; +} +}), new objj_method(sel_getUid("dataForType:"), function $CPPasteboard__dataForType_(self, _cmd, aType) +{ with(self) +{ + var data = objj_msgSend(_provided, "objectForKey:", aType); + if (data) + return data; + var owner = objj_msgSend(_owners, "objectForKey:", aType); + if (owner) + { + objj_msgSend(owner, "pasteboard:provideDataForType:", self, aType); + ++_changeCount; + return objj_msgSend(_provided, "objectForKey:", aType); + } + return nil; +} +}), new objj_method(sel_getUid("propertyListForType:"), function $CPPasteboard__propertyListForType_(self, _cmd, aType) +{ with(self) +{ + var data = objj_msgSend(self, "dataForType:", aType); + if (data) + return objj_msgSend(CPPropertyListSerialization, "propertyListFromData:format:errorDescription:", data, CPPropertyListXMLFormat_v1_0, nil); + return nil; +} +}), new objj_method(sel_getUid("stringForType:"), function $CPPasteboard__stringForType_(self, _cmd, aType) +{ with(self) +{ + return objj_msgSend(self, "propertyListForType:", aType); +} +}), new objj_method(sel_getUid("_generateStateUID"), function $CPPasteboard___generateStateUID(self, _cmd) +{ with(self) +{ + var bits = 32; + _stateUID = ""; + while (bits--) + _stateUID += FLOOR(RAND() * 16.0).toString(16).toUpperCase(); + return _stateUID; +} +}), new objj_method(sel_getUid("_stateUID"), function $CPPasteboard___stateUID(self, _cmd) +{ with(self) +{ + return _stateUID; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPPasteboard__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPPasteboard, "class")) + return; + objj_msgSend(self, "setVersion:", 1.0); + CPPasteboards = objj_msgSend(CPDictionary, "dictionary"); +} +}), new objj_method(sel_getUid("generalPasteboard"), function $CPPasteboard__generalPasteboard(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPPasteboard, "pasteboardWithName:", CPGeneralPboard); +} +}), new objj_method(sel_getUid("pasteboardWithName:"), function $CPPasteboard__pasteboardWithName_(self, _cmd, aName) +{ with(self) +{ + var pasteboard = objj_msgSend(CPPasteboards, "objectForKey:", aName); + if (pasteboard) + return pasteboard; + pasteboard = objj_msgSend(objj_msgSend(CPPasteboard, "alloc"), "_initWithName:", aName); + objj_msgSend(CPPasteboards, "setObject:forKey:", pasteboard, aName); + return pasteboard; +} +})]); +} + +p;15;CPPopUpButton.ji;10;CPButton.ji;12;CPGeometry.ji;8;CPMenu.ji;12;CPMenuItem.jc;18729; +var VISIBLE_MARGIN = 7.0; +CPPopUpButtonStatePullsDown = CPThemeState("pulls-down"); +{var the_class = objj_allocateClassPair(CPButton, "CPPopUpButton"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_selectedIndex"), new objj_ivar("_preferredEdge"), new objj_ivar("_menu")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:pullsDown:"), function $CPPopUpButton__initWithFrame_pullsDown_(self, _cmd, aFrame, shouldPullDown) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "initWithFrame:", aFrame); + if (self) + { + _selectedIndex = CPNotFound; + _preferredEdge = CPMaxYEdge; + objj_msgSend(self, "setValue:forThemeAttribute:", CPImageLeft, "image-position"); + objj_msgSend(self, "setValue:forThemeAttribute:", CPLeftTextAlignment, "alignment"); + objj_msgSend(self, "setValue:forThemeAttribute:", CPLineBreakByTruncatingTail, "line-break-mode"); + objj_msgSend(self, "setMenu:", objj_msgSend(objj_msgSend(CPMenu, "alloc"), "initWithTitle:", "")); + objj_msgSend(self, "setPullsDown:", shouldPullDown); + } + return self; +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPPopUpButton__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + return objj_msgSend(self, "initWithFrame:pullsDown:", aFrame, NO); +} +}), new objj_method(sel_getUid("setPullsDown:"), function $CPPopUpButton__setPullsDown_(self, _cmd, shouldPullDown) +{ with(self) +{ + if (shouldPullDown) + var changed = objj_msgSend(self, "setThemeState:", CPPopUpButtonStatePullsDown); + else + var changed = objj_msgSend(self, "unsetThemeState:", CPPopUpButtonStatePullsDown); + if (!changed) + return; + var items = objj_msgSend(_menu, "itemArray"); + if (objj_msgSend(items, "count") <= 0) + return; + objj_msgSend(items[0], "setHidden:", objj_msgSend(self, "pullsDown")); + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); +} +}), new objj_method(sel_getUid("pullsDown"), function $CPPopUpButton__pullsDown(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "hasThemeState:", CPPopUpButtonStatePullsDown); +} +}), new objj_method(sel_getUid("addItem:"), function $CPPopUpButton__addItem_(self, _cmd, anItem) +{ with(self) +{ + objj_msgSend(_menu, "addItem:", anItem); +} +}), new objj_method(sel_getUid("addItemWithTitle:"), function $CPPopUpButton__addItemWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + objj_msgSend(_menu, "addItemWithTitle:action:keyEquivalent:", aTitle, NULL, nil); +} +}), new objj_method(sel_getUid("addItemsWithTitles:"), function $CPPopUpButton__addItemsWithTitles_(self, _cmd, titles) +{ with(self) +{ + var index = 0, + count = objj_msgSend(titles, "count"); + for (; index < count; ++index) + objj_msgSend(self, "addItemWithTitle:", titles[index]); +} +}), new objj_method(sel_getUid("insertItemWithTitle:atIndex:"), function $CPPopUpButton__insertItemWithTitle_atIndex_(self, _cmd, aTitle, anIndex) +{ with(self) +{ + var items = objj_msgSend(self, "itemArray"), + count = objj_msgSend(items, "count"); + while (count--) + if (objj_msgSend(items[count], "title") == aTitle) + objj_msgSend(self, "removeItemAtIndex:", count); + objj_msgSend(_menu, "insertItemWithTitle:action:keyEquivalent:atIndex:", aTitle, NULL, nil, anIndex); +} +}), new objj_method(sel_getUid("removeAllItems"), function $CPPopUpButton__removeAllItems(self, _cmd) +{ with(self) +{ + var count = objj_msgSend(_menu, "numberOfItems"); + while (count--) + objj_msgSend(_menu, "removeItemAtIndex:", 0); +} +}), new objj_method(sel_getUid("removeItemWithTitle:"), function $CPPopUpButton__removeItemWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + objj_msgSend(self, "removeItemAtIndex:", objj_msgSend(self, "indexOfItemWithTitle:", aTitle)); + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); +} +}), new objj_method(sel_getUid("removeItemAtIndex:"), function $CPPopUpButton__removeItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + objj_msgSend(_menu, "removeItemAtIndex:", anIndex); + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); +} +}), new objj_method(sel_getUid("selectedItem"), function $CPPopUpButton__selectedItem(self, _cmd) +{ with(self) +{ + if (_selectedIndex < 0) + return nil; + return objj_msgSend(_menu, "itemAtIndex:", _selectedIndex); +} +}), new objj_method(sel_getUid("titleOfSelectedItem"), function $CPPopUpButton__titleOfSelectedItem(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "selectedItem"), "title"); +} +}), new objj_method(sel_getUid("indexOfSelectedItem"), function $CPPopUpButton__indexOfSelectedItem(self, _cmd) +{ with(self) +{ + return _selectedIndex; +} +}), new objj_method(sel_getUid("objectValue"), function $CPPopUpButton__objectValue(self, _cmd) +{ with(self) +{ + return _selectedIndex; +} +}), new objj_method(sel_getUid("selectItem:"), function $CPPopUpButton__selectItem_(self, _cmd, aMenuItem) +{ with(self) +{ + objj_msgSend(self, "selectItemAtIndex:", objj_msgSend(self, "indexOfItem:", aMenuItem)); +} +}), new objj_method(sel_getUid("selectItemAtIndex:"), function $CPPopUpButton__selectItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + if (_selectedIndex == anIndex) + return; + if (_selectedIndex >= 0 && !objj_msgSend(self, "pullsDown")) + objj_msgSend(objj_msgSend(self, "selectedItem"), "setState:", CPOffState); + _selectedIndex = anIndex; + if (_selectedIndex >= 0 && !objj_msgSend(self, "pullsDown")) + objj_msgSend(objj_msgSend(self, "selectedItem"), "setState:", CPOnState); + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); +} +}), new objj_method(sel_getUid("selectItemWithTag:"), function $CPPopUpButton__selectItemWithTag_(self, _cmd, aTag) +{ with(self) +{ + objj_msgSend(self, "selectItemAtIndex:", objj_msgSend(self, "indexOfItemWithTag:", aTag)); +} +}), new objj_method(sel_getUid("selectItemWithTitle:"), function $CPPopUpButton__selectItemWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + objj_msgSend(self, "selectItemAtIndex:", objj_msgSend(self, "indexOfItemWithTitle:", aTitle)); +} +}), new objj_method(sel_getUid("setObjectValue:"), function $CPPopUpButton__setObjectValue_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSend(self, "selectItemAtIndex:", objj_msgSend(aValue, "intValue")); +} +}), new objj_method(sel_getUid("menu"), function $CPPopUpButton__menu(self, _cmd) +{ with(self) +{ + return _menu; +} +}), new objj_method(sel_getUid("setMenu:"), function $CPPopUpButton__setMenu_(self, _cmd, aMenu) +{ with(self) +{ + if (_menu === aMenu) + return; + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_menu) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPMenuDidAddItemNotification, _menu); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPMenuDidChangeItemNotification, _menu); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPMenuDidRemoveItemNotification, _menu); + } + _menu = aMenu; + if (_menu) + { + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("menuDidAddItem:"), CPMenuDidAddItemNotification, _menu); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("menuDidChangeItem:"), CPMenuDidChangeItemNotification, _menu); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("menuDidRemoveItem:"), CPMenuDidRemoveItemNotification, _menu); + } + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); +} +}), new objj_method(sel_getUid("numberOfItems"), function $CPPopUpButton__numberOfItems(self, _cmd) +{ with(self) +{ + return objj_msgSend(_menu, "numberOfItems"); +} +}), new objj_method(sel_getUid("itemArray"), function $CPPopUpButton__itemArray(self, _cmd) +{ with(self) +{ + return objj_msgSend(_menu, "itemArray"); +} +}), new objj_method(sel_getUid("itemAtIndex:"), function $CPPopUpButton__itemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(_menu, "itemAtIndex:", anIndex); +} +}), new objj_method(sel_getUid("itemTitleAtIndex:"), function $CPPopUpButton__itemTitleAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(objj_msgSend(_menu, "itemAtIndex:", anIndex), "title"); +} +}), new objj_method(sel_getUid("itemTitles"), function $CPPopUpButton__itemTitles(self, _cmd) +{ with(self) +{ + var titles = [], + items = objj_msgSend(self, "itemArray"), + index = 0, + count = objj_msgSend(items, "count"); + for (; index < count; ++index) + items.push(objj_msgSend(items[index], "title")); +} +}), new objj_method(sel_getUid("itemWithTitle:"), function $CPPopUpButton__itemWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + return objj_msgSend(_menu, "itemAtIndex:", objj_msgSend(_menu, "indexOfItemWithTitle:", aTitle)); +} +}), new objj_method(sel_getUid("lastItem"), function $CPPopUpButton__lastItem(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(_menu, "itemArray"), "lastObject"); +} +}), new objj_method(sel_getUid("indexOfItem:"), function $CPPopUpButton__indexOfItem_(self, _cmd, aMenuItem) +{ with(self) +{ + return objj_msgSend(_menu, "indexOfItem:", aMenuItem); +} +}), new objj_method(sel_getUid("indexOfItemWithTag:"), function $CPPopUpButton__indexOfItemWithTag_(self, _cmd, aTag) +{ with(self) +{ + return objj_msgSend(_menu, "indexOfItemWithTag:", aTag); +} +}), new objj_method(sel_getUid("indexOfItemWithTitle:"), function $CPPopUpButton__indexOfItemWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + return objj_msgSend(_menu, "indexOfItemWithTitle:", aTitle); +} +}), new objj_method(sel_getUid("indexOfItemWithRepresentedObject:"), function $CPPopUpButton__indexOfItemWithRepresentedObject_(self, _cmd, anObject) +{ with(self) +{ + return objj_msgSend(_menu, "indexOfItemWithRepresentedObject:", anObject); +} +}), new objj_method(sel_getUid("indexOfItemWithTarget:action:"), function $CPPopUpButton__indexOfItemWithTarget_action_(self, _cmd, aTarget, anAction) +{ with(self) +{ + return objj_msgSend(_menu, "indexOfItemWithTarget:action:", aTarget, anAction); +} +}), new objj_method(sel_getUid("preferredEdge"), function $CPPopUpButton__preferredEdge(self, _cmd) +{ with(self) +{ + return _preferredEdge; +} +}), new objj_method(sel_getUid("setPreferredEdge:"), function $CPPopUpButton__setPreferredEdge_(self, _cmd, aRectEdge) +{ with(self) +{ + _preferredEdge = aRectEdge; +} +}), new objj_method(sel_getUid("setTitle:"), function $CPPopUpButton__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + if (objj_msgSend(self, "title") === aTitle) + return; + if (objj_msgSend(self, "pullsDown")) + { + var items = objj_msgSend(_menu, "itemArray"); + if (objj_msgSend(items, "count") <= 0) + objj_msgSend(self, "addItemWithTitle:", aTitle); + else + { + objj_msgSend(items[0], "setTitle:", aTitle); + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); + } + } + else + { + var index = objj_msgSend(self, "indexOfItemWithTitle:", aTitle); + if (index < 0) + { + objj_msgSend(self, "addItemWithTitle:", aTitle); + index = objj_msgSend(self, "numberOfItems") - 1; + } + objj_msgSend(self, "selectItemAtIndex:", index); + } +} +}), new objj_method(sel_getUid("setImage:"), function $CPPopUpButton__setImage_(self, _cmd, anImage) +{ with(self) +{ +} +}), new objj_method(sel_getUid("synchronizeTitleAndSelectedItem"), function $CPPopUpButton__synchronizeTitleAndSelectedItem(self, _cmd) +{ with(self) +{ + var item = nil; + if (objj_msgSend(self, "pullsDown")) + { + var items = objj_msgSend(_menu, "itemArray"); + if (objj_msgSend(items, "count") > 0) + item = items[0]; + } + else + item = objj_msgSend(self, "selectedItem"); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "setImage:", objj_msgSend(item, "image")); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "setTitle:", objj_msgSend(item, "title")); +} +}), new objj_method(sel_getUid("menuDidAddItem:"), function $CPPopUpButton__menuDidAddItem_(self, _cmd, aNotification) +{ with(self) +{ + var index = objj_msgSend(objj_msgSend(aNotification, "userInfo"), "objectForKey:", "CPMenuItemIndex"); + if (_selectedIndex < 0) + objj_msgSend(self, "selectItemAtIndex:", 0); + else if (index == _selectedIndex) + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); + else if (index < _selectedIndex) + ++_selectedIndex; + if (index == 0 && objj_msgSend(self, "pullsDown")) + { + var items = objj_msgSend(_menu, "itemArray"); + objj_msgSend(items[0], "setHidden:", YES); + if (items.length > 0) + objj_msgSend(items[1], "setHidden:", NO); + } + var item = objj_msgSend(_menu, "itemArray")[index], + action = objj_msgSend(item, "action"); + if (!action || (action === sel_getUid("_popUpItemAction:"))) + { + objj_msgSend(item, "setTarget:", self); + objj_msgSend(item, "setAction:", sel_getUid("_popUpItemAction:")); + } +} +}), new objj_method(sel_getUid("menuDidChangeItem:"), function $CPPopUpButton__menuDidChangeItem_(self, _cmd, aNotification) +{ with(self) +{ + var index = objj_msgSend(objj_msgSend(aNotification, "userInfo"), "objectForKey:", "CPMenuItemIndex"); + if (objj_msgSend(self, "pullsDown") && index != 0) + return; + if (!objj_msgSend(self, "pullsDown") && index != _selectedIndex) + return; + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); +} +}), new objj_method(sel_getUid("menuDidRemoveItem:"), function $CPPopUpButton__menuDidRemoveItem_(self, _cmd, aNotification) +{ with(self) +{ + var numberOfItems = objj_msgSend(self, "numberOfItems"); + if (numberOfItems <= _selectedIndex) + objj_msgSend(self, "selectItemAtIndex:", numberOfItems - 1); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPPopUpButton__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (!objj_msgSend(self, "isEnabled")) + return; + objj_msgSend(self, "highlight:", YES); + var menu = objj_msgSend(self, "menu"), + theWindow = objj_msgSend(self, "window"), + menuWindow = objj_msgSend(_CPMenuWindow, "menuWindowWithMenu:font:", menu, objj_msgSend(self, "font")); + objj_msgSend(menuWindow, "setDelegate:", self); + objj_msgSend(menuWindow, "setBackgroundStyle:", _CPMenuWindowPopUpBackgroundStyle); + if (objj_msgSend(self, "pullsDown")) + var menuOrigin = objj_msgSend(theWindow, "convertBaseToBridge:", objj_msgSend(self, "convertPoint:toView:", CGPointMake(0.0, CGRectGetMaxY(objj_msgSend(self, "bounds"))), nil)); + else + { + var contentRect = objj_msgSend(self, "convertRect:toView:", objj_msgSend(self, "contentRectForBounds:", objj_msgSend(self, "bounds")), nil), + menuOrigin = objj_msgSend(theWindow, "convertBaseToBridge:", contentRect.origin), + menuItemRect = objj_msgSend(menuWindow, "rectForItemAtIndex:", _selectedIndex); + menuOrigin.x -= CGRectGetMinX(menuItemRect) + objj_msgSend(menuWindow, "overlapOffsetWidth") + objj_msgSend(objj_msgSend(objj_msgSend(menu, "itemAtIndex:", _selectedIndex), "_menuItemView"), "overlapOffsetWidth"); + menuOrigin.y -= CGRectGetMinY(menuItemRect) + (CGRectGetHeight(menuItemRect) - CGRectGetHeight(contentRect)) / 2.0; + } + objj_msgSend(menuWindow, "setFrameOrigin:", menuOrigin); + var menuMaxX = CGRectGetMaxX(objj_msgSend(menuWindow, "frame")), + buttonMaxX = objj_msgSend(theWindow, "convertBaseToBridge:", CGPointMake(CGRectGetMaxX(objj_msgSend(self, "convertRect:toView:", objj_msgSend(self, "bounds"), nil)), 0.0)).x; + if (menuMaxX < buttonMaxX) + objj_msgSend(menuWindow, "setMinWidth:", CGRectGetWidth(objj_msgSend(menuWindow, "frame")) + buttonMaxX - menuMaxX - (objj_msgSend(self, "pullsDown") ? 0.0 : VISIBLE_MARGIN)); + objj_msgSend(menuWindow, "orderFront:", self); + objj_msgSend(menuWindow, "beginTrackingWithEvent:sessionDelegate:didEndSelector:", anEvent, self, sel_getUid("menuWindowDidFinishTracking:highlightedItem:")); +} +}), new objj_method(sel_getUid("menuWindowDidFinishTracking:highlightedItem:"), function $CPPopUpButton__menuWindowDidFinishTracking_highlightedItem_(self, _cmd, aMenuWindow, aMenuItem) +{ with(self) +{ + objj_msgSend(_CPMenuWindow, "poolMenuWindow:", aMenuWindow); + objj_msgSend(self, "highlight:", NO); + var index = objj_msgSend(_menu, "indexOfItem:", aMenuItem); + if (index == CPNotFound) + return; + objj_msgSend(self, "selectItemAtIndex:", index); + objj_msgSend(CPApp, "sendAction:to:from:", objj_msgSend(aMenuItem, "action"), objj_msgSend(aMenuItem, "target"), aMenuItem); +} +}), new objj_method(sel_getUid("_popUpItemAction:"), function $CPPopUpButton___popUpItemAction_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeClass"), function $CPPopUpButton__themeClass(self, _cmd) +{ with(self) +{ + return "popup-button"; +} +})]); +} +var CPPopUpButtonMenuKey = "CPPopUpButtonMenuKey", + CPPopUpButtonSelectedIndexKey = "CPPopUpButtonSelectedIndexKey", + CPPopUpButtonPullsDownKey = "CPPopUpButtonPullsDownKey"; +{ +var the_class = objj_getClass("CPPopUpButton") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPPopUpButton\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPPopUpButton__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "initWithCoder:", aCoder); + if (self) + { + _selectedIndex = -1; + objj_msgSend(self, "setMenu:", objj_msgSend(aCoder, "decodeObjectForKey:", CPPopUpButtonMenuKey)); + objj_msgSend(self, "selectItemAtIndex:", objj_msgSend(aCoder, "decodeObjectForKey:", CPPopUpButtonSelectedIndexKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPPopUpButton__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _menu, CPPopUpButtonMenuKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _selectedIndex, CPPopUpButtonSelectedIndexKey); +} +})]); +} + +p;21;CPProgressIndicator.jI;19;AppKit/CGGeometry.jI;20;AppKit/CPImageView.jI;15;AppKit/CPView.jc;13151; +CPProgressIndicatorBarStyle = 0; +CPProgressIndicatorSpinningStyle = 1; +CPProgressIndicatorHUDBarStyle = 2; +var CPProgressIndicatorSpinningStyleColors = nil, + CPProgressIndicatorClassName = nil, + CPProgressIndicatorStyleIdentifiers = nil, + CPProgressIndicatorStyleSizes = nil; +{var the_class = objj_allocateClassPair(CPView, "CPProgressIndicator"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_minValue"), new objj_ivar("_maxValue"), new objj_ivar("_doubleValue"), new objj_ivar("_controlSize"), new objj_ivar("_isIndeterminate"), new objj_ivar("_style"), new objj_ivar("_isAnimating"), new objj_ivar("_isDisplayedWhenStoppedSet"), new objj_ivar("_isDisplayedWhenStopped"), new objj_ivar("_barView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPProgressIndicator__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _minValue = 0.0; + _maxValue = 100.0; + _doubleValue = 0.0; + _style = CPProgressIndicatorBarStyle; + _isDisplayedWhenStoppedSet = NO; + _controlSize = CPRegularControlSize; + objj_msgSend(self, "updateBackgroundColor"); + objj_msgSend(self, "drawBar"); + } + return self; +} +}), new objj_method(sel_getUid("setUsesThreadedAnimation:"), function $CPProgressIndicator__setUsesThreadedAnimation_(self, _cmd, aFlag) +{ with(self) +{ +} +}), new objj_method(sel_getUid("startAnimation:"), function $CPProgressIndicator__startAnimation_(self, _cmd, aSender) +{ with(self) +{ + _isAnimating = YES; + objj_msgSend(self, "_hideOrDisplay"); +} +}), new objj_method(sel_getUid("stopAnimation:"), function $CPProgressIndicator__stopAnimation_(self, _cmd, aSender) +{ with(self) +{ + _isAnimating = NO; + objj_msgSend(self, "_hideOrDisplay"); +} +}), new objj_method(sel_getUid("usesThreadedAnimation"), function $CPProgressIndicator__usesThreadedAnimation(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("incrementBy:"), function $CPProgressIndicator__incrementBy_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSend(self, "setDoubleValue:", _doubleValue + aValue); +} +}), new objj_method(sel_getUid("setDoubleValue:"), function $CPProgressIndicator__setDoubleValue_(self, _cmd, aValue) +{ with(self) +{ + _doubleValue = MIN(MAX(aValue, _minValue), _maxValue); + objj_msgSend(self, "drawBar"); +} +}), new objj_method(sel_getUid("doubleValue"), function $CPProgressIndicator__doubleValue(self, _cmd) +{ with(self) +{ + return _doubleValue; +} +}), new objj_method(sel_getUid("setMinValue:"), function $CPProgressIndicator__setMinValue_(self, _cmd, aValue) +{ with(self) +{ + _minValue = aValue; +} +}), new objj_method(sel_getUid("minValue"), function $CPProgressIndicator__minValue(self, _cmd) +{ with(self) +{ + return _minValue; +} +}), new objj_method(sel_getUid("setMaxValue:"), function $CPProgressIndicator__setMaxValue_(self, _cmd, aValue) +{ with(self) +{ + _maxValue = aValue; +} +}), new objj_method(sel_getUid("maxValue"), function $CPProgressIndicator__maxValue(self, _cmd) +{ with(self) +{ + return _maxValue; +} +}), new objj_method(sel_getUid("setControlSize:"), function $CPProgressIndicator__setControlSize_(self, _cmd, aControlSize) +{ with(self) +{ + if (_controlSize == aControlSize) + return; + _controlSize = aControlSize; + objj_msgSend(self, "updateBackgroundColor"); +} +}), new objj_method(sel_getUid("controlSize"), function $CPProgressIndicator__controlSize(self, _cmd) +{ with(self) +{ + return _controlSize; +} +}), new objj_method(sel_getUid("setControlTint:"), function $CPProgressIndicator__setControlTint_(self, _cmd, aControlTint) +{ with(self) +{ +} +}), new objj_method(sel_getUid("controlTint"), function $CPProgressIndicator__controlTint(self, _cmd) +{ with(self) +{ + return 0; +} +}), new objj_method(sel_getUid("setBezeled:"), function $CPProgressIndicator__setBezeled_(self, _cmd, isBezeled) +{ with(self) +{ +} +}), new objj_method(sel_getUid("isBezeled"), function $CPProgressIndicator__isBezeled(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("setIndeterminate:"), function $CPProgressIndicator__setIndeterminate_(self, _cmd, isIndeterminate) +{ with(self) +{ + if (_isIndeterminate == isIndeterminate) + return; + _isIndeterminate = isIndeterminate; + objj_msgSend(self, "updateBackgroundColor"); +} +}), new objj_method(sel_getUid("isIndeterminate"), function $CPProgressIndicator__isIndeterminate(self, _cmd) +{ with(self) +{ + return _isIndeterminate; +} +}), new objj_method(sel_getUid("setStyle:"), function $CPProgressIndicator__setStyle_(self, _cmd, aStyle) +{ with(self) +{ + if (_style == aStyle) + return; + _style = aStyle; + objj_msgSend(self, "updateBackgroundColor"); +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPProgressIndicator__sizeToFit(self, _cmd) +{ with(self) +{ + if (_style == CPProgressIndicatorSpinningStyle) + objj_msgSend(self, "setFrameSize:", objj_msgSend(objj_msgSend(CPProgressIndicatorSpinningStyleColors[_controlSize], "patternImage"), "size")); + else + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(objj_msgSend(self, "frame")), CPProgressIndicatorStyleSizes[ + CPProgressIndicatorClassName + "BezelBorder" + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorBarStyle] + + _CPControlIdentifierForControlSize(_controlSize)][0].height)); +} +}), new objj_method(sel_getUid("setDisplayedWhenStopped:"), function $CPProgressIndicator__setDisplayedWhenStopped_(self, _cmd, isDisplayedWhenStopped) +{ with(self) +{ + if (_isDisplayedWhenStoppedSet && _isDisplayedWhenStopped == isDisplayedWhenStopped) + return; + _isDisplayedWhenStoppedSet = YES; + _isDisplayedWhenStopped = isDisplayedWhenStopped; + objj_msgSend(self, "_hideOrDisplay"); +} +}), new objj_method(sel_getUid("isDisplayedWhenStopped"), function $CPProgressIndicator__isDisplayedWhenStopped(self, _cmd) +{ with(self) +{ + if (_isDisplayedWhenStoppedSet) + return _isDisplayedWhenStopped; + if (_style == CPProgressIndicatorBarStyle || _style == CPProgressIndicatorHUDBarStyle) + return YES; + return NO; +} +}), new objj_method(sel_getUid("_hideOrDisplay"), function $CPProgressIndicator___hideOrDisplay(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "setHidden:", !_isAnimating && !objj_msgSend(self, "isDisplayedWhenStopped")); +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPProgressIndicator__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setFrameSize:", aSize); + objj_msgSend(self, "drawBar"); +} +}), new objj_method(sel_getUid("drawBar"), function $CPProgressIndicator__drawBar(self, _cmd) +{ with(self) +{ + if (_style == CPProgressIndicatorSpinningStyle) + return; + if (!_barView) + { + _barView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(2.0, 2.0, 0.0, 9.0)); + objj_msgSend(_barView, "setBackgroundColor:", objj_msgSend(CPColor, "redColor")); + objj_msgSend(self, "addSubview:", _barView); + } + objj_msgSend(_barView, "setBackgroundColor:", _CPControlColorWithPatternImage( + CPProgressIndicatorStyleSizes, + CPProgressIndicatorClassName, + "Bar", + CPProgressIndicatorStyleIdentifiers[_style], + _CPControlIdentifierForControlSize(_controlSize))); + objj_msgSend(_barView, "setFrameSize:", CGSizeMake(CGRectGetWidth(objj_msgSend(self, "bounds")) * (_doubleValue - _minValue) / (_maxValue - _minValue) - 4.0, 9.0)); +} +}), new objj_method(sel_getUid("updateBackgroundColor"), function $CPProgressIndicator__updateBackgroundColor(self, _cmd) +{ with(self) +{ + if (YES) + { + if (_style == CPProgressIndicatorSpinningStyle) + { + objj_msgSend(_barView, "removeFromSuperview"); + _barView = nil; + objj_msgSend(self, "setBackgroundColor:", CPProgressIndicatorSpinningStyleColors[_controlSize]); + } + else + { + objj_msgSend(self, "setBackgroundColor:", _CPControlThreePartImagePattern( + NO, + CPProgressIndicatorStyleSizes, + CPProgressIndicatorClassName, + "BezelBorder", + CPProgressIndicatorStyleIdentifiers[_style], + _CPControlIdentifierForControlSize(_controlSize))); + objj_msgSend(self, "drawBar"); + } + } + else + objj_msgSend(self, "setBackgroundColor:", nil); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPProgressIndicator__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPProgressIndicator, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + CPProgressIndicatorSpinningStyleColors = []; + CPProgressIndicatorSpinningStyleColors[CPMiniControlSize] = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", + objj_msgSend(bundle, "pathForResource:", "CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"), CGSizeMake(64.0, 64.0))); + CPProgressIndicatorSpinningStyleColors[CPSmallControlSize] = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", + objj_msgSend(bundle, "pathForResource:", "CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"), CGSizeMake(64.0, 64.0))); + CPProgressIndicatorSpinningStyleColors[CPRegularControlSize] = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", + objj_msgSend(bundle, "pathForResource:", "CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"), CGSizeMake(64.0, 64.0))); + CPProgressIndicatorBezelBorderViewPool = []; + var start = CPProgressIndicatorBarStyle, + end = CPProgressIndicatorHUDBarStyle; + for (; start <= end; ++start) + { + CPProgressIndicatorBezelBorderViewPool[start] = []; + CPProgressIndicatorBezelBorderViewPool[start][CPMiniControlSize] = []; + CPProgressIndicatorBezelBorderViewPool[start][CPSmallControlSize] = []; + CPProgressIndicatorBezelBorderViewPool[start][CPRegularControlSize] = []; + } + CPProgressIndicatorClassName = objj_msgSend(self, "className"); + CPProgressIndicatorStyleIdentifiers = []; + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorBarStyle] = "Bar"; + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorSpinningStyle] = "Spinny"; + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorHUDBarStyle] = "HUDBar"; + var regularIdentifier = _CPControlIdentifierForControlSize(CPRegularControlSize), + smallIdentifier = _CPControlIdentifierForControlSize(CPSmallControlSize), + miniIdentifier = _CPControlIdentifierForControlSize(CPMiniControlSize); + CPProgressIndicatorStyleSizes = []; + var prefix = CPProgressIndicatorClassName + "BezelBorder" + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorBarStyle]; + CPProgressIndicatorStyleSizes[prefix + regularIdentifier] = [{ width:3.0, height:15.0 }, { width:1.0, height:15.0 }, { width:3.0, height:15.0 }]; + CPProgressIndicatorStyleSizes[prefix + smallIdentifier] = [{ width:3.0, height:15.0 }, { width:1.0, height:15.0 }, { width:3.0, height:15.0 }]; + CPProgressIndicatorStyleSizes[prefix + miniIdentifier] = [{ width:3.0, height:15.0 }, { width:1.0, height:15.0 }, { width:3.0, height:15.0 }]; + prefix = CPProgressIndicatorClassName + "Bar" + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorBarStyle]; + CPProgressIndicatorStyleSizes[prefix + regularIdentifier] = { width:1.0, height:9.0 }; + CPProgressIndicatorStyleSizes[prefix + smallIdentifier] = { width:1.0, height:9.0 }; + CPProgressIndicatorStyleSizes[prefix + miniIdentifier] = { width:1.0, height:9.0 }; + prefix = CPProgressIndicatorClassName + "BezelBorder" + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorHUDBarStyle]; + CPProgressIndicatorStyleSizes[prefix + regularIdentifier] = [{ width:3.0, height:15.0 }, { width:1.0, height:15.0 }, { width:3.0, height:15.0 }]; + CPProgressIndicatorStyleSizes[prefix + smallIdentifier] = [{ width:3.0, height:15.0 }, { width:1.0, height:15.0 }, { width:3.0, height:15.0 }]; + CPProgressIndicatorStyleSizes[prefix + miniIdentifier] = [{ width:3.0, height:15.0 }, { width:1.0, height:15.0 }, { width:3.0, height:15.0 }]; + prefix = CPProgressIndicatorClassName + "Bar" + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorHUDBarStyle]; + CPProgressIndicatorStyleSizes[prefix + regularIdentifier] = { width:1.0, height:9.0 }; + CPProgressIndicatorStyleSizes[prefix + smallIdentifier] = { width:1.0, height:9.0 }; + CPProgressIndicatorStyleSizes[prefix + miniIdentifier] = { width:1.0, height:9.0 }; +} +})]); +} + +p;9;CPRadio.jI;21;Foundation/CPObject.jI;18;Foundation/CPSet.ji;10;CPButton.jc;6807; +{var the_class = objj_allocateClassPair(CPButton, "CPRadio"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_radioGroup")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:radioGroup:"), function $CPRadio__initWithFrame_radioGroup_(self, _cmd, aFrame, aRadioGroup) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "initWithFrame:", aFrame); + if (self) + { + objj_msgSend(self, "setRadioGroup:", aRadioGroup || objj_msgSend(CPRadioGroup, "new")); + objj_msgSend(self, "setHighlightsBy:", CPContentsCellMask); + objj_msgSend(self, "setShowsStateBy:", CPContentsCellMask); + objj_msgSend(self, "setImagePosition:", CPImageLeft); + objj_msgSend(self, "setAlignment:", CPLeftTextAlignment); + objj_msgSend(self, "setBordered:", YES); + } + return self; +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPRadio__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + return objj_msgSend(self, "initWithFrame:radioGroup:", aFrame, nil); +} +}), new objj_method(sel_getUid("nextState"), function $CPRadio__nextState(self, _cmd) +{ with(self) +{ + return CPOnState; +} +}), new objj_method(sel_getUid("setRadioGroup:"), function $CPRadio__setRadioGroup_(self, _cmd, aRadioGroup) +{ with(self) +{ + if (_radioGroup === aRadioGroup) + return; + objj_msgSend(_radioGroup, "_removeRadio:", self); + _radioGroup = aRadioGroup; + objj_msgSend(_radioGroup, "_addRadio:", self); +} +}), new objj_method(sel_getUid("radioGroup"), function $CPRadio__radioGroup(self, _cmd) +{ with(self) +{ + return _radioGroup; +} +}), new objj_method(sel_getUid("setObjectValue:"), function $CPRadio__setObjectValue_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "setObjectValue:", aValue); + if (objj_msgSend(self, "state") === CPOnState) + objj_msgSend(_radioGroup, "_setSelectedRadio:", self); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("radioWithTitle:theme:"), function $CPRadio__radioWithTitle_theme_(self, _cmd, aTitle, aTheme) +{ with(self) +{ + return objj_msgSend(self, "buttonWithTitle:theme:", aTitle, aTheme); +} +}), new objj_method(sel_getUid("radioWithTitle:"), function $CPRadio__radioWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + return objj_msgSend(self, "buttonWithTitle:", aTitle); +} +}), new objj_method(sel_getUid("standardButtonWithTitle:"), function $CPRadio__standardButtonWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + var button = objj_msgSend(objj_msgSend(CPRadio, "alloc"), "init"); + objj_msgSend(button, "setTitle:", aTitle); + return button; +} +}), new objj_method(sel_getUid("themeClass"), function $CPRadio__themeClass(self, _cmd) +{ with(self) +{ + return "radio"; +} +})]); +} +var CPRadioRadioGroupKey = "CPRadioRadioGroupKey"; +{ +var the_class = objj_getClass("CPRadio") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPRadio\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPRadio__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "initWithCoder:", aCoder); + if (self) + _radioGroup = objj_msgSend(aCoder, "decodeObjectForKey:", CPRadioRadioGroupKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPRadio__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _radioGroup, CPRadioRadioGroupKey); +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPRadioGroup"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_radios"), new objj_ivar("_selectedRadio")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPRadioGroup__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _radios = objj_msgSend(CPSet, "set"); + _selectedRadio = nil; + } + return self; +} +}), new objj_method(sel_getUid("_addRadio:"), function $CPRadioGroup___addRadio_(self, _cmd, aRadio) +{ with(self) +{ + objj_msgSend(_radios, "addObject:", aRadio); + if (objj_msgSend(aRadio, "state") === CPOnState) + objj_msgSend(self, "_setSelectedRadio:", aRadio); +} +}), new objj_method(sel_getUid("_removeRadio:"), function $CPRadioGroup___removeRadio_(self, _cmd, aRadio) +{ with(self) +{ + if (_selectedRadio === aRadio) + _selectedRadio = nil; + objj_msgSend(_radios, "removeObject:", aRadio); +} +}), new objj_method(sel_getUid("_setSelectedRadio:"), function $CPRadioGroup___setSelectedRadio_(self, _cmd, aRadio) +{ with(self) +{ + if (_selectedRadio === aRadio) + return; + objj_msgSend(_selectedRadio, "setState:", CPOffState); + _selectedRadio = aRadio; +} +}), new objj_method(sel_getUid("selectedRadio"), function $CPRadioGroup__selectedRadio(self, _cmd) +{ with(self) +{ + return _selectedRadio; +} +}), new objj_method(sel_getUid("radios"), function $CPRadioGroup__radios(self, _cmd) +{ with(self) +{ + return objj_msgSend(_radios, "allObjects"); +} +})]); +} +var CPRadioGroupRadiosKey = "CPRadioGroupRadiosKey", + CPRadioGroupSelectedRadioKey = "CPRadioGroupSelectedRadioKey"; +{ +var the_class = objj_getClass("CPRadioGroup") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPRadioGroup\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPRadioGroup__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _radios = objj_msgSend(aCoder, "decodeObjectForKey:", CPRadioGroupRadiosKey); + _selectedRadio = objj_msgSend(aCoder, "decodeObjectForKey:", CPRadioGroupSelectedRadioKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPRadioGroup__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _radios, CPRadioGroupRadiosKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _selectedRadio, CPRadioGroupSelectedRadioKey); +} +})]); +} + +p;13;CPResponder.jI;21;Foundation/CPObject.jc;8086; +CPDeleteKeyCode = 8; +CPTabKeyCode = 9; +CPReturnKeyCode = 13; +CPEscapeKeyCode = 27; +CPLeftArrowKeyCode = 37; +CPUpArrowKeyCode = 38; +CPRightArrowKeyCode = 39; +CPDownArrowKeyCode = 40; +{var the_class = objj_allocateClassPair(CPObject, "CPResponder"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_menu"), new objj_ivar("_nextResponder")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("acceptsFirstResponder"), function $CPResponder__acceptsFirstResponder(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("becomeFirstResponder"), function $CPResponder__becomeFirstResponder(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("resignFirstResponder"), function $CPResponder__resignFirstResponder(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("setNextResponder:"), function $CPResponder__setNextResponder_(self, _cmd, aResponder) +{ with(self) +{ + _nextResponder = aResponder; +} +}), new objj_method(sel_getUid("nextResponder"), function $CPResponder__nextResponder(self, _cmd) +{ with(self) +{ + return _nextResponder; +} +}), new objj_method(sel_getUid("interpretKeyEvents:"), function $CPResponder__interpretKeyEvents_(self, _cmd, events) +{ with(self) +{ + var event, + index = 0; + while(event = events[index++]) + { + switch(objj_msgSend(event, "keyCode")) + { + case CPLeftArrowKeyCode: objj_msgSend(self, "moveBackward:", self); + break; + case CPRightArrowKeyCode: objj_msgSend(self, "moveForward:", self); + break; + case CPUpArrowKeyCode: objj_msgSend(self, "moveUp:", self); + break; + case CPDownArrowKeyCode: objj_msgSend(self, "moveDown:", self); + break; + case CPDeleteKeyCode: objj_msgSend(self, "deleteBackward:", self); + break; + case CPReturnKeyCode: + case 3: objj_msgSend(self, "insertLineBreak:", self); + break; + case CPEscapeKeyCode: objj_msgSend(self, "cancel:", self); + break; + case CPTabKeyCode: var shift = objj_msgSend(event, "modifierFlags") & CPShiftKeyMask; + if (!shift) + objj_msgSend(self, "insertTab:", self); + else + objj_msgSend(self, "insertBackTab:", self); + break; + default: objj_msgSend(self, "insertText:", objj_msgSend(event, "characters")); + } + } +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPResponder__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("mouseDragged:"), function $CPResponder__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("mouseUp:"), function $CPResponder__mouseUp_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("mouseMoved:"), function $CPResponder__mouseMoved_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("mouseEntered:"), function $CPResponder__mouseEntered_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("mouseExited:"), function $CPResponder__mouseExited_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("scrollWheel:"), function $CPResponder__scrollWheel_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("keyDown:"), function $CPResponder__keyDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("keyUp:"), function $CPResponder__keyUp_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("performKeyEquivalent:"), function $CPResponder__performKeyEquivalent_(self, _cmd, anEvent) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("deleteBackward:"), function $CPResponder__deleteBackward_(self, _cmd, aSender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("insertLineBreak:"), function $CPResponder__insertLineBreak_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "insertNewline:", aSender); +} +}), new objj_method(sel_getUid("insertNewline:"), function $CPResponder__insertNewline_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "insertNewline:", aSender); +} +}), new objj_method(sel_getUid("cancel:"), function $CPResponder__cancel_(self, _cmd, sender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("insertTab:"), function $CPResponder__insertTab_(self, _cmd, sender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("insertBackTab:"), function $CPResponder__insertBackTab_(self, _cmd, sender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("insertText:"), function $CPResponder__insertText_(self, _cmd, aString) +{ with(self) +{ +} +}), new objj_method(sel_getUid("doCommandBySelector:"), function $CPResponder__doCommandBySelector_(self, _cmd, aSelector) +{ with(self) +{ + if(objj_msgSend(self, "respondsToSelector:", aSelector)) + objj_msgSend(self, "performSelector:", aSelector); + else + objj_msgSend(_nextResponder, "doCommandBySelector:", aSelector); +} +}), new objj_method(sel_getUid("tryToPerform:with:"), function $CPResponder__tryToPerform_with_(self, _cmd, aSelector, anObject) +{ with(self) +{ + if(objj_msgSend(self, "respondsToSelector:", aSelector)) + { + objj_msgSend(self, "performSelector:withObject:", aSelector, anObject); + return YES; + } + return objj_msgSend(_nextResponder, "tryToPerform:with:", aSelector, anObject); +} +}), new objj_method(sel_getUid("setMenu:"), function $CPResponder__setMenu_(self, _cmd, aMenu) +{ with(self) +{ + _menu = aMenu; +} +}), new objj_method(sel_getUid("menu"), function $CPResponder__menu(self, _cmd) +{ with(self) +{ + return _menu; +} +}), new objj_method(sel_getUid("undoManager"), function $CPResponder__undoManager(self, _cmd) +{ with(self) +{ + return objj_msgSend(_nextResponder, "performSelector:", _cmd); +} +}), new objj_method(sel_getUid("noResponderFor:"), function $CPResponder__noResponderFor_(self, _cmd, anEventSelector) +{ with(self) +{ +} +})]); +} +var CPResponderNextResponderKey = "CPResponderNextResponderKey"; +{ +var the_class = objj_getClass("CPResponder") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPResponder\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPResponder__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _nextResponder = objj_msgSend(aCoder, "decodeObjectForKey:", CPResponderNextResponderKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPResponder__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (_nextResponder !== nil) + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _nextResponder, CPResponderNextResponderKey); +} +})]); +} + +p;13;CPSavePanel.jI;16;AppKit/CPPanel.jc;1455; + + +{var the_class = objj_allocateClassPair(CPPanel, "CPSavePanel"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_savePanel")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPSavePanel__init(self, _cmd) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPPanel") }, "init")) + _savePanel = window.application.createSavePanel(); + + return self; +} +}), new objj_method(sel_getUid("runModal"), function $CPSavePanel__runModal(self, _cmd) +{ with(self) +{ + + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", nil); + + return _savePanel.runModal(); +} +}), new objj_method(sel_getUid("runModalForDirectory:"), function $CPSavePanel__runModalForDirectory_(self, _cmd, anAbsoluteDirectoryPath) +{ with(self) +{ + + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", nil); + + return _savePanel.runModal(anAbsoluteDirectoryPath); +} +}), new objj_method(sel_getUid("filename"), function $CPSavePanel__filename(self, _cmd) +{ with(self) +{ + return _savePanel.filename; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("savePanel"), function $CPSavePanel__savePanel(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPSavePanel, "alloc"), "init"); +} +})]); +} + +p;12;CPScroller.ji;11;CPControl.jc;22090; +CPScrollerNoPart = 0; +CPScrollerDecrementPage = 1; +CPScrollerKnob = 2; +CPScrollerIncrementPage = 3; +CPScrollerDecrementLine = 4; +CPScrollerIncrementLine = 5; +CPScrollerKnobSlot = 6; +CPScrollerIncrementArrow = 0; +CPScrollerDecrementArrow = 1; +CPNoScrollerParts = 0; +CPOnlyScrollerArrows = 1; +CPAllScrollerParts = 2; +var PARTS_ARRANGEMENT = [CPScrollerKnobSlot, CPScrollerDecrementLine, CPScrollerIncrementLine, CPScrollerKnob], + NAMES_FOR_PARTS = {}, + PARTS_FOR_NAMES = {}; +NAMES_FOR_PARTS[CPScrollerDecrementLine] = "decrement-line"; +NAMES_FOR_PARTS[CPScrollerIncrementLine] = "increment-line"; +NAMES_FOR_PARTS[CPScrollerKnobSlot] = "knob-slot"; +NAMES_FOR_PARTS[CPScrollerKnob] = "knob"; +{var the_class = objj_allocateClassPair(CPControl, "CPScroller"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_controlSize"), new objj_ivar("_usableParts"), new objj_ivar("_partRects"), new objj_ivar("_isVertical"), new objj_ivar("_knobProportion"), new objj_ivar("_hitPart"), new objj_ivar("_trackingPart"), new objj_ivar("_trackingFloatValue"), new objj_ivar("_trackingStartPoint")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("isVertical"), function $CPScroller__isVertical(self, _cmd) +{ with(self) +{ +return _isVertical; +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPScroller__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + _controlSize = CPRegularControlSize; + _partRects = []; + objj_msgSend(self, "setFloatValue:knobProportion:", 0.0, 1.0); + _hitPart = CPScrollerNoPart; + objj_msgSend(self, "_recalculateIsVertical"); + } + return self; +} +}), new objj_method(sel_getUid("setControlSize:"), function $CPScroller__setControlSize_(self, _cmd, aControlSize) +{ with(self) +{ + if (_controlSize == aControlSize) + return; + _controlSize = aControlSize; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("controlSize"), function $CPScroller__controlSize(self, _cmd) +{ with(self) +{ + return _controlSize; +} +}), new objj_method(sel_getUid("setFloatValue:"), function $CPScroller__setFloatValue_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setFloatValue:", MIN(1.0, MAX(0.0, aValue))); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("setFloatValue:knobProportion:"), function $CPScroller__setFloatValue_knobProportion_(self, _cmd, aValue, aProportion) +{ with(self) +{ + _knobProportion = MIN(1.0, MAX(0.0001, aProportion)); + objj_msgSend(self, "setFloatValue:", aValue); +} +}), new objj_method(sel_getUid("knobProportion"), function $CPScroller__knobProportion(self, _cmd) +{ with(self) +{ + return _knobProportion; +} +}), new objj_method(sel_getUid("currentValueForThemeAttribute:"), function $CPScroller__currentValueForThemeAttribute_(self, _cmd, anAttributeName) +{ with(self) +{ + var themeState = _themeState; + if (NAMES_FOR_PARTS[_hitPart] + "-color" !== anAttributeName) + themeState &= ~CPThemeStateHighlighted; + return objj_msgSend(self, "valueForThemeAttribute:inState:", anAttributeName, themeState); +} +}), new objj_method(sel_getUid("rectForPart:"), function $CPScroller__rectForPart_(self, _cmd, aPart) +{ with(self) +{ + if (aPart == CPScrollerNoPart) + return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + return _partRects[aPart]; +} +}), new objj_method(sel_getUid("testPart:"), function $CPScroller__testPart_(self, _cmd, aPoint) +{ with(self) +{ + aPoint = objj_msgSend(self, "convertPoint:fromView:", aPoint, nil); + if (CGRectContainsPoint(objj_msgSend(self, "rectForPart:", CPScrollerKnob), aPoint)) + return CPScrollerKnob; + if (CGRectContainsPoint(objj_msgSend(self, "rectForPart:", CPScrollerDecrementPage), aPoint)) + return CPScrollerDecrementPage; + if (CGRectContainsPoint(objj_msgSend(self, "rectForPart:", CPScrollerIncrementPage), aPoint)) + return CPScrollerIncrementPage; + if (CGRectContainsPoint(objj_msgSend(self, "rectForPart:", CPScrollerDecrementLine), aPoint)) + return CPScrollerDecrementLine; + if (CGRectContainsPoint(objj_msgSend(self, "rectForPart:", CPScrollerIncrementLine), aPoint)) + return CPScrollerIncrementLine; + if (CGRectContainsPoint(objj_msgSend(self, "rectForPart:", CPScrollerKnobSlot), aPoint)) + return CPScrollerKnobSlot; + return CPScrollerNoPart; +} +}), new objj_method(sel_getUid("checkSpaceForParts"), function $CPScroller__checkSpaceForParts(self, _cmd) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"); + if (_knobProportion === 1.0) + { + _usableParts = CPNoScrollerParts; + _partRects[CPScrollerDecrementPage] = { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + _partRects[CPScrollerKnob] = { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + _partRects[CPScrollerIncrementPage] = { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + _partRects[CPScrollerDecrementLine] = { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + _partRects[CPScrollerIncrementLine] = { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + _partRects[CPScrollerKnobSlot] = { origin: { x:bounds.origin.x, y:bounds.origin.y }, size: { width:bounds.size.width, height:bounds.size.height } }; + return; + } + _usableParts = CPAllScrollerParts; + var knobInset = objj_msgSend(self, "currentValueForThemeAttribute:", "knob-inset"), + trackInset = objj_msgSend(self, "currentValueForThemeAttribute:", "track-inset"), + width = (bounds.size.width), + height = (bounds.size.height); + if (objj_msgSend(self, "isVertical")) + { + var decrementLineSize = objj_msgSend(self, "currentValueForThemeAttribute:", "decrement-line-size"), + incrementLineSize = objj_msgSend(self, "currentValueForThemeAttribute:", "increment-line-size"), + effectiveDecrementLineHeight = decrementLineSize.height + trackInset.top, + effectiveIncrementLineHeight = incrementLineSize.height + trackInset.bottom, + slotHeight = height - effectiveDecrementLineHeight - effectiveIncrementLineHeight, + minimumKnobLength = objj_msgSend(self, "currentValueForThemeAttribute:", "minimum-knob-length"), + knobWidth = width - knobInset.left - knobInset.right, + knobHeight = MAX(minimumKnobLength, (slotHeight * _knobProportion)), + knobLocation = effectiveDecrementLineHeight + (slotHeight - knobHeight) * objj_msgSend(self, "floatValue"); + _partRects[CPScrollerDecrementPage] = { origin: { x:0.0, y:effectiveDecrementLineHeight }, size: { width:width, height:knobLocation - effectiveDecrementLineHeight } }; + _partRects[CPScrollerKnob] = { origin: { x:knobInset.left, y:knobLocation }, size: { width:knobWidth, height:knobHeight } }; + _partRects[CPScrollerIncrementPage] = { origin: { x:0.0, y:knobLocation + knobHeight }, size: { width:width, height:height - (knobLocation + knobHeight) - effectiveIncrementLineHeight } }; + _partRects[CPScrollerKnobSlot] = { origin: { x:trackInset.left, y:effectiveDecrementLineHeight }, size: { width:width - trackInset.left - trackInset.right, height:slotHeight } }; + _partRects[CPScrollerDecrementLine] = { origin: { x:0.0, y:0.0 }, size: { width:decrementLineSize.width, height:decrementLineSize.height } }; + _partRects[CPScrollerIncrementLine] = { origin: { x:0.0, y:height - incrementLineSize.height }, size: { width:incrementLineSize.width, height:incrementLineSize.height } }; + } + else + { + var decrementLineSize = objj_msgSend(self, "currentValueForThemeAttribute:", "decrement-line-size"), + incrementLineSize = objj_msgSend(self, "currentValueForThemeAttribute:", "increment-line-size"), + effectiveDecrementLineWidth = decrementLineSize.width + trackInset.left, + effectiveIncrementLineWidth = incrementLineSize.width + trackInset.right; + slotWidth = width - effectiveDecrementLineWidth - effectiveIncrementLineWidth, + minimumKnobLength = objj_msgSend(self, "currentValueForThemeAttribute:", "minimum-knob-length"), + knobWidth = MAX(minimumKnobLength, (slotWidth * _knobProportion)), + knobHeight = height - knobInset.top - knobInset.bottom, + knobLocation = effectiveDecrementLineWidth + (slotWidth - knobWidth) * objj_msgSend(self, "floatValue"); + _partRects[CPScrollerDecrementPage] = { origin: { x:effectiveDecrementLineWidth, y:0.0 }, size: { width:knobLocation - effectiveDecrementLineWidth, height:height } }; + _partRects[CPScrollerKnob] = { origin: { x:knobLocation, y:knobInset.top }, size: { width:knobWidth, height:knobHeight } }; + _partRects[CPScrollerIncrementPage] = { origin: { x:knobLocation + knobWidth, y:0.0 }, size: { width:width - (knobLocation + knobWidth) - effectiveIncrementLineWidth, height:height } }; + _partRects[CPScrollerKnobSlot] = { origin: { x:effectiveDecrementLineWidth, y:trackInset.top }, size: { width:slotWidth, height:height - trackInset.top - trackInset.bottom } }; + _partRects[CPScrollerDecrementLine] = { origin: { x:0.0, y:0.0 }, size: { width:decrementLineSize.width, height:decrementLineSize.height } }; + _partRects[CPScrollerIncrementLine] = { origin: { x:width - incrementLineSize.width, y:0.0 }, size: { width:incrementLineSize.width, height:incrementLineSize.height } }; + } +} +}), new objj_method(sel_getUid("usableParts"), function $CPScroller__usableParts(self, _cmd) +{ with(self) +{ + return _usableParts; +} +}), new objj_method(sel_getUid("drawArrow:highlight:"), function $CPScroller__drawArrow_highlight_(self, _cmd, anArrow, shouldHighlight) +{ with(self) +{ +} +}), new objj_method(sel_getUid("drawKnob"), function $CPScroller__drawKnob(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("drawKnobSlot"), function $CPScroller__drawKnobSlot(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("createViewForPart:"), function $CPScroller__createViewForPart_(self, _cmd, aPart) +{ with(self) +{ + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + objj_msgSend(view, "setHitTests:", NO); + return view; +} +}), new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPScroller__rectForEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + return _partRects[aName]; +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPScroller__createEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + objj_msgSend(view, "setHitTests:", NO); + return view; +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPScroller__layoutSubviews(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "checkSpaceForParts"); + var index = 0, + count = PARTS_ARRANGEMENT.length; + for (; index < count; ++index) + { + var part = PARTS_ARRANGEMENT[index]; + if (index === 0) + view = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", part, CPWindowBelow, PARTS_ARRANGEMENT[index + 1]); + else + view = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", part, CPWindowAbove, PARTS_ARRANGEMENT[index - 1]); + if (view) + objj_msgSend(view, "setBackgroundColor:", objj_msgSend(self, "currentValueForThemeAttribute:", NAMES_FOR_PARTS[part] + "-color")); + } +} +}), new objj_method(sel_getUid("drawParts"), function $CPScroller__drawParts(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "drawKnobSlot"); + objj_msgSend(self, "drawKnob"); + objj_msgSend(self, "drawArrow:highlight:", CPScrollerDecrementArrow, NO); + objj_msgSend(self, "drawArrow:highlight:", CPScrollerIncrementArrow, NO); +} +}), new objj_method(sel_getUid("hitPart"), function $CPScroller__hitPart(self, _cmd) +{ with(self) +{ + return _hitPart; +} +}), new objj_method(sel_getUid("trackKnob:"), function $CPScroller__trackKnob_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"); + if (type === CPLeftMouseUp) + { + _hitPart = CPScrollerNoPart; + return; + } + if (type === CPLeftMouseDown) + { + _trackingFloatValue = objj_msgSend(self, "floatValue"); + _trackingStartPoint = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + } + else if (type === CPLeftMouseDragged) + { + var knobRect = objj_msgSend(self, "rectForPart:", CPScrollerKnob), + knobSlotRect = objj_msgSend(self, "rectForPart:", CPScrollerKnobSlot), + remainder = !objj_msgSend(self, "isVertical") ? ((knobSlotRect.size.width) - (knobRect.size.width)) : ((knobSlotRect.size.height) - (knobRect.size.height)); + if (remainder <= 0) + objj_msgSend(self, "setFloatValue:", 0.0); + else + { + var location = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + delta = !objj_msgSend(self, "isVertical") ? location.x - _trackingStartPoint.x : location.y - _trackingStartPoint.y; + objj_msgSend(self, "setFloatValue:", _trackingFloatValue + delta / remainder); + } + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackKnob:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); +} +}), new objj_method(sel_getUid("trackScrollButtons:"), function $CPScroller__trackScrollButtons_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"); + if (type === CPLeftMouseUp) + { + objj_msgSend(self, "highlight:", NO); + objj_msgSend(CPEvent, "stopPeriodicEvents"); + _hitPart = CPScrollerNoPart; + return; + } + if (type === CPLeftMouseDown) + { + _trackingPart = objj_msgSend(self, "hitPart"); + _trackingStartPoint = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + if (objj_msgSend(anEvent, "modifierFlags") & CPAlternateKeyMask) + { + if (_trackingPart == CPScrollerDecrementLine) + _hitPart = CPScrollerDecrementPage; + else if (_trackingPart == CPScrollerIncrementLine) + _hitPart = CPScrollerIncrementPage; + else if (_trackingPart == CPScrollerDecrementPage || _trackingPart == CPScrollerIncrementPage) + { + var knobRect = objj_msgSend(self, "rectForPart:", CPScrollerKnob), + knobWidth = !objj_msgSend(self, "isVertical") ? (knobRect.size.width) : (knobRect.size.height), + knobSlotRect = objj_msgSend(self, "rectForPart:", CPScrollerKnobSlot), + remainder = (!objj_msgSend(self, "isVertical") ? (knobSlotRect.size.width) : (knobSlotRect.size.height)) - knobWidth; + objj_msgSend(self, "setFloatValue:", ((!objj_msgSend(self, "isVertical") ? _trackingStartPoint.x - (knobSlotRect.origin.x) : _trackingStartPoint.y - (knobSlotRect.origin.y)) - knobWidth / 2.0) / remainder); + _hitPart = CPScrollerKnob; + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); + return objj_msgSend(self, "trackKnob:", anEvent); + } + } + objj_msgSend(self, "highlight:", YES); + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); + objj_msgSend(CPEvent, "startPeriodicEventsAfterDelay:withPeriod:", 0.5, 0.04); + } + else if (type === CPLeftMouseDragged) + { + _trackingStartPoint = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + if (_trackingPart == CPScrollerDecrementPage || _trackingPart == CPScrollerIncrementPage) + { + var hitPart = objj_msgSend(self, "testPart:", objj_msgSend(anEvent, "locationInWindow")); + if (hitPart == CPScrollerDecrementPage || hitPart == CPScrollerIncrementPage) + { + _trackingPart = hitPart; + _hitPart = hitPart; + } + } + objj_msgSend(self, "highlight:", CGRectContainsPoint(objj_msgSend(self, "rectForPart:", _trackingPart), _trackingStartPoint)); + } + else if (type == CPPeriodic && CGRectContainsPoint(objj_msgSend(self, "rectForPart:", _trackingPart), _trackingStartPoint)) + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackScrollButtons:"), CPPeriodicMask | CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("_recalculateIsVertical"), function $CPScroller___recalculateIsVertical(self, _cmd) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + width = (bounds.size.width), + height = (bounds.size.height); + _isVertical = width < height ? 1 : (width > height ? 0 : -1); + if (_isVertical === 1) + objj_msgSend(self, "setThemeState:", CPThemeStateVertical); + else if (_isVertical === 0) + objj_msgSend(self, "unsetThemeState:", CPThemeStateVertical); +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPScroller__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setFrameSize:", aSize); + objj_msgSend(self, "_recalculateIsVertical"); + objj_msgSend(self, "checkSpaceForParts"); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPScroller__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (!objj_msgSend(self, "isEnabled")) + return; + _hitPart = objj_msgSend(self, "testPart:", objj_msgSend(anEvent, "locationInWindow")); + switch (_hitPart) + { + case CPScrollerKnob: return objj_msgSend(self, "trackKnob:", anEvent); + case CPScrollerDecrementLine: + case CPScrollerIncrementLine: + case CPScrollerDecrementPage: + case CPScrollerIncrementPage: return objj_msgSend(self, "trackScrollButtons:", anEvent); + } +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeClass"), function $CPScroller__themeClass(self, _cmd) +{ with(self) +{ + return "scroller"; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPScroller__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [ nil, nil, nil, nil, + { width:0.0, height:0.0 }, { width:0.0, height:0.0 }, { top:(0), right:(0), bottom:(0), left:(0) }, { top:(0), right:(0), bottom:(0), left:(0) }, { width:0.0, height:0.0 }], [ "knob-slot-color", + "decrement-line-color", + "increment-line-color", + "knob-color", + "decrement-line-size", + "increment-line-size", + "track-inset", + "knob-inset", + "minimum-knob-length"]); +} +}), new objj_method(sel_getUid("scrollerWidth"), function $CPScroller__scrollerWidth(self, _cmd) +{ with(self) +{ + return 17.0; +} +}), new objj_method(sel_getUid("scrollerWidthForControlSize:"), function $CPScroller__scrollerWidthForControlSize_(self, _cmd, aControlSize) +{ with(self) +{ + return 17.0; +} +})]); +} +var CPScrollerControlSizeKey = "CPScrollerControlSize", + CPScrollerKnobProportionKey = "CPScrollerKnobProportion"; +{ +var the_class = objj_getClass("CPScroller") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPScroller\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPScroller__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder)) + { + _controlSize = CPRegularControlSize; + if (objj_msgSend(aCoder, "containsValueForKey:", CPScrollerControlSizeKey)) + _controlSize = objj_msgSend(aCoder, "decodeIntForKey:", CPScrollerControlSizeKey); + _knobProportion = 1.0; + if (objj_msgSend(aCoder, "containsValueForKey:", CPScrollerKnobProportionKey)) + _knobProportion = objj_msgSend(aCoder, "decodeFloatForKey:", CPScrollerKnobProportionKey); + _partRects = []; + _hitPart = CPScrollerNoPart; + objj_msgSend(self, "_recalculateIsVertical"); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPScroller__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeInt:forKey:", _controlSize, CPScrollerControlSizeKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _knobProportion, CPScrollerKnobProportionKey); +} +})]); +} + +p;14;CPScrollView.ji;8;CPView.ji;12;CPClipView.ji;12;CPScroller.jc;21410; +{var the_class = objj_allocateClassPair(CPView, "CPScrollView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_contentView"), new objj_ivar("_hasVerticalScroller"), new objj_ivar("_hasHorizontalScroller"), new objj_ivar("_autohidesScrollers"), new objj_ivar("_verticalScroller"), new objj_ivar("_horizontalScroller"), new objj_ivar("_recursionCount"), new objj_ivar("_verticalLineScroll"), new objj_ivar("_verticalPageScroll"), new objj_ivar("_horizontalLineScroll"), new objj_ivar("_horizontalPageScroll")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPScrollView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _verticalLineScroll = 10.0; + _verticalPageScroll = 10.0; + _horizontalLineScroll = 10.0; + _horizontalPageScroll = 10.0; + _contentView = objj_msgSend(objj_msgSend(CPClipView, "alloc"), "initWithFrame:", objj_msgSend(self, "bounds")); + objj_msgSend(self, "addSubview:", _contentView); + objj_msgSend(self, "setHasVerticalScroller:", YES); + objj_msgSend(self, "setHasHorizontalScroller:", YES); + } + return self; +} +}), new objj_method(sel_getUid("contentSize"), function $CPScrollView__contentSize(self, _cmd) +{ with(self) +{ + return objj_msgSend(_contentView, "frame").size; +} +}), new objj_method(sel_getUid("documentView"), function $CPScrollView__documentView(self, _cmd) +{ with(self) +{ + return objj_msgSend(_contentView, "documentView"); +} +}), new objj_method(sel_getUid("setContentView:"), function $CPScrollView__setContentView_(self, _cmd, aContentView) +{ with(self) +{ + if (!aContentView) + return; + var documentView = objj_msgSend(aContentView, "documentView"); + if (documentView) + objj_msgSend(documentView, "removeFromSuperview"); + objj_msgSend(_contentView, "removeFromSuperview"); + var size = objj_msgSend(self, "contentSize"); + _contentView = aContentView; + objj_msgSend(_contentView, "setFrame:", CGRectMake(0.0, 0.0, size.width, size.height)); + objj_msgSend(_contentView, "setDocumentView:", documentView); + objj_msgSend(self, "addSubview:", _contentView); +} +}), new objj_method(sel_getUid("contentView"), function $CPScrollView__contentView(self, _cmd) +{ with(self) +{ + return _contentView; +} +}), new objj_method(sel_getUid("setDocumentView:"), function $CPScrollView__setDocumentView_(self, _cmd, aView) +{ with(self) +{ + objj_msgSend(_contentView, "setDocumentView:", aView); + objj_msgSend(self, "reflectScrolledClipView:", _contentView); +} +}), new objj_method(sel_getUid("reflectScrolledClipView:"), function $CPScrollView__reflectScrolledClipView_(self, _cmd, aClipView) +{ with(self) +{ + if(_contentView !== aClipView) + return; + if (_recursionCount > 5) + return; + ++_recursionCount; + var documentView = objj_msgSend(self, "documentView"); + if (!documentView) + { + if (_autohidesScrollers) + { + objj_msgSend(_verticalScroller, "setHidden:", YES); + objj_msgSend(_horizontalScroller, "setHidden:", YES); + } + else + { + } + objj_msgSend(_contentView, "setFrame:", objj_msgSend(self, "bounds")); + --_recursionCount; + return; + } + var documentFrame = objj_msgSend(documentView, "frame"), + contentViewFrame = objj_msgSend(self, "bounds"), + scrollPoint = objj_msgSend(_contentView, "bounds").origin, + difference = { width:CPRectGetWidth(documentFrame) - CPRectGetWidth(contentViewFrame), height:CPRectGetHeight(documentFrame) - CPRectGetHeight(contentViewFrame) }, + shouldShowVerticalScroller = (!_autohidesScrollers || difference.height > 0.0) && _hasVerticalScroller, + shouldShowHorizontalScroller = (!_autohidesScrollers || difference.width > 0.0) && _hasHorizontalScroller, + wasShowingVerticalScroller = !objj_msgSend(_verticalScroller, "isHidden"), + wasShowingHorizontalScroller = !objj_msgSend(_horizontalScroller, "isHidden"), + verticalScrollerWidth = (objj_msgSend(_verticalScroller, "frame").size.width); + horizontalScrollerHeight = (objj_msgSend(_horizontalScroller, "frame").size.height); + if (_autohidesScrollers) + { + if (shouldShowVerticalScroller) + shouldShowHorizontalScroller = (!_autohidesScrollers || difference.width > -verticalScrollerWidth) && _hasHorizontalScroller; + if (shouldShowHorizontalScroller) + shouldShowVerticalScroller = (!_autohidesScrollers || difference.height > -horizontalScrollerHeight) && _hasVerticalScroller; + } + objj_msgSend(_verticalScroller, "setHidden:", !shouldShowVerticalScroller); + objj_msgSend(_verticalScroller, "setEnabled:", difference.height > 0.0); + objj_msgSend(_horizontalScroller, "setHidden:", !shouldShowHorizontalScroller); + objj_msgSend(_horizontalScroller, "setEnabled:", difference.width > 0.0); + if (shouldShowVerticalScroller) + { + var verticalScrollerHeight = CPRectGetHeight(contentViewFrame); + if (shouldShowHorizontalScroller) + verticalScrollerHeight -= horizontalScrollerHeight; + difference.width += verticalScrollerWidth; + contentViewFrame.size.width -= verticalScrollerWidth; + objj_msgSend(_verticalScroller, "setFloatValue:knobProportion:", (difference.height <= 0.0) ? 0.0 : scrollPoint.y / difference.height, CPRectGetHeight(contentViewFrame) / CPRectGetHeight(documentFrame)); + objj_msgSend(_verticalScroller, "setFrame:", CPRectMake(CPRectGetMaxX(contentViewFrame), 0.0, verticalScrollerWidth, verticalScrollerHeight)); + } + else if (wasShowingVerticalScroller) + objj_msgSend(_verticalScroller, "setFloatValue:knobProportion:", 0.0, 1.0); + if (shouldShowHorizontalScroller) + { + difference.height += horizontalScrollerHeight; + contentViewFrame.size.height -= horizontalScrollerHeight; + objj_msgSend(_horizontalScroller, "setFloatValue:knobProportion:", (difference.width <= 0.0) ? 0.0 : scrollPoint.x / difference.width, CPRectGetWidth(contentViewFrame) / CPRectGetWidth(documentFrame)); + objj_msgSend(_horizontalScroller, "setFrame:", CPRectMake(0.0, CPRectGetMaxY(contentViewFrame), CPRectGetWidth(contentViewFrame), horizontalScrollerHeight)); + } + else if (wasShowingHorizontalScroller) + objj_msgSend(_horizontalScroller, "setFloatValue:knobProportion:", 0.0, 1.0); + objj_msgSend(_contentView, "setFrame:", contentViewFrame); + --_recursionCount; +} +}), new objj_method(sel_getUid("setHorizontalScroller:"), function $CPScrollView__setHorizontalScroller_(self, _cmd, aScroller) +{ with(self) +{ + if (_horizontalScroller === aScroller) + return; + objj_msgSend(_horizontalScroller, "removeFromSuperview"); + objj_msgSend(_horizontalScroller, "setTarget:", nil); + objj_msgSend(_horizontalScroller, "setAction:", nil); + _horizontalScroller = aScroller; + objj_msgSend(_horizontalScroller, "setTarget:", self); + objj_msgSend(_horizontalScroller, "setAction:", sel_getUid("_horizontalScrollerDidScroll:")); + objj_msgSend(self, "addSubview:", _horizontalScroller); + objj_msgSend(self, "reflectScrolledClipView:", _contentView); +} +}), new objj_method(sel_getUid("horizontalScroller"), function $CPScrollView__horizontalScroller(self, _cmd) +{ with(self) +{ + return _horizontalScroller; +} +}), new objj_method(sel_getUid("setHasHorizontalScroller:"), function $CPScrollView__setHasHorizontalScroller_(self, _cmd, shouldHaveHorizontalScroller) +{ with(self) +{ + if (_hasHorizontalScroller === shouldHaveHorizontalScroller) + return; + _hasHorizontalScroller = shouldHaveHorizontalScroller; + if (_hasHorizontalScroller && !_horizontalScroller) + objj_msgSend(self, "setHorizontalScroller:", objj_msgSend(objj_msgSend(CPScroller, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, CPRectGetWidth(objj_msgSend(self, "bounds")), objj_msgSend(CPScroller, "scrollerWidth")))); + else if (!_hasHorizontalScroller && _horizontalScroller) + { + objj_msgSend(_horizontalScroller, "setHidden:", YES); + objj_msgSend(self, "reflectScrolledClipView:", _contentView); + } +} +}), new objj_method(sel_getUid("hasHorizontalScroller"), function $CPScrollView__hasHorizontalScroller(self, _cmd) +{ with(self) +{ + return _hasHorizontalScroller; +} +}), new objj_method(sel_getUid("setVerticalScroller:"), function $CPScrollView__setVerticalScroller_(self, _cmd, aScroller) +{ with(self) +{ + if (_verticalScroller === aScroller) + return; + objj_msgSend(_verticalScroller, "removeFromSuperview"); + objj_msgSend(_verticalScroller, "setTarget:", nil); + objj_msgSend(_verticalScroller, "setAction:", nil); + _verticalScroller = aScroller; + objj_msgSend(_verticalScroller, "setTarget:", self); + objj_msgSend(_verticalScroller, "setAction:", sel_getUid("_verticalScrollerDidScroll:")); + objj_msgSend(self, "addSubview:", _verticalScroller); + objj_msgSend(self, "reflectScrolledClipView:", _contentView); +} +}), new objj_method(sel_getUid("verticalScroller"), function $CPScrollView__verticalScroller(self, _cmd) +{ with(self) +{ + return _verticalScroller; +} +}), new objj_method(sel_getUid("setHasVerticalScroller:"), function $CPScrollView__setHasVerticalScroller_(self, _cmd, shouldHaveVerticalScroller) +{ with(self) +{ + if (_hasVerticalScroller === shouldHaveVerticalScroller) + return; + _hasVerticalScroller = shouldHaveVerticalScroller; + if (_hasVerticalScroller && !_verticalScroller) + objj_msgSend(self, "setVerticalScroller:", objj_msgSend(objj_msgSend(CPScroller, "alloc"), "initWithFrame:", CPRectMake(0.0, 0.0, objj_msgSend(CPScroller, "scrollerWidth"), CPRectGetHeight(objj_msgSend(self, "bounds"))))); + else if (!_hasVerticalScroller && _verticalScroller) + { + objj_msgSend(_verticalScroller, "setHidden:", YES); + objj_msgSend(self, "reflectScrolledClipView:", _contentView); + } +} +}), new objj_method(sel_getUid("hasVerticalScroller"), function $CPScrollView__hasVerticalScroller(self, _cmd) +{ with(self) +{ + return _hasVerticalScroller; +} +}), new objj_method(sel_getUid("setAutohidesScrollers:"), function $CPScrollView__setAutohidesScrollers_(self, _cmd, autohidesScrollers) +{ with(self) +{ + if (_autohidesScrollers == autohidesScrollers) + return; + _autohidesScrollers = autohidesScrollers; + objj_msgSend(self, "reflectScrolledClipView:", _contentView); +} +}), new objj_method(sel_getUid("autohidesScrollers"), function $CPScrollView__autohidesScrollers(self, _cmd) +{ with(self) +{ + return _autohidesScrollers; +} +}), new objj_method(sel_getUid("_verticalScrollerDidScroll:"), function $CPScrollView___verticalScrollerDidScroll_(self, _cmd, aScroller) +{ with(self) +{ + var value = objj_msgSend(aScroller, "floatValue"), + documentFrame = objj_msgSend(objj_msgSend(_contentView, "documentView"), "frame"); + contentBounds = objj_msgSend(_contentView, "bounds"); + switch (objj_msgSend(_verticalScroller, "hitPart")) + { + case CPScrollerDecrementLine: contentBounds.origin.y -= _verticalLineScroll; + break; + case CPScrollerIncrementLine: contentBounds.origin.y += _verticalLineScroll; + break; + case CPScrollerDecrementPage: contentBounds.origin.y -= (contentBounds.size.height) - _verticalPageScroll; + break; + case CPScrollerIncrementPage: contentBounds.origin.y += (contentBounds.size.height) - _verticalPageScroll; + break; + case CPScrollerKnobSlot: + case CPScrollerKnob: + default: contentBounds.origin.y = value * ((documentFrame.size.height) - (contentBounds.size.height)); + } + objj_msgSend(_contentView, "scrollToPoint:", contentBounds.origin); +} +}), new objj_method(sel_getUid("_horizontalScrollerDidScroll:"), function $CPScrollView___horizontalScrollerDidScroll_(self, _cmd, aScroller) +{ with(self) +{ + var value = objj_msgSend(aScroller, "floatValue"), + documentFrame = objj_msgSend(objj_msgSend(self, "documentView"), "frame"), + contentBounds = objj_msgSend(_contentView, "bounds"); + switch (objj_msgSend(_horizontalScroller, "hitPart")) + { + case CPScrollerDecrementLine: contentBounds.origin.x -= _horizontalLineScroll; + break; + case CPScrollerIncrementLine: contentBounds.origin.x += _horizontalLineScroll; + break; + case CPScrollerDecrementPage: contentBounds.origin.x -= (contentBounds.size.width) - _horizontalPageScroll; + break; + case CPScrollerIncrementPage: contentBounds.origin.x += (contentBounds.size.width) - _horizontalPageScroll; + break; + case CPScrollerKnobSlot: + case CPScrollerKnob: + default: contentBounds.origin.x = value * ((documentFrame.size.width) - (contentBounds.size.width)); + } + objj_msgSend(_contentView, "scrollToPoint:", contentBounds.origin); +} +}), new objj_method(sel_getUid("tile"), function $CPScrollView__tile(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $CPScrollView__resizeSubviewsWithOldSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSend(self, "reflectScrolledClipView:", _contentView); +} +}), new objj_method(sel_getUid("setLineScroll:"), function $CPScrollView__setLineScroll_(self, _cmd, aLineScroll) +{ with(self) +{ + objj_msgSend(self, "setHorizonalLineScroll:", aLineScroll); + objj_msgSend(self, "setVerticalLineScroll:", aLineScroll); +} +}), new objj_method(sel_getUid("lineScroll"), function $CPScrollView__lineScroll(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "horizontalLineScroll"); +} +}), new objj_method(sel_getUid("setHorizontalLineScroll:"), function $CPScrollView__setHorizontalLineScroll_(self, _cmd, aLineScroll) +{ with(self) +{ + _horizontalLineScroll = aLineScroll; +} +}), new objj_method(sel_getUid("horizontalLineScroll"), function $CPScrollView__horizontalLineScroll(self, _cmd) +{ with(self) +{ + return _horizontalLineScroll; +} +}), new objj_method(sel_getUid("setVerticalLineScroll:"), function $CPScrollView__setVerticalLineScroll_(self, _cmd, aLineScroll) +{ with(self) +{ + _verticalLineScroll = aLineScroll; +} +}), new objj_method(sel_getUid("verticalLineScroll"), function $CPScrollView__verticalLineScroll(self, _cmd) +{ with(self) +{ + return _verticalLineScroll; +} +}), new objj_method(sel_getUid("setPageScroll:"), function $CPScrollView__setPageScroll_(self, _cmd, aPageScroll) +{ with(self) +{ + objj_msgSend(self, "setHorizontalPageScroll:", aPageScroll); + objj_msgSend(self, "setVerticalPageScroll:", aPageScroll); +} +}), new objj_method(sel_getUid("pageScroll"), function $CPScrollView__pageScroll(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "horizontalPageScroll"); +} +}), new objj_method(sel_getUid("setHorizontalPageScroll:"), function $CPScrollView__setHorizontalPageScroll_(self, _cmd, aPageScroll) +{ with(self) +{ + _horizontalPageScroll = aPageScroll; +} +}), new objj_method(sel_getUid("horizontalPageScroll"), function $CPScrollView__horizontalPageScroll(self, _cmd) +{ with(self) +{ + return _horizontalPageScroll; +} +}), new objj_method(sel_getUid("setVerticalPageScroll:"), function $CPScrollView__setVerticalPageScroll_(self, _cmd, aPageScroll) +{ with(self) +{ + _verticalPageScroll = aPageScroll; +} +}), new objj_method(sel_getUid("verticalPageScroll"), function $CPScrollView__verticalPageScroll(self, _cmd) +{ with(self) +{ + return _verticalPageScroll; +} +}), new objj_method(sel_getUid("scrollWheel:"), function $CPScrollView__scrollWheel_(self, _cmd, anEvent) +{ with(self) +{ + var value = objj_msgSend(_verticalScroller, "floatValue"), + documentFrame = objj_msgSend(objj_msgSend(self, "documentView"), "frame"), + contentBounds = objj_msgSend(_contentView, "bounds"); + contentBounds.origin.x += objj_msgSend(anEvent, "deltaX") * _horizontalLineScroll; + contentBounds.origin.y += objj_msgSend(anEvent, "deltaY") * _verticalLineScroll; + objj_msgSend(_contentView, "scrollToPoint:", contentBounds.origin); +} +}), new objj_method(sel_getUid("keyDown:"), function $CPScrollView__keyDown_(self, _cmd, anEvent) +{ with(self) +{ + var keyCode = objj_msgSend(anEvent, "keyCode"), + value = objj_msgSend(_verticalScroller, "floatValue"), + documentFrame = objj_msgSend(objj_msgSend(self, "documentView"), "frame"), + contentBounds = objj_msgSend(_contentView, "bounds"); + switch (keyCode) + { + case 33: + contentBounds.origin.y -= (contentBounds.size.height) - _verticalPageScroll; + break; + case 34: + contentBounds.origin.y += (contentBounds.size.height) - _verticalPageScroll; + break; + case 38: + contentBounds.origin.y -= _verticalLineScroll; + break; + case 40: + contentBounds.origin.y += _verticalLineScroll; + break; + case 37: + contentBounds.origin.x -= _horizontalLineScroll; + break; + case 49: + contentBounds.origin.x += _horizontalLineScroll; + break; + default: return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "keyDown:", anEvent); + } + objj_msgSend(_contentView, "scrollToPoint:", contentBounds.origin); +} +})]); +} +var CPScrollViewContentViewKey = "CPScrollViewContentView", + CPScrollViewVLineScrollKey = "CPScrollViewVLineScroll", + CPScrollViewHLineScrollKey = "CPScrollViewHLineScroll", + CPScrollViewVPageScrollKey = "CPScrollViewVPageScroll", + CPScrollViewHPageScrollKey = "CPScrollViewHPageScroll", + CPScrollViewHasVScrollerKey = "CPScrollViewHasVScroller", + CPScrollViewHasHScrollerKey = "CPScrollViewHasHScroller", + CPScrollViewVScrollerKey = "CPScrollViewVScroller", + CPScrollViewHScrollerKey = "CPScrollViewHScroller", + CPScrollViewAutohidesScrollerKey = "CPScrollViewAutohidesScroller"; +{ +var the_class = objj_getClass("CPScrollView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPScrollView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPScrollView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder)) + { + _verticalLineScroll = objj_msgSend(aCoder, "decodeFloatForKey:", CPScrollViewVLineScrollKey); + _verticalPageScroll = objj_msgSend(aCoder, "decodeFloatForKey:", CPScrollViewVPageScrollKey); + _horizontalLineScroll = objj_msgSend(aCoder, "decodeFloatForKey:", CPScrollViewHLineScrollKey); + _horizontalPageScroll = objj_msgSend(aCoder, "decodeFloatForKey:", CPScrollViewHPageScrollKey); + _contentView = objj_msgSend(aCoder, "decodeObjectForKey:", CPScrollViewContentViewKey); + _verticalScroller = objj_msgSend(aCoder, "decodeObjectForKey:", CPScrollViewVScrollerKey); + _horizontalScroller = objj_msgSend(aCoder, "decodeObjectForKey:", CPScrollViewHScrollerKey); + _hasVerticalScroller = objj_msgSend(aCoder, "decodeBoolForKey:", CPScrollViewHasVScrollerKey); + _hasHorizontalScroller = objj_msgSend(aCoder, "decodeBoolForKey:", CPScrollViewHasHScrollerKey); + _autohidesScrollers = objj_msgSend(aCoder, "decodeBoolForKey:", CPScrollViewAutohidesScrollerKey); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "performSelector:target:argument:order:modes:", sel_getUid("reflectScrolledClipView:"), self, _contentView, 0, [CPDefaultRunLoopMode]); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPScrollView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _contentView, CPScrollViewContentViewKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _verticalScroller, CPScrollViewVScrollerKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _horizontalScroller, CPScrollViewHScrollerKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _verticalLineScroll, CPScrollViewVLineScrollKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _verticalPageScroll, CPScrollViewVPageScrollKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _horizontalLineScroll, CPScrollViewHLineScrollKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _horizontalPageScroll, CPScrollViewHPageScrollKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _hasVerticalScroller, CPScrollViewHasVScrollerKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _hasHorizontalScroller, CPScrollViewHasHScrollerKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _autohidesScrollers, CPScrollViewAutohidesScrollerKey); +} +})]); +} + +p;15;CPSearchField.ji;13;CPTextField.jc;23855; +CPSearchFieldRecentsTitleMenuItemTag = 1000; +CPSearchFieldRecentsMenuItemTag = 1001; +CPSearchFieldClearRecentsMenuItemTag = 1002; +CPSearchFieldNoRecentsMenuItemTag = 1003; +var CPSearchFieldSearchImage = nil, + CPSearchFieldFindImage = nil, + CPSearchFieldCancelImage = nil, + CPSearchFieldCancelPressedImage = nil; +{var the_class = objj_allocateClassPair(CPTextField, "CPSearchField"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_searchButton"), new objj_ivar("_cancelButton"), new objj_ivar("_searchMenuTemplate"), new objj_ivar("_searchMenu"), new objj_ivar("_recentsAutosaveName"), new objj_ivar("_recentSearches"), new objj_ivar("_maximumRecents"), new objj_ivar("_sendsWholeSearchString"), new objj_ivar("_sendsSearchStringImmediately"), new objj_ivar("_partialStringTimer")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPSearchField__initWithFrame_(self, _cmd, frame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "initWithFrame:", frame); + if (self != nil) + { + _recentSearches = objj_msgSend(CPArray, "array"); + _maximumRecents = 10; + _sendsWholeSearchString = NO; + _sendsSearchStringImmediately = NO; + objj_msgSend(self, "setBezeled:", YES); + objj_msgSend(self, "setBezelStyle:", CPTextFieldRoundedBezel); + objj_msgSend(self, "setBordered:", YES); + objj_msgSend(self, "setEditable:", YES); + objj_msgSend(self, "setDelegate:", self); + _cancelButton = objj_msgSend(objj_msgSend(CPButton, "alloc"), "initWithFrame:", CPMakeRect(frame.size.width - 27,(frame.size.height-22)/2,22,22)); + objj_msgSend(self, "resetCancelButton"); + objj_msgSend(_cancelButton, "setHidden:", YES); + objj_msgSend(self, "addSubview:", _cancelButton); + _searchButton = objj_msgSend(objj_msgSend(CPButton, "alloc"), "initWithFrame:", CPMakeRect(5,(frame.size.height-25)/2,25,25)); + objj_msgSend(_searchButton, "setBezelStyle:", CPRegularSquareBezelStyle); + objj_msgSend(_searchButton, "setBordered:", NO); + objj_msgSend(_searchButton, "setImageScaling:", CPScaleToFit); + _cancelButton._DOMElement.style.cursor = "default"; + _searchButton._DOMElement.style.cursor = "default"; + objj_msgSend(self, "setSearchMenuTemplate:", objj_msgSend(self, "_searchMenuTemplate")); + objj_msgSend(self, "addSubview:", _searchButton); + } + return self; +} +}), new objj_method(sel_getUid("copy"), function $CPSearchField__copy(self, _cmd) +{ with(self) +{ + var copy = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "copy"); + objj_msgSend(copy, "setCancelButton:", objj_msgSend(_cancelButton, "copy")); + objj_msgSend(copy, "setSearchButton:", objj_msgSend(_searchButton, "copy")); + objj_msgSend(copy, "setrecentsAutosaveName:", objj_msgSend(_recentsAutosaveName, "copy")); + objj_msgSend(copy, "setSendsWholeSearchString:", objj_msgSend(_sendsWholeSearchString, "copy")); + objj_msgSend(copy, "setSendsSearchStringImmediately:", objj_msgSend(_sendsSearchStringImmediately, "copy")); + objj_msgSend(copy, "setMaximumRecents:", _maximumRecents); + objj_msgSend(copy, "setSearchMenutemplate:", objj_msgSend(_searchMenuTemplate, "copy")); + return copy; +} +}), new objj_method(sel_getUid("setSearchButton:"), function $CPSearchField__setSearchButton_(self, _cmd, button) +{ with(self) +{ + _searchButton = button; +} +}), new objj_method(sel_getUid("searchButton"), function $CPSearchField__searchButton(self, _cmd) +{ with(self) +{ + return _searchButton; +} +}), new objj_method(sel_getUid("resetSearchButton"), function $CPSearchField__resetSearchButton(self, _cmd) +{ with(self) +{ + var searchButtonImage, + action, + target, + button = objj_msgSend(self, "searchButton"); + if (_searchMenuTemplate == nil) + { + searchButtonImage = CPSearchFieldSearchImage; + action = objj_msgSend(self, "action"); + target = objj_msgSend(self, "target"); + } + else + { + searchButtonImage = CPSearchFieldFindImage; + action = sel_getUid("_showMenu:"); + target = self; + } + objj_msgSend(button, "setImage:", searchButtonImage); + objj_msgSend(button, "setTarget:", target); + objj_msgSend(button, "setAction:", action); +} +}), new objj_method(sel_getUid("setCancelButton:"), function $CPSearchField__setCancelButton_(self, _cmd, button) +{ with(self) +{ + _cancelButton = button; +} +}), new objj_method(sel_getUid("cancelButton"), function $CPSearchField__cancelButton(self, _cmd) +{ with(self) +{ + return _cancelButton; +} +}), new objj_method(sel_getUid("resetCancelButton"), function $CPSearchField__resetCancelButton(self, _cmd) +{ with(self) +{ + var button = objj_msgSend(self, "cancelButton"); + objj_msgSend(button, "setBezelStyle:", CPRegularSquareBezelStyle); + objj_msgSend(button, "setBordered:", NO); + objj_msgSend(button, "setImageScaling:", CPScaleToFit); + objj_msgSend(button, "setImage:", CPSearchFieldCancelImage); + objj_msgSend(button, "setAlternateImage:", CPSearchFieldCancelPressedImage); + objj_msgSend(button, "setTarget:", self); + objj_msgSend(button, "setAction:", sel_getUid("_searchFieldCancel:")); +} +}), new objj_method(sel_getUid("searchTextRectForBounds:"), function $CPSearchField__searchTextRectForBounds_(self, _cmd, rect) +{ with(self) +{ + var leftOffset = 0, width = rect.size.width; + if (_searchButton) + { + var searchRect = objj_msgSend(_searchButton, "frame"); + leftOffset = searchRect.origin.x + searchRect.size.width; + } + if (_cancelButton) + { + var cancelRect = objj_msgSend(_cancelButton, "frame"); + width = cancelRect.origin.x - leftOffset; + } + return CPMakeRect(leftOffset,rect.origin.y,width,rect.size.height); +} +}), new objj_method(sel_getUid("searchButtonRectForBounds:"), function $CPSearchField__searchButtonRectForBounds_(self, _cmd, rect) +{ with(self) +{ + return objj_msgSend(_searchButton, "frame"); +} +}), new objj_method(sel_getUid("cancelButtonRectForBounds:"), function $CPSearchField__cancelButtonRectForBounds_(self, _cmd, rect) +{ with(self) +{ + return objj_msgSend(_cancelButton, "frame"); +} +}), new objj_method(sel_getUid("searchMenuTemplate"), function $CPSearchField__searchMenuTemplate(self, _cmd) +{ with(self) +{ + return _searchMenuTemplate; +} +}), new objj_method(sel_getUid("setSearchMenuTemplate:"), function $CPSearchField__setSearchMenuTemplate_(self, _cmd, menu) +{ with(self) +{ + _searchMenuTemplate = menu; + objj_msgSend(self, "resetSearchButton"); + objj_msgSend(self, "_updateSearchMenu"); +} +}), new objj_method(sel_getUid("sendsWholeSearchString"), function $CPSearchField__sendsWholeSearchString(self, _cmd) +{ with(self) +{ + return _sendsWholeSearchString; +} +}), new objj_method(sel_getUid("setSendsWholeSearchString:"), function $CPSearchField__setSendsWholeSearchString_(self, _cmd, flag) +{ with(self) +{ + _sendsWholeSearchString = flag; +} +}), new objj_method(sel_getUid("sendsSearchStringImmediately"), function $CPSearchField__sendsSearchStringImmediately(self, _cmd) +{ with(self) +{ + return _sendsSearchStringImmediately; +} +}), new objj_method(sel_getUid("setSendsSearchStringImmediately:"), function $CPSearchField__setSendsSearchStringImmediately_(self, _cmd, flag) +{ with(self) +{ + _sendsSearchStringImmediately = flag; +} +}), new objj_method(sel_getUid("maximumRecents"), function $CPSearchField__maximumRecents(self, _cmd) +{ with(self) +{ + return _maximumRecents; +} +}), new objj_method(sel_getUid("setMaximumRecents:"), function $CPSearchField__setMaximumRecents_(self, _cmd, max) +{ with(self) +{ + if (max > 254) + max = 254; + else if (max < 0) + max = 10; + _maximumRecents = max; +} +}), new objj_method(sel_getUid("recentSearches"), function $CPSearchField__recentSearches(self, _cmd) +{ with(self) +{ + return _recentSearches; +} +}), new objj_method(sel_getUid("setRecentSearches:"), function $CPSearchField__setRecentSearches_(self, _cmd, searches) +{ with(self) +{ + var max = MIN(objj_msgSend(self, "maximumRecents"),objj_msgSend(searches, "count")); + var searches = objj_msgSend(searches, "subarrayWithRange:", CPMakeRange(0,max)); + _recentSearches = searches; + objj_msgSend(self, "_autosaveRecentSearchList"); +} +}), new objj_method(sel_getUid("recentsAutosaveName"), function $CPSearchField__recentsAutosaveName(self, _cmd) +{ with(self) +{ + return _recentsAutosaveName; +} +}), new objj_method(sel_getUid("setRecentsAutosaveName:"), function $CPSearchField__setRecentsAutosaveName_(self, _cmd, name) +{ with(self) +{ + _recentsAutosaveName = name; + if(name != nil) + objj_msgSend(self, "_registerForAutosaveNotification"); + else + objj_msgSend(self, "_deregisterForAutosaveNotification"); +} +}), new objj_method(sel_getUid("contentRectForBounds:"), function $CPSearchField__contentRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + var superbounds = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "contentRectForBounds:", bounds); + return objj_msgSend(self, "searchTextRectForBounds:", superbounds); +} +}), new objj_method(sel_getUid("menu"), function $CPSearchField__menu(self, _cmd) +{ with(self) +{ + return _searchMenu; +} +}), new objj_method(sel_getUid("isOpaque"), function $CPSearchField__isOpaque(self, _cmd) +{ with(self) +{ + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "isOpaque") && objj_msgSend(_cancelButton, "isOpaque") && objj_msgSend(_searchButton, "isOpaque"); +} +}), new objj_method(sel_getUid("_updateCancelButtonVisibility"), function $CPSearchField___updateCancelButtonVisibility(self, _cmd) +{ with(self) +{ + objj_msgSend(_cancelButton, "setHidden:", (objj_msgSend(objj_msgSend(self, "stringValue"), "length") == 0)); +} +}), new objj_method(sel_getUid("controlTextDidChange:"), function $CPSearchField__controlTextDidChange_(self, _cmd, aNotification) +{ with(self) +{ + if(!_sendsWholeSearchString) + { + if(_sendsSearchStringImmediately) + objj_msgSend(self, "_sendPartialString"); + else + { + objj_msgSend(_partialStringTimer, "invalidate"); + var timeInterval = objj_msgSend(CPSearchField, "_keyboardDelayForPartialSearchString:", objj_msgSend(self, "stringValue")); + _partialStringTimer = objj_msgSend(CPTimer, "scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:", timeInterval, self, sel_getUid("_sendPartialString"), nil, NO); + } + } + objj_msgSend(self, "_updateCancelButtonVisibility"); +} +}), new objj_method(sel_getUid("sendAction:to:"), function $CPSearchField__sendAction_to_(self, _cmd, anAction, anObject) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "sendAction:to:", anAction, anObject); + objj_msgSend(_partialStringTimer, "invalidate"); + var current_value = objj_msgSend(self, "objectValue"); + if(current_value != nil && current_value != "" && !objj_msgSend(_recentSearches, "containsObject:", current_value)) + { + objj_msgSend(self, "_addStringToRecentSearches:", current_value); + objj_msgSend(self, "_updateSearchMenu"); + } + objj_msgSend(self, "_updateCancelButtonVisibility"); +} +}), new objj_method(sel_getUid("_addStringToRecentSearches:"), function $CPSearchField___addStringToRecentSearches_(self, _cmd, string) +{ with(self) +{ + var newSearches = objj_msgSend(CPMutableArray, "arrayWithArray:", _recentSearches); + objj_msgSend(newSearches, "addObject:", string); + objj_msgSend(self, "setRecentSearches:", newSearches); +} +}), new objj_method(sel_getUid("trackMouse:"), function $CPSearchField__trackMouse_(self, _cmd, event) +{ with(self) +{ + var rect; + var point; + var location = objj_msgSend(event, "locationInWindow"); + point = objj_msgSend(self, "convertPoint:fromView:", location, nil); + rect = objj_msgSend(self, "searchButtonRectForBounds:", objj_msgSend(self, "frame")); + if (CPRectContainsPoint(rect,point)) + { + return objj_msgSend(objj_msgSend(self, "searchButton"), "trackMouse:", event); + } + rect = objj_msgSend(self, "cancelButtonRectForBounds:", objj_msgSend(self, "frame")); + if (CPRectContainsPoint(rect,point)) + { + return objj_msgSend(objj_msgSend(self, "cancelButton"), "trackMouse:", event); + } + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "trackMouse:", event); +} +}), new objj_method(sel_getUid("_searchMenuTemplate"), function $CPSearchField___searchMenuTemplate(self, _cmd) +{ with(self) +{ + var template, item; + template = objj_msgSend(objj_msgSend(CPMenu, "alloc"), "init"); + item = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Recent searches", NULL, ""); + objj_msgSend(item, "setTag:", CPSearchFieldRecentsTitleMenuItemTag); + objj_msgSend(item, "setEnabled:", NO); + objj_msgSend(template, "addItem:", item); + item = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Recent search item", sel_getUid("_searchFieldSearch:"), ""); + objj_msgSend(item, "setTag:", CPSearchFieldRecentsMenuItemTag); + objj_msgSend(item, "setTarget:", self); + objj_msgSend(template, "addItem:", item); + item = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Clear recent searches", sel_getUid("_searchFieldClearRecents:"), ""); + objj_msgSend(item, "setTag:", CPSearchFieldClearRecentsMenuItemTag); + objj_msgSend(item, "setTarget:", self); + objj_msgSend(template, "addItem:", item); + item = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "No recent searches", NULL, ""); + objj_msgSend(item, "setTag:", CPSearchFieldNoRecentsMenuItemTag); + objj_msgSend(item, "setEnabled:", NO); + objj_msgSend(template, "addItem:", item); + return template; +} +}), new objj_method(sel_getUid("_updateSearchMenu"), function $CPSearchField___updateSearchMenu(self, _cmd) +{ with(self) +{ + if(_searchMenuTemplate == nil) + return; + var i, menu = objj_msgSend(objj_msgSend(CPMenu, "alloc"), "init"); + var countOfRecents = objj_msgSend(_recentSearches, "count"); + for (i = 0; i < objj_msgSend(_searchMenuTemplate, "numberOfItems"); i++) + { + var item = objj_msgSend(_searchMenuTemplate, "itemAtIndex:", i); + var tag = objj_msgSend(item, "tag"); + if(tag == CPSearchFieldClearRecentsMenuItemTag && countOfRecents != 0) + { + var separator = objj_msgSend(CPMenuItem, "separatorItem"); + objj_msgSend(menu, "addItem:", separator); + } + if (!(tag == CPSearchFieldRecentsTitleMenuItemTag && countOfRecents == 0) && + !(tag == CPSearchFieldClearRecentsMenuItemTag && countOfRecents == 0) && + !(tag == CPSearchFieldNoRecentsMenuItemTag && countOfRecents != 0) && + !(tag == CPSearchFieldRecentsMenuItemTag)) + { + var templateItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", objj_msgSend(item, "title"), objj_msgSend(item, "action"), objj_msgSend(item, "keyEquivalent")); + objj_msgSend(templateItem, "setTarget:", objj_msgSend(item, "target")); + objj_msgSend(templateItem, "setEnabled:", objj_msgSend(item, "isEnabled")); + objj_msgSend(templateItem, "setTag:", objj_msgSend(item, "tag")); + objj_msgSend(menu, "addItem:", templateItem); + } + else if (tag == CPSearchFieldRecentsMenuItemTag) + { + var j; + for (j = 0; j < countOfRecents; j++) + { + var rencentItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", objj_msgSend(_recentSearches, "objectAtIndex:", j), objj_msgSend(item, "action"), objj_msgSend(item, "keyEquivalent")); + objj_msgSend(rencentItem, "setTarget:", objj_msgSend(item, "target")); + objj_msgSend(menu, "addItem:", rencentItem); + } + } + } + _searchMenu = menu; +} +}), new objj_method(sel_getUid("_showMenu:"), function $CPSearchField___showMenu_(self, _cmd, sender) +{ with(self) +{ + if(_searchMenu == nil) + return; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "selectText:", nil); + var origin = CPMakePoint(objj_msgSend(self, "frame").origin.x, objj_msgSend(self, "frame").origin.y + objj_msgSend(self, "frame").size.height); + var anEvent = objj_msgSend(CPEvent, "keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:", CPRightMouseDown, origin, 0, objj_msgSend(CPDate, "date"), 1, objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"), "", "", NO, 0); + objj_msgSend(CPMenu, "popUpContextMenu:withEvent:forView:", _searchMenu, anEvent, sender); +} +}), new objj_method(sel_getUid("_sendPartialString"), function $CPSearchField___sendPartialString(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(self, "target"), "performSelector:withObject:", objj_msgSend(self, "action"), self); +} +}), new objj_method(sel_getUid("_searchFieldCancel:"), function $CPSearchField___searchFieldCancel_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", nil); + objj_msgSend(self, "_sendPartialString"); + objj_msgSend(self, "_updateCancelButtonVisibility"); + objj_msgSend(sender, "setHidden:", YES); +} +}), new objj_method(sel_getUid("_searchFieldSearch:"), function $CPSearchField___searchFieldSearch_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", objj_msgSend(sender, "title")); + objj_msgSend(self, "_sendPartialString"); + objj_msgSend(self, "_updateCancelButtonVisibility"); +} +}), new objj_method(sel_getUid("_searchFieldClearRecents:"), function $CPSearchField___searchFieldClearRecents_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "setRecentSearches:", objj_msgSend(CPArray, "array")); + objj_msgSend(self, "_updateSearchMenu"); + } +}), new objj_method(sel_getUid("_registerForAutosaveNotification"), function $CPSearchField___registerForAutosaveNotification(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", self, sel_getUid("_updateAutosavedRecents:"), "CPAutosavedRecentsChangedNotification", nil); +} +}), new objj_method(sel_getUid("_deregisterForAutosaveNotification"), function $CPSearchField___deregisterForAutosaveNotification(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "removeObserver:name:object:", self, "CPAutosavedRecentsChangedNotification", nil); +} +}), new objj_method(sel_getUid("_updateAutosavedRecents:"), function $CPSearchField___updateAutosavedRecents_(self, _cmd, notification) +{ with(self) +{ + var name = objj_msgSend(notification, "object"); + var list = objj_msgSend(self, "recentSearches"); + objj_msgSend(objj_msgSend(CPUserDefaults, "standardUserDefaults"), "setObject:forKey:", list, name); +} +}), new objj_method(sel_getUid("_autosaveRecentSearchList"), function $CPSearchField___autosaveRecentSearchList(self, _cmd) +{ with(self) +{ + if(_recentsAutosaveName != nil) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", "CPAutosavedRecentsChangedNotification", _recentsAutosaveName); +} +}), new objj_method(sel_getUid("_loadRecentSearchList"), function $CPSearchField___loadRecentSearchList(self, _cmd) +{ with(self) +{ + var list, + name = objj_msgSend(self, "recentsAutosaveName"); + list = objj_msgSend(objj_msgSend(CPUserDefaults, "standardUserDefaults"), "objectForKey:", name); + _recentSearches = list; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPSearchField__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPSearchField, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + CPSearchFieldSearchImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:", objj_msgSend(bundle, "pathForResource:", "CPSearchField/CPSearchFieldSearch.png")); + CPSearchFieldFindImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:", objj_msgSend(bundle, "pathForResource:", "CPSearchField/CPSearchFieldFind.png")); + CPSearchFieldCancelImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:", objj_msgSend(bundle, "pathForResource:", "CPSearchField/CPSearchFieldCancel.png")); + CPSearchFieldCancelPressedImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:", objj_msgSend(bundle, "pathForResource:", "CPSearchField/CPSearchFieldCancelPressed.png")); +} +}), new objj_method(sel_getUid("_keyboardDelayForPartialSearchString:"), function $CPSearchField___keyboardDelayForPartialSearchString_(self, _cmd, string) +{ with(self) +{ + return (6 - MIN(objj_msgSend(string, "length"),4))/10; +} +})]); +} +var CPSearchButtonKey = "CPSearchButtonKey", + CPCancelButtonKey = "CPCancelButtonKey", + CPRecentsAutosaveNameKey = "CPRecentsAutosaveNameKey", + CPSendsWholeSearchStringKey = "CPSendsWholeSearchStringKey", + CPSendsSearchStringImmediatelyKey = "CPSendsSearchStringImmediatelyKey", + CPMaximumRecentsKey = "CPMaximumRecentsKey", + CPSearchMenuTemplateKey = "CPSearchMenuTemplateKey"; +{ +var the_class = objj_getClass("CPSearchField") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPSearchField\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("encodeWithCoder:"), function $CPSearchField__encodeWithCoder_(self, _cmd, coder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "encodeWithCoder:", coder); + objj_msgSend(coder, "encodeObject:forKey:", _searchButton, CPSearchButtonKey); + objj_msgSend(coder, "encodeObject:forKey:", _cancelButton, CPCancelButtonKey); + objj_msgSend(coder, "encodeObject:forKey:", _recentsAutosaveName, CPRecentsAutosaveNameKey); + objj_msgSend(coder, "encodeBool:forKey:", _sendsWholeSearchString, CPSendsWholeSearchStringKey); + objj_msgSend(coder, "encodeBool:forKey:", _sendsSearchStringImmediately, CPSendsSearchStringImmediatelyKey); + objj_msgSend(coder, "encodeInt:forKey:", _maximumRecents, CPMaximumRecentsKey); + objj_msgSend(coder, "encodeObject:forKey:", _searchMenuTemplate, CPSearchMenuTemplateKey); +} +}), new objj_method(sel_getUid("initWithCoder:"), function $CPSearchField__initWithCoder_(self, _cmd, coder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "initWithCoder:", coder); + _searchButton = objj_msgSend(coder, "decodeObjectForKey:", CPSearchButtonKey); + _searchButton = objj_msgSend(coder, "decodeObjectForKey:", CPCancelButtonKey); + _recentsAutosaveName = objj_msgSend(coder, "decodeObjectForKey:", CPRecentsAutosaveNameKey); + _sendsWholeSearchString = objj_msgSend(coder, "decodeBoolForKey:", CPSendsWholeSearchStringKey); + _sendsSearchStringImmediately = objj_msgSend(coder, "decodeBoolForKey:", CPSendsSearchStringImmediatelyKey); + _maximumRecents = objj_msgSend(coder, "decodeIntForKey:", CPMaximumRecentsKey); + objj_msgSend(self, "setSearchMenuTemplate:", objj_msgSend(coder, "decodeObjectForKey:", CPSearchMenuTemplateKey)); + return self; +} +})]); +} + +p;19;CPSecureTextField.ji;13;CPTextField.jc;388; + + + + +{var the_class = objj_allocateClassPair(CPTextField, "CPSecureTextField"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("isSecure"), function $CPSecureTextField__isSecure(self, _cmd) +{ with(self) +{ + return YES; +} +})]); +} + +p;20;CPSegmentedControl.jI;20;Foundation/CPArray.ji;11;CPControl.jc;28921; +CPSegmentSwitchTrackingSelectOne = 0; +CPSegmentSwitchTrackingSelectAny = 1; +CPSegmentSwitchTrackingMomentary = 2; +{var the_class = objj_allocateClassPair(CPControl, "CPSegmentedControl"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_segments"), new objj_ivar("_themeStates"), new objj_ivar("_selectedSegment"), new objj_ivar("_segmentStyle"), new objj_ivar("_trackingMode"), new objj_ivar("_trackingSegment"), new objj_ivar("_trackingHighlighted")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPSegmentedControl__initWithFrame_(self, _cmd, aRect) +{ with(self) +{ + _segments = []; + _themeStates = []; + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aRect); + if (self) + { + _selectedSegment = -1; + _trackingMode = CPSegmentSwitchTrackingSelectOne; + } + return self; +} +}), new objj_method(sel_getUid("selectedTag"), function $CPSegmentedControl__selectedTag(self, _cmd) +{ with(self) +{ + return _segments[_selectedSegment].tag; +} +}), new objj_method(sel_getUid("setSegmentCount:"), function $CPSegmentedControl__setSegmentCount_(self, _cmd, aCount) +{ with(self) +{ + if (_segments.length == aCount) + return; + var height = CGRectGetHeight(objj_msgSend(self, "bounds")); + if (_segments.length < aCount) + { + for (var index = _segments.length; index < aCount; ++index) + { + _segments[index] = objj_msgSend(objj_msgSend(_CPSegmentItem, "alloc"), "init"); + _themeStates[index] = CPThemeStateNormal; + } + } + else if (aCount < _segments.length) + { + for (var index = aCount; index < _segments.length; ++index) + _segments[index] = nil; + } + if (_selectedSegment < _segments.length) + _selectedSegment = -1; + objj_msgSend(self, "tileWithChangedSegment:", 0); +} +}), new objj_method(sel_getUid("segmentCount"), function $CPSegmentedControl__segmentCount(self, _cmd) +{ with(self) +{ + return _segments.length; +} +}), new objj_method(sel_getUid("setSelectedSegment:"), function $CPSegmentedControl__setSelectedSegment_(self, _cmd, aSegment) +{ with(self) +{ + objj_msgSend(self, "setSelected:forSegment:", YES, aSegment); +} +}), new objj_method(sel_getUid("selectedSegment"), function $CPSegmentedControl__selectedSegment(self, _cmd) +{ with(self) +{ + return _selectedSegment; +} +}), new objj_method(sel_getUid("selectSegmentWithTag:"), function $CPSegmentedControl__selectSegmentWithTag_(self, _cmd, aTag) +{ with(self) +{ + var index = 0; + for (; index < _segments.length; ++index) + if (_segments[index].tag == aTag) + { + objj_msgSend(self, "setSelectedSegment:", index); + return YES; + } + return NO; +} +}), new objj_method(sel_getUid("isTracking"), function $CPSegmentedControl__isTracking(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("setTrackingMode:"), function $CPSegmentedControl__setTrackingMode_(self, _cmd, aTrackingMode) +{ with(self) +{ + if (_trackingMode == aTrackingMode) + return; + _trackingMode = aTrackingMode; + if (_trackingMode == CPSegmentSwitchTrackingSelectOne) + { + var index = 0, + selected = NO; + for (; index < _segments.length; ++index) + if (_segments[index].selected) + if (selected) + objj_msgSend(self, "setSelected:forSegment:", NO, index); + else + selected = YES; + } + else if (_trackingMode == CPSegmentSwitchTrackingMomentary) + { + var index = 0; + for (; index < _segments.length; ++index) + if (_segments[index].selected) + objj_msgSend(self, "setSelected:forSegment:", NO, index); + } +} +}), new objj_method(sel_getUid("trackingMode"), function $CPSegmentedControl__trackingMode(self, _cmd) +{ with(self) +{ + return _trackingMode; +} +}), new objj_method(sel_getUid("setWidth:forSegment:"), function $CPSegmentedControl__setWidth_forSegment_(self, _cmd, aWidth, aSegment) +{ with(self) +{ + _segments[aSegment].width = aWidth; + objj_msgSend(self, "tileWithChangedSegment:", aSegment); +} +}), new objj_method(sel_getUid("widthForSegment:"), function $CPSegmentedControl__widthForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].width; +} +}), new objj_method(sel_getUid("setImage:forSegment:"), function $CPSegmentedControl__setImage_forSegment_(self, _cmd, anImage, aSegment) +{ with(self) +{ + var segment = _segments[aSegment]; + segment.image = anImage; + objj_msgSend(self, "tileWithChangedSegment:", aSegment); +} +}), new objj_method(sel_getUid("imageForSegment:"), function $CPSegmentedControl__imageForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].image; +} +}), new objj_method(sel_getUid("setLabel:forSegment:"), function $CPSegmentedControl__setLabel_forSegment_(self, _cmd, aLabel, aSegment) +{ with(self) +{ + var segment = _segments[aSegment]; + _segments[aSegment].label = aLabel; + objj_msgSend(self, "tileWithChangedSegment:", aSegment); +} +}), new objj_method(sel_getUid("labelForSegment:"), function $CPSegmentedControl__labelForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].label; +} +}), new objj_method(sel_getUid("setMenu:forSegment:"), function $CPSegmentedControl__setMenu_forSegment_(self, _cmd, aMenu, aSegment) +{ with(self) +{ + _segments[aSegment].menu = aMenu; +} +}), new objj_method(sel_getUid("menuForSegment:"), function $CPSegmentedControl__menuForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].menu; +} +}), new objj_method(sel_getUid("setSelected:forSegment:"), function $CPSegmentedControl__setSelected_forSegment_(self, _cmd, isSelected, aSegment) +{ with(self) +{ + var segment = _segments[aSegment]; + if (segment.selected == isSelected) + return; + segment.selected = isSelected; + _themeStates[aSegment] = isSelected ? CPThemeStateSelected : CPThemeStateNormal; + if (isSelected) + { + var oldSelectedSegment = _selectedSegment; + _selectedSegment = aSegment; + if (_trackingMode == CPSegmentSwitchTrackingSelectOne && oldSelectedSegment != aSegment && oldSelectedSegment != -1) + { + _segments[oldSelectedSegment].selected = NO; + _themeStates[oldSelectedSegment] = CPThemeStateNormal; + objj_msgSend(self, "drawSegmentBezel:highlight:", oldSelectedSegment, NO); + } + } + if (_trackingMode != CPSegmentSwitchTrackingMomentary) + objj_msgSend(self, "drawSegmentBezel:highlight:", aSegment, NO); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("isSelectedForSegment:"), function $CPSegmentedControl__isSelectedForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].selected; +} +}), new objj_method(sel_getUid("setEnabled:forSegment:"), function $CPSegmentedControl__setEnabled_forSegment_(self, _cmd, isEnabled, aSegment) +{ with(self) +{ + _segments[aSegment].enabled = isEnabled; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("isEnabledForSegment:"), function $CPSegmentedControl__isEnabledForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].enabled; +} +}), new objj_method(sel_getUid("setTag:forSegment:"), function $CPSegmentedControl__setTag_forSegment_(self, _cmd, aTag, aSegment) +{ with(self) +{ + _segments[aSegment].tag = aTag; +} +}), new objj_method(sel_getUid("tagForSegment:"), function $CPSegmentedControl__tagForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].tag; +} +}), new objj_method(sel_getUid("drawSegmentBezel:highlight:"), function $CPSegmentedControl__drawSegmentBezel_highlight_(self, _cmd, aSegment, shouldHighlight) +{ with(self) +{ + if (shouldHighlight) + _themeStates[aSegment] |= CPThemeStateHighlighted; + else + _themeStates[aSegment] &= ~CPThemeStateHighlighted; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("_leftOffsetForSegment:"), function $CPSegmentedControl___leftOffsetForSegment_(self, _cmd, segment) +{ with(self) +{ + var bezelInset = objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-inset"); + if (segment == 0) + return bezelInset.left; + var thickness = objj_msgSend(self, "currentValueForThemeAttribute:", "divider-thickness"); + return objj_msgSend(self, "_leftOffsetForSegment:", segment - 1) + objj_msgSend(self, "widthForSegment:", segment - 1) + thickness; +} +}), new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPSegmentedControl__rectForEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + var height = objj_msgSend(self, "currentValueForThemeAttribute:", "default-height"), + contentInset = objj_msgSend(self, "currentValueForThemeAttribute:", "content-inset"), + bezelInset = objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-inset"), + bounds = objj_msgSend(self, "bounds"); + if (aName === "left-segment-bezel") + { + return CGRectMake(bezelInset.left, bezelInset.top, contentInset.left, height); + } + else if (aName === "right-segment-bezel") + { + return CGRectMake(CGRectGetMaxX(bounds) - contentInset.right - bezelInset.right, bezelInset.top, contentInset.right, height); + } + else if (aName.substring(0, "segment-bezel".length) == "segment-bezel") + { + var segment = parseInt(aName.substring("segment-bezel-".length), 10), + frame = CGRectCreateCopy(_segments[segment].frame); + if (segment == 0) + { + frame.origin.x += contentInset.left; + frame.size.width -= contentInset.left; + } + if (segment == _segments.length - 1) + frame.size.width -= contentInset.right; + return frame; + } + else if (aName.substring(0, "divider-bezel".length) == "divider-bezel") + { + var segment = parseInt(aName.substring("divider-bezel-".length), 10), + width = objj_msgSend(self, "widthForSegment:", segment), + left = objj_msgSend(self, "_leftOffsetForSegment:", segment), + thickness = objj_msgSend(self, "currentValueForThemeAttribute:", "divider-thickness"); + return CGRectMake(left + width, bezelInset.top, thickness, height); + } + else if (aName.substring(0, "segment-content".length) == "segment-content") + { + var segment = parseInt(aName.substring("segment-content-".length), 10); + return objj_msgSend(self, "contentFrameForSegment:", segment); + } + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "rectForEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPSegmentedControl__createEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName.substring(0, "segment-content".length) == "segment-content") + return objj_msgSend(objj_msgSend(_CPImageAndTextView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + return objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPSegmentedControl__layoutSubviews(self, _cmd) +{ with(self) +{ + var leftCapColor = objj_msgSend(self, "valueForThemeAttribute:inState:", "left-segment-bezel-color", _themeStates[0]); + var leftBezelView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "left-segment-bezel", CPWindowBelow, nil); + objj_msgSend(leftBezelView, "setBackgroundColor:", leftCapColor); + var rightCapColor = objj_msgSend(self, "valueForThemeAttribute:inState:", "right-segment-bezel-color", _themeStates[_themeStates.length - 1]); + var rightBezelView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "right-segment-bezel", CPWindowBelow, nil); + objj_msgSend(rightBezelView, "setBackgroundColor:", rightCapColor); + for (var i=0, count = _themeStates.length; i= _segments.length) + return; + var segment = _segments[aSegment], + segmentWidth = segment.width, + themeState = _themeStates[aSegment] | (_themeState & CPThemeStateDisabled), + contentInset = objj_msgSend(self, "valueForThemeAttribute:inState:", "content-inset", themeState), + font = objj_msgSend(self, "valueForThemeAttribute:inState:", "font", themeState); + if (!segmentWidth) + { + if (segment.image && segment.label) + segmentWidth = objj_msgSend(segment.label, "sizeWithFont:", font).width + objj_msgSend(segment.image, "size").width + contentInset.left + contentInset.right; + else if (segment.image) + segmentWidth = objj_msgSend(segment.image, "size").width + contentInset.left + contentInset.right; + else if (segment.label) + segmentWidth = objj_msgSend(segment.label, "sizeWithFont:", font).width + contentInset.left + contentInset.right; + else + segmentWidth = 0.0; + } + var delta = segmentWidth - CGRectGetWidth(segment.frame); + if (!delta) + return; + var frame = objj_msgSend(self, "frame"); + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(frame) + delta, CGRectGetHeight(frame))); + segment.width = segmentWidth; + segment.frame = objj_msgSend(self, "frameForSegment:", aSegment);; + var index = aSegment + 1; + for (; index < _segments.length; ++index) + { + _segments[index].frame.origin.x += delta; + objj_msgSend(self, "drawSegmentBezel:highlight:", index, NO); + objj_msgSend(self, "drawSegment:highlight:", index, NO); + } + objj_msgSend(self, "drawSegmentBezel:highlight:", aSegment, NO); + objj_msgSend(self, "drawSegment:highlight:", aSegment, NO); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("frameForSegment:"), function $CPSegmentedControl__frameForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return objj_msgSend(self, "bezelFrameForSegment:", aSegment); +} +}), new objj_method(sel_getUid("bezelFrameForSegment:"), function $CPSegmentedControl__bezelFrameForSegment_(self, _cmd, aSegment) +{ with(self) +{ + var height = objj_msgSend(self, "currentValueForThemeAttribute:", "default-height"), + bezelInset = objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-inset"), + width = objj_msgSend(self, "widthForSegment:", aSegment), + left = objj_msgSend(self, "_leftOffsetForSegment:", aSegment); + return CGRectMake(left, bezelInset.top, width, height); +} +}), new objj_method(sel_getUid("contentFrameForSegment:"), function $CPSegmentedControl__contentFrameForSegment_(self, _cmd, aSegment) +{ with(self) +{ + var height = objj_msgSend(self, "currentValueForThemeAttribute:", "default-height"), + contentInset = objj_msgSend(self, "currentValueForThemeAttribute:", "content-inset"), + width = objj_msgSend(self, "widthForSegment:", aSegment), + left = objj_msgSend(self, "_leftOffsetForSegment:", aSegment); + return CGRectMake(left + contentInset.left, contentInset.top, width - contentInset.left - contentInset.right, height - contentInset.top - contentInset.bottom); +} +}), new objj_method(sel_getUid("testSegment:"), function $CPSegmentedControl__testSegment_(self, _cmd, aPoint) +{ with(self) +{ + var location = objj_msgSend(self, "convertPoint:fromView:", aPoint, nil), + count = _segments.length; + while (count--) + if (CGRectContainsPoint(_segments[count].frame, aPoint)) + return count; + return -1; +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPSegmentedControl__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (!objj_msgSend(self, "isEnabled")) + return; + objj_msgSend(self, "trackSegment:", anEvent); +} +}), new objj_method(sel_getUid("mouseUp:"), function $CPSegmentedControl__mouseUp_(self, _cmd, anEvent) +{ with(self) +{ +} +}), new objj_method(sel_getUid("trackSegment:"), function $CPSegmentedControl__trackSegment_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"), + location = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + if (type == CPLeftMouseUp) + { + if (_trackingSegment == -1) + return; + if (CGRectContainsPoint(_segments[_trackingSegment].frame, location)) + { + if (_trackingMode == CPSegmentSwitchTrackingSelectAny) + { + objj_msgSend(self, "setSelected:forSegment:", !objj_msgSend(self, "isSelectedForSegment:", _trackingSegment), _trackingSegment); + _selectedSegment = _trackingSegment; + } + else + objj_msgSend(self, "setSelected:forSegment:", YES, _trackingSegment); + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); + if (_trackingMode == CPSegmentSwitchTrackingMomentary) + { + objj_msgSend(self, "setSelected:forSegment:", NO, _trackingSegment); + _selectedSegment = -1; + } + } + objj_msgSend(self, "drawSegmentBezel:highlight:", _trackingSegment, NO); + _trackingSegment = -1; + return; + } + if (type == CPLeftMouseDown) + { + _trackingHighlighted = YES; + _trackingSegment = objj_msgSend(self, "testSegment:", location); + objj_msgSend(self, "drawSegmentBezel:highlight:", _trackingSegment, YES); + } + else if (type == CPLeftMouseDragged) + { + if (_trackingSegment == -1) + return; + var highlighted = CGRectContainsPoint(_segments[_trackingSegment].frame, location); + if (highlighted != _trackingHighlighted) + { + _trackingHighlighted = highlighted; + objj_msgSend(self, "drawSegmentBezel:highlight:", _trackingSegment, _trackingHighlighted); + } + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackSegment:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("setFont:"), function $CPSegmentedControl__setFont_(self, _cmd, aFont) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setFont:", aFont); + objj_msgSend(self, "tileWithChangedSegment:", 0); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeClass"), function $CPSegmentedControl__themeClass(self, _cmd) +{ with(self) +{ + return "segmented-control"; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPSegmentedControl__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [CPCenterTextAlignment, CPCenterVerticalTextAlignment, CPImageLeft, CPScaleNone, { top:(0), right:(0), bottom:(0), left:(0) }, { top:(0), right:(0), bottom:(0), left:(0) }, nil, nil, nil, nil, 1.0, 24.0], ["alignment", "vertical-alignment", "image-position", "image-scaling", "bezel-inset", "content-inset", "left-segment-bezel-color", "right-segment-bezel-color", "center-segment-bezel-color", "divider-bezel-color", "divider-thickness", "default-height"]); +} +})]); +} +var CPSegmentedControlSegmentsKey = "CPSegmentedControlSegmentsKey", + CPSegmentedControlSelectedKey = "CPSegmentedControlSelectedKey", + CPSegmentedControlSegmentStyleKey = "CPSegmentedControlSegmentStyleKey", + CPSegmentedControlTrackingModeKey = "CPSegmentedControlTrackingModeKey"; +{ +var the_class = objj_getClass("CPSegmentedControl") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPSegmentedControl\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPSegmentedControl__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder); + if (self) + { + var frame = objj_msgSend(self, "frame"), + originalWidth = frame.size.width; + frame.size.width = 0; + objj_msgSend(self, "setFrame:", frame); + _segments = objj_msgSend(aCoder, "decodeObjectForKey:", CPSegmentedControlSegmentsKey); + _segmentStyle = objj_msgSend(aCoder, "decodeIntForKey:", CPSegmentedControlSegmentStyleKey); + _themeStates = []; + if (objj_msgSend(aCoder, "containsValueForKey:", CPSegmentedControlSelectedKey)) + _selectedSegment = objj_msgSend(aCoder, "decodeIntForKey:", CPSegmentedControlSelectedKey); + else + _selectedSegment = -1; + if (objj_msgSend(aCoder, "containsValueForKey:", CPSegmentedControlTrackingModeKey)) + _trackingMode = objj_msgSend(aCoder, "decodeIntForKey:", CPSegmentedControlTrackingModeKey); + else + _trackingMode = CPSegmentSwitchTrackingSelectOne; + for (var i = 0; i < _segments.length; i++) + { + _themeStates[i] = _segments[i].selected ? CPThemeStateSelected : CPThemeStateNormal; + objj_msgSend(self, "tileWithChangedSegment:", i); + } + var difference = MAX(originalWidth - objj_msgSend(self, "frame").size.width, 0.0), + remainingWidth = FLOOR(difference / _segments.length); + for (var i=0; i < _segments.length; i++) + objj_msgSend(self, "setWidth:forSegment:", _segments[i].width + remainingWidth, i); + objj_msgSend(self, "tileWithChangedSegment:", 0); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPSegmentedControl__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _segments, CPSegmentedControlSegmentsKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _selectedSegment, CPSegmentedControlSelectedKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _segmentStyle, CPSegmentedControlSegmentStyleKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _trackingMode, CPSegmentedControlTrackingModeKey); +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "_CPSegmentItem"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("image"), new objj_ivar("label"), new objj_ivar("menu"), new objj_ivar("selected"), new objj_ivar("enabled"), new objj_ivar("tag"), new objj_ivar("width"), new objj_ivar("frame")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $_CPSegmentItem__init(self, _cmd) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init")) + { + image = nil; + label = ""; + menu = nil; + selected = NO; + enabled = NO; + tag = 0; + width = 0; + frame = CGRectMakeZero(); + } + return self; +} +})]); +} +var CPSegmentItemImageKey = "CPSegmentItemImageKey", + CPSegmentItemLabelKey = "CPSegmentItemLabelKey", + CPSegmentItemMenuKey = "CPSegmentItemMenuKey", + CPSegmentItemSelectedKey = "CPSegmentItemSelectedKey", + CPSegmentItemEnabledKey = "CPSegmentItemEnabledKey", + CPSegmentItemTagKey = "CPSegmentItemTagKey", + CPSegmentItemWidthKey = "CPSegmentItemWidthKey"; +{ +var the_class = objj_getClass("_CPSegmentItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPSegmentItem\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPSegmentItem__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + image = objj_msgSend(aCoder, "decodeObjectForKey:", CPSegmentItemImageKey); + label = objj_msgSend(aCoder, "decodeObjectForKey:", CPSegmentItemLabelKey); + menu = objj_msgSend(aCoder, "decodeObjectForKey:", CPSegmentItemMenuKey); + selected = objj_msgSend(aCoder, "decodeBoolForKey:", CPSegmentItemSelectedKey); + enabled = objj_msgSend(aCoder, "decodeBoolForKey:", CPSegmentItemEnabledKey); + tag = objj_msgSend(aCoder, "decodeIntForKey:", CPSegmentItemTagKey); + width = objj_msgSend(aCoder, "decodeFloatForKey:", CPSegmentItemWidthKey); + frame = CGRectMakeZero(); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPSegmentItem__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", image, CPSegmentItemImageKey); + objj_msgSend(aCoder, "encodeObject:forKey:", label, CPSegmentItemLabelKey); + objj_msgSend(aCoder, "encodeObject:forKey:", menu, CPSegmentItemMenuKey); + objj_msgSend(aCoder, "encodeBool:forKey:", selected, CPSegmentItemSelectedKey); + objj_msgSend(aCoder, "encodeBool:forKey:", enabled, CPSegmentItemEnabledKey); + objj_msgSend(aCoder, "encodeInt:forKey:", tag, CPSegmentItemTagKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", width, CPSegmentItemWidthKey); +} +})]); +} + +p;10;CPShadow.jI;21;Foundation/CPObject.jc;1833; +{var the_class = objj_allocateClassPair(CPObject, "CPShadow"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_offset"), new objj_ivar("_blurRadius"), new objj_ivar("_color"), new objj_ivar("_cssString")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("_initWithOffset:blurRadius:color:"), function $CPShadow___initWithOffset_blurRadius_color_(self, _cmd, anOffset, aBlurRadius, aColor) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _offset = anOffset; + _blurRadius = aBlurRadius; + _color = aColor; + _cssString = objj_msgSend(_color, "cssString") + " " + Math.round(anOffset.width) + "px " + Math.round(anOffset.height) + "px " + Math.round(_blurRadius) + "px"; + } + return self; +} +}), new objj_method(sel_getUid("shadowOffset"), function $CPShadow__shadowOffset(self, _cmd) +{ with(self) +{ + return _offset; +} +}), new objj_method(sel_getUid("shadowBlurRadius"), function $CPShadow__shadowBlurRadius(self, _cmd) +{ with(self) +{ + return _blurRadius; +} +}), new objj_method(sel_getUid("shadowColor"), function $CPShadow__shadowColor(self, _cmd) +{ with(self) +{ + return _color; +} +}), new objj_method(sel_getUid("cssString"), function $CPShadow__cssString(self, _cmd) +{ with(self) +{ + return _cssString; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("shadowWithOffset:blurRadius:color:"), function $CPShadow__shadowWithOffset_blurRadius_color_(self, _cmd, anOffset, aBlurRadius, aColor) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPShadow, "alloc"), "_initWithOffset:blurRadius:color:", anOffset, aBlurRadius, aColor); +} +})]); +} + +p;14;CPShadowView.jI;21;Foundation/CPBundle.ji;12;CGGeometry.ji;9;CPImage.ji;13;CPImageView.ji;8;CPView.jc;7793; +CPLightShadow = 0; +CPHeavyShadow = 1; +var CPShadowViewLightBackgroundColor = nil, + CPShadowViewHeavyBackgroundColor = nil; +var LIGHT_LEFT_INSET = 3.0, + LIGHT_RIGHT_INSET = 3.0, + LIGHT_TOP_INSET = 3.0, + LIGHT_BOTTOM_INSET = 5.0, + HEAVY_LEFT_INSET = 7.0, + HEAVY_RIGHT_INSET = 7.0, + HEAVY_TOP_INSET = 5.0, + HEAVY_BOTTOM_INSET = 5.0; +{var the_class = objj_allocateClassPair(CPView, "CPShadowView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_weight")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPShadowView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _weight = CPLightShadow; + objj_msgSend(self, "setBackgroundColor:", CPShadowViewLightBackgroundColor); + objj_msgSend(self, "setHitTests:", NO); + } + return self; +} +}), new objj_method(sel_getUid("setWeight:"), function $CPShadowView__setWeight_(self, _cmd, aWeight) +{ with(self) +{ + if (_weight == aWeight) + return; + _weight = aWeight; + if (_weight == CPLightShadow) + objj_msgSend(self, "setBackgroundColor:", CPShadowViewLightBackgroundColor); + else + objj_msgSend(self, "setBackgroundColor:", CPShadowViewHeavyBackgroundColor); +} +}), new objj_method(sel_getUid("leftInset"), function $CPShadowView__leftInset(self, _cmd) +{ with(self) +{ + return _weight == CPLightShadow ? LIGHT_LEFT_INSET : HEAVY_LEFT_INSET; +} +}), new objj_method(sel_getUid("rightInset"), function $CPShadowView__rightInset(self, _cmd) +{ with(self) +{ + return _weight == CPLightShadow ? LIGHT_RIGHT_INSET : HEAVY_RIGHT_INSET; +} +}), new objj_method(sel_getUid("topInset"), function $CPShadowView__topInset(self, _cmd) +{ with(self) +{ + return _weight == CPLightShadow ? LIGHT_TOP_INSET : HEAVY_TOP_INSET; +} +}), new objj_method(sel_getUid("bottomInset"), function $CPShadowView__bottomInset(self, _cmd) +{ with(self) +{ + return _weight == CPLightShadow ? LIGHT_BOTTOM_INSET : HEAVY_BOTTOM_INSET; +} +}), new objj_method(sel_getUid("horizontalInset"), function $CPShadowView__horizontalInset(self, _cmd) +{ with(self) +{ + if (_weight == CPLightShadow) + return LIGHT_LEFT_INSET + LIGHT_RIGHT_INSET; + return HEAVY_LEFT_INSET + HEAVY_RIGHT_INSET; +} +}), new objj_method(sel_getUid("verticalInset"), function $CPShadowView__verticalInset(self, _cmd) +{ with(self) +{ + if (_weight == CPLightShadow) + return LIGHT_TOP_INSET + LIGHT_BOTTOM_INSET; + return HEAVY_TOP_INSET + HEAVY_BOTTOM_INSET; +} +}), new objj_method(sel_getUid("frameForContentFrame:"), function $CPShadowView__frameForContentFrame_(self, _cmd, aFrame) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "class"), "frameForContentFrame:withWeight:", aFrame, _weight); +} +}), new objj_method(sel_getUid("setFrameForContentFrame:"), function $CPShadowView__setFrameForContentFrame_(self, _cmd, aFrame) +{ with(self) +{ + objj_msgSend(self, "setFrame:", objj_msgSend(self, "frameForContentFrame:", aFrame)); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPShadowView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPShadowView, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(self, "class")); + CPShadowViewLightBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightTopLeft.png"), CGSizeMake(9.0, 9.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightTop.png"), CGSizeMake(1.0, 9.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightTopRight.png"), CGSizeMake(9.0, 9.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightLeft.png"), CGSizeMake(9.0, 1.0)), + nil, + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightRight.png"), CGSizeMake(9.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightBottomLeft.png"), CGSizeMake(9.0, 9.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightBottom.png"), CGSizeMake(1.0, 9.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightBottomRight.png"), CGSizeMake(9.0, 9.0)) + ])); + CPShadowViewHeavyBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyTopLeft.png"), CGSizeMake(17.0, 17.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyTop.png"), CGSizeMake(1.0, 17.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyTopRight.png"), CGSizeMake(17.0, 17.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyLeft.png"), CGSizeMake(17.0, 1.0)), + nil, + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyRight.png"), CGSizeMake(17.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyBottomLeft.png"), CGSizeMake(17.0, 17.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyBottom.png"), CGSizeMake(1.0, 17.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyBottomRight.png"), CGSizeMake(17.0, 17.0)) + ])); +} +}), new objj_method(sel_getUid("frameForContentFrame:withWeight:"), function $CPShadowView__frameForContentFrame_withWeight_(self, _cmd, aFrame, aWeight) +{ with(self) +{ + if (aWeight == CPLightShadow) + return CGRectMake((aFrame.origin.x) - LIGHT_LEFT_INSET, (aFrame.origin.y) - LIGHT_TOP_INSET, (aFrame.size.width) + LIGHT_LEFT_INSET + LIGHT_RIGHT_INSET, (aFrame.size.height) + LIGHT_TOP_INSET + LIGHT_BOTTOM_INSET); + else + return CGRectMake((aFrame.origin.x) - HEAVY_LEFT_INSET, (aFrame.origin.y) - HEAVY_TOP_INSET, (aFrame.size.width) + HEAVY_LEFT_INSET + HEAVY_RIGHT_INSET, (aFrame.size.height) + HEAVY_TOP_INSET + HEAVY_BOTTOM_INSET); +} +})]); +} + +p;10;CPSlider.ji;11;CPControl.jc;15669; +CPLinearSlider = 0; +CPCircularSlider = 1; +{var the_class = objj_allocateClassPair(CPControl, "CPSlider"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_minValue"), new objj_ivar("_maxValue"), new objj_ivar("_altIncrementValue"), new objj_ivar("_isVertical")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPSlider__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + _minValue = 0.0; + _maxValue = 100.0; + objj_msgSend(self, "setObjectValue:", 50.0); + objj_msgSend(self, "setContinuous:", YES); + objj_msgSend(self, "_recalculateIsVertical"); + } + return self; +} +}), new objj_method(sel_getUid("setMinValue:"), function $CPSlider__setMinValue_(self, _cmd, aMinimumValue) +{ with(self) +{ + if (_minValue === aMinimumValue) + return; + _minValue = aMinimumValue; + var doubleValue = objj_msgSend(self, "doubleValue"); + if (doubleValue < _minValue) + objj_msgSend(self, "setDoubleValue:", _minValue); +} +}), new objj_method(sel_getUid("minValue"), function $CPSlider__minValue(self, _cmd) +{ with(self) +{ + return _minValue; +} +}), new objj_method(sel_getUid("setMaxValue:"), function $CPSlider__setMaxValue_(self, _cmd, aMaximumValue) +{ with(self) +{ + if (_maxValue === aMaximumValue) + return; + _maxValue = aMaximumValue; + var doubleValue = objj_msgSend(self, "doubleValue"); + if (doubleValue > _maxValue) + objj_msgSend(self, "setDoubleValue:", _maxValue); +} +}), new objj_method(sel_getUid("maxValue"), function $CPSlider__maxValue(self, _cmd) +{ with(self) +{ + return _maxValue; +} +}), new objj_method(sel_getUid("setObjectValue:"), function $CPSlider__setObjectValue_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setObjectValue:", MIN(MAX(aValue, _minValue), _maxValue)); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("setSliderType:"), function $CPSlider__setSliderType_(self, _cmd, aSliderType) +{ with(self) +{ + if (aSliderType === CPCircularSlider) + objj_msgSend(self, "setThemeState:", CPThemeStateCircular); + else + objj_msgSend(self, "unsetThemeState:", CPThemeStateCircular); +} +}), new objj_method(sel_getUid("sliderType"), function $CPSlider__sliderType(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "hasThemeState:", CPThemeStateCircular) ? CPCircularSlider : CPLinearSlider; +} +}), new objj_method(sel_getUid("trackRectForBounds:"), function $CPSlider__trackRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + if (objj_msgSend(self, "hasThemeState:", CPThemeStateCircular)) + { + var originalBounds = CGRectCreateCopy(bounds); + bounds.size.width = MIN(bounds.size.width, bounds.size.height); + bounds.size.height = bounds.size.width; + if (bounds.size.width < originalBounds.size.width) + bounds.origin.x += (originalBounds.size.width - bounds.size.width) / 2.0; + else + bounds.origin.y += (originalBounds.size.height - bounds.size.height) / 2.0; + } + else + { + var trackWidth = objj_msgSend(self, "currentValueForThemeAttribute:", "track-width"); + if (trackWidth <= 0) + return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + if (objj_msgSend(self, "isVertical")) + { + bounds.origin.x = ((bounds.size.width) - trackWidth) / 2.0; + bounds.size.width = trackWidth; + } + else + { + bounds.origin.y = ((bounds.size.height) - trackWidth) / 2.0; + bounds.size.height = trackWidth; + } + } + return bounds; +} +}), new objj_method(sel_getUid("knobRectForBounds:"), function $CPSlider__knobRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + var knobSize = objj_msgSend(self, "currentValueForThemeAttribute:", "knob-size"); + if (knobSize.width <= 0 || knobSize.height <= 0) + return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + var knobRect = { origin: { x:0.0, y:0.0 }, size: { width:knobSize.width, height:knobSize.height } }, + trackRect = objj_msgSend(self, "trackRectForBounds:", bounds); + if (!trackRect || (trackRect.size.width <= 0.0 || trackRect.size.height <= 0.0)) + trackRect = bounds; + if (objj_msgSend(self, "hasThemeState:", CPThemeStateCircular)) + { + var angle = 3*PI_2 - (1.0 - objj_msgSend(self, "doubleValue") - _minValue) / (_maxValue - _minValue) * PI2, + radius = CGRectGetWidth(trackRect) / 2.0 - 8.0; + knobRect.origin.x = radius * COS(angle) + CGRectGetMidX(trackRect) - 3.0; + knobRect.origin.y = radius * SIN(angle) + CGRectGetMidY(trackRect) - 2.0; + } + else if (objj_msgSend(self, "isVertical")) + { + knobRect.origin.x = (trackRect.origin.x + (trackRect.size.width) / 2.0) - knobSize.width / 2.0; + knobRect.origin.y = ((objj_msgSend(self, "doubleValue") - _minValue) / (_maxValue - _minValue)) * ((trackRect.size.height) - knobSize.height); + } + else + { + knobRect.origin.x = ((objj_msgSend(self, "doubleValue") - _minValue) / (_maxValue - _minValue)) * ((trackRect.size.width) - knobSize.width); + knobRect.origin.y = (trackRect.origin.y + (trackRect.size.height) / 2.0) - knobSize.height / 2.0; + } + return knobRect; +} +}), new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPSlider__rectForEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "track-view") + return objj_msgSend(self, "trackRectForBounds:", objj_msgSend(self, "bounds")); + else if (aName === "knob-view") + return objj_msgSend(self, "knobRectForBounds:", objj_msgSend(self, "bounds")); + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "rectForEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPSlider__createEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "track-view" || aName === "knob-view") + { + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "init"); + objj_msgSend(view, "setHitTests:", NO); + return view; + } + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "createEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("setAltIncrementValue:"), function $CPSlider__setAltIncrementValue_(self, _cmd, anAltIncrementValue) +{ with(self) +{ + _altIncrementValue = anAltIncrementValue; +} +}), new objj_method(sel_getUid("altIncrementValue"), function $CPSlider__altIncrementValue(self, _cmd) +{ with(self) +{ + return _altIncrementValue; +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPSlider__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setFrameSize:", aSize); + objj_msgSend(self, "_recalculateIsVertical"); +} +}), new objj_method(sel_getUid("_recalculateIsVertical"), function $CPSlider___recalculateIsVertical(self, _cmd) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + width = (bounds.size.width), + height = (bounds.size.height); + _isVertical = width < height ? 1 : (width > height ? 0 : -1); + if (_isVertical === 1) + objj_msgSend(self, "setThemeState:", CPThemeStateVertical); + else if (_isVertical === 0) + objj_msgSend(self, "unsetThemeState:", CPThemeStateVertical); +} +}), new objj_method(sel_getUid("isVertical"), function $CPSlider__isVertical(self, _cmd) +{ with(self) +{ + return _isVertical; +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPSlider__layoutSubviews(self, _cmd) +{ with(self) +{ + var trackView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "track-view", CPWindowBelow, "knob-view"); + if (trackView) + objj_msgSend(trackView, "setBackgroundColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "track-color")); + var knobView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "knob-view", CPWindowAbove, "track-view"); + if (knobView) + objj_msgSend(knobView, "setBackgroundColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "knob-color")); +} +}), new objj_method(sel_getUid("tracksMouseOutsideOfFrame"), function $CPSlider__tracksMouseOutsideOfFrame(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("_valueAtPoint:"), function $CPSlider___valueAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + knobRect = objj_msgSend(self, "knobRectForBounds:", bounds), + trackRect = objj_msgSend(self, "trackRectForBounds:", bounds); + if (objj_msgSend(self, "hasThemeState:", CPThemeStateCircular)) + { + var knobWidth = (knobRect.size.width); + trackRect.origin.x += knobWidth / 2; + trackRect.size.width -= knobWidth; + var minValue = objj_msgSend(self, "minValue"), + dx = aPoint.x - (trackRect.origin.x + (trackRect.size.width) / 2.0), + dy = aPoint.y - (trackRect.origin.y + (trackRect.size.height) / 2.0); + return MAX(0.0, MIN(1.0, 1.0 - (3 * PI_2 - ATAN2(dy, dx)) % PI2 / PI2)) * (objj_msgSend(self, "maxValue") - minValue) + minValue; + } + else if (objj_msgSend(self, "isVertical")) + { + var knobHeight = (knobRect.size.height); + trackRect.origin.y += knobHeight / 2; + trackRect.size.height -= knobHeight; + var minValue = objj_msgSend(self, "minValue"); + return MAX(0.0, MIN(1.0, (aPoint.y - (trackRect.origin.y)) / (trackRect.size.height))) * (objj_msgSend(self, "maxValue") - minValue) + minValue; + } + else + { + var knobWidth = (knobRect.size.width); + trackRect.origin.x += knobWidth / 2; + trackRect.size.width -= knobWidth; + var minValue = objj_msgSend(self, "minValue"); + return MAX(0.0, MIN(1.0, (aPoint.x - (trackRect.origin.x)) / (trackRect.size.width))) * (objj_msgSend(self, "maxValue") - minValue) + minValue; + } +} +}), new objj_method(sel_getUid("startTrackingAt:"), function $CPSlider__startTrackingAt_(self, _cmd, aPoint) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + knobRect = objj_msgSend(self, "knobRectForBounds:", { origin: { x:bounds.origin.x, y:bounds.origin.y }, size: { width:bounds.size.width, height:bounds.size.height } }); + if ((aPoint.x >= (knobRect.origin.x) && aPoint.y >= (knobRect.origin.y) && aPoint.x < (knobRect.origin.x + knobRect.size.width) && aPoint.y < (knobRect.origin.y + knobRect.size.height))) + _dragOffset = { width:(knobRect.origin.x + (knobRect.size.width) / 2.0) - aPoint.x, height:(knobRect.origin.y + (knobRect.size.height) / 2.0) - aPoint.y }; + else + { + var trackRect = objj_msgSend(self, "trackRectForBounds:", bounds); + if (trackRect && (aPoint.x >= (trackRect.origin.x) && aPoint.y >= (trackRect.origin.y) && aPoint.x < (trackRect.origin.x + trackRect.size.width) && aPoint.y < (trackRect.origin.y + trackRect.size.height))) + { + _dragOffset = { width:0.0, height:0.0 }; + objj_msgSend(self, "setObjectValue:", objj_msgSend(self, "_valueAtPoint:", aPoint)); + } + else + return NO; + } + objj_msgSend(self, "setHighlighted:", YES); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + return YES; +} +}), new objj_method(sel_getUid("continueTracking:at:"), function $CPSlider__continueTracking_at_(self, _cmd, lastPoint, aPoint) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", objj_msgSend(self, "_valueAtPoint:", { x:aPoint.x + _dragOffset.width, y:aPoint.y + _dragOffset.height })); + return YES; +} +}), new objj_method(sel_getUid("stopTracking:at:mouseIsUp:"), function $CPSlider__stopTracking_at_mouseIsUp_(self, _cmd, lastPoint, aPoint, mouseIsUp) +{ with(self) +{ + objj_msgSend(self, "setHighlighted:", NO); + if (objj_msgSend(_target, "respondsToSelector:", sel_getUid("sliderDidFinish:"))) + objj_msgSend(_target, "sliderDidFinish:", self); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("setContinuous:"), function $CPSlider__setContinuous_(self, _cmd, flag) +{ with(self) +{ + if (flag) + _sendActionOn |= CPLeftMouseDraggedMask; + else + _sendActionOn &= ~CPLeftMouseDraggedMask; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeClass"), function $CPSlider__themeClass(self, _cmd) +{ with(self) +{ + return "slider"; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPSlider__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [nil, { width:0.0, height:0.0 }, 0.0, nil], ["knob-color", "knob-size", "track-width", "track-color"]); +} +})]); +} +var CPSliderMinValueKey = "CPSliderMinValueKey", + CPSliderMaxValueKey = "CPSliderMaxValueKey", + CPSliderAltIncrValueKey = "CPSliderAltIncrValueKey"; +{ +var the_class = objj_getClass("CPSlider") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPSlider\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPSlider__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + _minValue = objj_msgSend(aCoder, "decodeDoubleForKey:", CPSliderMinValueKey); + _maxValue = objj_msgSend(aCoder, "decodeDoubleForKey:", CPSliderMaxValueKey); + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder); + if (self) + { + _altIncrementValue = objj_msgSend(aCoder, "decodeDoubleForKey:", CPSliderAltIncrValueKey); + objj_msgSend(self, "setContinuous:", YES); + objj_msgSend(self, "_recalculateIsVertical"); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPSlider__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeDouble:forKey:", _minValue, CPSliderMinValueKey); + objj_msgSend(aCoder, "encodeDouble:forKey:", _maxValue, CPSliderMaxValueKey); + objj_msgSend(aCoder, "encodeDouble:forKey:", _altIncrementValue, CPSliderAltIncrValueKey); +} +})]); +} +{ +var the_class = objj_getClass("CPSlider") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPSlider\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("value"), function $CPSlider__value(self, _cmd) +{ with(self) +{ + CPLog.warn("[CPSlider value] is deprecated, use doubleValue or objectValue instead."); + return objj_msgSend(self, "doubleValue"); +} +}), new objj_method(sel_getUid("setValue:"), function $CPSlider__setValue_(self, _cmd, aValue) +{ with(self) +{ + CPLog.warn("[CPSlider setValue:] is deprecated, use setDoubleValue: or setObjectValue: instead."); + objj_msgSend(self, "setObjectValue:", aValue); +} +})]); +} + +p;21;CPSliderColorPicker.ji;15;CPColorPicker.jc;17294; +{var the_class = objj_allocateClassPair(CPColorPicker, "CPSliderColorPicker"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_contentView"), new objj_ivar("_redSlider"), new objj_ivar("_greenSlider"), new objj_ivar("_blueSlider"), new objj_ivar("_hueSlider"), new objj_ivar("_saturationSlider"), new objj_ivar("_brightnessSlider"), new objj_ivar("_rgbLabel"), new objj_ivar("_hsbLabel"), new objj_ivar("_redLabel"), new objj_ivar("_greenLabel"), new objj_ivar("_blueLabel"), new objj_ivar("_hueLabel"), new objj_ivar("_saturationLabel"), new objj_ivar("_brightnessLabel"), new objj_ivar("_hexLabel"), new objj_ivar("_redValue"), new objj_ivar("_greenValue"), new objj_ivar("_blueValue"), new objj_ivar("_hueValue"), new objj_ivar("_saturationValue"), new objj_ivar("_brightnessValue"), new objj_ivar("_hexValue")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithPickerMask:colorPanel:"), function $CPSliderColorPicker__initWithPickerMask_colorPanel_(self, _cmd, mask, owningColorPanel) +{ with(self) +{ + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPColorPicker") }, "initWithPickerMask:colorPanel:", mask, owningColorPanel); +} +}), new objj_method(sel_getUid("initView"), function $CPSliderColorPicker__initView(self, _cmd) +{ with(self) +{ + aFrame = CPRectMake(0, 0, CPColorPickerViewWidth, CPColorPickerViewHeight); + _contentView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", aFrame); + objj_msgSend(_contentView, "setAutoresizingMask:", CPViewWidthSizable|CPViewHeightSizable); + _rgbLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 10, 100, 20)); + objj_msgSend(_rgbLabel, "setStringValue:", "Red, Green, Blue"); + objj_msgSend(_rgbLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _redLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 35, 15, 20)); + objj_msgSend(_redLabel, "setStringValue:", "R"); + objj_msgSend(_redLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _redSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CPRectMake(15, 35, aFrame.size.width - 70, 20)); + objj_msgSend(_redSlider, "setMaxValue:", 1.0); + objj_msgSend(_redSlider, "setMinValue:", 0.0); + objj_msgSend(_redSlider, "setTarget:", self); + objj_msgSend(_redSlider, "setAction:", sel_getUid("sliderChanged:")); + objj_msgSend(_redSlider, "setAutoresizingMask:", CPViewWidthSizable); + var updateFunction = function(aDOMEvent) + { + if(isNaN(this.value)) + return; + switch(this) + { + case _redValue: objj_msgSend(_redSlider, "setFloatValue:", MAX(MIN(ROUND(this.value), 255) / 255.0, 0)); + break; + case _greenValue: objj_msgSend(_greenSlider, "setFloatValue:", MAX(MIN(ROUND(this.value), 255) / 255.0, 0)); + break; + case _blueValue: objj_msgSend(_blueSlider, "setFloatValue:", MAX(MIN(ROUND(this.value), 255) / 255.0, 0)); + break; + case _hueValue: objj_msgSend(_hueSlider, "setFloatValue:", MAX(MIN(ROUND(this.value), 360), 0)); + break; + case _saturationValue: objj_msgSend(_saturationSlider, "setFloatValue:", MAX(MIN(ROUND(this.value), 100), 0)); + break; + case _brightnessValue: objj_msgSend(_brightnessSlider, "setFloatValue:", MAX(MIN(ROUND(this.value), 100), 0)); + break; + } + this.blur(); + }; + var keypressFunction = function(aDOMEvent) + { + aDOMEvent = aDOMEvent || window.event; + if (aDOMEvent.keyCode == 13) + { + updateFunction(aDOMEvent); + if(aDOMEvent.preventDefault) + aDOMEvent.preventDefault(); + else if(aDOMEvent.stopPropagation) + aDOMEvent.stopPropagation(); + } + } + var redValue = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(aFrame.size.width - 45, 35, 45, 20)); + objj_msgSend(redValue, "setAutoresizingMask:", CPViewMinXMargin); + _redValue = document.createElement("input"); + _redValue.style.width = "40px"; + _redValue.style.backgroundColor = "transparent"; + _redValue.style.border = "1px solid black"; + _redValue.style.color = "black"; + _redValue.style.position = "absolute"; + _redValue.style.top = "0px"; + _redValue.style.left = "0px"; + _redValue.onchange = updateFunction; + redValue._DOMElement.appendChild(_redValue); + objj_msgSend(_contentView, "addSubview:", redValue); + _greenLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 58, 15, 20)); + objj_msgSend(_greenLabel, "setStringValue:", "G"); + objj_msgSend(_greenLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _greenSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CPRectMake(15, 58, aFrame.size.width - 70, 20)); + objj_msgSend(_greenSlider, "setMaxValue:", 1.0); + objj_msgSend(_greenSlider, "setMinValue:", 0.0); + objj_msgSend(_greenSlider, "setTarget:", self); + objj_msgSend(_greenSlider, "setAction:", sel_getUid("sliderChanged:")); + objj_msgSend(_greenSlider, "setAutoresizingMask:", CPViewWidthSizable); + var greenValue = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(aFrame.size.width - 45, 58, 45, 20)); + objj_msgSend(greenValue, "setAutoresizingMask:", CPViewMinXMargin); + _greenValue = _redValue.cloneNode(false); + _greenValue.onchange = updateFunction; + greenValue._DOMElement.appendChild(_greenValue); + objj_msgSend(_contentView, "addSubview:", greenValue); + _blueLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 81, 15, 20)); + objj_msgSend(_blueLabel, "setStringValue:", "B"); + objj_msgSend(_blueLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _blueSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CPRectMake(15, 81, aFrame.size.width - 70, 20)); + objj_msgSend(_blueSlider, "setMaxValue:", 1.0); + objj_msgSend(_blueSlider, "setMinValue:", 0.0); + objj_msgSend(_blueSlider, "setTarget:", self); + objj_msgSend(_blueSlider, "setAction:", sel_getUid("sliderChanged:")); + objj_msgSend(_blueSlider, "setAutoresizingMask:", CPViewWidthSizable); + var blueValue = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(aFrame.size.width - 45, 81, 45, 20)); + objj_msgSend(blueValue, "setAutoresizingMask:", CPViewMinXMargin); + _blueValue = _redValue.cloneNode(false); + _blueValue.onchange = updateFunction; + blueValue._DOMElement.appendChild(_blueValue); + objj_msgSend(_contentView, "addSubview:", blueValue); + _hsbLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 120, 190, 20)); + objj_msgSend(_hsbLabel, "setStringValue:", "Hue, Saturation, Brightness"); + objj_msgSend(_hsbLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _hueLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 145, 15, 20)); + objj_msgSend(_hueLabel, "setStringValue:", "H"); + objj_msgSend(_hueLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _hueSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CPRectMake(15, 145, aFrame.size.width - 70, 20)); + objj_msgSend(_hueSlider, "setMaxValue:", 359.0); + objj_msgSend(_hueSlider, "setMinValue:", 0.0); + objj_msgSend(_hueSlider, "setTarget:", self); + objj_msgSend(_hueSlider, "setAction:", sel_getUid("sliderChanged:")); + objj_msgSend(_hueSlider, "setAutoresizingMask:", CPViewWidthSizable); + var hueValue = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(aFrame.size.width - 45, 145, 45, 20)); + objj_msgSend(hueValue, "setAutoresizingMask:", CPViewMinXMargin); + _hueValue = _redValue.cloneNode(false); + _hueValue.onchange = updateFunction; + hueValue._DOMElement.appendChild(_hueValue); + objj_msgSend(_contentView, "addSubview:", hueValue); + _saturationLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 168, 15, 20)); + objj_msgSend(_saturationLabel, "setStringValue:", "S"); + objj_msgSend(_saturationLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _saturationSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CPRectMake(15, 168, aFrame.size.width - 70, 20)); + objj_msgSend(_saturationSlider, "setMaxValue:", 100.0); + objj_msgSend(_saturationSlider, "setMinValue:", 0.0); + objj_msgSend(_saturationSlider, "setTarget:", self); + objj_msgSend(_saturationSlider, "setAction:", sel_getUid("sliderChanged:")); + objj_msgSend(_saturationSlider, "setAutoresizingMask:", CPViewWidthSizable); + var saturationValue = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(aFrame.size.width - 45, 168, 45, 20)); + objj_msgSend(saturationValue, "setAutoresizingMask:", CPViewMinXMargin); + _saturationValue = _redValue.cloneNode(false); + _saturationValue.onchange = updateFunction; + saturationValue._DOMElement.appendChild(_saturationValue); + objj_msgSend(_contentView, "addSubview:", saturationValue); + _brightnessLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 191, 15, 20)); + objj_msgSend(_brightnessLabel, "setStringValue:", "B"); + objj_msgSend(_brightnessLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _brightnessSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CPRectMake(15, 191, aFrame.size.width - 70, 20)); + objj_msgSend(_brightnessSlider, "setMaxValue:", 100.0); + objj_msgSend(_brightnessSlider, "setMinValue:", 0.0); + objj_msgSend(_brightnessSlider, "setTarget:", self); + objj_msgSend(_brightnessSlider, "setAction:", sel_getUid("sliderChanged:")); + objj_msgSend(_brightnessSlider, "setAutoresizingMask:", CPViewWidthSizable); + var brightnessValue = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(aFrame.size.width - 45, 191, 45, 20)); + objj_msgSend(brightnessValue, "setAutoresizingMask:", CPViewMinXMargin); + _brightnessValue = _redValue.cloneNode(false); + _brightnessValue.onchange = updateFunction; + brightnessValue._DOMElement.appendChild(_brightnessValue); + objj_msgSend(_contentView, "addSubview:", brightnessValue); + _hexLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 230, 30, 20)); + objj_msgSend(_hexLabel, "setStringValue:", "Hex"); + objj_msgSend(_hexLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _hexValue = _redValue.cloneNode(false); + _hexValue.style.top = "228px"; + _hexValue.style.width = "80px"; + _hexValue.style.left = "35px"; + _hexValue.onkeypress = function(aDOMEvent) + { + aDOMEvent = aDOMEvent || window.event; + if (aDOMEvent.keyCode == 13) + { + var newColor = objj_msgSend(CPColor, "colorWithHexString:", this.value); + if(newColor) + { + objj_msgSend(self, "setColor:", newColor); + objj_msgSend(objj_msgSend(self, "colorPanel"), "setColor:", newColor); + } + if(aDOMEvent.preventDefault) + aDOMEvent.preventDefault(); + else if(aDOMEvent.stopPropagation) + aDOMEvent.stopPropagation(); + this.blur(); + } + }; + _contentView._DOMElement.appendChild(_hexValue); + objj_msgSend(_contentView, "addSubview:", _rgbLabel); + objj_msgSend(_contentView, "addSubview:", _redLabel); + objj_msgSend(_contentView, "addSubview:", _greenLabel); + objj_msgSend(_contentView, "addSubview:", _blueLabel); + objj_msgSend(_contentView, "addSubview:", _redSlider); + objj_msgSend(_contentView, "addSubview:", _greenSlider); + objj_msgSend(_contentView, "addSubview:", _blueSlider); + objj_msgSend(_contentView, "addSubview:", _hsbLabel); + objj_msgSend(_contentView, "addSubview:", _hueLabel); + objj_msgSend(_contentView, "addSubview:", _saturationLabel); + objj_msgSend(_contentView, "addSubview:", _brightnessLabel); + objj_msgSend(_contentView, "addSubview:", _hueSlider); + objj_msgSend(_contentView, "addSubview:", _saturationSlider); + objj_msgSend(_contentView, "addSubview:", _brightnessSlider); + objj_msgSend(_contentView, "addSubview:", _hexLabel); +} +}), new objj_method(sel_getUid("provideNewView:"), function $CPSliderColorPicker__provideNewView_(self, _cmd, initialRequest) +{ with(self) +{ + if (initialRequest) + objj_msgSend(self, "initView"); + return _contentView; +} +}), new objj_method(sel_getUid("currentMode"), function $CPSliderColorPicker__currentMode(self, _cmd) +{ with(self) +{ + return CPSliderColorPickerMode; +} +}), new objj_method(sel_getUid("supportsMode:"), function $CPSliderColorPicker__supportsMode_(self, _cmd, mode) +{ with(self) +{ + return (mode == CPSliderColorPickerMode) ? YES : NO; +} +}), new objj_method(sel_getUid("sliderChanged:"), function $CPSliderColorPicker__sliderChanged_(self, _cmd, sender) +{ with(self) +{ + var newColor, + colorPanel = objj_msgSend(self, "colorPanel"), + alpha = objj_msgSend(colorPanel, "opacity"); + switch(sender) + { + case _hueSlider: + case _saturationSlider: + case _brightnessSlider: newColor = objj_msgSend(CPColor, "colorWithHue:saturation:brightness:alpha:", objj_msgSend(_hueSlider, "floatValue"), objj_msgSend(_saturationSlider, "floatValue"), objj_msgSend(_brightnessSlider, "floatValue"), alpha); + objj_msgSend(self, "updateRGBSliders:", newColor); + break; + case _redSlider: + case _greenSlider: + case _blueSlider: newColor = objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", objj_msgSend(_redSlider, "floatValue"), objj_msgSend(_greenSlider, "floatValue"), objj_msgSend(_blueSlider, "floatValue"), alpha); + objj_msgSend(self, "updateHSBSliders:", newColor); + break; + } + objj_msgSend(self, "updateLabels"); + objj_msgSend(self, "updateHex:", newColor); + objj_msgSend(colorPanel, "setColor:", newColor); +} +}), new objj_method(sel_getUid("setColor:"), function $CPSliderColorPicker__setColor_(self, _cmd, aColor) +{ with(self) +{ + objj_msgSend(self, "updateRGBSliders:", aColor); + objj_msgSend(self, "updateHSBSliders:", aColor); + objj_msgSend(self, "updateHex:", aColor); + objj_msgSend(self, "updateLabels"); +} +}), new objj_method(sel_getUid("updateHSBSliders:"), function $CPSliderColorPicker__updateHSBSliders_(self, _cmd, aColor) +{ with(self) +{ + var hsb = objj_msgSend(aColor, "hsbComponents"); + objj_msgSend(_hueSlider, "setFloatValue:", hsb[0]); + objj_msgSend(_saturationSlider, "setFloatValue:", hsb[1]); + objj_msgSend(_brightnessSlider, "setFloatValue:", hsb[2]); +} +}), new objj_method(sel_getUid("updateHex:"), function $CPSliderColorPicker__updateHex_(self, _cmd, aColor) +{ with(self) +{ + _hexValue.value = objj_msgSend(aColor, "hexString"); +} +}), new objj_method(sel_getUid("updateRGBSliders:"), function $CPSliderColorPicker__updateRGBSliders_(self, _cmd, aColor) +{ with(self) +{ + var rgb = objj_msgSend(aColor, "components"); + objj_msgSend(_redSlider, "setFloatValue:", rgb[0]); + objj_msgSend(_greenSlider, "setFloatValue:", rgb[1]); + objj_msgSend(_blueSlider, "setFloatValue:", rgb[2]); +} +}), new objj_method(sel_getUid("updateLabels"), function $CPSliderColorPicker__updateLabels(self, _cmd) +{ with(self) +{ + _hueValue.value = ROUND(objj_msgSend(_hueSlider, "floatValue")); + _saturationValue.value = ROUND(objj_msgSend(_saturationSlider, "floatValue")); + _brightnessValue.value = ROUND(objj_msgSend(_brightnessSlider, "floatValue")); + _redValue.value = ROUND(objj_msgSend(_redSlider, "floatValue") * 255); + _greenValue.value = ROUND(objj_msgSend(_greenSlider, "floatValue") * 255); + _blueValue.value = ROUND(objj_msgSend(_blueSlider, "floatValue") * 255); +} +}), new objj_method(sel_getUid("provideNewButtonImage"), function $CPSliderColorPicker__provideNewButtonImage(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", CPColorPicker), "pathForResource:", "slider_button.png"), CGSizeMake(32, 32)); +} +}), new objj_method(sel_getUid("provideNewAlternateButtonImage"), function $CPSliderColorPicker__provideNewAlternateButtonImage(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", CPColorPicker), "pathForResource:", "slider_button_h.png"), CGSizeMake(32, 32)); +} +})]); +} + +p;13;CPSplitView.ji;9;CPImage.ji;8;CPView.jc;25381; +CPSplitViewDidResizeSubviewsNotification = "CPSplitViewDidResizeSubviewsNotification"; +CPSplitViewWillResizeSubviewsNotification = "CPSplitViewWillResizeSubviewsNotification"; +var CPSplitViewHorizontalImage = nil, + CPSplitViewVerticalImage = nil; +{var the_class = objj_allocateClassPair(CPView, "CPSplitView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_delegate"), new objj_ivar("_isVertical"), new objj_ivar("_isPaneSplitter"), new objj_ivar("_currentDivider"), new objj_ivar("_initialOffset"), new objj_ivar("_originComponent"), new objj_ivar("_sizeComponent"), new objj_ivar("_DOMDividerElements"), new objj_ivar("_dividerImagePath"), new objj_ivar("_drawingDivider"), new objj_ivar("_needsResizeSubviews")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPSplitView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame)) + { + _currentDivider = CPNotFound; + _DOMDividerElements = []; + objj_msgSend(self, "_setVertical:", YES); + } + return self; +} +}), new objj_method(sel_getUid("dividerThickness"), function $CPSplitView__dividerThickness(self, _cmd) +{ with(self) +{ + return _isPaneSplitter ? 1.0 : 10.0; +} +}), new objj_method(sel_getUid("isVertical"), function $CPSplitView__isVertical(self, _cmd) +{ with(self) +{ + return _isVertical; +} +}), new objj_method(sel_getUid("setVertical:"), function $CPSplitView__setVertical_(self, _cmd, shouldBeVertical) +{ with(self) +{ + if (!objj_msgSend(self, "_setVertical:", shouldBeVertical)) + return; + var frame = objj_msgSend(self, "frame"), + dividerThickness = objj_msgSend(self, "dividerThickness"); + objj_msgSend(self, "_postNotificationWillResize"); + var eachSize = ROUND((frame.size[_sizeComponent] - dividerThickness * (_subviews.length - 1)) / _subviews.length), + index = 0, + count = _subviews.length; + if (objj_msgSend(self, "isVertical")) + for (; index < count; ++index) + objj_msgSend(_subviews[index], "setFrame:", CGRectMake(ROUND((eachSize + dividerThickness) * index), 0, eachSize, frame.size.height)); + else + for (; index < count; ++index) + objj_msgSend(_subviews[index], "setFrame:", CGRectMake(0, ROUND((eachSize + dividerThickness) * index), frame.size.width, eachSize)); + objj_msgSend(self, "setNeedsDisplay:", YES); + objj_msgSend(self, "_postNotificationDidResize"); +} +}), new objj_method(sel_getUid("_setVertical:"), function $CPSplitView___setVertical_(self, _cmd, shouldBeVertical) +{ with(self) +{ + var changed = (_isVertical != shouldBeVertical); + _isVertical = shouldBeVertical; + _originComponent = objj_msgSend(self, "isVertical") ? "x" : "y"; + _sizeComponent = objj_msgSend(self, "isVertical") ? "width" : "height"; + _dividerImagePath = objj_msgSend(self, "isVertical") ? objj_msgSend(CPSplitViewVerticalImage, "filename") : objj_msgSend(CPSplitViewHorizontalImage, "filename"); + return changed; +} +}), new objj_method(sel_getUid("isPaneSplitter"), function $CPSplitView__isPaneSplitter(self, _cmd) +{ with(self) +{ + return _isPaneSplitter; +} +}), new objj_method(sel_getUid("setIsPaneSplitter:"), function $CPSplitView__setIsPaneSplitter_(self, _cmd, shouldBePaneSplitter) +{ with(self) +{ + if (_isPaneSplitter == shouldBePaneSplitter) + return; + _isPaneSplitter = shouldBePaneSplitter; + _DOMDividerElements = []; + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("didAddSubview:"), function $CPSplitView__didAddSubview_(self, _cmd, aSubview) +{ with(self) +{ + _needsResizeSubviews = YES; +} +}), new objj_method(sel_getUid("isSubviewCollapsed:"), function $CPSplitView__isSubviewCollapsed_(self, _cmd, subview) +{ with(self) +{ + return objj_msgSend(subview, "frame").size[_sizeComponent] < 1 ? YES : NO; +} +}), new objj_method(sel_getUid("rectOfDividerAtIndex:"), function $CPSplitView__rectOfDividerAtIndex_(self, _cmd, aDivider) +{ with(self) +{ + var frame = objj_msgSend(_subviews[aDivider], "frame"), + rect = CGRectMakeZero(); + rect.size = objj_msgSend(self, "frame").size; + rect.size[_sizeComponent] = objj_msgSend(self, "dividerThickness"); + rect.origin[_originComponent] = frame.origin[_originComponent] + frame.size[_sizeComponent]; + return rect; +} +}), new objj_method(sel_getUid("effectiveRectOfDividerAtIndex:"), function $CPSplitView__effectiveRectOfDividerAtIndex_(self, _cmd, aDivider) +{ with(self) +{ + var realRect = objj_msgSend(self, "rectOfDividerAtIndex:", aDivider); + var padding = 2; + realRect.size[_sizeComponent] += padding * 2; + realRect.origin[_originComponent] -= padding; + return realRect; +} +}), new objj_method(sel_getUid("drawRect:"), function $CPSplitView__drawRect_(self, _cmd, rect) +{ with(self) +{ + var count = objj_msgSend(_subviews, "count") - 1; + while ((count--) > 0) + { + _drawingDivider = count; + objj_msgSend(self, "drawDividerInRect:", objj_msgSend(self, "rectOfDividerAtIndex:", count)); + } +} +}), new objj_method(sel_getUid("drawDividerInRect:"), function $CPSplitView__drawDividerInRect_(self, _cmd, aRect) +{ with(self) +{ + if (!_DOMDividerElements[_drawingDivider]) + { + _DOMDividerElements[_drawingDivider] = document.createElement("div"); + _DOMDividerElements[_drawingDivider].style.cursor = "move"; + _DOMDividerElements[_drawingDivider].style.position = "absolute"; + _DOMDividerElements[_drawingDivider].style.backgroundRepeat = "repeat"; + if (_DOMDividerElements[_drawingDivider].CPDOMDisplayContext) _DOMDividerElements[_drawingDivider].CPDOMDisplayContext[0] = -1; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 6; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMDividerElements[_drawingDivider];; + if (_isPaneSplitter) + { + _DOMDividerElements[_drawingDivider].style.backgroundColor = "#A5A5A5"; + _DOMDividerElements[_drawingDivider].style.backgroundImage = ""; + } + else + { + _DOMDividerElements[_drawingDivider].style.backgroundColor = ""; + _DOMDividerElements[_drawingDivider].style.backgroundImage = "url('"+_dividerImagePath+"')"; + } + } + if (!_DOMDividerElements[_drawingDivider].CPDOMDisplayContext) _DOMDividerElements[_drawingDivider].CPDOMDisplayContext = []; var __index = _DOMDividerElements[_drawingDivider].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMDividerElements[_drawingDivider].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMDividerElements[_drawingDivider]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = (aRect.origin.x); CPDOMDisplayServerInstructions[__index + 4] = (aRect.origin.y);; + if (!_DOMDividerElements[_drawingDivider].CPDOMDisplayContext) _DOMDividerElements[_drawingDivider].CPDOMDisplayContext = []; var __index = _DOMDividerElements[_drawingDivider].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMDividerElements[_drawingDivider].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMDividerElements[_drawingDivider]; CPDOMDisplayServerInstructions[__index + 2] = (aRect.size.width); CPDOMDisplayServerInstructions[__index + 3] = (aRect.size.height);; +} +}), new objj_method(sel_getUid("viewWillDraw"), function $CPSplitView__viewWillDraw(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "_adjustSubviewsWithCalculatedSize"); +} +}), new objj_method(sel_getUid("_adjustSubviewsWithCalculatedSize"), function $CPSplitView___adjustSubviewsWithCalculatedSize(self, _cmd) +{ with(self) +{ + if (!_needsResizeSubviews) + return; + _needsResizeSubviews = NO; + var subviews = objj_msgSend(self, "subviews"), + count = subviews.length, + oldSize = CGSizeMakeZero(); + if (objj_msgSend(self, "isVertical")) + { + oldSize.width += objj_msgSend(self, "dividerThickness") * (count - 1); + oldSize.height = CGRectGetHeight(objj_msgSend(self, "frame")); + } + else + { + oldSize.width = CGRectGetWidth(objj_msgSend(self, "frame")); + oldSize.height += objj_msgSend(self, "dividerThickness") * (count - 1); + } + while (count--) + oldSize[_sizeComponent] += objj_msgSend(subviews[count], "frame").size[_sizeComponent]; + objj_msgSend(self, "resizeSubviewsWithOldSize:", oldSize); +} +}), new objj_method(sel_getUid("cursorAtPoint:hitDividerAtIndex:"), function $CPSplitView__cursorAtPoint_hitDividerAtIndex_(self, _cmd, aPoint, anIndex) +{ with(self) +{ + var frame = objj_msgSend(_subviews[anIndex], "frame"), + startPosition = frame.origin[_originComponent] + frame.size[_sizeComponent], + effectiveRect = objj_msgSend(self, "effectiveRectOfDividerAtIndex:", anIndex), + additionalRect = null; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:"))) + effectiveRect = objj_msgSend(_delegate, "splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:", self, effectiveRect, effectiveRect, anIndex); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:additionalEffectiveRectOfDividerAtIndex:"))) + additionalRect = objj_msgSend(_delegate, "splitView:additionalEffectiveRectOfDividerAtIndex:", self, anIndex); + return CGRectContainsPoint(effectiveRect, aPoint) || (additionalRect && CGRectContainsPoint(additionalRect, aPoint)); +} +}), new objj_method(sel_getUid("hitTest:"), function $CPSplitView__hitTest_(self, _cmd, aPoint) +{ with(self) +{ + if (objj_msgSend(self, "isHidden") || !objj_msgSend(self, "hitTests") || !CGRectContainsPoint(objj_msgSend(self, "frame"), aPoint)) + return nil; + var point = objj_msgSend(self, "convertPoint:fromView:", aPoint, objj_msgSend(self, "superview")); + var count = objj_msgSend(_subviews, "count") - 1; + for (var i = 0; i < count; i++) + { + if (objj_msgSend(self, "cursorAtPoint:hitDividerAtIndex:", point, i)) + return self; + } + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "hitTest:", aPoint); +} +}), new objj_method(sel_getUid("trackDivider:"), function $CPSplitView__trackDivider_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"); + if (type == CPLeftMouseUp) + { + if (_currentDivider != CPNotFound) + { + _currentDivider = CPNotFound; + objj_msgSend(self, "_postNotificationDidResize"); + } + return; + } + if (type == CPLeftMouseDown) + { + var point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + _currentDivider = CPNotFound; + var count = objj_msgSend(_subviews, "count") - 1; + for (var i = 0; i < count; i++) + { + var frame = objj_msgSend(_subviews[i], "frame"), + startPosition = frame.origin[_originComponent] + frame.size[_sizeComponent]; + if (objj_msgSend(self, "cursorAtPoint:hitDividerAtIndex:", point, i)) + { + if (objj_msgSend(anEvent, "clickCount") == 2 && + objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:canCollapseSubview:")) && + objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:"))) + { + var minPosition = objj_msgSend(self, "minPossiblePositionOfDividerAtIndex:", i), + maxPosition = objj_msgSend(self, "maxPossiblePositionOfDividerAtIndex:", i); + if (objj_msgSend(_delegate, "splitView:canCollapseSubview:", self, _subviews[i]) && objj_msgSend(_delegate, "splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:", self, _subviews[i], i)) + { + if (objj_msgSend(self, "isSubviewCollapsed:", _subviews[i])) + objj_msgSend(self, "setPosition:ofDividerAtIndex:", (minPosition + (maxPosition - minPosition) / 2), i); + else + objj_msgSend(self, "setPosition:ofDividerAtIndex:", minPosition, i); + } + else if (objj_msgSend(_delegate, "splitView:canCollapseSubview:", self, _subviews[i+1]) && objj_msgSend(_delegate, "splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:", self, _subviews[i+1], i)) + { + if (objj_msgSend(self, "isSubviewCollapsed:", _subviews[i+1])) + objj_msgSend(self, "setPosition:ofDividerAtIndex:", (minPosition + (maxPosition - minPosition) / 2), i); + else + objj_msgSend(self, "setPosition:ofDividerAtIndex:", maxPosition, i); + } + } + else + { + _currentDivider = i; + _initialOffset = startPosition - point[_originComponent]; + objj_msgSend(self, "_postNotificationWillResize"); + } + } + } + } + else if (type == CPLeftMouseDragged && _currentDivider != CPNotFound) + { + var point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + objj_msgSend(self, "setPosition:ofDividerAtIndex:", (point[_originComponent] + _initialOffset), _currentDivider); + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackDivider:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPSplitView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "trackDivider:", anEvent); +} +}), new objj_method(sel_getUid("maxPossiblePositionOfDividerAtIndex:"), function $CPSplitView__maxPossiblePositionOfDividerAtIndex_(self, _cmd, dividerIndex) +{ with(self) +{ + var frame = objj_msgSend(_subviews[dividerIndex + 1], "frame"); + if (dividerIndex + 1 < objj_msgSend(_subviews, "count") - 1) + return frame.origin[_originComponent] + frame.size[_sizeComponent] - objj_msgSend(self, "dividerThickness"); + else + return objj_msgSend(self, "frame").size[_sizeComponent] - objj_msgSend(self, "dividerThickness"); +} +}), new objj_method(sel_getUid("minPossiblePositionOfDividerAtIndex:"), function $CPSplitView__minPossiblePositionOfDividerAtIndex_(self, _cmd, dividerIndex) +{ with(self) +{ + if (dividerIndex > 0) + { + var frame = objj_msgSend(_subviews[dividerIndex - 1], "frame"); + return frame.origin[_originComponent] + frame.size[_sizeComponent] + objj_msgSend(self, "dividerThickness"); + } + else + return 0; +} +}), new objj_method(sel_getUid("setPosition:ofDividerAtIndex:"), function $CPSplitView__setPosition_ofDividerAtIndex_(self, _cmd, position, dividerIndex) +{ with(self) +{ + objj_msgSend(self, "_adjustSubviewsWithCalculatedSize"); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:constrainSplitPosition:ofSubviewAt:"))) + position = objj_msgSend(_delegate, "splitView:constrainSplitPosition:ofSubviewAt:", self, position, dividerIndex); + var proposedMax = objj_msgSend(self, "maxPossiblePositionOfDividerAtIndex:", dividerIndex), + proposedMin = objj_msgSend(self, "minPossiblePositionOfDividerAtIndex:", dividerIndex), + actualMax = proposedMax, + actualMin = proposedMin; + if(objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:constrainMinCoordinate:ofSubviewAt:"))) + actualMin = objj_msgSend(_delegate, "splitView:constrainMinCoordinate:ofSubviewAt:", self, proposedMin, dividerIndex); + if(objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:constrainMaxCoordinate:ofSubviewAt:"))) + actualMax = objj_msgSend(_delegate, "splitView:constrainMaxCoordinate:ofSubviewAt:", self, proposedMax, dividerIndex); + var frame = objj_msgSend(self, "frame"), + viewA = _subviews[dividerIndex], + frameA = objj_msgSend(viewA, "frame"), + viewB = _subviews[dividerIndex + 1], + frameB = objj_msgSend(viewB, "frame"); + var realPosition = MAX(MIN(position, actualMax), actualMin); + if (position < proposedMin + (actualMin - proposedMin) / 2) + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:canCollapseSubview:"))) + if (objj_msgSend(_delegate, "splitView:canCollapseSubview:", self, viewA)) + realPosition = proposedMin; + frameA.size[_sizeComponent] = realPosition - frameA.origin[_originComponent]; + objj_msgSend(_subviews[dividerIndex], "setFrame:", frameA); + frameB.size[_sizeComponent] = frameB.origin[_originComponent] + frameB.size[_sizeComponent] - realPosition - objj_msgSend(self, "dividerThickness"); + frameB.origin[_originComponent] = realPosition + objj_msgSend(self, "dividerThickness"); + objj_msgSend(_subviews[dividerIndex + 1], "setFrame:", frameB); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPSplitView__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSend(self, "_adjustSubviewsWithCalculatedSize"); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setFrameSize:", aSize); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $CPSplitView__resizeSubviewsWithOldSize_(self, _cmd, oldSize) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:resizeSubviewsWithOldSize:"))) + { + objj_msgSend(_delegate, "splitView:resizeSubviewsWithOldSize:", self, oldSize); + return; + } + objj_msgSend(self, "_postNotificationWillResize"); + var index = 0, + count = objj_msgSend(_subviews, "count"), + bounds = objj_msgSend(self, "bounds"), + dividerThickness = objj_msgSend(self, "dividerThickness"), + totalDividers = count - 1, + totalSizableSpace = 0, + nonSizableSpace = 0, + lastSizableIndex = -1, + totalSizablePanes = 0, + isVertical = objj_msgSend(self, "isVertical"); + for (index = 0; index < count; ++index) + { + var view = _subviews[index], + isSizable = isVertical ? objj_msgSend(view, "autoresizingMask") & CPViewWidthSizable : objj_msgSend(view, "autoresizingMask") & CPViewHeightSizable; + if (isSizable) + { + totalSizableSpace += objj_msgSend(view, "frame").size[_sizeComponent]; + lastSizableIndex = index; + totalSizablePanes++; + } + } + if (totalSizablePanes === count) + totalSizableSpace = 0; + var nonSizableSpace = totalSizableSpace ? bounds.size[_sizeComponent] - totalSizableSpace : 0, + ratio = (bounds.size[_sizeComponent] - totalDividers*dividerThickness - nonSizableSpace) / (oldSize[_sizeComponent]- totalDividers*dividerThickness - nonSizableSpace), + remainingFlexibleSpace = bounds.size[_sizeComponent] - oldSize[_sizeComponent]; + for (index = 0; index < count; ++index) + { + var view = _subviews[index], + viewFrame = CGRectMakeCopy(bounds), + isSizable = isVertical ? objj_msgSend(view, "autoresizingMask") & CPViewWidthSizable : objj_msgSend(view, "autoresizingMask") & CPViewHeightSizable; + if (index + 1 == count) + viewFrame.size[_sizeComponent] = bounds.size[_sizeComponent] - viewFrame.origin[_originComponent]; + else if (totalSizableSpace && isSizable && lastSizableIndex === index) + viewFrame.size[_sizeComponent] = MAX(0, ROUND(objj_msgSend(view, "frame").size[_sizeComponent] + remainingFlexibleSpace)) + else if (isSizable || !totalSizableSpace) + { + viewFrame.size[_sizeComponent] = MAX(0, ROUND(ratio * objj_msgSend(view, "frame").size[_sizeComponent])); + remainingFlexibleSpace -= (viewFrame.size[_sizeComponent] - objj_msgSend(view, "frame").size[_sizeComponent]); + } + else if (totalSizableSpace && !isSizable) + viewFrame.size[_sizeComponent] = objj_msgSend(view, "frame").size[_sizeComponent]; + else + alert("SHOULD NEVER GET HERE"); + bounds.origin[_originComponent] += viewFrame.size[_sizeComponent] + dividerThickness; + objj_msgSend(view, "setFrame:", viewFrame); + } + objj_msgSend(self, "_postNotificationDidResize"); +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPSplitView__setDelegate_(self, _cmd, delegate) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitViewDidResizeSubviews:"))) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "removeObserver:name:object:", _delegate, CPSplitViewDidResizeSubviewsNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitViewWillResizeSubviews:"))) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "removeObserver:name:object:", _delegate, CPSplitViewWillResizeSubviewsNotification, self); + _delegate = delegate; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitViewDidResizeSubviews:"))) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", _delegate, sel_getUid("splitViewDidResizeSubviews:"), CPSplitViewDidResizeSubviewsNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitViewWillResizeSubviews:"))) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", _delegate, sel_getUid("splitViewWillResizeSubviews:"), CPSplitViewWillResizeSubviewsNotification, self); +} +}), new objj_method(sel_getUid("_postNotificationWillResize"), function $CPSplitView___postNotificationWillResize(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPSplitViewWillResizeSubviewsNotification, self); +} +}), new objj_method(sel_getUid("_postNotificationDidResize"), function $CPSplitView___postNotificationDidResize(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPSplitViewDidResizeSubviewsNotification, self); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPSplitView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPSplitView, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + CPSplitViewHorizontalImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPSplitView/CPSplitViewHorizontal.png"), CPSizeMake(5.0, 10.0)); + CPSplitViewVerticalImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPSplitView/CPSplitViewVertical.png"), CPSizeMake(10.0, 5.0)); +} +})]); +} +var CPSplitViewDelegateKey = "CPSplitViewDelegateKey", + CPSplitViewIsVerticalKey = "CPSplitViewIsVerticalKey", + CPSplitViewIsPaneSplitterKey = "CPSplitViewIsPaneSplitterKey"; +{ +var the_class = objj_getClass("CPSplitView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPSplitView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPSplitView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder); + if (self) + { + _currentDivider = CPNotFound; + _DOMDividerElements = []; + _delegate = objj_msgSend(aCoder, "decodeObjectForKey:", CPSplitViewDelegateKey);; + _isPaneSplitter = objj_msgSend(aCoder, "decodeBoolForKey:", CPSplitViewIsPaneSplitterKey); + objj_msgSend(self, "_setVertical:", objj_msgSend(aCoder, "decodeBoolForKey:", CPSplitViewIsVerticalKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPSplitView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _delegate, CPSplitViewDelegateKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _isVertical, CPSplitViewIsVerticalKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _isPaneSplitter, CPSplitViewIsPaneSplitterKey); +} +})]); +} + +p;17;CPStringDrawing.jI;21;Foundation/CPString.jc;2611; +var CPStringReferenceElement = nil, + CPStringDefaultFont = nil; +{ +var the_class = objj_getClass("CPString") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPString\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("cssString"), function $CPString__cssString(self, _cmd) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("sizeWithFont:"), function $CPString__sizeWithFont_(self, _cmd, aFont) +{ with(self) +{ + return objj_msgSend(self, "sizeWithFont:inWidth:", aFont, NULL); +} +}), new objj_method(sel_getUid("sizeWithFont:inWidth:"), function $CPString__sizeWithFont_inWidth_(self, _cmd, aFont, aWidth) +{ with(self) +{ + if (!CPStringReferenceElement) + { + CPStringReferenceElement = document.createElement("span"); + var style = CPStringReferenceElement.style; + style.position = "absolute"; + style.whiteSpace = "pre"; + style.visibility = "visible"; + style.padding = "0px"; + style.margin = "0px"; + style.left = "-100000px"; + style.top = "-100000px"; + style.zIndex = "10000"; + style.background = "red"; + document.getElementsByTagName("body")[0].appendChild(CPStringReferenceElement); + } + if (!aFont) + { + if (!CPStringDefaultFont) + CPStringDefaultFont = objj_msgSend(CPFont, "systemFontOfSize:", 12.0); + aFont = CPStringDefaultFont; + } + var style = CPStringReferenceElement.style; + if (aWidth === NULL) + { + style.width = ""; + style.whiteSpace = "pre"; + } + else + { + style.width = ROUND(aWidth) + "px"; + if (document.attachEvent) + style.wordWrap = "break-word"; + else + { + style.whiteSpace = "-o-pre-wrap"; + style.whiteSpace = "-pre-wrap"; + style.whiteSpace = "-moz-pre-wrap"; + style.whiteSpace = "pre-wrap"; + } + } + style.font = objj_msgSend(aFont, "cssString"); + if (CPFeatureIsCompatible(CPJavascriptInnerTextFeature)) + CPStringReferenceElement.innerText = self; + else if (CPFeatureIsCompatible(CPJavascriptTextContentFeature)) + CPStringReferenceElement.textContent = self; + return { width:CPStringReferenceElement.clientWidth, height:CPStringReferenceElement.clientHeight }; + return { width:0.0, height:0.0 }; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("_resetSize"), function $CPString___resetSize(self, _cmd) +{ with(self) +{ + CPStringReferenceElement = nil; +} +})]); +} + +p;15;CPTableColumn.jI;23;Foundation/Foundation.jc;10280; +CPTableColumnNoResizing = 0; +CPTableColumnAutoresizingMask = 1; +CPTableColumnUserResizingMask = 2; +{var the_class = objj_allocateClassPair(CPObject, "CPTableColumn"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_identifier"), new objj_ivar("_headerView"), new objj_ivar("_tableView"), new objj_ivar("_width"), new objj_ivar("_minWidth"), new objj_ivar("_maxWidth"), new objj_ivar("_resizingMask"), new objj_ivar("_dataView"), new objj_ivar("_dataViewData"), new objj_ivar("_dataViewForView"), new objj_ivar("_purgableInfosForDataView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithIdentifier:"), function $CPTableColumn__initWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + objj_msgSend(self, "_init"); + _identifier = anIdentifier; + _width = 40.0; + _minWidth = 8.0; + _maxWidth = 1000.0; + var dataView = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMakeZero()); + objj_msgSend(dataView, "setValue:forThemeAttribute:inState:", objj_msgSend(CPColor, "whiteColor"), "text-color", CPThemeStateHighlighted); + objj_msgSend(self, "setDataView:", dataView); + _headerView = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMakeZero()); + objj_msgSend(_headerView, "setBackgroundColor:", objj_msgSend(CPColor, "greenColor")); + } + return self; +} +}), new objj_method(sel_getUid("_init"), function $CPTableColumn___init(self, _cmd) +{ with(self) +{ + _dataViewData = {}; + _dataViewForView = {}; + _purgableInfosForDataView = {}; +} +}), new objj_method(sel_getUid("setIdentifier:"), function $CPTableColumn__setIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + _identifier = anIdentifier; +} +}), new objj_method(sel_getUid("identifier"), function $CPTableColumn__identifier(self, _cmd) +{ with(self) +{ + return _identifier; +} +}), new objj_method(sel_getUid("setTableView:"), function $CPTableColumn__setTableView_(self, _cmd, aTableView) +{ with(self) +{ + _tableView = aTableView; +} +}), new objj_method(sel_getUid("tableView"), function $CPTableColumn__tableView(self, _cmd) +{ with(self) +{ + return _tableView; +} +}), new objj_method(sel_getUid("setWidth:"), function $CPTableColumn__setWidth_(self, _cmd, aWidth) +{ with(self) +{ + _width = aWidth; +} +}), new objj_method(sel_getUid("width"), function $CPTableColumn__width(self, _cmd) +{ with(self) +{ + return _width; +} +}), new objj_method(sel_getUid("setMinWidth:"), function $CPTableColumn__setMinWidth_(self, _cmd, aWidth) +{ with(self) +{ + if (_width < (_minWidth = aWidth)) + objj_msgSend(self, "setWidth:", _minWidth); +} +}), new objj_method(sel_getUid("minWidth"), function $CPTableColumn__minWidth(self, _cmd) +{ with(self) +{ + return _minWidth; +} +}), new objj_method(sel_getUid("setMaxWidth:"), function $CPTableColumn__setMaxWidth_(self, _cmd, aWidth) +{ with(self) +{ + if (_width > (_maxmimumWidth = aWidth)) + objj_msgSend(self, "setWidth:", _maxWidth); +} +}), new objj_method(sel_getUid("setResizingMask:"), function $CPTableColumn__setResizingMask_(self, _cmd, aMask) +{ with(self) +{ + _resizingMask = aMask; +} +}), new objj_method(sel_getUid("resizingMask"), function $CPTableColumn__resizingMask(self, _cmd) +{ with(self) +{ + return _resizingMask; +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPTableColumn__sizeToFit(self, _cmd) +{ with(self) +{ + var width = CPRectGetWidth(objj_msgSend(_headerView, "frame")); + if (width < _minWidth) + objj_msgSend(self, "setMinWidth:", width); + else if (width > _maxWidth) + objj_msgSend(self, "setMaxWidth:", width) + if (_width != width) + objj_msgSend(self, "setWidth:", width); +} +}), new objj_method(sel_getUid("setEditable:"), function $CPTableColumn__setEditable_(self, _cmd, aFlag) +{ with(self) +{ + _isEditable = aFlag; +} +}), new objj_method(sel_getUid("isEditable"), function $CPTableColumn__isEditable(self, _cmd) +{ with(self) +{ + return _isEditable; +} +}), new objj_method(sel_getUid("setHeaderView:"), function $CPTableColumn__setHeaderView_(self, _cmd, aView) +{ with(self) +{ + _headerView = aView; +} +}), new objj_method(sel_getUid("headerView"), function $CPTableColumn__headerView(self, _cmd) +{ with(self) +{ + return _headerView; +} +}), new objj_method(sel_getUid("setDataCell:"), function $CPTableColumn__setDataCell_(self, _cmd, aView) +{ with(self) +{ + objj_msgSend(self, "setDataView:", aView); +} +}), new objj_method(sel_getUid("setDataView:"), function $CPTableColumn__setDataView_(self, _cmd, aView) +{ with(self) +{ + if (_dataView) + _dataViewData[objj_msgSend(_dataView, "hash")] = nil; + _dataView = aView; + _dataViewData[objj_msgSend(aView, "hash")] = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", aView); +} +}), new objj_method(sel_getUid("dataCell"), function $CPTableColumn__dataCell(self, _cmd) +{ with(self) +{ + return _dataView; +} +}), new objj_method(sel_getUid("dataView"), function $CPTableColumn__dataView(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "dataCell"); +} +}), new objj_method(sel_getUid("dataCellForRow:"), function $CPTableColumn__dataCellForRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return objj_msgSend(self, "dataView"); +} +}), new objj_method(sel_getUid("dataViewForRow:"), function $CPTableColumn__dataViewForRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return objj_msgSend(self, "dataCellForRow:", aRowIndex); +} +}), new objj_method(sel_getUid("_markView:inRow:asPurgable:"), function $CPTableColumn___markView_inRow_asPurgable_(self, _cmd, aView, aRow, isPurgable) +{ with(self) +{ + var viewHash = objj_msgSend(aView, "hash"), + dataViewHash = objj_msgSend(_dataViewForView[viewHash], "hash"); + if (!_purgableInfosForDataView[dataViewHash]) + { + if (!isPurgable) + return; + _purgableInfosForDataView[dataViewHash] = {}; + } + if (!isPurgable) { + if (_purgableInfosForDataView[dataViewHash][viewHash]) + CPLog.warn("removing unpurgable " + _purgableInfosForDataView[dataViewHash][viewHash]); + delete _purgableInfosForDataView[dataViewHash][viewHash]; + } + else + _purgableInfosForDataView[dataViewHash][viewHash] = { view:(aView), row:(aRow) }; +} +}), new objj_method(sel_getUid("_newDataViewForRow:avoidingRows:"), function $CPTableColumn___newDataViewForRow_avoidingRows_(self, _cmd, aRowIndex, rows) +{ with(self) +{ + var view = objj_msgSend(self, "dataViewForRow:", aRowIndex), + viewHash = objj_msgSend(view, "hash"), + purgableInfos = _purgableInfosForDataView[viewHash]; + if (purgableInfos) + { + for (var key in purgableInfos) + { + var info = purgableInfos[key]; + delete purgableInfos[key]; + return ((info).view); + } + } + if (!_dataViewData[viewHash]) + _dataViewData[viewHash] = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", view); + var newView = objj_msgSend(CPKeyedUnarchiver, "unarchiveObjectWithData:", _dataViewData[viewHash]); + _dataViewForView[objj_msgSend(newView, "hash")] = view; + CPLog.warn("creating cell: %s", newView); + return newView; +} +}), new objj_method(sel_getUid("_purge"), function $CPTableColumn___purge(self, _cmd) +{ with(self) +{ + for (var viewHash in _purgableInfosForDataView) + { + var purgableInfos = _purgableInfosForDataView[viewHash]; + for (var key in purgableInfos) + { + var view = ((purgableInfos[key]).view); + if (!view) + CPLog.info("key="+key+" view=" + view + " purgableInfos[key]="+purgableInfos[key]) + else if (view._superview) { + objj_msgSend(view, "setHidden:", YES); + } + } + } +} +})]); +} +var CPTableColumnIdentifierKey = "CPTableColumnIdentifierKey", + CPTableColumnHeaderViewKey = "CPTableColumnHeaderViewKey", + CPTableColumnDataViewKey = "CPTableColumnDataViewKey", + CPTableColumnWidthKey = "CPTableColumnWidthKey", + CPTableColumnMinWidthKey = "CPTableColumnMinWidthKey", + CPTableColumnMaxWidthKey = "CPTableColumnMaxWidthKey", + CPTableColumnResizingMaskKey = "CPTableColumnResizingMaskKey"; +{ +var the_class = objj_getClass("CPTableColumn") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTableColumn\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTableColumn__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(self, "_init"); + _identifier = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableColumnIdentifierKey); + objj_msgSend(self, "setHeaderView:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTableColumnHeaderViewKey)); + objj_msgSend(self, "setDataView:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTableColumnDataViewKey)); + _width = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableColumnWidthKey); + _minWidth = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableColumnMinWidthKey); + _maxWidth = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableColumnMaxWidthKey); + _resizingMask = objj_msgSend(aCoder, "decodeBoolForKey:", CPTableColumnResizingMaskKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTableColumn__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _identifier, CPTableColumnIdentifierKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _headerView, CPTableColumnHeaderViewKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _dataView, CPTableColumnDataViewKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _width, CPTableColumnWidthKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _minWidth, CPTableColumnMinWidthKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _maxWidth, CPTableColumnMaxWidthKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _resizingMask, CPTableColumnResizingMaskKey); +} +})]); +} + +p;19;CPTableHeaderView.ji;15;CPTableColumn.ji;13;CPTableView.ji;8;CPView.jc;3886; +{var the_class = objj_allocateClassPair(CPView, "CPTableHeaderView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_resizedColumn"), new objj_ivar("_draggedColumn"), new objj_ivar("_draggedDistance"), new objj_ivar("_tableView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("resizedColumn"), function $CPTableHeaderView__resizedColumn(self, _cmd) +{ with(self) +{ +return _resizedColumn; +} +}), +new objj_method(sel_getUid("draggedColumn"), function $CPTableHeaderView__draggedColumn(self, _cmd) +{ with(self) +{ +return _draggedColumn; +} +}), +new objj_method(sel_getUid("draggedDistance"), function $CPTableHeaderView__draggedDistance(self, _cmd) +{ with(self) +{ +return _draggedDistance; +} +}), +new objj_method(sel_getUid("tableView"), function $CPTableHeaderView__tableView(self, _cmd) +{ with(self) +{ +return _tableView; +} +}), +new objj_method(sel_getUid("setTableView:"), function $CPTableHeaderView__setTableView_(self, _cmd, newValue) +{ with(self) +{ +_tableView = newValue; +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPTableHeaderView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _resizedColumn = CPNotFound; + _draggedColumn = CPNotFound; + _draggedDistance = 0.0; + } + return self; +} +}), new objj_method(sel_getUid("columnAtPoint:"), function $CPTableHeaderView__columnAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + if (!CGRectContainsPoint(objj_msgSend(self, "bounds"), aPoint)) + return CPNotFound; + var index = 0, + count = objj_msgSend(objj_msgSend(_tableView, "tableColumns"), "count"), + tableSpacing = objj_msgSend(_tableView, "intercellSpacing"), + tableColumns = objj_msgSend(_tableView, "tableColumns"), + leftOffset = 0, + pointX = aPoint.x; + for (; index < count; index++) + { + var width = objj_msgSend(tableColumns[index], "width") + tableSpacing.width; + if (pointX >= leftOffset && pointX < leftOffset + width) + return index; + leftOffset += width; + } + return CPNotFound; +} +}), new objj_method(sel_getUid("headerRectOfColumn:"), function $CPTableHeaderView__headerRectOfColumn_(self, _cmd, aColumnIndex) +{ with(self) +{ + var tableColumns = objj_msgSend(_tableView, "tableColumns"), + tableSpacing = objj_msgSend(_tableView, "intercellSpacing"), + bounds = objj_msgSend(self, "bounds"); + if (aColumnIndex < 0 || aColumnIndex > objj_msgSend(tableColumns, "count")) + objj_msgSend(CPException, "raise:reason:", "invalid", "tried to get headerRectOfColumn: on invalid column"); + bounds.size.width = objj_msgSend(tableColumns[aColumnIndex], "width") + tableSpacing.width; + while (--aColumnIndex >= 0) + bounds.origin.x += objj_msgSend(tableColumns[aColumnIndex], "width") + tableSpacing.width; + return bounds; +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPTableHeaderView__layoutSubviews(self, _cmd) +{ with(self) +{ + var tableColumns = objj_msgSend(_tableView, "tableColumns"), + count = objj_msgSend(tableColumns, "count"), + columnRect = objj_msgSend(self, "bounds"), + spacing = objj_msgSend(_tableView, "intercellSpacing"); + for (i = 0; i < count; ++i) + { + var column = objj_msgSend(tableColumns, "objectAtIndex:", i), + headerView = objj_msgSend(column, "headerView"); + columnRect.size.width = objj_msgSend(column, "width") + spacing.width; + objj_msgSend(headerView, "setFrame:", columnRect); + columnRect.origin.x += objj_msgSend(column, "width") + spacing.width; + objj_msgSend(self, "addSubview:", headerView); + } +} +})]); +} + +p;13;CPTableView.ji;11;CPControl.ji;15;CPTableColumn.ji;9;CPColor.ji;13;CPTextField.jc;40301; +CPTableViewColumnDidMoveNotification = "CPTableViewColumnDidMoveNotification"; +CPTableViewColumnDidResizeNotification = "CPTableViewColumnDidResizeNotification"; +CPTableViewSelectionDidChangeNotification = "CPTableViewSelectionDidChangeNotification"; +CPTableViewSelectionIsChangingNotification = "CPTableViewSelectionIsChangingNotification"; +var _CPTableViewWillDisplayCellSelector = 1 << 0, + _CPTableViewShouldSelectRowSelector = 1 << 1, + _CPTableViewShouldSelectTableColumnSelector = 1 << 2, + _CPTableViewSelectionShouldChangeSelector = 1 << 3, + _CPTableViewShouldEditTableColumnSelector = 1 << 4, + _CPTableViewSelectionIndexesForProposedSelectionSelector = 1 << 5, + _CPTableViewHeightOfRowSelector = 1 << 6; +{var the_class = objj_allocateClassPair(CPControl, "CPTableView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_dataSource"), new objj_ivar("_delegate"), new objj_ivar("_tableColumns"), new objj_ivar("_selectedRowIndexes"), new objj_ivar("_rowHeight"), new objj_ivar("_intercellSpacing"), new objj_ivar("_allowsMultipleSelection"), new objj_ivar("_allowsEmptySelection"), new objj_ivar("_delegateSelectorsCache"), new objj_ivar("_numberOfRows"), new objj_ivar("_hasVariableHeightRows"), new objj_ivar("_columnHeight"), new objj_ivar("_rowHeights"), new objj_ivar("_rowMinYs"), new objj_ivar("_tableCells"), new objj_ivar("_tableColumnViews"), new objj_ivar("_dataViewCache"), new objj_ivar("_objectValueCache"), new objj_ivar("_visibleRows"), new objj_ivar("_visibleColumns"), new objj_ivar("_populatedRows"), new objj_ivar("_populatedColumns"), new objj_ivar("_previousSelectedRowIndexes"), new objj_ivar("_selectionStartRow"), new objj_ivar("_selectionModifier"), new objj_ivar("_currentlySelected"), new objj_ivar("_selectionViews"), new objj_ivar("_selectionViewsPool"), new objj_ivar("_scrollTimer")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPTableView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + objj_msgSend(self, "_init"); + } + return self; +} +}), new objj_method(sel_getUid("_init"), function $CPTableView___init(self, _cmd) +{ with(self) +{ + _tableColumns = []; + _selectedRowIndexes = objj_msgSend(CPIndexSet, "indexSet"); + _rowHeight = 17.0; + _intercellSpacing = CPSizeMake(3.0, 2.0); + _allowsMultipleSelection = YES; + _allowsEmptySelection = YES; + _tableCells = []; + _tableColumnViews = []; + _dataViewCache = {}; + _objectValueCache = []; + _visibleRows = CPMakeRange(0, 0); + _visibleColumns = CPMakeRange(0, 0); + _rowHeights = []; + _rowMinYs = []; +} +}), new objj_method(sel_getUid("_columnHeight"), function $CPTableView___columnHeight(self, _cmd) +{ with(self) +{ + return _columnHeight; +} +}), new objj_method(sel_getUid("newCellForRow:column:avoidingRows:"), function $CPTableView__newCellForRow_column_avoidingRows_(self, _cmd, aRowIndex, aColumnIndex, rows) +{ with(self) +{ + var dataView = objj_msgSend(_tableColumns[aColumnIndex], "_newDataViewForRow:avoidingRows:", aRowIndex, rows); + objj_msgSend(dataView, "setFrame:", CGRectMake(0.0, (_hasVariableHeightRows ? _rowMinYs[aRowIndex] : (aRowIndex * (_rowHeight + _intercellSpacing.height))), objj_msgSend(_tableColumns[aColumnIndex], "width"), (_hasVariableHeightRows ? _rowHeights[aRowIndex] : _rowHeight))); + if (objj_msgSend(dataView, "respondsToSelector:", sel_getUid("highlight:"))) + objj_msgSend(dataView, "highlight:", objj_msgSend(_selectedRowIndexes, "containsIndex:", aRowIndex)); + if (!_objectValueCache[aColumnIndex]) + _objectValueCache[aColumnIndex] = []; + if (_objectValueCache[aColumnIndex][aRowIndex] === undefined) + _objectValueCache[aColumnIndex][aRowIndex] = objj_msgSend(_dataSource, "tableView:objectValueForTableColumn:row:", self, _tableColumns[aColumnIndex], aRowIndex); + objj_msgSend(dataView, "setObjectValue:", _objectValueCache[aColumnIndex][aRowIndex]); + return dataView; +} +}), new objj_method(sel_getUid("clearCells"), function $CPTableView__clearCells(self, _cmd) +{ with(self) +{ + var columnEnd = CPMaxRange(_visibleColumns), + rowEnd = CPMaxRange(_visibleRows); + for (var column = _visibleColumns.location; column < columnEnd; column++) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column]; + for (var row = _visibleRows.location; row < rowEnd; row++) + { + var cell = tableColumnCells[row]; + if (cell) + { + tableColumnCells[row] = nil; + objj_msgSend(tableColumn, "_markView:inRow:asPurgable:", cell, row, YES); + } + else + { + CPLog.warn("Missing cell? " + row + "," + column); + } + } + } + _visibleColumns = CPMakeRange(0,0); + _visibleRows = CPMakeRange(0,0); +} +}), new objj_method(sel_getUid("loadTableCellsInRect:"), function $CPTableView__loadTableCellsInRect_(self, _cmd, aRect) +{ with(self) +{ + if (!_dataSource) + return; + var rowStart = MAX(0, objj_msgSend(self, "_rowAtY:", CGRectGetMinY(aRect)) - 1), + rowEnd = MIN(_numberOfRows, objj_msgSend(self, "_rowAtY:", CGRectGetMaxY(aRect)) + 1), + visibleRows = CPMakeRange(rowStart, rowEnd - rowStart), + columnStart = MAX(0, objj_msgSend(self, "_columnAtX:", CGRectGetMinX(aRect))), + columnEnd = MIN(_tableColumns.length, objj_msgSend(self, "_columnAtX:", CGRectGetMaxX(aRect)) + 1), + visibleColumns = CPMakeRange(columnStart, columnEnd - columnStart); + if (CPEqualRanges(_visibleRows, visibleRows) && CPEqualRanges(_visibleColumns, visibleColumns)) + return; + var unionVisibleRows = CPUnionRange(_visibleRows, visibleRows), + unionVisibleColumns = CPUnionRange(_visibleColumns, visibleColumns); + if (unionVisibleRows.length * unionVisibleColumns.length <= + (_visibleRows.length * _visibleColumns.length) + (visibleRows.length * visibleColumns.length)) + { + var cEnd = CPMaxRange(unionVisibleColumns), + rEnd = CPMaxRange(unionVisibleRows), + cell; + for (var column = unionVisibleColumns.location; column < cEnd; ++column) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column], + columnIsVisible = CPLocationInRange(column, visibleColumns), + newCells = []; + for (var row = unionVisibleRows.location; row < rEnd; ++row) + { + if (cell = tableColumnCells[row]) + { + if (!columnIsVisible || !CPLocationInRange(row, visibleRows)) + { + tableColumnCells[row] = nil; + objj_msgSend(tableColumn, "_markView:inRow:asPurgable:", cell, row, YES); + } + } + else + { + newCells.push(row); + } + } + while (newCells.length > 0) + { + var row = newCells.pop(); + tableColumnCells[row] = objj_msgSend(self, "newCellForRow:column:avoidingRows:", row, column, visibleRows); + if (!tableColumnCells[row]._superview) + objj_msgSend(_tableColumnViews[column], "addSubview:", tableColumnCells[row]); + else if (tableColumnCells[row]._isHidden) + objj_msgSend(tableColumnCells[row], "setHidden:", NO); + } + objj_msgSend(tableColumn, "_purge"); + } + } + else { + var cEnd = CPMaxRange(_visibleColumns), + rEnd = CPMaxRange(_visibleRows), + cell; + for (var column = _visibleColumns.location; column < cEnd; ++column) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column], + columnIsVisible = CPLocationInRange(column, visibleColumns); + for (var row = _visibleRows.location; row < rEnd; ++row) + { + if (cell = tableColumnCells[row]) + { + if (!columnIsVisible || !CPLocationInRange(row, visibleRows)) + { + tableColumnCells[row] = nil; + objj_msgSend(tableColumn, "_markView:inRow:asPurgable:", cell, row, YES); + } + } + } + } + var cEnd = CPMaxRange(visibleColumns), + rEnd = CPMaxRange(visibleRows); + for (var column = visibleColumns.location; column < cEnd; ++column) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column]; + for (var row = visibleRows.location; row < rEnd; ++row) + { + tableColumnCells[row] = objj_msgSend(self, "newCellForRow:column:avoidingRows:", row, column, visibleRows); + if (!tableColumnCells[row]._superview) + objj_msgSend(_tableColumnViews[column], "addSubview:", tableColumnCells[row]); + else if (tableColumnCells[row]._isHidden) + objj_msgSend(tableColumnCells[row], "setHidden:", NO); + } + objj_msgSend(tableColumn, "_purge"); + } + } + _visibleRows = visibleRows; + _visibleColumns = visibleColumns; +} +}), new objj_method(sel_getUid("setIntercellSpacing:"), function $CPTableView__setIntercellSpacing_(self, _cmd, aSize) +{ with(self) +{ + if (_intercellSpacing.width != aSize.width) + { + var i = 1, + delta = aSize.width - _intercellSpacing.width; + total = delta; + for (; i < _tableColumns.length; ++i, total += delta) + { + var origin = objj_msgSend(_tableColumnViews[i], "frame").origin; + objj_msgSend(_tableColumnViews[i], "setFrameOrigin:", CGPointMake(origin.x + total, origin.y)); + } + } + if (_intercellSpacing.height != aSize.height) + { + var i = 0; + for (; i < _tableColumns.length; ++i, total += delta) + { + objj_msgSend(_tableColumnViews[i], "setFrameSize:", CGSizeMake(objj_msgSend(_tableColumnViews[i], "width"), _numberOfRows * (_rowHeight + _intercellSpacing.height))); + var j = 1, + y = _rowHeight + _intercellSpacing.height; + for (; j < _numberOfRows; ++i, y += _rowHeight + _intercellSpacing.height) + { + if (!_tableCells[i][j]) + continue; + objj_msgSend(_tableCells[i][j], "setFrameOrigin:", CPPointMake(0.0, y)); + } + } + } + _intercellSpacing = CPSizeCreateCopy(aSize); +} +}), new objj_method(sel_getUid("intercellSpacing"), function $CPTableView__intercellSpacing(self, _cmd) +{ with(self) +{ + return _intercellSpacing; +} +}), new objj_method(sel_getUid("setRowHeight:"), function $CPTableView__setRowHeight_(self, _cmd, aRowHeight) +{ with(self) +{ + if (_rowHeight == aRowHeight) + return; + _rowHeight = aRowHeight; + if (_hasVariableHeightRows) + return; + for (var row = 0; row < _numberOfRows; ++row) + for (var column = 0; column < _tableColumns.length; ++column) + objj_msgSend(_tableCells[column][row], "setFrameOrigin:", CPPointMake(0.0, row * (_rowHeight + _intercellSpacing.height))); +} +}), new objj_method(sel_getUid("rowHeight"), function $CPTableView__rowHeight(self, _cmd) +{ with(self) +{ + return _rowHeight; +} +}), new objj_method(sel_getUid("addTableColumn:"), function $CPTableView__addTableColumn_(self, _cmd, aTableColumn) +{ with(self) +{ + var i = 0, + x = _tableColumns.length ? CPRectGetMaxX(objj_msgSend(self, "rectOfColumn:", _tableColumns.length - 1)) + _intercellSpacing.width : 0.0, + tableColumnView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(x, 0.0, objj_msgSend(aTableColumn, "width"), objj_msgSend(self, "_columnHeight"))), + tableColumnCells = []; + objj_msgSend(_tableColumns, "addObject:", aTableColumn); + objj_msgSend(_tableColumnViews, "addObject:", tableColumnView); + objj_msgSend(self, "addSubview:", tableColumnView); + objj_msgSend(_tableCells, "addObject:", tableColumnCells); + for (; i < _numberOfRows; ++i) + _tableCells[_tableColumns.length-1][i] = nil; +} +}), new objj_method(sel_getUid("removeTableColumn:"), function $CPTableView__removeTableColumn_(self, _cmd, aTableColumn) +{ with(self) +{ + var frame = objj_msgSend(self, "frame"), + width = objj_msgSend(aTableColumn, "width") + _intercellSpacing.width, + index = objj_msgSend(_tableColumns, "indexOfObjectIdenticalTo:", aTableColumn); + objj_msgSend(_tableColumnViews[i], "removeFromSuperview"); + objj_msgSend(_tableCells, "removeObjectAtIndex:", index); + objj_msgSend(_tableColumns, "removeObjectAtIndex:", index); + objj_msgSend(_tableColumnViews, "removeObjectAtIndex:", index); + for (; index < _tableColumns.length; ++ index) + objj_msgSend(_tableColumnViews[index], "setFrameOrigin:", CPPointMake(CPRectGetMinX(objj_msgSend(_tableColumnViews[index], "frame")) - width, 0.0)) + objj_msgSend(self, "setFrameSize:", CPSizeMake(CPRectGetWidth(frame) - width, CPRectGetHeight(frame))); +} +}), new objj_method(sel_getUid("moveColumn:toColumn:"), function $CPTableView__moveColumn_toColumn_(self, _cmd, fromIndex, toIndex) +{ with(self) +{ + if (fromIndex == toIndex) + return; +} +}), new objj_method(sel_getUid("tableColumns"), function $CPTableView__tableColumns(self, _cmd) +{ with(self) +{ + return _tableColumns; +} +}), new objj_method(sel_getUid("tableColumnWithIdentifier:"), function $CPTableView__tableColumnWithIdentifier_(self, _cmd, anObject) +{ with(self) +{ + for (var i = 0; i < _tableColumns.length; i++) + if (objj_msgSend(_tableColumns[i], "isEqual:", anObject)) + return _tableColumns[i]; + return nil; +} +}), new objj_method(sel_getUid("numberOfColumns"), function $CPTableView__numberOfColumns(self, _cmd) +{ with(self) +{ + return _tableColumns.length; +} +}), new objj_method(sel_getUid("numberOfRows"), function $CPTableView__numberOfRows(self, _cmd) +{ with(self) +{ + return _numberOfRows; +} +}), new objj_method(sel_getUid("tile"), function $CPTableView__tile(self, _cmd) +{ with(self) +{ + var HEIGHT = 10.0; +} +}), new objj_method(sel_getUid("setDataSource:"), function $CPTableView__setDataSource_(self, _cmd, aDataSource) +{ with(self) +{ + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("numberOfRowsInTableView:"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source doesn't support 'numberOfRowsInTableView:'"); + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("tableView:objectValueForTableColumn:row:"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source doesn't support 'tableView:objectValueForTableColumn:row:'"); + _dataSource = aDataSource; + objj_msgSend(self, "reloadData"); +} +}), new objj_method(sel_getUid("dataSource"), function $CPTableView__dataSource(self, _cmd) +{ with(self) +{ + return _dataSource; +} +}), new objj_method(sel_getUid("delegate"), function $CPTableView__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPTableView__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate === aDelegate) + return; + var notificationCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidMove:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewColumnDidMoveNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidResize:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewColumnDidResizeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionDidChange:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewSelectionDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionIsChanging:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewSelectionIsChangingNotification, self); + _delegate = aDelegate; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidMove:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewColumnDidMove:"), CPTableViewColumnDidMoveNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidResize:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewColumnDidResize:"), CPTableViewColumnDidResizeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionDidChange:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewSelectionDidChange:"), CPTableViewSelectionDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionIsChanging:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewSelectionIsChanging:"), CPTableViewSelectionIsChangingNotification, self); + _delegateSelectorsCache = 0; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:willDisplayCell:forTableColumn:row:"))) + _delegateSelectorsCache |= _CPTableViewWillDisplayCellSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldSelectRow:"))) + _delegateSelectorsCache |= _CPTableViewShouldSelectRowSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldSelectTableColumn:"))) + _delegateSelectorsCache |= _CPTableViewShouldSelectTableColumnSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("selectionShouldChangeInTableView:"))) + _delegateSelectorsCache |= _CPTableViewSelectionShouldChangeSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldEditTableColumn:row:"))) + _delegateSelectorsCache |= _CPTableViewShouldEditTableColumnSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:selectionIndexesForProposedSelection:"))) + _delegateSelectorsCache |= _CPTableViewSelectionIndexesForProposedSelectionSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:heightOfRow:"))) + { + _delegateSelectorsCache |= _CPTableViewHeightOfRowSelector; + _hasVariableHeightRows = YES; + } + else + _hasVariableHeightRows = NO; +} +}), new objj_method(sel_getUid("noteNumberOfRowsChanged"), function $CPTableView__noteNumberOfRowsChanged(self, _cmd) +{ with(self) +{ + var numberOfRows = objj_msgSend(_dataSource, "numberOfRowsInTableView:", self); + if (_numberOfRows != numberOfRows) + { + _numberOfRows = numberOfRows; + objj_msgSend(self, "_recalculateColumnHeight"); + } +} +}), new objj_method(sel_getUid("noteHeightOfRowsWithIndexesChanged:"), function $CPTableView__noteHeightOfRowsWithIndexesChanged_(self, _cmd, indexSet) +{ with(self) +{ + objj_msgSend(self, "_recalculateColumnHeight"); +} +}), new objj_method(sel_getUid("rectOfRow:"), function $CPTableView__rectOfRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return CPRectMake(0.0, (_hasVariableHeightRows ? _rowMinYs[aRowIndex] : (aRowIndex * (_rowHeight + _intercellSpacing.height))), CPRectGetWidth(objj_msgSend(self, "bounds")), (_hasVariableHeightRows ? _rowHeights[aRowIndex] : _rowHeight)); +} +}), new objj_method(sel_getUid("rectOfColumn:"), function $CPTableView__rectOfColumn_(self, _cmd, aColumnIndex) +{ with(self) +{ + return objj_msgSend(_tableColumnViews[aColumnIndex], "frame"); +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPTableView__sizeToFit(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_recalculateColumnHeight"), function $CPTableView___recalculateColumnHeight(self, _cmd) +{ with(self) +{ + var oldColumnHeight = _columnHeight; + if (_hasVariableHeightRows) + { + _rowMinYs[0] = 0; + for (var row = 0; row < _numberOfRows; row++) + { + _rowHeights[row] = objj_msgSend(_delegate, "tableView:heightOfRow:", self, row); + _rowMinYs[row+1] = _rowMinYs[row] + _rowHeights[row] + _intercellSpacing.height; + } + _columnHeight = _rowMinYs[_numberOfRows]; + } + else + _columnHeight = _numberOfRows * (_rowHeight + _intercellSpacing.height); + var count = _tableColumnViews.length; + while (count--) + objj_msgSend(_tableColumnViews[count], "setFrameSize:", CGSizeMake(objj_msgSend(_tableColumns[count], "width"), _columnHeight)); + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(objj_msgSend(self, "frame")), _columnHeight)); +} +}), new objj_method(sel_getUid("visibleRectInParent"), function $CPTableView__visibleRectInParent(self, _cmd) +{ with(self) +{ + var superview = objj_msgSend(self, "superview"); + if (!superview) + return objj_msgSend(self, "bounds"); + return objj_msgSend(self, "convertRect:fromView:", CGRectIntersection(objj_msgSend(superview, "bounds"), objj_msgSend(self, "frame")), superview); +} +}), new objj_method(sel_getUid("reloadData"), function $CPTableView__reloadData(self, _cmd) +{ with(self) +{ + var oldNumberOfRows = _numberOfRows; + _numberOfRows = objj_msgSend(_dataSource, "numberOfRowsInTableView:", self); + if (oldNumberOfRows != _numberOfRows) + { + objj_msgSend(self, "_recalculateColumnHeight"); + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(objj_msgSend(self, "frame")), objj_msgSend(self, "_columnHeight"))); + } + _objectValueCache = []; + objj_msgSend(self, "clearCells"); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPTableView__layoutSubviews(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "loadTableCellsInRect:", objj_msgSend(self, "visibleRectInParent")); +} +}), new objj_method(sel_getUid("displaySoon"), function $CPTableView__displaySoon(self, _cmd) +{ with(self) +{ + objj_msgSend(_scrollTimer, "invalidate"); + _scrollTimer = objj_msgSend(CPTimer, "scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:", 0.05, self, sel_getUid("displayNow"), nil, NO); +} +}), new objj_method(sel_getUid("displayNow"), function $CPTableView__displayNow(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("viewDidMoveToSuperview"), function $CPTableView__viewDidMoveToSuperview(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(objj_msgSend(self, "enclosingScrollView"), "contentView"), "setPostsBoundsChangedNotifications:", YES); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", self, sel_getUid("viewBoundsChanged:"), CPViewBoundsDidChangeNotification, objj_msgSend(objj_msgSend(self, "enclosingScrollView"), "contentView")); +} +}), new objj_method(sel_getUid("viewBoundsChanged:"), function $CPTableView__viewBoundsChanged_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "displayNow"); +} +}), new objj_method(sel_getUid("setAllowsMultipleSelection:"), function $CPTableView__setAllowsMultipleSelection_(self, _cmd, allowsMultipleSelection) +{ with(self) +{ + if (_allowsMultipleSelection === allowsMultipleSelection) + return; + _allowsMultipleSelection = allowsMultipleSelection; +} +}), new objj_method(sel_getUid("allowsMultipleSelection"), function $CPTableView__allowsMultipleSelection(self, _cmd) +{ with(self) +{ + return _allowsMultipleSelection; +} +}), new objj_method(sel_getUid("setAllowsEmptySelection:"), function $CPTableView__setAllowsEmptySelection_(self, _cmd, allowsEmptySelection) +{ with(self) +{ + if (_allowsEmptySelection === allowsEmptySelection) + return; + _allowsEmptySelection = allowsEmptySelection; +} +}), new objj_method(sel_getUid("allowsEmptySelection"), function $CPTableView__allowsEmptySelection(self, _cmd) +{ with(self) +{ + return _allowsEmptySelection; +} +}), new objj_method(sel_getUid("rowAtPoint:"), function $CPTableView__rowAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var index = objj_msgSend(self, "_rowAtY:", aPoint.y) + if (index >= 0 && index < _numberOfRows) + return index; + else + return CPNotFound; +} +}), new objj_method(sel_getUid("columnAtPoint:"), function $CPTableView__columnAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var index = objj_msgSend(self, "_columnAtX:", aPoint.x) + if (index >= 0 && index < _tableColumns.length) + return index; + else + return CPNotFound; +} +}), new objj_method(sel_getUid("_rowAtY:"), function $CPTableView___rowAtY_(self, _cmd, y) +{ with(self) +{ + if (_hasVariableHeightRows) + { + var a = 0, + b = _numberOfRows; + if (y < _rowMinYs[0]) + return -1; + if (y >= _rowMinYs[_rowMinYs.length-1]) + return _numberOfRows; + while (true) + { + var half = a + Math.floor((b - a) / 2); + if (y < _rowMinYs[half]) + b = half; + else if (half < _numberOfRows-1 && y >= _rowMinYs[half+1]) + a = half; + else + return half; + } + } + else + return FLOOR(y / (_rowHeight + _intercellSpacing.height)); +} +}), new objj_method(sel_getUid("_columnAtX:"), function $CPTableView___columnAtX_(self, _cmd, x) +{ with(self) +{ + var a = 0, + b = _tableColumns.length; + var last = objj_msgSend(_tableColumnViews[_tableColumns.length-1], "frame"); + if (x < objj_msgSend(_tableColumnViews[0], "frame").origin.x) + return -1; + if (x >= last.origin.x + last.size.width) + return _tableColumns.length; + while (true) + { + var half = a + Math.floor((b - a) / 2); + if (x < objj_msgSend(_tableColumnViews[half], "frame").origin.x) + b = half; + else if (half < _tableColumns.length-1 && x >= objj_msgSend(_tableColumnViews[half+1], "frame").origin.x) + a = half; + else + return half; + } +} +}), new objj_method(sel_getUid("selectRowIndexes:byExtendingSelection:"), function $CPTableView__selectRowIndexes_byExtendingSelection_(self, _cmd, indexes, extend) +{ with(self) +{ + if (extend) + _selectedRowIndexes = objj_msgSend(objj_msgSend(_selectedRowIndexes, "copy"), "addIndexes:", indexes); + else if (objj_msgSend(indexes, "count") > 0 || _allowsEmptySelection) + _selectedRowIndexes = objj_msgSend(indexes, "copy"); + objj_msgSend(self, "_drawSelection"); +} +}), new objj_method(sel_getUid("selectedRowIndexes"), function $CPTableView__selectedRowIndexes(self, _cmd) +{ with(self) +{ + return _selectedRowIndexes; +} +}), new objj_method(sel_getUid("numberOfSelectedRows"), function $CPTableView__numberOfSelectedRows(self, _cmd) +{ with(self) +{ + return objj_msgSend(_selectedRowIndexes, "count"); +} +}), new objj_method(sel_getUid("deselectAll:"), function $CPTableView__deselectAll_(self, _cmd, sender) +{ with(self) +{ + if (!_allowsEmptySelection || objj_msgSend(_selectedRowIndexes, "count") === 0 || + ((_delegateSelectorsCache & _CPTableViewSelectionShouldChangeSelector) && !objj_msgSend(_delegate, "selectionShouldChangeInTableView:", self))) + return; + objj_msgSend(self, "selectRowIndexes:byExtendingSelection:", objj_msgSend(CPIndexSet, "indexSet"), NO); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionDidChangeNotification, self, nil); +} +}), new objj_method(sel_getUid("editColumn:row:withEvent:select:"), function $CPTableView__editColumn_row_withEvent_select_(self, _cmd, columnIndex, rowIndex, theEvent, flag) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_updateSelectionWithMouseAtRow:"), function $CPTableView___updateSelectionWithMouseAtRow_(self, _cmd, aRow) +{ with(self) +{ + var newSelection; + if (_allowsMultipleSelection) + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndexesInRange:", CPMakeRange(MIN(aRow, _selectionStartRow), ABS(aRow-_selectionStartRow)+1)); + else if (aRow >= 0 && aRow < _numberOfRows) + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndex:", aRow); + else + newSelection = objj_msgSend(CPIndexSet, "indexSet"); + if (_allowsMultipleSelection && _selectionModifier & (CPCommandKeyMask | CPControlKeyMask | CPAlternateKeyMask)) + { + var intersection = objj_msgSend(newSelection, "copy"), + difference = objj_msgSend(newSelection, "copy"); + objj_msgSend(difference, "removeIndexes:", _previousSelectedRowIndexes); + objj_msgSend(intersection, "removeIndexes:", difference) + objj_msgSend(newSelection, "addIndexes:", _previousSelectedRowIndexes); + objj_msgSend(newSelection, "removeIndexes:", intersection); + } + if (!objj_msgSend(newSelection, "isEqualToIndexSet:", _selectedRowIndexes)) + { + if ((_delegateSelectorsCache & _CPTableViewSelectionShouldChangeSelector) && !objj_msgSend(_delegate, "selectionShouldChangeInTableView:", self)) + return; + if (_delegateSelectorsCache & _CPTableViewSelectionIndexesForProposedSelectionSelector) + newSelection = objj_msgSend(_delegate, "tableView:selectionIndexesForProposedSelection:", self, newSelection); + else if (_delegateSelectorsCache & _CPTableViewShouldSelectRowSelector) + { + var indexes = []; + objj_msgSend(newSelection, "getIndexes:maxCount:inIndexRange:", indexes, Number.MAX_VALUE, nil); + for (var i = 0; i < indexes.length; i++) + if (!objj_msgSend(_delegate, "tableView:shouldSelectRow:", self, indexes[i])) + objj_msgSend(newSelection, "removeIndex:", indexes[i]); + } + } + if (!_allowsEmptySelection && objj_msgSend(newSelection, "count") === 0) + return; + if (!objj_msgSend(newSelection, "isEqualToIndexSet:", _selectedRowIndexes)) + { + objj_msgSend(self, "selectRowIndexes:byExtendingSelection:", newSelection, NO); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionIsChangingNotification, self, nil); + } +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPTableView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "trackSelection:", anEvent); +} +}), new objj_method(sel_getUid("setDoubleAction:"), function $CPTableView__setDoubleAction_(self, _cmd, aSelector) +{ with(self) +{ + _doubleAction = aSelector; +} +}), new objj_method(sel_getUid("doubleAction"), function $CPTableView__doubleAction(self, _cmd) +{ with(self) +{ + return _doubleAction; +} +}), new objj_method(sel_getUid("clickedColumn"), function $CPTableView__clickedColumn(self, _cmd) +{ with(self) +{ + return _clickedColumn; +} +}), new objj_method(sel_getUid("clickedRow"), function $CPTableView__clickedRow(self, _cmd) +{ with(self) +{ + return _clickedRow; +} +}), new objj_method(sel_getUid("trackSelection:"), function $CPTableView__trackSelection_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"), + point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil), + currentRow = MAX(0, MIN(_numberOfRows-1, objj_msgSend(self, "_rowAtY:", point.y))); + if (type == CPLeftMouseUp) + { + _clickedRow = objj_msgSend(self, "rowAtPoint:", point); + _clickedColumn = objj_msgSend(self, "columnAtPoint:", point); + if (objj_msgSend(anEvent, "clickCount") === 2) + { + CPLog.warn("edit?!"); + objj_msgSend(self, "sendAction:to:", _doubleAction, _target); + } + else + { + if (!objj_msgSend(_previousSelectedRowIndexes, "isEqualToIndexSet:", _selectedRowIndexes)) + { + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionDidChangeNotification, self, nil); + } + objj_msgSend(self, "sendAction:to:", _action, _target); + } + return; + } + if (type == CPLeftMouseDown) + { + _previousSelectedRowIndexes = _selectedRowIndexes; + _selectionModifier = objj_msgSend(anEvent, "modifierFlags"); + if (_selectionModifier & CPShiftKeyMask) + _selectionStartRow = (ABS(objj_msgSend(_previousSelectedRowIndexes, "firstIndex") - currentRow) < ABS(objj_msgSend(_previousSelectedRowIndexes, "lastIndex") - currentRow)) ? + objj_msgSend(_previousSelectedRowIndexes, "firstIndex") : objj_msgSend(_previousSelectedRowIndexes, "lastIndex"); + else + _selectionStartRow = currentRow; + objj_msgSend(self, "_updateSelectionWithMouseAtRow:", currentRow); + } + else if (type == CPLeftMouseDragged) + { + objj_msgSend(self, "_updateSelectionWithMouseAtRow:", currentRow); + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackSelection:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("_drawSelection"), function $CPTableView___drawSelection(self, _cmd) +{ with(self) +{ + if (!_currentlySelected) { + _currentlySelected = objj_msgSend(CPIndexSet, "indexSet"); + _selectionViews = []; + _selectionViewsPool = []; + } + var removeSet = objj_msgSend(_currentlySelected, "copy"), + indexesToRemove = []; + objj_msgSend(removeSet, "removeIndexes:", _selectedRowIndexes); + objj_msgSend(removeSet, "getIndexes:maxCount:inIndexRange:", indexesToRemove, Number.MAX_VALUE, nil); + var addSet = objj_msgSend(_selectedRowIndexes, "copy"), + indexesToAdd = []; + objj_msgSend(addSet, "removeIndexes:", _currentlySelected); + objj_msgSend(addSet, "getIndexes:maxCount:inIndexRange:", indexesToAdd, Number.MAX_VALUE, nil); + for (var i = 0; i < indexesToRemove.length; i++) + { + var row = indexesToRemove[i]; + for (var column = 0; column < _tableColumns.length; column++) + if (objj_msgSend(_tableCells[column][row], "respondsToSelector:", sel_getUid("highlight:"))) + objj_msgSend(_tableCells[column][row], "highlight:", NO); + } + for (var i = 0; i < indexesToAdd.length; i++) + { + var row = indexesToAdd[i]; + for (var column = 0; column < _tableColumns.length; column++) + if (objj_msgSend(_tableCells[column][row], "respondsToSelector:", sel_getUid("highlight:"))) + objj_msgSend(_tableCells[column][row], "highlight:", YES); + } + for (var i = 0; i < indexesToAdd.length; i++) + { + var index = indexesToAdd[i], + view; + if (indexesToRemove.length > 0) + { + view = _selectionViews[indexesToRemove.pop()]; + } + else if (_selectionViewsPool.length > 0) + { + view = _selectionViewsPool.pop(); + objj_msgSend(self, "addSubview:positioned:relativeTo:", view, CPWindowBelow, nil); + } + else + { + view = objj_msgSend(objj_msgSend(CPView, "alloc"), "init"); + objj_msgSend(view, "setBackgroundColor:", objj_msgSend(CPColor, "alternateSelectedControlColor")); + objj_msgSend(self, "addSubview:positioned:relativeTo:", view, CPWindowBelow, nil); + } + _selectionViews[index] = view; + var frame = objj_msgSend(self, "rectOfRow:", index); + frame.size.height += _intercellSpacing.height - 1; + objj_msgSend(view, "setFrame:", frame); + } + for (var i = 0; i < indexesToRemove.length; i++) + { + var row = indexesToRemove[i], + view = _selectionViews[row]; + objj_msgSend(view, "removeFromSuperview"); + _selectionViewsPool.push(view); + } + _currentlySelected = objj_msgSend(_selectedRowIndexes, "copy"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPTableView__initialize(self, _cmd) +{ with(self) +{ +} +})]); +} +var CPTableViewDataSourceKey = "CPTableViewDataSourceKey", + CPTableViewDelegateKey = "CPTableViewDelegateKey", + CPTableViewHeaderViewKey = "CPTableViewHeaderViewKey", + CPTableViewTableColumnsKey = "CPTableViewTableColumnsKey", + CPTableViewRowHeightKey = "CPTableViewRowHeightKey", + CPTableViewIntercellSpacingKey = "CPTableViewIntercellSpacingKey", + CPTableViewMultipleSelectionKey = "CPTableViewMultipleSelectionKey", + CPTableViewEmptySelectionKey = "CPTableViewEmptySelectionKey"; +{ +var the_class = objj_getClass("CPTableView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTableView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTableView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder)) + { + objj_msgSend(self, "_init"); + _dataSource = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableViewDataSourceKey); + _delegate = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableViewDelegateKey); + _rowHeight = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableViewRowHeightKey); + _intercellSpacing = objj_msgSend(aCoder, "decodeSizeForKey:", CPTableViewIntercellSpacingKey); + _allowsMultipleSelection = objj_msgSend(aCoder, "decodeBoolForKey:", CPTableViewMultipleSelectionKey); + _allowsEmptySelection = objj_msgSend(aCoder, "decodeBoolForKey:", CPTableViewEmptySelectionKey); + var tableColumns = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableViewTableColumnsKey); + for (var i = 0; i < tableColumns.length; i++) + objj_msgSend(self, "addTableColumn:", tableColumns[i]); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTableView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _dataSource, CPTableViewDataSourceKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _delegate, CPTableViewDelegateKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _tableColumns, CPTableViewTableColumnsKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _rowHeight, CPTableViewRowHeightKey); + objj_msgSend(aCoder, "encodeSize:forKey:", _intercellSpacing, CPTableViewIntercellSpacingKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _allowsMultipleSelection, CPTableViewMultipleSelectionKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _allowsEmptySelection, CPTableViewEmptySelectionKey); +} +})]); +} +{ +var the_class = objj_getClass("CPColor") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPColor\"")); +var meta_class = the_class.isa;class_addMethods(meta_class, [new objj_method(sel_getUid("alternateSelectedControlColor"), function $CPColor__alternateSelectedControlColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.22, 0.46, 0.84, 1.0]); +} +}), new objj_method(sel_getUid("secondarySelectedControlColor"), function $CPColor__secondarySelectedControlColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.83, 0.83, 0.83, 1.0]); +} +})]); +} + +p;11;CPTabView.ji;13;CPImageView.ji;15;CPTabViewItem.ji;8;CPView.jc;26103; +CPTopTabsBezelBorder = 0; +CPNoTabsBezelBorder = 4; +CPNoTabsLineBorder = 5; +CPNoTabsNoBorder = 6; +var CPTabViewBezelBorderLeftImage = nil, + CPTabViewBackgroundCenterImage = nil, + CPTabViewBezelBorderRightImage = nil, + CPTabViewBezelBorderColor = nil, + CPTabViewBezelBorderBackgroundColor = nil; +var LEFT_INSET = 7.0, + RIGHT_INSET = 7.0; +var CPTabViewDidSelectTabViewItemSelector = 1, + CPTabViewShouldSelectTabViewItemSelector = 2, + CPTabViewWillSelectTabViewItemSelector = 4, + CPTabViewDidChangeNumberOfTabViewItemsSelector = 8; +{var the_class = objj_allocateClassPair(CPView, "CPTabView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_labelsView"), new objj_ivar("_backgroundView"), new objj_ivar("_separatorView"), new objj_ivar("_auxiliaryView"), new objj_ivar("_contentView"), new objj_ivar("_tabViewItems"), new objj_ivar("_selectedTabViewItem"), new objj_ivar("_tabViewType"), new objj_ivar("_delegate"), new objj_ivar("_delegateSelectors")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPTabView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _tabViewType = CPTopTabsBezelBorder; + _tabViewItems = []; + } + return self; +} +}), new objj_method(sel_getUid("viewDidMoveToWindow"), function $CPTabView__viewDidMoveToWindow(self, _cmd) +{ with(self) +{ + if (_tabViewType != CPTopTabsBezelBorder || _labelsView) + return; + objj_msgSend(self, "_createBezelBorder"); + objj_msgSend(self, "layoutSubviews"); +} +}), new objj_method(sel_getUid("_createBezelBorder"), function $CPTabView___createBezelBorder(self, _cmd) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"); + _labelsView = objj_msgSend(objj_msgSend(_CPTabLabelsView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), 0.0)); + objj_msgSend(_labelsView, "setTabView:", self); + objj_msgSend(_labelsView, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(self, "addSubview:", _labelsView); + _backgroundView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_backgroundView, "setBackgroundColor:", CPTabViewBezelBorderBackgroundColor); + objj_msgSend(_backgroundView, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + objj_msgSend(self, "addSubview:", _backgroundView); + _separatorView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_separatorView, "setBackgroundColor:", objj_msgSend(objj_msgSend(self, "class"), "bezelBorderColor")); + objj_msgSend(_separatorView, "setAutoresizingMask:", CPViewWidthSizable | CPViewMaxYMargin); + objj_msgSend(self, "addSubview:", _separatorView); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPTabView__layoutSubviews(self, _cmd) +{ with(self) +{ + if (_tabViewType == CPTopTabsBezelBorder) + { + var backgroundRect = objj_msgSend(self, "bounds"), + labelsViewHeight = objj_msgSend(_CPTabLabelsView, "height"); + backgroundRect.origin.y += labelsViewHeight; + backgroundRect.size.height -= labelsViewHeight; + objj_msgSend(_backgroundView, "setFrame:", backgroundRect); + var auxiliaryViewHeight = 5.0; + if (_auxiliaryView) + { + auxiliaryViewHeight = CGRectGetHeight(objj_msgSend(_auxiliaryView, "frame")); + objj_msgSend(_auxiliaryView, "setFrame:", CGRectMake(LEFT_INSET, labelsViewHeight, CGRectGetWidth(backgroundRect) - LEFT_INSET - RIGHT_INSET, auxiliaryViewHeight)); + } + objj_msgSend(_separatorView, "setFrame:", CGRectMake(LEFT_INSET, labelsViewHeight + auxiliaryViewHeight, CGRectGetWidth(backgroundRect) - LEFT_INSET - RIGHT_INSET, 1.0)); + } + objj_msgSend(_contentView, "setFrame:", objj_msgSend(self, "contentRect")); +} +}), new objj_method(sel_getUid("addTabViewItem:"), function $CPTabView__addTabViewItem_(self, _cmd, aTabViewItem) +{ with(self) +{ + objj_msgSend(self, "insertTabViewItem:atIndex:", aTabViewItem, objj_msgSend(_tabViewItems, "count")); +} +}), new objj_method(sel_getUid("insertTabViewItem:atIndex:"), function $CPTabView__insertTabViewItem_atIndex_(self, _cmd, aTabViewItem, anIndex) +{ with(self) +{ + if (!_labelsView && _tabViewType == CPTopTabsBezelBorder) + objj_msgSend(self, "_createBezelBorder"); + objj_msgSend(_tabViewItems, "insertObject:atIndex:", aTabViewItem, anIndex); + objj_msgSend(_labelsView, "tabView:didAddTabViewItem:", self, aTabViewItem); + if (objj_msgSend(_tabViewItems, "count") == 1) + objj_msgSend(self, "selectFirstTabViewItem:", self); + if (_delegateSelectors & CPTabViewDidChangeNumberOfTabViewItemsSelector) + objj_msgSend(_delegate, "tabViewDidChangeNumberOfTabViewItems:", self); +} +}), new objj_method(sel_getUid("removeTabViewItem:"), function $CPTabView__removeTabViewItem_(self, _cmd, aTabViewItem) +{ with(self) +{ + objj_msgSend(_tabViewItems, "removeObjectIdenticalTo:", aTabViewItem); + objj_msgSend(_labelsView, "tabView:didRemoveTabViewItem:", self, aTabViewItem); + if (_delegateSelectors & CPTabViewDidChangeNumberOfTabViewItemsSelector) + objj_msgSend(_delegate, "tabViewDidChangeNumberOfTabViewItems:", self); +} +}), new objj_method(sel_getUid("indexOfTabViewItem:"), function $CPTabView__indexOfTabViewItem_(self, _cmd, aTabViewItem) +{ with(self) +{ + return objj_msgSend(_tabViewItems, "indexOfObjectIdenticalTo:", aTabViewItem); +} +}), new objj_method(sel_getUid("indexOfTabViewItemWithIdentifier:"), function $CPTabView__indexOfTabViewItemWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + var index = 0, + count = objj_msgSend(_tabViewItems, "count"); + for (; index < count; ++index) + if (objj_msgSend(objj_msgSend(_tabViewItems[index], "identifier"), "isEqual:", anIdentifier)) + return index; + return index; +} +}), new objj_method(sel_getUid("numberOfTabViewItems"), function $CPTabView__numberOfTabViewItems(self, _cmd) +{ with(self) +{ + return objj_msgSend(_tabViewItems, "count"); +} +}), new objj_method(sel_getUid("tabViewItemAtIndex:"), function $CPTabView__tabViewItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return _tabViewItems[anIndex]; +} +}), new objj_method(sel_getUid("tabViewItems"), function $CPTabView__tabViewItems(self, _cmd) +{ with(self) +{ + return _tabViewItems; +} +}), new objj_method(sel_getUid("selectFirstTabViewItem:"), function $CPTabView__selectFirstTabViewItem_(self, _cmd, aSender) +{ with(self) +{ + var count = objj_msgSend(_tabViewItems, "count"); + if (count) + objj_msgSend(self, "selectTabViewItemAtIndex:", 0); +} +}), new objj_method(sel_getUid("selectLastTabViewItem:"), function $CPTabView__selectLastTabViewItem_(self, _cmd, aSender) +{ with(self) +{ + var count = objj_msgSend(_tabViewItems, "count"); + if (count) + objj_msgSend(self, "selectTabViewItemAtIndex:", count - 1); +} +}), new objj_method(sel_getUid("selectNextTabViewItem:"), function $CPTabView__selectNextTabViewItem_(self, _cmd, aSender) +{ with(self) +{ + if (!_selectedTabViewItem) + return; + var index = objj_msgSend(self, "indexOfTabViewItem:", _selectedTabViewItem), + count = objj_msgSend(_tabViewItems, "count"); + objj_msgSend(self, "selectTabViewItemAtIndex:", index + 1 % count); +} +}), new objj_method(sel_getUid("selectPreviousTabViewItem:"), function $CPTabView__selectPreviousTabViewItem_(self, _cmd, aSender) +{ with(self) +{ + if (!_selectedTabViewItem) + return; + var index = objj_msgSend(self, "indexOfTabViewItem:", _selectedTabViewItem), + count = objj_msgSend(_tabViewItems, "count"); + objj_msgSend(self, "selectTabViewItemAtIndex:", index == 0 ? count : index - 1); +} +}), new objj_method(sel_getUid("selectTabViewItem:"), function $CPTabView__selectTabViewItem_(self, _cmd, aTabViewItem) +{ with(self) +{ + if ((_delegateSelectors & CPTabViewShouldSelectTabViewItemSelector) && !objj_msgSend(_delegate, "tabView:shouldSelectTabViewItem:", self, aTabViewItem)) + return; + if (_delegateSelectors & CPTabViewWillSelectTabViewItemSelector) + objj_msgSend(_delegate, "tabView:willSelectTabViewItem:", self, aTabViewItem); + if (_selectedTabViewItem) + { + _selectedTabViewItem._tabState = CPBackgroundTab; + objj_msgSend(_labelsView, "tabView:didChangeStateOfTabViewItem:", self, _selectedTabViewItem); + objj_msgSend(_contentView, "removeFromSuperview"); + objj_msgSend(_auxiliaryView, "removeFromSuperview"); + } + _selectedTabViewItem = aTabViewItem; + _selectedTabViewItem._tabState = CPSelectedTab; + _contentView = objj_msgSend(_selectedTabViewItem, "view"); + objj_msgSend(_contentView, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + _auxiliaryView = objj_msgSend(_selectedTabViewItem, "auxiliaryView"); + objj_msgSend(_auxiliaryView, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(self, "addSubview:", _contentView); + if (_auxiliaryView) + objj_msgSend(self, "addSubview:", _auxiliaryView); + objj_msgSend(_labelsView, "tabView:didChangeStateOfTabViewItem:", self, _selectedTabViewItem); + objj_msgSend(self, "layoutSubviews"); + if (_delegateSelectors & CPTabViewDidSelectTabViewItemSelector) + objj_msgSend(_delegate, "tabView:didSelectTabViewItem:", self, aTabViewItem); +} +}), new objj_method(sel_getUid("selectTabViewItemAtIndex:"), function $CPTabView__selectTabViewItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + objj_msgSend(self, "selectTabViewItem:", _tabViewItems[anIndex]); +} +}), new objj_method(sel_getUid("selectedTabViewItem"), function $CPTabView__selectedTabViewItem(self, _cmd) +{ with(self) +{ + return _selectedTabViewItem; +} +}), new objj_method(sel_getUid("setTabViewType:"), function $CPTabView__setTabViewType_(self, _cmd, aTabViewType) +{ with(self) +{ + if (_tabViewType == aTabViewType) + return; + _tabViewType = aTabViewType; + if (_tabViewType == CPNoTabsBezelBorder || _tabViewType == CPNoTabsLineBorder || _tabViewType == CPNoTabsNoBorder) + objj_msgSend(_labelsView, "removeFromSuperview"); + else if (!objj_msgSend(_labelsView, "superview")) + objj_msgSend(self, "addSubview:", _labelsView); + if (_tabViewType == CPNoTabsLineBorder || _tabViewType == CPNoTabsNoBorder) + objj_msgSend(_backgroundView, "removeFromSuperview"); + else if (!objj_msgSend(_backgroundView, "superview")) + objj_msgSend(self, "addSubview:", _backgroundView); + objj_msgSend(self, "layoutSubviews"); +} +}), new objj_method(sel_getUid("tabViewType"), function $CPTabView__tabViewType(self, _cmd) +{ with(self) +{ + return _tabViewType; +} +}), new objj_method(sel_getUid("contentRect"), function $CPTabView__contentRect(self, _cmd) +{ with(self) +{ + var contentRect = CGRectMakeCopy(objj_msgSend(self, "bounds")); + if (_tabViewType == CPTopTabsBezelBorder) + { + var labelsViewHeight = objj_msgSend(_CPTabLabelsView, "height"), + auxiliaryViewHeight = _auxiliaryView ? CGRectGetHeight(objj_msgSend(_auxiliaryView, "frame")) : 5.0, + separatorViewHeight = 1.0; + contentRect.origin.y += labelsViewHeight + auxiliaryViewHeight + separatorViewHeight; + contentRect.size.height -= labelsViewHeight + auxiliaryViewHeight + separatorViewHeight * 2.0; + contentRect.origin.x += LEFT_INSET; + contentRect.size.width -= LEFT_INSET + RIGHT_INSET; + } + return contentRect; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPTabView__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate == aDelegate) + return; + _delegate = aDelegate; + _delegateSelectors = 0; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tabView:shouldSelectTabViewItem:"))) + _delegateSelectors |= CPTabViewShouldSelectTabViewItemSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tabView:willSelectTabViewItem:"))) + _delegateSelectors |= CPTabViewWillSelectTabViewItemSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tabView:didSelectTabViewItem:"))) + _delegateSelectors |= CPTabViewDidSelectTabViewItemSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tabViewDidChangeNumberOfTabViewItems:"))) + _delegateSelectors |= CPTabViewDidChangeNumberOfTabViewItemsSelector; +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPTabView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + var location = objj_msgSend(_labelsView, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil), + tabViewItem = objj_msgSend(_labelsView, "representedTabViewItemAtPoint:", location); + if (tabViewItem) + objj_msgSend(self, "selectTabViewItem:", tabViewItem); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPTabView__initialize(self, _cmd) +{ with(self) +{ + if (self != CPTabView) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self), + emptyImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initByReferencingFile:size:", "", CGSizeMake(7.0, 0.0)), + backgroundImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/CPTabViewBezelBackgroundCenter.png"), CGSizeMake(1.0, 1.0)), + bezelBorderLeftImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/CPTabViewBezelBorderLeft.png"), CGSizeMake(7.0, 1.0)), + bezerBorderImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/CPTabViewBezelBorder.png"), CGSizeMake(1.0, 1.0)), + bezelBorderRightImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/CPTabViewBezelBorderRight.png"), CGSizeMake(7.0, 1.0)); + CPTabViewBezelBorderBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + emptyImage, + emptyImage, + emptyImage, + bezelBorderLeftImage, + backgroundImage, + bezelBorderRightImage, + bezelBorderLeftImage, + bezerBorderImage, + bezelBorderRightImage + ])); + CPTabViewBezelBorderColor = objj_msgSend(CPColor, "colorWithPatternImage:", bezerBorderImage); +} +}), new objj_method(sel_getUid("bezelBorderColor"), function $CPTabView__bezelBorderColor(self, _cmd) +{ with(self) +{ + return CPTabViewBezelBorderColor; +} +})]); +} +var CPTabViewItemsKey = "CPTabViewItemsKey", + CPTabViewSelectedItemKey = "CPTabViewSelectedItemKey", + CPTabViewTypeKey = "CPTabViewTypeKey", + CPTabViewDelegateKey = "CPTabViewDelegateKey"; +{ +var the_class = objj_getClass("CPTabView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTabView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTabView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder)) + { + _tabViewType = objj_msgSend(aCoder, "decodeIntForKey:", CPTabViewTypeKey); + _tabViewItems = []; + objj_msgSend(self, "_createBezelBorder"); + var items = objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewItemsKey); + for (var i = 0; items && i < items.length; i++) + objj_msgSend(self, "insertTabViewItem:atIndex:", items[i], i); + var selected = objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewSelectedItemKey); + if (selected) + objj_msgSend(self, "selectTabViewItem:", selected); + objj_msgSend(self, "setDelegate:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewDelegateKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTabView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + var actualSubviews = _subviews; + _subviews = []; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + _subviews = actualSubviews; + objj_msgSend(aCoder, "encodeObject:forKey:", _tabViewItems, CPTabViewItemsKey);; + objj_msgSend(aCoder, "encodeObject:forKey:", _selectedTabViewItem, CPTabViewSelectedItemKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _tabViewType, CPTabViewTypeKey); + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _delegate, CPTabViewDelegateKey); +} +})]); +} +var _CPTabLabelsViewBackgroundColor = nil, + _CPTabLabelsViewInsideMargin = 10.0, + _CPTabLabelsViewOutsideMargin = 15.0; +{var the_class = objj_allocateClassPair(CPView, "_CPTabLabelsView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_tabView"), new objj_ivar("_tabLabels")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $_CPTabLabelsView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _tabLabels = []; + objj_msgSend(self, "setBackgroundColor:", _CPTabLabelsViewBackgroundColor); + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(aFrame), 26.0)); + } + return self; +} +}), new objj_method(sel_getUid("setTabView:"), function $_CPTabLabelsView__setTabView_(self, _cmd, aTabView) +{ with(self) +{ + _tabView = aTabView; +} +}), new objj_method(sel_getUid("tabView"), function $_CPTabLabelsView__tabView(self, _cmd) +{ with(self) +{ + return _tabView; +} +}), new objj_method(sel_getUid("tabView:didAddTabViewItem:"), function $_CPTabLabelsView__tabView_didAddTabViewItem_(self, _cmd, aTabView, aTabViewItem) +{ with(self) +{ + var label = objj_msgSend(objj_msgSend(_CPTabLabel, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(label, "setTabViewItem:", aTabViewItem); + _tabLabels.push(label); + objj_msgSend(self, "addSubview:", label); + objj_msgSend(self, "layoutSubviews"); +} +}), new objj_method(sel_getUid("tabView:didRemoveTabViewItem:"), function $_CPTabLabelsView__tabView_didRemoveTabViewItem_(self, _cmd, aTabView, aTabViewItem) +{ with(self) +{ + var index = objj_msgSend(aTabView, "indexOfTabViewItem:", aTabViewItem), + label = _tabLabels[index]; + objj_msgSend(_tabLabels, "removeObjectAtIndex:", index); + objj_msgSend(label, "removeFromSuperview"); + objj_msgSend(self, "layoutSubviews"); +} +}), new objj_method(sel_getUid("tabView:didChangeStateOfTabViewItem:"), function $_CPTabLabelsView__tabView_didChangeStateOfTabViewItem_(self, _cmd, aTabView, aTabViewItem) +{ with(self) +{ + objj_msgSend(_tabLabels[objj_msgSend(aTabView, "indexOfTabViewItem:", aTabViewItem)], "setTabState:", objj_msgSend(aTabViewItem, "tabState")); + } +}), new objj_method(sel_getUid("representedTabViewItemAtPoint:"), function $_CPTabLabelsView__representedTabViewItemAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var index = 0, + count = _tabLabels.length; + for (; index < count; ++index) + { + var label = _tabLabels[index]; + if (CGRectContainsPoint(objj_msgSend(label, "frame"), aPoint)) + return objj_msgSend(label, "tabViewItem"); + } + return nil; +} +}), new objj_method(sel_getUid("layoutSubviews"), function $_CPTabLabelsView__layoutSubviews(self, _cmd) +{ with(self) +{ + var index = 0, + count = _tabLabels.length, + width = ((objj_msgSend(self, "bounds").size.width) - (count - 1) * _CPTabLabelsViewInsideMargin - 2 * _CPTabLabelsViewOutsideMargin) / count, + x = _CPTabLabelsViewOutsideMargin; + for (; index < count; ++index) + { + var label = _tabLabels[index], + frame = { origin: { x:x, y:8.0 }, size: { width:width, height:18.0 } }; + objj_msgSend(label, "setFrame:", frame); + x = (frame.origin.x + frame.size.width) + _CPTabLabelsViewInsideMargin; + } +} +}), new objj_method(sel_getUid("setFrameSize:"), function $_CPTabLabelsView__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + if (CGSizeEqualToSize(objj_msgSend(self, "frame").size, aSize)) + return; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setFrameSize:", aSize); + objj_msgSend(self, "layoutSubviews"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPTabLabelsView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPTabLabelsView, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPTabLabelsViewBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPThreePartImage, "alloc"), "initWithImageSlices:isVertical:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelsViewLeft.png"), CGSizeMake(12.0, 26.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelsViewCenter.png"), CGSizeMake(1.0, 26.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelsViewRight.png"), CGSizeMake(12.0, 26.0)) + ], NO)); +} +}), new objj_method(sel_getUid("height"), function $_CPTabLabelsView__height(self, _cmd) +{ with(self) +{ + return 26.0; +} +})]); +} +var _CPTabLabelBackgroundColor = nil, + _CPTabLabelSelectedBackgroundColor = nil; +{var the_class = objj_allocateClassPair(CPView, "_CPTabLabel"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_tabViewItem"), new objj_ivar("_labelField")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $_CPTabLabel__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _labelField = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_labelField, "setAlignment:", CPCenterTextAlignment); + objj_msgSend(_labelField, "setFrame:", CGRectMake(5.0, 0.0, CGRectGetWidth(aFrame) - 10.0, 20.0)); + objj_msgSend(_labelField, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_labelField, "setFont:", objj_msgSend(CPFont, "boldSystemFontOfSize:", 11.0)); + objj_msgSend(self, "addSubview:", _labelField); + objj_msgSend(self, "setTabState:", CPBackgroundTab); + } + return self; +} +}), new objj_method(sel_getUid("setTabState:"), function $_CPTabLabel__setTabState_(self, _cmd, aTabState) +{ with(self) +{ + objj_msgSend(self, "setBackgroundColor:", aTabState == CPSelectedTab ? _CPTabLabelSelectedBackgroundColor : _CPTabLabelBackgroundColor); +} +}), new objj_method(sel_getUid("setTabViewItem:"), function $_CPTabLabel__setTabViewItem_(self, _cmd, aTabViewItem) +{ with(self) +{ + _tabViewItem = aTabViewItem; + objj_msgSend(self, "update"); +} +}), new objj_method(sel_getUid("tabViewItem"), function $_CPTabLabel__tabViewItem(self, _cmd) +{ with(self) +{ + return _tabViewItem; +} +}), new objj_method(sel_getUid("update"), function $_CPTabLabel__update(self, _cmd) +{ with(self) +{ + objj_msgSend(_labelField, "setStringValue:", objj_msgSend(_tabViewItem, "label")); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPTabLabel__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPTabLabel, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPTabLabelBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPThreePartImage, "alloc"), "initWithImageSlices:isVertical:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelBackgroundLeft.png"), CGSizeMake(6.0, 18.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelBackgroundCenter.png"), CGSizeMake(1.0, 18.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelBackgroundRight.png"), CGSizeMake(6.0, 18.0)) + ], NO)); + _CPTabLabelSelectedBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPThreePartImage, "alloc"), "initWithImageSlices:isVertical:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelSelectedLeft.png"), CGSizeMake(3.0, 18.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelSelectedCenter.png"), CGSizeMake(1.0, 18.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelSelectedRight.png"), CGSizeMake(3.0, 18.0)) + ], NO)); +} +})]); +} + +p;15;CPTabViewItem.jI;21;Foundation/CPObject.jI;15;AppKit/CPView.jc;3722; +CPSelectedTab = 0; +CPBackgroundTab = 1; +CPPressedTab = 2; +{var the_class = objj_allocateClassPair(CPObject, "CPTabViewItem"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_identifier"), new objj_ivar("_label"), new objj_ivar("_view"), new objj_ivar("_auxiliaryView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithIdentifier:"), function $CPTabViewItem__initWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _identifier = anIdentifier; + return self; +} +}), new objj_method(sel_getUid("setLabel:"), function $CPTabViewItem__setLabel_(self, _cmd, aLabel) +{ with(self) +{ + _label = aLabel; +} +}), new objj_method(sel_getUid("label"), function $CPTabViewItem__label(self, _cmd) +{ with(self) +{ + return _label; +} +}), new objj_method(sel_getUid("tabState"), function $CPTabViewItem__tabState(self, _cmd) +{ with(self) +{ + return _tabState; +} +}), new objj_method(sel_getUid("setIdentifier:"), function $CPTabViewItem__setIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + _identifier = anIdentifier; +} +}), new objj_method(sel_getUid("identifier"), function $CPTabViewItem__identifier(self, _cmd) +{ with(self) +{ + return _identifier; +} +}), new objj_method(sel_getUid("setView:"), function $CPTabViewItem__setView_(self, _cmd, aView) +{ with(self) +{ + _view = aView; +} +}), new objj_method(sel_getUid("view"), function $CPTabViewItem__view(self, _cmd) +{ with(self) +{ + return _view; +} +}), new objj_method(sel_getUid("setAuxiliaryView:"), function $CPTabViewItem__setAuxiliaryView_(self, _cmd, anAuxiliaryView) +{ with(self) +{ + _auxiliaryView = anAuxiliaryView; +} +}), new objj_method(sel_getUid("auxiliaryView"), function $CPTabViewItem__auxiliaryView(self, _cmd) +{ with(self) +{ + return _auxiliaryView; +} +}), new objj_method(sel_getUid("tabView"), function $CPTabViewItem__tabView(self, _cmd) +{ with(self) +{ + return _tabView; +} +})]); +} +var CPTabViewItemIdentifierKey = "CPTabViewItemIdentifierKey", + CPTabViewItemLabelKey = "CPTabViewItemLabelKey", + CPTabViewItemViewKey = "CPTabViewItemViewKey", + CPTabViewItemAuxViewKey = "CPTabViewItemAuxViewKey"; +{ +var the_class = objj_getClass("CPTabViewItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTabViewItem\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTabViewItem__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _identifier = objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewItemIdentifierKey); + _label = objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewItemLabelKey); + _view = objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewItemViewKey); + _auxiliaryView = objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewItemAuxViewKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTabViewItem__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _identifier, CPTabViewItemIdentifierKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _label, CPTabViewItemLabelKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _view, CPTabViewItemViewKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _auxiliaryView, CPTabViewItemAuxViewKey); +} +})]); +} + +p;13;CPTextField.ji;11;CPControl.ji;17;CPStringDrawing.ji;17;CPCompatibility.jc;31053; +CPLineBreakByWordWrapping = 0; +CPLineBreakByCharWrapping = 1; +CPLineBreakByClipping = 2; +CPLineBreakByTruncatingHead = 3; +CPLineBreakByTruncatingTail = 4; +CPLineBreakByTruncatingMiddle = 5; +CPTextFieldSquareBezel = 0; +CPTextFieldRoundedBezel = 1; +var CPTextFieldDOMInputElement = nil, + CPTextFieldDOMPasswordInputElement = nil, + CPTextFieldDOMStandardInputElement = nil, + CPTextFieldInputOwner = nil, + CPTextFieldTextDidChangeValue = nil, + CPTextFieldInputResigning = NO, + CPTextFieldInputDidBlur = NO, + CPTextFieldInputIsActive = NO, + CPTextFieldCachedSelectStartFunction = nil, + CPTextFieldCachedDragFunction = nil, + CPTextFieldBlurFunction = nil, + CPTextFieldKeyUpFunction = nil, + CPTextFieldKeyPressFunction = nil, + CPTextFieldKeyDownFunction = nil; +var CPSecureTextFieldCharacter = "\u2022"; +{ +var the_class = objj_getClass("CPString") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPString\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("string"), function $CPString__string(self, _cmd) +{ with(self) +{ + return self; +} +})]); +} +CPTextFieldStateRounded = CPThemeState("rounded"); +CPTextFieldStatePlaceholder = CPThemeState("placeholder"); +{var the_class = objj_allocateClassPair(CPControl, "CPTextField"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_isEditable"), new objj_ivar("_isSelectable"), new objj_ivar("_isSecure"), new objj_ivar("_drawsBackground"), new objj_ivar("_textFieldBackgroundColor"), new objj_ivar("_placeholderString"), new objj_ivar("_delegate"), new objj_ivar("_textDidChangeValue"), new objj_ivar("_bezelStyle"), new objj_ivar("_isBordered"), new objj_ivar("_controlSize")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("_inputElement"), function $CPTextField___inputElement(self, _cmd) +{ with(self) +{ + if (!CPTextFieldDOMInputElement) + { + CPTextFieldDOMInputElement = document.createElement("input"); + CPTextFieldDOMInputElement.style.position = "absolute"; + CPTextFieldDOMInputElement.style.border = "0px"; + CPTextFieldDOMInputElement.style.padding = "0px"; + CPTextFieldDOMInputElement.style.margin = "0px"; + CPTextFieldDOMInputElement.style.whiteSpace = "pre"; + CPTextFieldDOMInputElement.style.background = "transparent"; + CPTextFieldDOMInputElement.style.outline = "none"; + CPTextFieldBlurFunction = function(anEvent) + { + if (CPTextFieldInputOwner && CPTextFieldInputOwner._DOMElement != CPTextFieldDOMInputElement.parentNode) + return; + if (!CPTextFieldInputResigning) + { + objj_msgSend(objj_msgSend(CPTextFieldInputOwner, "window"), "makeFirstResponder:", nil); + return; + } + CPTextFieldHandleBlur(anEvent, CPTextFieldDOMInputElement); + CPTextFieldInputDidBlur = YES; + return true; + } + CPTextFieldKeyDownFunction = function(anEvent) + { + CPTextFieldTextDidChangeValue = objj_msgSend(CPTextFieldInputOwner, "stringValue"); + CPTextFieldKeyPressFunction(anEvent); + return true; + } + CPTextFieldKeyPressFunction = function(aDOMEvent) + { + aDOMEvent = aDOMEvent || window.event; + if (aDOMEvent.keyCode == CPReturnKeyCode || aDOMEvent.keyCode == CPTabKeyCode) + { + if (aDOMEvent.preventDefault) + aDOMEvent.preventDefault(); + if (aDOMEvent.stopPropagation) + aDOMEvent.stopPropagation(); + aDOMEvent.cancelBubble = true; + var owner = CPTextFieldInputOwner; + if (aDOMEvent && aDOMEvent.keyCode == CPReturnKeyCode) + { + objj_msgSend(owner, "sendAction:to:", objj_msgSend(owner, "action"), objj_msgSend(owner, "target")); + objj_msgSend(objj_msgSend(owner, "window"), "makeFirstResponder:", nil); + } + else if (aDOMEvent && aDOMEvent.keyCode == CPTabKeyCode) + { + if (!aDOMEvent.shiftKey) + objj_msgSend(objj_msgSend(owner, "window"), "selectNextKeyView:", owner); + else + objj_msgSend(objj_msgSend(owner, "window"), "selectPreviousKeyView:", owner); + } + } + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + CPTextFieldKeyUpFunction = function() + { + objj_msgSend(CPTextFieldInputOwner, "setStringValue:", CPTextFieldDOMInputElement.value); + if (objj_msgSend(CPTextFieldInputOwner, "stringValue") !== CPTextFieldTextDidChangeValue) + { + CPTextFieldTextDidChangeValue = objj_msgSend(CPTextFieldInputOwner, "stringValue"); + objj_msgSend(CPTextFieldInputOwner, "textDidChange:", objj_msgSend(CPNotification, "notificationWithName:object:userInfo:", CPControlTextDidChangeNotification, CPTextFieldInputOwner, nil)); + } + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + CPTextFieldHandleBlur = function(anEvent) + { + var owner = CPTextFieldInputOwner; + CPTextFieldInputOwner = nil; + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + if (document.attachEvent) + { + CPTextFieldDOMInputElement.attachEvent("on" + CPDOMEventKeyUp, CPTextFieldKeyUpFunction); + CPTextFieldDOMInputElement.attachEvent("on" + CPDOMEventKeyDown, CPTextFieldKeyDownFunction); + CPTextFieldDOMInputElement.attachEvent("on" + CPDOMEventKeyPress, CPTextFieldKeyPressFunction); + } + else + { + CPTextFieldDOMInputElement.addEventListener(CPDOMEventKeyUp, CPTextFieldKeyUpFunction, NO); + CPTextFieldDOMInputElement.addEventListener(CPDOMEventKeyDown, CPTextFieldKeyDownFunction, NO); + CPTextFieldDOMInputElement.addEventListener(CPDOMEventKeyPress, CPTextFieldKeyPressFunction, NO); + } + CPTextFieldDOMInputElement.onblur = CPTextFieldBlurFunction; + CPTextFieldDOMStandardInputElement = CPTextFieldDOMInputElement; + } + if (CPFeatureIsCompatible(CPInputTypeCanBeChangedFeature)) + { + if (objj_msgSend(self, "isSecure")) + CPTextFieldDOMInputElement.type = "password"; + else + CPTextFieldDOMInputElement.type = "text"; + return CPTextFieldDOMInputElement; + } + if (objj_msgSend(self, "isSecure")) + { + if (!CPTextFieldDOMPasswordInputElement) + { + CPTextFieldDOMPasswordInputElement = document.createElement("input"); + CPTextFieldDOMPasswordInputElement.style.position = "absolute"; + CPTextFieldDOMPasswordInputElement.style.border = "0px"; + CPTextFieldDOMPasswordInputElement.style.padding = "0px"; + CPTextFieldDOMPasswordInputElement.style.margin = "0px"; + CPTextFieldDOMPasswordInputElement.style.whiteSpace = "pre"; + CPTextFieldDOMPasswordInputElement.style.background = "transparent"; + CPTextFieldDOMPasswordInputElement.style.outline = "none"; + CPTextFieldDOMPasswordInputElement.type = "password"; + CPTextFieldDOMPasswordInputElement.attachEvent("on" + CPDOMEventKeyUp, CPTextFieldKeyUpFunction); + CPTextFieldDOMPasswordInputElement.attachEvent("on" + CPDOMEventKeyDown, CPTextFieldKeyDownFunction); + CPTextFieldDOMPasswordInputElement.attachEvent("on" + CPDOMEventKeyPress, CPTextFieldKeyPressFunction); + CPTextFieldDOMPasswordInputElement.onblur = CPTextFieldBlurFunction; + } + CPTextFieldDOMInputElement = CPTextFieldDOMPasswordInputElement; + } + else + { + CPTextFieldDOMInputElement = CPTextFieldDOMStandardInputElement; + } + return CPTextFieldDOMInputElement; +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPTextField__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + objj_msgSend(self, "setStringValue:", ""); + objj_msgSend(self, "setPlaceholderString:", ""); + _sendActionOn = CPKeyUpMask | CPKeyDownMask; + objj_msgSend(self, "setValue:forThemeAttribute:", CPLeftTextAlignment, "alignment"); + } + return self; +} +}), new objj_method(sel_getUid("setEditable:"), function $CPTextField__setEditable_(self, _cmd, shouldBeEditable) +{ with(self) +{ + _isEditable = shouldBeEditable; +} +}), new objj_method(sel_getUid("isEditable"), function $CPTextField__isEditable(self, _cmd) +{ with(self) +{ + return _isEditable; +} +}), new objj_method(sel_getUid("setSelectable:"), function $CPTextField__setSelectable_(self, _cmd, aFlag) +{ with(self) +{ + _isSelectable = aFlag; +} +}), new objj_method(sel_getUid("isSelectable"), function $CPTextField__isSelectable(self, _cmd) +{ with(self) +{ + return _isSelectable; +} +}), new objj_method(sel_getUid("setSecure:"), function $CPTextField__setSecure_(self, _cmd, aFlag) +{ with(self) +{ + _isSecure = aFlag; +} +}), new objj_method(sel_getUid("isSecure"), function $CPTextField__isSecure(self, _cmd) +{ with(self) +{ + return _isSecure; +} +}), new objj_method(sel_getUid("setBezeled:"), function $CPTextField__setBezeled_(self, _cmd, shouldBeBezeled) +{ with(self) +{ + if (shouldBeBezeled) + objj_msgSend(self, "setThemeState:", CPThemeStateBezeled); + else + objj_msgSend(self, "unsetThemeState:", CPThemeStateBezeled); +} +}), new objj_method(sel_getUid("isBezeled"), function $CPTextField__isBezeled(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "hasThemeState:", CPThemeStateBezeled); +} +}), new objj_method(sel_getUid("setBezelStyle:"), function $CPTextField__setBezelStyle_(self, _cmd, aBezelStyle) +{ with(self) +{ + var shouldBeRounded = aBezelStyle === CPTextFieldRoundedBezel; + if (shouldBeRounded) + objj_msgSend(self, "setThemeState:", CPTextFieldStateRounded); + else + objj_msgSend(self, "unsetThemeState:", CPTextFieldStateRounded); +} +}), new objj_method(sel_getUid("bezelStyle"), function $CPTextField__bezelStyle(self, _cmd) +{ with(self) +{ + if (objj_msgSend(self, "hasThemeState:", CPTextFieldStateRounded)) + return CPTextFieldRoundedBezel; + return CPTextFieldSquareBezel; +} +}), new objj_method(sel_getUid("setBordered:"), function $CPTextField__setBordered_(self, _cmd, shouldBeBordered) +{ with(self) +{ + if (shouldBeBordered) + objj_msgSend(self, "setThemeState:", CPThemeStateBordered); + else + objj_msgSend(self, "unsetThemeState:", CPThemeStateBordered); +} +}), new objj_method(sel_getUid("isBordered"), function $CPTextField__isBordered(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "hasThemeState:", CPThemeStateBordered); +} +}), new objj_method(sel_getUid("setDrawsBackground:"), function $CPTextField__setDrawsBackground_(self, _cmd, shouldDrawBackground) +{ with(self) +{ + if (_drawsBackground == shouldDrawBackground) + return; + _drawsBackground = shouldDrawBackground; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("drawsBackground"), function $CPTextField__drawsBackground(self, _cmd) +{ with(self) +{ + return _drawsBackground; +} +}), new objj_method(sel_getUid("setTextFieldBackgroundColor:"), function $CPTextField__setTextFieldBackgroundColor_(self, _cmd, aColor) +{ with(self) +{ + if (_textFieldBackgroundColor == aColor) + return; + _textFieldBackgroundColor = aColor; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("textFieldBackgroundColor"), function $CPTextField__textFieldBackgroundColor(self, _cmd) +{ with(self) +{ + return _textFieldBackgroundColor; +} +}), new objj_method(sel_getUid("acceptsFirstResponder"), function $CPTextField__acceptsFirstResponder(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "isEditable") && objj_msgSend(self, "isEnabled"); +} +}), new objj_method(sel_getUid("becomeFirstResponder"), function $CPTextField__becomeFirstResponder(self, _cmd) +{ with(self) +{ + if (CPTextFieldInputOwner && objj_msgSend(CPTextFieldInputOwner, "window") !== objj_msgSend(self, "window")) + objj_msgSend(objj_msgSend(CPTextFieldInputOwner, "window"), "makeFirstResponder:", nil); + objj_msgSend(self, "setThemeState:", CPThemeStateEditing); + objj_msgSend(self, "_updatePlaceholderState"); + objj_msgSend(self, "setNeedsLayout"); + var string = objj_msgSend(self, "stringValue"), + element = objj_msgSend(self, "_inputElement"); + element.value = string; + element.style.color = objj_msgSend(objj_msgSend(self, "currentValueForThemeAttribute:", "text-color"), "cssString"); + element.style.font = objj_msgSend(objj_msgSend(self, "currentValueForThemeAttribute:", "font"), "cssString"); + element.style.zIndex = 1000; + var contentRect = objj_msgSend(self, "contentRectForBounds:", objj_msgSend(self, "bounds")); + element.style.top = (contentRect.origin.y) + "px"; + element.style.left = ((contentRect.origin.x) - 1) + "px"; + element.style.width = (contentRect.size.width) + "px"; + element.style.height = (contentRect.size.height) + "px"; + _DOMElement.appendChild(element); + window.setTimeout(function() + { + element.focus(); + CPTextFieldInputOwner = self; + }, 0.0); + objj_msgSend(self, "textDidBeginEditing:", objj_msgSend(CPNotification, "notificationWithName:object:userInfo:", CPControlTextDidBeginEditingNotification, self, nil)); + objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "_propagateCurrentDOMEvent:", YES); + CPTextFieldInputIsActive = YES; + if (document.attachEvent) + { + CPTextFieldCachedSelectStartFunction = document.body.onselectstart; + CPTextFieldCachedDragFunction = document.body.ondrag; + document.body.ondrag = function () {}; + document.body.onselectstart = function () {}; + } + return YES; +} +}), new objj_method(sel_getUid("resignFirstResponder"), function $CPTextField__resignFirstResponder(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "unsetThemeState:", CPThemeStateEditing); + objj_msgSend(self, "_updatePlaceholderState"); + objj_msgSend(self, "setNeedsLayout"); + var element = objj_msgSend(self, "_inputElement"); + objj_msgSend(self, "setObjectValue:", element.value); + CPTextFieldInputResigning = YES; + element.blur(); + if (!CPTextFieldInputDidBlur) + CPTextFieldBlurFunction(); + CPTextFieldInputDidBlur = NO; + CPTextFieldInputResigning = NO; + if (element.parentNode == _DOMElement) + element.parentNode.removeChild(element); + CPTextFieldInputIsActive = NO; + if (document.attachEvent) + { + CPTextFieldCachedSelectStartFunction = nil; + CPTextFieldCachedDragFunction = nil; + document.body.ondrag = CPTextFieldCachedDragFunction + document.body.onselectstart = CPTextFieldCachedSelectStartFunction + } + objj_msgSend(self, "textDidEndEditing:", objj_msgSend(CPNotification, "notificationWithName:object:userInfo:", CPControlTextDidBeginEditingNotification, self, nil)); + return YES; +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPTextField__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (objj_msgSend(self, "isEditable") && objj_msgSend(self, "isEnabled")) + return objj_msgSend(objj_msgSend(self, "window"), "makeFirstResponder:", self); + else + return objj_msgSend(objj_msgSend(self, "nextResponder"), "mouseDown:", anEvent); +} +}), new objj_method(sel_getUid("objectValue"), function $CPTextField__objectValue(self, _cmd) +{ with(self) +{ + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "objectValue"); +} +}), new objj_method(sel_getUid("setObjectValue:"), function $CPTextField__setObjectValue_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setObjectValue:", aValue); + objj_msgSend(self, "_updatePlaceholderState"); +} +}), new objj_method(sel_getUid("_updatePlaceholderState"), function $CPTextField___updatePlaceholderState(self, _cmd) +{ with(self) +{ + var string = objj_msgSend(self, "stringValue"); + if ((!string || objj_msgSend(string, "length") === 0) && !objj_msgSend(self, "hasThemeState:", CPThemeStateEditing)) + objj_msgSend(self, "setThemeState:", CPTextFieldStatePlaceholder); + else + objj_msgSend(self, "unsetThemeState:", CPTextFieldStatePlaceholder); +} +}), new objj_method(sel_getUid("setPlaceholderString:"), function $CPTextField__setPlaceholderString_(self, _cmd, aStringValue) +{ with(self) +{ + if (_placeholderString === aStringValue) + return; + _placeholderString = aStringValue; + if (objj_msgSend(self, "hasThemeState:", CPTextFieldStatePlaceholder)) + { + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + } +} +}), new objj_method(sel_getUid("placeholderString"), function $CPTextField__placeholderString(self, _cmd) +{ with(self) +{ + return _placeholderString; +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPTextField__sizeToFit(self, _cmd) +{ with(self) +{ + var size = objj_msgSend((objj_msgSend(self, "stringValue") || " "), "sizeWithFont:", objj_msgSend(self, "currentValueForThemeAttribute:", "font")), + contentInset = objj_msgSend(self, "currentValueForThemeAttribute:", "content-inset"), + minSize = objj_msgSend(self, "currentValueForThemeAttribute:", "min-size"), + maxSize = objj_msgSend(self, "currentValueForThemeAttribute:", "max-size"); + size.width = MAX(size.width + contentInset.left + contentInset.right, minSize.width); + size.height = MAX(size.height + contentInset.top + contentInset.bottom, minSize.height); + if (maxSize.width >= 0.0) + size.width = MIN(size.width, maxSize.width); + if (maxSize.height >= 0.0) + size.height = MIN(size.height, maxSize.height); + if (objj_msgSend(self, "isEditable")) + size.width = CGRectGetWidth(objj_msgSend(self, "frame")); + objj_msgSend(self, "setFrameSize:", size); +} +}), new objj_method(sel_getUid("selectText:"), function $CPTextField__selectText_(self, _cmd, sender) +{ with(self) +{ + var element = objj_msgSend(self, "_inputElement"); + if (element.parentNode == _DOMElement && (objj_msgSend(self, "isEditable") || objj_msgSend(self, "isSelectable"))) + element.select(); +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPTextField__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_delegate) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPControlTextDidBeginEditingNotification, self); + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPControlTextDidChangeNotification, self); + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPControlTextDidEndEditingNotification, self); + } + _delegate = aDelegate; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("controlTextDidBeginEditing:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("controlTextDidBeginEditing:"), CPControlTextDidBeginEditingNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("controlTextDidChange:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("controlTextDidChange:"), CPControlTextDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("controlTextDidEndEditing:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("controlTextDidEndEditing:"), CPControlTextDidEndEditingNotification, self); +} +}), new objj_method(sel_getUid("delegate"), function $CPTextField__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("contentRectForBounds:"), function $CPTextField__contentRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + var contentInset = objj_msgSend(self, "currentValueForThemeAttribute:", "content-inset"); + if (!contentInset) + return bounds; + bounds.origin.x += contentInset.left; + bounds.origin.y += contentInset.top; + bounds.size.width -= contentInset.left + contentInset.right; + bounds.size.height -= contentInset.top + contentInset.bottom; + return bounds; +} +}), new objj_method(sel_getUid("bezelRectForBounds:"), function $CPTextField__bezelRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + var bezelInset = objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-inset"); + if (((bezelInset).top === 0 && (bezelInset).right === 0 && (bezelInset).bottom === 0 && (bezelInset).left === 0)) + return bounds; + bounds.origin.x += bezelInset.left; + bounds.origin.y += bezelInset.top; + bounds.size.width -= bezelInset.left + bezelInset.right; + bounds.size.height -= bezelInset.top + bezelInset.bottom; + return bounds; +} +}), new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPTextField__rectForEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "bezel-view") + return objj_msgSend(self, "bezelRectForBounds:", objj_msgSend(self, "bounds")); + else if (aName === "content-view") + return objj_msgSend(self, "contentRectForBounds:", objj_msgSend(self, "bounds")); + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "rectForEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPTextField__createEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "bezel-view") + { + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + objj_msgSend(view, "setHitTests:", NO); + return view; + } + else + { + var view = objj_msgSend(objj_msgSend(_CPImageAndTextView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + return view; + } + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "createEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPTextField__layoutSubviews(self, _cmd) +{ with(self) +{ + var bezelView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "bezel-view", CPWindowBelow, "content-view"); + if (bezelView) + objj_msgSend(bezelView, "setBackgroundColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-color")); + var contentView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "content-view", CPWindowAbove, "bezel-view"); + if (contentView) + { + objj_msgSend(contentView, "setHidden:", objj_msgSend(self, "hasThemeState:", CPThemeStateEditing)); + var string = ""; + if (objj_msgSend(self, "hasThemeState:", CPTextFieldStatePlaceholder)) + string = objj_msgSend(self, "placeholderString"); + else + { + string = objj_msgSend(self, "stringValue"); + if (objj_msgSend(self, "isSecure")) + string = secureStringForString(string); + } + objj_msgSend(contentView, "setText:", string); + objj_msgSend(contentView, "setTextColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "text-color")); + objj_msgSend(contentView, "setFont:", objj_msgSend(self, "currentValueForThemeAttribute:", "font")); + objj_msgSend(contentView, "setAlignment:", objj_msgSend(self, "currentValueForThemeAttribute:", "alignment")); + objj_msgSend(contentView, "setVerticalAlignment:", objj_msgSend(self, "currentValueForThemeAttribute:", "vertical-alignment")); + objj_msgSend(contentView, "setLineBreakMode:", objj_msgSend(self, "currentValueForThemeAttribute:", "line-break-mode")); + objj_msgSend(contentView, "setTextShadowColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "text-shadow-color")); + objj_msgSend(contentView, "setTextShadowOffset:", objj_msgSend(self, "currentValueForThemeAttribute:", "text-shadow-offset")); + } +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("textFieldWithStringValue:placeholder:width:"), function $CPTextField__textFieldWithStringValue_placeholder_width_(self, _cmd, aStringValue, aPlaceholder, aWidth) +{ with(self) +{ + return objj_msgSend(self, "textFieldWithStringValue:placeholder:width:theme:", aStringValue, aPlaceholder, aWidth, objj_msgSend(CPTheme, "defaultTheme")); +} +}), new objj_method(sel_getUid("textFieldWithStringValue:placeholder:width:theme:"), function $CPTextField__textFieldWithStringValue_placeholder_width_theme_(self, _cmd, aStringValue, aPlaceholder, aWidth, aTheme) +{ with(self) +{ + var textField = objj_msgSend(objj_msgSend(self, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, aWidth, 29.0)); + objj_msgSend(textField, "setTheme:", aTheme); + objj_msgSend(textField, "setStringValue:", aStringValue); + objj_msgSend(textField, "setPlaceholderString:", aPlaceholder); + objj_msgSend(textField, "setBordered:", YES); + objj_msgSend(textField, "setBezeled:", YES); + objj_msgSend(textField, "setEditable:", YES); + objj_msgSend(textField, "sizeToFit"); + return textField; +} +}), new objj_method(sel_getUid("roundedTextFieldWithStringValue:placeholder:width:"), function $CPTextField__roundedTextFieldWithStringValue_placeholder_width_(self, _cmd, aStringValue, aPlaceholder, aWidth) +{ with(self) +{ + return objj_msgSend(self, "roundedTextFieldWithStringValue:placeholder:width:theme:", aStringValue, aPlaceholder, aWidth, objj_msgSend(CPTheme, "defaultTheme")); +} +}), new objj_method(sel_getUid("roundedTextFieldWithStringValue:placeholder:width:theme:"), function $CPTextField__roundedTextFieldWithStringValue_placeholder_width_theme_(self, _cmd, aStringValue, aPlaceholder, aWidth, aTheme) +{ with(self) +{ + var textField = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, aWidth, 29.0)); + objj_msgSend(textField, "setTheme:", aTheme); + objj_msgSend(textField, "setStringValue:", aStringValue); + objj_msgSend(textField, "setPlaceholderString:", aPlaceholder); + objj_msgSend(textField, "setBezelStyle:", CPTextFieldRoundedBezel); + objj_msgSend(textField, "setBordered:", YES); + objj_msgSend(textField, "setBezeled:", YES); + objj_msgSend(textField, "setEditable:", YES); + objj_msgSend(textField, "sizeToFit"); + return textField; +} +}), new objj_method(sel_getUid("labelWithTitle:"), function $CPTextField__labelWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + return objj_msgSend(self, "labelWithTitle:theme:", aTitle, objj_msgSend(CPTheme, "defaultTheme")); +} +}), new objj_method(sel_getUid("labelWithTitle:theme:"), function $CPTextField__labelWithTitle_theme_(self, _cmd, aTitle, aTheme) +{ with(self) +{ + var textField = objj_msgSend(objj_msgSend(self, "alloc"), "init"); + objj_msgSend(textField, "setStringValue:", aTitle); + objj_msgSend(textField, "sizeToFit"); + return textField; +} +}), new objj_method(sel_getUid("themeClass"), function $CPTextField__themeClass(self, _cmd) +{ with(self) +{ + return "textfield"; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPTextField__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [{ top:(0), right:(0), bottom:(0), left:(0) }, { top:(2.0), right:(2.0), bottom:(2.0), left:(2.0) }, nil], ["bezel-inset", "content-inset", "bezel-color"]); +} +})]); +} +var secureStringForString = function(aString) +{ + if (!aString) + return ""; + var secureString = "", + length = aString.length; + while (length--) + secureString += CPSecureTextFieldCharacter; + return secureString; +} +var CPTextFieldIsEditableKey = "CPTextFieldIsEditableKey", + CPTextFieldIsSelectableKey = "CPTextFieldIsSelectableKey", + CPTextFieldIsBorderedKey = "CPTextFieldIsBorderedKey", + CPTextFieldIsBezeledKey = "CPTextFieldIsBezeledKey", + CPTextFieldBezelStyleKey = "CPTextFieldBezelStyleKey", + CPTextFieldDrawsBackgroundKey = "CPTextFieldDrawsBackgroundKey", + CPTextFieldLineBreakModeKey = "CPTextFieldLineBreakModeKey", + CPTextFieldBackgroundColorKey = "CPTextFieldBackgroundColorKey", + CPTextFieldPlaceholderStringKey = "CPTextFieldPlaceholderStringKey"; +{ +var the_class = objj_getClass("CPTextField") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTextField\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTextField__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder); + if (self) + { + objj_msgSend(self, "setEditable:", objj_msgSend(aCoder, "decodeBoolForKey:", CPTextFieldIsEditableKey)); + objj_msgSend(self, "setSelectable:", objj_msgSend(aCoder, "decodeBoolForKey:", CPTextFieldIsSelectableKey)); + objj_msgSend(self, "setDrawsBackground:", objj_msgSend(aCoder, "decodeBoolForKey:", CPTextFieldDrawsBackgroundKey)); + objj_msgSend(self, "setTextFieldBackgroundColor:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTextFieldBackgroundColorKey)); + objj_msgSend(self, "setPlaceholderString:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTextFieldPlaceholderStringKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTextField__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeBool:forKey:", _isEditable, CPTextFieldIsEditableKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _isSelectable, CPTextFieldIsSelectableKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _drawsBackground, CPTextFieldDrawsBackgroundKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _textFieldBackgroundColor, CPTextFieldBackgroundColorKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _placeholderString, CPTextFieldPlaceholderStringKey); +} +})]); +} + +p;9;CPTheme.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;16932; +var CPThemesByName = { }, + CPThemeDefaultTheme = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPTheme"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_name"), new objj_ivar("_attributes")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithName:"), function $CPTheme__initWithName_(self, _cmd, aName) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _name = aName; + _attributes = objj_msgSend(CPDictionary, "dictionary"); + CPThemesByName[_name] = self; + } + return self; +} +}), new objj_method(sel_getUid("name"), function $CPTheme__name(self, _cmd) +{ with(self) +{ + return _name; +} +}), new objj_method(sel_getUid("_attributeWithName:forClass:"), function $CPTheme___attributeWithName_forClass_(self, _cmd, aName, aClass) +{ with(self) +{ + var attributes = objj_msgSend(_attributes, "objectForKey:", aClass); + if (!attributes) + return nil; + return objj_msgSend(attributes, "objectForKey:", aName); +} +}), new objj_method(sel_getUid("takeThemeFromObject:"), function $CPTheme__takeThemeFromObject_(self, _cmd, anObject) +{ with(self) +{ + var attributes = objj_msgSend(anObject, "_themeAttributeDictionary"), + attributeName = nil, + attributeNames = objj_msgSend(attributes, "keyEnumerator"), + objectThemeClass = objj_msgSend(objj_msgSend(anObject, "class"), "themeClass"); + while (attributeName = objj_msgSend(attributeNames, "nextObject")) + objj_msgSend(self, "_recordAttribute:forClass:", objj_msgSend(attributes, "objectForKey:", attributeName), objectThemeClass); +} +}), new objj_method(sel_getUid("_recordAttribute:forClass:"), function $CPTheme___recordAttribute_forClass_(self, _cmd, anAttribute, aClass) +{ with(self) +{ + if (!objj_msgSend(anAttribute, "hasValues")) + return; + var attributes = objj_msgSend(_attributes, "objectForKey:", aClass); + if (!attributes) + { + attributes = objj_msgSend(CPDictionary, "dictionary"); + objj_msgSend(_attributes, "setObject:forKey:", attributes, aClass); + } + var name = objj_msgSend(anAttribute, "name"), + existingAttribute = objj_msgSend(attributes, "objectForKey:", name); + if (existingAttribute) + objj_msgSend(attributes, "setObject:forKey:", objj_msgSend(existingAttribute, "attributeMergedWithAttribute:", anAttribute), name); + else + objj_msgSend(attributes, "setObject:forKey:", anAttribute, name); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("setDefaultTheme:"), function $CPTheme__setDefaultTheme_(self, _cmd, aTheme) +{ with(self) +{ + CPThemeDefaultTheme = aTheme; +} +}), new objj_method(sel_getUid("defaultTheme"), function $CPTheme__defaultTheme(self, _cmd) +{ with(self) +{ + return CPThemeDefaultTheme; +} +}), new objj_method(sel_getUid("themeNamed:"), function $CPTheme__themeNamed_(self, _cmd, aName) +{ with(self) +{ + return CPThemesByName[aName]; +} +})]); +} +var CPThemeNameKey = "CPThemeNameKey", + CPThemeAttributesKey = "CPThemeAttributesKey"; +{ +var the_class = objj_getClass("CPTheme") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTheme\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTheme__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _name = objj_msgSend(aCoder, "decodeObjectForKey:", CPThemeNameKey); + _attributes = objj_msgSend(aCoder, "decodeObjectForKey:", CPThemeAttributesKey); + CPThemesByName[_name] = self; + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTheme__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _name, CPThemeNameKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _attributes, CPThemeAttributesKey); +} +})]); +} +{var the_class = objj_allocateClassPair(CPKeyedUnarchiver, "_CPThemeKeyedUnarchiver"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_bundle")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initForReadingWithData:bundle:"), function $_CPThemeKeyedUnarchiver__initForReadingWithData_bundle_(self, _cmd, data, aBundle) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPKeyedUnarchiver") }, "initForReadingWithData:", data); + if (self) + _bundle = aBundle; + return self; +} +}), new objj_method(sel_getUid("bundle"), function $_CPThemeKeyedUnarchiver__bundle(self, _cmd) +{ with(self) +{ + return _bundle; +} +}), new objj_method(sel_getUid("awakenCustomResources"), function $_CPThemeKeyedUnarchiver__awakenCustomResources(self, _cmd) +{ with(self) +{ + return YES; +} +})]); +} +var CPThemeStates = {}, + CPThemeStateNames = {}, + CPThemeStateCount = 0; +CPThemeState= function(aStateName) +{ + var state = CPThemeStates[aStateName]; + if (state === undefined) + { + if (aStateName.indexOf('+') === -1) + state = 1 << CPThemeStateCount++; + else + { + var state = 0, + states = aStateName.split('+'), + count = states.length; + while (count--) + { + var stateName = states[count], + individualState = CPThemeStates[stateName]; + if (individualState === undefined) + { + individualState = 1 << CPThemeStateCount++; + CPThemeStates[stateName] = individualState; + CPThemeStateNames[individualState] = stateName; + } + state |= individualState; + } + } + CPThemeStates[aStateName] = state; + CPThemeStateNames[state] = aStateName; + } + return state; +} +CPThemeStateName= function(aState) +{ + var name = CPThemeStateNames[aState]; + if (name !== undefined) + return name; + if (!(aState & (aState - 1))) + return ""; + var state = 1, + name = ""; + for (; state < aState; state <<= 1) + if (aState & state) + name += (name.length === 0 ? '' : '+') + CPThemeStateNames[state]; + CPThemeStateNames[aState] = name; + return name; +} +CPThemeStateNames[0] = "normal"; +CPThemeStateNormal = CPThemeStates["normal"] = 0; +CPThemeStateDisabled = CPThemeState("disabled"); +CPThemeStateHighlighted = CPThemeState("highlighted"); +CPThemeStateSelected = CPThemeState("selected"); +CPThemeStateBezeled = CPThemeState("bezeled"); +CPThemeStateBordered = CPThemeState("bordered"); +CPThemeStateEditable = CPThemeState("editable"); +CPThemeStateEditing = CPThemeState("editing"); +CPThemeStateVertical = CPThemeState("vertical"); +CPThemeStateDefault = CPThemeState("default"); +CPThemeStateCircular = CPThemeState("circular"); +{var the_class = objj_allocateClassPair(CPObject, "_CPThemeAttribute"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_name"), new objj_ivar("_defaultValue"), new objj_ivar("_values"), new objj_ivar("_cache"), new objj_ivar("_parentAttribute")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithName:defaultValue:"), function $_CPThemeAttribute__initWithName_defaultValue_(self, _cmd, aName, aDefaultValue) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _cache = { }; + _name = aName; + _defaultValue = aDefaultValue; + _values = objj_msgSend(CPDictionary, "dictionary"); + } + return self; +} +}), new objj_method(sel_getUid("name"), function $_CPThemeAttribute__name(self, _cmd) +{ with(self) +{ + return _name; +} +}), new objj_method(sel_getUid("defaultValue"), function $_CPThemeAttribute__defaultValue(self, _cmd) +{ with(self) +{ + return _defaultValue; +} +}), new objj_method(sel_getUid("hasValues"), function $_CPThemeAttribute__hasValues(self, _cmd) +{ with(self) +{ + return objj_msgSend(_values, "count") > 0; +} +}), new objj_method(sel_getUid("isTrivial"), function $_CPThemeAttribute__isTrivial(self, _cmd) +{ with(self) +{ + return (objj_msgSend(_values, "count") === 1) && (Number(objj_msgSend(_values, "allKeys")[0]) === CPThemeStateNormal); +} +}), new objj_method(sel_getUid("setValue:"), function $_CPThemeAttribute__setValue_(self, _cmd, aValue) +{ with(self) +{ + _cache = {}; + if (aValue === undefined || aValue === nil) + _values = objj_msgSend(CPDictionary, "dictionary"); + else + _values = objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", aValue, String(CPThemeStateNormal)); +} +}), new objj_method(sel_getUid("setValue:forState:"), function $_CPThemeAttribute__setValue_forState_(self, _cmd, aValue, aState) +{ with(self) +{ + _cache = { }; + if ((aValue === undefined) || (aValue === nil)) + objj_msgSend(_values, "removeObjectForKey:", String(aState)); + else + objj_msgSend(_values, "setObject:forKey:", aValue, String(aState)); +} +}), new objj_method(sel_getUid("value"), function $_CPThemeAttribute__value(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "valueForState:", CPThemeStateNormal); +} +}), new objj_method(sel_getUid("valueForState:"), function $_CPThemeAttribute__valueForState_(self, _cmd, aState) +{ with(self) +{ + var value = _cache[aState]; + if (value !== undefined) + return value; + value = objj_msgSend(_values, "objectForKey:", String(aState)); + if ((value === undefined || value === nil) && aState !== CPThemeStateNormal) + { + if (aState & (aState - 1)) + { + var highestOneCount = 0, + states = objj_msgSend(_values, "allKeys"), + count = states.length; + while (count--) + { + var state = Number(states[count]); + if ((state & aState) === state) + { + var oneCount = cachedNumberOfOnes[state]; + if (oneCount === undefined) + oneCount = numberOfOnes(state); + if (oneCount > highestOneCount) + { + highestOneCount = oneCount; + value = objj_msgSend(_values, "objectForKey:", String(state)); + } + } + } + } + if (value === undefined || value === nil) + value = objj_msgSend(_values, "objectForKey:", String(CPThemeStateNormal)); + } + if (value === undefined || value === nil) + value = objj_msgSend(_parentAttribute, "valueForState:", aState); + if (value === undefined || value === nil) + value = _defaultValue; + _cache[aState] = value; + return value; +} +}), new objj_method(sel_getUid("setParentAttribute:"), function $_CPThemeAttribute__setParentAttribute_(self, _cmd, anAttribute) +{ with(self) +{ + if (_parentAttribute === anAttribute) + return; + _cache = { }; + _parentAttribute = anAttribute; +} +}), new objj_method(sel_getUid("attributeMergedWithAttribute:"), function $_CPThemeAttribute__attributeMergedWithAttribute_(self, _cmd, anAttribute) +{ with(self) +{ + var mergedAttribute = objj_msgSend(objj_msgSend(_CPThemeAttribute, "alloc"), "initWithName:defaultValue:", _name, _defaultValue); + mergedAttribute._values = objj_msgSend(_values, "copy"); + objj_msgSend(mergedAttribute._values, "addEntriesFromDictionary:", anAttribute._values); + return mergedAttribute; +} +})]); +} +{ +var the_class = objj_getClass("_CPThemeAttribute") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPThemeAttribute\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPThemeAttribute__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _cache = {}; + _name = objj_msgSend(aCoder, "decodeObjectForKey:", "name"); + _values = objj_msgSend(CPDictionary, "dictionary"); + if (objj_msgSend(aCoder, "containsValueForKey:", "value")) + { + var state = CPThemeStateNormal; + if (objj_msgSend(aCoder, "containsValueForKey:", "state")) + state = CPThemeState(objj_msgSend(aCoder, "decodeObjectForKey:", "state")); + objj_msgSend(_values, "setObject:forKey:", objj_msgSend(aCoder, "decodeObjectForKey:", "value"), state); + } + else + { + var encodedValues = objj_msgSend(aCoder, "decodeObjectForKey:", "values"), + keys = objj_msgSend(encodedValues, "allKeys"), + count = keys.length; + while (count--) + { + var key = keys[count]; + objj_msgSend(_values, "setObject:forKey:", objj_msgSend(encodedValues, "objectForKey:", key), CPThemeState(key)); + } + } + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPThemeAttribute__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _name, "name"); + var keys = objj_msgSend(_values, "allKeys"), + count = keys.length; + if (count === 1) + { + var onlyKey = keys[0]; + if (Number(onlyKey) !== CPThemeStateNormal) + objj_msgSend(aCoder, "encodeObject:forKey:", CPThemeStateName(Number(onlyKey)), "state"); + objj_msgSend(aCoder, "encodeObject:forKey:", objj_msgSend(_values, "objectForKey:", onlyKey), "value"); + } + else + { + var encodedValues = objj_msgSend(CPDictionary, "dictionary"); + while (count--) + { + var key = keys[count]; + objj_msgSend(encodedValues, "setObject:forKey:", objj_msgSend(_values, "objectForKey:", key), CPThemeStateName(Number(key))); + } + objj_msgSend(aCoder, "encodeObject:forKey:", encodedValues, "values"); + } +} +})]); +} +var cachedNumberOfOnes = [ 0 , 1 , 1 , 2 , 1 , 2 , 2 , + 3 , 1 , 2 , 2 , 3 , 2 , 3 , + 3 , 4 , 1 , 2 , 2 , 3 , 2 , + 3 , 3 , 4 , 2 , 3 , 3 , 4 , + 3 , 4 , 4 , 5 , 1 , 2 , 2 , + 3 , 2 , 3 , 3 , 4 , 2 , 3 , + 3 , 4 , 3 , 4 , 4 , 5 , 2 , + 3 , 3 , 4 , 3 , 4 , 4 , 5 , + 3 , 4 , 4 , 5 , 4 , 5 , 5 , + 6 ]; +var numberOfOnes = function(aNumber) +{ + var count = 0, + slot = aNumber; + while (aNumber) + { + ++count; + aNumber &= (aNumber - 1); + } + cachedNumberOfOnes[slot] = count; + return count; +} +numberOfOnes.displayName = "numberOfOnes"; +CPThemeAttributeEncode= function(aCoder, aThemeAttribute) +{ + var values = aThemeAttribute._values, + count = objj_msgSend(values, "count"), + key = "$a" + objj_msgSend(aThemeAttribute, "name"); + if (count === 1) + { + var state = objj_msgSend(values, "allKeys")[0]; + if (Number(state) === 0) + { + objj_msgSend(aCoder, "encodeObject:forKey:", objj_msgSend(values, "objectForKey:", state), key); + return YES; + } + } + if (count >= 1) + { + objj_msgSend(aCoder, "encodeObject:forKey:", aThemeAttribute, key); + return YES; + } + return NO; +} +CPThemeAttributeDecode= function(aCoder, anAttributeName, aDefaultValue, aTheme, aClass) +{ + var key = "$a" + anAttributeName; + if (!objj_msgSend(aCoder, "containsValueForKey:", key)) + var attribute = objj_msgSend(objj_msgSend(_CPThemeAttribute, "alloc"), "initWithName:defaultValue:", anAttributeName, aDefaultValue); + else + { + var attribute = objj_msgSend(aCoder, "decodeObjectForKey:", key); + if (!attribute.isa || !objj_msgSend(attribute, "isKindOfClass:", objj_msgSend(_CPThemeAttribute, "class"))) + { + var themeAttribute = objj_msgSend(objj_msgSend(_CPThemeAttribute, "alloc"), "initWithName:defaultValue:", anAttributeName, aDefaultValue); + objj_msgSend(themeAttribute, "setValue:", attribute); + attribute = themeAttribute; + } + } + if (aTheme && aClass) + objj_msgSend(attribute, "setParentAttribute:", objj_msgSend(aTheme, "_attributeWithName:forClass:", anAttributeName, aClass)); + return attribute; +} + +p;14;CPThemeBlend.jI;21;Foundation/CPObject.jI;16;AppKit/CPTheme.jI;29;AppKit/_CPCibCustomResource.jI;30;AppKit/_CPCibKeyedUnarchiver.jc;1992; +{var the_class = objj_allocateClassPair(CPObject, "CPThemeBlend"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_bundle"), new objj_ivar("_themes"), new objj_ivar("_loadDelegate")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("themes"), function $CPThemeBlend__themes(self, _cmd) +{ with(self) +{ +return _themes; +} +}), new objj_method(sel_getUid("initWithContentsOfURL:"), function $CPThemeBlend__initWithContentsOfURL_(self, _cmd, aURL) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _bundle = objj_msgSend(objj_msgSend(CPBundle, "alloc"), "initWithPath:", aURL + "/Info.plist"); + } + return self; +} +}), new objj_method(sel_getUid("loadWithDelegate:"), function $CPThemeBlend__loadWithDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _loadDelegate = aDelegate; + objj_msgSend(_bundle, "loadWithDelegate:", self); +} +}), new objj_method(sel_getUid("bundleDidFinishLoading:"), function $CPThemeBlend__bundleDidFinishLoading_(self, _cmd, aBundle) +{ with(self) +{ + var paths = objj_msgSend(_bundle, "objectForInfoDictionaryKey:", "CPBundleReplacedFiles"), + index = 0, + count = paths.length, + bundlePath = objj_msgSend(_bundle, "bundlePath"); + while (count--) + { + var path = paths[count]; + if (objj_msgSend(path, "pathExtension") === "keyedtheme") + { + var unarchiver = objj_msgSend(objj_msgSend(_CPThemeKeyedUnarchiver, "alloc"), "initForReadingWithData:bundle:", objj_msgSend(CPData, "dataWithString:", objj_files[bundlePath + '/' + path].contents), _bundle); + objj_msgSend(unarchiver, "decodeObjectForKey:", "root"); + objj_msgSend(unarchiver, "finishDecoding"); + } + } + objj_msgSend(_loadDelegate, "blendDidFinishLoading:", self); +} +})]); +} + +p;11;CPToolbar.jI;21;Foundation/CPObject.ji;15;CPPopUpButton.ji;15;CPToolbarItem.jc;25022; +CPToolbarDisplayModeDefault = 0; +CPToolbarDisplayModeIconAndLabel = 1; +CPToolbarDisplayModeIconOnly = 2; +CPToolbarDisplayModeLabelOnly = 3; +var CPToolbarsByIdentifier = nil; +var CPToolbarConfigurationsByIdentifier = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPToolbar"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_identifier"), new objj_ivar("_displayMode"), new objj_ivar("_showsBaselineSeparator"), new objj_ivar("_allowsUserCustomization"), new objj_ivar("_isVisible"), new objj_ivar("_delegate"), new objj_ivar("_itemIdentifiers"), new objj_ivar("_identifiedItems"), new objj_ivar("_defaultItems"), new objj_ivar("_allowedItems"), new objj_ivar("_selectableItems"), new objj_ivar("_items"), new objj_ivar("_itemsSortedByVisibilityPriority"), new objj_ivar("_toolbarView"), new objj_ivar("_window")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithIdentifier:"), function $CPToolbar__initWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _items = []; + _identifier = anIdentifier; + _isVisible = YES; + objj_msgSend(CPToolbar, "_addToolbar:forIdentifier:", self, _identifier); + } + return self; +} +}), new objj_method(sel_getUid("setDisplayMode:"), function $CPToolbar__setDisplayMode_(self, _cmd, aDisplayMode) +{ with(self) +{ +} +}), new objj_method(sel_getUid("identifier"), function $CPToolbar__identifier(self, _cmd) +{ with(self) +{ + return _identifier; +} +}), new objj_method(sel_getUid("delegate"), function $CPToolbar__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("isVisible"), function $CPToolbar__isVisible(self, _cmd) +{ with(self) +{ + return _isVisible; +} +}), new objj_method(sel_getUid("setVisible:"), function $CPToolbar__setVisible_(self, _cmd, aFlag) +{ with(self) +{ + if (_isVisible === aFlag) + return; + _isVisible = aFlag; + objj_msgSend(_window, "_noteToolbarChanged"); +} +}), new objj_method(sel_getUid("_window"), function $CPToolbar___window(self, _cmd) +{ with(self) +{ + return _window; +} +}), new objj_method(sel_getUid("_setWindow:"), function $CPToolbar___setWindow_(self, _cmd, aWindow) +{ with(self) +{ + _window = aWindow; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPToolbar__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate == aDelegate) + return; + _delegate = aDelegate; + objj_msgSend(self, "_reloadToolbarItems"); +} +}), new objj_method(sel_getUid("_loadConfiguration"), function $CPToolbar___loadConfiguration(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_toolbarView"), function $CPToolbar___toolbarView(self, _cmd) +{ with(self) +{ + if (!_toolbarView) + { + _toolbarView = objj_msgSend(objj_msgSend(_CPToolbarView, "alloc"), "initWithFrame:", CPRectMake(0.0, 0.0, 1200.0, 59.0)); + objj_msgSend(_toolbarView, "setToolbar:", self); + objj_msgSend(_toolbarView, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_toolbarView, "reloadToolbarItems"); + } + return _toolbarView; +} +}), new objj_method(sel_getUid("_reloadToolbarItems"), function $CPToolbar___reloadToolbarItems(self, _cmd) +{ with(self) +{ + if (!_delegate) + return; + var count = objj_msgSend(_itemIdentifiers, "count"); + if (!count) + { + _itemIdentifiers = objj_msgSend(objj_msgSend(_delegate, "toolbarDefaultItemIdentifiers:", self), "mutableCopy"); + count = objj_msgSend(_itemIdentifiers, "count"); + } + _items = []; + var index = 0; + for (; index < count; ++index) + { + var identifier = _itemIdentifiers[index], + item = objj_msgSend(CPToolbarItem, "_standardItemWithItemIdentifier:", identifier); + if (!item) + item = objj_msgSend(_delegate, "toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:", self, identifier, YES); + item = objj_msgSend(item, "copy"); + if (item == nil) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, sprintf("_delegate %s returned nil toolbar item returned for identifier %s", _delegate, identifier)); + objj_msgSend(_items, "addObject:", item); + } + _itemsSortedByVisibilityPriority = objj_msgSend(_items, "sortedArrayUsingFunction:context:", _CPToolbarItemVisibilityPriorityCompare, NULL); + objj_msgSend(_toolbarView, "reloadToolbarItems"); +} +}), new objj_method(sel_getUid("items"), function $CPToolbar__items(self, _cmd) +{ with(self) +{ + return _items; +} +}), new objj_method(sel_getUid("visibleItems"), function $CPToolbar__visibleItems(self, _cmd) +{ with(self) +{ + return objj_msgSend(_toolbarView, "visibleItems"); +} +}), new objj_method(sel_getUid("itemsSortedByVisibilityPriority"), function $CPToolbar__itemsSortedByVisibilityPriority(self, _cmd) +{ with(self) +{ + return _itemsSortedByVisibilityPriority; +} +}), new objj_method(sel_getUid("_itemForItemIdentifier:willBeInsertedIntoToolbar:"), function $CPToolbar___itemForItemIdentifier_willBeInsertedIntoToolbar_(self, _cmd, identifier, toolbar) +{ with(self) +{ + var item = objj_msgSend(_identifiedItems, "objectForKey:", identifier); + if (!item) + { + item = objj_msgSend(CPToolbarItem, "_standardItemWithItemIdentifier:", identifier); + if (_delegate && !item) + { + item = objj_msgSend(objj_msgSend(_delegate, "toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:", self, identifier, toolbar), "copy"); + if (!item) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, sprintf("_delegate %s returned nil toolbar item returned for identifier %s", _delegate, identifier)); + } + objj_msgSend(_identifiedItems, "setObject:forKey:", item, identifier); + } + return item; +} +}), new objj_method(sel_getUid("_itemsWithIdentifiers:"), function $CPToolbar___itemsWithIdentifiers_(self, _cmd, identifiers) +{ with(self) +{ + var items = []; + for (var i = 0; i < identifiers.length; i++) + objj_msgSend(items, "addObject:", objj_msgSend(self, "_itemForItemIdentifier:willBeInsertedIntoToolbar:", identifiers[i], NO)); + return items; +} +}), new objj_method(sel_getUid("_defaultToolbarItems"), function $CPToolbar___defaultToolbarItems(self, _cmd) +{ with(self) +{ + if (!_defaultItems) + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("toolbarDefaultItemIdentifiers:"))) + _defaultItems = objj_msgSend(self, "_itemsWithIdentifiers:", objj_msgSend(_delegate, "toolbarDefaultItemIdentifiers:", self)); + return _defaultItems; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPToolbar__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPToolbar, "class")) + return; + CPToolbarsByIdentifier = objj_msgSend(CPDictionary, "dictionary"); + CPToolbarConfigurationsByIdentifier = objj_msgSend(CPDictionary, "dictionary"); +} +}), new objj_method(sel_getUid("_addToolbar:forIdentifier:"), function $CPToolbar___addToolbar_forIdentifier_(self, _cmd, toolbar, identifier) +{ with(self) +{ + var toolbarsSharingIdentifier = objj_msgSend(CPToolbarsByIdentifier, "objectForKey:", identifier); + if (!toolbarsSharingIdentifier) + { + toolbarsSharingIdentifier = [] + objj_msgSend(CPToolbarsByIdentifier, "setObject:forKey:", toolbarsSharingIdentifier, identifier); + } + objj_msgSend(toolbarsSharingIdentifier, "addObject:", toolbar); +} +})]); +} +var CPToolbarIdentifierKey = "CPToolbarIdentifierKey", + CPToolbarDisplayModeKey = "CPToolbarDisplayModeKey", + CPToolbarShowsBaselineSeparatorKey = "CPToolbarShowsBaselineSeparatorKey", + CPToolbarAllowsUserCustomizationKey = "CPToolbarAllowsUserCustomizationKey", + CPToolbarIsVisibleKey = "CPToolbarIsVisibleKey", + CPToolbarDelegateKey = "CPToolbarDelegateKey", + CPToolbarIdentifiedItemsKey = "CPToolbarIdentifiedItemsKey", + CPToolbarDefaultItemsKey = "CPToolbarDefaultItemsKey", + CPToolbarAllowedItemsKey = "CPToolbarAllowedItemsKey", + CPToolbarSelectableItemsKey = "CPToolbarSelectableItemsKey"; +{ +var the_class = objj_getClass("CPToolbar") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPToolbar\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPToolbar__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _identifier = objj_msgSend(aCoder, "decodeObjectForKey:", CPToolbarIdentifierKey); + _displayMode = objj_msgSend(aCoder, "decodeIntForKey:", CPToolbarDisplayModeKey); + _showsBaselineSeparator = objj_msgSend(aCoder, "decodeBoolForKey:", CPToolbarShowsBaselineSeparatorKey); + _allowsUserCustomization = objj_msgSend(aCoder, "decodeBoolForKey:", CPToolbarAllowsUserCustomizationKey); + _isVisible = objj_msgSend(aCoder, "decodeBoolForKey:", CPToolbarIsVisibleKey); + _identifiedItems = objj_msgSend(aCoder, "decodeObjectForKey:", CPToolbarIdentifiedItemsKey); + _defaultItems = objj_msgSend(aCoder, "decodeObjectForKey:", CPToolbarDefaultItemsKey); + _allowedItems = objj_msgSend(aCoder, "decodeObjectForKey:", CPToolbarAllowedItemsKey); + _selectableItems = objj_msgSend(aCoder, "decodeObjectForKey:", CPToolbarSelectableItemsKey); + _items = []; + objj_msgSend(CPToolbar, "_addToolbar:forIdentifier:", self, _identifier); + objj_msgSend(self, "setDelegate:", objj_msgSend(aCoder, "decodeObjectForKey:", CPToolbarDelegateKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPToolbar__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _identifier, CPToolbarIdentifierKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _displayMode, CPToolbarDisplayModeKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _showsBaselineSeparator, CPToolbarShowsBaselineSeparatorKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _allowsUserCustomization, CPToolbarAllowsUserCustomizationKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _isVisible, CPToolbarIsVisibleKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _identifiedItems, CPToolbarIdentifiedItemsKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _defaultItems, CPToolbarDefaultItemsKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _allowedItems, CPToolbarAllowedItemsKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _selectableItems, CPToolbarSelectableItemsKey); + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _delegate, CPToolbarDelegateKey); +} +})]); +} +var _CPToolbarViewBackgroundColor = nil, + _CPToolbarViewExtraItemsImage = nil, + _CPToolbarViewExtraItemsAlternateImage = nil; +var TOOLBAR_TOP_MARGIN = 5.0, + TOOLBAR_ITEM_MARGIN = 10.0, + TOOLBAR_EXTRA_ITEMS_WIDTH = 20.0; +var _CPToolbarItemInfoMake = function(anIndex, aView, aLabel, aMinWidth) +{ + return { index:anIndex, view:aView, label:aLabel, minWidth:aMinWidth }; +} +{var the_class = objj_allocateClassPair(CPView, "_CPToolbarView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_toolbar"), new objj_ivar("_flexibleWidthIndexes"), new objj_ivar("_visibleFlexibleWidthIndexes"), new objj_ivar("_itemInfos"), new objj_ivar("_visibleItems"), new objj_ivar("_invisibleItems"), new objj_ivar("_additionalItemsButton"), new objj_ivar("_labelColor"), new objj_ivar("_labelShadowColor"), new objj_ivar("_minWidth")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $_CPToolbarView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _minWidth = 0; + _labelColor = objj_msgSend(CPColor, "blackColor"); + _labelShadowColor = objj_msgSend(CPColor, "colorWithWhite:alpha:", 1.0, 0.75); + _additionalItemsButton = objj_msgSend(objj_msgSend(CPPopUpButton, "alloc"), "initWithFrame:pullsDown:", CGRectMake(0.0, 0.0, 10.0, 15.0), YES); + objj_msgSend(_additionalItemsButton, "setBordered:", NO); + objj_msgSend(_additionalItemsButton, "setImagePosition:", CPImageOnly); + objj_msgSend(objj_msgSend(_additionalItemsButton, "menu"), "setShowsStateColumn:", NO); + objj_msgSend(_additionalItemsButton, "setAlternateImage:", _CPToolbarViewExtraItemsAlternateImage); + } + return self; +} +}), new objj_method(sel_getUid("setToolbar:"), function $_CPToolbarView__setToolbar_(self, _cmd, aToolbar) +{ with(self) +{ + _toolbar = aToolbar; +} +}), new objj_method(sel_getUid("toolbar"), function $_CPToolbarView__toolbar(self, _cmd) +{ with(self) +{ + return _toolbar; +} +}), new objj_method(sel_getUid("setLabelColor:"), function $_CPToolbarView__setLabelColor_(self, _cmd, aColor) +{ with(self) +{ + if (_labelColor === aColor) + return; + _labelColor = aColor; + var items = objj_msgSend(_toolbar, "items"), + count = objj_msgSend(items, "count"); + while (count--) + objj_msgSend(objj_msgSend(self, "labelForItem:", items[count]), "setTextColor:", _labelColor); +} +}), new objj_method(sel_getUid("setLabelShadowColor:"), function $_CPToolbarView__setLabelShadowColor_(self, _cmd, aColor) +{ with(self) +{ + if (_labelShadowColor === aColor) + return; + _labelShadowColor = aColor; + var items = objj_msgSend(_toolbar, "items"), + count = objj_msgSend(items, "count"); + while (count--) + objj_msgSend(objj_msgSend(self, "labelForItem:", items[count]), "setTextShadowColor:", _labelShadowColor); +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $_CPToolbarView__resizeSubviewsWithOldSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSend(self, "layoutSubviews"); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $_CPToolbarView__layoutSubviews(self, _cmd) +{ with(self) +{ + var items = objj_msgSend(_toolbar, "items"), + width = CGRectGetWidth(objj_msgSend(self, "bounds")), + minWidth = _minWidth, + flexibleItemIndexes = objj_msgSend(CPIndexSet, "indexSet"), + invisibleItemsSortedByPriority = []; + _visibleItems = items; + if (width < minWidth) + { + width -= TOOLBAR_EXTRA_ITEMS_WIDTH; + _visibleItems = objj_msgSend(_visibleItems, "copy"); + var itemsSortedByVisibilityPriority = objj_msgSend(_toolbar, "itemsSortedByVisibilityPriority"), + count = itemsSortedByVisibilityPriority.length; + while (minWidth > width) + { + var item = itemsSortedByVisibilityPriority[count--]; + minWidth -= objj_msgSend(self, "minWidthForItem:", item) + TOOLBAR_ITEM_MARGIN; + objj_msgSend(_visibleItems, "removeObjectIdenticalTo:", item); + objj_msgSend(invisibleItemsSortedByPriority, "addObject:", item); + objj_msgSend(objj_msgSend(self, "viewForItem:", item), "setHidden:", YES); + objj_msgSend(objj_msgSend(self, "labelForItem:", item), "setHidden:", YES); + } + } + var index = _visibleItems.length, + height = 0.0; + while (index--) + { + var item = _visibleItems[index], + minSize = objj_msgSend(item, "minSize"), + view = objj_msgSend(self, "viewForItem:", item); + if (minSize.width != objj_msgSend(item, "maxSize").width) + objj_msgSend(flexibleItemIndexes, "addIndex:", index); + else + objj_msgSend(view, "setFrameSize:", CGSizeMake(objj_msgSend(item, "minSize").width, CGRectGetHeight(objj_msgSend(view, "frame")))); + objj_msgSend(view, "setHidden:", NO); + objj_msgSend(objj_msgSend(self, "labelForItem:", item), "setHidden:", NO); + if (height < minSize.height) + height = minSize.height; + } + var remainingSpace = width - minWidth, + proportionate = 0.0; + while (remainingSpace && objj_msgSend(flexibleItemIndexes, "count")) + { + proportionate += remainingSpace / objj_msgSend(flexibleItemIndexes, "count"); + remainingSpace = 0.0; + var index = CPNotFound; + while ((index = objj_msgSend(flexibleItemIndexes, "indexGreaterThanIndex:", index)) != CPNotFound) + { + var item = _visibleItems[index]; + view = objj_msgSend(self, "viewForItem:", item), + viewFrame = objj_msgSend(view, "frame"), + proposedWidth = objj_msgSend(item, "minSize").width + proportionate, + constrainedWidth = MIN(proposedWidth, objj_msgSend(item, "maxSize").width); + if (constrainedWidth < proposedWidth) + { + objj_msgSend(flexibleItemIndexes, "removeIndex:", index); + remainingSpace += proposedWidth - constrainedWidth; + } + objj_msgSend(view, "setFrameSize:", CGSizeMake(constrainedWidth, CGRectGetHeight(viewFrame))); + } + } + var count = _visibleItems.length, + x = TOOLBAR_ITEM_MARGIN, + fullHeightItems = []; + for (index = 0; index < count; ++index) + { + var item = _visibleItems[index], + view = objj_msgSend(self, "viewForItem:", item), + viewFrame = objj_msgSend(view, "frame"), + viewWidth = CGRectGetWidth(viewFrame), + label = objj_msgSend(self, "labelForItem:", item), + labelFrame = objj_msgSend(label, "frame"), + labelWidth = CGRectGetWidth(labelFrame), + itemWidth = MAX(objj_msgSend(self, "minWidthForItem:", item), viewWidth), + viewHeight = CGRectGetHeight(viewFrame); + objj_msgSend(view, "setFrame:", CGRectMake(x + (itemWidth - viewWidth) / 2.0, TOOLBAR_TOP_MARGIN + (height - viewHeight) / 2.0, viewWidth, viewHeight)); + objj_msgSend(label, "setFrameOrigin:", CGPointMake(x + (itemWidth - labelWidth) / 2.0, TOOLBAR_TOP_MARGIN + height + 2.0)); + x += itemWidth + TOOLBAR_ITEM_MARGIN; + if (objj_msgSend(item, "itemIdentifier") == CPToolbarSeparatorItemIdentifier) + fullHeightItems.push(item); + } + for (index = 0, count = fullHeightItems.length; index < count; ++index) + { + var view = objj_msgSend(self, "viewForItem:", fullHeightItems[index]), + viewHeight = 53.0; + objj_msgSend(view, "setFrame:", CGRectMake(CGRectGetMinX(objj_msgSend(view, "frame")), (59.0 - viewHeight) / 2.0, CGRectGetWidth(objj_msgSend(view, "frame")), viewHeight)); + } + if (objj_msgSend(invisibleItemsSortedByPriority, "count")) + { + var index = 0, + count = objj_msgSend(items, "count"); + _invisibleItems = []; + for (; index < count; ++index) + { + var item = items[index]; + if (objj_msgSend(invisibleItemsSortedByPriority, "indexOfObjectIdenticalTo:", item) != CPNotFound) + objj_msgSend(_invisibleItems, "addObject:", item); + } + objj_msgSend(_additionalItemsButton, "setFrameOrigin:", CGPointMake(width + 5.0, (CGRectGetHeight(objj_msgSend(self, "bounds")) - CGRectGetHeight(objj_msgSend(_additionalItemsButton, "frame"))) / 2.0)); + objj_msgSend(self, "addSubview:", _additionalItemsButton); + objj_msgSend(_additionalItemsButton, "removeAllItems"); + var index = 0, + count = objj_msgSend(_invisibleItems, "count"); + objj_msgSend(_additionalItemsButton, "addItemWithTitle:", "Additional Items"); + objj_msgSend(objj_msgSend(_additionalItemsButton, "itemArray")[0], "setImage:", _CPToolbarViewExtraItemsImage); + for (; index < count; ++index) + { + var item = _invisibleItems[index]; + objj_msgSend(_additionalItemsButton, "addItemWithTitle:", objj_msgSend(item, "label")); + var menuItem = objj_msgSend(_additionalItemsButton, "itemArray")[index + 1]; + objj_msgSend(menuItem, "setImage:", objj_msgSend(item, "image")); + objj_msgSend(menuItem, "setTarget:", objj_msgSend(item, "target")); + objj_msgSend(menuItem, "setAction:", objj_msgSend(item, "action")); + } + } + else + objj_msgSend(_additionalItemsButton, "removeFromSuperview"); +} +}), new objj_method(sel_getUid("viewForItem:"), function $_CPToolbarView__viewForItem_(self, _cmd, anItem) +{ with(self) +{ + var info = objj_msgSend(_itemInfos, "objectForKey:", objj_msgSend(anItem, "hash")); + if (!info) + return nil; + return info.view; +} +}), new objj_method(sel_getUid("labelForItem:"), function $_CPToolbarView__labelForItem_(self, _cmd, anItem) +{ with(self) +{ + var info = objj_msgSend(_itemInfos, "objectForKey:", objj_msgSend(anItem, "hash")); + if (!info) + return nil; + return info.label; +} +}), new objj_method(sel_getUid("minWidthForItem:"), function $_CPToolbarView__minWidthForItem_(self, _cmd, anItem) +{ with(self) +{ + var info = objj_msgSend(_itemInfos, "objectForKey:", objj_msgSend(anItem, "hash")); + if (!info) + return 0; + return info.minWidth; +} +}), new objj_method(sel_getUid("reloadToolbarItems"), function $_CPToolbarView__reloadToolbarItems(self, _cmd) +{ with(self) +{ + var subviews = objj_msgSend(self, "subviews"), + count = subviews.length; + while (count--) + objj_msgSend(subviews[count], "removeFromSuperview"); + var items = objj_msgSend(_toolbar, "items"), + index = 0; + count = items.length; + _itemInfos = objj_msgSend(CPDictionary, "dictionary"); + _minWidth = TOOLBAR_ITEM_MARGIN; + for (; index < count; ++index) + { + var item = items[index], + view = objj_msgSend(item, "view"); + if (!view) + { + view = objj_msgSend(objj_msgSend(CPButton, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, 32.0, 32.0)); + objj_msgSend(view, "setBordered:", NO); + objj_msgSend(view, "setImage:", objj_msgSend(item, "image")); + objj_msgSend(view, "setAlternateImage:", objj_msgSend(item, "alternateImage")); + objj_msgSend(view, "setTarget:", objj_msgSend(item, "target")); + objj_msgSend(view, "setAction:", objj_msgSend(item, "action")); + objj_msgSend(view, "setTag:", objj_msgSend(item, "tag")); + objj_msgSend(view, "setImagePosition:", CPImageOnly); + } + objj_msgSend(self, "addSubview:", view); + var label = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(label, "setStringValue:", objj_msgSend(item, "label")); + objj_msgSend(label, "setFont:", objj_msgSend(CPFont, "systemFontOfSize:", 11.0)); + objj_msgSend(label, "setTextColor:", _labelColor); + objj_msgSend(label, "setTextShadowColor:", _labelShadowColor); + objj_msgSend(label, "setTextShadowOffset:", CGSizeMake(0, 1)); + objj_msgSend(label, "sizeToFit"); + objj_msgSend(label, "setTarget:", objj_msgSend(item, "target")); + objj_msgSend(label, "setAction:", objj_msgSend(item, "action")); + objj_msgSend(self, "addSubview:", label); + var minSize = objj_msgSend(item, "minSize"), + minWidth = MAX(minSize.width, CGRectGetWidth(objj_msgSend(label, "frame"))); + objj_msgSend(_itemInfos, "setObject:forKey:", _CPToolbarItemInfoMake(index, view, label, minWidth), objj_msgSend(item, "hash")); + _minWidth += minWidth + TOOLBAR_ITEM_MARGIN; + } + objj_msgSend(self, "layoutSubviews"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPToolbarView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPToolbarView, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPToolbarViewExtraItemsImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPToolbarView/_CPToolbarViewExtraItemsImage.png"), CPSizeMake(10.0, 15.0)); + _CPToolbarViewExtraItemsAlternateImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPToolbarView/_CPToolbarViewExtraItemsAlternateImage.png"), CGSizeMake(10.0, 15.0)); +} +})]); +} +var _CPToolbarItemVisibilityPriorityCompare = function(lhs, rhs) +{ + var lhsVisibilityPriority = objj_msgSend(lhs, "visibilityPriority"), + rhsVisibilityPriority = objj_msgSend(rhs, "visibilityPriority"); + if (lhsVisibilityPriority == rhsVisibilityPriority) + return CPOrderedSame; + if (lhsVisibilityPriority > rhsVisibilityPriority) + return CPOrderedAscending; + return CPOrderedDescending; +} + +p;15;CPToolbarItem.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jI;16;AppKit/CPImage.jI;15;AppKit/CPView.jc;13150; +CPToolbarItemVisibilityPriorityStandard = 0; +CPToolbarItemVisibilityPriorityLow = -1000; +CPToolbarItemVisibilityPriorityHigh = 1000; +CPToolbarItemVisibilityPriorityUser = 2000; +CPToolbarSeparatorItemIdentifier = "CPToolbarSeparatorItemIdentifier"; +CPToolbarSpaceItemIdentifier = "CPToolbarSpaceItemIdentifier"; +CPToolbarFlexibleSpaceItemIdentifier = "CPToolbarFlexibleSpaceItemIdentifier"; +CPToolbarShowColorsItemIdentifier = "CPToolbarShowColorsItemIdentifier"; +CPToolbarShowFontsItemIdentifier = "CPToolbarShowFontsItemIdentifier"; +CPToolbarCustomizeToolbarItemIdentifier = "CPToolbarCustomizeToolbarItemIdentifier"; +CPToolbarPrintItemIdentifier = "CPToolbarPrintItemIdentifier"; +{var the_class = objj_allocateClassPair(CPObject, "CPToolbarItem"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_itemIdentifier"), new objj_ivar("_toolbar"), new objj_ivar("_label"), new objj_ivar("_paletteLabel"), new objj_ivar("_toolTip"), new objj_ivar("_tag"), new objj_ivar("_target"), new objj_ivar("_action"), new objj_ivar("_isEnabled"), new objj_ivar("_image"), new objj_ivar("_alternateImage"), new objj_ivar("_view"), new objj_ivar("_minSize"), new objj_ivar("_maxSize"), new objj_ivar("_visibilityPriority")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithItemIdentifier:"), function $CPToolbarItem__initWithItemIdentifier_(self, _cmd, anItemIdentifier) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _itemIdentifier = anItemIdentifier; + _tag = 0; + _isEnabled = YES; + _minSize = CGSizeMakeZero(); + _maxSize = CGSizeMakeZero(); + _visibilityPriority = CPToolbarItemVisibilityPriorityStandard; + } + return self; +} +}), new objj_method(sel_getUid("itemIdentifier"), function $CPToolbarItem__itemIdentifier(self, _cmd) +{ with(self) +{ + return _itemIdentifier; +} +}), new objj_method(sel_getUid("toolbar"), function $CPToolbarItem__toolbar(self, _cmd) +{ with(self) +{ + return _toolbar; +} +}), new objj_method(sel_getUid("label"), function $CPToolbarItem__label(self, _cmd) +{ with(self) +{ + return _label; +} +}), new objj_method(sel_getUid("setLabel:"), function $CPToolbarItem__setLabel_(self, _cmd, aLabel) +{ with(self) +{ + _label = aLabel; +} +}), new objj_method(sel_getUid("paletteLabel"), function $CPToolbarItem__paletteLabel(self, _cmd) +{ with(self) +{ + return _paletteLabel; +} +}), new objj_method(sel_getUid("setPaletteLabel:"), function $CPToolbarItem__setPaletteLabel_(self, _cmd, aPaletteLabel) +{ with(self) +{ + _paletteLabel = aPaletteLabel; +} +}), new objj_method(sel_getUid("toolTip"), function $CPToolbarItem__toolTip(self, _cmd) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("toolTip"))) + return objj_msgSend(_view, "toolTip"); + return _toolTip; +} +}), new objj_method(sel_getUid("setToolTip:"), function $CPToolbarItem__setToolTip_(self, _cmd, aToolTip) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setToolTip:"))) + objj_msgSend(view, "setToolTip:", aToolTip); + _toolTip = aToolTip; +} +}), new objj_method(sel_getUid("tag"), function $CPToolbarItem__tag(self, _cmd) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("tag"))) + return objj_msgSend(_view, "tag"); + return _tag; +} +}), new objj_method(sel_getUid("setTag:"), function $CPToolbarItem__setTag_(self, _cmd, aTag) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setTag:"))) + objj_msgSend(_view, "setTag:", aTag); + _tag = aTag; +} +}), new objj_method(sel_getUid("target"), function $CPToolbarItem__target(self, _cmd) +{ with(self) +{ + if (_view) + return objj_msgSend(_view, "respondsToSelector:", sel_getUid("target")) ? objj_msgSend(_view, "target") : nil; + return _target; +} +}), new objj_method(sel_getUid("setTarget:"), function $CPToolbarItem__setTarget_(self, _cmd, aTarget) +{ with(self) +{ + if (!_view) + _target = aTarget; + else if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setTarget:"))) + objj_msgSend(_view, "setTarget:", aTarget); +} +}), new objj_method(sel_getUid("action"), function $CPToolbarItem__action(self, _cmd) +{ with(self) +{ + if (_view) + return objj_msgSend(_view, "respondsToSelector:", sel_getUid("action")) ? objj_msgSend(_view, "action") : nil; + return _action; +} +}), new objj_method(sel_getUid("setAction:"), function $CPToolbarItem__setAction_(self, _cmd, anAction) +{ with(self) +{ + if (!_view) + _action = anAction; + else if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setAction:"))) + objj_msgSend(_view, "setAction:", anAction); +} +}), new objj_method(sel_getUid("isEnabled"), function $CPToolbarItem__isEnabled(self, _cmd) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("isEnabled"))) + return objj_msgSend(_view, "isEnabled"); + return _isEnabled; +} +}), new objj_method(sel_getUid("setEnabled:"), function $CPToolbarItem__setEnabled_(self, _cmd, shouldBeEnabled) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setEnabled:"))) + objj_msgSend(_view, "setEnabled:", shouldBeEnabled); + _isEnabled = shouldBeEnabled; +} +}), new objj_method(sel_getUid("image"), function $CPToolbarItem__image(self, _cmd) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("image"))) + return objj_msgSend(_view, "image"); + return _image; +} +}), new objj_method(sel_getUid("setImage:"), function $CPToolbarItem__setImage_(self, _cmd, anImage) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setImage:"))) + objj_msgSend(_view, "setImage:", anImage); + _image = anImage; + if (!_image) + return; + if (_minSize.width == 0 && _minSize.height == 0 && + _maxSize.width == 0 && _maxSize.height == 0) + { + var imageSize = objj_msgSend(_image, "size"); + if (imageSize.width > 0 || imageSize.height > 0) + { + objj_msgSend(self, "setMinSize:", imageSize); + objj_msgSend(self, "setMaxSize:", imageSize); + } + } +} +}), new objj_method(sel_getUid("setAlternateImage:"), function $CPToolbarItem__setAlternateImage_(self, _cmd, anImage) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setAlternateImage:"))) + objj_msgSend(_view, "setAlternateImage:", anImage); + _alternateImage = anImage; +} +}), new objj_method(sel_getUid("alternateImage"), function $CPToolbarItem__alternateImage(self, _cmd) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("alternateIamge"))) + return objj_msgSend(_view, "alternateImage"); + return _alternateImage; +} +}), new objj_method(sel_getUid("view"), function $CPToolbarItem__view(self, _cmd) +{ with(self) +{ + return _view; +} +}), new objj_method(sel_getUid("setView:"), function $CPToolbarItem__setView_(self, _cmd, aView) +{ with(self) +{ + if (_view == aView) + return; + _view = aView; + if (_view) + { + if (_tag !== 0 && objj_msgSend(_view, "respondsToSelector:", sel_getUid("setTag:"))) + objj_msgSend(_view, "setTag:", _tag); + _target = nil; + _action = nil; + } +} +}), new objj_method(sel_getUid("minSize"), function $CPToolbarItem__minSize(self, _cmd) +{ with(self) +{ + return _minSize; +} +}), new objj_method(sel_getUid("setMinSize:"), function $CPToolbarItem__setMinSize_(self, _cmd, aMinSize) +{ with(self) +{ + _minSize = CGSizeMakeCopy(aMinSize); + _maxSize = CGSizeMake(MAX(_minSize.width, _maxSize.width), MAX(_minSize.height, _maxSize.height)); +} +}), new objj_method(sel_getUid("maxSize"), function $CPToolbarItem__maxSize(self, _cmd) +{ with(self) +{ + return _maxSize; +} +}), new objj_method(sel_getUid("setMaxSize:"), function $CPToolbarItem__setMaxSize_(self, _cmd, aMaxSize) +{ with(self) +{ + _maxSize = CGSizeMakeCopy(aMaxSize); + _minSize = CGSizeMake(MIN(_minSize.width, _maxSize.width), MIN(_minSize.height, _maxSize.height)); +} +}), new objj_method(sel_getUid("visibilityPriority"), function $CPToolbarItem__visibilityPriority(self, _cmd) +{ with(self) +{ + return _visibilityPriority; +} +}), new objj_method(sel_getUid("setVisibilityPriority:"), function $CPToolbarItem__setVisibilityPriority_(self, _cmd, aVisibilityPriority) +{ with(self) +{ + _visibilityPriority = aVisibilityPriority; +} +})]); +} +{ +var the_class = objj_getClass("CPToolbarItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPToolbarItem\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("copy"), function $CPToolbarItem__copy(self, _cmd) +{ with(self) +{ + var copy = objj_msgSend(objj_msgSend(objj_msgSend(self, "class"), "alloc"), "initWithItemIdentifier:", _itemIdentifier); + if (_view) + objj_msgSend(copy, "setView:", objj_msgSend(CPKeyedUnarchiver, "unarchiveObjectWithData:", objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", _view))); + objj_msgSend(copy, "setLabel:", _label); + objj_msgSend(copy, "setPaletteLabel:", _paletteLabel); + objj_msgSend(copy, "setToolTip:", objj_msgSend(self, "toolTip")); + objj_msgSend(copy, "setTag:", objj_msgSend(self, "tag")); + objj_msgSend(copy, "setTarget:", objj_msgSend(self, "target")); + objj_msgSend(copy, "setAction:", objj_msgSend(self, "action")); + objj_msgSend(copy, "setEnabled:", objj_msgSend(self, "isEnabled")); + objj_msgSend(copy, "setImage:", objj_msgSend(self, "image")); + objj_msgSend(copy, "setAlternateImage:", objj_msgSend(self, "alternateImage")); + objj_msgSend(copy, "setMinSize:", _minSize); + objj_msgSend(copy, "setMaxSize:", _maxSize); + objj_msgSend(copy, "setVisibilityPriority:", _visibilityPriority); + return copy; +} +})]); +} +var _CPToolbarSeparatorItemView = nil, + _CPToolbarSpaceItemView = nil; +{ +var the_class = objj_getClass("CPToolbarItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPToolbarItem\"")); +var meta_class = the_class.isa;class_addMethods(meta_class, [new objj_method(sel_getUid("_separatorItemView"), function $CPToolbarItem___separatorItemView(self, _cmd) +{ with(self) +{ + if (!_CPToolbarSeparatorItemView) + { + _CPToolbarSeparatorItemView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, 2.0, 32.0)); + sizes = {}; + sizes["CPToolbarItemSeparator"] = [CGSizeMake(2.0, 26.0), CGSizeMake(2.0, 1.0), CGSizeMake(2.0, 26.0)]; + objj_msgSend(_CPToolbarSeparatorItemView, "setBackgroundColor:", _CPControlThreePartImagePattern(YES, sizes, "CPToolbarItem", "Separator")); + } + return _CPToolbarSeparatorItemView; +} +}), new objj_method(sel_getUid("_spaceItemView"), function $CPToolbarItem___spaceItemView(self, _cmd) +{ with(self) +{ + if (!_CPToolbarSpaceItemView) + _CPToolbarSpaceItemView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMakeZero()); + return _CPToolbarSpaceItemView; +} +}), new objj_method(sel_getUid("_standardItemWithItemIdentifier:"), function $CPToolbarItem___standardItemWithItemIdentifier_(self, _cmd, anItemIdentifier) +{ with(self) +{ + var item = objj_msgSend(objj_msgSend(CPToolbarItem, "alloc"), "initWithItemIdentifier:", anItemIdentifier); + switch (anItemIdentifier) + { + case CPToolbarSeparatorItemIdentifier: objj_msgSend(item, "setView:", objj_msgSend(self, "_separatorItemView")); + objj_msgSend(item, "setMinSize:", CGSizeMake(2.0, 0.0)); + objj_msgSend(item, "setMaxSize:", CGSizeMake(2.0, 100000.0)); + return item; + case CPToolbarSpaceItemIdentifier: objj_msgSend(item, "setView:", objj_msgSend(self, "_spaceItemView")); + objj_msgSend(item, "setMinSize:", CGSizeMake(32.0, 32.0)); + objj_msgSend(item, "setMaxSize:", CGSizeMake(32.0, 32.0)); + return item; + case CPToolbarFlexibleSpaceItemIdentifier: objj_msgSend(item, "setView:", objj_msgSend(self, "_spaceItemView")); + objj_msgSend(item, "setMinSize:", CGSizeMake(32.0, 32.0)); + objj_msgSend(item, "setMaxSize:", CGSizeMake(10000.0, 32.0)); + return item; + case CPToolbarShowColorsItemIdentifier: return nil; + case CPToolbarShowFontsItemIdentifier: return nil; + case CPToolbarCustomizeToolbarItemIdentifier: return nil; + case CPToolbarPrintItemIdentifier: return nil; + } + return nil; +} +})]); +} + +p;8;CPView.jI;20;Foundation/CPArray.jI;26;Foundation/CPObjJRuntime.ji;19;CGAffineTransform.ji;12;CGGeometry.ji;9;CPColor.ji;20;CPDOMDisplayServer.ji;12;CPGeometry.ji;19;CPGraphicsContext.ji;13;CPResponder.ji;9;CPTheme.jc;86011; +CPViewNotSizable = 0; +CPViewMinXMargin = 1; +CPViewWidthSizable = 2; +CPViewMaxXMargin = 4; +CPViewMinYMargin = 8; +CPViewHeightSizable = 16; +CPViewMaxYMargin = 32; +CPViewBoundsDidChangeNotification = "CPViewBoundsDidChangeNotification"; +CPViewFrameDidChangeNotification = "CPViewFrameDidChangeNotification"; +var CachedNotificationCenter = nil, + CachedThemeAttributes = nil; +var DOMElementPrototype = nil, + BackgroundTrivialColor = 0, + BackgroundVerticalThreePartImage = 1, + BackgroundHorizontalThreePartImage = 2, + BackgroundNinePartImage = 3, + CustomDrawRectViews = {}, + CustomLayoutSubviewsViews = {}; +{var the_class = objj_allocateClassPair(CPResponder, "CPView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_window"), new objj_ivar("_superview"), new objj_ivar("_subviews"), new objj_ivar("_graphicsContext"), new objj_ivar("_tag"), new objj_ivar("_frame"), new objj_ivar("_bounds"), new objj_ivar("_boundsTransform"), new objj_ivar("_inverseBoundsTransform"), new objj_ivar("_registeredDraggedTypes"), new objj_ivar("_registeredDraggedTypesArray"), new objj_ivar("_isHidden"), new objj_ivar("_hitTests"), new objj_ivar("_postsFrameChangedNotifications"), new objj_ivar("_postsBoundsChangedNotifications"), new objj_ivar("_inhibitFrameAndBoundsChangedNotifications"), new objj_ivar("_displayHash"), new objj_ivar("_DOMElement"), new objj_ivar("_DOMContentsElement"), new objj_ivar("_DOMImageParts"), new objj_ivar("_DOMImageSizes"), new objj_ivar("_backgroundType"), new objj_ivar("_dirtyRect"), new objj_ivar("_opacity"), new objj_ivar("_backgroundColor"), new objj_ivar("_autoresizesSubviews"), new objj_ivar("_autoresizingMask"), new objj_ivar("_layer"), new objj_ivar("_wantsLayer"), new objj_ivar("_isInFullScreenMode"), new objj_ivar("_fullScreenModeState"), new objj_ivar("_needsLayout"), new objj_ivar("_ephemeralSubviews"), new objj_ivar("_theme"), new objj_ivar("_themeAttributes"), new objj_ivar("_themeState"), new objj_ivar("_nextKeyView"), new objj_ivar("_previousKeyView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPView__init(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "initWithFrame:", CGRectMakeZero()); +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "init"); + if (self) + { + var width = (aFrame.size.width), + height = (aFrame.size.height); + _subviews = []; + _registeredDraggedTypes = objj_msgSend(CPSet, "set"); + _registeredDraggedTypesArray = []; + _tag = -1; + _frame = { origin: { x:aFrame.origin.x, y:aFrame.origin.y }, size: { width:aFrame.size.width, height:aFrame.size.height } }; + _bounds = { origin: { x:0.0, y:0.0 }, size: { width:width, height:height } }; + _autoresizingMask = CPViewNotSizable; + _autoresizesSubviews = YES; + _opacity = 1.0; + _isHidden = NO; + _hitTests = YES; + _displayHash = objj_msgSend(self, "hash"); + _DOMElement = DOMElementPrototype.cloneNode(false); + if (!_DOMElement.CPDOMDisplayContext) _DOMElement.CPDOMDisplayContext = []; var __index = _DOMElement.CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMElement.CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMElement; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = (aFrame.origin.x); CPDOMDisplayServerInstructions[__index + 4] = (aFrame.origin.y);; + if (!_DOMElement.CPDOMDisplayContext) _DOMElement.CPDOMDisplayContext = []; var __index = _DOMElement.CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMElement.CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMElement; CPDOMDisplayServerInstructions[__index + 2] = width; CPDOMDisplayServerInstructions[__index + 3] = height;; + _DOMImageParts = []; + _DOMImageSizes = []; + _theme = objj_msgSend(CPTheme, "defaultTheme"); + _themeState = CPThemeStateNormal; + objj_msgSend(self, "_loadThemeAttributes"); + } + return self; +} +}), new objj_method(sel_getUid("superview"), function $CPView__superview(self, _cmd) +{ with(self) +{ + return _superview; +} +}), new objj_method(sel_getUid("subviews"), function $CPView__subviews(self, _cmd) +{ with(self) +{ + return _subviews; +} +}), new objj_method(sel_getUid("window"), function $CPView__window(self, _cmd) +{ with(self) +{ + return _window; +} +}), new objj_method(sel_getUid("addSubview:"), function $CPView__addSubview_(self, _cmd, aSubview) +{ with(self) +{ + objj_msgSend(self, "_insertSubview:atIndex:", aSubview, CPNotFound); +} +}), new objj_method(sel_getUid("addSubview:positioned:relativeTo:"), function $CPView__addSubview_positioned_relativeTo_(self, _cmd, aSubview, anOrderingMode, anotherView) +{ with(self) +{ + var index = anotherView ? objj_msgSend(_subviews, "indexOfObjectIdenticalTo:", anotherView) : CPNotFound; + if (index === CPNotFound) + index = (anOrderingMode === CPWindowAbove) ? objj_msgSend(_subviews, "count") : 0; + else if (anOrderingMode === CPWindowAbove) + ++index; + objj_msgSend(self, "_insertSubview:atIndex:", aSubview, index); +} +}), new objj_method(sel_getUid("_insertSubview:atIndex:"), function $CPView___insertSubview_atIndex_(self, _cmd, aSubview, anIndex) +{ with(self) +{ + var count = _subviews.length; + objj_msgSend(objj_msgSend(self, "window"), "_dirtyKeyViewLoop"); + if (aSubview._superview == self) + { + var index = objj_msgSend(_subviews, "indexOfObjectIdenticalTo:", aSubview); + if (index === anIndex || index === count - 1 && anIndex === count) + return; + objj_msgSend(_subviews, "removeObjectAtIndex:", index); + CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 8; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = aSubview._DOMElement;; + if (anIndex > index) + --anIndex; + --count; + } + else + { + objj_msgSend(aSubview, "removeFromSuperview"); + objj_msgSend(aSubview, "_setWindow:", _window); + objj_msgSend(aSubview, "viewWillMoveToSuperview:", self); + aSubview._superview = self; + } + if (anIndex === CPNotFound || anIndex >= count) + { + _subviews.push(aSubview); + if (aSubview._DOMElement.CPDOMDisplayContext) aSubview._DOMElement.CPDOMDisplayContext[0] = -1; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 6; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = aSubview._DOMElement;; + } + else + { + _subviews.splice(anIndex, 0, aSubview); + if (aSubview._DOMElement.CPDOMDisplayContext) aSubview._DOMElement.CPDOMDisplayContext[0] = -1; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 7; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = aSubview._DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _subviews[anIndex + 1]._DOMElement;; + } + objj_msgSend(aSubview, "setNextResponder:", self); + objj_msgSend(aSubview, "viewDidMoveToSuperview"); + objj_msgSend(self, "didAddSubview:", aSubview); +} +}), new objj_method(sel_getUid("didAddSubview:"), function $CPView__didAddSubview_(self, _cmd, aSubview) +{ with(self) +{ +} +}), new objj_method(sel_getUid("removeFromSuperview"), function $CPView__removeFromSuperview(self, _cmd) +{ with(self) +{ + if (!_superview) + return; + objj_msgSend(objj_msgSend(self, "window"), "_dirtyKeyViewLoop"); + objj_msgSend(_superview, "willRemoveSubview:", self); + objj_msgSend(objj_msgSend(_superview, "subviews"), "removeObject:", self); + CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 8; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _superview._DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement;; + _superview = nil; + objj_msgSend(self, "_setWindow:", nil); +} +}), new objj_method(sel_getUid("replaceSubview:with:"), function $CPView__replaceSubview_with_(self, _cmd, aSubview, aView) +{ with(self) +{ + if (aSubview._superview != self) + return; + var index = objj_msgSend(_subviews, "indexOfObjectIdenticalTo:", aSubview); + objj_msgSend(aSubview, "removeFromSuperview"); + objj_msgSend(self, "_insertSubview:atIndex:", aView, index); +} +}), new objj_method(sel_getUid("_setWindow:"), function $CPView___setWindow_(self, _cmd, aWindow) +{ with(self) +{ + if (_window === aWindow) + return; + objj_msgSend(objj_msgSend(self, "window"), "_dirtyKeyViewLoop"); + if (objj_msgSend(_window, "firstResponder") === self) + objj_msgSend(_window, "makeFirstResponder:", nil); + objj_msgSend(self, "viewWillMoveToWindow:", aWindow); + if (_registeredDraggedTypes) + { + objj_msgSend(_window, "_noteUnregisteredDraggedTypes:", _registeredDraggedTypes); + objj_msgSend(aWindow, "_noteRegisteredDraggedTypes:", _registeredDraggedTypes); + } + _window = aWindow; + var count = objj_msgSend(_subviews, "count"); + while (count--) + objj_msgSend(_subviews[count], "_setWindow:", aWindow); + objj_msgSend(self, "viewDidMoveToWindow"); + objj_msgSend(objj_msgSend(self, "window"), "_dirtyKeyViewLoop"); +} +}), new objj_method(sel_getUid("isDescendantOf:"), function $CPView__isDescendantOf_(self, _cmd, aView) +{ with(self) +{ + var view = self; + do + { + if (view == aView) + return YES; + } while(view = objj_msgSend(view, "superview")) + return NO; +} +}), new objj_method(sel_getUid("viewDidMoveToSuperview"), function $CPView__viewDidMoveToSuperview(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("viewDidMoveToWindow"), function $CPView__viewDidMoveToWindow(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("viewWillMoveToSuperview:"), function $CPView__viewWillMoveToSuperview_(self, _cmd, aView) +{ with(self) +{ +} +}), new objj_method(sel_getUid("viewWillMoveToWindow:"), function $CPView__viewWillMoveToWindow_(self, _cmd, aWindow) +{ with(self) +{ +} +}), new objj_method(sel_getUid("willRemoveSubview:"), function $CPView__willRemoveSubview_(self, _cmd, aView) +{ with(self) +{ +} +}), new objj_method(sel_getUid("enclosingMenuItem"), function $CPView__enclosingMenuItem(self, _cmd) +{ with(self) +{ + var view = self; + while (view && !objj_msgSend(view, "isKindOfClass:", objj_msgSend(_CPMenuItemView, "class"))) + view = objj_msgSend(view, "superview"); + if (view) + return view._menuItem; + return nil; +} +}), new objj_method(sel_getUid("setTag:"), function $CPView__setTag_(self, _cmd, aTag) +{ with(self) +{ + _tag = aTag; +} +}), new objj_method(sel_getUid("tag"), function $CPView__tag(self, _cmd) +{ with(self) +{ + return _tag; +} +}), new objj_method(sel_getUid("viewWithTag:"), function $CPView__viewWithTag_(self, _cmd, aTag) +{ with(self) +{ + if (objj_msgSend(self, "tag") === aTag) + return self; + var index = 0, + count = _subviews.length; + for (; index < count; ++index) + { + var view = objj_msgSend(_subviews[index], "viewWithTag:", aTag); + if (view) + return view; + } + return nil; +} +}), new objj_method(sel_getUid("isFlipped"), function $CPView__isFlipped(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("setFrame:"), function $CPView__setFrame_(self, _cmd, aFrame) +{ with(self) +{ + if (((_frame.origin.x == aFrame.origin.x && _frame.origin.y == aFrame.origin.y) && (_frame.size.width == aFrame.size.width && _frame.size.height == aFrame.size.height))) + return; + _inhibitFrameAndBoundsChangedNotifications = YES; + objj_msgSend(self, "setFrameOrigin:", aFrame.origin); + objj_msgSend(self, "setFrameSize:", aFrame.size); + _inhibitFrameAndBoundsChangedNotifications = NO; + if (_postsFrameChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewFrameDidChangeNotification, self); +} +}), new objj_method(sel_getUid("frame"), function $CPView__frame(self, _cmd) +{ with(self) +{ + return { origin: { x:_frame.origin.x, y:_frame.origin.y }, size: { width:_frame.size.width, height:_frame.size.height } }; +} +}), new objj_method(sel_getUid("setCenter:"), function $CPView__setCenter_(self, _cmd, aPoint) +{ with(self) +{ + objj_msgSend(self, "setFrameOrigin:", CGPointMake(aPoint.x - _frame.size.width / 2.0, aPoint.y - _frame.size.height / 2.0)); +} +}), new objj_method(sel_getUid("center"), function $CPView__center(self, _cmd) +{ with(self) +{ + return CGPointMake(_frame.size.width / 2.0 + _frame.origin.x, _frame.size.height / 2.0 + _frame.origin.y); +} +}), new objj_method(sel_getUid("setFrameOrigin:"), function $CPView__setFrameOrigin_(self, _cmd, aPoint) +{ with(self) +{ + var origin = _frame.origin; + if (!aPoint || (origin.x == aPoint.x && origin.y == aPoint.y)) + return; + origin.x = aPoint.x; + origin.y = aPoint.y; + if (_postsFrameChangedNotifications && !_inhibitFrameAndBoundsChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewFrameDidChangeNotification, self); + if (!_DOMElement.CPDOMDisplayContext) _DOMElement.CPDOMDisplayContext = []; var __index = _DOMElement.CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMElement.CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMElement; CPDOMDisplayServerInstructions[__index + 2] = _superview ? _superview._boundsTransform : NULL; CPDOMDisplayServerInstructions[__index + 3] = origin.x; CPDOMDisplayServerInstructions[__index + 4] = origin.y;; +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPView__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + var size = _frame.size; + if (!aSize || (size.width == aSize.width && size.height == aSize.height)) + return; + var oldSize = { width:size.width, height:size.height }; + size.width = aSize.width; + size.height = aSize.height; + if (YES) + { + _bounds.size.width = aSize.width; + _bounds.size.height = aSize.height; + } + if (_layer) + objj_msgSend(_layer, "_owningViewBoundsChanged"); + if (_autoresizesSubviews) + objj_msgSend(self, "resizeSubviewsWithOldSize:", oldSize); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + if (!_DOMElement.CPDOMDisplayContext) _DOMElement.CPDOMDisplayContext = []; var __index = _DOMElement.CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMElement.CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMElement; CPDOMDisplayServerInstructions[__index + 2] = size.width; CPDOMDisplayServerInstructions[__index + 3] = size.height;; + if (_DOMContentsElement) + { + if (!_DOMContentsElement.CPDOMDisplayContext) _DOMContentsElement.CPDOMDisplayContext = []; var __index = _DOMContentsElement.CPDOMDisplayContext[5]; if (!(__index >= 0)) { __index = _DOMContentsElement.CPDOMDisplayContext[5] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 5; CPDOMDisplayServerInstructions[__index + 1] = _DOMContentsElement; CPDOMDisplayServerInstructions[__index + 2] = size.width; CPDOMDisplayServerInstructions[__index + 3] = size.height;; + if (!_DOMContentsElement.CPDOMDisplayContext) _DOMContentsElement.CPDOMDisplayContext = []; var __index = _DOMContentsElement.CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMContentsElement.CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMContentsElement; CPDOMDisplayServerInstructions[__index + 2] = size.width; CPDOMDisplayServerInstructions[__index + 3] = size.height;; + } + if (_backgroundType !== BackgroundTrivialColor) + { + var images = objj_msgSend(objj_msgSend(_backgroundColor, "patternImage"), "imageSlices"); + if (_backgroundType === BackgroundVerticalThreePartImage) + { + if (!_DOMImageParts[1].CPDOMDisplayContext) _DOMImageParts[1].CPDOMDisplayContext = []; var __index = _DOMImageParts[1].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[1].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[1]; CPDOMDisplayServerInstructions[__index + 2] = size.width; CPDOMDisplayServerInstructions[__index + 3] = size.height - _DOMImageSizes[0].height - _DOMImageSizes[2].height;; + } + else if (_backgroundType === BackgroundHorizontalThreePartImage) + { + if (!_DOMImageParts[1].CPDOMDisplayContext) _DOMImageParts[1].CPDOMDisplayContext = []; var __index = _DOMImageParts[1].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[1].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[1]; CPDOMDisplayServerInstructions[__index + 2] = size.width - _DOMImageSizes[0].width - _DOMImageSizes[2].width; CPDOMDisplayServerInstructions[__index + 3] = size.height;; + } + else if (_backgroundType === BackgroundNinePartImage) + { + var width = size.width - _DOMImageSizes[0].width - _DOMImageSizes[2].width, + height = size.height - _DOMImageSizes[0].height - _DOMImageSizes[6].height; + if (!_DOMImageParts[1].CPDOMDisplayContext) _DOMImageParts[1].CPDOMDisplayContext = []; var __index = _DOMImageParts[1].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[1].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[1]; CPDOMDisplayServerInstructions[__index + 2] = width; CPDOMDisplayServerInstructions[__index + 3] = _DOMImageSizes[0].height;; + if (!_DOMImageParts[3].CPDOMDisplayContext) _DOMImageParts[3].CPDOMDisplayContext = []; var __index = _DOMImageParts[3].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[3].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[3]; CPDOMDisplayServerInstructions[__index + 2] = _DOMImageSizes[3].width; CPDOMDisplayServerInstructions[__index + 3] = height;; + if (!_DOMImageParts[4].CPDOMDisplayContext) _DOMImageParts[4].CPDOMDisplayContext = []; var __index = _DOMImageParts[4].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[4].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[4]; CPDOMDisplayServerInstructions[__index + 2] = width; CPDOMDisplayServerInstructions[__index + 3] = height;; + if (!_DOMImageParts[5].CPDOMDisplayContext) _DOMImageParts[5].CPDOMDisplayContext = []; var __index = _DOMImageParts[5].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[5].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[5]; CPDOMDisplayServerInstructions[__index + 2] = _DOMImageSizes[5].width; CPDOMDisplayServerInstructions[__index + 3] = height;; + if (!_DOMImageParts[7].CPDOMDisplayContext) _DOMImageParts[7].CPDOMDisplayContext = []; var __index = _DOMImageParts[7].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[7].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[7]; CPDOMDisplayServerInstructions[__index + 2] = width; CPDOMDisplayServerInstructions[__index + 3] = _DOMImageSizes[7].height;; + } + } + if (_postsFrameChangedNotifications && !_inhibitFrameAndBoundsChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewFrameDidChangeNotification, self); +} +}), new objj_method(sel_getUid("setBounds:"), function $CPView__setBounds_(self, _cmd, bounds) +{ with(self) +{ + if (((_bounds.origin.x == bounds.origin.x && _bounds.origin.y == bounds.origin.y) && (_bounds.size.width == bounds.size.width && _bounds.size.height == bounds.size.height))) + return; + _inhibitFrameAndBoundsChangedNotifications = YES; + objj_msgSend(self, "setBoundsOrigin:", bounds.origin); + objj_msgSend(self, "setBoundsSize:", bounds.size); + _inhibitFrameAndBoundsChangedNotifications = NO; + if (_postsBoundsChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewBoundsDidChangeNotification, self); +} +}), new objj_method(sel_getUid("bounds"), function $CPView__bounds(self, _cmd) +{ with(self) +{ + return { origin: { x:_bounds.origin.x, y:_bounds.origin.y }, size: { width:_bounds.size.width, height:_bounds.size.height } }; +} +}), new objj_method(sel_getUid("setBoundsOrigin:"), function $CPView__setBoundsOrigin_(self, _cmd, aPoint) +{ with(self) +{ + var origin = _bounds.origin; + if ((origin.x == aPoint.x && origin.y == aPoint.y)) + return; + origin.x = aPoint.x; + origin.y = aPoint.y; + if (origin.x != 0 || origin.y != 0) + { + _boundsTransform = { a:1.0, b:0.0, c:0.0, d:1.0, tx:-origin.x, ty:-origin.y }; + _inverseBoundsTransform = CGAffineTransformInvert(_boundsTransform); + } + else + { + _boundsTransform = nil; + _inverseBoundsTransform = nil; + } + var index = _subviews.length; + while (index--) + { + var view = _subviews[index], + origin = view._frame.origin; + if (!view._DOMElement.CPDOMDisplayContext) view._DOMElement.CPDOMDisplayContext = []; var __index = view._DOMElement.CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = view._DOMElement.CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = view._DOMElement; CPDOMDisplayServerInstructions[__index + 2] = _boundsTransform; CPDOMDisplayServerInstructions[__index + 3] = origin.x; CPDOMDisplayServerInstructions[__index + 4] = origin.y;; + } + if (_postsBoundsChangedNotifications && !_inhibitFrameAndBoundsChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewBoundsDidChangeNotification, self); +} +}), new objj_method(sel_getUid("setBoundsSize:"), function $CPView__setBoundsSize_(self, _cmd, aSize) +{ with(self) +{ + var size = _bounds.size; + if ((size.width == aSize.width && size.height == aSize.height)) + return; + var frameSize = _frame.size; + if (!(size.width == frameSize.width && size.height == frameSize.height)) + { + var origin = _bounds.origin; + origin.x /= size.width / frameSize.width; + origin.y /= size.height / frameSize.height; + } + size.width = aSize.width; + size.height = aSize.height; + if (!(size.width == frameSize.width && size.height == frameSize.height)) + { + var origin = _bounds.origin; + origin.x *= size.width / frameSize.width; + origin.y *= size.height / frameSize.height; + } + if (_postsBoundsChangedNotifications && !_inhibitFrameAndBoundsChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewBoundsDidChangeNotification, self); +} +}), new objj_method(sel_getUid("resizeWithOldSuperviewSize:"), function $CPView__resizeWithOldSuperviewSize_(self, _cmd, aSize) +{ with(self) +{ + var mask = objj_msgSend(self, "autoresizingMask"); + if(mask == CPViewNotSizable) + return; + var frame = _superview._frame, + newFrame = { origin: { x:_frame.origin.x, y:_frame.origin.y }, size: { width:_frame.size.width, height:_frame.size.height } }, + dX = ((frame.size.width) - aSize.width) / + (((mask & CPViewMinXMargin) ? 1 : 0) + (mask & CPViewWidthSizable ? 1 : 0) + (mask & CPViewMaxXMargin ? 1 : 0)), + dY = ((frame.size.height) - aSize.height) / + ((mask & CPViewMinYMargin ? 1 : 0) + (mask & CPViewHeightSizable ? 1 : 0) + (mask & CPViewMaxYMargin ? 1 : 0)); + if (mask & CPViewMinXMargin) + newFrame.origin.x += dX; + if (mask & CPViewWidthSizable) + newFrame.size.width += dX; + if (mask & CPViewMinYMargin) + newFrame.origin.y += dY; + if (mask & CPViewHeightSizable) + newFrame.size.height += dY; + objj_msgSend(self, "setFrame:", newFrame); +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $CPView__resizeSubviewsWithOldSize_(self, _cmd, aSize) +{ with(self) +{ + var count = _subviews.length; + while (count--) + objj_msgSend(_subviews[count], "resizeWithOldSuperviewSize:", aSize); +} +}), new objj_method(sel_getUid("setAutoresizesSubviews:"), function $CPView__setAutoresizesSubviews_(self, _cmd, aFlag) +{ with(self) +{ + _autoresizesSubviews = !!aFlag; +} +}), new objj_method(sel_getUid("autoresizesSubviews"), function $CPView__autoresizesSubviews(self, _cmd) +{ with(self) +{ + return _autoresizesSubviews; +} +}), new objj_method(sel_getUid("setAutoresizingMask:"), function $CPView__setAutoresizingMask_(self, _cmd, aMask) +{ with(self) +{ + _autoresizingMask = aMask; +} +}), new objj_method(sel_getUid("autoresizingMask"), function $CPView__autoresizingMask(self, _cmd) +{ with(self) +{ + return _autoresizingMask; +} +}), new objj_method(sel_getUid("enterFullScreenMode"), function $CPView__enterFullScreenMode(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "enterFullScreenMode:withOptions:", nil, nil); +} +}), new objj_method(sel_getUid("enterFullScreenMode:withOptions:"), function $CPView__enterFullScreenMode_withOptions_(self, _cmd, aScreen, options) +{ with(self) +{ + _fullScreenModeState = _CPViewFullScreenModeStateMake(self); + var fullScreenWindow = objj_msgSend(objj_msgSend(CPWindow, "alloc"), "initWithContentRect:styleMask:", objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "contentBounds"), CPBorderlessWindowMask); + objj_msgSend(fullScreenWindow, "setLevel:", CPScreenSaverWindowLevel); + objj_msgSend(fullScreenWindow, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + var contentView = objj_msgSend(fullScreenWindow, "contentView"); + objj_msgSend(contentView, "setBackgroundColor:", objj_msgSend(CPColor, "blackColor")); + objj_msgSend(contentView, "addSubview:", self); + objj_msgSend(self, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + objj_msgSend(self, "setFrame:", CGRectMakeCopy(objj_msgSend(contentView, "bounds"))); + objj_msgSend(fullScreenWindow, "makeKeyAndOrderFront:", self); + objj_msgSend(fullScreenWindow, "makeFirstResponder:", self); + _isInFullScreenMode = YES; + return YES; +} +}), new objj_method(sel_getUid("exitFullScreenMode"), function $CPView__exitFullScreenMode(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "exitFullScreenModeWithOptions:", nil); +} +}), new objj_method(sel_getUid("exitFullScreenModeWithOptions:"), function $CPView__exitFullScreenModeWithOptions_(self, _cmd, options) +{ with(self) +{ + if (!_isInFullScreenMode) + return; + _isInFullScreenMode = NO; + objj_msgSend(self, "setFrame:", _fullScreenModeState.frame); + objj_msgSend(self, "setAutoresizingMask:", _fullScreenModeState.autoresizingMask); + objj_msgSend(_fullScreenModeState.superview, "_insertSubview:atIndex:", self, _fullScreenModeState.index); + objj_msgSend(objj_msgSend(self, "window"), "orderOut:", self); +} +}), new objj_method(sel_getUid("isInFullScreenMode"), function $CPView__isInFullScreenMode(self, _cmd) +{ with(self) +{ + return _isInFullScreenMode; +} +}), new objj_method(sel_getUid("setHidden:"), function $CPView__setHidden_(self, _cmd, aFlag) +{ with(self) +{ + aFlag = !!aFlag; + if(_isHidden === aFlag) + return; + _isHidden = aFlag; + _DOMElement.style.display = _isHidden ? "none" : "block"; + if (aFlag) + { + var view = objj_msgSend(_window, "firstResponder"); + if (objj_msgSend(view, "isKindOfClass:", objj_msgSend(CPView, "class"))) + { + do + { + if (self == view) + { + objj_msgSend(_window, "makeFirstResponder:", objj_msgSend(self, "nextValidKeyView")); + break; + } + } + while (view = objj_msgSend(view, "superview")); + } + } +} +}), new objj_method(sel_getUid("isHidden"), function $CPView__isHidden(self, _cmd) +{ with(self) +{ + return _isHidden; +} +}), new objj_method(sel_getUid("setAlphaValue:"), function $CPView__setAlphaValue_(self, _cmd, anAlphaValue) +{ with(self) +{ + if (_opacity == anAlphaValue) + return; + _opacity = anAlphaValue; + if (CPFeatureIsCompatible(CPOpacityRequiresFilterFeature)) + { + if (anAlphaValue == 1.0) + try { _DOMElement.style.removeAttribute("filter") } catch (anException) { } + else + _DOMElement.style.filter = "alpha(opacity=" + anAlphaValue * 100 + ")"; + } + else + _DOMElement.style.opacity = anAlphaValue; +} +}), new objj_method(sel_getUid("alphaValue"), function $CPView__alphaValue(self, _cmd) +{ with(self) +{ + return _opacity; +} +}), new objj_method(sel_getUid("isHiddenOrHasHiddenAncestor"), function $CPView__isHiddenOrHasHiddenAncestor(self, _cmd) +{ with(self) +{ + var view = self; + while (view && !objj_msgSend(view, "isHidden")) + view = objj_msgSend(view, "superview"); + return view !== nil; +} +}), new objj_method(sel_getUid("acceptsFirstMouse:"), function $CPView__acceptsFirstMouse_(self, _cmd, anEvent) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("hitTests"), function $CPView__hitTests(self, _cmd) +{ with(self) +{ + return _hitTests; +} +}), new objj_method(sel_getUid("setHitTests:"), function $CPView__setHitTests_(self, _cmd, shouldHitTest) +{ with(self) +{ + _hitTests = !!shouldHitTest; +} +}), new objj_method(sel_getUid("hitTest:"), function $CPView__hitTest_(self, _cmd, aPoint) +{ with(self) +{ + if(_isHidden || !_hitTests || !CPRectContainsPoint(_frame, aPoint)) + return nil; + var view = nil, + i = _subviews.length, + adjustedPoint = { x:aPoint.x - (_frame.origin.x), y:aPoint.y - (_frame.origin.y) }; + if (_inverseBoundsTransform) + adjustedPoint = { x:adjustedPoint.x * _inverseBoundsTransform.a + adjustedPoint.y * _inverseBoundsTransform.c + _inverseBoundsTransform.tx, y:adjustedPoint.x * _inverseBoundsTransform.b + adjustedPoint.y * _inverseBoundsTransform.d + _inverseBoundsTransform.ty }; + while (i--) + if (view = objj_msgSend(_subviews[i], "hitTest:", adjustedPoint)) + return view; + return self; +} +}), new objj_method(sel_getUid("mouseDownCanMoveWindow"), function $CPView__mouseDownCanMoveWindow(self, _cmd) +{ with(self) +{ + return !objj_msgSend(self, "isOpaque"); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (objj_msgSend(self, "mouseDownCanMoveWindow")) + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "mouseDown:", anEvent); +} +}), new objj_method(sel_getUid("setBackgroundColor:"), function $CPView__setBackgroundColor_(self, _cmd, aColor) +{ with(self) +{ + if (_backgroundColor == aColor) + return; + _backgroundColor = aColor; + var patternImage = objj_msgSend(_backgroundColor, "patternImage"), + amount = 0; + if (objj_msgSend(patternImage, "isThreePartImage")) + { + _backgroundType = objj_msgSend(patternImage, "isVertical") ? BackgroundVerticalThreePartImage : BackgroundHorizontalThreePartImage; + amount = 3 - _DOMImageParts.length; + } + else if (objj_msgSend(patternImage, "isNinePartImage")) + { + _backgroundType = BackgroundNinePartImage; + amount = 9 - _DOMImageParts.length; + } + else + { + _backgroundType = BackgroundTrivialColor; + amount = 0 - _DOMImageParts.length; + } + if (amount > 0) + while (amount--) + { + var DOMElement = DOMElementPrototype.cloneNode(false); + DOMElement.style.zIndex = -1000; + _DOMImageParts.push(DOMElement); + _DOMElement.appendChild(DOMElement); + } + else + { + amount = -amount; + while (amount--) + _DOMElement.removeChild(_DOMImageParts.pop()); + } + if (_backgroundType == BackgroundTrivialColor) + _DOMElement.style.background = _backgroundColor ? objj_msgSend(_backgroundColor, "cssString") : ""; + else + { + var slices = objj_msgSend(patternImage, "imageSlices"), + count = MIN(_DOMImageParts.length, slices.length), + frameSize = _frame.size; + while (count--) + { + var image = slices[count], + size = _DOMImageSizes[count] = image ? objj_msgSend(image, "size") : { width:0.0, height:0.0 }; + if (!_DOMImageParts[count].CPDOMDisplayContext) _DOMImageParts[count].CPDOMDisplayContext = []; var __index = _DOMImageParts[count].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[count].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[count]; CPDOMDisplayServerInstructions[__index + 2] = size.width; CPDOMDisplayServerInstructions[__index + 3] = size.height;; + _DOMImageParts[count].style.background = image ? "url(\"" + objj_msgSend(image, "filename") + "\")" : ""; + } + if (_backgroundType == BackgroundNinePartImage) + { + var width = frameSize.width - _DOMImageSizes[0].width - _DOMImageSizes[2].width, + height = frameSize.height - _DOMImageSizes[0].height - _DOMImageSizes[6].height; + if (!_DOMImageParts[1].CPDOMDisplayContext) _DOMImageParts[1].CPDOMDisplayContext = []; var __index = _DOMImageParts[1].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[1].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[1]; CPDOMDisplayServerInstructions[__index + 2] = width; CPDOMDisplayServerInstructions[__index + 3] = _DOMImageSizes[0].height;; + if (!_DOMImageParts[3].CPDOMDisplayContext) _DOMImageParts[3].CPDOMDisplayContext = []; var __index = _DOMImageParts[3].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[3].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[3]; CPDOMDisplayServerInstructions[__index + 2] = _DOMImageSizes[3].width; CPDOMDisplayServerInstructions[__index + 3] = height;; + if (!_DOMImageParts[4].CPDOMDisplayContext) _DOMImageParts[4].CPDOMDisplayContext = []; var __index = _DOMImageParts[4].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[4].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[4]; CPDOMDisplayServerInstructions[__index + 2] = width; CPDOMDisplayServerInstructions[__index + 3] = height;; + if (!_DOMImageParts[5].CPDOMDisplayContext) _DOMImageParts[5].CPDOMDisplayContext = []; var __index = _DOMImageParts[5].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[5].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[5]; CPDOMDisplayServerInstructions[__index + 2] = _DOMImageSizes[5].width; CPDOMDisplayServerInstructions[__index + 3] = height;; + if (!_DOMImageParts[7].CPDOMDisplayContext) _DOMImageParts[7].CPDOMDisplayContext = []; var __index = _DOMImageParts[7].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[7].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[7]; CPDOMDisplayServerInstructions[__index + 2] = width; CPDOMDisplayServerInstructions[__index + 3] = _DOMImageSizes[7].height;; + if (!_DOMImageParts[0].CPDOMDisplayContext) _DOMImageParts[0].CPDOMDisplayContext = []; var __index = _DOMImageParts[0].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[0].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[0]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = 0.0; CPDOMDisplayServerInstructions[__index + 4] = 0.0;; + if (!_DOMImageParts[1].CPDOMDisplayContext) _DOMImageParts[1].CPDOMDisplayContext = []; var __index = _DOMImageParts[1].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[1].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[1]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = _DOMImageSizes[0].width; CPDOMDisplayServerInstructions[__index + 4] = 0.0;; + if (!_DOMImageParts[2].CPDOMDisplayContext) _DOMImageParts[2].CPDOMDisplayContext = []; var __index = _DOMImageParts[2].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[2].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 1; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[2]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = 0.0; CPDOMDisplayServerInstructions[__index + 4] = 0.0;; + if (!_DOMImageParts[3].CPDOMDisplayContext) _DOMImageParts[3].CPDOMDisplayContext = []; var __index = _DOMImageParts[3].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[3].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[3]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = 0.0; CPDOMDisplayServerInstructions[__index + 4] = _DOMImageSizes[1].height;; + if (!_DOMImageParts[4].CPDOMDisplayContext) _DOMImageParts[4].CPDOMDisplayContext = []; var __index = _DOMImageParts[4].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[4].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[4]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = _DOMImageSizes[0].width; CPDOMDisplayServerInstructions[__index + 4] = _DOMImageSizes[0].height;; + if (!_DOMImageParts[5].CPDOMDisplayContext) _DOMImageParts[5].CPDOMDisplayContext = []; var __index = _DOMImageParts[5].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[5].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 1; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[5]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = 0.0; CPDOMDisplayServerInstructions[__index + 4] = _DOMImageSizes[1].height;; + if (!_DOMImageParts[6].CPDOMDisplayContext) _DOMImageParts[6].CPDOMDisplayContext = []; var __index = _DOMImageParts[6].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[6].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 2; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[6]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = 0.0; CPDOMDisplayServerInstructions[__index + 4] = 0.0;; + if (!_DOMImageParts[7].CPDOMDisplayContext) _DOMImageParts[7].CPDOMDisplayContext = []; var __index = _DOMImageParts[7].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[7].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 2; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[7]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = _DOMImageSizes[6].width; CPDOMDisplayServerInstructions[__index + 4] = 0.0;; + if (!_DOMImageParts[8].CPDOMDisplayContext) _DOMImageParts[8].CPDOMDisplayContext = []; var __index = _DOMImageParts[8].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[8].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 3; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[8]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = 0.0; CPDOMDisplayServerInstructions[__index + 4] = 0.0;; + } + else if (_backgroundType == BackgroundVerticalThreePartImage) + { + if (!_DOMImageParts[1].CPDOMDisplayContext) _DOMImageParts[1].CPDOMDisplayContext = []; var __index = _DOMImageParts[1].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[1].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[1]; CPDOMDisplayServerInstructions[__index + 2] = frameSize.width; CPDOMDisplayServerInstructions[__index + 3] = frameSize.height - _DOMImageSizes[0].height - _DOMImageSizes[2].height;; + if (!_DOMImageParts[0].CPDOMDisplayContext) _DOMImageParts[0].CPDOMDisplayContext = []; var __index = _DOMImageParts[0].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[0].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[0]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = 0.0; CPDOMDisplayServerInstructions[__index + 4] = 0.0;; + if (!_DOMImageParts[1].CPDOMDisplayContext) _DOMImageParts[1].CPDOMDisplayContext = []; var __index = _DOMImageParts[1].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[1].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[1]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = 0.0; CPDOMDisplayServerInstructions[__index + 4] = _DOMImageSizes[0].height;; + if (!_DOMImageParts[2].CPDOMDisplayContext) _DOMImageParts[2].CPDOMDisplayContext = []; var __index = _DOMImageParts[2].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[2].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 2; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[2]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = 0.0; CPDOMDisplayServerInstructions[__index + 4] = 0.0;; + } + else if (_backgroundType == BackgroundHorizontalThreePartImage) + { + if (!_DOMImageParts[1].CPDOMDisplayContext) _DOMImageParts[1].CPDOMDisplayContext = []; var __index = _DOMImageParts[1].CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMImageParts[1].CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[1]; CPDOMDisplayServerInstructions[__index + 2] = frameSize.width - _DOMImageSizes[0].width - _DOMImageSizes[2].width; CPDOMDisplayServerInstructions[__index + 3] = frameSize.height;; + if (!_DOMImageParts[0].CPDOMDisplayContext) _DOMImageParts[0].CPDOMDisplayContext = []; var __index = _DOMImageParts[0].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[0].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[0]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = 0.0; CPDOMDisplayServerInstructions[__index + 4] = 0.0;; + if (!_DOMImageParts[1].CPDOMDisplayContext) _DOMImageParts[1].CPDOMDisplayContext = []; var __index = _DOMImageParts[1].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[1].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[1]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = _DOMImageSizes[0].width; CPDOMDisplayServerInstructions[__index + 4] = 0.0;; + if (!_DOMImageParts[2].CPDOMDisplayContext) _DOMImageParts[2].CPDOMDisplayContext = []; var __index = _DOMImageParts[2].CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMImageParts[2].CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 1; CPDOMDisplayServerInstructions[__index + 1] = _DOMImageParts[2]; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = 0.0; CPDOMDisplayServerInstructions[__index + 4] = 0.0;; + } + } +} +}), new objj_method(sel_getUid("backgroundColor"), function $CPView__backgroundColor(self, _cmd) +{ with(self) +{ + return _backgroundColor; +} +}), new objj_method(sel_getUid("convertPoint:fromView:"), function $CPView__convertPoint_fromView_(self, _cmd, aPoint, aView) +{ with(self) +{ + return CGPointApplyAffineTransform(aPoint, _CPViewGetTransform(aView, self)); +} +}), new objj_method(sel_getUid("convertPoint:toView:"), function $CPView__convertPoint_toView_(self, _cmd, aPoint, aView) +{ with(self) +{ + return CGPointApplyAffineTransform(aPoint, _CPViewGetTransform(self, aView)); +} +}), new objj_method(sel_getUid("convertSize:fromView:"), function $CPView__convertSize_fromView_(self, _cmd, aSize, aView) +{ with(self) +{ + return CGSizeApplyAffineTransform(aSize, _CPViewGetTransform(aView, self)); +} +}), new objj_method(sel_getUid("convertSize:toView:"), function $CPView__convertSize_toView_(self, _cmd, aSize, aView) +{ with(self) +{ + return CGSizeApplyAffineTransform(aSize, _CPViewGetTransform(self, aView)); +} +}), new objj_method(sel_getUid("convertRect:fromView:"), function $CPView__convertRect_fromView_(self, _cmd, aRect, aView) +{ with(self) +{ + return CGRectApplyAffineTransform(aRect, _CPViewGetTransform(aView, self)); +} +}), new objj_method(sel_getUid("convertRect:toView:"), function $CPView__convertRect_toView_(self, _cmd, aRect, aView) +{ with(self) +{ + return CGRectApplyAffineTransform(aRect, _CPViewGetTransform(self, aView)); +} +}), new objj_method(sel_getUid("setPostsFrameChangedNotifications:"), function $CPView__setPostsFrameChangedNotifications_(self, _cmd, shouldPostFrameChangedNotifications) +{ with(self) +{ + shouldPostFrameChangedNotifications = !!shouldPostFrameChangedNotifications; + if (_postsFrameChangedNotifications === shouldPostFrameChangedNotifications) + return; + _postsFrameChangedNotifications = shouldPostFrameChangedNotifications; + if (_postsFrameChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewFrameDidChangeNotification, self); +} +}), new objj_method(sel_getUid("postsFrameChangedNotifications"), function $CPView__postsFrameChangedNotifications(self, _cmd) +{ with(self) +{ + return _postsFrameChangedNotifications; +} +}), new objj_method(sel_getUid("setPostsBoundsChangedNotifications:"), function $CPView__setPostsBoundsChangedNotifications_(self, _cmd, shouldPostBoundsChangedNotifications) +{ with(self) +{ + shouldPostBoundsChangedNotifications = !!shouldPostBoundsChangedNotifications; + if (_postsBoundsChangedNotifications === shouldPostBoundsChangedNotifications) + return; + _postsBoundsChangedNotifications = shouldPostBoundsChangedNotifications; + if (_postsBoundsChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewBoundsDidChangeNotification, self); +} +}), new objj_method(sel_getUid("postsBoundsChangedNotifications"), function $CPView__postsBoundsChangedNotifications(self, _cmd) +{ with(self) +{ + return _postsBoundsChangedNotifications; +} +}), new objj_method(sel_getUid("dragImage:at:offset:event:pasteboard:source:slideBack:"), function $CPView__dragImage_at_offset_event_pasteboard_source_slideBack_(self, _cmd, anImage, aLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack) +{ with(self) +{ + objj_msgSend(_window, "dragImage:at:offset:event:pasteboard:source:slideBack:", anImage, objj_msgSend(self, "convertPoint:toView:", aLocation, nil), mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack); +} +}), new objj_method(sel_getUid("dragView:at:offset:event:pasteboard:source:slideBack:"), function $CPView__dragView_at_offset_event_pasteboard_source_slideBack_(self, _cmd, aView, aLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack) +{ with(self) +{ + objj_msgSend(_window, "dragView:at:offset:event:pasteboard:source:slideBack:", aView, objj_msgSend(self, "convertPoint:toView:", aLocation, nil), mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack); +} +}), new objj_method(sel_getUid("registerForDraggedTypes:"), function $CPView__registerForDraggedTypes_(self, _cmd, pasteboardTypes) +{ with(self) +{ + if (!pasteboardTypes || !objj_msgSend(pasteboardTypes, "count")) + return; + var theWindow = objj_msgSend(self, "window"); + objj_msgSend(theWindow, "_noteUnregisteredDraggedTypes:", _registeredDraggedTypes); + objj_msgSend(_registeredDraggedTypes, "addObjectsFromArray:", pasteboardTypes) + objj_msgSend(theWindow, "_noteRegisteredDraggedTypes:", _registeredDraggedTypes); + _registeredDraggedTypesArray = nil; +} +}), new objj_method(sel_getUid("registeredDraggedTypes"), function $CPView__registeredDraggedTypes(self, _cmd) +{ with(self) +{ + if (!_registeredDraggedTypesArray) + _registeredDraggedTypesArray = objj_msgSend(_registeredDraggedTypes, "allObjects"); + return _registeredDraggedTypesArray; +} +}), new objj_method(sel_getUid("unregisterDraggedTypes"), function $CPView__unregisterDraggedTypes(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(self, "window"), "_noteUnregisteredDraggedTypes:", _registeredDraggedTypes); + _registeredDraggedTypes = objj_msgSend(CPSet, "set"); + _registeredDraggedTypesArray = []; +} +}), new objj_method(sel_getUid("drawRect:"), function $CPView__drawRect_(self, _cmd, aRect) +{ with(self) +{ +} +}), new objj_method(sel_getUid("setNeedsDisplay:"), function $CPView__setNeedsDisplay_(self, _cmd, aFlag) +{ with(self) +{ + if (aFlag) + objj_msgSend(self, "setNeedsDisplayInRect:", objj_msgSend(self, "bounds")); + else + { var index = CPDOMDisplayServerViewsContext[objj_msgSend(self, "hash")]; if (typeof index != "undefined") { CPDOMDisplayServerViewsContext[objj_msgSend(self, "hash")]; CPDOMDisplayServerViews[index] = NULL; } }; +} +}), new objj_method(sel_getUid("setNeedsDisplayInRect:"), function $CPView__setNeedsDisplayInRect_(self, _cmd, aRect) +{ with(self) +{ + var hash = objj_msgSend(objj_msgSend(self, "class"), "hash"), + hasCustomDrawRect = CustomDrawRectViews[hash]; + if (!hasCustomDrawRect && typeof hasCustomDrawRect === "undefined") + { + hasCustomDrawRect = objj_msgSend(self, "methodForSelector:", sel_getUid("drawRect:")) != objj_msgSend(CPView, "instanceMethodForSelector:", sel_getUid("drawRect:")); + CustomDrawRectViews[hash] = hasCustomDrawRect; + } + if (!hasCustomDrawRect) + return; + if ((aRect.size.width <= 0.0 || aRect.size.height <= 0.0)) + return; + if (_dirtyRect && !(_dirtyRect.size.width <= 0.0 || _dirtyRect.size.height <= 0.0)) + _dirtyRect = CGRectUnion(aRect, _dirtyRect); + else + _dirtyRect = { origin: { x:aRect.origin.x, y:aRect.origin.y }, size: { width:aRect.size.width, height:aRect.size.height } }; + { var ___hash = objj_msgSend(self, "hash"); if (typeof (CPDOMDisplayServerViewsContext[___hash]) == "undefined") { CPDOMDisplayServerViews[CPDOMDisplayServerViewsCount++] = self; CPDOMDisplayServerViewsContext[___hash] = self; } }; +} +}), new objj_method(sel_getUid("needsDisplay"), function $CPView__needsDisplay(self, _cmd) +{ with(self) +{ + return _dirtyRect && !(_dirtyRect.size.width <= 0.0 || _dirtyRect.size.height <= 0.0); +} +}), new objj_method(sel_getUid("displayIfNeeded"), function $CPView__displayIfNeeded(self, _cmd) +{ with(self) +{ + if (objj_msgSend(self, "needsDisplay")) + objj_msgSend(self, "displayRect:", _dirtyRect); +} +}), new objj_method(sel_getUid("display"), function $CPView__display(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "displayRect:", objj_msgSend(self, "visibleRect")); +} +}), new objj_method(sel_getUid("displayIfNeededInRect:"), function $CPView__displayIfNeededInRect_(self, _cmd, aRect) +{ with(self) +{ + if (objj_msgSend(self, "needsDisplay")) + objj_msgSend(self, "displayRect:", aRect); +} +}), new objj_method(sel_getUid("displayRect:"), function $CPView__displayRect_(self, _cmd, aRect) +{ with(self) +{ + objj_msgSend(self, "viewWillDraw"); + objj_msgSend(self, "displayRectIgnoringOpacity:inContext:", aRect, nil); + _dirtyRect = NULL; +} +}), new objj_method(sel_getUid("displayRectIgnoringOpacity:inContext:"), function $CPView__displayRectIgnoringOpacity_inContext_(self, _cmd, aRect, aGraphicsContext) +{ with(self) +{ + objj_msgSend(self, "lockFocus"); + CGContextClearRect(objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"), aRect); + objj_msgSend(self, "drawRect:", aRect); + objj_msgSend(self, "unlockFocus"); +} +}), new objj_method(sel_getUid("viewWillDraw"), function $CPView__viewWillDraw(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("lockFocus"), function $CPView__lockFocus(self, _cmd) +{ with(self) +{ + if (!_graphicsContext) + { + var graphicsPort = CGBitmapGraphicsContextCreate(); + _DOMContentsElement = graphicsPort.DOMElement; + _DOMContentsElement.style.zIndex = -100; + _DOMContentsElement.style.overflow = "hidden"; + _DOMContentsElement.style.position = "absolute"; + _DOMContentsElement.style.visibility = "visible"; + _DOMContentsElement.width = ROUND((_frame.size.width)); + _DOMContentsElement.height = ROUND((_frame.size.height)); + _DOMContentsElement.style.top = "0px"; + _DOMContentsElement.style.left = "0px"; + _DOMContentsElement.style.width = ROUND((_frame.size.width)) + "px"; + _DOMContentsElement.style.height = ROUND((_frame.size.height)) + "px"; + if (_DOMContentsElement.CPDOMDisplayContext) _DOMContentsElement.CPDOMDisplayContext[0] = -1; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 6; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMContentsElement;; + _graphicsContext = objj_msgSend(CPGraphicsContext, "graphicsContextWithGraphicsPort:flipped:", graphicsPort, YES); + } + objj_msgSend(CPGraphicsContext, "setCurrentContext:", _graphicsContext); + CGContextSaveGState(objj_msgSend(_graphicsContext, "graphicsPort")); +} +}), new objj_method(sel_getUid("unlockFocus"), function $CPView__unlockFocus(self, _cmd) +{ with(self) +{ + CGContextRestoreGState(objj_msgSend(_graphicsContext, "graphicsPort")); + objj_msgSend(CPGraphicsContext, "setCurrentContext:", nil); +} +}), new objj_method(sel_getUid("setNeedsLayout"), function $CPView__setNeedsLayout(self, _cmd) +{ with(self) +{ + _needsLayout = YES; + var hash = objj_msgSend(objj_msgSend(self, "class"), "hash"), + hasCustomLayoutSubviews = CustomLayoutSubviewsViews[hash]; + if (hasCustomLayoutSubviews === undefined) + { + hasCustomLayoutSubviews = objj_msgSend(self, "methodForSelector:", sel_getUid("layoutSubviews")) != objj_msgSend(CPView, "instanceMethodForSelector:", sel_getUid("layoutSubviews")); + CustomLayoutSubviewsViews[hash] = hasCustomLayoutSubviews; + } + if (!hasCustomLayoutSubviews) + return; + if (_needsLayout) + { + { var ___hash = objj_msgSend(self, "hash"); if (typeof (CPDOMDisplayServerViewsContext[___hash]) == "undefined") { CPDOMDisplayServerViews[CPDOMDisplayServerViewsCount++] = self; CPDOMDisplayServerViewsContext[___hash] = self; } }; + } +} +}), new objj_method(sel_getUid("layoutIfNeeded"), function $CPView__layoutIfNeeded(self, _cmd) +{ with(self) +{ + if (_needsLayout) + { + _needsLayout = NO; + objj_msgSend(self, "layoutSubviews"); + } +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPView__layoutSubviews(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("isOpaque"), function $CPView__isOpaque(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("visibleRect"), function $CPView__visibleRect(self, _cmd) +{ with(self) +{ + if (!_superview) + return _bounds; + return CGRectIntersection(objj_msgSend(self, "convertRect:fromView:", objj_msgSend(_superview, "visibleRect"), _superview), _bounds); +} +}), new objj_method(sel_getUid("_enclosingClipView"), function $CPView___enclosingClipView(self, _cmd) +{ with(self) +{ + var superview = _superview, + clipViewClass = objj_msgSend(CPClipView, "class"); + while(superview && !objj_msgSend(superview, "isKindOfClass:", clipViewClass)) + superview = superview._superview; + return superview; +} +}), new objj_method(sel_getUid("scrollPoint:"), function $CPView__scrollPoint_(self, _cmd, aPoint) +{ with(self) +{ + var clipView = objj_msgSend(self, "_enclosingClipView"); + if (!clipView) + return; + objj_msgSend(clipView, "scrollToPoint:", objj_msgSend(self, "convertPoint:toView:", aPoint, clipView)); +} +}), new objj_method(sel_getUid("scrollRectToVisible:"), function $CPView__scrollRectToVisible_(self, _cmd, aRect) +{ with(self) +{ + var visibleRect = objj_msgSend(self, "visibleRect"); + aRect = CGRectIntersection(aRect, _bounds); + if ((aRect.size.width <= 0.0 || aRect.size.height <= 0.0) || CGRectContainsRect(visibleRect, aRect)) + return NO; + var enclosingClipView = objj_msgSend(self, "_enclosingClipView"); + if (!enclosingClipView) + return NO; + var scrollPoint = { x:visibleRect.origin.x, y:visibleRect.origin.y }; + if ((aRect.origin.x) <= (visibleRect.origin.x)) + scrollPoint.x = (aRect.origin.x); + else if ((aRect.origin.x + aRect.size.width) > (visibleRect.origin.x + visibleRect.size.width)) + scrollPoint.x += (aRect.origin.x + aRect.size.width) - (visibleRect.origin.x + visibleRect.size.width); + if ((aRect.origin.y) <= (visibleRect.origin.y)) + scrollPoint.y = CGRectGetMinY(aRect); + else if ((aRect.origin.y + aRect.size.height) > (visibleRect.origin.y + visibleRect.size.height)) + scrollPoint.y += (aRect.origin.y + aRect.size.height) - (visibleRect.origin.y + visibleRect.size.height); + objj_msgSend(enclosingClipView, "scrollToPoint:", CGPointMake(scrollPoint.x, scrollPoint.y)); + return YES; +} +}), new objj_method(sel_getUid("autoscroll:"), function $CPView__autoscroll_(self, _cmd, anEvent) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "superview"), "autoscroll:", anEvent); +} +}), new objj_method(sel_getUid("adjustScroll:"), function $CPView__adjustScroll_(self, _cmd, proposedVisibleRect) +{ with(self) +{ + return proposedVisibleRect; +} +}), new objj_method(sel_getUid("scrollRect:by:"), function $CPView__scrollRect_by_(self, _cmd, aRect, anAmount) +{ with(self) +{ +} +}), new objj_method(sel_getUid("enclosingScrollView"), function $CPView__enclosingScrollView(self, _cmd) +{ with(self) +{ + var superview = _superview, + scrollViewClass = objj_msgSend(CPScrollView, "class"); + while(superview && !objj_msgSend(superview, "isKindOfClass:", scrollViewClass)) + superview = superview._superview; + return superview; +} +}), new objj_method(sel_getUid("scrollClipView:toPoint:"), function $CPView__scrollClipView_toPoint_(self, _cmd, aClipView, aPoint) +{ with(self) +{ + objj_msgSend(aClipView, "scrollToPoint:", aPoint); +} +}), new objj_method(sel_getUid("reflectScrolledClipView:"), function $CPView__reflectScrolledClipView_(self, _cmd, aClipView) +{ with(self) +{ +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPView__initialize(self, _cmd) +{ with(self) +{ + if (self !== objj_msgSend(CPView, "class")) + return; + DOMElementPrototype = document.createElement("div"); + var style = DOMElementPrototype.style; + style.overflow = "hidden"; + style.position = "absolute"; + style.visibility = "visible"; + style.zIndex = 0; + CachedNotificationCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); +} +})]); +} +{ +var the_class = objj_getClass("CPView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("canBecomeKeyView"), function $CPView__canBecomeKeyView(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "acceptsFirstResponder") && !objj_msgSend(self, "isHiddenOrHasHiddenAncestor"); +} +}), new objj_method(sel_getUid("nextKeyView"), function $CPView__nextKeyView(self, _cmd) +{ with(self) +{ + return _nextKeyView; +} +}), new objj_method(sel_getUid("nextValidKeyView"), function $CPView__nextValidKeyView(self, _cmd) +{ with(self) +{ + var result = objj_msgSend(self, "nextKeyView"); + while (result && !objj_msgSend(result, "canBecomeKeyView")) + result = objj_msgSend(result, "nextKeyView"); + return result; +} +}), new objj_method(sel_getUid("previousKeyView"), function $CPView__previousKeyView(self, _cmd) +{ with(self) +{ + return _previousKeyView; +} +}), new objj_method(sel_getUid("previousValidKeyView"), function $CPView__previousValidKeyView(self, _cmd) +{ with(self) +{ + var result = objj_msgSend(self, "previousKeyView"); + while (result && !objj_msgSend(result, "canBecomeKeyView")) + result = objj_msgSend(result, "previousKeyView"); + return result; +} +}), new objj_method(sel_getUid("_setPreviousKeyView:"), function $CPView___setPreviousKeyView_(self, _cmd, previous) +{ with(self) +{ + _previousKeyView = previous; +} +}), new objj_method(sel_getUid("setNextKeyView:"), function $CPView__setNextKeyView_(self, _cmd, next) +{ with(self) +{ + _nextKeyView = next; + objj_msgSend(_nextKeyView, "_setPreviousKeyView:", self); +} +})]); +} +{ +var the_class = objj_getClass("CPView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("setLayer:"), function $CPView__setLayer_(self, _cmd, aLayer) +{ with(self) +{ + if (_layer == aLayer) + return; + if (_layer) + { + _layer._owningView = nil; + _DOMElement.removeChild(_layer._DOMElement); + } + _layer = aLayer; + if (_layer) + { + var bounds = CGRectMakeCopy(objj_msgSend(self, "bounds")); + objj_msgSend(_layer, "_setOwningView:", self); + _layer._DOMElement.style.zIndex = 100; + _DOMElement.appendChild(_layer._DOMElement); + } +} +}), new objj_method(sel_getUid("layer"), function $CPView__layer(self, _cmd) +{ with(self) +{ + return _layer; +} +}), new objj_method(sel_getUid("setWantsLayer:"), function $CPView__setWantsLayer_(self, _cmd, aFlag) +{ with(self) +{ + _wantsLayer = !!aFlag; +} +}), new objj_method(sel_getUid("wantsLayer"), function $CPView__wantsLayer(self, _cmd) +{ with(self) +{ + return _wantsLayer; +} +})]); +} +{ +var the_class = objj_getClass("CPView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("themeState"), function $CPView__themeState(self, _cmd) +{ with(self) +{ + return _themeState; +} +}), new objj_method(sel_getUid("hasThemeState:"), function $CPView__hasThemeState_(self, _cmd, aState) +{ with(self) +{ + return !!(_themeState & ((typeof aState === "string") ? CPThemeState(aState) : aState)); +} +}), new objj_method(sel_getUid("setThemeState:"), function $CPView__setThemeState_(self, _cmd, aState) +{ with(self) +{ + var newState = (typeof aState === "string") ? CPThemeState(aState) : aState; + if (_themeState & newState) + return NO; + _themeState |= newState; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + return YES; +} +}), new objj_method(sel_getUid("unsetThemeState:"), function $CPView__unsetThemeState_(self, _cmd, aState) +{ with(self) +{ + var newState = ((typeof aState === "string") ? CPThemeState(aState) : aState); + if (!(_themeState & newState)) + return NO; + _themeState &= ~newState; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + return YES; +} +}), new objj_method(sel_getUid("_loadThemeAttributes"), function $CPView___loadThemeAttributes(self, _cmd) +{ with(self) +{ + var theClass = objj_msgSend(self, "class"), + attributes = objj_msgSend(theClass, "_themeAttributes"), + count = attributes.length; + if (!count) + return; + var theme = objj_msgSend(self, "theme"), + themeClass = objj_msgSend(theClass, "themeClass"); + _themeAttributes = {}; + while (count--) + { + var attributeName = attributes[count--], + attribute = objj_msgSend(objj_msgSend(_CPThemeAttribute, "alloc"), "initWithName:defaultValue:", attributeName, attributes[count]); + objj_msgSend(attribute, "setParentAttribute:", objj_msgSend(theme, "_attributeWithName:forClass:", attributeName, themeClass)); + _themeAttributes[attributeName] = attribute; + } +} +}), new objj_method(sel_getUid("setTheme:"), function $CPView__setTheme_(self, _cmd, aTheme) +{ with(self) +{ + if (_theme === aTheme) + return; + _theme = aTheme; + objj_msgSend(self, "viewDidChangeTheme"); +} +}), new objj_method(sel_getUid("theme"), function $CPView__theme(self, _cmd) +{ with(self) +{ + return _theme; +} +}), new objj_method(sel_getUid("viewDidChangeTheme"), function $CPView__viewDidChangeTheme(self, _cmd) +{ with(self) +{ + if (!_themeAttributes) + return; + var theme = objj_msgSend(self, "theme"), + themeClass = objj_msgSend(objj_msgSend(self, "class"), "themeClass"); + for (var attributeName in _themeAttributes) + if (_themeAttributes.hasOwnProperty(attributeName)) + objj_msgSend(_themeAttributes[attributeName], "setParentAttribute:", objj_msgSend(theme, "_attributeWithName:forClass:", attributeName, themeClass)); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("_themeAttributeDictionary"), function $CPView___themeAttributeDictionary(self, _cmd) +{ with(self) +{ + var dictionary = objj_msgSend(CPDictionary, "dictionary"); + if (_themeAttributes) + { + var theme = objj_msgSend(self, "theme"); + for (var attributeName in _themeAttributes) + if (_themeAttributes.hasOwnProperty(attributeName)) + objj_msgSend(dictionary, "setObject:forKey:", _themeAttributes[attributeName], attributeName); + } + return dictionary; +} +}), new objj_method(sel_getUid("setValue:forThemeAttribute:inState:"), function $CPView__setValue_forThemeAttribute_inState_(self, _cmd, aValue, aName, aState) +{ with(self) +{ + if (!_themeAttributes || !_themeAttributes[aName]) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, objj_msgSend(self, "className") + " does not contain theme attribute '" + aName + "'"); + var currentValue = objj_msgSend(self, "currentValueForThemeAttribute:", aName); + objj_msgSend(_themeAttributes[aName], "setValue:forState:", aValue, aState); + if (objj_msgSend(self, "currentValueForThemeAttribute:", aName) === currentValue) + return; + objj_msgSend(self, "setNeedsDisplay:", YES); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("setValue:forThemeAttribute:"), function $CPView__setValue_forThemeAttribute_(self, _cmd, aValue, aName) +{ with(self) +{ + if (!_themeAttributes || !_themeAttributes[aName]) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, objj_msgSend(self, "className") + " does not contain theme attribute '" + aName + "'"); + var currentValue = objj_msgSend(self, "currentValueForThemeAttribute:", aName); + objj_msgSend(_themeAttributes[aName], "setValue:", aValue); + if (objj_msgSend(self, "currentValueForThemeAttribute:", aName) === currentValue) + return; + objj_msgSend(self, "setNeedsDisplay:", YES); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("valueForThemeAttribute:inState:"), function $CPView__valueForThemeAttribute_inState_(self, _cmd, aName, aState) +{ with(self) +{ + if (!_themeAttributes || !_themeAttributes[aName]) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, objj_msgSend(self, "className") + " does not contain theme attribute '" + aName + "'"); + return objj_msgSend(_themeAttributes[aName], "valueForState:", aState); +} +}), new objj_method(sel_getUid("valueForThemeAttribute:"), function $CPView__valueForThemeAttribute_(self, _cmd, aName) +{ with(self) +{ + if (!_themeAttributes || !_themeAttributes[aName]) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, objj_msgSend(self, "className") + " does not contain theme attribute '" + aName + "'"); + return objj_msgSend(_themeAttributes[aName], "value"); +} +}), new objj_method(sel_getUid("currentValueForThemeAttribute:"), function $CPView__currentValueForThemeAttribute_(self, _cmd, aName) +{ with(self) +{ + if (!_themeAttributes || !_themeAttributes[aName]) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, objj_msgSend(self, "className") + " does not contain theme attribute '" + aName + "'"); + return objj_msgSend(_themeAttributes[aName], "valueForState:", _themeState); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeClass"), function $CPView__themeClass(self, _cmd) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPView__themeAttributes(self, _cmd) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("_themeAttributes"), function $CPView___themeAttributes(self, _cmd) +{ with(self) +{ + if (!CachedThemeAttributes) + CachedThemeAttributes = {}; + var theClass = objj_msgSend(self, "class"), + CPViewClass = objj_msgSend(CPView, "class"), + attributes = []; + for (; theClass && theClass !== CPViewClass; theClass = objj_msgSend(theClass, "superclass")) + { + var cachedAttributes = CachedThemeAttributes[class_getName(theClass)]; + if (cachedAttributes) + { + attributes = attributes.length ? attributes.concat(cachedAttributes) : attributes; + CachedThemeAttributes[objj_msgSend(self, "className")] = attributes; + break; + } + var attributeDictionary = objj_msgSend(theClass, "themeAttributes"); + if (!attributeDictionary) + continue; + var attributeKeys = objj_msgSend(attributeDictionary, "allKeys"), + attributeCount = attributeKeys.length; + while (attributeCount--) + { + var attributeName = attributeKeys[attributeCount]; + attributes.push(objj_msgSend(attributeDictionary, "objectForKey:", attributeName)); + attributes.push(attributeName); + } + } + return attributes; +} +})]); +} +var CPViewAutoresizingMaskKey = "CPViewAutoresizingMask", + CPViewAutoresizesSubviewsKey = "CPViewAutoresizesSubviews", + CPViewBackgroundColorKey = "CPViewBackgroundColor", + CPViewBoundsKey = "CPViewBoundsKey", + CPViewFrameKey = "CPViewFrameKey", + CPViewHitTestsKey = "CPViewHitTestsKey", + CPViewIsHiddenKey = "CPViewIsHiddenKey", + CPViewOpacityKey = "CPViewOpacityKey", + CPViewSubviewsKey = "CPViewSubviewsKey", + CPViewSuperviewKey = "CPViewSuperviewKey", + CPViewTagKey = "CPViewTagKey", + CPViewThemeStateKey = "CPViewThemeStateKey", + CPViewWindowKey = "CPViewWindowKey", + CPViewNextKeyViewKey = "CPViewNextKeyViewKey", + CPViewPreviousKeyViewKey = "CPViewPreviousKeyViewKey"; +{ +var the_class = objj_getClass("CPView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + _DOMElement = DOMElementPrototype.cloneNode(false); + _frame = objj_msgSend(aCoder, "decodeRectForKey:", CPViewFrameKey); + _bounds = objj_msgSend(aCoder, "decodeRectForKey:", CPViewBoundsKey); + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "initWithCoder:", aCoder); + if (self) + { + _tag = objj_msgSend(aCoder, "containsValueForKey:", CPViewTagKey) ? objj_msgSend(aCoder, "decodeIntForKey:", CPViewTagKey) : -1; + _window = objj_msgSend(aCoder, "decodeObjectForKey:", CPViewWindowKey); + _subviews = objj_msgSend(aCoder, "decodeObjectForKey:", CPViewSubviewsKey) || []; + _superview = objj_msgSend(aCoder, "decodeObjectForKey:", CPViewSuperviewKey); + _registeredDraggedTypes = objj_msgSend(CPSet, "set"); + _registeredDraggedTypesArray = []; + _autoresizingMask = objj_msgSend(aCoder, "decodeIntForKey:", CPViewAutoresizingMaskKey) || CPViewNotSizable; + _autoresizesSubviews = !objj_msgSend(aCoder, "containsValueForKey:", CPViewAutoresizesSubviewsKey) || objj_msgSend(aCoder, "decodeBoolForKey:", CPViewAutoresizesSubviewsKey); + _hitTests = !objj_msgSend(aCoder, "containsValueForKey:", CPViewHitTestsKey) || objj_msgSend(aCoder, "decodeObjectForKey:", CPViewHitTestsKey); + _DOMImageParts = []; + _DOMImageSizes = []; + if (!_DOMElement.CPDOMDisplayContext) _DOMElement.CPDOMDisplayContext = []; var __index = _DOMElement.CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMElement.CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMElement; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = (_frame.origin.x); CPDOMDisplayServerInstructions[__index + 4] = (_frame.origin.y);; + if (!_DOMElement.CPDOMDisplayContext) _DOMElement.CPDOMDisplayContext = []; var __index = _DOMElement.CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMElement.CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMElement; CPDOMDisplayServerInstructions[__index + 2] = (_frame.size.width); CPDOMDisplayServerInstructions[__index + 3] = (_frame.size.height);; + var index = 0, + count = _subviews.length; + for (; index < count; ++index) + { + if (_subviews[index]._DOMElement.CPDOMDisplayContext) _subviews[index]._DOMElement.CPDOMDisplayContext[0] = -1; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 6; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _subviews[index]._DOMElement;; + } + _displayHash = objj_msgSend(self, "hash"); + if (objj_msgSend(aCoder, "containsValueForKey:", CPViewIsHiddenKey)) + objj_msgSend(self, "setHidden:", objj_msgSend(aCoder, "decodeBoolForKey:", CPViewIsHiddenKey)); + else + _isHidden = NO; + if (objj_msgSend(aCoder, "containsValueForKey:", CPViewOpacityKey)) + objj_msgSend(self, "setAlphaValue:", objj_msgSend(aCoder, "decodeIntForKey:", CPViewOpacityKey)); + else + _opacity = 1.0; + objj_msgSend(self, "setBackgroundColor:", objj_msgSend(aCoder, "decodeObjectForKey:", CPViewBackgroundColorKey)); + _theme = objj_msgSend(CPTheme, "defaultTheme"); + _themeState = CPThemeState(objj_msgSend(aCoder, "decodeIntForKey:", CPViewThemeStateKey)); + _themeAttributes = {}; + var theClass = objj_msgSend(self, "class"), + themeClass = objj_msgSend(theClass, "themeClass"), + attributes = objj_msgSend(theClass, "_themeAttributes"), + count = attributes.length; + while (count--) + { + var attributeName = attributes[count--]; + _themeAttributes[attributeName] = CPThemeAttributeDecode(aCoder, attributeName, attributes[count], _theme, themeClass); + } + objj_msgSend(self, "setNeedsDisplay:", YES); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "encodeWithCoder:", aCoder); + if (_tag !== -1) + objj_msgSend(aCoder, "encodeInt:forKey:", _tag, CPViewTagKey); + objj_msgSend(aCoder, "encodeRect:forKey:", _frame, CPViewFrameKey); + objj_msgSend(aCoder, "encodeRect:forKey:", _bounds, CPViewBoundsKey); + if (_window !== nil) + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _window, CPViewWindowKey); + if (_subviews.length > 0) + objj_msgSend(aCoder, "encodeObject:forKey:", _subviews, CPViewSubviewsKey); + if (_superview !== nil) + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _superview, CPViewSuperviewKey); + if (_autoresizingMask !== CPViewNotSizable) + objj_msgSend(aCoder, "encodeInt:forKey:", _autoresizingMask, CPViewAutoresizingMaskKey); + if (!_autoresizesSubviews) + objj_msgSend(aCoder, "encodeBool:forKey:", _autoresizesSubviews, CPViewAutoresizesSubviewsKey); + if (_backgroundColor !== nil) + objj_msgSend(aCoder, "encodeObject:forKey:", _backgroundColor, CPViewBackgroundColorKey); + if (_hitTests !== YES) + objj_msgSend(aCoder, "encodeBool:forKey:", _hitTests, CPViewHitTestsKey); + if (_opacity !== 1.0) + objj_msgSend(aCoder, "encodeFloat:forKey:", _opacity, CPViewOpacityKey); + if (_isHidden) + objj_msgSend(aCoder, "encodeBool:forKey:", _isHidden, CPViewIsHiddenKey); + var nextKeyView = objj_msgSend(self, "nextKeyView"); + if (nextKeyView !== nil) + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", nextKeyView, CPViewNextKeyViewKey); + var previousKeyView = objj_msgSend(self, "previousKeyView"); + if (previousKeyView !== nil) + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", previousKeyView, CPViewPreviousKeyViewKey); + objj_msgSend(aCoder, "encodeInt:forKey:", CPThemeStateName(_themeState), CPViewThemeStateKey); + for (var attributeName in _themeAttributes) + if (_themeAttributes.hasOwnProperty(attributeName)) + CPThemeAttributeEncode(aCoder, _themeAttributes[attributeName]); +} +})]); +} +var _CPViewFullScreenModeStateMake = function(aView) +{ + var superview = aView._superview; + return { autoresizingMask:aView._autoresizingMask, frame:CGRectMakeCopy(aView._frame), index:(superview ? objj_msgSend(superview._subviews, "indexOfObjectIdenticalTo:", aView) : 0), superview:superview }; +} +var _CPViewGetTransform = function( fromView, toView) +{ + var transform = CGAffineTransformMakeIdentity(), + sameWindow = YES, + fromWindow = nil, + toWindow = nil; + if (fromView) + { + var view = fromView; + while (view && view != toView) + { + var frame = view._frame; + transform.tx += (frame.origin.x); + transform.ty += (frame.origin.y); + if (view._boundsTransform) + { + var tx = transform.tx * view._boundsTransform.a + transform.ty * view._boundsTransform.c + view._boundsTransform.tx;transform.ty = transform.tx * view._boundsTransform.b + transform.ty * view._boundsTransform.d + view._boundsTransform.ty;transform.tx = tx;var a = transform.a * view._boundsTransform.a + transform.b * view._boundsTransform.c, b = transform.a * view._boundsTransform.b + transform.b * view._boundsTransform.d, c = transform.c * view._boundsTransform.a + transform.d * view._boundsTransform.c;transform.d = transform.c * view._boundsTransform.b + transform.d * view._boundsTransform.d;transform.a = a;transform.b = b;transform.c = c;; + } + view = view._superview; + } + if (view === toView) + return transform; + else if (fromView && toView) + { + fromWindow = objj_msgSend(fromView, "window"); + toWindow = objj_msgSend(toView, "window"); + if (fromWindow && toWindow && fromWindow !== toWindow) + { + sameWindow = NO; + var frame = objj_msgSend(fromWindow, "frame"); + transform.tx += (frame.origin.x); + transform.ty += (frame.origin.y); + } + } + } + var view = toView; + while (view) + { + var frame = view._frame; + transform.tx -= (frame.origin.x); + transform.ty -= (frame.origin.y); + if (view._boundsTransform) + { + var tx = transform.tx * view._inverseBoundsTransform.a + transform.ty * view._inverseBoundsTransform.c + view._inverseBoundsTransform.tx;transform.ty = transform.tx * view._inverseBoundsTransform.b + transform.ty * view._inverseBoundsTransform.d + view._inverseBoundsTransform.ty;transform.tx = tx;var a = transform.a * view._inverseBoundsTransform.a + transform.b * view._inverseBoundsTransform.c, b = transform.a * view._inverseBoundsTransform.b + transform.b * view._inverseBoundsTransform.d, c = transform.c * view._inverseBoundsTransform.a + transform.d * view._inverseBoundsTransform.c;transform.d = transform.c * view._inverseBoundsTransform.b + transform.d * view._inverseBoundsTransform.d;transform.a = a;transform.b = b;transform.c = c;; + } + view = view._superview; + } + if (!sameWindow) + { + var frame = objj_msgSend(toWindow, "frame"); + transform.tx -= (frame.origin.x); + transform.ty -= (frame.origin.y); + } + return transform; +} + +p;11;CPWebView.jI;15;AppKit/CPView.jc;17519; +CPWebViewProgressStartedNotification = "CPWebViewProgressStartedNotification"; +CPWebViewProgressFinishedNotification = "CPWebViewProgressFinishedNotification"; +CPWebViewScrollAppKit = 1; +CPWebViewScrollNative = 2; +{var the_class = objj_allocateClassPair(CPView, "CPWebView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_scrollView"), new objj_ivar("_frameView"), new objj_ivar("_iframe"), new objj_ivar("_mainFrameURL"), new objj_ivar("_backwardStack"), new objj_ivar("_forwardStack"), new objj_ivar("_ignoreLoadStart"), new objj_ivar("_ignoreLoadEnd"), new objj_ivar("_downloadDelegate"), new objj_ivar("_frameLoadDelegate"), new objj_ivar("_policyDelegate"), new objj_ivar("_resourceLoadDelegate"), new objj_ivar("_UIDelegate"), new objj_ivar("_wso"), new objj_ivar("_url"), new objj_ivar("_html"), new objj_ivar("_loadCallback"), new objj_ivar("_scrollMode"), new objj_ivar("_scrollSize")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:frameName:groupName:"), function $CPWebView__initWithFrame_frameName_groupName_(self, _cmd, frameRect, frameName, groupName) +{ with(self) +{ + if (self = objj_msgSend(self, "initWithFrame:", frameRect)) + { + _iframe.name = frameName; + } + return self +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPWebView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame)) + { + _mainFrameURL = nil; + _backwardStack = []; + _forwardStack = []; + _scrollMode = CPWebViewScrollNative; + objj_msgSend(self, "_initDOMWithFrame:", aFrame); + } + return self; +} +}), new objj_method(sel_getUid("_initDOMWithFrame:"), function $CPWebView___initDOMWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + _ignoreLoadStart = YES; + _ignoreLoadEnd = YES; + _iframe = document.createElement("iframe"); + _iframe.name = "iframe_" + Math.floor(Math.random()*10000); + _iframe.style.width = "100%"; + _iframe.style.height = "100%"; + _iframe.style.borderWidth = "0px"; + objj_msgSend(self, "setDrawsBackground:", YES); + _loadCallback = function() { + if (!_ignoreLoadStart) + { + objj_msgSend(self, "_startedLoading"); + if (_mainFrameURL) + objj_msgSend(_backwardStack, "addObject:", _mainFrameURL); + _mainFrameURL = _iframe.src; + _mainFrameURL = _iframe.src; + objj_msgSend(_forwardStack, "removeAllObjects"); + } + else + _ignoreLoadStart = NO; + if (!_ignoreLoadEnd) + { + objj_msgSend(self, "_finishedLoading"); + } + else + _ignoreLoadEnd = NO; + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + if (_iframe.addEventListener) + _iframe.addEventListener("load", _loadCallback, false); + else if (_iframe.attachEvent) + _iframe.attachEvent("onload", _loadCallback); + _frameView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", objj_msgSend(self, "bounds")); + _scrollView = objj_msgSend(objj_msgSend(CPScrollView, "alloc"), "initWithFrame:", objj_msgSend(self, "bounds")); + objj_msgSend(_scrollView, "setAutoresizingMask:", CPViewWidthSizable|CPViewHeightSizable); + objj_msgSend(_scrollView, "setDocumentView:", _frameView); + _frameView._DOMElement.appendChild(_iframe); + objj_msgSend(self, "_setScrollMode:", _scrollMode); + objj_msgSend(self, "addSubview:", _scrollView); +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPWebView__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setFrameSize:", aSize); + objj_msgSend(self, "_resizeWebFrame"); +} +}), new objj_method(sel_getUid("_resizeWebFrame"), function $CPWebView___resizeWebFrame(self, _cmd) +{ with(self) +{ + if (_scrollMode === CPWebViewScrollAppKit) + { + if (_scrollSize) + { + objj_msgSend(_frameView, "setFrameSize:", _scrollSize); + } + else + { + objj_msgSend(_frameView, "setFrameSize:", objj_msgSend(_scrollView, "bounds").size); + var win = null; + try { win = objj_msgSend(self, "DOMWindow"); } catch (e) {} + if (win && win.document) + { + var width = win.document.body.scrollWidth, + height = win.document.body.scrollHeight; + _iframe.setAttribute("width", width); + _iframe.setAttribute("height", height); + objj_msgSend(_frameView, "setFrameSize:", CGSizeMake(width, height)); + } + else + { + CPLog.warn("using default size 800*1600"); + objj_msgSend(_frameView, "setFrameSize:", CGSizeMake(800, 1600)); + } + } + } +} +}), new objj_method(sel_getUid("setScrollMode:"), function $CPWebView__setScrollMode_(self, _cmd, aScrollMode) +{ with(self) +{ + if (_scrollMode == aScrollMode) + return; + objj_msgSend(self, "_setScrollMode:", aScrollMode); +} +}), new objj_method(sel_getUid("_setScrollMode:"), function $CPWebView___setScrollMode_(self, _cmd, aScrollMode) +{ with(self) +{ + _scrollMode = aScrollMode; + _ignoreLoadStart = YES; + _ignoreLoadEnd = YES; + var parent = _iframe.parentNode; + parent.removeChild(_iframe); + if (_scrollMode === CPWebViewScrollAppKit) + { + objj_msgSend(_scrollView, "setHasHorizontalScroller:", YES); + objj_msgSend(_scrollView, "setHasVerticalScroller:", YES); + _iframe.setAttribute("scrolling", "no"); + } + else + { + objj_msgSend(_scrollView, "setHasHorizontalScroller:", NO); + objj_msgSend(_scrollView, "setHasVerticalScroller:", NO); + _iframe.setAttribute("scrolling", "auto"); + objj_msgSend(_frameView, "setFrameSize:", objj_msgSend(_scrollView, "bounds").size); + } + parent.appendChild(_iframe); +} +}), new objj_method(sel_getUid("loadHTMLString:"), function $CPWebView__loadHTMLString_(self, _cmd, aString) +{ with(self) +{ + objj_msgSend(self, "loadHTMLString:baseURL:", aString, nil); +} +}), new objj_method(sel_getUid("loadHTMLString:baseURL:"), function $CPWebView__loadHTMLString_baseURL_(self, _cmd, aString, URL) +{ with(self) +{ + objj_msgSend(self, "_setScrollMode:", CPWebViewScrollAppKit); + objj_msgSend(self, "_startedLoading"); + _ignoreLoadStart = YES; + _ignoreLoadEnd = NO; + _url = null; + _html = aString; + objj_msgSend(self, "_load"); +} +}), new objj_method(sel_getUid("_loadMainFrameURL"), function $CPWebView___loadMainFrameURL(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "_setScrollMode:", CPWebViewScrollNative); + objj_msgSend(self, "_startedLoading"); + _ignoreLoadStart = YES; + _ignoreLoadEnd = NO; + _url = _mainFrameURL; + _html = null; + objj_msgSend(self, "_load"); +} +}), new objj_method(sel_getUid("_load"), function $CPWebView___load(self, _cmd) +{ with(self) +{ + if (_url) + { + _iframe.src = _url; + } + else if (_html) + { + _iframe.src = ""; + window.setTimeout(function() { + var win = objj_msgSend(self, "DOMWindow"); + win.document.write(_html); + window.setTimeout(_loadCallback, 1); + }, 0); + } +} +}), new objj_method(sel_getUid("_startedLoading"), function $CPWebView___startedLoading(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPWebViewProgressStartedNotification, self); + if (objj_msgSend(_frameLoadDelegate, "respondsToSelector:", sel_getUid("webView:didStartProvisionalLoadForFrame:"))) + objj_msgSend(_frameLoadDelegate, "webView:didStartProvisionalLoadForFrame:", self, nil); +} +}), new objj_method(sel_getUid("_finishedLoading"), function $CPWebView___finishedLoading(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "_resizeWebFrame"); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPWebViewProgressFinishedNotification, self); + if (objj_msgSend(_frameLoadDelegate, "respondsToSelector:", sel_getUid("webView:didFinishLoadForFrame:"))) + objj_msgSend(_frameLoadDelegate, "webView:didFinishLoadForFrame:", self, nil); +} +}), new objj_method(sel_getUid("mainFrameURL"), function $CPWebView__mainFrameURL(self, _cmd) +{ with(self) +{ + return _mainFrameURL; +} +}), new objj_method(sel_getUid("setMainFrameURL:"), function $CPWebView__setMainFrameURL_(self, _cmd, URLString) +{ with(self) +{ + if (_mainFrameURL) + objj_msgSend(_backwardStack, "addObject:", _mainFrameURL); + _mainFrameURL = URLString; + objj_msgSend(_forwardStack, "removeAllObjects"); + objj_msgSend(self, "_loadMainFrameURL"); +} +}), new objj_method(sel_getUid("goBack"), function $CPWebView__goBack(self, _cmd) +{ with(self) +{ + if (_backwardStack.length > 0) + { + if (_mainFrameURL) + objj_msgSend(_forwardStack, "addObject:", _mainFrameURL); + _mainFrameURL = objj_msgSend(_backwardStack, "lastObject"); + objj_msgSend(_backwardStack, "removeLastObject"); + objj_msgSend(self, "_loadMainFrameURL"); + return YES; + } + return NO; +} +}), new objj_method(sel_getUid("goForward"), function $CPWebView__goForward(self, _cmd) +{ with(self) +{ + if (_forwardStack.length > 0) + { + if (_mainFrameURL) + objj_msgSend(_backwardStack, "addObject:", _mainFrameURL); + _mainFrameURL = objj_msgSend(_forwardStack, "lastObject"); + objj_msgSend(_forwardStack, "removeLastObject"); + objj_msgSend(self, "_loadMainFrameURL"); + return YES; + } + return NO; +} +}), new objj_method(sel_getUid("canGoBack"), function $CPWebView__canGoBack(self, _cmd) +{ with(self) +{ + return (_backwardStack.length > 0); +} +}), new objj_method(sel_getUid("canGoForward"), function $CPWebView__canGoForward(self, _cmd) +{ with(self) +{ + return (_forwardStack.length > 0); +} +}), new objj_method(sel_getUid("backForwardList"), function $CPWebView__backForwardList(self, _cmd) +{ with(self) +{ + return { back: _backwardStack, forward: _forwardStack }; +} +}), new objj_method(sel_getUid("close"), function $CPWebView__close(self, _cmd) +{ with(self) +{ + _iframe.parentNode.removeChild(_iframe); +} +}), new objj_method(sel_getUid("DOMWindow"), function $CPWebView__DOMWindow(self, _cmd) +{ with(self) +{ + return (_iframe.contentDocument && _iframe.contentDocument.defaultView) || _iframe.contentWindow; +} +}), new objj_method(sel_getUid("windowScriptObject"), function $CPWebView__windowScriptObject(self, _cmd) +{ with(self) +{ + var win = objj_msgSend(self, "DOMWindow"); + if (!_wso || win != objj_msgSend(_wso, "window")) + { + if (win) + _wso = objj_msgSend(objj_msgSend(CPWebScriptObject, "alloc"), "initWithWindow:", win); + else + _wso = nil; + } + return _wso; +} +}), new objj_method(sel_getUid("stringByEvaluatingJavaScriptFromString:"), function $CPWebView__stringByEvaluatingJavaScriptFromString_(self, _cmd, script) +{ with(self) +{ + var result = objj_msgSend(self, "objectByEvaluatingJavaScriptFromString:", script); + return result ? String(result) : nil; +} +}), new objj_method(sel_getUid("objectByEvaluatingJavaScriptFromString:"), function $CPWebView__objectByEvaluatingJavaScriptFromString_(self, _cmd, script) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "windowScriptObject"), "evaluateWebScript:", script); +} +}), new objj_method(sel_getUid("computedStyleForElement:pseudoElement:"), function $CPWebView__computedStyleForElement_pseudoElement_(self, _cmd, element, pseudoElement) +{ with(self) +{ + var win = objj_msgSend(objj_msgSend(self, "windowScriptObject"), "window"); + if (win) + { + return win.document.defaultView.getComputedStyle(element, pseudoElement); + } + return nil; +} +}), new objj_method(sel_getUid("drawsBackground"), function $CPWebView__drawsBackground(self, _cmd) +{ with(self) +{ + return _iframe.style.backgroundColor != ""; +} +}), new objj_method(sel_getUid("setDrawsBackground:"), function $CPWebView__setDrawsBackground_(self, _cmd, drawsBackround) +{ with(self) +{ + _iframe.style.backgroundColor = drawsBackround ? "white" : ""; +} +}), new objj_method(sel_getUid("takeStringURLFrom:"), function $CPWebView__takeStringURLFrom_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "setMainFrameURL:", objj_msgSend(sender, "stringValue")); +} +}), new objj_method(sel_getUid("goBack:"), function $CPWebView__goBack_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "goBack"); +} +}), new objj_method(sel_getUid("goForward:"), function $CPWebView__goForward_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "goForward"); +} +}), new objj_method(sel_getUid("stopLoading:"), function $CPWebView__stopLoading_(self, _cmd, sender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("reload:"), function $CPWebView__reload_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "_loadMainFrameURL"); +} +}), new objj_method(sel_getUid("print:"), function $CPWebView__print_(self, _cmd, sender) +{ with(self) +{ + try + { + objj_msgSend(self, "DOMWindow").print(); + } + catch (e) + { + alert('Please click the webpage and select "Print" from the "File" menu'); + } +} +}), new objj_method(sel_getUid("downloadDelegate"), function $CPWebView__downloadDelegate(self, _cmd) +{ with(self) +{ + return _downloadDelegate; +} +}), new objj_method(sel_getUid("setDownloadDelegate:"), function $CPWebView__setDownloadDelegate_(self, _cmd, anObject) +{ with(self) +{ + _downloadDelegate = anObject; +} +}), new objj_method(sel_getUid("frameLoadDelegate"), function $CPWebView__frameLoadDelegate(self, _cmd) +{ with(self) +{ + return _frameLoadDelegate; +} +}), new objj_method(sel_getUid("setFrameLoadDelegate:"), function $CPWebView__setFrameLoadDelegate_(self, _cmd, anObject) +{ with(self) +{ + _frameLoadDelegate = anObject; +} +}), new objj_method(sel_getUid("policyDelegate"), function $CPWebView__policyDelegate(self, _cmd) +{ with(self) +{ + return _policyDelegate; +} +}), new objj_method(sel_getUid("setPolicyDelegate:"), function $CPWebView__setPolicyDelegate_(self, _cmd, anObject) +{ with(self) +{ + _policyDelegate = anObject; +} +}), new objj_method(sel_getUid("resourceLoadDelegate"), function $CPWebView__resourceLoadDelegate(self, _cmd) +{ with(self) +{ + return _resourceLoadDelegate; +} +}), new objj_method(sel_getUid("setResourceLoadDelegate:"), function $CPWebView__setResourceLoadDelegate_(self, _cmd, anObject) +{ with(self) +{ + _resourceLoadDelegate = anObject; +} +}), new objj_method(sel_getUid("UIDelegate"), function $CPWebView__UIDelegate(self, _cmd) +{ with(self) +{ + return _UIDelegate; +} +}), new objj_method(sel_getUid("setUIDelegate:"), function $CPWebView__setUIDelegate_(self, _cmd, anObject) +{ with(self) +{ + _UIDelegate = anObject; +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPWebScriptObject"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_window")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithWindow:"), function $CPWebScriptObject__initWithWindow_(self, _cmd, aWindow) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init")) + { + _window = aWindow; + } + return self; +} +}), new objj_method(sel_getUid("callWebScriptMethod:withArguments:"), function $CPWebScriptObject__callWebScriptMethod_withArguments_(self, _cmd, methodName, args) +{ with(self) +{ + if (typeof _window[methodName] == "function") + { + try { + return _window[methodName].apply(args); + } catch (e) { + } + } + return undefined; +} +}), new objj_method(sel_getUid("evaluateWebScript:"), function $CPWebScriptObject__evaluateWebScript_(self, _cmd, script) +{ with(self) +{ + try { + return _window.eval(script); + } catch (e) { + } + return undefined; +} +}), new objj_method(sel_getUid("window"), function $CPWebScriptObject__window(self, _cmd) +{ with(self) +{ + return _window; +} +})]); +} +{ +var the_class = objj_getClass("CPWebView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPWebView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPWebView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder); + if (self) + { + _mainFrameURL = nil; + _backwardStack = []; + _forwardStack = []; + _scrollMode = CPWebViewScrollNative; + objj_msgSend(self, "_initDOMWithFrame:", objj_msgSend(self, "frame")); + objj_msgSend(self, "setBackgroundColor:", objj_msgSend(CPColor, "whiteColor")); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPWebView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + var actualSubviews = _subviews; + _subviews = []; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + _subviews = actualSubviews; +} +})]); +} + +p;10;CPWindow.jI;25;Foundation/CPCountedSet.jI;33;Foundation/CPNotificationCenter.jI;26;Foundation/CPUndoManager.ji;12;CGGeometry.ji;13;CPAnimation.ji;13;CPResponder.jc;58210; +CPBorderlessWindowMask = 0; +CPTitledWindowMask = 1 << 0; +CPClosableWindowMask = 1 << 1; +CPMiniaturizableWindowMask = 1 << 2; +CPResizableWindowMask = 1 << 3; +CPTexturedBackgroundWindowMask = 1 << 8; +CPBorderlessBridgeWindowMask = 1 << 20; +CPHUDBackgroundWindowMask = 1 << 21; +CPWindowNotSizable = 0; +CPWindowMinXMargin = 1; +CPWindowWidthSizable = 2; +CPWindowMaxXMargin = 4; +CPWindowMinYMargin = 8; +CPWindowHeightSizable = 16; +CPWindowMaxYMargin = 32; +CPBackgroundWindowLevel = -1; +CPNormalWindowLevel = 4; +CPFloatingWindowLevel = 5; +CPSubmenuWindowLevel = 6; +CPTornOffMenuWindowLevel = 6; +CPMainMenuWindowLevel = 8; +CPStatusWindowLevel = 9; +CPModalPanelWindowLevel = 10; +CPPopUpMenuWindowLevel = 11; +CPDraggingWindowLevel = 12; +CPScreenSaverWindowLevel = 13; +CPWindowOut = 0; +CPWindowAbove = 1; +CPWindowBelow = 2; +CPWindowWillCloseNotification = "CPWindowWillCloseNotification"; +CPWindowDidBecomeMainNotification = "CPWindowDidBecomeMainNotification"; +CPWindowDidResignMainNotification = "CPWindowDidResignMainNotification"; +CPWindowDidMoveNotification = "CPWindowDidMoveNotification"; +var SHADOW_MARGIN_LEFT = 20.0, + SHADOW_MARGIN_RIGHT = 19.0, + SHADOW_MARGIN_TOP = 10.0, + SHADOW_MARGIN_BOTTOM = 10.0, + SHADOW_DISTANCE = 5.0, + _CPWindowShadowColor = nil; +var CPWindowSaveImage = nil, + CPWindowSavingImage = nil; +{var the_class = objj_allocateClassPair(CPResponder, "CPWindow"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_windowNumber"), new objj_ivar("_styleMask"), new objj_ivar("_frame"), new objj_ivar("_level"), new objj_ivar("_isVisible"), new objj_ivar("_isAnimating"), new objj_ivar("_hasShadow"), new objj_ivar("_isMovableByWindowBackground"), new objj_ivar("_isDocumentEdited"), new objj_ivar("_isDocumentSaving"), new objj_ivar("_shadowView"), new objj_ivar("_windowView"), new objj_ivar("_contentView"), new objj_ivar("_toolbarView"), new objj_ivar("_mouseOverView"), new objj_ivar("_leftMouseDownView"), new objj_ivar("_rightMouseDownView"), new objj_ivar("_toolbar"), new objj_ivar("_firstResponder"), new objj_ivar("_initialFirstResponder"), new objj_ivar("_delegate"), new objj_ivar("_title"), new objj_ivar("_acceptsMouseMovedEvents"), new objj_ivar("_ignoresMouseEvents"), new objj_ivar("_windowController"), new objj_ivar("_minSize"), new objj_ivar("_maxSize"), new objj_ivar("_undoManager"), new objj_ivar("_representedURL"), new objj_ivar("_registeredDraggedTypes"), new objj_ivar("_registeredDraggedTypesArray"), new objj_ivar("_inclusiveRegisteredDraggedTypes"), new objj_ivar("_defaultButton"), new objj_ivar("_defaultButtonEnabled"), new objj_ivar("_autorecalculatesKeyViewLoop"), new objj_ivar("_keyViewLoopIsDirty"), new objj_ivar("_DOMElement"), new objj_ivar("_bridge"), new objj_ivar("_autoresizingMask"), new objj_ivar("_delegateRespondsToWindowWillReturnUndoManagerSelector"), new objj_ivar("_isFullBridge"), new objj_ivar("_fullBridgeSession")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithContentRect:styleMask:"), function $CPWindow__initWithContentRect_styleMask_(self, _cmd, aContentRect, aStyleMask) +{ with(self) +{ + return objj_msgSend(self, "initWithContentRect:styleMask:bridge:", aContentRect, aStyleMask, objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge")); +} +}), new objj_method(sel_getUid("initWithContentRect:styleMask:bridge:"), function $CPWindow__initWithContentRect_styleMask_bridge_(self, _cmd, aContentRect, aStyleMask, aBridge) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "init"); + if (self) + { + _isFullBridge = NO; + _registeredDraggedTypes = objj_msgSend(CPSet, "set"); + _registeredDraggedTypesArray = []; + _windowNumber = objj_msgSend(CPApp._windows, "count"); + CPApp._windows[_windowNumber] = self; + _styleMask = aStyleMask; + _level = CPNormalWindowLevel; + _minSize = CGSizeMake(0.0, 0.0); + _maxSize = CGSizeMake(1000000.0, 1000000.0); + var windowViewClass = objj_msgSend(objj_msgSend(self, "class"), "_windowViewClassForStyleMask:", aStyleMask); + _frame = objj_msgSend(windowViewClass, "frameRectForContentRect:", aContentRect); + _windowView = objj_msgSend(objj_msgSend(windowViewClass, "alloc"), "initWithFrame:styleMask:", CGRectMake(0.0, 0.0, CGRectGetWidth(_frame), CGRectGetHeight(_frame)), aStyleMask); + objj_msgSend(_windowView, "_setWindow:", self); + objj_msgSend(_windowView, "setNextResponder:", self); + objj_msgSend(self, "setMovableByWindowBackground:", aStyleMask & CPHUDBackgroundWindowMask); + objj_msgSend(self, "setContentView:", objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMakeZero())); + _firstResponder = self; + _DOMElement = document.createElement("div"); + _DOMElement.style.position = "absolute"; + _DOMElement.style.visibility = "visible"; + _DOMElement.style.zIndex = 0; + if (!_DOMElement.CPDOMDisplayContext) _DOMElement.CPDOMDisplayContext = []; var __index = _DOMElement.CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMElement.CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMElement; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = (_frame.origin.x); CPDOMDisplayServerInstructions[__index + 4] = (_frame.origin.y);; + if (!_DOMElement.CPDOMDisplayContext) _DOMElement.CPDOMDisplayContext = []; var __index = _DOMElement.CPDOMDisplayContext[4]; if (!(__index >= 0)) { __index = _DOMElement.CPDOMDisplayContext[4] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 4; } CPDOMDisplayServerInstructions[__index] = 4; CPDOMDisplayServerInstructions[__index + 1] = _DOMElement; CPDOMDisplayServerInstructions[__index + 2] = 1; CPDOMDisplayServerInstructions[__index + 3] = 1;; + if (_windowView._DOMElement.CPDOMDisplayContext) _windowView._DOMElement.CPDOMDisplayContext[0] = -1; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 6; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _windowView._DOMElement;; + objj_msgSend(self, "setBridge:", aBridge); + objj_msgSend(self, "setNextResponder:", CPApp); + objj_msgSend(self, "setHasShadow:", aStyleMask !== CPBorderlessWindowMask); + if (aStyleMask & CPBorderlessBridgeWindowMask) + objj_msgSend(self, "setFullBridge:", YES); + _defaultButtonEnabled = YES; + _keyViewLoopIsDirty = YES; + } + return self; +} +}), new objj_method(sel_getUid("awakeFromCib"), function $CPWindow__awakeFromCib(self, _cmd) +{ with(self) +{ + if (_initialFirstResponder) + objj_msgSend(self, "makeFirstResponder:", _initialFirstResponder); + _keyViewLoopIsDirty = !objj_msgSend(self, "_hasKeyViewLoop"); +} +}), new objj_method(sel_getUid("_setWindowView:"), function $CPWindow___setWindowView_(self, _cmd, aWindowView) +{ with(self) +{ + if (_windowView === aWindowView) + return; + var oldWindowView = _windowView; + _windowView = aWindowView; + if (oldWindowView) + { + objj_msgSend(oldWindowView, "_setWindow:", nil); + objj_msgSend(oldWindowView, "noteToolbarChanged"); + CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 8; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = oldWindowView._DOMElement;; + } + if (_windowView) + { + if (_windowView._DOMElement.CPDOMDisplayContext) _windowView._DOMElement.CPDOMDisplayContext[0] = -1; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 6; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _windowView._DOMElement;; + var contentRect = objj_msgSend(_contentView, "convertRect:toView:", objj_msgSend(_contentView, "bounds"), nil); + contentRect.origin = objj_msgSend(self, "convertBaseToBridge:", contentRect.origin); + objj_msgSend(_windowView, "_setWindow:", self); + objj_msgSend(_windowView, "setNextResponder:", self); + objj_msgSend(_windowView, "addSubview:", _contentView); + objj_msgSend(_windowView, "setTitle:", _title); + objj_msgSend(_windowView, "noteToolbarChanged"); + objj_msgSend(self, "setFrame:", objj_msgSend(self, "frameRectForContentRect:", contentRect)); + } +} +}), new objj_method(sel_getUid("setFullBridge:"), function $CPWindow__setFullBridge_(self, _cmd, shouldBeFullBridge) +{ with(self) +{ + shouldBeFullBridge = !!shouldBeFullBridge; + if (_isFullBridge === shouldBeFullBridge) + return; + _isFullBridge = shouldBeFullBridge; + if (_isFullBridge) + { + _fullBridgeSession = _CPWindowFullBridgeSessionMake(_windowView, objj_msgSend(self, "contentRectForFrameRect:", objj_msgSend(self, "frame")), objj_msgSend(self, "hasShadow"), objj_msgSend(self, "level")); + var fullBridgeWindowViewClass = objj_msgSend(objj_msgSend(self, "class"), "_windowViewClassForFullBridgeStyleMask:", _styleMask), + windowView = objj_msgSend(objj_msgSend(fullBridgeWindowViewClass, "alloc"), "initWithFrame:styleMask:", CGRectMakeZero(), _styleMask); + objj_msgSend(self, "_setWindowView:", windowView); + objj_msgSend(self, "setLevel:", CPBackgroundWindowLevel); + objj_msgSend(self, "setHasShadow:", NO); + objj_msgSend(self, "setAutoresizingMask:", CPWindowWidthSizable | CPWindowHeightSizable); + objj_msgSend(self, "setFrame:", objj_msgSend(_bridge, "visibleFrame")); + } + else + { + var windowView = _fullBridgeSession.windowView; + objj_msgSend(self, "_setWindowView:", windowView); + objj_msgSend(self, "setLevel:", _fullBridgeSession.level); + objj_msgSend(self, "setHasShadow:", _fullBridgeSession.hasShadow); + objj_msgSend(self, "setAutoresizingMask:", CPWindowNotSizable); + objj_msgSend(self, "setFrame:", objj_msgSend(windowView, "frameRectForContentRect:", _fullBridgeSession.contentRect)); + } +} +}), new objj_method(sel_getUid("isFullBridge"), function $CPWindow__isFullBridge(self, _cmd) +{ with(self) +{ + return _isFullBridge; +} +}), new objj_method(sel_getUid("styleMask"), function $CPWindow__styleMask(self, _cmd) +{ with(self) +{ + return _styleMask; +} +}), new objj_method(sel_getUid("contentRectForFrameRect:"), function $CPWindow__contentRectForFrameRect_(self, _cmd, aFrame) +{ with(self) +{ + return objj_msgSend(_windowView, "contentRectForFrameRect:", aFrame); +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $CPWindow__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + return objj_msgSend(_windowView, "frameRectForContentRect:", aContentRect); +} +}), new objj_method(sel_getUid("frame"), function $CPWindow__frame(self, _cmd) +{ with(self) +{ + return { origin: { x:_frame.origin.x, y:_frame.origin.y }, size: { width:_frame.size.width, height:_frame.size.height } }; +} +}), new objj_method(sel_getUid("setFrame:display:animate:"), function $CPWindow__setFrame_display_animate_(self, _cmd, aFrame, shouldDisplay, shouldAnimate) +{ with(self) +{ + if (shouldAnimate) + { + var animation = objj_msgSend(objj_msgSend(_CPWindowFrameAnimation, "alloc"), "initWithWindow:targetFrame:", self, aFrame); + objj_msgSend(animation, "startAnimation"); + } + else + { + objj_msgSend(self, "setFrameOrigin:", aFrame.origin); + objj_msgSend(self, "setFrameSize:", aFrame.size); + } +} +}), new objj_method(sel_getUid("setFrame:"), function $CPWindow__setFrame_(self, _cmd, aFrame) +{ with(self) +{ + objj_msgSend(self, "setFrame:display:animate:", aFrame, YES, NO); +} +}), new objj_method(sel_getUid("setFrameOrigin:"), function $CPWindow__setFrameOrigin_(self, _cmd, anOrigin) +{ with(self) +{ + var origin = _frame.origin; + if ((origin.x == anOrigin.x && origin.y == anOrigin.y)) + return; + origin.x = anOrigin.x; + origin.y = anOrigin.y; + if (!_DOMElement.CPDOMDisplayContext) _DOMElement.CPDOMDisplayContext = []; var __index = _DOMElement.CPDOMDisplayContext[0]; if (!(__index >= 0)) { __index = _DOMElement.CPDOMDisplayContext[0] = CPDOMDisplayServerInstructionCount; CPDOMDisplayServerInstructionCount += 5; } CPDOMDisplayServerInstructions[__index] = 0; CPDOMDisplayServerInstructions[__index + 1] = _DOMElement; CPDOMDisplayServerInstructions[__index + 2] = NULL; CPDOMDisplayServerInstructions[__index + 3] = origin.x; CPDOMDisplayServerInstructions[__index + 4] = origin.y;; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPWindowDidMoveNotification, self); +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPWindow__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + aSize = { width:MIN(MAX(aSize.width, _minSize.width), _maxSize.width), height:MIN(MAX(aSize.height, _minSize.height), _maxSize.height) }; + if ((_frame.size.width == aSize.width && _frame.size.height == aSize.height)) + return; + _frame.size = aSize; + objj_msgSend(_windowView, "setFrameSize:", aSize); + if (_hasShadow) + objj_msgSend(_shadowView, "setFrameSize:", { width:SHADOW_MARGIN_LEFT + aSize.width + SHADOW_MARGIN_RIGHT, height:SHADOW_MARGIN_BOTTOM + aSize.height + SHADOW_MARGIN_TOP + SHADOW_DISTANCE }); + if (!_isAnimating && objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowDidResize:"))) + objj_msgSend(_delegate, "windowDidResize:", self); +} +}), new objj_method(sel_getUid("orderFront:"), function $CPWindow__orderFront_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(_bridge, "order:window:relativeTo:", CPWindowAbove, self, nil); +} +}), new objj_method(sel_getUid("orderBack:"), function $CPWindow__orderBack_(self, _cmd, aSender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("orderOut:"), function $CPWindow__orderOut_(self, _cmd, aSender) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowWillClose:"))) + objj_msgSend(_delegate, "windowWillClose:", self); + objj_msgSend(_bridge, "order:window:relativeTo:", CPWindowOut, self, nil); + if (objj_msgSend(CPApp, "keyWindow") == self) + { + objj_msgSend(self, "resignKeyWindow"); + CPApp._keyWindow = nil; + } +} +}), new objj_method(sel_getUid("orderWindow:relativeTo:"), function $CPWindow__orderWindow_relativeTo_(self, _cmd, aPlace, otherWindowNumber) +{ with(self) +{ + objj_msgSend(_bridge, "order:window:relativeTo:", aPlace, self, CPApp._windows[otherWindowNumber]); +} +}), new objj_method(sel_getUid("setLevel:"), function $CPWindow__setLevel_(self, _cmd, aLevel) +{ with(self) +{ + _level = aLevel; +} +}), new objj_method(sel_getUid("level"), function $CPWindow__level(self, _cmd) +{ with(self) +{ + return _level; +} +}), new objj_method(sel_getUid("isVisible"), function $CPWindow__isVisible(self, _cmd) +{ with(self) +{ + return _isVisible; +} +}), new objj_method(sel_getUid("showsResizeIndicator"), function $CPWindow__showsResizeIndicator(self, _cmd) +{ with(self) +{ + return objj_msgSend(_windowView, "showsResizeIndicator"); +} +}), new objj_method(sel_getUid("setShowsResizeIndicator:"), function $CPWindow__setShowsResizeIndicator_(self, _cmd, shouldShowResizeIndicator) +{ with(self) +{ + objj_msgSend(_windowView, "setShowsResizeIndicator:", shouldShowResizeIndicator); +} +}), new objj_method(sel_getUid("resizeIndicatorOffset"), function $CPWindow__resizeIndicatorOffset(self, _cmd) +{ with(self) +{ + return objj_msgSend(_windowView, "resizeIndicatorOffset"); +} +}), new objj_method(sel_getUid("setResizeIndicatorOffset:"), function $CPWindow__setResizeIndicatorOffset_(self, _cmd, anOffset) +{ with(self) +{ + objj_msgSend(_windowView, "setResizeIndicatorOffset:", anOffset); +} +}), new objj_method(sel_getUid("setContentView:"), function $CPWindow__setContentView_(self, _cmd, aView) +{ with(self) +{ + if (_contentView) + objj_msgSend(_contentView, "removeFromSuperview"); + var bounds = CGRectMake(0.0, 0.0, CGRectGetWidth(_frame), CGRectGetHeight(_frame)); + _contentView = aView; + objj_msgSend(_contentView, "setFrame:", objj_msgSend(self, "contentRectForFrameRect:", bounds)); + objj_msgSend(_contentView, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + objj_msgSend(_windowView, "addSubview:", _contentView); +} +}), new objj_method(sel_getUid("contentView"), function $CPWindow__contentView(self, _cmd) +{ with(self) +{ + return _contentView; +} +}), new objj_method(sel_getUid("setBackgroundColor:"), function $CPWindow__setBackgroundColor_(self, _cmd, aColor) +{ with(self) +{ + objj_msgSend(_windowView, "setBackgroundColor:", aColor); +} +}), new objj_method(sel_getUid("backgroundColor"), function $CPWindow__backgroundColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(_windowView, "backgroundColor"); +} +}), new objj_method(sel_getUid("setMinSize:"), function $CPWindow__setMinSize_(self, _cmd, aSize) +{ with(self) +{ + if (CGSizeEqualToSize(_minSize, aSize)) + return; + _minSize = CGSizeCreateCopy(aSize); + var size = CGSizeMakeCopy(objj_msgSend(self, "frame").size), + needsFrameChange = NO; + if (size.width < _minSize.width) + { + size.width = _minSize.width; + needsFrameChange = YES; + } + if (size.height < _minSize.height) + { + size.height = _minSize.height; + needsFrameChange = YES; + } + if (needsFrameChange) + objj_msgSend(self, "setFrameSize:", size); +} +}), new objj_method(sel_getUid("minSize"), function $CPWindow__minSize(self, _cmd) +{ with(self) +{ + return _minSize; +} +}), new objj_method(sel_getUid("setMaxSize:"), function $CPWindow__setMaxSize_(self, _cmd, aSize) +{ with(self) +{ + if (CGSizeEqualToSize(_maxSize, aSize)) + return; + _maxSize = CGSizeCreateCopy(aSize); + var size = CGSizeMakeCopy(objj_msgSend(self, "frame").size), + needsFrameChange = NO; + if (size.width > _maxSize.width) + { + size.width = _maxSize.width; + needsFrameChange = YES; + } + if (size.height > _maxSize.height) + { + size.height = _maxSize.height; + needsFrameChange = YES; + } + if (needsFrameChange) + objj_msgSend(self, "setFrameSize:", size); +} +}), new objj_method(sel_getUid("maxSize"), function $CPWindow__maxSize(self, _cmd) +{ with(self) +{ + return _maxSize; +} +}), new objj_method(sel_getUid("hasShadow"), function $CPWindow__hasShadow(self, _cmd) +{ with(self) +{ + return _hasShadow; +} +}), new objj_method(sel_getUid("setHasShadow:"), function $CPWindow__setHasShadow_(self, _cmd, shouldHaveShadow) +{ with(self) +{ + if (_hasShadow === shouldHaveShadow) + return; + _hasShadow = shouldHaveShadow; + if (_hasShadow) + { + var bounds = objj_msgSend(_windowView, "bounds"); + _shadowView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(-SHADOW_MARGIN_LEFT, -SHADOW_MARGIN_TOP + SHADOW_DISTANCE, + SHADOW_MARGIN_LEFT + CGRectGetWidth(bounds) + SHADOW_MARGIN_RIGHT, SHADOW_MARGIN_TOP + CGRectGetHeight(bounds) + SHADOW_MARGIN_BOTTOM)); + if (!_CPWindowShadowColor) + { + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPWindow, "class")); + _CPWindowShadowColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow0.png"), CGSizeMake(20.0, 19.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow1.png"), CGSizeMake(1.0, 19.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow2.png"), CGSizeMake(19.0, 19.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow3.png"), CGSizeMake(20.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow4.png"), CGSizeMake(1.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow5.png"), CGSizeMake(19.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow6.png"), CGSizeMake(20.0, 18.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow7.png"), CGSizeMake(1.0, 18.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow8.png"), CGSizeMake(19.0, 18.0)) + ])); + } + objj_msgSend(_shadowView, "setBackgroundColor:", _CPWindowShadowColor); + objj_msgSend(_shadowView, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + if (_shadowView._DOMElement.CPDOMDisplayContext) _shadowView._DOMElement.CPDOMDisplayContext[0] = -1; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 7; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _shadowView._DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _windowView._DOMElement;; + } + else if (_shadowView) + { + CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 8; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _shadowView._DOMElement;; + _shadowView = nil; + } +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPWindow__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; + _delegateRespondsToWindowWillReturnUndoManagerSelector = objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowWillReturnUndoManager:")); + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowDidBecomeMain:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("windowDidBecomeMain:"), CPWindowDidBecomeMainNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowDidResignMain:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("windowDidResignMain:"), CPWindowDidResignMainNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowDidMove:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("windowDidMove:"), CPWindowDidMoveNotification, self); +} +}), new objj_method(sel_getUid("delegate"), function $CPWindow__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("setWindowController:"), function $CPWindow__setWindowController_(self, _cmd, aWindowController) +{ with(self) +{ + _windowController = aWindowController; +} +}), new objj_method(sel_getUid("windowController"), function $CPWindow__windowController(self, _cmd) +{ with(self) +{ + return _windowController; +} +}), new objj_method(sel_getUid("doCommandBySelector:"), function $CPWindow__doCommandBySelector_(self, _cmd, aSelector) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", aSelector)) + objj_msgSend(_delegate, "performSelector:", aSelector); + else + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "doCommandBySelector:", aSelector); +} +}), new objj_method(sel_getUid("acceptsFirstResponder"), function $CPWindow__acceptsFirstResponder(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("makeFirstResponder:"), function $CPWindow__makeFirstResponder_(self, _cmd, aResponder) +{ with(self) +{ + if (_firstResponder == aResponder) + return YES; + if(!objj_msgSend(_firstResponder, "resignFirstResponder")) + return NO; + if(!aResponder || !objj_msgSend(aResponder, "acceptsFirstResponder") || !objj_msgSend(aResponder, "becomeFirstResponder")) + { + _firstResponder = self; + return NO; + } + _firstResponder = aResponder; + return YES; +} +}), new objj_method(sel_getUid("firstResponder"), function $CPWindow__firstResponder(self, _cmd) +{ with(self) +{ + return _firstResponder; +} +}), new objj_method(sel_getUid("acceptsMouseMovedEvents"), function $CPWindow__acceptsMouseMovedEvents(self, _cmd) +{ with(self) +{ + return _acceptsMouseMovedEvents; +} +}), new objj_method(sel_getUid("setAcceptsMouseMovedEvents:"), function $CPWindow__setAcceptsMouseMovedEvents_(self, _cmd, shouldAcceptMouseMovedEvents) +{ with(self) +{ + _acceptsMouseMovedEvents = shouldAcceptMouseMovedEvents; +} +}), new objj_method(sel_getUid("ignoresMouseEvents"), function $CPWindow__ignoresMouseEvents(self, _cmd) +{ with(self) +{ + return _ignoresMouseEvents; +} +}), new objj_method(sel_getUid("setIgnoresMouseEvents:"), function $CPWindow__setIgnoresMouseEvents_(self, _cmd, shouldIgnoreMouseEvents) +{ with(self) +{ + _ignoresMouseEvents = shouldIgnoreMouseEvents; +} +}), new objj_method(sel_getUid("title"), function $CPWindow__title(self, _cmd) +{ with(self) +{ + return _title; +} +}), new objj_method(sel_getUid("setTitle:"), function $CPWindow__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + _title = aTitle; + objj_msgSend(_windowView, "setTitle:", aTitle); + objj_msgSend(self, "_synchronizeMenuBarTitleWithWindowTitle"); +} +}), new objj_method(sel_getUid("setTitleWithRepresentedFilename:"), function $CPWindow__setTitleWithRepresentedFilename_(self, _cmd, aFilePath) +{ with(self) +{ + objj_msgSend(self, "setRepresentedFilename:", aFilePath); + objj_msgSend(self, "setTitle:", objj_msgSend(aFilePath, "lastPathComponent")); +} +}), new objj_method(sel_getUid("setRepresentedFilename:"), function $CPWindow__setRepresentedFilename_(self, _cmd, aFilePath) +{ with(self) +{ + objj_msgSend(self, "setRepresentedURL:", aFilePath); +} +}), new objj_method(sel_getUid("representedFilename"), function $CPWindow__representedFilename(self, _cmd) +{ with(self) +{ + return _representedURL; +} +}), new objj_method(sel_getUid("setRepresentedURL:"), function $CPWindow__setRepresentedURL_(self, _cmd, aURL) +{ with(self) +{ + _representedURL = aURL; +} +}), new objj_method(sel_getUid("representedURL"), function $CPWindow__representedURL(self, _cmd) +{ with(self) +{ + return _representedURL; +} +}), new objj_method(sel_getUid("setMovableByWindowBackground:"), function $CPWindow__setMovableByWindowBackground_(self, _cmd, shouldBeMovableByWindowBackground) +{ with(self) +{ + _isMovableByWindowBackground = shouldBeMovableByWindowBackground; +} +}), new objj_method(sel_getUid("isMovableByWindowBackground"), function $CPWindow__isMovableByWindowBackground(self, _cmd) +{ with(self) +{ + return _isMovableByWindowBackground; +} +}), new objj_method(sel_getUid("center"), function $CPWindow__center(self, _cmd) +{ with(self) +{ + var size = objj_msgSend(self, "frame").size, + bridgeSize = objj_msgSend(_bridge, "contentBounds").size; + objj_msgSend(self, "setFrameOrigin:", CGPointMake((bridgeSize.width - size.width) / 2.0, (bridgeSize.height - size.height) / 2.0)); +} +}), new objj_method(sel_getUid("sendEvent:"), function $CPWindow__sendEvent_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"), + point = objj_msgSend(anEvent, "locationInWindow"); + switch (type) + { + case CPKeyUp: return objj_msgSend(objj_msgSend(self, "firstResponder"), "keyUp:", anEvent); + case CPKeyDown: return objj_msgSend(objj_msgSend(self, "firstResponder"), "keyDown:", anEvent); + case CPScrollWheel: return objj_msgSend(objj_msgSend(_windowView, "hitTest:", point), "scrollWheel:", anEvent); + case CPLeftMouseUp: if (!_leftMouseDownView) + return objj_msgSend(objj_msgSend(_windowView, "hitTest:", point), "mouseUp:", anEvent); + objj_msgSend(_leftMouseDownView, "mouseUp:", anEvent) + _leftMouseDownView = nil; + return; + case CPLeftMouseDown: _leftMouseDownView = objj_msgSend(_windowView, "hitTest:", point); + if (_leftMouseDownView != _firstResponder && objj_msgSend(_leftMouseDownView, "acceptsFirstResponder")) + objj_msgSend(self, "makeFirstResponder:", _leftMouseDownView); + var theWindow = objj_msgSend(anEvent, "window"); + if (objj_msgSend(theWindow, "isKeyWindow") || objj_msgSend(theWindow, "becomesKeyOnlyIfNeeded")) + return objj_msgSend(_leftMouseDownView, "mouseDown:", anEvent); + else + { + objj_msgSend(self, "makeKeyAndOrderFront:", self); + if (objj_msgSend(_leftMouseDownView, "acceptsFirstMouse:", anEvent)) + return objj_msgSend(_leftMouseDownView, "mouseDown:", anEvent) + } + break; + case CPLeftMouseDragged: if (!_leftMouseDownView) + return objj_msgSend(objj_msgSend(_windowView, "hitTest:", point), "mouseDragged:", anEvent); + return objj_msgSend(_leftMouseDownView, "mouseDragged:", anEvent); + case CPRightMouseUp: return objj_msgSend(_rightMouseDownView, "mouseUp:", anEvent); + case CPRightMouseDown: _rightMouseDownView = objj_msgSend(_windowView, "hitTest:", point); + return objj_msgSend(_rightMouseDownView, "mouseDown:", anEvent); + case CPRightMouseDragged: return objj_msgSend(_rightMouseDownView, "mouseDragged:", anEvent); + case CPMouseMoved: if (!_acceptsMouseMovedEvents) + return; + var hitTestView = objj_msgSend(_windowView, "hitTest:", point); + if (hitTestView != _mouseOverView) + { + if (_mouseOverView) + objj_msgSend(_mouseOverView, "mouseExited:", objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", CPMouseExited, point, objj_msgSend(anEvent, "modifierFlags"), objj_msgSend(anEvent, "timestamp"), _windowNumber, nil, -1, 1, 0)); + if (hitTestView) + objj_msgSend(hitTestView, "mouseEntered:", objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", CPMouseEntered, point, objj_msgSend(anEvent, "modifierFlags"), objj_msgSend(anEvent, "timestamp"), _windowNumber, nil, -1, 1, 0)); + _mouseOverView = hitTestView; + } + objj_msgSend(_mouseOverView, "mouseMoved:", anEvent); + } +} +}), new objj_method(sel_getUid("windowNumber"), function $CPWindow__windowNumber(self, _cmd) +{ with(self) +{ + return _windowNumber; +} +}), new objj_method(sel_getUid("becomeKeyWindow"), function $CPWindow__becomeKeyWindow(self, _cmd) +{ with(self) +{ + if (_firstResponder != self && objj_msgSend(_firstResponder, "respondsToSelector:", sel_getUid("becomeKeyWindow"))) + objj_msgSend(_firstResponder, "becomeKeyWindow"); +} +}), new objj_method(sel_getUid("canBecomeKeyWindow"), function $CPWindow__canBecomeKeyWindow(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("isKeyWindow"), function $CPWindow__isKeyWindow(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPApp, "keyWindow") == self; +} +}), new objj_method(sel_getUid("makeKeyAndOrderFront:"), function $CPWindow__makeKeyAndOrderFront_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "orderFront:", self); + objj_msgSend(self, "makeKeyWindow"); + objj_msgSend(self, "makeMainWindow"); +} +}), new objj_method(sel_getUid("makeKeyWindow"), function $CPWindow__makeKeyWindow(self, _cmd) +{ with(self) +{ + if (!objj_msgSend(self, "canBecomeKeyWindow")) + return; + objj_msgSend(CPApp._keyWindow, "resignKeyWindow"); + CPApp._keyWindow = self; + objj_msgSend(self, "becomeKeyWindow"); +} +}), new objj_method(sel_getUid("resignKeyWindow"), function $CPWindow__resignKeyWindow(self, _cmd) +{ with(self) +{ + if (_firstResponder != self && objj_msgSend(_firstResponder, "respondsToSelector:", sel_getUid("resignKeyWindow"))) + objj_msgSend(_firstResponder, "resignKeyWindow"); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowDidResignKey:"))) + objj_msgSend(_delegate, "windowDidResignKey:", self); +} +}), new objj_method(sel_getUid("dragImage:at:offset:event:pasteboard:source:slideBack:"), function $CPWindow__dragImage_at_offset_event_pasteboard_source_slideBack_(self, _cmd, anImage, imageLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPDragServer, "sharedDragServer"), "dragImage:fromWindow:at:offset:event:pasteboard:source:slideBack:", anImage, self, objj_msgSend(self, "convertBaseToBridge:", imageLocation), mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack); +} +}), new objj_method(sel_getUid("_noteRegisteredDraggedTypes:"), function $CPWindow___noteRegisteredDraggedTypes_(self, _cmd, pasteboardTypes) +{ with(self) +{ + if (!pasteboardTypes) + return; + if (!_inclusiveRegisteredDraggedTypes) + _inclusiveRegisteredDraggedTypes = objj_msgSend(CPCountedSet, "set"); + objj_msgSend(_inclusiveRegisteredDraggedTypes, "unionSet:", pasteboardTypes); +} +}), new objj_method(sel_getUid("_noteUnregisteredDraggedTypes:"), function $CPWindow___noteUnregisteredDraggedTypes_(self, _cmd, pasteboardTypes) +{ with(self) +{ + if (!pasteboardTypes) + return; + objj_msgSend(_inclusiveRegisteredDraggedTypes, "minusSet:", pasteboardTypes) + if (objj_msgSend(_inclusiveRegisteredDraggedTypes, "count") === 0) + _inclusiveRegisteredDraggedTypes = nil; +} +}), new objj_method(sel_getUid("dragView:at:offset:event:pasteboard:source:slideBack:"), function $CPWindow__dragView_at_offset_event_pasteboard_source_slideBack_(self, _cmd, aView, imageLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPDragServer, "sharedDragServer"), "dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:", aView, self, objj_msgSend(self, "convertBaseToBridge:", imageLocation), mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack); +} +}), new objj_method(sel_getUid("registerForDraggedTypes:"), function $CPWindow__registerForDraggedTypes_(self, _cmd, pasteboardTypes) +{ with(self) +{ + if (!pasteboardTypes) + return; + objj_msgSend(self, "_noteUnregisteredDraggedTypes:", _registeredDraggedTypes); + objj_msgSend(_registeredDraggedTypes, "addObjectsFromArray:", pasteboardTypes) + objj_msgSend(self, "_noteRegisteredDraggedTypes:", _registeredDraggedTypes); + _registeredDraggedTypesArray = nil; +} +}), new objj_method(sel_getUid("registeredDraggedTypes"), function $CPWindow__registeredDraggedTypes(self, _cmd) +{ with(self) +{ + if (!_registeredDraggedTypesArray) + _registeredDraggedTypesArray = objj_msgSend(_registeredDraggedTypes, "allObjects") + return _registeredDraggedTypesArray; +} +}), new objj_method(sel_getUid("unregisterDraggedTypes"), function $CPWindow__unregisterDraggedTypes(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "_noteUnregisteredDraggedTypes:", _registeredDraggedTypes); + _registeredDraggedTypes = objj_msgSend(CPSet, "set"); + _registeredDraggedTypesArray = []; +} +}), new objj_method(sel_getUid("setDocumentEdited:"), function $CPWindow__setDocumentEdited_(self, _cmd, isDocumentEdited) +{ with(self) +{ + if (_isDocumentEdited == isDocumentEdited) + return; + _isDocumentEdited = isDocumentEdited; + objj_msgSend(CPMenu, "_setMenuBarIconImageAlphaValue:", _isDocumentEdited ? 0.5 : 1.0); +} +}), new objj_method(sel_getUid("isDocumentEdited"), function $CPWindow__isDocumentEdited(self, _cmd) +{ with(self) +{ + return _isDocumentEdited; +} +}), new objj_method(sel_getUid("setDocumentSaving:"), function $CPWindow__setDocumentSaving_(self, _cmd, isDocumentSaving) +{ with(self) +{ + if (_isDocumentSaving == isDocumentSaving) + return; + _isDocumentSaving = isDocumentSaving; + objj_msgSend(self, "_synchronizeSaveMenuWithDocumentSaving"); + objj_msgSend(_windowView, "windowDidChangeDocumentSaving"); +} +}), new objj_method(sel_getUid("isDocumentSaving"), function $CPWindow__isDocumentSaving(self, _cmd) +{ with(self) +{ + return _isDocumentSaving; +} +}), new objj_method(sel_getUid("_synchronizeSaveMenuWithDocumentSaving"), function $CPWindow___synchronizeSaveMenuWithDocumentSaving(self, _cmd) +{ with(self) +{ + if (!objj_msgSend(self, "isMainWindow")) + return; + var mainMenu = objj_msgSend(CPApp, "mainMenu"), + index = objj_msgSend(mainMenu, "indexOfItemWithTitle:", _isDocumentSaving ? "Save" : "Saving..."); + if (index == CPNotFound) + return; + var item = objj_msgSend(mainMenu, "itemAtIndex:", index); + if (_isDocumentSaving) + { + CPWindowSaveImage = objj_msgSend(item, "image"); + objj_msgSend(item, "setTitle:", "Saving..."); + objj_msgSend(item, "setImage:", CPWindowSavingImage); + objj_msgSend(item, "setEnabled:", NO); + } + else + { + objj_msgSend(item, "setTitle:", "Save"); + objj_msgSend(item, "setImage:", CPWindowSaveImage); + objj_msgSend(item, "setEnabled:", YES); + } +} +}), new objj_method(sel_getUid("performClose:"), function $CPWindow__performClose_(self, _cmd, aSender) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowShouldClose:"))) + { + if (!objj_msgSend(_delegate, "windowShouldClose:", self)) + return; + } + else if (objj_msgSend(self, "respondsToSelector:", sel_getUid("windowShouldClose:")) && !objj_msgSend(self, "windowShouldClose:", self)) + return; + objj_msgSend(self, "close"); +} +}), new objj_method(sel_getUid("close"), function $CPWindow__close(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPWindowWillCloseNotification, self); + objj_msgSend(self, "orderOut:", nil); +} +}), new objj_method(sel_getUid("isMainWindow"), function $CPWindow__isMainWindow(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPApp, "mainWindow") == self; +} +}), new objj_method(sel_getUid("canBecomeMainWindow"), function $CPWindow__canBecomeMainWindow(self, _cmd) +{ with(self) +{ + if (objj_msgSend(self, "isVisible")) + return YES; + return NO; +} +}), new objj_method(sel_getUid("makeMainWindow"), function $CPWindow__makeMainWindow(self, _cmd) +{ with(self) +{ + if (!objj_msgSend(self, "canBecomeMainWindow")) + return; + objj_msgSend(CPApp._mainWindow, "resignMainWindow"); + CPApp._mainWindow = self; + objj_msgSend(self, "becomeMainWindow"); +} +}), new objj_method(sel_getUid("becomeMainWindow"), function $CPWindow__becomeMainWindow(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "_synchronizeMenuBarTitleWithWindowTitle"); + objj_msgSend(self, "_synchronizeSaveMenuWithDocumentSaving"); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPWindowDidBecomeMainNotification, self); +} +}), new objj_method(sel_getUid("resignMainWindow"), function $CPWindow__resignMainWindow(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPWindowDidResignMainNotification, self); +} +}), new objj_method(sel_getUid("toolbar"), function $CPWindow__toolbar(self, _cmd) +{ with(self) +{ + return _toolbar; +} +}), new objj_method(sel_getUid("setToolbar:"), function $CPWindow__setToolbar_(self, _cmd, aToolbar) +{ with(self) +{ + if (_toolbar === aToolbar) + return; + objj_msgSend(objj_msgSend(aToolbar, "_window"), "setToolbar:", nil); + objj_msgSend(_toolbar, "_setWindow:", nil); + _toolbar = aToolbar; + objj_msgSend(_toolbar, "_setWindow:", self); + objj_msgSend(self, "_noteToolbarChanged"); +} +}), new objj_method(sel_getUid("toggleToolbarShown:"), function $CPWindow__toggleToolbarShown_(self, _cmd, aSender) +{ with(self) +{ + var toolbar = objj_msgSend(self, "toolbar"); + objj_msgSend(toolbar, "setVisible:", !objj_msgSend(toolbar, "isVisible")); +} +}), new objj_method(sel_getUid("_noteToolbarChanged"), function $CPWindow___noteToolbarChanged(self, _cmd) +{ with(self) +{ + var frame = CGRectMakeCopy(objj_msgSend(self, "frame")), + newFrame; + objj_msgSend(_windowView, "noteToolbarChanged"); + if (_isFullBridge) + newFrame = objj_msgSend(_bridge, "visibleFrame"); + else + { + newFrame = CGRectMakeCopy(objj_msgSend(self, "frame")); + newFrame.origin = frame.origin; + } + objj_msgSend(self, "setFrame:", newFrame); +} +}), new objj_method(sel_getUid("_setAttachedSheetFrameOrigin"), function $CPWindow___setAttachedSheetFrameOrigin(self, _cmd) +{ with(self) +{ + var contentRect = objj_msgSend(objj_msgSend(self, "contentView"), "frame"), + sheetFrame = CGRectMakeCopy(objj_msgSend(_attachedSheet, "frame")); + sheetFrame.origin.y = CGRectGetMinY(_frame) + CGRectGetMinY(contentRect); + sheetFrame.origin.x = CGRectGetMinX(_frame) + FLOOR((CGRectGetWidth(_frame) - CGRectGetWidth(sheetFrame)) / 2.0); + objj_msgSend(_attachedSheet, "setFrameOrigin:", sheetFrame.origin); +} +}), new objj_method(sel_getUid("_animateAttachedSheet"), function $CPWindow___animateAttachedSheet(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_attachSheet:modalDelegate:didEndSelector:contextInfo:"), function $CPWindow___attachSheet_modalDelegate_didEndSelector_contextInfo_(self, _cmd, aSheet, aModalDelegate, aDidEndSelector, aContextInfo) +{ with(self) +{ + _attachedSheet = aSheet; + aSheet._isSheet = YES; + objj_msgSend(self, "_setAttachedSheetFrameOrigin"); + objj_msgSend(_bridge, "order:window:relativeTo:", CPWindowAbove, aSheet, self); +} +}), new objj_method(sel_getUid("attachedSheet"), function $CPWindow__attachedSheet(self, _cmd) +{ with(self) +{ + return _attachedSheet; +} +}), new objj_method(sel_getUid("isSheet"), function $CPWindow__isSheet(self, _cmd) +{ with(self) +{ + return _isSheet; +} +}), new objj_method(sel_getUid("becomesKeyOnlyIfNeeded"), function $CPWindow__becomesKeyOnlyIfNeeded(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("worksWhenModal"), function $CPWindow__worksWhenModal(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("keyDown:"), function $CPWindow__keyDown_(self, _cmd, event) +{ with(self) +{ + if (!objj_msgSend(self, "performKeyEquivalent:", event)) + objj_msgSend(self, "interpretKeyEvents:", [event]); +} +}), new objj_method(sel_getUid("insertNewline:"), function $CPWindow__insertNewline_(self, _cmd, sender) +{ with(self) +{ + if (_defaultButton && _defaultButtonEnabled) + objj_msgSend(_defaultButton, "performClick:", nil); +} +}), new objj_method(sel_getUid("insertTab:"), function $CPWindow__insertTab_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "selectNextKeyView:", nil); +} +}), new objj_method(sel_getUid("_dirtyKeyViewLoop"), function $CPWindow___dirtyKeyViewLoop(self, _cmd) +{ with(self) +{ + if (_autorecalculatesKeyViewLoop) + _keyViewLoopIsDirty = YES; +} +}), new objj_method(sel_getUid("_hasKeyViewLoop"), function $CPWindow___hasKeyViewLoop(self, _cmd) +{ with(self) +{ + var subviews = []; + objj_msgSend(self, "_appendSubviewsOf:toArray:", _contentView, subviews); + for (var i = 0, count = objj_msgSend(subviews, "count"); i objj_msgSend(self, "maxWidth")) + objj_msgSend(self, "setMaxWidth:", width) + + if (_width !== width) + objj_msgSend(self, "setWidth:", width); +} +}), new objj_method(sel_getUid("setHeaderView:"), function $NEWCPTableColumn__setHeaderView_(self, _cmd, aView) +{ with(self) +{ + if (!aView) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "Attempt to set nil header view on " + objj_msgSend(self, "description")); + + _headerView = aView; +} +}), new objj_method(sel_getUid("headerView"), function $NEWCPTableColumn__headerView(self, _cmd) +{ with(self) +{ + return _headerView; +} +}), new objj_method(sel_getUid("setDataView:"), function $NEWCPTableColumn__setDataView_(self, _cmd, aView) +{ with(self) +{ + if (_dataView === aView) + return; + + if (_dataView) + _dataViewData[objj_msgSend(_dataView, "UID")] = nil; + + _dataView = aView; + _dataViewData[objj_msgSend(aView, "UID")] = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", aView); +} +}), new objj_method(sel_getUid("dataView"), function $NEWCPTableColumn__dataView(self, _cmd) +{ with(self) +{ + return _dataView; +} +}), new objj_method(sel_getUid("dataViewForRow:"), function $NEWCPTableColumn__dataViewForRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return objj_msgSend(self, "dataView"); +} +}), new objj_method(sel_getUid("_newDataViewForRow:"), function $NEWCPTableColumn___newDataViewForRow_(self, _cmd, aRowIndex) +{ with(self) +{ + var dataView = objj_msgSend(self, "dataViewForRow:", aRowIndex), + dataViewUID = objj_msgSend(dataView, "UID"); +var x = objj_msgSend(self, "tableView")._cachedDataViews[dataViewUID]; +if (x && x.length) +return x.pop(); + if (!_dataViewData[dataViewUID]) + _dataViewData[dataViewUID] = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", dataView); + var newDataView = objj_msgSend(CPKeyedUnarchiver, "unarchiveObjectWithData:", _dataViewData[dataViewUID]); +newDataView.identifier = dataViewUID; + return newDataView; +} +}), new objj_method(sel_getUid("setIdentifier:"), function $NEWCPTableColumn__setIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + _identifier = anIdentifier; +} +}), new objj_method(sel_getUid("identifier"), function $NEWCPTableColumn__identifier(self, _cmd) +{ with(self) +{ + return _identifier; +} +}), new objj_method(sel_getUid("setEditable:"), function $NEWCPTableColumn__setEditable_(self, _cmd, shouldBeEditable) +{ with(self) +{ + _isEditable = shouldBeEditable; +} +}), new objj_method(sel_getUid("isEditable"), function $NEWCPTableColumn__isEditable(self, _cmd) +{ with(self) +{ + return _isEditable; +} +}), new objj_method(sel_getUid("setSortDescriptorPrototype:"), function $NEWCPTableColumn__setSortDescriptorPrototype_(self, _cmd, aSortDescriptor) +{ with(self) +{ + _sortDescriptorPrototype = aSortDescriptor; +} +}), new objj_method(sel_getUid("sortDescriptorPrototype"), function $NEWCPTableColumn__sortDescriptorPrototype(self, _cmd) +{ with(self) +{ + return _sortDescriptorPrototype; +} +}), new objj_method(sel_getUid("setHidden:"), function $NEWCPTableColumn__setHidden_(self, _cmd, shouldBeHidden) +{ with(self) +{ + _isHidden = shouldBeHidden; +} +}), new objj_method(sel_getUid("isHidden"), function $NEWCPTableColumn__isHidden(self, _cmd) +{ with(self) +{ + return _isHidden; +} +}), new objj_method(sel_getUid("setHeaderToolTip:"), function $NEWCPTableColumn__setHeaderToolTip_(self, _cmd, aToolTip) +{ with(self) +{ + _headerToolTip = aToolTip; +} +}), new objj_method(sel_getUid("headerToolTip"), function $NEWCPTableColumn__headerToolTip(self, _cmd) +{ with(self) +{ + return _headerToolTip; +} +})]); +} +{ +var the_class = objj_getClass("NEWCPTableColumn") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"NEWCPTableColumn\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("setHeaderCell:"), function $NEWCPTableColumn__setHeaderCell_(self, _cmd, aView) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "setHeaderCell: is not supported. -setHeaderCell:aView instead."); +} +}), new objj_method(sel_getUid("headerCell"), function $NEWCPTableColumn__headerCell(self, _cmd) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "headCell is not supported. -headerView instead."); +} +}), new objj_method(sel_getUid("setDataCell:"), function $NEWCPTableColumn__setDataCell_(self, _cmd, aView) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "setDataCell: is not supported. Use -setHeaderCell:aView instead."); +} +}), new objj_method(sel_getUid("dataCell"), function $NEWCPTableColumn__dataCell(self, _cmd) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "dataCell is not supported. Use -dataCell instead."); +} +}), new objj_method(sel_getUid("dataCellForRow:"), function $NEWCPTableColumn__dataCellForRow_(self, _cmd, row) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "dataCellForRow: is not supported. Use -dataViewForRow:row instead."); +} +})]); +} + +p;16;NEWCPTableView.jI;20;Foundation/CPArray.ji;11;CPControl.ji;15;CPTableColumn.ji;15;_CPCornerView.ji;12;CPScroller.jc;45445; + + + +var CPTableViewDataSource_tableView_setObjectValue_forTableColumn_row_ = 1 << 2, + + CPTableViewDataSource_tableView_acceptDrop_row_dropOperation_ = 1 << 3, + CPTableViewDataSource_tableView_namesOfPromisedFilesDroppedAtDestination_forDraggedRowsWithIndexes_ = 1 << 4, + CPTableViewDataSource_tableView_validateDrop_proposedRow_proposedDropOperation_ = 1 << 5, + CPTableViewDataSource_tableView_writeRowsWithIndexes_toPasteboard_ = 1 << 6, + + CPTableViewDataSource_tableView_sortDescriptorsDidChange_ = 1 << 7; + +var CPTableViewDelegate_selectionShouldChangeInTableView_ = 1 << 0, + CPTableViewDelegate_tableView_dataViewForTableColumn_row_ = 1 << 1, + CPTableViewDelegate_tableView_didClickTableColumn_ = 1 << 2, + CPTableViewDelegate_tableView_didDragTableColumn_ = 1 << 3, + CPTableViewDelegate_tableView_heightOfRow_ = 1 << 4, + CPTableViewDelegate_tableView_isGroupRow_ = 1 << 5, + CPTableViewDelegate_tableView_mouseDownInHeaderOfTableColumn_ = 1 << 6, + CPTableViewDelegate_tableView_nextTypeSelectMatchFromRow_toRow_forString_ = 1 << 7, + CPTableViewDelegate_tableView_selectionIndexesForProposedSelection_ = 1 << 8, + CPTableViewDelegate_tableView_shouldEditTableColumn_row_ = 1 << 9, + CPTableViewDelegate_tableView_shouldSelectRow_ = 1 << 10, + CPTableViewDelegate_tableView_shouldSelectTableColumn_ = 1 << 11, + CPTableViewDelegate_tableView_shouldShowViewExpansionForTableColumn_row_ = 1 << 12, + CPTableViewDelegate_tableView_shouldTrackView_forTableColumn_row_ = 1 << 13, + CPTableViewDelegate_tableView_shouldTypeSelectForEvent_withCurrentSearchString_ = 1 << 14, + CPTableViewDelegate_tableView_toolTipForView_rect_tableColumn_row_mouseLocation_ = 1 << 15, + CPTableViewDelegate_tableView_typeSelectStringForTableColumn_row_ = 1 << 16, + CPTableViewDelegate_tableView_willDisplayView_forTableColumn_row_ = 1 << 17, + CPTableViewDelegate_tableViewSelectionDidChange_ = 1 << 18, + CPTableViewDelegate_tableViewSelectionIsChanging_ = 1 << 19; +{var the_class = objj_allocateClassPair(CPView, "_CPTableDrawView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_tableView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithTableView:"), function $_CPTableDrawView__initWithTableView_(self, _cmd, aTableView) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "init"); + if (self) + _tableView = aTableView; + return self; +} +}), new objj_method(sel_getUid("drawRect:"), function $_CPTableDrawView__drawRect_(self, _cmd, aRect) +{ with(self) +{ + var frame = objj_msgSend(self, "frame"), + context = objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"); + CGContextTranslateCTM(context, -(frame.origin.x), -(frame.origin.y)); + objj_msgSend(_tableView, "_drawRect:", aRect); +} +})]); +} +{var the_class = objj_allocateClassPair(CPControl, "NEWCPTableView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_dataSource"), new objj_ivar("_implementedDataSourceMethods"), new objj_ivar("_delegate"), new objj_ivar("_implementedDelegateMethods"), new objj_ivar("_tableColumns"), new objj_ivar("_tableColumnRanges"), new objj_ivar("_dirtyTableColumnRangeIndex"), new objj_ivar("_numberOfHiddenColumns"), new objj_ivar("_objectValues"), new objj_ivar("_exposedRows"), new objj_ivar("_exposedColumns"), new objj_ivar("_dataViewsForTableColumns"), new objj_ivar("_cachedDataViews"), new objj_ivar("_allowsColumnReordering"), new objj_ivar("_allowsColumnResizing"), new objj_ivar("_allowsMultipleSelection"), new objj_ivar("_allowsEmptySelection"), new objj_ivar("_intercellSpacing"), new objj_ivar("_rowHeight"), new objj_ivar("_usesAlternatingRowBackgroundColors"), new objj_ivar("_selectionHighlightMask"), new objj_ivar("_currentHighlightedTableColumn"), new objj_ivar("_numberOfRows"), new objj_ivar("_headerView"), new objj_ivar("_cornerView"), new objj_ivar("_selectedColumnIndexes"), new objj_ivar("_selectedRowIndexes"), new objj_ivar("_selectionStartRow"), new objj_ivar("_tableDrawView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $NEWCPTableView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + _allowsColumnReordering = YES; + _allowsColumnResizing = YES; + _allowsMultipleSelection = NO; + _allowsEmptySelection = YES; + _allowsColumnSelection = NO; + _tableViewFlags = 0; + _tableColumns = []; + _tableColumnRanges = []; + _dirtyTableColumnRangeIndex = CPNotFound; + _numberOfHiddenColumns = 0; + _objectValues = { }; + _dataViewsForTableColumns = { }; + _dataViews= []; + _numberOfRows = 0; + _exposedRows = objj_msgSend(CPIndexSet, "indexSet"); + _exposedColumns = objj_msgSend(CPIndexSet, "indexSet"); + _cachedDataViews = { }; + _intercellSpacing = { width:0.0, height:0.0 }; + _rowHeight = 24.0; + _headerView = objj_msgSend(objj_msgSend(CPTableHeaderView, "alloc"), "initWithFrame:", CGRectMake(0, 0, objj_msgSend(self, "bounds").size.width, _rowHeight)); + objj_msgSend(_headerView, "setTableView:", self); + _cornerView = objj_msgSend(objj_msgSend(_CPCornerView, "alloc"), "initWithFrame:", CGRectMake(0, 0, objj_msgSend(CPScroller, "scrollerWidth"), CGRectGetHeight(objj_msgSend(_headerView, "frame")))); + _selectedColumnIndexes = objj_msgSend(CPIndexSet, "indexSet"); + _selectedRowIndexes = objj_msgSend(CPIndexSet, "indexSet"); + _tableDrawView = objj_msgSend(objj_msgSend(_CPTableDrawView, "alloc"), "initWithTableView:", self); + objj_msgSend(_tableDrawView, "setBackgroundColor:", objj_msgSend(CPColor, "yellowColor")); + objj_msgSend(self, "addSubview:", _tableDrawView); + } + return self; +} +}), new objj_method(sel_getUid("setDataSource:"), function $NEWCPTableView__setDataSource_(self, _cmd, aDataSource) +{ with(self) +{ + if (_dataSource === aDataSource) + return; + _dataSource = aDataSource; + _implementedDataSourceMethods = 0; + if (!_dataSource) + return; + if (!objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("numberOfRowsInTableView:"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, objj_msgSend(aDataSource, "description") + " does not implement numberOfRowsInTableView:."); + if (!objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("tableView:objectValueForTableColumn:row:"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, objj_msgSend(aDataSource, "description") + " does not implement tableView:objectValueForTableColumn:row:"); + if (objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("tableView:setObjectValue:forTableColumn:row:"))) + _implementedDataSourceMethods |= CPTableViewDataSource_tableView_setObjectValue_forTableColumn_row_; + if (objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("tableView:setObjectValue:forTableColumn:row:"))) + _implementedDataSourceMethods |= CPTableViewDataSource_tableView_acceptDrop_row_dropOperation_; + if (objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("tableView:namesOfPromisedFilesDroppedAtDestination:forDraggedRowsWithIndexes:"))) + _implementedDataSourceMethods |= CPTableViewDataSource_tableView_namesOfPromisedFilesDroppedAtDestination_forDraggedRowsWithIndexes_; + if (objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("tableView:validateDrop:proposedRow:proposedDropOperation:"))) + _implementedDataSourceMethods |= CPTableViewDataSource_tableView_validateDrop_proposedRow_proposedDropOperation_; + if (objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("tableView:writeRowsWithIndexes:toPasteboard:"))) + _implementedDataSourceMethods |= CPTableViewDataSource_tableView_writeRowsWithIndexes_toPasteboard_; + objj_msgSend(self, "reloadData"); +} +}), new objj_method(sel_getUid("dataSource"), function $NEWCPTableView__dataSource(self, _cmd) +{ with(self) +{ + return _dataSource; +} +}), new objj_method(sel_getUid("reloadData"), function $NEWCPTableView__reloadData(self, _cmd) +{ with(self) +{ + if (!_dataSource) + return; + _objectValues = { }; + objj_msgSend(self, "noteNumberOfRowsChanged"); +objj_msgSend(self, "_sizeToParent"); + objj_msgSend(self, "layoutSubviews"); +} +}), new objj_method(sel_getUid("setDoubleAction:"), function $NEWCPTableView__setDoubleAction_(self, _cmd, anAction) +{ with(self) +{ + _doubleAction = anAction; +} +}), new objj_method(sel_getUid("doubleAction"), function $NEWCPTableView__doubleAction(self, _cmd) +{ with(self) +{ + return _doubleAction; +} +}), new objj_method(sel_getUid("setAllowsColumnReordering:"), function $NEWCPTableView__setAllowsColumnReordering_(self, _cmd, shouldAllowColumnReordering) +{ with(self) +{ + _allowsColumnReordering = !!shouldAllowColumnReordering; +} +}), new objj_method(sel_getUid("allowsColumnReordering"), function $NEWCPTableView__allowsColumnReordering(self, _cmd) +{ with(self) +{ + return _allowsColumnReordering; +} +}), new objj_method(sel_getUid("setAllowsColumnResizing:"), function $NEWCPTableView__setAllowsColumnResizing_(self, _cmd, shouldAllowColumnResizing) +{ with(self) +{ + _allowsColumnResizing = !!shouldAllowColumnResizing; +} +}), new objj_method(sel_getUid("allowsColumnResizing"), function $NEWCPTableView__allowsColumnResizing(self, _cmd) +{ with(self) +{ + return _allowsColumnResizing; +} +}), new objj_method(sel_getUid("setAllowsMultipleSelection:"), function $NEWCPTableView__setAllowsMultipleSelection_(self, _cmd, shouldAllowMultipleSelection) +{ with(self) +{ + _allowsMultipleSelection = !!shouldAllowMultipleSelection; +} +}), new objj_method(sel_getUid("allowsMultipleSelection"), function $NEWCPTableView__allowsMultipleSelection(self, _cmd) +{ with(self) +{ + return _allowsMultipleSelection; +} +}), new objj_method(sel_getUid("setAllowsEmptySelection:"), function $NEWCPTableView__setAllowsEmptySelection_(self, _cmd, shouldAllowEmptySelection) +{ with(self) +{ + _allowsEmptySelection = !!shouldAllowEmptySelection; +} +}), new objj_method(sel_getUid("allowsEmptySelection"), function $NEWCPTableView__allowsEmptySelection(self, _cmd) +{ with(self) +{ + return _allowsEmptySelection; +} +}), new objj_method(sel_getUid("setAllowsColumnSelection:"), function $NEWCPTableView__setAllowsColumnSelection_(self, _cmd, shouldAllowColumnSelection) +{ with(self) +{ + _allowsColumnSelection = !!shouldAllowColumnSelection; +} +}), new objj_method(sel_getUid("allowsColumnSelection"), function $NEWCPTableView__allowsColumnSelection(self, _cmd) +{ with(self) +{ + return _allowsColumnSelection; +} +}), new objj_method(sel_getUid("setIntercellSpacing:"), function $NEWCPTableView__setIntercellSpacing_(self, _cmd, aSize) +{ with(self) +{ + if ((_intercellSpacing.width == aSize.width && _intercellSpacing.height == aSize.height)) + return; + _intercellSpacing = { width:aSize.width, height:aSize.height }; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("setThemeState:"), function $NEWCPTableView__setThemeState_(self, _cmd, astae) +{ with(self) +{ +} +}), new objj_method(sel_getUid("intercellSpacing"), function $NEWCPTableView__intercellSpacing(self, _cmd) +{ with(self) +{ + return { width:_intercellSpacing.width, height:_intercellSpacing.height }; +} +}), new objj_method(sel_getUid("setRowHeight:"), function $NEWCPTableView__setRowHeight_(self, _cmd, aRowHeight) +{ with(self) +{ + aRowHeight = +aRowHeight; + if (_rowHeight === aRowHeight) + return; + _rowHeight = aRowHeight; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("rowHeight"), function $NEWCPTableView__rowHeight(self, _cmd) +{ with(self) +{ + return _rowHeight; +} +}), new objj_method(sel_getUid("addTableColumn:"), function $NEWCPTableView__addTableColumn_(self, _cmd, aTableColumn) +{ with(self) +{ + objj_msgSend(_tableColumns, "addObject:", aTableColumn); + objj_msgSend(aTableColumn, "setTableView:", self); + if (_dirtyTableColumnRangeIndex < 0) + _dirtyTableColumnRangeIndex = (_tableColumns.length) - 1; + else + _dirtyTableColumnRangeIndex = MIN((_tableColumns.length) - 1, _dirtyTableColumnRangeIndex); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("removeTableColumn:"), function $NEWCPTableView__removeTableColumn_(self, _cmd, aTableColumn) +{ with(self) +{ + if (objj_msgSend(aTableColumn, "tableView") !== self) + return; + var index = objj_msgSend(_tableColumns, "indeOfObjectIdenticalTo:", aTableColumn); + if (index === CPNotFound) + return; + objj_msgSend(aTableColumn, "setTableView:", nil); + objj_msgSend(_tableColumns, "removeObjectAtIndex:", index); + var tableColumnUID = objj_msgSend(aTableColumn, "UID"); + if (_objectValues[tableColumnUID]) + _objectValues[tableColumnUID] = nil; + if (_dirtyTableColumnRangeIndex < 0) + _dirtyTableColumnRangeIndex = index; + else + _dirtyTableColumnRangeIndex = MIN(index, _dirtyTableColumnRangeIndex); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("moveColumn:toColumn:"), function $NEWCPTableView__moveColumn_toColumn_(self, _cmd, fromIndex, toIndex) +{ with(self) +{ + fromIndex = +fromIndex; + toIndex = +toIndex; + if (fromIndex === toIndex) + return; + if (_dirtyTableColumnRangeIndex < 0) + _dirtyTableColumnRangeIndex = MIN(fromIndex, toIndex); + else + _dirtyTableColumnRangeIndex = MIN(fromIndex, toIndex, _dirtyTableColumnRangeIndex); + if (toIndex > fromIndex) + --toIndex; + var tableColumn = _tableColumns[fromIndex]; + objj_msgSend(_tableColumns, "removeObjectAtIndex:", fromIndex); + objj_msgSend(_tableColumns, "insertObject:atIndex:", tableColumn, toIndex); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("tableColumns"), function $NEWCPTableView__tableColumns(self, _cmd) +{ with(self) +{ + return _tableColumns; +} +}), new objj_method(sel_getUid("columnWithIdentifier:"), function $NEWCPTableView__columnWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + var index = 0, + count = (_tableColumns.length); + for (; index < count; ++index) + if (objj_msgSend(_tableColumns, "identifier") === anIdentifier) + return index; + return CPNotFound; +} +}), new objj_method(sel_getUid("tableColumnWithIdentifier:"), function $NEWCPTableView__tableColumnWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + var index = objj_msgSend(self, "columnWithIdentifier:", anIdentifier); + if (index === CPNotFound) + return nil; + return _tableColumns[index]; +} +}), new objj_method(sel_getUid("selectColumnIndexes:byExtendingSelection:"), function $NEWCPTableView__selectColumnIndexes_byExtendingSelection_(self, _cmd, columns, shouldExtendSelection) +{ with(self) +{ + _selectedRowIndexes = objj_msgSend(CPIndexSet, "indexSet"); + if (shouldExtendSelection) + objj_msgSend(_selectedColumnIndexes, "addIndexes:", columns); + else + _selectedColumnIndexes = objj_msgSend(columns, "copy"); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("selectRowIndexes:byExtendingSelection:"), function $NEWCPTableView__selectRowIndexes_byExtendingSelection_(self, _cmd, rows, shouldExtendSelection) +{ with(self) +{ + _selectedColumnIndexes = objj_msgSend(CPIndexSet, "indexSet"); + if (shouldExtendSelection) + objj_msgSend(_selectedRowIndexes, "addIndexes:", rows); + else + _selectedRowIndexes = objj_msgSend(rows, "copy"); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("selectedColumnIndexes"), function $NEWCPTableView__selectedColumnIndexes(self, _cmd) +{ with(self) +{ + return _selectedColumnIndexes; +} +}), new objj_method(sel_getUid("selectedRowIndexes"), function $NEWCPTableView__selectedRowIndexes(self, _cmd) +{ with(self) +{ + return _selectedRowIndexes; +} +}), new objj_method(sel_getUid("deselectColumn:"), function $NEWCPTableView__deselectColumn_(self, _cmd, aColumn) +{ with(self) +{ + objj_msgSend(_selectedColumnIndexes, "removeIndex:", aColumn); +} +}), new objj_method(sel_getUid("deselectRow:"), function $NEWCPTableView__deselectRow_(self, _cmd, aRow) +{ with(self) +{ + objj_msgSend(_selectedRowIndexes, "removeIndex:", aRow); +} +}), new objj_method(sel_getUid("numberOfSelectedColumns"), function $NEWCPTableView__numberOfSelectedColumns(self, _cmd) +{ with(self) +{ + return objj_msgSend(_selectedColumnIndexes, "count"); +} +}), new objj_method(sel_getUid("numberOfSelectedRows"), function $NEWCPTableView__numberOfSelectedRows(self, _cmd) +{ with(self) +{ + return objj_msgSend(_selectedRowIndexes, "count"); +} +}), new objj_method(sel_getUid("isColumnSelected:"), function $NEWCPTableView__isColumnSelected_(self, _cmd, aColumn) +{ with(self) +{ + return objj_msgSend(_selectedColumnIndexes, "containsIndex:", aColumn); +} +}), new objj_method(sel_getUid("isRowSelected:"), function $NEWCPTableView__isRowSelected_(self, _cmd, aRow) +{ with(self) +{ + return objj_msgSend(_selectedRowIndexes, "containsIndex:", aRow); +} +}), new objj_method(sel_getUid("numberOfColumns"), function $NEWCPTableView__numberOfColumns(self, _cmd) +{ with(self) +{ + return (_tableColumns.length); +} +}), new objj_method(sel_getUid("numberOfRows"), function $NEWCPTableView__numberOfRows(self, _cmd) +{ with(self) +{ + if (!_dataSource) + return 0; + return objj_msgSend(_dataSource, "numberOfRowsInTableView:", self); +} +}), new objj_method(sel_getUid("cornerView"), function $NEWCPTableView__cornerView(self, _cmd) +{ with(self) +{ + return _cornerView; +} +}), new objj_method(sel_getUid("setCornerView:"), function $NEWCPTableView__setCornerView_(self, _cmd, aView) +{ with(self) +{ + _cornerView = aView; +} +}), new objj_method(sel_getUid("headerView"), function $NEWCPTableView__headerView(self, _cmd) +{ with(self) +{ + return _headerView; +} +}), new objj_method(sel_getUid("setHeaderView:"), function $NEWCPTableView__setHeaderView_(self, _cmd, aHeaderView) +{ with(self) +{ + _headerView = aHeaderView; + objj_msgSend(_headerView, "setTableView:", self); +} +}), new objj_method(sel_getUid("_recalculateTableColumnRanges"), function $NEWCPTableView___recalculateTableColumnRanges(self, _cmd) +{ with(self) +{ + if (_dirtyTableColumnRangeIndex < 0) + return; + var index = _dirtyTableColumnRangeIndex, + count = (_tableColumns.length), + x = index === 0 ? 0.0 : CPMaxRange(_tableColumnRanges[index - 1]); + for (; index < count; ++index) + { + var tableColumn = _tableColumns[index]; + if (objj_msgSend(tableColumn, "isHidden")) + _tableColumnRanges[index] = CPMakeRange(x, 0.0); + else + { + var width = objj_msgSend(_tableColumns[index], "width"); + _tableColumnRanges[index] = CPMakeRange(x, width); + x += width; + } + } + _tableColumnRanges.length = count; + _dirtyTableColumnRangeIndex = CPNotFound; +} +}), new objj_method(sel_getUid("rectOfColumn:"), function $NEWCPTableView__rectOfColumn_(self, _cmd, aColumnIndex) +{ with(self) +{ + aColumnIndex = +aColumnIndex; + if (aColumnIndex < 0 || aColumnIndex >= (_tableColumns.length)) + return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + if (_dirtyTableColumnRangeIndex !== CPNotFound) + objj_msgSend(self, "_recalculateTableColumnRanges"); + var range = _tableColumnRanges[aColumnIndex]; + return { origin: { x:range.location, y:0.0 }, size: { width:range.length, height:CGRectGetHeight(objj_msgSend(self, "bounds")) } }; +} +}), new objj_method(sel_getUid("rectOfRow:"), function $NEWCPTableView__rectOfRow_(self, _cmd, aRowIndex) +{ with(self) +{ + if (NO) + return NULL; + return { origin: { x:0.0, y:(aRowIndex * (_rowHeight + _intercellSpacing.height)) }, size: { width:(objj_msgSend(self, "bounds").size.width), height:_rowHeight } }; +} +}), new objj_method(sel_getUid("rowsInRect:"), function $NEWCPTableView__rowsInRect_(self, _cmd, aRect) +{ with(self) +{ + var bounds = nil, + firstRow = objj_msgSend(self, "rowAtPoint:", aRect.origin), + lastRow = objj_msgSend(self, "rowAtPoint:", { x:0.0, y:(aRect.origin.y + aRect.size.height) }); + if (firstRow < 0) + { + bounds = objj_msgSend(self, "bounds"); + if ((aRect.origin.y) < (bounds.origin.y)) + firstRow = 0; + else + firstRow = _numberOfRows - 1; + } + if (lastRow < 0) + { + if (!bounds) + bounds = objj_msgSend(self, "bounds"); + if ((aRect.origin.y + aRect.size.height) < (bounds.origin.y)) + lastRow = 0; + else + lastRow = _numberOfRows - 1; + } + return CPMakeRange(firstRow, lastRow - firstRow + 1); +} +}), new objj_method(sel_getUid("columnIndexesInRect:"), function $NEWCPTableView__columnIndexesInRect_(self, _cmd, aRect) +{ with(self) +{ + var column = MAX(0, objj_msgSend(self, "columnAtPoint:", { x:aRect.origin.x, y:0.0 })), + lastColumn = objj_msgSend(self, "columnAtPoint:", { x:(aRect.origin.x + aRect.size.width), y:0.0 }); + if (lastColumn === CPNotFound) + lastColumn = (_tableColumns.length) - 1; + if (_numberOfHiddenColumns <= 0) + return objj_msgSend(CPIndexSet, "indexSetWithIndexesInRange:", CPMakeRange(column, lastColumn - column + 1)); + var indexSet = objj_msgSend(CPIndexSet, "indexSet"); + for (; column <= lastColumn; ++column) + { + var tableColumn = _tableColumns[column]; + if (!objj_msgSend(tableColumn, "isHidden")) + objj_msgSend(indexSet, "addIndex:", column); + } + return indexSet; +} +}), new objj_method(sel_getUid("columnAtPoint:"), function $NEWCPTableView__columnAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"); + if (!(aPoint.x >= (bounds.origin.x) && aPoint.y >= (bounds.origin.y) && aPoint.x < (bounds.origin.x + bounds.size.width) && aPoint.y < (bounds.origin.y + bounds.size.height))) + return CPNotFound; + if (_dirtyTableColumnRangeIndex !== CPNotFound) + objj_msgSend(self, "_recalculateTableColumnRanges"); + var x = aPoint.x, + low = 0, + high = _tableColumnRanges.length - 1; + while (low <= high) + { + var middle = FLOOR(low + (high - low) / 2), + range = _tableColumnRanges[middle]; + if (x < range.location) + high = middle - 1; + else if (x >= CPMaxRange(range)) + low = middle + 1; + else + { + var numberOfColumns = _tableColumnRanges.length; + while (middle < numberOfColumns && objj_msgSend(_tableColumns[middle], "isHidden")) + ++middle; + if (middle < numberOfColumns) + return middle; + return CPNotFound; + } + } + return CPNotFound; +} +}), new objj_method(sel_getUid("rowAtPoint:"), function $NEWCPTableView__rowAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var y = aPoint.y; + if (NO) + { + } + return FLOOR(y / (_rowHeight + _intercellSpacing.height)); +} +}), new objj_method(sel_getUid("frameOfDataViewAtColumn:row:"), function $NEWCPTableView__frameOfDataViewAtColumn_row_(self, _cmd, aColumnIndex, aRowIndex) +{ with(self) +{ + var tableColumnRange = _tableColumns[aColumnIndex], + rectOfRow = objj_msgSend(self, "rectOfRow:", aRowIndex); + return { origin: { x:tableColumnRange.location, y:(rectOfRow.origin.y) }, size: { width:tableColumnRange.length, height:(rectOfRow.size.height) } }; +} +}), new objj_method(sel_getUid("sizeLastColumnToFit"), function $NEWCPTableView__sizeLastColumnToFit(self, _cmd) +{ with(self) +{ + var superview = objj_msgSend(self, "superview"); + if (!superview) + return; + var superviewSize = objj_msgSend(superview, "bounds").size; + if (_dirtyTableColumnRangeIndex !== CPNotFound) + objj_msgSend(self, "_recalculateTableColumnRanges"); + var count = (_tableColumns.length); + while (count-- && objj_msgSend(_tableColumns[count], "isHidden")) ; + if (count >= 0) + { + var difference = superviewSize.width - CPMaxRange(_tableColumnRanges[count]), + tableColumn = _tableColumns[count]; + objj_msgSend(tableColumn, "setWidth:", MAX(0.0, objj_msgSend(tableColumn, "width") + difference)); + } + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("noteNumberOfRowsChanged"), function $NEWCPTableView__noteNumberOfRowsChanged(self, _cmd) +{ with(self) +{ + _numberOfRows = objj_msgSend(_dataSource, "numberOfRowsInTableView:", self); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("_sizeToParent"), function $NEWCPTableView___sizeToParent(self, _cmd) +{ with(self) +{ + var superviewSize = objj_msgSend(objj_msgSend(self, "superview"), "bounds").size; + if (_dirtyTableColumnRangeIndex !== CPNotFound) + objj_msgSend(self, "_recalculateTableColumnRanges"); + if (_tableColumnRanges.length > 0) + var naturalWidth = CPMaxRange(objj_msgSend(_tableColumnRanges, "lastObject")); + else + var naturalWidth = 0.0; + objj_msgSend(self, "setFrameSize:", { width:MAX(superviewSize.width, naturalWidth), height:MAX(superviewSize.height, (_rowHeight + _intercellSpacing.height) * _numberOfRows) }); +} +}), new objj_method(sel_getUid("setDelegate:"), function $NEWCPTableView__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate === aDelegate) + return; + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_delegate) + { + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidMove:"))) + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPTableViewColumnDidMoveNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidResize:"))) + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPTableViewColumnDidResizeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionDidChange:"))) + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPTableViewSelectionDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionIsChanging:"))) + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPTableViewSelectionIsChangingNotification, self); + } + _delegate = aDelegate; + _implementedDelegateMethods = 0; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("selectionShouldChangeInTableView:"))) + _implementedDelegateMethods |= CPTableViewDelegate_selectionShouldChangeInTableView_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:dataViewForTableColumn:row:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_dataViewForTableColumn_row_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:didClickTableColumn:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_didClickTableColumn_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:didDragTableColumn:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_didDragTableColumn_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:heightOfRow:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_heightOfRow_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:isGroupRow:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_isGroupRow_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:mouseDownInHeaderOfTableColumn:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_mouseDownInHeaderOfTableColumn_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:nextTypeSelectMatchFromRow:toRow:forString:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_nextTypeSelectMatchFromRow_toRow_forString_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:selectionIndexesForProposedSelection:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_selectionIndexesForProposedSelection_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldEditTableColumn:row:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_shouldEditTableColumn_row_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldSelectRow:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_shouldSelectRow_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldSelectTableColumn:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_shouldSelectTableColumn_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldShowViewExpansionForTableColumn:row:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_shouldShowViewExpansionForTableColumn_row_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldTrackView:forTableColumn:row:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_shouldTrackView_forTableColumn_row_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldTypeSelectForEvent:withCurrentSearchString:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_shouldTypeSelectForEvent_withCurrentSearchString_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:toolTipForView:rect:tableColumn:row:mouseLocation:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_toolTipForView_rect_tableColumn_row_mouseLocation_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:typeSelectStringForTableColumn:row:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_typeSelectStringForTableColumn_row_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:willDisplayView:forTableColumn:row:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_willDisplayView_forTableColumn_row_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidMove:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewColumnDidMove:"), CPTableViewColumnDidMoveNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidResize:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewColumnDidMove:"), CPTableViewColumnDidResizeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionDidChange:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewSelectionDidChange:"), CPTableViewSelectionDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionIsChanging:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewSelectionIsChanging:"), CPTableViewSelectionIsChangingNotification, self); +} +}), new objj_method(sel_getUid("delegate"), function $NEWCPTableView__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("_objectValueForTableColumn:row:"), function $NEWCPTableView___objectValueForTableColumn_row_(self, _cmd, aTableColumn, aRowIndex) +{ with(self) +{ + var tableColumnUID = objj_msgSend(aTableColumn, "UID"), + tableColumnObjectValues = _objectValues[tableColumnUID]; + if (!tableColumnObjectValues) + { + tableColumnObjectValues = []; + _objectValues[tableColumnUID] = tableColumnObjectValues; + } + var objectValue = tableColumnObjectValues[aRowIndex]; + if (objectValue === undefined) + { + objectValue = objj_msgSend(_dataSource, "tableView:objectValueForTableColumn:row:", self, aTableColumn, aRowIndex); + tableColumnObjectValues[aRowIndex] = objectValue; + } + return objectValue; +} +}), new objj_method(sel_getUid("_exposedRect"), function $NEWCPTableView___exposedRect(self, _cmd) +{ with(self) +{ + var superview = objj_msgSend(self, "superview"); + if (!objj_msgSend(superview, "isKindOfClass:", objj_msgSend(CPClipView, "class"))) + return objj_msgSend(self, "bounds"); + return objj_msgSend(self, "convertRect:fromView:", CGRectIntersection(objj_msgSend(superview, "bounds"), objj_msgSend(self, "frame")), superview); +} +}), new objj_method(sel_getUid("load"), function $NEWCPTableView__load(self, _cmd) +{ with(self) +{ + if (!_dataSource) + { + return; + } + if (window.console && window.console.profile) + console.profile("cell-load"); + var exposedRect = objj_msgSend(self, "_exposedRect"), + exposedRows = objj_msgSend(CPIndexSet, "indexSetWithIndexesInRange:", objj_msgSend(self, "rowsInRect:", exposedRect)), + exposedColumns = objj_msgSend(self, "columnIndexesInRect:", exposedRect), + obscuredRows = objj_msgSend(_exposedRows, "copy"), + obscuredColumns = objj_msgSend(_exposedColumns, "copy"); + objj_msgSend(obscuredRows, "removeIndexes:", exposedRows); + objj_msgSend(obscuredColumns, "removeIndexes:", exposedColumns); + var newlyExposedRows = objj_msgSend(exposedRows, "copy"), + newlyExposedColumns = objj_msgSend(exposedColumns, "copy"); + objj_msgSend(newlyExposedRows, "removeIndexes:", _exposedRows); + objj_msgSend(newlyExposedColumns, "removeIndexes:", _exposedColumns); + var previouslyExposedRows = objj_msgSend(exposedRows, "copy"), + previouslyExposedColumns = objj_msgSend(exposedColumns, "copy"); + objj_msgSend(previouslyExposedRows, "removeIndexes:", newlyExposedRows); + objj_msgSend(previouslyExposedColumns, "removeIndexes:", newlyExposedColumns); + objj_msgSend(self, "_unloadDataViewsInRows:columns:", previouslyExposedRows, obscuredColumns); + objj_msgSend(self, "_unloadDataViewsInRows:columns:", obscuredRows, previouslyExposedColumns); + objj_msgSend(self, "_unloadDataViewsInRows:columns:", obscuredRows, obscuredColumns); + objj_msgSend(self, "_loadDataViewsInRows:columns:", previouslyExposedRows, newlyExposedColumns); + objj_msgSend(self, "_loadDataViewsInRows:columns:", newlyExposedRows, previouslyExposedColumns); + objj_msgSend(self, "_loadDataViewsInRows:columns:", newlyExposedRows, newlyExposedColumns); + _exposedRows = exposedRows; + _exposedColumns = exposedColumns; + objj_msgSend(_tableDrawView, "setFrame:", exposedRect); + objj_msgSend(_tableDrawView, "display"); + if (window.console && window.console.profile) + console.profileEnd("cell-load"); +} +}), new objj_method(sel_getUid("_unloadDataViewsInRows:columns:"), function $NEWCPTableView___unloadDataViewsInRows_columns_(self, _cmd, rows, columns) +{ with(self) +{ + if (!objj_msgSend(rows, "count") || !objj_msgSend(columns, "count")) + return; + var rowArray = [], + columnArray = []; + objj_msgSend(rows, "getIndexes:maxCount:inIndexRange:", rowArray, -1, nil); + objj_msgSend(columns, "getIndexes:maxCount:inIndexRange:", columnArray, -1, nil); + var columnIndex = 0, + columnsCount = columnArray.length; + for (; columnIndex < columnsCount; ++columnIndex) + { + var column = columnArray[columnIndex], + tableColumn = _tableColumns[column], + tableColumnUID = objj_msgSend(tableColumn, "UID"); + var rowIndex = 0, + rowsCount = rowArray.length; + for (; rowIndex < rowsCount; ++rowIndex) + { + var row = rowArray[rowIndex], + dataView = _dataViewsForTableColumns[tableColumnUID][row]; + _dataViewsForTableColumns[tableColumnUID][row] = nil; +if (!_cachedDataViews[dataView.identifier]) +_cachedDataViews[dataView.identifier] = [dataView]; +else +_cachedDataViews[dataView.identifier].push(dataView); + } + } +} +}), new objj_method(sel_getUid("_loadDataViewsInRows:columns:"), function $NEWCPTableView___loadDataViewsInRows_columns_(self, _cmd, rows, columns) +{ with(self) +{ + if (!objj_msgSend(rows, "count") || !objj_msgSend(columns, "count")) + return; + var rowArray = [], + rowRects = [], + columnArray = []; + objj_msgSend(rows, "getIndexes:maxCount:inIndexRange:", rowArray, -1, nil); + objj_msgSend(columns, "getIndexes:maxCount:inIndexRange:", columnArray, -1, nil); + var columnIndex = 0, + columnsCount = columnArray.length; + for (; columnIndex < columnsCount; ++columnIndex) + { + var column = columnArray[columnIndex], + tableColumn = _tableColumns[column], + tableColumnUID = objj_msgSend(tableColumn, "UID"), + tableColumnRange = _tableColumnRanges[column]; + if (!_dataViewsForTableColumns[tableColumnUID]) + _dataViewsForTableColumns[tableColumnUID] = []; + var rowIndex = 0, + rowsCount = rowArray.length; + for (; rowIndex < rowsCount; ++rowIndex) + { + var row = rowArray[rowIndex], + dataView = objj_msgSend(tableColumn, "_newDataViewForRow:", row), + rectOfRow = rowRects[row]; + if (!rectOfRow) + rectOfRow = rowRects[row] = objj_msgSend(self, "rectOfRow:", row); + objj_msgSend(dataView, "setFrame:", { origin: { x:tableColumnRange.location, y:(rectOfRow.origin.y) }, size: { width:tableColumnRange.length, height:(rectOfRow.size.height) } }); + objj_msgSend(dataView, "setObjectValue:", objj_msgSend(self, "_objectValueForTableColumn:row:", tableColumn, row)); + if (objj_msgSend(dataView, "superview") !== self) + objj_msgSend(self, "addSubview:", dataView); + _dataViewsForTableColumns[tableColumnUID][row] = dataView; + } + } +} +}), new objj_method(sel_getUid("setFrameSize:"), function $NEWCPTableView__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setFrameSize:", aSize); + objj_msgSend(_headerView, "setFrameSize:", CGSizeMake(aSize.width, objj_msgSend(_headerView, "frame").size.height)); +} +}), new objj_method(sel_getUid("_drawRect:"), function $NEWCPTableView___drawRect_(self, _cmd, aRect) +{ with(self) +{ + objj_msgSend(self, "highlightSelectionInClipRect:", objj_msgSend(self, "_exposedRect")); +} +}), new objj_method(sel_getUid("highlightSelectionInClipRect:"), function $NEWCPTableView__highlightSelectionInClipRect_(self, _cmd, aRect) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPColor, "greenColor"), "set"); + var context = objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"); + if (objj_msgSend(_selectedRowIndexes, "count") >= 1) + { + var exposedRows = objj_msgSend(CPIndexSet, "indexSetWithIndexesInRange:", objj_msgSend(self, "rowsInRect:", aRect)), + exposedRange = CPMakeRange(objj_msgSend(exposedRows, "firstIndex"), objj_msgSend(exposedRows, "lastIndex") - objj_msgSend(exposedRows, "firstIndex") + 1), + rowArray = []; + objj_msgSend(_selectedRowIndexes, "getIndexes:maxCount:inIndexRange:", rowArray, -1, exposedRange); + var rowArrayIndex = 0, + rowArrayCount = rowArray.length; + for (; rowArrayIndex < rowArrayCount; ++rowArrayIndex) + CGContextFillRect(context, objj_msgSend(self, "rectOfRow:", rowArray[rowArrayIndex])); + } + else + { + } +} +}), new objj_method(sel_getUid("layoutSubviews"), function $NEWCPTableView__layoutSubviews(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "load"); +} +}), new objj_method(sel_getUid("viewWillMoveToSuperview:"), function $NEWCPTableView__viewWillMoveToSuperview_(self, _cmd, aView) +{ with(self) +{ + var superview = objj_msgSend(self, "superview"), + defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (superview) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPViewFrameDidChangeNotification, superview); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPViewBoundsDidChangeNotification, superview); + } + if (aView) + { + objj_msgSend(aView, "setPostsFrameChangedNotifications:", YES); + objj_msgSend(aView, "setPostsBoundsChangedNotifications:", YES); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("superviewFrameChanged:"), CPViewFrameDidChangeNotification, aView); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("superviewBoundsChanged:"), CPViewBoundsDidChangeNotification, aView); + } +} +}), new objj_method(sel_getUid("superviewBoundsChanged:"), function $NEWCPTableView__superviewBoundsChanged_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("superviewFrameChanged:"), function $NEWCPTableView__superviewFrameChanged_(self, _cmd, aNotification) +{ with(self) +{ +} +}), new objj_method(sel_getUid("startTrackingAt:"), function $NEWCPTableView__startTrackingAt_(self, _cmd, aPoint) +{ with(self) +{ + var row = objj_msgSend(self, "rowAtPoint:", aPoint); + if (objj_msgSend(self, "mouseDownFlags") & CPShiftKeyMask) + _selectionAnchor = (ABS(objj_msgSend(_selectedRowIndexes, "firstIndex") - row) < ABS(objj_msgSend(_selectedRowIndexes, "lastIndex") - row)) ? + objj_msgSend(_selectedRowIndexes, "firstIndex") : objj_msgSend(_selectedRowIndexes, "lastIndex"); + else + _selectionAnchor = row; + objj_msgSend(self, "_updateSelectionWithMouseAtRow:", row); + return YES; +} +}), new objj_method(sel_getUid("continueTracking:at:"), function $NEWCPTableView__continueTracking_at_(self, _cmd, lastPoint, aPoint) +{ with(self) +{ + objj_msgSend(self, "_updateSelectionWithMouseAtRow:", objj_msgSend(self, "rowAtPoint:", aPoint)); + return YES; +} +}), new objj_method(sel_getUid("stopTracking:at:mouseIsUp:"), function $NEWCPTableView__stopTracking_at_mouseIsUp_(self, _cmd, lastPoint, aPoint, mouseIsUp) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_updateSelectionWithMouseAtRow:"), function $NEWCPTableView___updateSelectionWithMouseAtRow_(self, _cmd, aRow) +{ with(self) +{ + if (objj_msgSend(self, "mouseDownFlags") & (CPCommandKeyMask | CPControlKeyMask | CPAlternateKeyMask)) + { + if (objj_msgSend(_selectedRowIndexes, "containsIndex:", aRow)) + { + newSelection = objj_msgSend(_selectedRowIndexes, "copy"); + objj_msgSend(newSelection, "removeIndex:", aRow); + } + else if (_allowsMultipleSelection) + { + newSelection = objj_msgSend(_selectedRowIndexes, "copy"); + objj_msgSend(newSelection, "addIndex:", aRow); + } + else + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndex:", aRow); + } + else if (_allowsMultipleSelection) + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndexesInRange:", CPMakeRange(MIN(aRow, _selectionStartRow), ABS(aRow - _selectionStartRow) + 1)); + else if (aRow >= 0 && aRow < _numberOfRows) + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndex:", aRow); + else + newSelection = objj_msgSend(CPIndexSet, "indexSet"); + if (objj_msgSend(newSelection, "isEqualToIndexSet:", _selectedRowIndexes)) + return; + if (_implementedDelegateMethods & CPTableViewDelegate_selectionShouldChangeInTableView_ && + !objj_msgSend(_delegate, "selectionShouldChangeInTableView:", self)) + return; + if (_implementedDelegateMethods & CPTableViewDelegate_tableView_selectionIndexesForProposedSelection_) + newSelection = objj_msgSend(_delegate, "tableView:selectionIndexesForProposedSelection:", self, newSelection); + if (_implementedDelegateMethods & CPTableViewDelegate_tableView_shouldSelectRow_) + { + var indexArray = []; + objj_msgSend(newSelection, "getIndexes:maxCount:inIndexRange:", indexArray, -1, nil); + var indexCount = indexArray.length; + while (indexCount--) + { + var index = indexArray[indexCount]; + if (!objj_msgSend(_delegate, "tableView:shouldSelectRow:", self, index)) + objj_msgSend(newSelection, "removeIndex:", index); + } + } + if (!_allowsEmptySelection && objj_msgSend(newSelection, "count") === 0) + return; + if (objj_msgSend(newSelection, "isEqualToIndexSet:", _selectedRowIndexes)) + return; + objj_msgSend(self, "selectRowIndexes:byExtendingSelection:", newSelection, NO); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionIsChangingNotification, self, nil); +} +})]); +} + +p;18;OLDCPTableColumn.jI;23;Foundation/Foundation.jc;10254; +CPTableColumnNoResizing = 0; +CPTableColumnAutoresizingMask = 1; +CPTableColumnUserResizingMask = 2; +{var the_class = objj_allocateClassPair(CPObject, "CPTableColumn"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_identifier"), new objj_ivar("_headerView"), new objj_ivar("_tableView"), new objj_ivar("_width"), new objj_ivar("_minWidth"), new objj_ivar("_maxWidth"), new objj_ivar("_resizingMask"), new objj_ivar("_dataView"), new objj_ivar("_dataViewData"), new objj_ivar("_dataViewForView"), new objj_ivar("_purgableInfosForDataView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithIdentifier:"), function $CPTableColumn__initWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + objj_msgSend(self, "_init"); + _identifier = anIdentifier; + _width = 40.0; + _minWidth = 8.0; + _maxWidth = 1000.0; + var dataView = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMakeZero()); + objj_msgSend(dataView, "setValue:forThemeAttribute:inState:", objj_msgSend(CPColor, "whiteColor"), "text-color", CPThemeStateHighlighted); + objj_msgSend(self, "setDataView:", dataView); + _headerView = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMakeZero()); + objj_msgSend(_headerView, "setBackgroundColor:", objj_msgSend(CPColor, "greenColor")); + } + return self; +} +}), new objj_method(sel_getUid("_init"), function $CPTableColumn___init(self, _cmd) +{ with(self) +{ + _dataViewData = {}; + _dataViewForView = {}; + _purgableInfosForDataView = {}; +} +}), new objj_method(sel_getUid("setIdentifier:"), function $CPTableColumn__setIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + _identifier = anIdentifier; +} +}), new objj_method(sel_getUid("identifier"), function $CPTableColumn__identifier(self, _cmd) +{ with(self) +{ + return _identifier; +} +}), new objj_method(sel_getUid("setTableView:"), function $CPTableColumn__setTableView_(self, _cmd, aTableView) +{ with(self) +{ + _tableView = aTableView; +} +}), new objj_method(sel_getUid("tableView"), function $CPTableColumn__tableView(self, _cmd) +{ with(self) +{ + return _tableView; +} +}), new objj_method(sel_getUid("setWidth:"), function $CPTableColumn__setWidth_(self, _cmd, aWidth) +{ with(self) +{ + _width = aWidth; +} +}), new objj_method(sel_getUid("width"), function $CPTableColumn__width(self, _cmd) +{ with(self) +{ + return _width; +} +}), new objj_method(sel_getUid("setMinWidth:"), function $CPTableColumn__setMinWidth_(self, _cmd, aWidth) +{ with(self) +{ + if (_width < (_minWidth = aWidth)) + objj_msgSend(self, "setWidth:", _minWidth); +} +}), new objj_method(sel_getUid("minWidth"), function $CPTableColumn__minWidth(self, _cmd) +{ with(self) +{ + return _minWidth; +} +}), new objj_method(sel_getUid("setMaxWidth:"), function $CPTableColumn__setMaxWidth_(self, _cmd, aWidth) +{ with(self) +{ + if (_width > (_maxmimumWidth = aWidth)) + objj_msgSend(self, "setWidth:", _maxWidth); +} +}), new objj_method(sel_getUid("setResizingMask:"), function $CPTableColumn__setResizingMask_(self, _cmd, aMask) +{ with(self) +{ + _resizingMask = aMask; +} +}), new objj_method(sel_getUid("resizingMask"), function $CPTableColumn__resizingMask(self, _cmd) +{ with(self) +{ + return _resizingMask; +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPTableColumn__sizeToFit(self, _cmd) +{ with(self) +{ + var width = CPRectGetWidth(objj_msgSend(_headerView, "frame")); + if (width < _minWidth) + objj_msgSend(self, "setMinWidth:", width); + else if (width > _maxWidth) + objj_msgSend(self, "setMaxWidth:", width) + if (_width != width) + objj_msgSend(self, "setWidth:", width); +} +}), new objj_method(sel_getUid("setEditable:"), function $CPTableColumn__setEditable_(self, _cmd, aFlag) +{ with(self) +{ + _isEditable = aFlag; +} +}), new objj_method(sel_getUid("isEditable"), function $CPTableColumn__isEditable(self, _cmd) +{ with(self) +{ + return _isEditable; +} +}), new objj_method(sel_getUid("setHeaderView:"), function $CPTableColumn__setHeaderView_(self, _cmd, aView) +{ with(self) +{ + _headerView = aView; +} +}), new objj_method(sel_getUid("headerView"), function $CPTableColumn__headerView(self, _cmd) +{ with(self) +{ + return _headerView; +} +}), new objj_method(sel_getUid("setDataCell:"), function $CPTableColumn__setDataCell_(self, _cmd, aView) +{ with(self) +{ + objj_msgSend(self, "setDataView:", aView); +} +}), new objj_method(sel_getUid("setDataView:"), function $CPTableColumn__setDataView_(self, _cmd, aView) +{ with(self) +{ + if (_dataView) + _dataViewData[objj_msgSend(_dataView, "UID")] = nil; + _dataView = aView; + _dataViewData[objj_msgSend(aView, "UID")] = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", aView); +} +}), new objj_method(sel_getUid("dataCell"), function $CPTableColumn__dataCell(self, _cmd) +{ with(self) +{ + return _dataView; +} +}), new objj_method(sel_getUid("dataView"), function $CPTableColumn__dataView(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "dataCell"); +} +}), new objj_method(sel_getUid("dataCellForRow:"), function $CPTableColumn__dataCellForRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return objj_msgSend(self, "dataView"); +} +}), new objj_method(sel_getUid("dataViewForRow:"), function $CPTableColumn__dataViewForRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return objj_msgSend(self, "dataCellForRow:", aRowIndex); +} +}), new objj_method(sel_getUid("_markView:inRow:asPurgable:"), function $CPTableColumn___markView_inRow_asPurgable_(self, _cmd, aView, aRow, isPurgable) +{ with(self) +{ + var viewUID = objj_msgSend(aView, "UID"), + dataViewUID = objj_msgSend(_dataViewForView[viewUID], "UID"); + if (!_purgableInfosForDataView[dataViewUID]) + { + if (!isPurgable) + return; + _purgableInfosForDataView[dataViewUID] = {}; + } + if (!isPurgable) { + if (_purgableInfosForDataView[dataViewUID][viewUID]) + CPLog.warn("removing unpurgable " + _purgableInfosForDataView[dataViewUID][viewUID]); + delete _purgableInfosForDataView[dataViewUID][viewUID]; + } + else + _purgableInfosForDataView[dataViewUID][viewUID] = { view:(aView), row:(aRow) }; +} +}), new objj_method(sel_getUid("_newDataViewForRow:avoidingRows:"), function $CPTableColumn___newDataViewForRow_avoidingRows_(self, _cmd, aRowIndex, rows) +{ with(self) +{ + var view = objj_msgSend(self, "dataViewForRow:", aRowIndex), + viewUID = objj_msgSend(view, "UID"), + purgableInfos = _purgableInfosForDataView[viewUID]; + if (purgableInfos) + { + for (var key in purgableInfos) + { + var info = purgableInfos[key]; + delete purgableInfos[key]; + return ((info).view); + } + } + if (!_dataViewData[viewUID]) + _dataViewData[viewUID] = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", view); + var newView = objj_msgSend(CPKeyedUnarchiver, "unarchiveObjectWithData:", _dataViewData[viewUID]); + _dataViewForView[objj_msgSend(newView, "UID")] = view; + CPLog.warn("creating cell: %s", newView); + return newView; +} +}), new objj_method(sel_getUid("_purge"), function $CPTableColumn___purge(self, _cmd) +{ with(self) +{ + for (var viewUID in _purgableInfosForDataView) + { + var purgableInfos = _purgableInfosForDataView[viewUID]; + for (var key in purgableInfos) + { + var view = ((purgableInfos[key]).view); + if (!view) + CPLog.info("key="+key+" view=" + view + " purgableInfos[key]="+purgableInfos[key]) + else if (view._superview) { + objj_msgSend(view, "setHidden:", YES); + } + } + } +} +})]); +} +var CPTableColumnIdentifierKey = "CPTableColumnIdentifierKey", + CPTableColumnHeaderViewKey = "CPTableColumnHeaderViewKey", + CPTableColumnDataViewKey = "CPTableColumnDataViewKey", + CPTableColumnWidthKey = "CPTableColumnWidthKey", + CPTableColumnMinWidthKey = "CPTableColumnMinWidthKey", + CPTableColumnMaxWidthKey = "CPTableColumnMaxWidthKey", + CPTableColumnResizingMaskKey = "CPTableColumnResizingMaskKey"; +{ +var the_class = objj_getClass("CPTableColumn") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTableColumn\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTableColumn__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(self, "_init"); + _identifier = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableColumnIdentifierKey); + objj_msgSend(self, "setHeaderView:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTableColumnHeaderViewKey)); + objj_msgSend(self, "setDataView:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTableColumnDataViewKey)); + _width = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableColumnWidthKey); + _minWidth = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableColumnMinWidthKey); + _maxWidth = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableColumnMaxWidthKey); + _resizingMask = objj_msgSend(aCoder, "decodeBoolForKey:", CPTableColumnResizingMaskKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTableColumn__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _identifier, CPTableColumnIdentifierKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _headerView, CPTableColumnHeaderViewKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _dataView, CPTableColumnDataViewKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _width, CPTableColumnWidthKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _minWidth, CPTableColumnMinWidthKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _maxWidth, CPTableColumnMaxWidthKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _resizingMask, CPTableColumnResizingMaskKey); +} +})]); +} + +p;16;OLDCPTableView.ji;11;CPControl.ji;15;CPTableColumn.ji;9;CPColor.ji;13;CPTextField.jc;40333; +CPTableViewColumnDidMoveNotification = "CPTableViewColumnDidMoveNotification"; +CPTableViewColumnDidResizeNotification = "CPTableViewColumnDidResizeNotification"; +CPTableViewSelectionDidChangeNotification = "CPTableViewSelectionDidChangeNotification"; +CPTableViewSelectionIsChangingNotification = "CPTableViewSelectionIsChangingNotification"; +var _CPTableViewWillDisplayCellSelector = 1 << 0, + _CPTableViewShouldSelectRowSelector = 1 << 1, + _CPTableViewShouldSelectTableColumnSelector = 1 << 2, + _CPTableViewSelectionShouldChangeSelector = 1 << 3, + _CPTableViewShouldEditTableColumnSelector = 1 << 4, + _CPTableViewSelectionIndexesForProposedSelectionSelector = 1 << 5, + _CPTableViewHeightOfRowSelector = 1 << 6; +{var the_class = objj_allocateClassPair(CPControl, "CPTableView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_dataSource"), new objj_ivar("_delegate"), new objj_ivar("_tableColumns"), new objj_ivar("_selectedRowIndexes"), new objj_ivar("_rowHeight"), new objj_ivar("_intercellSpacing"), new objj_ivar("_allowsMultipleSelection"), new objj_ivar("_allowsEmptySelection"), new objj_ivar("_doubleAction"), new objj_ivar("_delegateSelectorsCache"), new objj_ivar("_numberOfRows"), new objj_ivar("_hasVariableHeightRows"), new objj_ivar("_columnHeight"), new objj_ivar("_rowHeights"), new objj_ivar("_rowMinYs"), new objj_ivar("_tableCells"), new objj_ivar("_tableColumnViews"), new objj_ivar("_dataViewCache"), new objj_ivar("_objectValueCache"), new objj_ivar("_visibleRows"), new objj_ivar("_visibleColumns"), new objj_ivar("_populatedRows"), new objj_ivar("_populatedColumns"), new objj_ivar("_previousSelectedRowIndexes"), new objj_ivar("_selectionStartRow"), new objj_ivar("_selectionModifier"), new objj_ivar("_currentlySelected"), new objj_ivar("_selectionViews"), new objj_ivar("_selectionViewsPool"), new objj_ivar("_scrollTimer")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPTableView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + objj_msgSend(self, "_init"); + } + return self; +} +}), new objj_method(sel_getUid("_init"), function $CPTableView___init(self, _cmd) +{ with(self) +{ + _tableColumns = []; + _selectedRowIndexes = objj_msgSend(CPIndexSet, "indexSet"); + _rowHeight = 17.0; + _intercellSpacing = CPSizeMake(3.0, 2.0); + _allowsMultipleSelection = YES; + _allowsEmptySelection = YES; + _tableCells = []; + _tableColumnViews = []; + _dataViewCache = {}; + _objectValueCache = []; + _visibleRows = CPMakeRange(0, 0); + _visibleColumns = CPMakeRange(0, 0); + _rowHeights = []; + _rowMinYs = []; +} +}), new objj_method(sel_getUid("_columnHeight"), function $CPTableView___columnHeight(self, _cmd) +{ with(self) +{ + return _columnHeight; +} +}), new objj_method(sel_getUid("newCellForRow:column:avoidingRows:"), function $CPTableView__newCellForRow_column_avoidingRows_(self, _cmd, aRowIndex, aColumnIndex, rows) +{ with(self) +{ + var dataView = objj_msgSend(_tableColumns[aColumnIndex], "_newDataViewForRow:avoidingRows:", aRowIndex, rows); + objj_msgSend(dataView, "setFrame:", CGRectMake(0.0, (_hasVariableHeightRows ? _rowMinYs[aRowIndex] : (aRowIndex * (_rowHeight + _intercellSpacing.height))), objj_msgSend(_tableColumns[aColumnIndex], "width"), (_hasVariableHeightRows ? _rowHeights[aRowIndex] : _rowHeight))); + if (objj_msgSend(dataView, "respondsToSelector:", sel_getUid("highlight:"))) + objj_msgSend(dataView, "highlight:", objj_msgSend(_selectedRowIndexes, "containsIndex:", aRowIndex)); + if (!_objectValueCache[aColumnIndex]) + _objectValueCache[aColumnIndex] = []; + if (_objectValueCache[aColumnIndex][aRowIndex] === undefined) + _objectValueCache[aColumnIndex][aRowIndex] = objj_msgSend(_dataSource, "tableView:objectValueForTableColumn:row:", self, _tableColumns[aColumnIndex], aRowIndex); + objj_msgSend(dataView, "setObjectValue:", _objectValueCache[aColumnIndex][aRowIndex]); + return dataView; +} +}), new objj_method(sel_getUid("clearCells"), function $CPTableView__clearCells(self, _cmd) +{ with(self) +{ + var columnEnd = CPMaxRange(_visibleColumns), + rowEnd = CPMaxRange(_visibleRows); + for (var column = _visibleColumns.location; column < columnEnd; column++) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column]; + for (var row = _visibleRows.location; row < rowEnd; row++) + { + var cell = tableColumnCells[row]; + if (cell) + { + tableColumnCells[row] = nil; + objj_msgSend(tableColumn, "_markView:inRow:asPurgable:", cell, row, YES); + } + else + { + CPLog.warn("Missing cell? " + row + "," + column); + } + } + } + _visibleColumns = CPMakeRange(0,0); + _visibleRows = CPMakeRange(0,0); +} +}), new objj_method(sel_getUid("loadTableCellsInRect:"), function $CPTableView__loadTableCellsInRect_(self, _cmd, aRect) +{ with(self) +{ + if (!_dataSource) + return; + var rowStart = MAX(0, objj_msgSend(self, "_rowAtY:", CGRectGetMinY(aRect)) - 1), + rowEnd = MIN(_numberOfRows, objj_msgSend(self, "_rowAtY:", CGRectGetMaxY(aRect)) + 1), + visibleRows = CPMakeRange(rowStart, rowEnd - rowStart), + columnStart = MAX(0, objj_msgSend(self, "_columnAtX:", CGRectGetMinX(aRect))), + columnEnd = MIN(_tableColumns.length, objj_msgSend(self, "_columnAtX:", CGRectGetMaxX(aRect)) + 1), + visibleColumns = CPMakeRange(columnStart, columnEnd - columnStart); + if (CPEqualRanges(_visibleRows, visibleRows) && CPEqualRanges(_visibleColumns, visibleColumns)) + return; + var unionVisibleRows = CPUnionRange(_visibleRows, visibleRows), + unionVisibleColumns = CPUnionRange(_visibleColumns, visibleColumns); + if (unionVisibleRows.length * unionVisibleColumns.length <= + (_visibleRows.length * _visibleColumns.length) + (visibleRows.length * visibleColumns.length)) + { + var cEnd = CPMaxRange(unionVisibleColumns), + rEnd = CPMaxRange(unionVisibleRows), + cell; + for (var column = unionVisibleColumns.location; column < cEnd; ++column) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column], + columnIsVisible = CPLocationInRange(column, visibleColumns), + newCells = []; + for (var row = unionVisibleRows.location; row < rEnd; ++row) + { + if (cell = tableColumnCells[row]) + { + if (!columnIsVisible || !CPLocationInRange(row, visibleRows)) + { + tableColumnCells[row] = nil; + objj_msgSend(tableColumn, "_markView:inRow:asPurgable:", cell, row, YES); + } + } + else + { + newCells.push(row); + } + } + while (newCells.length > 0) + { + var row = newCells.pop(); + tableColumnCells[row] = objj_msgSend(self, "newCellForRow:column:avoidingRows:", row, column, visibleRows); + if (!tableColumnCells[row]._superview) + objj_msgSend(_tableColumnViews[column], "addSubview:", tableColumnCells[row]); + else if (tableColumnCells[row]._isHidden) + objj_msgSend(tableColumnCells[row], "setHidden:", NO); + } + objj_msgSend(tableColumn, "_purge"); + } + } + else { + var cEnd = CPMaxRange(_visibleColumns), + rEnd = CPMaxRange(_visibleRows), + cell; + for (var column = _visibleColumns.location; column < cEnd; ++column) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column], + columnIsVisible = CPLocationInRange(column, visibleColumns); + for (var row = _visibleRows.location; row < rEnd; ++row) + { + if (cell = tableColumnCells[row]) + { + if (!columnIsVisible || !CPLocationInRange(row, visibleRows)) + { + tableColumnCells[row] = nil; + objj_msgSend(tableColumn, "_markView:inRow:asPurgable:", cell, row, YES); + } + } + } + } + var cEnd = CPMaxRange(visibleColumns), + rEnd = CPMaxRange(visibleRows); + for (var column = visibleColumns.location; column < cEnd; ++column) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column]; + for (var row = visibleRows.location; row < rEnd; ++row) + { + tableColumnCells[row] = objj_msgSend(self, "newCellForRow:column:avoidingRows:", row, column, visibleRows); + if (!tableColumnCells[row]._superview) + objj_msgSend(_tableColumnViews[column], "addSubview:", tableColumnCells[row]); + else if (tableColumnCells[row]._isHidden) + objj_msgSend(tableColumnCells[row], "setHidden:", NO); + } + objj_msgSend(tableColumn, "_purge"); + } + } + _visibleRows = visibleRows; + _visibleColumns = visibleColumns; +} +}), new objj_method(sel_getUid("setIntercellSpacing:"), function $CPTableView__setIntercellSpacing_(self, _cmd, aSize) +{ with(self) +{ + if (_intercellSpacing.width != aSize.width) + { + var i = 1, + delta = aSize.width - _intercellSpacing.width; + total = delta; + for (; i < _tableColumns.length; ++i, total += delta) + { + var origin = objj_msgSend(_tableColumnViews[i], "frame").origin; + objj_msgSend(_tableColumnViews[i], "setFrameOrigin:", CGPointMake(origin.x + total, origin.y)); + } + } + if (_intercellSpacing.height != aSize.height) + { + var i = 0; + for (; i < _tableColumns.length; ++i, total += delta) + { + objj_msgSend(_tableColumnViews[i], "setFrameSize:", CGSizeMake(objj_msgSend(_tableColumnViews[i], "width"), _numberOfRows * (_rowHeight + _intercellSpacing.height))); + var j = 1, + y = _rowHeight + _intercellSpacing.height; + for (; j < _numberOfRows; ++i, y += _rowHeight + _intercellSpacing.height) + { + if (!_tableCells[i][j]) + continue; + objj_msgSend(_tableCells[i][j], "setFrameOrigin:", CPPointMake(0.0, y)); + } + } + } + _intercellSpacing = CPSizeCreateCopy(aSize); +} +}), new objj_method(sel_getUid("intercellSpacing"), function $CPTableView__intercellSpacing(self, _cmd) +{ with(self) +{ + return _intercellSpacing; +} +}), new objj_method(sel_getUid("setRowHeight:"), function $CPTableView__setRowHeight_(self, _cmd, aRowHeight) +{ with(self) +{ + if (_rowHeight == aRowHeight) + return; + _rowHeight = aRowHeight; + if (_hasVariableHeightRows) + return; + for (var row = 0; row < _numberOfRows; ++row) + for (var column = 0; column < _tableColumns.length; ++column) + objj_msgSend(_tableCells[column][row], "setFrameOrigin:", CPPointMake(0.0, row * (_rowHeight + _intercellSpacing.height))); +} +}), new objj_method(sel_getUid("rowHeight"), function $CPTableView__rowHeight(self, _cmd) +{ with(self) +{ + return _rowHeight; +} +}), new objj_method(sel_getUid("addTableColumn:"), function $CPTableView__addTableColumn_(self, _cmd, aTableColumn) +{ with(self) +{ + var i = 0, + x = _tableColumns.length ? CPRectGetMaxX(objj_msgSend(self, "rectOfColumn:", _tableColumns.length - 1)) + _intercellSpacing.width : 0.0, + tableColumnView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(x, 0.0, objj_msgSend(aTableColumn, "width"), objj_msgSend(self, "_columnHeight"))), + tableColumnCells = []; + objj_msgSend(_tableColumns, "addObject:", aTableColumn); + objj_msgSend(_tableColumnViews, "addObject:", tableColumnView); + objj_msgSend(self, "addSubview:", tableColumnView); + objj_msgSend(_tableCells, "addObject:", tableColumnCells); + for (; i < _numberOfRows; ++i) + _tableCells[_tableColumns.length-1][i] = nil; +} +}), new objj_method(sel_getUid("removeTableColumn:"), function $CPTableView__removeTableColumn_(self, _cmd, aTableColumn) +{ with(self) +{ + var frame = objj_msgSend(self, "frame"), + width = objj_msgSend(aTableColumn, "width") + _intercellSpacing.width, + index = objj_msgSend(_tableColumns, "indexOfObjectIdenticalTo:", aTableColumn); + objj_msgSend(_tableColumnViews[i], "removeFromSuperview"); + objj_msgSend(_tableCells, "removeObjectAtIndex:", index); + objj_msgSend(_tableColumns, "removeObjectAtIndex:", index); + objj_msgSend(_tableColumnViews, "removeObjectAtIndex:", index); + for (; index < _tableColumns.length; ++ index) + objj_msgSend(_tableColumnViews[index], "setFrameOrigin:", CPPointMake(CPRectGetMinX(objj_msgSend(_tableColumnViews[index], "frame")) - width, 0.0)) + objj_msgSend(self, "setFrameSize:", CPSizeMake(CPRectGetWidth(frame) - width, CPRectGetHeight(frame))); +} +}), new objj_method(sel_getUid("moveColumn:toColumn:"), function $CPTableView__moveColumn_toColumn_(self, _cmd, fromIndex, toIndex) +{ with(self) +{ + if (fromIndex == toIndex) + return; +} +}), new objj_method(sel_getUid("tableColumns"), function $CPTableView__tableColumns(self, _cmd) +{ with(self) +{ + return _tableColumns; +} +}), new objj_method(sel_getUid("tableColumnWithIdentifier:"), function $CPTableView__tableColumnWithIdentifier_(self, _cmd, anObject) +{ with(self) +{ + for (var i = 0; i < _tableColumns.length; i++) + if (objj_msgSend(_tableColumns[i], "isEqual:", anObject)) + return _tableColumns[i]; + return nil; +} +}), new objj_method(sel_getUid("numberOfColumns"), function $CPTableView__numberOfColumns(self, _cmd) +{ with(self) +{ + return _tableColumns.length; +} +}), new objj_method(sel_getUid("numberOfRows"), function $CPTableView__numberOfRows(self, _cmd) +{ with(self) +{ + return _numberOfRows; +} +}), new objj_method(sel_getUid("tile"), function $CPTableView__tile(self, _cmd) +{ with(self) +{ + var HEIGHT = 10.0; +} +}), new objj_method(sel_getUid("setDataSource:"), function $CPTableView__setDataSource_(self, _cmd, aDataSource) +{ with(self) +{ + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("numberOfRowsInTableView:"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source doesn't support 'numberOfRowsInTableView:'"); + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("tableView:objectValueForTableColumn:row:"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source doesn't support 'tableView:objectValueForTableColumn:row:'"); + _dataSource = aDataSource; + objj_msgSend(self, "reloadData"); +} +}), new objj_method(sel_getUid("dataSource"), function $CPTableView__dataSource(self, _cmd) +{ with(self) +{ + return _dataSource; +} +}), new objj_method(sel_getUid("delegate"), function $CPTableView__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPTableView__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate === aDelegate) + return; + var notificationCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidMove:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewColumnDidMoveNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidResize:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewColumnDidResizeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionDidChange:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewSelectionDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionIsChanging:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewSelectionIsChangingNotification, self); + _delegate = aDelegate; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidMove:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewColumnDidMove:"), CPTableViewColumnDidMoveNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidResize:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewColumnDidResize:"), CPTableViewColumnDidResizeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionDidChange:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewSelectionDidChange:"), CPTableViewSelectionDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionIsChanging:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewSelectionIsChanging:"), CPTableViewSelectionIsChangingNotification, self); + _delegateSelectorsCache = 0; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:willDisplayCell:forTableColumn:row:"))) + _delegateSelectorsCache |= _CPTableViewWillDisplayCellSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldSelectRow:"))) + _delegateSelectorsCache |= _CPTableViewShouldSelectRowSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldSelectTableColumn:"))) + _delegateSelectorsCache |= _CPTableViewShouldSelectTableColumnSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("selectionShouldChangeInTableView:"))) + _delegateSelectorsCache |= _CPTableViewSelectionShouldChangeSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldEditTableColumn:row:"))) + _delegateSelectorsCache |= _CPTableViewShouldEditTableColumnSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:selectionIndexesForProposedSelection:"))) + _delegateSelectorsCache |= _CPTableViewSelectionIndexesForProposedSelectionSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:heightOfRow:"))) + { + _delegateSelectorsCache |= _CPTableViewHeightOfRowSelector; + _hasVariableHeightRows = YES; + } + else + _hasVariableHeightRows = NO; +} +}), new objj_method(sel_getUid("noteNumberOfRowsChanged"), function $CPTableView__noteNumberOfRowsChanged(self, _cmd) +{ with(self) +{ + var numberOfRows = objj_msgSend(_dataSource, "numberOfRowsInTableView:", self); + if (_numberOfRows != numberOfRows) + { + _numberOfRows = numberOfRows; + objj_msgSend(self, "_recalculateColumnHeight"); + } +} +}), new objj_method(sel_getUid("noteHeightOfRowsWithIndexesChanged:"), function $CPTableView__noteHeightOfRowsWithIndexesChanged_(self, _cmd, indexSet) +{ with(self) +{ + objj_msgSend(self, "_recalculateColumnHeight"); +} +}), new objj_method(sel_getUid("rectOfRow:"), function $CPTableView__rectOfRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return CPRectMake(0.0, (_hasVariableHeightRows ? _rowMinYs[aRowIndex] : (aRowIndex * (_rowHeight + _intercellSpacing.height))), CPRectGetWidth(objj_msgSend(self, "bounds")), (_hasVariableHeightRows ? _rowHeights[aRowIndex] : _rowHeight)); +} +}), new objj_method(sel_getUid("rectOfColumn:"), function $CPTableView__rectOfColumn_(self, _cmd, aColumnIndex) +{ with(self) +{ + return objj_msgSend(_tableColumnViews[aColumnIndex], "frame"); +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPTableView__sizeToFit(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_recalculateColumnHeight"), function $CPTableView___recalculateColumnHeight(self, _cmd) +{ with(self) +{ + var oldColumnHeight = _columnHeight; + if (_hasVariableHeightRows) + { + _rowMinYs[0] = 0; + for (var row = 0; row < _numberOfRows; row++) + { + _rowHeights[row] = objj_msgSend(_delegate, "tableView:heightOfRow:", self, row); + _rowMinYs[row+1] = _rowMinYs[row] + _rowHeights[row] + _intercellSpacing.height; + } + _columnHeight = _rowMinYs[_numberOfRows]; + } + else + _columnHeight = _numberOfRows * (_rowHeight + _intercellSpacing.height); + var count = _tableColumnViews.length; + while (count--) + objj_msgSend(_tableColumnViews[count], "setFrameSize:", CGSizeMake(objj_msgSend(_tableColumns[count], "width"), _columnHeight)); + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(objj_msgSend(self, "frame")), _columnHeight)); +} +}), new objj_method(sel_getUid("visibleRectInParent"), function $CPTableView__visibleRectInParent(self, _cmd) +{ with(self) +{ + var superview = objj_msgSend(self, "superview"); + if (!superview) + return objj_msgSend(self, "bounds"); + return objj_msgSend(self, "convertRect:fromView:", CGRectIntersection(objj_msgSend(superview, "bounds"), objj_msgSend(self, "frame")), superview); +} +}), new objj_method(sel_getUid("reloadData"), function $CPTableView__reloadData(self, _cmd) +{ with(self) +{ + var oldNumberOfRows = _numberOfRows; + _numberOfRows = objj_msgSend(_dataSource, "numberOfRowsInTableView:", self); + if (oldNumberOfRows != _numberOfRows) + { + objj_msgSend(self, "_recalculateColumnHeight"); + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(objj_msgSend(self, "frame")), objj_msgSend(self, "_columnHeight"))); + } + _objectValueCache = []; + objj_msgSend(self, "clearCells"); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPTableView__layoutSubviews(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "loadTableCellsInRect:", objj_msgSend(self, "visibleRectInParent")); +} +}), new objj_method(sel_getUid("displaySoon"), function $CPTableView__displaySoon(self, _cmd) +{ with(self) +{ + objj_msgSend(_scrollTimer, "invalidate"); + _scrollTimer = objj_msgSend(CPTimer, "scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:", 0.05, self, sel_getUid("displayNow"), nil, NO); +} +}), new objj_method(sel_getUid("displayNow"), function $CPTableView__displayNow(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("viewDidMoveToSuperview"), function $CPTableView__viewDidMoveToSuperview(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(objj_msgSend(self, "enclosingScrollView"), "contentView"), "setPostsBoundsChangedNotifications:", YES); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", self, sel_getUid("viewBoundsChanged:"), CPViewBoundsDidChangeNotification, objj_msgSend(objj_msgSend(self, "enclosingScrollView"), "contentView")); +} +}), new objj_method(sel_getUid("viewBoundsChanged:"), function $CPTableView__viewBoundsChanged_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "displayNow"); +} +}), new objj_method(sel_getUid("setAllowsMultipleSelection:"), function $CPTableView__setAllowsMultipleSelection_(self, _cmd, allowsMultipleSelection) +{ with(self) +{ + if (_allowsMultipleSelection === allowsMultipleSelection) + return; + _allowsMultipleSelection = allowsMultipleSelection; +} +}), new objj_method(sel_getUid("allowsMultipleSelection"), function $CPTableView__allowsMultipleSelection(self, _cmd) +{ with(self) +{ + return _allowsMultipleSelection; +} +}), new objj_method(sel_getUid("setAllowsEmptySelection:"), function $CPTableView__setAllowsEmptySelection_(self, _cmd, allowsEmptySelection) +{ with(self) +{ + if (_allowsEmptySelection === allowsEmptySelection) + return; + _allowsEmptySelection = allowsEmptySelection; +} +}), new objj_method(sel_getUid("allowsEmptySelection"), function $CPTableView__allowsEmptySelection(self, _cmd) +{ with(self) +{ + return _allowsEmptySelection; +} +}), new objj_method(sel_getUid("rowAtPoint:"), function $CPTableView__rowAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var index = objj_msgSend(self, "_rowAtY:", aPoint.y) + if (index >= 0 && index < _numberOfRows) + return index; + else + return CPNotFound; +} +}), new objj_method(sel_getUid("columnAtPoint:"), function $CPTableView__columnAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var index = objj_msgSend(self, "_columnAtX:", aPoint.x) + if (index >= 0 && index < _tableColumns.length) + return index; + else + return CPNotFound; +} +}), new objj_method(sel_getUid("_rowAtY:"), function $CPTableView___rowAtY_(self, _cmd, y) +{ with(self) +{ + if (_hasVariableHeightRows) + { + var a = 0, + b = _numberOfRows; + if (y < _rowMinYs[0]) + return -1; + if (y >= _rowMinYs[_rowMinYs.length-1]) + return _numberOfRows; + while (true) + { + var half = a + Math.floor((b - a) / 2); + if (y < _rowMinYs[half]) + b = half; + else if (half < _numberOfRows-1 && y >= _rowMinYs[half+1]) + a = half; + else + return half; + } + } + else + return FLOOR(y / (_rowHeight + _intercellSpacing.height)); +} +}), new objj_method(sel_getUid("_columnAtX:"), function $CPTableView___columnAtX_(self, _cmd, x) +{ with(self) +{ + var a = 0, + b = _tableColumns.length; + var last = objj_msgSend(_tableColumnViews[_tableColumns.length-1], "frame"); + if (x < objj_msgSend(_tableColumnViews[0], "frame").origin.x) + return -1; + if (x >= last.origin.x + last.size.width) + return _tableColumns.length; + while (true) + { + var half = a + Math.floor((b - a) / 2); + if (x < objj_msgSend(_tableColumnViews[half], "frame").origin.x) + b = half; + else if (half < _tableColumns.length-1 && x >= objj_msgSend(_tableColumnViews[half+1], "frame").origin.x) + a = half; + else + return half; + } +} +}), new objj_method(sel_getUid("selectRowIndexes:byExtendingSelection:"), function $CPTableView__selectRowIndexes_byExtendingSelection_(self, _cmd, indexes, extend) +{ with(self) +{ + if (extend) + _selectedRowIndexes = objj_msgSend(objj_msgSend(_selectedRowIndexes, "copy"), "addIndexes:", indexes); + else if (objj_msgSend(indexes, "count") > 0 || _allowsEmptySelection) + _selectedRowIndexes = objj_msgSend(indexes, "copy"); + objj_msgSend(self, "_drawSelection"); +} +}), new objj_method(sel_getUid("selectedRowIndexes"), function $CPTableView__selectedRowIndexes(self, _cmd) +{ with(self) +{ + return _selectedRowIndexes; +} +}), new objj_method(sel_getUid("numberOfSelectedRows"), function $CPTableView__numberOfSelectedRows(self, _cmd) +{ with(self) +{ + return objj_msgSend(_selectedRowIndexes, "count"); +} +}), new objj_method(sel_getUid("deselectAll:"), function $CPTableView__deselectAll_(self, _cmd, sender) +{ with(self) +{ + if (!_allowsEmptySelection || objj_msgSend(_selectedRowIndexes, "count") === 0 || + ((_delegateSelectorsCache & _CPTableViewSelectionShouldChangeSelector) && !objj_msgSend(_delegate, "selectionShouldChangeInTableView:", self))) + return; + objj_msgSend(self, "selectRowIndexes:byExtendingSelection:", objj_msgSend(CPIndexSet, "indexSet"), NO); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionDidChangeNotification, self, nil); +} +}), new objj_method(sel_getUid("editColumn:row:withEvent:select:"), function $CPTableView__editColumn_row_withEvent_select_(self, _cmd, columnIndex, rowIndex, theEvent, flag) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_updateSelectionWithMouseAtRow:"), function $CPTableView___updateSelectionWithMouseAtRow_(self, _cmd, aRow) +{ with(self) +{ + var newSelection; + if (_allowsMultipleSelection) + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndexesInRange:", CPMakeRange(MIN(aRow, _selectionStartRow), ABS(aRow-_selectionStartRow)+1)); + else if (aRow >= 0 && aRow < _numberOfRows) + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndex:", aRow); + else + newSelection = objj_msgSend(CPIndexSet, "indexSet"); + if (_allowsMultipleSelection && _selectionModifier & (CPCommandKeyMask | CPControlKeyMask | CPAlternateKeyMask)) + { + var intersection = objj_msgSend(newSelection, "copy"), + difference = objj_msgSend(newSelection, "copy"); + objj_msgSend(difference, "removeIndexes:", _previousSelectedRowIndexes); + objj_msgSend(intersection, "removeIndexes:", difference) + objj_msgSend(newSelection, "addIndexes:", _previousSelectedRowIndexes); + objj_msgSend(newSelection, "removeIndexes:", intersection); + } + if (!objj_msgSend(newSelection, "isEqualToIndexSet:", _selectedRowIndexes)) + { + if ((_delegateSelectorsCache & _CPTableViewSelectionShouldChangeSelector) && !objj_msgSend(_delegate, "selectionShouldChangeInTableView:", self)) + return; + if (_delegateSelectorsCache & _CPTableViewSelectionIndexesForProposedSelectionSelector) + newSelection = objj_msgSend(_delegate, "tableView:selectionIndexesForProposedSelection:", self, newSelection); + else if (_delegateSelectorsCache & _CPTableViewShouldSelectRowSelector) + { + var indexes = []; + objj_msgSend(newSelection, "getIndexes:maxCount:inIndexRange:", indexes, Number.MAX_VALUE, nil); + for (var i = 0; i < indexes.length; i++) + if (!objj_msgSend(_delegate, "tableView:shouldSelectRow:", self, indexes[i])) + objj_msgSend(newSelection, "removeIndex:", indexes[i]); + } + } + if (!_allowsEmptySelection && objj_msgSend(newSelection, "count") === 0) + return; + if (!objj_msgSend(newSelection, "isEqualToIndexSet:", _selectedRowIndexes)) + { + objj_msgSend(self, "selectRowIndexes:byExtendingSelection:", newSelection, NO); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionIsChangingNotification, self, nil); + } +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPTableView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "trackSelection:", anEvent); +} +}), new objj_method(sel_getUid("setDoubleAction:"), function $CPTableView__setDoubleAction_(self, _cmd, aSelector) +{ with(self) +{ + _doubleAction = aSelector; +} +}), new objj_method(sel_getUid("doubleAction"), function $CPTableView__doubleAction(self, _cmd) +{ with(self) +{ + return _doubleAction; +} +}), new objj_method(sel_getUid("clickedColumn"), function $CPTableView__clickedColumn(self, _cmd) +{ with(self) +{ + return _clickedColumn; +} +}), new objj_method(sel_getUid("clickedRow"), function $CPTableView__clickedRow(self, _cmd) +{ with(self) +{ + return _clickedRow; +} +}), new objj_method(sel_getUid("trackSelection:"), function $CPTableView__trackSelection_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"), + point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil), + currentRow = MAX(0, MIN(_numberOfRows-1, objj_msgSend(self, "_rowAtY:", point.y))); + if (type == CPLeftMouseUp) + { + _clickedRow = objj_msgSend(self, "rowAtPoint:", point); + _clickedColumn = objj_msgSend(self, "columnAtPoint:", point); + if (objj_msgSend(anEvent, "clickCount") === 2) + { + CPLog.warn("edit?!"); + objj_msgSend(self, "sendAction:to:", _doubleAction, _target); + } + else + { + if (!objj_msgSend(_previousSelectedRowIndexes, "isEqualToIndexSet:", _selectedRowIndexes)) + { + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionDidChangeNotification, self, nil); + } + objj_msgSend(self, "sendAction:to:", _action, _target); + } + return; + } + if (type == CPLeftMouseDown) + { + _previousSelectedRowIndexes = _selectedRowIndexes; + _selectionModifier = objj_msgSend(anEvent, "modifierFlags"); + if (_selectionModifier & CPShiftKeyMask) + _selectionStartRow = (ABS(objj_msgSend(_previousSelectedRowIndexes, "firstIndex") - currentRow) < ABS(objj_msgSend(_previousSelectedRowIndexes, "lastIndex") - currentRow)) ? + objj_msgSend(_previousSelectedRowIndexes, "firstIndex") : objj_msgSend(_previousSelectedRowIndexes, "lastIndex"); + else + _selectionStartRow = currentRow; + objj_msgSend(self, "_updateSelectionWithMouseAtRow:", currentRow); + } + else if (type == CPLeftMouseDragged) + { + objj_msgSend(self, "_updateSelectionWithMouseAtRow:", currentRow); + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackSelection:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("_drawSelection"), function $CPTableView___drawSelection(self, _cmd) +{ with(self) +{ + if (!_currentlySelected) { + _currentlySelected = objj_msgSend(CPIndexSet, "indexSet"); + _selectionViews = []; + _selectionViewsPool = []; + } + var removeSet = objj_msgSend(_currentlySelected, "copy"), + indexesToRemove = []; + objj_msgSend(removeSet, "removeIndexes:", _selectedRowIndexes); + objj_msgSend(removeSet, "getIndexes:maxCount:inIndexRange:", indexesToRemove, Number.MAX_VALUE, nil); + var addSet = objj_msgSend(_selectedRowIndexes, "copy"), + indexesToAdd = []; + objj_msgSend(addSet, "removeIndexes:", _currentlySelected); + objj_msgSend(addSet, "getIndexes:maxCount:inIndexRange:", indexesToAdd, Number.MAX_VALUE, nil); + for (var i = 0; i < indexesToRemove.length; i++) + { + var row = indexesToRemove[i]; + for (var column = 0; column < _tableColumns.length; column++) + if (objj_msgSend(_tableCells[column][row], "respondsToSelector:", sel_getUid("highlight:"))) + objj_msgSend(_tableCells[column][row], "highlight:", NO); + } + for (var i = 0; i < indexesToAdd.length; i++) + { + var row = indexesToAdd[i]; + for (var column = 0; column < _tableColumns.length; column++) + if (objj_msgSend(_tableCells[column][row], "respondsToSelector:", sel_getUid("highlight:"))) + objj_msgSend(_tableCells[column][row], "highlight:", YES); + } + for (var i = 0; i < indexesToAdd.length; i++) + { + var index = indexesToAdd[i], + view; + if (indexesToRemove.length > 0) + { + view = _selectionViews[indexesToRemove.pop()]; + } + else if (_selectionViewsPool.length > 0) + { + view = _selectionViewsPool.pop(); + objj_msgSend(self, "addSubview:positioned:relativeTo:", view, CPWindowBelow, nil); + } + else + { + view = objj_msgSend(objj_msgSend(CPView, "alloc"), "init"); + objj_msgSend(view, "setBackgroundColor:", objj_msgSend(CPColor, "alternateSelectedControlColor")); + objj_msgSend(self, "addSubview:positioned:relativeTo:", view, CPWindowBelow, nil); + } + _selectionViews[index] = view; + var frame = objj_msgSend(self, "rectOfRow:", index); + frame.size.height += _intercellSpacing.height - 1; + objj_msgSend(view, "setFrame:", frame); + } + for (var i = 0; i < indexesToRemove.length; i++) + { + var row = indexesToRemove[i], + view = _selectionViews[row]; + objj_msgSend(view, "removeFromSuperview"); + _selectionViewsPool.push(view); + } + _currentlySelected = objj_msgSend(_selectedRowIndexes, "copy"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPTableView__initialize(self, _cmd) +{ with(self) +{ +} +})]); +} +var CPTableViewDataSourceKey = "CPTableViewDataSourceKey", + CPTableViewDelegateKey = "CPTableViewDelegateKey", + CPTableViewHeaderViewKey = "CPTableViewHeaderViewKey", + CPTableViewTableColumnsKey = "CPTableViewTableColumnsKey", + CPTableViewRowHeightKey = "CPTableViewRowHeightKey", + CPTableViewIntercellSpacingKey = "CPTableViewIntercellSpacingKey", + CPTableViewMultipleSelectionKey = "CPTableViewMultipleSelectionKey", + CPTableViewEmptySelectionKey = "CPTableViewEmptySelectionKey"; +{ +var the_class = objj_getClass("CPTableView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTableView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTableView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder)) + { + objj_msgSend(self, "_init"); + _dataSource = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableViewDataSourceKey); + _delegate = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableViewDelegateKey); + _rowHeight = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableViewRowHeightKey); + _intercellSpacing = objj_msgSend(aCoder, "decodeSizeForKey:", CPTableViewIntercellSpacingKey); + _allowsMultipleSelection = objj_msgSend(aCoder, "decodeBoolForKey:", CPTableViewMultipleSelectionKey); + _allowsEmptySelection = objj_msgSend(aCoder, "decodeBoolForKey:", CPTableViewEmptySelectionKey); + var tableColumns = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableViewTableColumnsKey); + for (var i = 0; i < tableColumns.length; i++) + objj_msgSend(self, "addTableColumn:", tableColumns[i]); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTableView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _dataSource, CPTableViewDataSourceKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _delegate, CPTableViewDelegateKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _tableColumns, CPTableViewTableColumnsKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _rowHeight, CPTableViewRowHeightKey); + objj_msgSend(aCoder, "encodeSize:forKey:", _intercellSpacing, CPTableViewIntercellSpacingKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _allowsMultipleSelection, CPTableViewMultipleSelectionKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _allowsEmptySelection, CPTableViewEmptySelectionKey); +} +})]); +} +{ +var the_class = objj_getClass("CPColor") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPColor\"")); +var meta_class = the_class.isa;class_addMethods(meta_class, [new objj_method(sel_getUid("alternateSelectedControlColor"), function $CPColor__alternateSelectedControlColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.22, 0.46, 0.84, 1.0]); +} +}), new objj_method(sel_getUid("secondarySelectedControlColor"), function $CPColor__secondarySelectedControlColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.83, 0.83, 0.83, 1.0]); +} +})]); +} + diff --git a/src/main/webapp/Frameworks/Debug/AppKit/rhino.platform/AppKit.sj b/src/main/webapp/Frameworks/Debug/AppKit/rhino.platform/AppKit.sj new file mode 100644 index 0000000..4725b2d --- /dev/null +++ b/src/main/webapp/Frameworks/Debug/AppKit/rhino.platform/AppKit.sj @@ -0,0 +1,26730 @@ +@STATIC;1.0;p;31;_CPBorderlessBridgeWindowView.ji;15;_CPWindowView.jc;2460; +var _CPToolbarViewBackgroundColor = nil; +{var the_class = objj_allocateClassPair(_CPWindowView, "_CPBorderlessBridgeWindowView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_toolbarBackgroundView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("tile"), function $_CPBorderlessBridgeWindowView__tile(self, _cmd) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("_CPWindowView") }, "tile"); + var theWindow = objj_msgSend(self, "window"), + bounds = objj_msgSend(self, "bounds"); + objj_msgSend(objj_msgSend(theWindow, "contentView"), "setFrame:", CGRectMake(0.0, objj_msgSend(self, "toolbarMaxY"), CGRectGetWidth(bounds), CGRectGetHeight(bounds) - objj_msgSend(self, "toolbarMaxY"))); + if (!objj_msgSend(objj_msgSend(theWindow, "toolbar"), "isVisible")) + { + objj_msgSend(_toolbarBackgroundView, "removeFromSuperview"); + _toolbarBackgroundView = nil; + return; + } + if (!_toolbarBackgroundView) + { + _toolbarBackgroundView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_toolbarBackgroundView, "setBackgroundColor:", objj_msgSend(objj_msgSend(self, "class"), "toolbarBackgroundColor")); + objj_msgSend(_toolbarBackgroundView, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(self, "addSubview:positioned:relativeTo:", _toolbarBackgroundView, CPWindowBelow, nil); + } + var frame = CGRectMakeZero(); + frame.origin = CGPointMakeCopy(objj_msgSend(self, "toolbarOffset")); + frame.size = objj_msgSend(_toolbarView, "frame").size; + objj_msgSend(_toolbarBackgroundView, "setFrame:", frame); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("toolbarBackgroundColor"), function $_CPBorderlessBridgeWindowView__toolbarBackgroundColor(self, _cmd) +{ with(self) +{ + if (!_CPToolbarViewBackgroundColor) + _CPToolbarViewBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(_CPBorderlessBridgeWindowView, "class")), "pathForResource:", "_CPToolbarView/_CPToolbarViewBackground.png"), CGSizeMake(1.0, 59.0))); + return _CPToolbarViewBackgroundColor; +} +})]); +} + +p;25;_CPBorderlessWindowView.ji;15;_CPWindowView.jc;234; +{var the_class = objj_allocateClassPair(_CPWindowView, "_CPBorderlessWindowView"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +} + +p;20;_CPCibClassSwapper.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;2019; +var _CPCibClassSwapperClassNameKey = "_CPCibClassSwapperClassNameKey", + _CPCibClassSwapperOriginalClassNameKey = "_CPCibClassSwapperOriginalClassNameKey"; +{var the_class = objj_allocateClassPair(CPObject, "_CPCibClassSwapper"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(meta_class, [new objj_method(sel_getUid("allocObjectWithCoder:className:"), function $_CPCibClassSwapper__allocObjectWithCoder_className_(self, _cmd, aCoder, aClassName) +{ with(self) +{ + var theClass = objj_msgSend(aCoder, "classForClassName:", aClassName); + if (!theClass) + { + theClass = objj_lookUpClass(aClassName); + if (!theClass) + return nil; + } + return objj_msgSend(theClass, "alloc"); +} +}), new objj_method(sel_getUid("allocWithCoder:"), function $_CPCibClassSwapper__allocWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (objj_msgSend(aCoder, "respondsToSelector:", sel_getUid("usesOriginalClasses")) && objj_msgSend(aCoder, "usesOriginalClasses")) + { + var theClassName = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibClassSwapperOriginalClassNameKey), + object = objj_msgSend(self, "allocObjectWithCoder:className:", aCoder, theClassName); + } + else + { + var theClassName = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibClassSwapperClassNameKey), + object = objj_msgSend(self, "allocObjectWithCoder:className:", aCoder, theClassName); + if (!object) + { + CPLog.error("Unable to find class " + theClassName + " in cib file."); + object = objj_msgSend(self, "allocObjectWithCoder:className:", aCoder, objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibClassSwapperOriginalClassNameKey)); + } + } + if (!object) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "Unable to find class " + theClassName + " in cib file."); + return object; +} +})]); +} + +p;17;_CPCibConnector.jI;21;Foundation/CPObject.jI;29;Foundation/CPKeyValueCoding.jc;4187; + + +var _CPCibConnectorSourceKey = "_CPCibConnectorSourceKey", + _CPCibConnectorDestinationKey = "_CPCibConnectorDestinationKey", + _CPCibConnectorLabelKey = "_CPCibConnectorLabelKey"; + +{var the_class = objj_allocateClassPair(CPObject, "_CPCibConnector"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_source"), new objj_ivar("_destination"), new objj_ivar("_label")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("replaceObjects:"), function $_CPCibConnector__replaceObjects_(self, _cmd, replacementObjects) +{ with(self) +{ + var replacement = replacementObjects[objj_msgSend(_source, "hash")]; + + if (replacement !== undefined) + _source = replacement; + + replacement = replacementObjects[objj_msgSend(_destination, "hash")]; + + if (replacement !== undefined) + _destination = replacement; +} +})]); +} + +{ +var the_class = objj_getClass("_CPCibConnector") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPCibConnector\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPCibConnector__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + + if (self) + { + _source = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibConnectorSourceKey); + _destination = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibConnectorDestinationKey); + _label = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibConnectorLabelKey); + } + + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPCibConnector__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _source, _CPCibConnectorSourceKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _destination, _CPCibConnectorDestinationKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _label, _CPCibConnectorLabelKey); +} +})]); +} + +{var the_class = objj_allocateClassPair(_CPCibConnector, "_CPCibControlConnector"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("establishConnection"), function $_CPCibControlConnector__establishConnection(self, _cmd) +{ with(self) +{ + var selectorName = _label; + + if (!objj_msgSend(selectorName, "hasSuffix:", ":")) + selectorName += ':'; + + var selector = CPSelectorFromString(selectorName); + + if (!selector) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "-[" + objj_msgSend(self, "className") + ' ' + _cmd + "] selector " + selectorName + " does not exist."); + + if (objj_msgSend(_source, "respondsToSelector:", sel_getUid("setAction:"))) + objj_msgSend(_source, sel_getUid("setAction:"), selector); + + else + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "-[" + objj_msgSend(self, "className") + ' ' + _cmd + "] " + objj_msgSend(_source, "description") + " does not respond to setAction:"); + + if (objj_msgSend(_source, "respondsToSelector:", sel_getUid("setTarget:"))) + objj_msgSend(_source, sel_getUid("setTarget:"), _destination); + + else + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "-[" + objj_msgSend(self, "className") + ' ' + _cmd + "] " + objj_msgSend(_source, "description") + " does not respond to setTarget:"); +} +})]); +} + +{var the_class = objj_allocateClassPair(_CPCibConnector, "_CPCibOutletConnector"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("establishConnection"), function $_CPCibOutletConnector__establishConnection(self, _cmd) +{ with(self) +{ + objj_msgSend(_source, "setValue:forKey:", _destination, _label); +} +})]); +} + +p;20;_CPCibCustomObject.jI;21;Foundation/CPObject.jc;2114; + + +var _CPCibCustomObjectClassName = "_CPCibCustomObjectClassName"; + +{var the_class = objj_allocateClassPair(CPObject, "_CPCibCustomObject"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_className")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("customClassName"), function $_CPCibCustomObject__customClassName(self, _cmd) +{ with(self) +{ + return _className; +} +}), new objj_method(sel_getUid("description"), function $_CPCibCustomObject__description(self, _cmd) +{ with(self) +{ + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "description") + " (" + objj_msgSend(self, "customClassName") + ')'; +} +})]); +} + +{ +var the_class = objj_getClass("_CPCibCustomObject") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPCibCustomObject\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPCibCustomObject__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + + if (self) + _className = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibCustomObjectClassName); + + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPCibCustomObject__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _className, _CPCibCustomObjectClassName); +} +}), new objj_method(sel_getUid("_cibInstantiate"), function $_CPCibCustomObject___cibInstantiate(self, _cmd) +{ with(self) +{ + var theClass = CPClassFromString(_className); + + + if (!theClass) + CPLog("Unknown class \"" + _className + "\" in cib file"); + + + if (theClass === objj_msgSend(CPApplication, "class")) + return objj_msgSend(CPApplication, "sharedApplication"); + + return objj_msgSend(objj_msgSend(theClass, "alloc"), "init"); +} +})]); +} + +p;22;_CPCibCustomResource.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;4092; +var _CPCibCustomResourceClassNameKey = "_CPCibCustomResourceClassNameKey", + _CPCibCustomResourceResourceNameKey = "_CPCibCustomResourceResourceNameKey", + _CPCibCustomResourcePropertiesKey = "_CPCibCustomResourcePropertiesKey"; +{var the_class = objj_allocateClassPair(CPObject, "_CPCibCustomResource"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_className"), new objj_ivar("_resourceName"), new objj_ivar("_properties")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithClassName:resourceName:properties:"), function $_CPCibCustomResource__initWithClassName_resourceName_properties_(self, _cmd, aClassName, aResourceName, properties) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _className = aClassName; + _resourceName = aResourceName; + _properties = properties; + } + return self; +} +}), new objj_method(sel_getUid("initWithCoder:"), function $_CPCibCustomResource__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _className = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibCustomResourceClassNameKey); + _resourceName = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibCustomResourceResourceNameKey); + _properties = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibCustomResourcePropertiesKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPCibCustomResource__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _className, _CPCibCustomResourceClassNameKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _resourceName, _CPCibCustomResourceResourceNameKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _properties, _CPCibCustomResourcePropertiesKey); +} +}), new objj_method(sel_getUid("awakeAfterUsingCoder:"), function $_CPCibCustomResource__awakeAfterUsingCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (objj_msgSend(aCoder, "respondsToSelector:", sel_getUid("bundle")) && + (!objj_msgSend(aCoder, "respondsToSelector:", sel_getUid("awakenCustomResources")) || objj_msgSend(aCoder, "awakenCustomResources"))) + if (_className === "CPImage") + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(aCoder, "bundle"), "pathForResource:", _resourceName), objj_msgSend(_properties, "objectForKey:", "size")); + return self; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("imageResourceWithName:size:"), function $_CPCibCustomResource__imageResourceWithName_size_(self, _cmd, aResourceName, aSize) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithClassName:resourceName:properties:", "CPImage", aResourceName, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", aSize, "size")); +} +})]); +} +{ +var the_class = objj_getClass("_CPCibCustomResource") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPCibCustomResource\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("filename"), function $_CPCibCustomResource__filename(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPBundle, "mainBundle"), "pathForResource:", _resourceName); +} +}), new objj_method(sel_getUid("size"), function $_CPCibCustomResource__size(self, _cmd) +{ with(self) +{ + return objj_msgSend(_properties, "objectForKey:", "size"); +} +}), new objj_method(sel_getUid("isThreePartImage"), function $_CPCibCustomResource__isThreePartImage(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("isNinePartImage"), function $_CPCibCustomResource__isNinePartImage(self, _cmd) +{ with(self) +{ + return NO; +} +})]); +} + +p;18;_CPCibCustomView.ji;8;CPView.jc;3751; +{var the_class = objj_allocateClassPair(CPView, "_CPCibCustomView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_className")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("customClassName"), function $_CPCibCustomView__customClassName(self, _cmd) +{ with(self) +{ + return _className; +} +})]); +} +var _CPCibCustomViewClassNameKey = "_CPCibCustomViewClassNameKey"; +{ +var the_class = objj_getClass("_CPCibCustomView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPCibCustomView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPCibCustomView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder); + if (self) + _className = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibCustomViewClassNameKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPCibCustomView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _className, _CPCibCustomViewClassNameKey); +} +}), new objj_method(sel_getUid("drawRect:"), function $_CPCibCustomView__drawRect_(self, _cmd, aRect) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + context = objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"); + CGContextSetLineWidth(context, 1.0); + CGContextSetStrokeColor(context, objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 169.0 / 255.0, 173.0 / 255.0, 178.0 / 255.0, 1.0)); + CGContextStrokeRect(context, CGRectInset(CGRectIntegral(bounds), 0.5, 0.5)); + CGContextSetFillColor(context, objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 224.0 / 255.0, 236.0 / 255.0, 250.0 / 255.0, 1.0)); + CGContextFillRect(context, CGRectInset(bounds, 2.0, 2.0)); +} +}), new objj_method(sel_getUid("_cibInstantiate"), function $_CPCibCustomView___cibInstantiate(self, _cmd) +{ with(self) +{ + var theClass = CPClassFromString(_className); + if (!theClass) + { + CPLog("Unknown class \"" + _className + "\" in cib file, using CPView instead."); + theClass = objj_msgSend(CPView, "class"); + } + if (theClass === objj_msgSend(self, "class")) + { + _className = "CPView"; + return self; + } + var view = objj_msgSend(objj_msgSend(theClass, "alloc"), "initWithFrame:", objj_msgSend(self, "frame")); + if (view) + { + objj_msgSend(view, "setBounds:", objj_msgSend(self, "bounds")); + var subviews = objj_msgSend(objj_msgSend(self, "subviews"), "copy"), + index = 0, + count = subviews.length; + for (; index < count; ++index) + objj_msgSend(view, "addSubview:", subviews[index]); + objj_msgSend(view, "setAutoresizingMask:", objj_msgSend(self, "autoresizingMask")); + objj_msgSend(view, "setAutoresizesSubviews:", objj_msgSend(self, "autoresizesSubviews")); + objj_msgSend(view, "setHitTests:", objj_msgSend(self, "hitTests")); + objj_msgSend(view, "setHidden:", objj_msgSend(self, "isHidden")); + objj_msgSend(view, "setAlphaValue:", objj_msgSend(self, "alphaValue")); + objj_msgSend(_superview, "replaceSubview:with:", self, view); + objj_msgSend(view, "setBackgroundColor:", objj_msgSend(self, "backgroundColor")); + } + return view; +} +})]); +} + +p;23;_CPCibKeyedUnarchiver.jI;30;Foundation/CPKeyedUnarchiver.jc;1596; + + +{var the_class = objj_allocateClassPair(CPKeyedUnarchiver, "_CPCibKeyedUnarchiver"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_bundle"), new objj_ivar("_awakenCustomResources")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initForReadingWithData:bundle:awakenCustomResources:"), function $_CPCibKeyedUnarchiver__initForReadingWithData_bundle_awakenCustomResources_(self, _cmd, data, aBundle, shouldAwakenCustomResources) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPKeyedUnarchiver") }, "initForReadingWithData:", data); + + if (self) + { + _bundle = aBundle; + _awakenCustomResources = shouldAwakenCustomResources; + + objj_msgSend(self, "setDelegate:", self); + } + + return self; +} +}), new objj_method(sel_getUid("bundle"), function $_CPCibKeyedUnarchiver__bundle(self, _cmd) +{ with(self) +{ + return _bundle; +} +}), new objj_method(sel_getUid("awakenCustomResources"), function $_CPCibKeyedUnarchiver__awakenCustomResources(self, _cmd) +{ with(self) +{ + return _awakenCustomResources; +} +}), new objj_method(sel_getUid("replaceObjectAtUID:withObject:"), function $_CPCibKeyedUnarchiver__replaceObjectAtUID_withObject_(self, _cmd, aUID, anObject) +{ with(self) +{ + _objects[aUID] = anObject; +} +}), new objj_method(sel_getUid("objectAtUID:"), function $_CPCibKeyedUnarchiver__objectAtUID_(self, _cmd, aUID) +{ with(self) +{ + return _objects[aUID]; +} +})]); +} + +p;18;_CPCibObjectData.jI;20;Foundation/CPArray.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.ji;7;CPCib.ji;17;_CPCibConnector.jc;9601; +{var the_class = objj_allocateClassPair(CPObject, "_CPCibObjectData"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_namesKeys"), new objj_ivar("_namesValues"), new objj_ivar("_accessibilityConnectors"), new objj_ivar("_accessibilityOidsKeys"), new objj_ivar("_accessibilityOidsValues"), new objj_ivar("_classesKeys"), new objj_ivar("_classesValues"), new objj_ivar("_connections"), new objj_ivar("_fontManager"), new objj_ivar("_framework"), new objj_ivar("_nextOid"), new objj_ivar("_objectsKeys"), new objj_ivar("_objectsValues"), new objj_ivar("_oidKeys"), new objj_ivar("_oidValues"), new objj_ivar("_fileOwner"), new objj_ivar("_visibleWindows"), new objj_ivar("_replacementObjects")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $_CPCibObjectData__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _namesKeys = []; + _namesValues = []; + _classesKeys = []; + _classesValues = []; + _connections = []; + _framework = ""; + _nextOid = []; + _objectsKeys = []; + _objectsValues = []; + _oidKeys = []; + _oidValues = []; + _fileOwner = nil; + _visibleWindows = objj_msgSend(CPSet, "set"); + } + return self; +} +}), new objj_method(sel_getUid("mainMenu"), function $_CPCibObjectData__mainMenu(self, _cmd) +{ with(self) +{ + var index = objj_msgSend(_namesValues, "indexOfObjectIdenticalTo:", "MainMenu"); + if (index === CPNotFound) + { + index = objj_msgSend(_namesValues, "indexOfObjectIdenticalTo:", "Main Menu"); + if (index === CPNotFound) + return nil; + } + return _namesKeys[index]; +} +}), new objj_method(sel_getUid("displayVisibleWindows"), function $_CPCibObjectData__displayVisibleWindows(self, _cmd) +{ with(self) +{ + var object = nil, + objectEnumerator = objj_msgSend(_visibleWindows, "objectEnumerator"); + while (object = objj_msgSend(objectEnumerator, "nextObject")) + objj_msgSend(_replacementObjects[objj_msgSend(object, "hash")], "makeKeyAndOrderFront:", self); +} +})]); +} +var _CPCibObjectDataNamesKeysKey = "_CPCibObjectDataNamesKeysKey", + _CPCibObjectDataNamesValuesKey = "_CPCibObjectDataNamesValuesKey", + _CPCibObjectDataAccessibilityConnectorsKey = "_CPCibObjectDataAccessibilityConnectors", + _CPCibObjectDataAccessibilityOidsKeysKey = "_CPCibObjectDataAccessibilityOidsKeys", + _CPCibObjectDataAccessibilityOidsValuesKey = "_CPCibObjectDataAccessibilityOidsValues", + _CPCibObjectDataClassesKeysKey = "_CPCibObjectDataClassesKeysKey", + _CPCibObjectDataClassesValuesKey = "_CPCibObjectDataClassesValuesKey", + _CPCibObjectDataConnectionsKey = "_CPCibObjectDataConnectionsKey", + _CPCibObjectDataFontManagerKey = "_CPCibObjectDataFontManagerKey", + _CPCibObjectDataFrameworkKey = "_CPCibObjectDataFrameworkKey", + _CPCibObjectDataNextOidKey = "_CPCibObjectDataNextOidKey", + _CPCibObjectDataObjectsKeysKey = "_CPCibObjectDataObjectsKeysKey", + _CPCibObjectDataObjectsValuesKey = "_CPCibObjectDataObjectsValuesKey", + _CPCibObjectDataOidKeysKey = "_CPCibObjectDataOidKeysKey", + _CPCibObjectDataOidValuesKey = "_CPCibObjectDataOidValuesKey", + _CPCibObjectDataFileOwnerKey = "_CPCibObjectDataFileOwnerKey", + _CPCibObjectDataVisibleWindowsKey = "_CPCibObjectDataVisibleWindowsKey"; +{ +var the_class = objj_getClass("_CPCibObjectData") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPCibObjectData\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPCibObjectData__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _replacementObjects = {}; + _namesKeys = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataNamesKeysKey); + _namesValues = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataNamesValuesKey); + _classesKeys = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataClassesKeysKey); + _classesValues = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataClassesValuesKey); + _connections = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataConnectionsKey); + _framework = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataFrameworkKey); + _nextOid = objj_msgSend(aCoder, "decodeIntForKey:", _CPCibObjectDataNextOidKey); + _objectsKeys = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataObjectsKeysKey); + _objectsValues = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataObjectsValuesKey); + _oidKeys = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataOidKeysKey); + _oidValues = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataOidValuesKey); + _fileOwner = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataFileOwnerKey); + _visibleWindows = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibObjectDataVisibleWindowsKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPCibObjectData__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _namesKeys, _CPCibObjectDataNamesKeysKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _namesValues, _CPCibObjectDataNamesValuesKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _classesKeys, _CPCibObjectDataClassesKeysKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _classesValues, _CPCibObjectDataClassesValuesKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _connections, _CPCibObjectDataConnectionsKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _framework, _CPCibObjectDataFrameworkKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _nextOid, _CPCibObjectDataNextOidKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _objectsKeys, _CPCibObjectDataObjectsKeysKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _objectsValues, _CPCibObjectDataObjectsValuesKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _oidKeys, _CPCibObjectDataOidKeysKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _oidValues, _CPCibObjectDataOidValuesKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _fileOwner, _CPCibObjectDataFileOwnerKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _visibleWindows, _CPCibObjectDataVisibleWindowsKey); +} +}), new objj_method(sel_getUid("instantiateWithOwner:topLevelObjects:"), function $_CPCibObjectData__instantiateWithOwner_topLevelObjects_(self, _cmd, anOwner, topLevelObjects) +{ with(self) +{ + var count = objj_msgSend(_objectsKeys, "count"); + while (count--) + { + var object = _objectsKeys[count], + parent = _objectsValues[count], + instantiatedObject = object; + if (objj_msgSend(object, "respondsToSelector:", sel_getUid("_cibInstantiate"))) + { + var instantiatedObject = objj_msgSend(object, "_cibInstantiate"); + if (instantiatedObject !== object) + { + _replacementObjects[objj_msgSend(object, "hash")] = instantiatedObject; + if (objj_msgSend(instantiatedObject, "isKindOfClass:", objj_msgSend(CPView, "class"))) + { + var clipView = objj_msgSend(instantiatedObject, "superview"); + if (objj_msgSend(clipView, "isKindOfClass:", objj_msgSend(CPClipView, "class"))) + { + var scrollView = objj_msgSend(clipView, "superview"); + if (objj_msgSend(scrollView, "isKindOfClass:", objj_msgSend(CPScrollView, "class"))) + objj_msgSend(scrollView, "setDocumentView:", instantiatedObject); + } + } + } + } + if (topLevelObjects && parent === _fileOwner && object !== _fileOwner) + topLevelObjects.push(instantiatedObject); + } +} +}), new objj_method(sel_getUid("establishConnectionsWithOwner:topLevelObjects:"), function $_CPCibObjectData__establishConnectionsWithOwner_topLevelObjects_(self, _cmd, anOwner, topLevelObjects) +{ with(self) +{ + _replacementObjects[objj_msgSend(_fileOwner, "hash")] = anOwner; + var index = 0, + count = _connections.length; + for (; index < count; ++index) + { + var connection = _connections[index]; + objj_msgSend(connection, "replaceObjects:", _replacementObjects); + objj_msgSend(connection, "establishConnection"); + } +} +}), new objj_method(sel_getUid("awakeWithOwner:topLevelObjects:"), function $_CPCibObjectData__awakeWithOwner_topLevelObjects_(self, _cmd, anOwner, topLevelObjects) +{ with(self) +{ + var count = objj_msgSend(_objectsKeys, "count"); + while (count--) + { + var object = _objectsKeys[count], + instantiatedObject = _replacementObjects[objj_msgSend(object, "hash")]; + if (instantiatedObject) + object = instantiatedObject; + if (object !== anOwner && objj_msgSend(object, "respondsToSelector:", sel_getUid("awakeFromCib"))) + objj_msgSend(object, "awakeFromCib"); + } + if (objj_msgSend(anOwner, "respondsToSelector:", sel_getUid("awakeFromCib"))) + objj_msgSend(anOwner, "awakeFromCib"); +} +})]); +} + +p;22;_CPCibWindowTemplate.jI;21;Foundation/CPObject.jc;4943; + + +var _CPCibWindowTemplateMinSizeKey = "_CPCibWindowTemplateMinSizeKey", + _CPCibWindowTemplateMaxSizeKey = "_CPCibWindowTemplateMaxSizeKey", + + _CPCibWindowTemplateViewClassKey = "_CPCibWindowTemplateViewClassKey", + _CPCibWindowTemplateWindowClassKey = "_CPCibWindowTemplateWindowClassKey", + + _CPCibWindowTemplateWindowRectKey = "_CPCibWindowTemplateWindowRectKey", + _CPCibWindowTemplateWindowStyleMaskKey = "_CPCibWindowTempatStyleMaskKey", + _CPCibWindowTemplateWindowTitleKey = "_CPCibWindowTemplateWindowTitleKey", + _CPCibWindowTemplateWindowViewKey = "_CPCibWindowTemplateWindowViewKey", + + _CPCibWindowTemplateWindowIsFullBridgeKey = "_CPCibWindowTemplateWindowIsFullBridgeKey"; + +{var the_class = objj_allocateClassPair(CPObject, "_CPCibWindowTemplate"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_minSize"), new objj_ivar("_maxSize"), new objj_ivar("_viewClass"), new objj_ivar("_windowClass"), new objj_ivar("_windowRect"), new objj_ivar("_windowStyleMask"), new objj_ivar("_windowTitle"), new objj_ivar("_windowView"), new objj_ivar("_windowIsFullBridge")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPCibWindowTemplate__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + + if (self) + { + if (objj_msgSend(aCoder, "containsValueForKey:", _CPCibWindowTemplateMinSizeKey)) + _minSize = objj_msgSend(aCoder, "decodeSizeForKey:", _CPCibWindowTemplateMinSizeKey); + if (objj_msgSend(aCoder, "containsValueForKey:", _CPCibWindowTemplateMaxSizeKey)) + _maxSize = objj_msgSend(aCoder, "decodeSizeForKey:", _CPCibWindowTemplateMaxSizeKey); + + _viewClass = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibWindowTemplateViewClassKey); + + _windowClass = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibWindowTemplateWindowClassKey); + _windowRect = objj_msgSend(aCoder, "decodeRectForKey:", _CPCibWindowTemplateWindowRectKey); + _windowStyleMask = objj_msgSend(aCoder, "decodeIntForKey:", _CPCibWindowTemplateWindowStyleMaskKey); + + _windowTitle = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibWindowTemplateWindowTitleKey); + _windowView = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibWindowTemplateWindowViewKey); + + _windowIsFullBridge = objj_msgSend(aCoder, "decodeObjectForKey:", _CPCibWindowTemplateWindowIsFullBridgeKey); + } + + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPCibWindowTemplate__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (_minSize) + objj_msgSend(aCoder, "encodeSize:forKey:", _minSize, _CPCibWindowTemplateMinSizeKey); + if (_maxSize) + objj_msgSend(aCoder, "encodeSize:forKey:", _maxSize, _CPCibWindowTemplateMaxSizeKey); + + objj_msgSend(aCoder, "encodeObject:forKey:", _viewClass, _CPCibWindowTemplateViewClassKey); + + objj_msgSend(aCoder, "encodeObject:forKey:", _windowClass, _CPCibWindowTemplateWindowClassKey); + objj_msgSend(aCoder, "encodeRect:forKey:", _windowRect, _CPCibWindowTemplateWindowRectKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _windowStyleMask, _CPCibWindowTemplateWindowStyleMaskKey); + + objj_msgSend(aCoder, "encodeObject:forKey:", _windowTitle, _CPCibWindowTemplateWindowTitleKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _windowView, _CPCibWindowTemplateWindowViewKey); + + objj_msgSend(aCoder, "encodeObject:forKey:", _windowIsFullBridge, _CPCibWindowTemplateWindowIsFullBridgeKey); +} +}), new objj_method(sel_getUid("windowClass"), function $_CPCibWindowTemplate__windowClass(self, _cmd) +{ with(self) +{ + return _windowClass; +} +}), new objj_method(sel_getUid("_cibInstantiate"), function $_CPCibWindowTemplate___cibInstantiate(self, _cmd) +{ with(self) +{ + var windowClass = CPClassFromString(objj_msgSend(self, "windowClass")); + + + + + + var theWindow = objj_msgSend(objj_msgSend(windowClass, "alloc"), "initWithContentRect:styleMask:", _windowRect, _windowStyleMask); + + if (_minSize) + objj_msgSend(theWindow, "setMinSize:", _minSize); + if (_maxSize) + objj_msgSend(theWindow, "setMaxSize:", _maxSize); + objj_msgSend(theWindow, "setLevel:", CPFloatingWindowLevel); + + + objj_msgSend(theWindow, "setTitle:", _windowTitle); + + + objj_msgSend(_windowView, "setAutoresizesSubviews:", NO); + + objj_msgSend(theWindow, "setContentView:", _windowView); + + objj_msgSend(_windowView, "setAutoresizesSubviews:", YES); + + if (objj_msgSend(_viewClass, "isKindOfClass:", objj_msgSend(CPToolbar, "class"))) + { + objj_msgSend(theWindow, "setToolbar:", _viewClass); + } + + objj_msgSend(theWindow, "setFullBridge:", _windowIsFullBridge); + + return theWindow; +} +})]); +} + +p;15;_CPCornerView.ji;8;CPView.jc;611; + +{var the_class = objj_allocateClassPair(CPView, "_CPCornerView"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $_CPCornerView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame)) + { + objj_msgSend(self, "setBackgroundColor:", objj_msgSend(CPColor, "purpleColor")); + } + + return self; +} +})]); +} + +p;18;_CPHUDWindowView.jc;9230;var _CPHUDWindowViewBackgroundColor = nil, + CPHUDCloseButtonImage = nil; +var HUD_TITLEBAR_HEIGHT = 26.0; +{var the_class = objj_allocateClassPair(_CPWindowView, "_CPHUDWindowView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_toolbarView"), new objj_ivar("_titleField"), new objj_ivar("_closeButton")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("contentRectForFrameRect:"), function $_CPHUDWindowView__contentRectForFrameRect_(self, _cmd, aFrameRect) +{ with(self) +{ + var contentRect = objj_msgSend(objj_msgSend(self, "class"), "contentRectForFrameRect:", aFrameRect); + if (objj_msgSend(objj_msgSend(objj_msgSend(self, "window"), "toolbar"), "isVisible")) + { + toolbarHeight = CGRectGetHeight(objj_msgSend(objj_msgSend(self, "toolbarView"), "frame")); + contentRect.origin.y += toolbarHeight; + contentRect.size.height -= toolbarHeight; + } + return contentRect; +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $_CPHUDWindowView__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + var frameRect = objj_msgSend(objj_msgSend(self, "class"), "frameRectForContentRect:", aContentRect); + if (objj_msgSend(objj_msgSend(objj_msgSend(self, "window"), "toolbar"), "isVisible")) + { + toolbarHeight = CGRectGetHeight(objj_msgSend(objj_msgSend(self, "toolbarView"), "frame")); + frameRect.origin.y -= toolbarHeight; + frameRect.size.height += toolbarHeight; + } + return frameRect; +} +}), new objj_method(sel_getUid("initWithFrame:styleMask:"), function $_CPHUDWindowView__initWithFrame_styleMask_(self, _cmd, aFrame, aStyleMask) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("_CPWindowView") }, "initWithFrame:styleMask:", aFrame, aStyleMask); + if (self) + { + var bounds = objj_msgSend(self, "bounds"); + objj_msgSend(self, "setBackgroundColor:", _CPHUDWindowViewBackgroundColor); + _titleField = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_titleField, "setHitTests:", NO); + objj_msgSend(_titleField, "setFont:", objj_msgSend(CPFont, "systemFontOfSize:", 11.0)); + objj_msgSend(_titleField, "setTextColor:", objj_msgSend(CPColor, "whiteColor")); + objj_msgSend(_titleField, "setTextShadowColor:", objj_msgSend(CPColor, "blackColor")); + objj_msgSend(_titleField, "setTextShadowOffset:", CGSizeMake(0.0, 1.0)); + objj_msgSend(_titleField, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_titleField, "setLineBreakMode:", CPLineBreakByTruncatingTail); + objj_msgSend(_titleField, "setAlignment:", CPCenterTextAlignment); + objj_msgSend(_titleField, "setStringValue:", "Untitled"); + objj_msgSend(_titleField, "sizeToFit"); + objj_msgSend(_titleField, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_titleField, "setStringValue:", ""); + objj_msgSend(_titleField, "setFrame:", CGRectMake(20.0, 3.0, CGRectGetWidth(objj_msgSend(self, "bounds")) - 40.0, CGRectGetHeight(objj_msgSend(_titleField, "frame")))); + objj_msgSend(self, "addSubview:", _titleField); + if (_styleMask & CPClosableWindowMask) + { + var closeSize = objj_msgSend(_CPHUDWindowViewCloseImage, "size"); + _closeButton = objj_msgSend(objj_msgSend(CPButton, "alloc"), "initWithFrame:", CGRectMake(4.0, 4.0, closeSize.width, closeSize.height)); + objj_msgSend(_closeButton, "setBordered:", NO); + objj_msgSend(_closeButton, "setImage:", _CPHUDWindowViewCloseImage); + objj_msgSend(_closeButton, "setAlternateImage:", _CPHUDWindowViewCloseActiveImage); + objj_msgSend(self, "addSubview:", _closeButton); + } + objj_msgSend(self, "setResizeIndicatorOffset:", CGSizeMake(5.0, 5.0)); + } + return self; +} +}), new objj_method(sel_getUid("viewDidMoveToWindow"), function $_CPHUDWindowView__viewDidMoveToWindow(self, _cmd) +{ with(self) +{ + objj_msgSend(_closeButton, "setTarget:", objj_msgSend(self, "window")); + objj_msgSend(_closeButton, "setAction:", sel_getUid("performClose:")); +} +}), new objj_method(sel_getUid("setTitle:"), function $_CPHUDWindowView__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + objj_msgSend(_titleField, "setStringValue:", aTitle); +} +}), new objj_method(sel_getUid("toolbarView"), function $_CPHUDWindowView__toolbarView(self, _cmd) +{ with(self) +{ + return _toolbarView; +} +}), new objj_method(sel_getUid("toolbarLabelColor"), function $_CPHUDWindowView__toolbarLabelColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPColor, "whiteColor"); +} +}), new objj_method(sel_getUid("toolbarLabelShadowColor"), function $_CPHUDWindowView__toolbarLabelShadowColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPColor, "blackColor"); +} +}), new objj_method(sel_getUid("toolbarOffset"), function $_CPHUDWindowView__toolbarOffset(self, _cmd) +{ with(self) +{ + return CGSizeMake(0.0, HUD_TITLEBAR_HEIGHT); +} +}), new objj_method(sel_getUid("tile"), function $_CPHUDWindowView__tile(self, _cmd) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("_CPWindowView") }, "tile"); + var theWindow = objj_msgSend(self, "window"), + bounds = objj_msgSend(self, "bounds"), + width = CGRectGetWidth(bounds); + objj_msgSend(_titleField, "setFrame:", CGRectMake(20.0, 3.0, width - 40.0, CGRectGetHeight(objj_msgSend(_titleField, "frame")))); + var maxY = objj_msgSend(self, "toolbarMaxY"); + objj_msgSend(objj_msgSend(theWindow, "contentView"), "setFrameOrigin:", CGPointMake(0.0, maxY, width, CGRectGetHeight(bounds) - maxY)); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPHUDWindowView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPHUDWindowView, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPHUDWindowViewBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground0.png"), CPSizeMake(6.0, 78.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground1.png"), CPSizeMake(1.0, 78.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground2.png"), CPSizeMake(6.0, 78.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground3.png"), CPSizeMake(6.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground4.png"), CPSizeMake(1.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground5.png"), CPSizeMake(6.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground6.png"), CPSizeMake(6.0, 6.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground7.png"), CPSizeMake(6.0, 6.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/HUD/CPWindowHUDBackground8.png"), CPSizeMake(6.0, 6.0)) + ])); + _CPHUDWindowViewCloseImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "HUDTheme/WindowClose.png"), CPSizeMake(20.0, 20.0)); + _CPHUDWindowViewCloseActiveImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "HUDTheme/WindowCloseActive.png"), CPSizeMake(20.0, 20.0)); +} +}), new objj_method(sel_getUid("contentRectForFrameRect:"), function $_CPHUDWindowView__contentRectForFrameRect_(self, _cmd, aFrameRect) +{ with(self) +{ + var contentRect = CGRectMakeCopy(aFrameRect), + titleBarHeight = HUD_TITLEBAR_HEIGHT; + contentRect.origin.y += titleBarHeight; + contentRect.size.height -= titleBarHeight; + return contentRect; +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $_CPHUDWindowView__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + var frameRect = CGRectMakeCopy(aContentRect), + titleBarHeight = HUD_TITLEBAR_HEIGHT; + frameRect.origin.y -= titleBarHeight; + frameRect.size.height += titleBarHeight; + return frameRect; +} +})]); +} + +p;21;_CPImageAndTextView.jI;21;Foundation/CPString.ji;9;CPColor.ji;8;CPFont.ji;9;CPImage.ji;13;CPTextField.ji;8;CPView.jc;11313; +CPTopVerticalTextAlignment = 1, +CPCenterVerticalTextAlignment = 2, +CPBottomVerticalTextAlignment = 3; +var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0, + _CPImageAndTextViewImageChangedFlag = 1 << 1, + _CPImageAndTextViewTextChangedFlag = 1 << 2, + _CPImageAndTextViewAlignmentChangedFlag = 1 << 3, + _CPImageAndTextViewVerticalAlignmentChangedFlag = 1 << 4, + _CPImageAndTextViewLineBreakModeChangedFlag = 1 << 5, + _CPImageAndTextViewTextColorChangedFlag = 1 << 6, + _CPImageAndTextViewFontChangedFlag = 1 << 7, + _CPImageAndTextViewTextShadowColorChangedFlag = 1 << 8, + _CPImageAndTextViewImagePositionChangedFlag = 1 << 9, + _CPImageAndTextViewImageScalingChangedFlag = 1 << 10; +var HORIZONTAL_MARGIN = 3.0, + VERTICAL_MARGIN = 5.0; +{var the_class = objj_allocateClassPair(CPView, "_CPImageAndTextView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_alignment"), new objj_ivar("_verticalAlignment"), new objj_ivar("_lineBreakMode"), new objj_ivar("_textColor"), new objj_ivar("_font"), new objj_ivar("_textShadowColor"), new objj_ivar("_textShadowOffset"), new objj_ivar("_imagePosition"), new objj_ivar("_imageScaling"), new objj_ivar("_image"), new objj_ivar("_text"), new objj_ivar("_textSize"), new objj_ivar("_flags")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:control:"), function $_CPImageAndTextView__initWithFrame_control_(self, _cmd, aFrame, aControl) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _textShadowOffset = { width:0.0, height:0.0 }; + objj_msgSend(self, "setVerticalAlignment:", CPTopVerticalTextAlignment); + if (aControl) + { + objj_msgSend(self, "setLineBreakMode:", objj_msgSend(aControl, "lineBreakMode")); + objj_msgSend(self, "setTextColor:", objj_msgSend(aControl, "textColor")); + objj_msgSend(self, "setAlignment:", objj_msgSend(aControl, "alignment")); + objj_msgSend(self, "setVerticalAlignment:", objj_msgSend(aControl, "verticalAlignment")); + objj_msgSend(self, "setFont:", objj_msgSend(aControl, "font")); + objj_msgSend(self, "setImagePosition:", objj_msgSend(aControl, "imagePosition")); + objj_msgSend(self, "setImageScaling:", objj_msgSend(aControl, "imageScaling")); + } + else + { + objj_msgSend(self, "setLineBreakMode:", CPLineBreakByClipping); + objj_msgSend(self, "setAlignment:", CPCenterTextAlignment); + objj_msgSend(self, "setFont:", objj_msgSend(CPFont, "systemFontOfSize:", 12.0)); + objj_msgSend(self, "setImagePosition:", CPNoImage); + objj_msgSend(self, "setImageScaling:", CPScaleNone); + } + _textSize = NULL; + } + return self; +} +}), new objj_method(sel_getUid("initWithFrame:"), function $_CPImageAndTextView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + return objj_msgSend(self, "initWithFrame:control:", aFrame, nil); +} +}), new objj_method(sel_getUid("setAlignment:"), function $_CPImageAndTextView__setAlignment_(self, _cmd, anAlignment) +{ with(self) +{ + if (_alignment === anAlignment) + return; + _alignment = anAlignment; +} +}), new objj_method(sel_getUid("alignment"), function $_CPImageAndTextView__alignment(self, _cmd) +{ with(self) +{ + return _alignment; +} +}), new objj_method(sel_getUid("setVerticalAlignment:"), function $_CPImageAndTextView__setVerticalAlignment_(self, _cmd, anAlignment) +{ with(self) +{ + if (_verticalAlignment === anAlignment) + return; + _verticalAlignment = anAlignment; + _flags |= _CPImageAndTextViewVerticalAlignmentChangedFlag; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("verticalAlignment"), function $_CPImageAndTextView__verticalAlignment(self, _cmd) +{ with(self) +{ + return _verticalAlignment; +} +}), new objj_method(sel_getUid("setLineBreakMode:"), function $_CPImageAndTextView__setLineBreakMode_(self, _cmd, aLineBreakMode) +{ with(self) +{ + if (_lineBreakMode === aLineBreakMode) + return; + _lineBreakMode = aLineBreakMode; + _flags |= _CPImageAndTextViewLineBreakModeChangedFlag; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("lineBreakMode"), function $_CPImageAndTextView__lineBreakMode(self, _cmd) +{ with(self) +{ + return _lineBreakMode; +} +}), new objj_method(sel_getUid("setImagePosition:"), function $_CPImageAndTextView__setImagePosition_(self, _cmd, anImagePosition) +{ with(self) +{ + if (_imagePosition == anImagePosition) + return; + _imagePosition = anImagePosition; + _flags |= _CPImageAndTextViewImagePositionChangedFlag; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("imagePosition"), function $_CPImageAndTextView__imagePosition(self, _cmd) +{ with(self) +{ + return _imagePosition; +} +}), new objj_method(sel_getUid("setImageScaling:"), function $_CPImageAndTextView__setImageScaling_(self, _cmd, anImageScaling) +{ with(self) +{ + if (_imageScaling == anImageScaling) + return; + _imageScaling = anImageScaling; + _flags |= _CPImageAndTextViewImageScalingChangedFlag; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("imageScaling"), function $_CPImageAndTextView__imageScaling(self, _cmd) +{ with(self) +{ + return _imageScaling; +} +}), new objj_method(sel_getUid("setTextColor:"), function $_CPImageAndTextView__setTextColor_(self, _cmd, aTextColor) +{ with(self) +{ + if (_textColor === aTextColor) + return; + _textColor = aTextColor; +} +}), new objj_method(sel_getUid("textColor"), function $_CPImageAndTextView__textColor(self, _cmd) +{ with(self) +{ + return _textColor; +} +}), new objj_method(sel_getUid("setFont:"), function $_CPImageAndTextView__setFont_(self, _cmd, aFont) +{ with(self) +{ + if (_font === aFont) + return; + _font = aFont; + _flags |= _CPImageAndTextViewFontChangedFlag; + _textSize = NULL; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("font"), function $_CPImageAndTextView__font(self, _cmd) +{ with(self) +{ + return _font; +} +}), new objj_method(sel_getUid("setTextShadowColor:"), function $_CPImageAndTextView__setTextShadowColor_(self, _cmd, aColor) +{ with(self) +{ + if (_textShadowColor === aColor) + return; + _textShadowColor = aColor; + _flags |= _CPImageAndTextViewTextShadowColorChangedFlag; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("textShadowColor"), function $_CPImageAndTextView__textShadowColor(self, _cmd) +{ with(self) +{ + return _textShadowColor; +} +}), new objj_method(sel_getUid("setTextShadowOffset:"), function $_CPImageAndTextView__setTextShadowOffset_(self, _cmd, anOffset) +{ with(self) +{ + if ((_textShadowOffset.width == anOffset.width && _textShadowOffset.height == anOffset.height)) + return; + _textShadowOffset = { width:anOffset.width, height:anOffset.height }; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("textShadowOffset"), function $_CPImageAndTextView__textShadowOffset(self, _cmd) +{ with(self) +{ + return _textShadowOffset; +} +}), new objj_method(sel_getUid("setImage:"), function $_CPImageAndTextView__setImage_(self, _cmd, anImage) +{ with(self) +{ + if (_image == anImage) + return; + _image = anImage; + _flags |= _CPImageAndTextViewImageChangedFlag; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("image"), function $_CPImageAndTextView__image(self, _cmd) +{ with(self) +{ + return _image; +} +}), new objj_method(sel_getUid("setText:"), function $_CPImageAndTextView__setText_(self, _cmd, text) +{ with(self) +{ + if (_text === text) + return; + _text = text; + _flags |= _CPImageAndTextViewTextChangedFlag; + _textSize = NULL; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("text"), function $_CPImageAndTextView__text(self, _cmd) +{ with(self) +{ + return _text; +} +}), new objj_method(sel_getUid("layoutSubviews"), function $_CPImageAndTextView__layoutSubviews(self, _cmd) +{ with(self) +{ + var size = objj_msgSend(self, "bounds").size, + textRect = { origin: { x:0.0, y:0.0 }, size: { width:size.width, height:size.height } }; + if (hasDOMImageElement) + { + if (!imageStyle) + var imageStyle = _DOMImageElement.style; + if (_flags & _CPImageAndTextViewImageChangedFlag) + _DOMImageElement.src = objj_msgSend(_image, "filename"); + var centerX = size.width / 2.0, + centerY = size.height / 2.0, + imageSize = objj_msgSend(_image, "size"), + imageWidth = imageSize.width, + imageHeight = imageSize.height; + if (_imageScaling === CPScaleToFit) + { + imageWidth = size.width; + imageHeight = size.height; + } + else if (_imageScaling === CPScaleProportionally) + { + var scale = MIN(MIN(size.width, imageWidth) / imageWidth, MIN(size.height, imageHeight) / imageHeight); + imageWidth *= scale; + imageHeight *= scale; + } + if (_imagePosition === CPImageBelow) + { + textRect.size.height = size.height - imageHeight - VERTICAL_MARGIN; + } + else if (_imagePosition === CPImageAbove) + { + textRect.origin.y += imageHeight + VERTICAL_MARGIN; + textRect.size.height = size.height - imageHeight - VERTICAL_MARGIN; + } + else if (_imagePosition === CPImageLeft) + { + textRect.origin.x = imageWidth + HORIZONTAL_MARGIN; + textRect.size.width -= imageWidth + HORIZONTAL_MARGIN; + } + else if (_imagePosition === CPImageRight) + { + textRect.size.width -= imageWidth + HORIZONTAL_MARGIN; + } + else if (_imagePosition === CPImageOnly) + { + } + } + _flags = 0; +} +}), new objj_method(sel_getUid("sizeToFit"), function $_CPImageAndTextView__sizeToFit(self, _cmd) +{ with(self) +{ + var size = CGSizeMakeZero(); + if ((_imagePosition !== CPNoImage) && _image) + { + var imageSize = objj_msgSend(_image, "size"); + size.width += imageSize.width; + size.height += imageSize.height; + } + if ((_imagePosition !== CPImageOnly) && objj_msgSend(_text, "length") > 0) + { + if (!_textSize) + _textSize = objj_msgSend(_text, "sizeWithFont:", _font ? _font : objj_msgSend(CPFont, "systemFontOfSize:", 12.0)); + if (_imagePosition === CPImageLeft || _imagePosition === CPImageRight) + { + size.width += _textSize.width + HORIZONTAL_MARGIN; + size.height = MAX(size.height, _textSize.height); + } + else if (_imagePosition === CPImageAbove || _imagePosition === CPImageBelow) + { + size.width = MAX(size.width, _textSize.width); + size.height += _textSize.height + VERTICAL_MARGIN; + } + else + { + size.width = MAX(size.width, _textSize.width); + size.height = MAX(size.height, _textSize.height); + } + } + objj_msgSend(self, "setFrameSize:", size); +} +})]); +} + +p;23;_CPStandardWindowView.ji;15;_CPWindowView.jc;14081; +var GRADIENT_HEIGHT = 41.0; +var _CPTexturedWindowHeadGradientColor = nil, + _CPTexturedWindowHeadSolidColor = nil; +{var the_class = objj_allocateClassPair(CPView, "_CPTexturedWindowHeadView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_gradientView"), new objj_ivar("_solidView"), new objj_ivar("_dividerView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $_CPTexturedWindowHeadView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + var theClass = objj_msgSend(self, "class"), + bounds = objj_msgSend(self, "bounds"); + _gradientView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), GRADIENT_HEIGHT)); + objj_msgSend(_gradientView, "setBackgroundColor:", objj_msgSend(theClass, "gradientColor")); + objj_msgSend(self, "addSubview:", _gradientView); + _solidView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, GRADIENT_HEIGHT, CGRectGetWidth(bounds), CGRectGetHeight(bounds) - GRADIENT_HEIGHT)); + objj_msgSend(_solidView, "setBackgroundColor:", objj_msgSend(theClass, "solidColor")); + objj_msgSend(self, "addSubview:", _solidView); + } + return self; +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $_CPTexturedWindowHeadView__resizeSubviewsWithOldSize_(self, _cmd, aSize) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"); + objj_msgSend(_gradientView, "setFrameSize:", CGSizeMake(CGRectGetWidth(bounds), GRADIENT_HEIGHT)); + objj_msgSend(_solidView, "setFrameSize:", CGSizeMake(CGRectGetWidth(bounds), CGRectGetHeight(bounds) - GRADIENT_HEIGHT)); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("gradientColor"), function $_CPTexturedWindowHeadView__gradientColor(self, _cmd) +{ with(self) +{ + if (!_CPTexturedWindowHeadGradientColor) + { + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(_CPWindowView, "class")); + _CPTexturedWindowHeadGradientColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPThreePartImage, "alloc"), "initWithImageSlices:isVertical:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/Standard/CPWindowStandardTop0.png"), CGSizeMake(6.0, 41.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/Standard/CPWindowStandardTop1.png"), CGSizeMake(1.0, 41.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/Standard/CPWindowStandardTop2.png"), CGSizeMake(6.0, 41.0)) + ], NO + )); + } + return _CPTexturedWindowHeadGradientColor; +} +}), new objj_method(sel_getUid("solidColor"), function $_CPTexturedWindowHeadView__solidColor(self, _cmd) +{ with(self) +{ + if (!_CPTexturedWindowHeadSolidColor) + _CPTexturedWindowHeadSolidColor = objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 195.0 / 255.0, 195.0 / 255.0, 195.0 / 255.0, 1.0); + return _CPTexturedWindowHeadSolidColor; +} +})]); +} +var _CPStandardWindowViewBodyBackgroundColor = nil, + _CPStandardWindowViewDividerBackgroundColor = nil, + _CPStandardWindowViewTitleBackgroundColor = nil, + _CPStandardWindowViewCloseButtonImage = nil, + _CPStandardWindowViewCloseButtonHighlightedImage = nil; +var STANDARD_GRADIENT_HEIGHT = 41.0; + STANDARD_TITLEBAR_HEIGHT = 25.0; +{var the_class = objj_allocateClassPair(_CPWindowView, "_CPStandardWindowView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_headView"), new objj_ivar("_dividerView"), new objj_ivar("_bodyView"), new objj_ivar("_toolbarView"), new objj_ivar("_titleField"), new objj_ivar("_closeButton")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("contentRectForFrameRect:"), function $_CPStandardWindowView__contentRectForFrameRect_(self, _cmd, aFrameRect) +{ with(self) +{ + var contentRect = objj_msgSend(objj_msgSend(self, "class"), "contentRectForFrameRect:", aFrameRect), + theToolbar = objj_msgSend(objj_msgSend(self, "window"), "toolbar"); + if (objj_msgSend(theToolbar, "isVisible")) + { + toolbarHeight = CGRectGetHeight(objj_msgSend(objj_msgSend(theToolbar, "_toolbarView"), "frame")); + contentRect.origin.y += toolbarHeight; + contentRect.size.height -= toolbarHeight; + } + return contentRect; +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $_CPStandardWindowView__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + var frameRect = objj_msgSend(objj_msgSend(self, "class"), "frameRectForContentRect:", aContentRect), + theToolbar = objj_msgSend(objj_msgSend(self, "window"), "toolbar"); + if (objj_msgSend(theToolbar, "isVisible")) + { + toolbarHeight = CGRectGetHeight(objj_msgSend(objj_msgSend(theToolbar, "_toolbarView"), "frame")); + frameRect.origin.y -= toolbarHeight; + frameRect.size.height += toolbarHeight; + } + return frameRect; +} +}), new objj_method(sel_getUid("initWithFrame:styleMask:"), function $_CPStandardWindowView__initWithFrame_styleMask_(self, _cmd, aFrame, aStyleMask) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("_CPWindowView") }, "initWithFrame:styleMask:", aFrame, aStyleMask); + if (self) + { + var theClass = objj_msgSend(self, "class"), + bounds = objj_msgSend(self, "bounds"); + _headView = objj_msgSend(objj_msgSend(_CPTexturedWindowHeadView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), objj_msgSend(objj_msgSend(self, "class"), "titleBarHeight"))); + objj_msgSend(_headView, "setAutoresizingMask:", CPViewWidthSizable);; + objj_msgSend(_headView, "setHitTests:", NO); + objj_msgSend(self, "addSubview:", _headView); + _dividerView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, CGRectGetMaxY(objj_msgSend(_headView, "frame")), CGRectGetWidth(bounds), 1.0)); + objj_msgSend(_dividerView, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_dividerView, "setBackgroundColor:", objj_msgSend(theClass, "dividerBackgroundColor")); + objj_msgSend(_dividerView, "setHitTests:", NO); + objj_msgSend(self, "addSubview:", _dividerView); + var y = CGRectGetMaxY(objj_msgSend(_dividerView, "frame")); + _bodyView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, y, CGRectGetWidth(bounds), CGRectGetHeight(bounds) - y)); + objj_msgSend(_bodyView, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + objj_msgSend(_bodyView, "setBackgroundColor:", objj_msgSend(theClass, "bodyBackgroundColor")); + objj_msgSend(_bodyView, "setHitTests:", NO); + objj_msgSend(self, "addSubview:", _bodyView); + objj_msgSend(self, "setResizeIndicatorOffset:", CGSizeMake(2.0, 2.0)); + _titleField = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_titleField, "setFont:", objj_msgSend(CPFont, "boldSystemFontOfSize:", 12.0)); + objj_msgSend(_titleField, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_titleField, "setLineBreakMode:", CPLineBreakByTruncatingTail); + objj_msgSend(_titleField, "setAlignment:", CPCenterTextAlignment); + objj_msgSend(_titleField, "setTextShadowColor:", objj_msgSend(CPColor, "whiteColor")); + objj_msgSend(_titleField, "setTextShadowOffset:", CGSizeMake(0.0, 1.0)); + objj_msgSend(_titleField, "setStringValue:", "Untitled"); + objj_msgSend(_titleField, "sizeToFit"); + objj_msgSend(_titleField, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_titleField, "setStringValue:", ""); + objj_msgSend(self, "addSubview:", _titleField); + if (_styleMask & CPClosableWindowMask) + { + if (!_CPStandardWindowViewCloseButtonImage) + { + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPWindow, "class")); + _CPStandardWindowViewCloseButtonImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/Standard/CPWindowStandardCloseButton.png"), CGSizeMake(16.0, 16.0)); + _CPStandardWindowViewCloseButtonHighlightedImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/Standard/CPWindowStandardCloseButtonHighlighted.png"), CGSizeMake(16.0, 16.0)); + } + _closeButton = objj_msgSend(objj_msgSend(CPButton, "alloc"), "initWithFrame:", CGRectMake(8.0, 7.0, 16.0, 16.0)); + objj_msgSend(_closeButton, "setBordered:", NO); + objj_msgSend(_closeButton, "setImage:", _CPStandardWindowViewCloseButtonImage); + objj_msgSend(_closeButton, "setAlternateImage:", _CPStandardWindowViewCloseButtonHighlightedImage); + objj_msgSend(self, "addSubview:", _closeButton); + } + objj_msgSend(self, "tile"); + } + return self; +} +}), new objj_method(sel_getUid("viewDidMoveToWindow"), function $_CPStandardWindowView__viewDidMoveToWindow(self, _cmd) +{ with(self) +{ + objj_msgSend(_closeButton, "setTarget:", objj_msgSend(self, "window")); + objj_msgSend(_closeButton, "setAction:", sel_getUid("performClose:")); +} +}), new objj_method(sel_getUid("toolbarOffset"), function $_CPStandardWindowView__toolbarOffset(self, _cmd) +{ with(self) +{ + return CGSizeMake(0.0, objj_msgSend(objj_msgSend(self, "class"), "titleBarHeight")); +} +}), new objj_method(sel_getUid("tile"), function $_CPStandardWindowView__tile(self, _cmd) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("_CPWindowView") }, "tile"); + var theWindow = objj_msgSend(self, "window"), + bounds = objj_msgSend(self, "bounds"), + width = CGRectGetWidth(bounds); + objj_msgSend(_headView, "setFrameSize:", CGSizeMake(width, objj_msgSend(self, "toolbarMaxY"))); + objj_msgSend(_dividerView, "setFrame:", CGRectMake(0.0, CGRectGetMaxY(objj_msgSend(_headView, "frame")), width, 1.0)); + var dividerMaxY = CGRectGetMaxY(objj_msgSend(_dividerView, "frame")); + objj_msgSend(_bodyView, "setFrame:", CGRectMake(0.0, dividerMaxY, width, CGRectGetHeight(bounds) - dividerMaxY)); + objj_msgSend(_titleField, "setFrame:", CGRectMake(10.0, 3.0, width - 20.0, CGRectGetHeight(objj_msgSend(_titleField, "frame")))); + objj_msgSend(objj_msgSend(theWindow, "contentView"), "setFrameOrigin:", CGPointMake(0.0, CGRectGetMaxY(objj_msgSend(_dividerView, "frame")))); +} +}), new objj_method(sel_getUid("setTitle:"), function $_CPStandardWindowView__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + objj_msgSend(_titleField, "setStringValue:", aTitle); +} +}), new objj_method(sel_getUid("mouseDown:"), function $_CPStandardWindowView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (CGRectContainsPoint(objj_msgSend(_headView, "frame"), objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil))) + return objj_msgSend(self, "trackMoveWithEvent:", anEvent); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("_CPWindowView") }, "mouseDown:", anEvent); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("bodyBackgroundColor"), function $_CPStandardWindowView__bodyBackgroundColor(self, _cmd) +{ with(self) +{ + if (!_CPStandardWindowViewBodyBackgroundColor) + _CPStandardWindowViewBodyBackgroundColor = objj_msgSend(CPColor, "colorWithWhite:alpha:", 0.96, 1.0); + return _CPStandardWindowViewBodyBackgroundColor; +} +}), new objj_method(sel_getUid("dividerBackgroundColor"), function $_CPStandardWindowView__dividerBackgroundColor(self, _cmd) +{ with(self) +{ + if (!_CPStandardWindowViewDividerBackgroundColor) + _CPStandardWindowViewDividerBackgroundColor = objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 125.0 / 255.0, 125.0 / 255.0, 125.0 / 255.0, 1.0); + return _CPStandardWindowViewDividerBackgroundColor; +} +}), new objj_method(sel_getUid("titleColor"), function $_CPStandardWindowView__titleColor(self, _cmd) +{ with(self) +{ + if (!_CPStandardWindowViewTitleBackgroundColor) + _CPStandardWindowViewTitleBackgroundColor = objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 44.0 / 255.0, 44.0 / 255.0, 44.0 / 255.0, 1.0); + return _CPStandardWindowViewTitleBackgroundColor; +} +}), new objj_method(sel_getUid("contentRectForFrameRect:"), function $_CPStandardWindowView__contentRectForFrameRect_(self, _cmd, aFrameRect) +{ with(self) +{ + var contentRect = CGRectMakeCopy(aFrameRect), + titleBarHeight = objj_msgSend(self, "titleBarHeight") + 1.0; + contentRect.origin.y += titleBarHeight; + contentRect.size.height -= titleBarHeight; + return contentRect; +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $_CPStandardWindowView__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + var frameRect = CGRectMakeCopy(aContentRect), + titleBarHeight = objj_msgSend(self, "titleBarHeight") + 1.0; + frameRect.origin.y -= titleBarHeight; + frameRect.size.height += titleBarHeight; + return frameRect; +} +}), new objj_method(sel_getUid("titleBarHeight"), function $_CPStandardWindowView__titleBarHeight(self, _cmd) +{ with(self) +{ + return STANDARD_TITLEBAR_HEIGHT; +} +})]); +} + +p;15;_CPWindowView.ji;8;CPView.ji;13;CPImageView.jc;12531; +var _CPWindowViewResizeIndicatorImage = nil; +{var the_class = objj_allocateClassPair(CPView, "_CPWindowView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_styleMask"), new objj_ivar("_resizeIndicator"), new objj_ivar("_resizeIndicatorOffset"), new objj_ivar("_toolbarView"), new objj_ivar("_resizeFrame"), new objj_ivar("_mouseDraggedPoint"), new objj_ivar("_cachedScreenFrame")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("contentRectForFrameRect:"), function $_CPWindowView__contentRectForFrameRect_(self, _cmd, aFrameRect) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "class"), "contentRectForFrameRect:", aFrameRect); +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $_CPWindowView__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "class"), "frameRectForContentRect:", aContentRect); +} +}), new objj_method(sel_getUid("initWithFrame:styleMask:"), function $_CPWindowView__initWithFrame_styleMask_(self, _cmd, aFrame, aStyleMask) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _styleMask = aStyleMask; + _resizeIndicatorOffset = CGSizeMake(0.0, 0.0); + _toolbarOffset = CGSizeMake(0.0, 0.0); + objj_msgSend(self, "setShowsResizeIndicator:", !(_styleMask & CPBorderlessBridgeWindowMask) && (_styleMask & CPResizableWindowMask)); + } + return self; +} +}), new objj_method(sel_getUid("setTitle:"), function $_CPWindowView__setTitle_(self, _cmd, aTitle) +{ with(self) +{ +} +}), new objj_method(sel_getUid("acceptsFirstMouse:"), function $_CPWindowView__acceptsFirstMouse_(self, _cmd, anEvent) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("mouseDown:"), function $_CPWindowView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + var theWindow = objj_msgSend(self, "window"); + if ((_styleMask & CPResizableWindowMask) && _resizeIndicator) + { + var frame = objj_msgSend(_resizeIndicator, "frame"); + if (CGRectContainsPoint(frame, objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil))) + return objj_msgSend(self, "trackResizeWithEvent:", anEvent); + } + if (objj_msgSend(theWindow, "isMovableByWindowBackground")) + objj_msgSend(self, "trackMoveWithEvent:", anEvent); + else + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "mouseDown:", anEvent); +} +}), new objj_method(sel_getUid("trackResizeWithEvent:"), function $_CPWindowView__trackResizeWithEvent_(self, _cmd, anEvent) +{ with(self) +{ + var location = objj_msgSend(anEvent, "locationInWindow"), + type = objj_msgSend(anEvent, "type"); + if (type === CPLeftMouseUp) + return; + var theWindow = objj_msgSend(self, "window"); + if (type === CPLeftMouseDown) + { + var frame = objj_msgSend(theWindow, "frame"); + _resizeFrame = CGRectMake(location.x, location.y, CGRectGetWidth(frame), CGRectGetHeight(frame)); + } + else if (type === CPLeftMouseDragged) + objj_msgSend(theWindow, "setFrameSize:", CGSizeMake(CGRectGetWidth(_resizeFrame) + location.x - CGRectGetMinX(_resizeFrame), CGRectGetHeight(_resizeFrame) + location.y - CGRectGetMinY(_resizeFrame))); + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackResizeWithEvent:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("_pointWithinScreenFrame:"), function $_CPWindowView___pointWithinScreenFrame_(self, _cmd, aPoint) +{ with(self) +{ + var visibleFrame = _cachedScreenFrame; + if (!visibleFrame) + visibleFrame = objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "visibleFrame"); + var restrictedPoint = CGPointMake(0, 0); + restrictedPoint.x = MIN(MAX(aPoint.x, -_frame.size.width + 4.0), CGRectGetMaxX(visibleFrame) - 4.0); + restrictedPoint.y = MIN(MAX(aPoint.y, 0.0), CGRectGetMaxY(visibleFrame) - 8.0); + return restrictedPoint; +} +}), new objj_method(sel_getUid("trackMoveWithEvent:"), function $_CPWindowView__trackMoveWithEvent_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"); + if (type === CPLeftMouseUp) + { + _cachedScreenFrame = nil; + return; + } + else if (type === CPLeftMouseDown) + { + _mouseDraggedPoint = objj_msgSend(objj_msgSend(self, "window"), "convertBaseToBridge:", objj_msgSend(anEvent, "locationInWindow")); + _cachedScreenFrame = objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "visibleFrame"); + } + else if (type === CPLeftMouseDragged) + { + var theWindow = objj_msgSend(self, "window"), + frame = objj_msgSend(theWindow, "frame"), + location = objj_msgSend(theWindow, "convertBaseToBridge:", objj_msgSend(anEvent, "locationInWindow")), + origin = objj_msgSend(self, "_pointWithinScreenFrame:", CGPointMake((frame.origin.x) + (location.x - _mouseDraggedPoint.x), + (frame.origin.y) + (location.y - _mouseDraggedPoint.y))); + objj_msgSend(theWindow, "setFrameOrigin:", origin); + _mouseDraggedPoint = objj_msgSend(self, "_pointWithinScreenFrame:", location); + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackMoveWithEvent:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("setShowsResizeIndicator:"), function $_CPWindowView__setShowsResizeIndicator_(self, _cmd, shouldShowResizeIndicator) +{ with(self) +{ + if (shouldShowResizeIndicator) + { + var size = objj_msgSend(_CPWindowViewResizeIndicatorImage, "size"), + boundsSize = objj_msgSend(self, "frame").size; + _resizeIndicator = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CGRectMake(boundsSize.width - size.width - _resizeIndicatorOffset.width, boundsSize.height - size.height - _resizeIndicatorOffset.height, size.width, size.height)); + objj_msgSend(_resizeIndicator, "setImage:", _CPWindowViewResizeIndicatorImage); + objj_msgSend(_resizeIndicator, "setAutoresizingMask:", CPViewMinXMargin | CPViewMinYMargin); + objj_msgSend(self, "addSubview:", _resizeIndicator); + } + else + { + objj_msgSend(_resizeIndicator, "removeFromSuperview"); + _resizeIndicator = nil; + } +} +}), new objj_method(sel_getUid("showsResizeIndicator"), function $_CPWindowView__showsResizeIndicator(self, _cmd) +{ with(self) +{ + return _resizeIndicator !== nil; +} +}), new objj_method(sel_getUid("setResizeIndicatorOffset:"), function $_CPWindowView__setResizeIndicatorOffset_(self, _cmd, anOffset) +{ with(self) +{ + if (CGSizeEqualToSize(_resizeIndicatorOffset, anOffset)) + return; + _resizeIndicatorOffset = anOffset; + if (!_resizeIndicator) + return; + var size = objj_msgSend(_resizeIndicator, "frame").size, + boundsSize = objj_msgSend(self, "frame").size; + objj_msgSend(_resizeIndicator, "setFrameOrigin:", CGPointMake(boundsSize.width - size.width - anOffset.width, boundsSize.height - size.height - anOffset.height)); +} +}), new objj_method(sel_getUid("resizeIndicatorOffset"), function $_CPWindowView__resizeIndicatorOffset(self, _cmd) +{ with(self) +{ + return _resizeIndicatorOffset; +} +}), new objj_method(sel_getUid("windowDidChangeDocumentEdited"), function $_CPWindowView__windowDidChangeDocumentEdited(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("windowDidChangeDocumentSaving"), function $_CPWindowView__windowDidChangeDocumentSaving(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("showsToolbar"), function $_CPWindowView__showsToolbar(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("toolbarOffset"), function $_CPWindowView__toolbarOffset(self, _cmd) +{ with(self) +{ + return CGSizeMakeZero(); +} +}), new objj_method(sel_getUid("toolbarLabelColor"), function $_CPWindowView__toolbarLabelColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPColor, "blackColor"); +} +}), new objj_method(sel_getUid("toolbarMaxY"), function $_CPWindowView__toolbarMaxY(self, _cmd) +{ with(self) +{ + if (!_toolbarView || objj_msgSend(_toolbarView, "isHidden")) + return objj_msgSend(self, "toolbarOffset").height; + return CGRectGetMaxY(objj_msgSend(_toolbarView, "frame")); +} +}), new objj_method(sel_getUid("toolbarView"), function $_CPWindowView__toolbarView(self, _cmd) +{ with(self) +{ + return _toolbarView; +} +}), new objj_method(sel_getUid("tile"), function $_CPWindowView__tile(self, _cmd) +{ with(self) +{ + var theWindow = objj_msgSend(self, "window"), + bounds = objj_msgSend(self, "bounds"), + width = CGRectGetWidth(bounds); + if (objj_msgSend(objj_msgSend(theWindow, "toolbar"), "isVisible")) + { + var toolbarView = objj_msgSend(self, "toolbarView"), + toolbarOffset = objj_msgSend(self, "toolbarOffset"); + objj_msgSend(toolbarView, "setFrame:", CGRectMake(toolbarOffset.width, toolbarOffset.height, width, CGRectGetHeight(objj_msgSend(toolbarView, "frame")))); + } + if (objj_msgSend(self, "showsResizeIndicator")) + { + var size = objj_msgSend(_resizeIndicator, "frame").size, + boundsSize = objj_msgSend(self, "bounds").size; + objj_msgSend(_resizeIndicator, "setFrameOrigin:", CGPointMake(boundsSize.width - size.width - _resizeIndicatorOffset.width, boundsSize.height - size.height - _resizeIndicatorOffset.height)); + } +} +}), new objj_method(sel_getUid("noteToolbarChanged"), function $_CPWindowView__noteToolbarChanged(self, _cmd) +{ with(self) +{ + var theWindow = objj_msgSend(self, "window"), + toolbar = objj_msgSend(theWindow, "toolbar"), + toolbarView = objj_msgSend(toolbar, "_toolbarView"); + if (_toolbarView !== toolbarView) + { + objj_msgSend(_toolbarView, "removeFromSuperview"); + if (toolbarView) + { + objj_msgSend(toolbarView, "removeFromSuperview"); + objj_msgSend(toolbarView, "setLabelColor:", objj_msgSend(self, "toolbarLabelColor")); + if (objj_msgSend(self, "respondsToSelector:", sel_getUid("toolbarLabelShadowColor"))) + objj_msgSend(toolbarView, "setLabelShadowColor:", objj_msgSend(self, "toolbarLabelShadowColor")); + objj_msgSend(self, "addSubview:", toolbarView); + } + _toolbarView = toolbarView; + } + objj_msgSend(toolbarView, "setHidden:", !objj_msgSend(self, "showsToolbar") || !objj_msgSend(toolbar, "isVisible")); + if (theWindow) + { + var contentRect = objj_msgSend(self, "convertRect:toView:", objj_msgSend(objj_msgSend(theWindow, "contentView"), "frame"), nil); + contentRect.origin = objj_msgSend(theWindow, "convertBaseToBridge:", contentRect.origin); + objj_msgSend(self, "setAutoresizesSubviews:", NO); + objj_msgSend(theWindow, "setFrame:", objj_msgSend(theWindow, "frameRectForContentRect:", contentRect)); + objj_msgSend(self, "setAutoresizesSubviews:", YES); + } + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("didAddSubview:"), function $_CPWindowView__didAddSubview_(self, _cmd, aView) +{ with(self) +{ + if (!_resizeIndicator || aView === _resizeIndicator) + return; + objj_msgSend(self, "addSubview:", _resizeIndicator); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPWindowView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPWindowView, "class")) + return; + _CPWindowViewResizeIndicatorImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPWindow, "class")), "pathForResource:", "_CPWindowView/_CPWindowViewResizeIndicator.png"), CGSizeMake(12.0, 12.0)); +} +}), new objj_method(sel_getUid("contentRectForFrameRect:"), function $_CPWindowView__contentRectForFrameRect_(self, _cmd, aFrameRect) +{ with(self) +{ + return CGRectMakeCopy(aFrameRect); +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $_CPWindowView__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + return CGRectMakeCopy(aContentRect); +} +})]); +} + +p;8;AppKit.ji;9;CALayer.ji;9;CPAlert.ji;13;CPAnimation.ji;15;CPApplication.ji;14;CPBezierPath.ji;10;CPButton.ji;13;CPButtonBar.ji;12;CPCheckBox.ji;7;CPCib.ji;14;CPCibLoading.ji;12;CPClipView.ji;18;CPCollectionView.ji;9;CPColor.ji;14;CPColorPanel.ji;13;CPColorWell.ji;17;CPCompatibility.ji;11;CPControl.ji;10;CPCookie.ji;12;CPDocument.ji;22;CPDocumentController.ji;9;CPEvent.ji;14;CPFlashMovie.ji;13;CPFlashView.ji;8;CPFont.ji;15;CPFontManager.ji;12;CPGeometry.ji;9;CPImage.ji;13;CPImageView.ji;8;CPMenu.ji;12;CPMenuItem.ji;9;CPPanel.ji;14;CPPasteboard.ji;15;CPPopUpButton.ji;21;CPProgressIndicator.ji;9;CPRadio.ji;13;CPResponder.ji;14;CPScrollView.ji;12;CPScroller.ji;19;CPSecureTextField.ji;20;CPSegmentedControl.ji;10;CPShadow.ji;10;CPSlider.ji;13;CPSplitView.ji;11;CPTabView.ji;15;CPTableColumn.ji;13;CPTableView.ji;13;CPTextField.ji;11;CPToolbar.ji;15;CPToolbarItem.ji;8;CPView.ji;11;CPWebView.ji;10;CPWindow.ji;20;CPWindowController.jp;13;CAAnimation.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.ji;23;CAMediaTimingFunction.jc;5403; +{var the_class = objj_allocateClassPair(CPObject, "CAAnimation"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_isRemovedOnCompletion"), new objj_ivar("_delegate")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CAAnimation__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _isRemovedOnCompletion = YES; + return self; +} +}), new objj_method(sel_getUid("shouldArchiveValueForKey:"), function $CAAnimation__shouldArchiveValueForKey_(self, _cmd, aKey) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("setRemovedOnCompletion:"), function $CAAnimation__setRemovedOnCompletion_(self, _cmd, isRemovedOnCompletion) +{ with(self) +{ + _isRemovedOnCompletion = isRemovedOnCompletion; +} +}), new objj_method(sel_getUid("removedOnCompletion"), function $CAAnimation__removedOnCompletion(self, _cmd) +{ with(self) +{ + return _isRemovedOnCompletion; +} +}), new objj_method(sel_getUid("isRemovedOnCompletion"), function $CAAnimation__isRemovedOnCompletion(self, _cmd) +{ with(self) +{ + return _isRemovedOnCompletion; +} +}), new objj_method(sel_getUid("timingFunction"), function $CAAnimation__timingFunction(self, _cmd) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CAAnimation__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; +} +}), new objj_method(sel_getUid("delegate"), function $CAAnimation__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("runActionForKey:object:arguments:"), function $CAAnimation__runActionForKey_object_arguments_(self, _cmd, aKey, anObject, arguments) +{ with(self) +{ + objj_msgSend(anObject, "addAnimation:forKey:", self, aKey); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("animation"), function $CAAnimation__animation(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "init"); +} +}), new objj_method(sel_getUid("defaultValueForKey:"), function $CAAnimation__defaultValueForKey_(self, _cmd, aKey) +{ with(self) +{ + return nil; +} +})]); +} +{var the_class = objj_allocateClassPair(CAAnimation, "CAPropertyAnimation"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_keyPath"), new objj_ivar("_isCumulative"), new objj_ivar("_isAdditive")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setKeyPath:"), function $CAPropertyAnimation__setKeyPath_(self, _cmd, aKeyPath) +{ with(self) +{ + _keyPath = aKeyPath; +} +}), new objj_method(sel_getUid("keyPath"), function $CAPropertyAnimation__keyPath(self, _cmd) +{ with(self) +{ + return _keyPath; +} +}), new objj_method(sel_getUid("setCumulative:"), function $CAPropertyAnimation__setCumulative_(self, _cmd, isCumulative) +{ with(self) +{ + _isCumulative = isCumulative; +} +}), new objj_method(sel_getUid("cumulative"), function $CAPropertyAnimation__cumulative(self, _cmd) +{ with(self) +{ + return _isCumulative; +} +}), new objj_method(sel_getUid("isCumulative"), function $CAPropertyAnimation__isCumulative(self, _cmd) +{ with(self) +{ + return _isCumulative; +} +}), new objj_method(sel_getUid("setAdditive:"), function $CAPropertyAnimation__setAdditive_(self, _cmd, isAdditive) +{ with(self) +{ + _isAdditive = isAdditive; +} +}), new objj_method(sel_getUid("additive"), function $CAPropertyAnimation__additive(self, _cmd) +{ with(self) +{ + return _isAdditive; +} +}), new objj_method(sel_getUid("isAdditive"), function $CAPropertyAnimation__isAdditive(self, _cmd) +{ with(self) +{ + return _isAdditive; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("animationWithKeyPath:"), function $CAPropertyAnimation__animationWithKeyPath_(self, _cmd, aKeyPath) +{ with(self) +{ + var animation = objj_msgSend(self, "animation"); + objj_msgSend(animation, "setKeyPath:", aKeyPath); + return animation; +} +})]); +} +{var the_class = objj_allocateClassPair(CAPropertyAnimation, "CABasicAnimation"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_fromValue"), new objj_ivar("_toValue"), new objj_ivar("_byValue")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setFromValue:"), function $CABasicAnimation__setFromValue_(self, _cmd, aValue) +{ with(self) +{ + _fromValue = aValue; +} +}), new objj_method(sel_getUid("fromValue"), function $CABasicAnimation__fromValue(self, _cmd) +{ with(self) +{ + return _fromValue; +} +}), new objj_method(sel_getUid("setToValue:"), function $CABasicAnimation__setToValue_(self, _cmd, aValue) +{ with(self) +{ + _toValue = aValue; +} +}), new objj_method(sel_getUid("toValue"), function $CABasicAnimation__toValue(self, _cmd) +{ with(self) +{ + return _toValue; +} +}), new objj_method(sel_getUid("setByValue:"), function $CABasicAnimation__setByValue_(self, _cmd, aValue) +{ with(self) +{ + _byValue = aValue; +} +}), new objj_method(sel_getUid("byValue"), function $CABasicAnimation__byValue(self, _cmd) +{ with(self) +{ + return _byValue; +} +})]); +} + +p;16;CABackingStore.ji;12;CGGeometry.ji;17;CPCompatibility.jc;841; +CABackingStoreGetContext= function(aBackingStore) +{ + return aBackingStore.context; +} +if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) +{ +CABackingStoreCreate = function() +{ + var DOMElement = document.createElement("canvas"); + DOMElement.style.position = "absolute"; + return { context:DOMElement.getContext("2d"), buffer:DOMElement, _image:DOMElement }; +} +CABackingStoreSetSize = function(aBackingStore, aSize) +{ + var buffer = aBackingStore.buffer; + buffer.width = aSize.width; + buffer.height = aSize.height; + buffer.style.width = aSize.width + "px";; + buffer.style.height = aSize.height + "px";; +} +} +else +{ +CABackingStoreCreate = function() +{ + var context = CGBitmapGraphicsContextCreate(); + context.buffer = ""; + return { context:context }; +} +CABackingStoreSetSize = function(aBackingStore, aSize) +{ +} +} + +p;14;CAFlashLayer.ji;9;CALayer.ji;14;CPFlashMovie.jc;1108; +{var the_class = objj_allocateClassPair(CALayer, "CAFlashLayer"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_flashMovie")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setFlashMovie:"), function $CAFlashLayer__setFlashMovie_(self, _cmd, aFlashMovie) +{ with(self) +{ + if (_flashMovie == aFlashMovie) + return; + _flashMovie = aFlashMovie; + _DOMElement.innerHTML = ""; +} +}), new objj_method(sel_getUid("flashMovie"), function $CAFlashLayer__flashMovie(self, _cmd) +{ with(self) +{ + return _flashMovie; +} +})]); +} + +p;9;CALayer.jI;21;Foundation/CPObject.jI;23;AppKit/CABackingStore.jI;18;AppKit/CGContext.jI;19;AppKit/CGGeometry.ji;12;CGGeometry.jc;36412; +CGAffineTransformMake= function(a, b, c, d, tx, ty) { return { a:a, b:b, c:c, d:d, tx:tx, ty:ty }; } +CGAffineTransformMakeIdentity= function() { return { a:1.0, b:0.0, c:0.0, d:1.0, tx:0.0, ty:0.0 }; } +CGAffineTransformMakeCopy= function(anAffineTransform) { return { a:anAffineTransform.a, b:anAffineTransform.b, c:anAffineTransform.c, d:anAffineTransform.d, tx:anAffineTransform.tx, ty:anAffineTransform.ty }; } +CGAffineTransformMakeScale= function(sx, sy) { return { a:sx, b:0.0, c:0.0, d:sy, tx:0.0, ty:0.0 }; } +CGAffineTransformMakeTranslation= function(tx, ty) { return { a:1.0, b:0.0, c:0.0, d:1.0, tx:tx, ty:ty }; } +CGAffineTransformTranslate= function(aTransform, tx, ty) { return { a:aTransform.a, b:aTransform.b, c:aTransform.c, d:aTransform.d, tx:aTransform.tx + aTransform.a * tx + aTransform.c * ty, ty:aTransform.ty + aTransform.b * tx + aTransform.d * ty }; } +CGAffineTransformScale= function(aTransform, sx, sy) { return { a:aTransform.a * sx, b:aTransform.b * sx, c:aTransform.c * sy, d:aTransform.d * sy, tx:aTransform.tx, ty:aTransform.ty }; } +CGAffineTransformConcat= function(lhs, rhs) { return { a:lhs.a * rhs.a + lhs.b * rhs.c, b:lhs.a * rhs.b + lhs.b * rhs.d, c:lhs.c * rhs.a + lhs.d * rhs.c, d:lhs.c * rhs.b + lhs.d * rhs.d, tx:lhs.tx * rhs.a + lhs.ty * rhs.c + rhs.tx, ty:lhs.tx * rhs.b + lhs.ty * rhs.d + rhs.ty }; } +CGPointApplyAffineTransform= function(aPoint, aTransform) { return { x:aPoint.x * aTransform.a + aPoint.y * aTransform.c + aTransform.tx, y:aPoint.x * aTransform.b + aPoint.y * aTransform.d + aTransform.ty }; } +CGSizeApplyAffineTransform= function(aSize, aTransform) { return { width:aSize.width * aTransform.a + aSize.height * aTransform.c, height:aSize.width * aTransform.b + aSize.height * aTransform.d }; } +CGAffineTransformIsIdentity= function(aTransform) { return (aTransform.a == 1 && aTransform.b == 0 && aTransform.c == 0 && aTransform.d == 1 && aTransform.tx == 0 && aTransform.ty == 0); } +CGAffineTransformEqualToTransform= function(lhs, rhs) { return (lhs.a == rhs.a && lhs.b == rhs.b && lhs.c == rhs.c && lhs.d == rhs.d && lhs.tx == rhs.tx && lhs.ty == rhs.ty); } +CGStringCreateWithCGAffineTransform= function(aTransform) { return (" [[ " + aTransform.a + ", " + aTransform.b + ", 0 ], [ " + aTransform.c + ", " + aTransform.d + ", 0 ], [ " + aTransform.tx + ", " + aTransform.ty + ", 1]]"); } +CGAffineTransformCreateCopy= function(aTransform) +{ + return { a:aTransform.a, b:aTransform.b, c:aTransform.c, d:aTransform.d, tx:aTransform.tx, ty:aTransform.ty }; +} +CGAffineTransformMakeRotation= function(anAngle) +{ + var sin = SIN(anAngle), + cos = COS(anAngle); + return { a:cos, b:sin, c:-sin, d:cos, tx:0.0, ty:0.0 }; +} +CGAffineTransformRotate= function(aTransform, anAngle) +{ + var sin = SIN(anAngle), + cos = COS(anAngle); + return { + a:aTransform.a * cos + aTransform.c * sin, + b:aTransform.b * cos + aTransform.d * sin, + c:aTransform.c * cos - aTransform.a * sin, + d:aTransform.d * cos - aTransform.b * sin, + tx:aTransform.tx, + ty:aTransform.ty + }; +} +CGAffineTransformInvert= function(aTransform) +{ + var determinant = 1 / (aTransform.a * aTransform.d - aTransform.b * aTransform.c); + return { + a:determinant * aTransform.d, + b:-determinant * aTransform.b, + c:-determinant * aTransform.c, + d:determinant * aTransform.a, + tx:determinant * (aTransform.c * aTransform.ty - aTransform.d * aTransform.tx), + ty:determinant * (aTransform.b * aTransform.tx - aTransform.a * aTransform.ty) + }; +} +CGRectApplyAffineTransform= function(aRect, anAffineTransform) +{ + var top = (aRect.origin.y), + left = (aRect.origin.x), + right = (aRect.origin.x + aRect.size.width), + bottom = (aRect.origin.y + aRect.size.height), + topLeft = CGPointApplyAffineTransform({ x:left, y:top }, anAffineTransform), + topRight = CGPointApplyAffineTransform({ x:right, y:top }, anAffineTransform), + bottomLeft = CGPointApplyAffineTransform({ x:left, y:bottom }, anAffineTransform), + bottomRight = CGPointApplyAffineTransform({ x:right, y:bottom }, anAffineTransform), + minX = MIN(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x), + maxX = MAX(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x), + minY = MIN(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y), + maxY = MAX(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y); + return { origin: { x:minX, y:minY }, size: { width:(maxX - minX), height:(maxY - minY) } }; +} +CPStringFromCGAffineTransform= function(anAffineTransform) +{ + return '{' + anAffineTransform.a + ", " + anAffineTransform.b + ", " + anAffineTransform.c + ", " + anAffineTransform.d + ", " + anAffineTransform.tx + ", " + anAffineTransform.ty + '}'; +} +var CALayerGeometryBoundsMask = 1, + CALayerGeometryPositionMask = 2, + CALayerGeometryAnchorPointMask = 4, + CALayerGeometryAffineTransformMask = 8, + CALayerGeometryParentSublayerTransformMask = 16; +var USE_BUFFER = NO; +var CALayerFrameOriginUpdateMask = 1, + CALayerFrameSizeUpdateMask = 2, + CALayerZPositionUpdateMask = 4, + CALayerDisplayUpdateMask = 8, + CALayerCompositeUpdateMask = 16, + CALayerDOMUpdateMask = CALayerZPositionUpdateMask | CALayerFrameOriginUpdateMask | CALayerFrameSizeUpdateMask; +var CALayerRegisteredRunLoopUpdates = nil; +{var the_class = objj_allocateClassPair(CPObject, "CALayer"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_frame"), new objj_ivar("_bounds"), new objj_ivar("_position"), new objj_ivar("_zPosition"), new objj_ivar("_anchorPoint"), new objj_ivar("_affineTransform"), new objj_ivar("_sublayerTransform"), new objj_ivar("_sublayerTransformForSublayers"), new objj_ivar("_backingStoreFrame"), new objj_ivar("_standardBackingStoreFrame"), new objj_ivar("_hasSublayerTransform"), new objj_ivar("_hasCustomBackingStoreFrame"), new objj_ivar("_opacity"), new objj_ivar("_isHidden"), new objj_ivar("_backgroundColor"), new objj_ivar("_superlayer"), new objj_ivar("_sublayers"), new objj_ivar("_runLoopUpdateMask"), new objj_ivar("_needsDisplayOnBoundsChange"), new objj_ivar("_delegate"), new objj_ivar("_delegateRespondsToDisplayLayerSelector"), new objj_ivar("_delegateRespondsToDrawLayerInContextSelector"), new objj_ivar("_DOMElement"), new objj_ivar("_DOMContentsElement"), new objj_ivar("_contents"), new objj_ivar("_context"), new objj_ivar("_owningView"), new objj_ivar("_transformToLayer"), new objj_ivar("_transformFromLayer")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CALayer__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + + if (self) + { + _frame = CGRectMakeZero(); + + _backingStoreFrame = CGRectMakeZero(); + _standardBackingStoreFrame = CGRectMakeZero(); + + _bounds = CGRectMakeZero(); + _position = CGPointMakeZero(); + _zPosition = 0.0; + _anchorPoint = CGPointMake(0.5, 0.5); + _affineTransform = CGAffineTransformMakeIdentity(); + _sublayerTransform = CGAffineTransformMakeIdentity(); + + _transformToLayer = CGAffineTransformMakeIdentity(); + _transformFromLayer = CGAffineTransformMakeIdentity(); + + _opacity = 1.0; + _isHidden = NO; + _masksToBounds = NO; + + _sublayers = []; + + _DOMElement = document.createElement("div"); + + _DOMElement.style.overflow = "visible"; + _DOMElement.style.position = "absolute"; + _DOMElement.style.visibility = "visible"; + _DOMElement.style.top = "0px"; + _DOMElement.style.left = "0px"; + _DOMElement.style.zIndex = 0; + _DOMElement.style.width = "0px"; + _DOMElement.style.height = "0px"; + } + + return self; +} +}), new objj_method(sel_getUid("setBounds:"), function $CALayer__setBounds_(self, _cmd, aBounds) +{ with(self) +{ + if (CGRectEqualToRect(_bounds, aBounds)) + return; + + var oldOrigin = _bounds.origin; + + _bounds = { origin: { x:aBounds.origin.x, y:aBounds.origin.y }, size: { width:aBounds.size.width, height:aBounds.size.height } }; + + if (_hasSublayerTransform) + _CALayerUpdateSublayerTransformForSublayers(self); + _CALayerRecalculateGeometry(self, CALayerGeometryBoundsMask); +} +}), new objj_method(sel_getUid("bounds"), function $CALayer__bounds(self, _cmd) +{ with(self) +{ + return _bounds; +} +}), new objj_method(sel_getUid("setPosition:"), function $CALayer__setPosition_(self, _cmd, aPosition) +{ with(self) +{ + if (CGPointEqualToPoint(_position, aPosition)) + return; + _position = { x:aPosition.x, y:aPosition.y }; + _CALayerRecalculateGeometry(self, CALayerGeometryPositionMask); +} +}), new objj_method(sel_getUid("position"), function $CALayer__position(self, _cmd) +{ with(self) +{ + return _position; +} +}), new objj_method(sel_getUid("setZPosition:"), function $CALayer__setZPosition_(self, _cmd, aZPosition) +{ with(self) +{ + if (_zPosition == aZPosition) + return; + _zPosition = aZPosition; + objj_msgSend(self, "registerRunLoopUpdateWithMask:", CALayerZPositionUpdateMask); +} +}), new objj_method(sel_getUid("setAnchorPoint:"), function $CALayer__setAnchorPoint_(self, _cmd, anAnchorPoint) +{ with(self) +{ + anAnchorPoint = { x:anAnchorPoint.x, y:anAnchorPoint.y }; + anAnchorPoint.x = MIN(1.0, MAX(0.0, anAnchorPoint.x)); + anAnchorPoint.y = MIN(1.0, MAX(0.0, anAnchorPoint.y)); + if (CGPointEqualToPoint(_anchorPoint, anAnchorPoint)) + return; + _anchorPoint = anAnchorPoint; + if (_hasSublayerTransform) + _CALayerUpdateSublayerTransformForSublayers(self); + if (_owningView) + _position = CGPointMake((_bounds.size.width) * _anchorPoint.x, (_bounds.size.height) * _anchorPoint.y); + _CALayerRecalculateGeometry(self, CALayerGeometryAnchorPointMask); +} +}), new objj_method(sel_getUid("anchorPoint"), function $CALayer__anchorPoint(self, _cmd) +{ with(self) +{ + return _anchorPoint; +} +}), new objj_method(sel_getUid("setAffineTransform:"), function $CALayer__setAffineTransform_(self, _cmd, anAffineTransform) +{ with(self) +{ + if (CGAffineTransformEqualToTransform(_affineTransform, anAffineTransform)) + return; + _affineTransform = { a:anAffineTransform.a, b:anAffineTransform.b, c:anAffineTransform.c, d:anAffineTransform.d, tx:anAffineTransform.tx, ty:anAffineTransform.ty }; + _CALayerRecalculateGeometry(self, CALayerGeometryAffineTransformMask); +} +}), new objj_method(sel_getUid("affineTransform"), function $CALayer__affineTransform(self, _cmd) +{ with(self) +{ + return _affineTransform; +} +}), new objj_method(sel_getUid("setSublayerTransform:"), function $CALayer__setSublayerTransform_(self, _cmd, anAffineTransform) +{ with(self) +{ + if (CGAffineTransformEqualToTransform(_sublayerTransform, anAffineTransform)) + return; + var hadSublayerTransform = _hasSublayerTransform; + _sublayerTransform = { a:anAffineTransform.a, b:anAffineTransform.b, c:anAffineTransform.c, d:anAffineTransform.d, tx:anAffineTransform.tx, ty:anAffineTransform.ty }; + _hasSublayerTransform = !(_sublayerTransform.a == 1 && _sublayerTransform.b == 0 && _sublayerTransform.c == 0 && _sublayerTransform.d == 1 && _sublayerTransform.tx == 0 && _sublayerTransform.ty == 0); + if (_hasSublayerTransform) + { + _CALayerUpdateSublayerTransformForSublayers(self); + var index = _sublayers.length; + while (index--) + _CALayerRecalculateGeometry(_sublayers[index], CALayerGeometryParentSublayerTransformMask); + } +} +}), new objj_method(sel_getUid("sublayerTransform"), function $CALayer__sublayerTransform(self, _cmd) +{ with(self) +{ + return _sublayerTransform; +} +}), new objj_method(sel_getUid("transformToLayer"), function $CALayer__transformToLayer(self, _cmd) +{ with(self) +{ + return _transformToLayer; +} +}), new objj_method(sel_getUid("setFrame:"), function $CALayer__setFrame_(self, _cmd, aFrame) +{ with(self) +{ + alert("FIXME IMPLEMENT"); +} +}), new objj_method(sel_getUid("frame"), function $CALayer__frame(self, _cmd) +{ with(self) +{ + if (!_frame) + _frame = objj_msgSend(self, "convertRect:toLayer:", _bounds, _superlayer); + return _frame; +} +}), new objj_method(sel_getUid("backingStoreFrame"), function $CALayer__backingStoreFrame(self, _cmd) +{ with(self) +{ + return _backingStoreFrame; +} +}), new objj_method(sel_getUid("setBackingStoreFrame:"), function $CALayer__setBackingStoreFrame_(self, _cmd, aFrame) +{ with(self) +{ + _hasCustomBackingStoreFrame = (aFrame != nil); + if (aFrame == nil) + aFrame = CGRectMakeCopy(_standardBackingStoreFrame); + else + { + if (_superlayer) + { + aFrame = objj_msgSend(_superlayer, "convertRect:toLayer:", aFrame, nil); + var bounds = objj_msgSend(_superlayer, "bounds"), + frame = objj_msgSend(_superlayer, "convertRect:toLayer:", bounds, nil); + aFrame.origin.x -= (frame.origin.x); + aFrame.origin.y -= (frame.origin.y); + } + else + aFrame = CGRectMakeCopy(aFrame); + } + if (!CGPointEqualToPoint(_backingStoreFrame.origin, aFrame.origin)) + objj_msgSend(self, "registerRunLoopUpdateWithMask:", CALayerFrameOriginUpdateMask); + if (!CGSizeEqualToSize(_backingStoreFrame.size, aFrame.size)) + objj_msgSend(self, "registerRunLoopUpdateWithMask:", CALayerFrameSizeUpdateMask); + _backingStoreFrame = aFrame; +} +}), new objj_method(sel_getUid("contents"), function $CALayer__contents(self, _cmd) +{ with(self) +{ + return _contents; +} +}), new objj_method(sel_getUid("setContents:"), function $CALayer__setContents_(self, _cmd, contents) +{ with(self) +{ + if (_contents == contents) + return; + _contents = contents; + objj_msgSend(self, "composite"); +} +}), new objj_method(sel_getUid("composite"), function $CALayer__composite(self, _cmd) +{ with(self) +{ + if (USE_BUFFER && !_contents || !_context) + return; + CGContextClearRect(_context, { origin: { x:0.0, y:0.0 }, size: { width:(_backingStoreFrame.size.width), height:(_backingStoreFrame.size.height) } }); + var transform = _transformFromLayer; + if (_superlayer) + { + var superlayerTransform = _CALayerGetTransform(_superlayer, nil), + superlayerOrigin = CGPointApplyAffineTransform(_superlayer._bounds.origin, superlayerTransform); + transform = CGAffineTransformConcat(transform, superlayerTransform); + transform.tx -= superlayerOrigin.x; + transform.ty -= superlayerOrigin.y; + } + transform.tx -= (_backingStoreFrame.origin.x); + transform.ty -= (_backingStoreFrame.origin.y); + CGContextSaveGState(_context); + CGContextConcatCTM(_context, transform); + if (USE_BUFFER) + { + _context.drawImage(_contents.buffer, (_bounds.origin.x), (_bounds.origin.y)); + } + else + objj_msgSend(self, "drawInContext:", _context); + CGContextRestoreGState(_context); +} +}), new objj_method(sel_getUid("display"), function $CALayer__display(self, _cmd) +{ with(self) +{ + if (!_context) + { + _context = CGBitmapGraphicsContextCreate(); + _DOMContentsElement = _context.DOMElement; + _DOMContentsElement.style.zIndex = -100; + _DOMContentsElement.style.overflow = "hidden"; + _DOMContentsElement.style.position = "absolute"; + _DOMContentsElement.style.visibility = "visible"; + _DOMContentsElement.width = ROUND((_backingStoreFrame.size.width)); + _DOMContentsElement.height = ROUND((_backingStoreFrame.size.height)); + _DOMContentsElement.style.top = "0px"; + _DOMContentsElement.style.left = "0px"; + _DOMContentsElement.style.width = ROUND((_backingStoreFrame.size.width)) + "px"; + _DOMContentsElement.style.height = ROUND((_backingStoreFrame.size.height)) + "px"; + _DOMElement.appendChild(_DOMContentsElement); + } + if (USE_BUFFER) + { + if (_delegateRespondsToDisplayLayerSelector) + return objj_msgSend(_delegate, "displayInLayer:", self); + if ((_backingStoreFrame.size.width) == 0.0 || (_backingStoreFrame.size.height) == 0.0) + return; + if (!_contents) + _contents = CABackingStoreCreate(); + CABackingStoreSetSize(_contents, _bounds.size); + objj_msgSend(self, "drawInContext:", CABackingStoreGetContext(_contents)); + } + objj_msgSend(self, "composite"); +} +}), new objj_method(sel_getUid("drawInContext:"), function $CALayer__drawInContext_(self, _cmd, aContext) +{ with(self) +{ + if (_backgroundColor) + { + CGContextSetFillColor(aContext, _backgroundColor); + CGContextFillRect(aContext, _bounds); + } + if (_delegateRespondsToDrawLayerInContextSelector) + objj_msgSend(_delegate, "drawLayer:inContext:", self, aContext); +} +}), new objj_method(sel_getUid("opacity"), function $CALayer__opacity(self, _cmd) +{ with(self) +{ + return _opacity; +} +}), new objj_method(sel_getUid("setOpacity:"), function $CALayer__setOpacity_(self, _cmd, anOpacity) +{ with(self) +{ + if (_opacity == anOpacity) + return; + _opacity = anOpacity; + _DOMElement.style.opacity = anOpacity; + _DOMElement.style.filter = "alpha(opacity=" + anOpacity * 100 + ")"; +} +}), new objj_method(sel_getUid("setHidden:"), function $CALayer__setHidden_(self, _cmd, isHidden) +{ with(self) +{ + _isHidden = isHidden; + _DOMElement.style.display = isHidden ? "none" : "block"; +} +}), new objj_method(sel_getUid("hidden"), function $CALayer__hidden(self, _cmd) +{ with(self) +{ + return _isHidden; +} +}), new objj_method(sel_getUid("isHidden"), function $CALayer__isHidden(self, _cmd) +{ with(self) +{ + return _isHidden; +} +}), new objj_method(sel_getUid("setMasksToBounds:"), function $CALayer__setMasksToBounds_(self, _cmd, masksToBounds) +{ with(self) +{ + if (_masksToBounds == masksToBounds) + return; + _masksToBounds = masksToBounds; + _DOMElement.style.overflow = _masksToBounds ? "hidden" : "visible"; +} +}), new objj_method(sel_getUid("setBackgroundColor:"), function $CALayer__setBackgroundColor_(self, _cmd, aColor) +{ with(self) +{ + _backgroundColor = aColor; + objj_msgSend(self, "setNeedsDisplay"); +} +}), new objj_method(sel_getUid("backgroundColor"), function $CALayer__backgroundColor(self, _cmd) +{ with(self) +{ + return _backgroundColor; +} +}), new objj_method(sel_getUid("sublayers"), function $CALayer__sublayers(self, _cmd) +{ with(self) +{ + return _sublayers; +} +}), new objj_method(sel_getUid("superlayer"), function $CALayer__superlayer(self, _cmd) +{ with(self) +{ + return _superlayer; +} +}), new objj_method(sel_getUid("addSublayer:"), function $CALayer__addSublayer_(self, _cmd, aLayer) +{ with(self) +{ + objj_msgSend(self, "insertSublayer:atIndex:", aLayer, _sublayers.length); + return; + if (_DOMContentsElement && aLayer._zPosition > _DOMContentsElement.style.zIndex) _DOMContentsElement.style.zIndex -= 100.0;; + objj_msgSend(_sublayers, "addObject:", aLayer); + _DOMElement.appendChild(aLayer._DOMElement); +} +}), new objj_method(sel_getUid("removeFromSuperlayer"), function $CALayer__removeFromSuperlayer(self, _cmd) +{ with(self) +{ + if (_owningView) + objj_msgSend(_owningView, "setLayer:", nil); + if (!_superlayer) + return; + _superlayer._DOMElement.removeChild(_DOMElement); + objj_msgSend(_superlayer._sublayers, "removeObject:", self); + _superlayer = nil; +} +}), new objj_method(sel_getUid("insertSublayer:atIndex:"), function $CALayer__insertSublayer_atIndex_(self, _cmd, aLayer, anIndex) +{ with(self) +{ + if (!aLayer) + return; + var superlayer = objj_msgSend(aLayer, "superlayer"); + if (superlayer == self) + { + var index = objj_msgSend(_sublayers, "indexOfObjectIdenticalTo:", aLayer); + if (index == anIndex) + return; + objj_msgSend(_sublayers, "removeObjectAtIndex:", index); + if (index < anIndex) + --anIndex; + } + else if (superlayer != nil) + objj_msgSend(aLayer, "removeFromSuperlayer"); + if (_DOMContentsElement && aLayer._zPosition > _DOMContentsElement.style.zIndex) _DOMContentsElement.style.zIndex -= 100.0;; + objj_msgSend(_sublayers, "insertObject:atIndex:", aLayer, anIndex); + if (anIndex >= _sublayers.length - 1) + _DOMElement.appendChild(aLayer._DOMElement); + else + _DOMElement.insertBefore(aLayer._DOMElement, _sublayers[anIndex + 1]._DOMElement); + aLayer._superlayer = self; + if (self != superlayer) + _CALayerRecalculateGeometry(aLayer, 0xFFFFFFF); +} +}), new objj_method(sel_getUid("insertSublayer:below:"), function $CALayer__insertSublayer_below_(self, _cmd, aLayer, aSublayer) +{ with(self) +{ + var index = aSublayer ? objj_msgSend(_sublayers, "indexOfObjectIdenticalTo:", aSublayer) : 0; + objj_msgSend(self, "insertSublayer:atIndex:", aLayer, index == CPNotFound ? _sublayers.length : index); +} +}), new objj_method(sel_getUid("insertSublayer:above:"), function $CALayer__insertSublayer_above_(self, _cmd, aLayer, aSublayer) +{ with(self) +{ + var index = aSublayer ? objj_msgSend(_sublayers, "indexOfObjectIdenticalTo:", aSublayer) : _sublayers.length; + if (index == CPNotFound) + objj_msgSend(CPException, "raise:reason:", "CALayerNotFoundException", "aSublayer is not a sublayer of this layer"); + objj_msgSend(_sublayers, "insertObject:atIndex:", aLayer, index == CPNotFound ? _sublayers.length : index + 1); +} +}), new objj_method(sel_getUid("replaceSublayer:with:"), function $CALayer__replaceSublayer_with_(self, _cmd, aSublayer, aLayer) +{ with(self) +{ + if (aSublayer == aLayer) + return; + if (aSublayer._superlayer != self) + { + alert("EXCEPTION"); + return; + } + if (_DOMContentsElement && aLayer._zPosition > _DOMContentsElement.style.zIndex) _DOMContentsElement.style.zIndex -= 100.0;; + objj_msgSend(_sublayers, "replaceObjectAtIndex:withObject:", objj_msgSend(_sublayers, "indexOfObjectIdenticalTo:", aSublayer), aLayer); + _DOMElement.replaceChild(aSublayer._DOMElement, aLayer._DOMElement); +} +}), new objj_method(sel_getUid("registerRunLoopUpdateWithMask:"), function $CALayer__registerRunLoopUpdateWithMask_(self, _cmd, anUpdateMask) +{ with(self) +{ + if (CALayerRegisteredRunLoopUpdates == nil) + { + CALayerRegisteredRunLoopUpdates = {}; + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "performSelector:target:argument:order:modes:", sel_getUid("runLoopUpdateLayers"), CALayer, nil, 0, [CPDefaultRunLoopMode]); + } + _runLoopUpdateMask |= anUpdateMask; + CALayerRegisteredRunLoopUpdates[objj_msgSend(self, "hash")] = self; +} +}), new objj_method(sel_getUid("setNeedsComposite"), function $CALayer__setNeedsComposite(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "registerRunLoopUpdateWithMask:", CALayerCompositeUpdateMask); +} +}), new objj_method(sel_getUid("setNeedsDisplay"), function $CALayer__setNeedsDisplay(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "registerRunLoopUpdateWithMask:", CALayerDisplayUpdateMask); +} +}), new objj_method(sel_getUid("setNeedsDisplayOnBoundsChange:"), function $CALayer__setNeedsDisplayOnBoundsChange_(self, _cmd, needsDisplayOnBoundsChange) +{ with(self) +{ + _needsDisplayOnBoundsChange = needsDisplayOnBoundsChange; +} +}), new objj_method(sel_getUid("needsDisplayOnBoundsChange"), function $CALayer__needsDisplayOnBoundsChange(self, _cmd) +{ with(self) +{ + return _needsDisplayOnBoundsChange; +} +}), new objj_method(sel_getUid("setNeedsDisplayInRect:"), function $CALayer__setNeedsDisplayInRect_(self, _cmd, aRect) +{ with(self) +{ + _dirtyRect = aRect; + objj_msgSend(self, "display"); +} +}), new objj_method(sel_getUid("convertPoint:fromLayer:"), function $CALayer__convertPoint_fromLayer_(self, _cmd, aPoint, aLayer) +{ with(self) +{ + return CGPointApplyAffineTransform(aPoint, _CALayerGetTransform(aLayer, self)); +} +}), new objj_method(sel_getUid("convertPoint:toLayer:"), function $CALayer__convertPoint_toLayer_(self, _cmd, aPoint, aLayer) +{ with(self) +{ + return CGPointApplyAffineTransform(aPoint, _CALayerGetTransform(self, aLayer)); +} +}), new objj_method(sel_getUid("convertRect:fromLayer:"), function $CALayer__convertRect_fromLayer_(self, _cmd, aRect, aLayer) +{ with(self) +{ + return CGRectApplyAffineTransform(aRect, _CALayerGetTransform(aLayer, self)); +} +}), new objj_method(sel_getUid("convertRect:toLayer:"), function $CALayer__convertRect_toLayer_(self, _cmd, aRect, aLayer) +{ with(self) +{ + return CGRectApplyAffineTransform(aRect, _CALayerGetTransform(self, aLayer)); +} +}), new objj_method(sel_getUid("containsPoint:"), function $CALayer__containsPoint_(self, _cmd, aPoint) +{ with(self) +{ + return (aPoint.x >= (_bounds.origin.x) && aPoint.y >= (_bounds.origin.y) && aPoint.x < (_bounds.origin.x + _bounds.size.width) && aPoint.y < (_bounds.origin.y + _bounds.size.height)); +} +}), new objj_method(sel_getUid("hitTest:"), function $CALayer__hitTest_(self, _cmd, aPoint) +{ with(self) +{ + if (_isHidden) + return nil; + var point = CGPointApplyAffineTransform(aPoint, _transformToLayer); + if (!(point.x >= (_bounds.origin.x) && point.y >= (_bounds.origin.y) && point.x < (_bounds.origin.x + _bounds.size.width) && point.y < (_bounds.origin.y + _bounds.size.height))) + return nil; + var layer = nil, + index = _sublayers.length; + while (index--) + if (layer = objj_msgSend(_sublayers[index], "hitTest:", point)) + return layer; + return self; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CALayer__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate == aDelegate) + return; + _delegate = aDelegate; + _delegateRespondsToDisplayLayerSelector = objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("displayLayer:")); + _delegateRespondsToDrawLayerInContextSelector = objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("drawLayer:inContext:")); + if (_delegateRespondsToDisplayLayerSelector || _delegateRespondsToDrawLayerInContextSelector) + objj_msgSend(self, "setNeedsDisplay"); +} +}), new objj_method(sel_getUid("delegate"), function $CALayer__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("_setOwningView:"), function $CALayer___setOwningView_(self, _cmd, anOwningView) +{ with(self) +{ + _owningView = anOwningView; + if (_owningView) + { + _owningView = anOwningView; + _bounds.size = CGSizeMakeCopy(objj_msgSend(_owningView, "bounds").size); + _position = CGPointMake((_bounds.size.width) * _anchorPoint.x, (_bounds.size.height) * _anchorPoint.y); + } + _CALayerRecalculateGeometry(self, CALayerGeometryPositionMask | CALayerGeometryBoundsMask); +} +}), new objj_method(sel_getUid("_owningViewBoundsChanged"), function $CALayer___owningViewBoundsChanged(self, _cmd) +{ with(self) +{ + _bounds.size = CGSizeMakeCopy(objj_msgSend(_owningView, "bounds").size); + _position = CGPointMake((_bounds.size.width) * _anchorPoint.x, (_bounds.size.height) * _anchorPoint.y); + _CALayerRecalculateGeometry(self, CALayerGeometryPositionMask | CALayerGeometryBoundsMask); +} +}), new objj_method(sel_getUid("_update"), function $CALayer___update(self, _cmd) +{ with(self) +{ + window.loop = true; + var mask = _runLoopUpdateMask; + if (mask & CALayerDOMUpdateMask) + _CALayerUpdateDOM(self, mask); + if (mask & CALayerDisplayUpdateMask) + objj_msgSend(self, "display"); + else if (mask & CALayerFrameSizeUpdateMask || mask & CALayerCompositeUpdateMask) + objj_msgSend(self, "composite"); + _runLoopUpdateMask = 0; + window.loop = false; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("layer"), function $CALayer__layer(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(objj_msgSend(self, "class"), "alloc"), "init"); +} +}), new objj_method(sel_getUid("runLoopUpdateLayers"), function $CALayer__runLoopUpdateLayers(self, _cmd) +{ with(self) +{if (window.oops) {alert(window.latest); objj_debug_print_backtrace();} + window.loop = true; + for (hash in CALayerRegisteredRunLoopUpdates) + { + var layer = CALayerRegisteredRunLoopUpdates[hash], + mask = layer._runLoopUpdateMask; + if (mask & CALayerDOMUpdateMask) + _CALayerUpdateDOM(layer, mask); + if (mask & CALayerDisplayUpdateMask) + objj_msgSend(layer, "display"); + else if (mask & CALayerFrameSizeUpdateMask || mask & CALayerCompositeUpdateMask) + objj_msgSend(layer, "composite"); + layer._runLoopUpdateMask = 0; + } + window.loop= false; + CALayerRegisteredRunLoopUpdates = nil; +} +})]); +} +_CALayerUpdateSublayerTransformForSublayers= function(aLayer) +{ + var bounds = aLayer._bounds, + anchorPoint = aLayer._anchorPoint, + translateX = (bounds.size.width) * anchorPoint.x, + translateY = (bounds.size.height) * anchorPoint.y; + aLayer._sublayerTransformForSublayers = CGAffineTransformConcat( + CGAffineTransformMakeTranslation(-translateX, -translateY), + CGAffineTransformConcat(aLayer._sublayerTransform, + CGAffineTransformMakeTranslation(translateX, translateY))); +} +_CALayerUpdateDOM= function(aLayer, aMask) +{ + var DOMElementStyle = aLayer._DOMElement.style; + if (aMask & CALayerZPositionUpdateMask) + DOMElementStyle.zIndex = aLayer._zPosition; + var frame = aLayer._backingStoreFrame; + if (aMask & CALayerFrameOriginUpdateMask) + { + DOMElementStyle.top = ROUND((frame.origin.y)) + "px"; + DOMElementStyle.left = ROUND((frame.origin.x)) + "px"; + } + if (aMask & CALayerFrameSizeUpdateMask) + { + var width = MAX(0.0, ROUND((frame.size.width))), + height = MAX(0.0, ROUND((frame.size.height))), + DOMContentsElement = aLayer._DOMContentsElement; + DOMElementStyle.width = width + "px"; + DOMElementStyle.height = height + "px"; + if (DOMContentsElement) + { + DOMContentsElement.width = width; + DOMContentsElement.height = height; + DOMContentsElement.style.width = width + "px"; + DOMContentsElement.style.height = height + "px"; + } + } +} +_CALayerRecalculateGeometry= function(aLayer, aGeometryChange) +{ + var bounds = aLayer._bounds, + superlayer = aLayer._superlayer, + width = (bounds.size.width), + height = (bounds.size.height), + position = aLayer._position, + anchorPoint = aLayer._anchorPoint, + affineTransform = aLayer._affineTransform, + backingStoreFrameSize = { width:aLayer._backingStoreFrame.width, height:aLayer._backingStoreFrame.height }, + hasCustomBackingStoreFrame = aLayer._hasCustomBackingStoreFrame; + aLayer._transformFromLayer = CGAffineTransformConcat( + CGAffineTransformMakeTranslation(-width * anchorPoint.x - (aLayer._bounds.origin.x), -height * anchorPoint.y - (aLayer._bounds.origin.y)), + CGAffineTransformConcat(affineTransform, + CGAffineTransformMakeTranslation(position.x, position.y))); + if (superlayer && superlayer._hasSublayerTransform) + { + var tx = aLayer._transformFromLayer.tx * superlayer._sublayerTransformForSublayers.a + aLayer._transformFromLayer.ty * superlayer._sublayerTransformForSublayers.c + superlayer._sublayerTransformForSublayers.tx;aLayer._transformFromLayer.ty = aLayer._transformFromLayer.tx * superlayer._sublayerTransformForSublayers.b + aLayer._transformFromLayer.ty * superlayer._sublayerTransformForSublayers.d + superlayer._sublayerTransformForSublayers.ty;aLayer._transformFromLayer.tx = tx;var a = aLayer._transformFromLayer.a * superlayer._sublayerTransformForSublayers.a + aLayer._transformFromLayer.b * superlayer._sublayerTransformForSublayers.c, b = aLayer._transformFromLayer.a * superlayer._sublayerTransformForSublayers.b + aLayer._transformFromLayer.b * superlayer._sublayerTransformForSublayers.d, c = aLayer._transformFromLayer.c * superlayer._sublayerTransformForSublayers.a + aLayer._transformFromLayer.d * superlayer._sublayerTransformForSublayers.c;aLayer._transformFromLayer.d = aLayer._transformFromLayer.c * superlayer._sublayerTransformForSublayers.b + aLayer._transformFromLayer.d * superlayer._sublayerTransformForSublayers.d;aLayer._transformFromLayer.a = a;aLayer._transformFromLayer.b = b;aLayer._transformFromLayer.c = c;; + } + aLayer._transformToLayer = CGAffineTransformInvert(aLayer._transformFromLayer); + aLayer._frame = nil; + aLayer._standardBackingStoreFrame = objj_msgSend(aLayer, "convertRect:toLayer:", bounds, nil); + if (superlayer) + { + var bounds = objj_msgSend(superlayer, "bounds"), + frame = objj_msgSend(superlayer, "convertRect:toLayer:", bounds, nil); + aLayer._standardBackingStoreFrame.origin.x -= (frame.origin.x); + aLayer._standardBackingStoreFrame.origin.y -= (frame.origin.y); + } + var origin = aLayer._standardBackingStoreFrame.origin, + size = aLayer._standardBackingStoreFrame.size; + origin.x = FLOOR(origin.x); + origin.y = FLOOR(origin.y); + size.width = CEIL(size.width) + 1.0; + size.height = CEIL(size.height) + 1.0; + if (!hasCustomBackingStoreFrame) + { + var backingStoreFrame = CGRectMakeCopy(aLayer._standardBackingStoreFrame); + if (ROUND((backingStoreFrame.origin.x)) != ROUND((aLayer._backingStoreFrame.origin.x)) || + ROUND((backingStoreFrame.origin.y)) != ROUND((aLayer._backingStoreFrame.origin.y))) + objj_msgSend(aLayer, "registerRunLoopUpdateWithMask:", CALayerFrameOriginUpdateMask); + if (((backingStoreFrame.size.width) != ROUND((aLayer._backingStoreFrame.size.width)) || + (backingStoreFrame.size.height) != ROUND((aLayer._backingStoreFrame.size.height)))) + objj_msgSend(aLayer, "registerRunLoopUpdateWithMask:", CALayerFrameSizeUpdateMask); + aLayer._backingStoreFrame = backingStoreFrame; + } + if (aGeometryChange & CALayerGeometryBoundsMask && aLayer._needsDisplayOnBoundsChange) + objj_msgSend(aLayer, "setNeedsDisplay"); + else if (hasCustomBackingStoreFrame || (aGeometryChange & ~(CALayerGeometryPositionMask | CALayerGeometryAnchorPointMask))) + objj_msgSend(aLayer, "setNeedsComposite"); + var sublayers = aLayer._sublayers, + index = 0, + count = sublayers.length; + for (; index < count; ++index) + _CALayerRecalculateGeometry(sublayers[index], aGeometryChange); +} +_CALayerGetTransform= function(fromLayer, toLayer) +{ + var transform = CGAffineTransformMakeIdentity(); + if (fromLayer) + { + var layer = fromLayer; + while (layer && layer != toLayer) + { + var transformFromLayer = layer._transformFromLayer; + var tx = transform.tx * transformFromLayer.a + transform.ty * transformFromLayer.c + transformFromLayer.tx;transform.ty = transform.tx * transformFromLayer.b + transform.ty * transformFromLayer.d + transformFromLayer.ty;transform.tx = tx;var a = transform.a * transformFromLayer.a + transform.b * transformFromLayer.c, b = transform.a * transformFromLayer.b + transform.b * transformFromLayer.d, c = transform.c * transformFromLayer.a + transform.d * transformFromLayer.c;transform.d = transform.c * transformFromLayer.b + transform.d * transformFromLayer.d;transform.a = a;transform.b = b;transform.c = c;; + layer = layer._superlayer; + } + if (layer == toLayer) + return transform; + } + var layers = [], + layer = toLayer; + while (layer) + { + layers.push(layer); + layer = layer._superlayer; + } + var index = layers.length; + while (index--) + { + var transformToLayer = layers[index]._transformToLayer; + var tx = transform.tx * transformToLayer.a + transform.ty * transformToLayer.c + transformToLayer.tx;transform.ty = transform.tx * transformToLayer.b + transform.ty * transformToLayer.d + transformToLayer.ty;transform.tx = tx;var a = transform.a * transformToLayer.a + transform.b * transformToLayer.c, b = transform.a * transformToLayer.b + transform.b * transformToLayer.d, c = transform.c * transformToLayer.a + transform.d * transformToLayer.c;transform.d = transform.c * transformToLayer.b + transform.d * transformToLayer.d;transform.a = a;transform.b = b;transform.c = c;; + } + return transform; +} + +p;23;CAMediaTimingFunction.jI;21;Foundation/CPObject.jI;25;Foundation/CPDictionary.jI;21;Foundation/CPString.jc;3065; +kCAMediaTimingFunctionLinear = "kCAMediaTimingFunctionLinear"; +kCAMediaTimingFunctionEaseIn = "kCAMediaTimingFunctionEaseIn"; +kCAMediaTimingFunctionEaseOut = "kCAMediaTimingFunctionEaseOut"; +kCAMediaTimingFunctionEaseInEaseOut = "kCAMediaTimingFunctionEaseInEaseOut"; +var CAMediaNamedTimingFunctions = nil; +{var the_class = objj_allocateClassPair(CPObject, "CAMediaTimingFunction"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_c1x"), new objj_ivar("_c1y"), new objj_ivar("_c2x"), new objj_ivar("_c2y")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithControlPoints::::"), function $CAMediaTimingFunction__initWithControlPoints____(self, _cmd, c1x, c1y, c2x, c2y) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _c1x = c1x; + _c1y = c1y; + _c2x = c2x; + _c2y = c2y; + } + return self; +} +}), new objj_method(sel_getUid("getControlPointAtIndex:values:"), function $CAMediaTimingFunction__getControlPointAtIndex_values_(self, _cmd, anIndex, reference) +{ with(self) +{ + if (anIndex == 0) + { + reference[0] = 0; + reference[1] = 0; + } + else if (anIndex == 1) + { + reference[0] = _c1x; + reference[1] = _c1y; + } + else if (anIndex == 2) + { + reference[0] = _c2x; + reference[1] = _c2y; + } + else + { + reference[0] = 1.0; + reference[1] = 1.0; + } +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("functionWithName:"), function $CAMediaTimingFunction__functionWithName_(self, _cmd, aName) +{ with(self) +{ + if (!CAMediaNamedTimingFunctions) + { + CAMediaNamedTimingFunctions = objj_msgSend(CPDictionary, "dictionary"); + objj_msgSend(CAMediaNamedTimingFunctions, "setObject:forKey:", objj_msgSend(CAMediaTimingFunction, "functionWithControlPoints::::", 0.0 , 0.0 , 1.0 , 1.0), kCAMediaTimingFunctionLinear); + objj_msgSend(CAMediaNamedTimingFunctions, "setObject:forKey:", objj_msgSend(CAMediaTimingFunction, "functionWithControlPoints::::", 0.42 , 0.0 , 1.0 , 1.0), kCAMediaTimingFunctionEaseIn); + objj_msgSend(CAMediaNamedTimingFunctions, "setObject:forKey:", objj_msgSend(CAMediaTimingFunction, "functionWithControlPoints::::", 0.0 , 0.0 , 0.58 , 1.0), kCAMediaTimingFunctionEaseOut); + objj_msgSend(CAMediaNamedTimingFunctions, "setObject:forKey:", objj_msgSend(CAMediaTimingFunction, "functionWithControlPoints::::", 0.42 , 0.0 , 0.58 , 1.0), kCAMediaTimingFunctionEaseInEaseOut); + } + return objj_msgSend(CAMediaNamedTimingFunctions, "objectForKey:", aName); +} +}), new objj_method(sel_getUid("functionWithControlPoints::::"), function $CAMediaTimingFunction__functionWithControlPoints____(self, _cmd, c1x, c1y, c2x, c2y) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithControlPoints::::", c1x , c1y , c2x , c2y); +} +})]); +} + +p;19;CGAffineTransform.ji;12;CGGeometry.jc;4830; +CGAffineTransformMake= function(a, b, c, d, tx, ty) { return { a:a, b:b, c:c, d:d, tx:tx, ty:ty }; } +CGAffineTransformMakeIdentity= function() { return { a:1.0, b:0.0, c:0.0, d:1.0, tx:0.0, ty:0.0 }; } +CGAffineTransformMakeCopy= function(anAffineTransform) { return { a:anAffineTransform.a, b:anAffineTransform.b, c:anAffineTransform.c, d:anAffineTransform.d, tx:anAffineTransform.tx, ty:anAffineTransform.ty }; } +CGAffineTransformMakeScale= function(sx, sy) { return { a:sx, b:0.0, c:0.0, d:sy, tx:0.0, ty:0.0 }; } +CGAffineTransformMakeTranslation= function(tx, ty) { return { a:1.0, b:0.0, c:0.0, d:1.0, tx:tx, ty:ty }; } +CGAffineTransformTranslate= function(aTransform, tx, ty) { return { a:aTransform.a, b:aTransform.b, c:aTransform.c, d:aTransform.d, tx:aTransform.tx + aTransform.a * tx + aTransform.c * ty, ty:aTransform.ty + aTransform.b * tx + aTransform.d * ty }; } +CGAffineTransformScale= function(aTransform, sx, sy) { return { a:aTransform.a * sx, b:aTransform.b * sx, c:aTransform.c * sy, d:aTransform.d * sy, tx:aTransform.tx, ty:aTransform.ty }; } +CGAffineTransformConcat= function(lhs, rhs) { return { a:lhs.a * rhs.a + lhs.b * rhs.c, b:lhs.a * rhs.b + lhs.b * rhs.d, c:lhs.c * rhs.a + lhs.d * rhs.c, d:lhs.c * rhs.b + lhs.d * rhs.d, tx:lhs.tx * rhs.a + lhs.ty * rhs.c + rhs.tx, ty:lhs.tx * rhs.b + lhs.ty * rhs.d + rhs.ty }; } +CGPointApplyAffineTransform= function(aPoint, aTransform) { return { x:aPoint.x * aTransform.a + aPoint.y * aTransform.c + aTransform.tx, y:aPoint.x * aTransform.b + aPoint.y * aTransform.d + aTransform.ty }; } +CGSizeApplyAffineTransform= function(aSize, aTransform) { return { width:aSize.width * aTransform.a + aSize.height * aTransform.c, height:aSize.width * aTransform.b + aSize.height * aTransform.d }; } +CGAffineTransformIsIdentity= function(aTransform) { return (aTransform.a == 1 && aTransform.b == 0 && aTransform.c == 0 && aTransform.d == 1 && aTransform.tx == 0 && aTransform.ty == 0); } +CGAffineTransformEqualToTransform= function(lhs, rhs) { return (lhs.a == rhs.a && lhs.b == rhs.b && lhs.c == rhs.c && lhs.d == rhs.d && lhs.tx == rhs.tx && lhs.ty == rhs.ty); } +CGStringCreateWithCGAffineTransform= function(aTransform) { return (" [[ " + aTransform.a + ", " + aTransform.b + ", 0 ], [ " + aTransform.c + ", " + aTransform.d + ", 0 ], [ " + aTransform.tx + ", " + aTransform.ty + ", 1]]"); } +CGAffineTransformCreateCopy= function(aTransform) +{ + return { a:aTransform.a, b:aTransform.b, c:aTransform.c, d:aTransform.d, tx:aTransform.tx, ty:aTransform.ty }; +} +CGAffineTransformMakeRotation= function(anAngle) +{ + var sin = SIN(anAngle), + cos = COS(anAngle); + return { a:cos, b:sin, c:-sin, d:cos, tx:0.0, ty:0.0 }; +} +CGAffineTransformRotate= function(aTransform, anAngle) +{ + var sin = SIN(anAngle), + cos = COS(anAngle); + return { + a:aTransform.a * cos + aTransform.c * sin, + b:aTransform.b * cos + aTransform.d * sin, + c:aTransform.c * cos - aTransform.a * sin, + d:aTransform.d * cos - aTransform.b * sin, + tx:aTransform.tx, + ty:aTransform.ty + }; +} +CGAffineTransformInvert= function(aTransform) +{ + var determinant = 1 / (aTransform.a * aTransform.d - aTransform.b * aTransform.c); + return { + a:determinant * aTransform.d, + b:-determinant * aTransform.b, + c:-determinant * aTransform.c, + d:determinant * aTransform.a, + tx:determinant * (aTransform.c * aTransform.ty - aTransform.d * aTransform.tx), + ty:determinant * (aTransform.b * aTransform.tx - aTransform.a * aTransform.ty) + }; +} +CGRectApplyAffineTransform= function(aRect, anAffineTransform) +{ + var top = (aRect.origin.y), + left = (aRect.origin.x), + right = (aRect.origin.x + aRect.size.width), + bottom = (aRect.origin.y + aRect.size.height), + topLeft = CGPointApplyAffineTransform({ x:left, y:top }, anAffineTransform), + topRight = CGPointApplyAffineTransform({ x:right, y:top }, anAffineTransform), + bottomLeft = CGPointApplyAffineTransform({ x:left, y:bottom }, anAffineTransform), + bottomRight = CGPointApplyAffineTransform({ x:right, y:bottom }, anAffineTransform), + minX = MIN(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x), + maxX = MAX(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x), + minY = MIN(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y), + maxY = MAX(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y); + return { origin: { x:minX, y:minY }, size: { width:(maxX - minX), height:(maxY - minY) } }; +} +CPStringFromCGAffineTransform= function(anAffineTransform) +{ + return '{' + anAffineTransform.a + ", " + anAffineTransform.b + ", " + anAffineTransform.c + ", " + anAffineTransform.d + ", " + anAffineTransform.tx + ", " + anAffineTransform.ty + '}'; +} + +p;9;CGColor.ji;14;CGColorSpace.jc;3028; +var CFTypeGlobalCount = 0; +CFHashCode= function(aCFObject) +{ + if (!aCFObject.hash) + aCFObject.hash = ++CFTypeGlobalCount; + return aCFObject; +} +kCGColorWhite = "kCGColorWhite"; +kCGColorBlack = "kCGColorBlack"; +kCGColorClear = "kCGColorClear"; +var _CGColorMap = { }; +CGColorGetConstantColor= function(aColorName) +{ + alert("FIX ME"); +} +CGColorRetain= function(aColor) +{ + return aColor; +} +CGColorRelease= function() +{ +} +CGColorCreate= function(aColorSpace, components) +{ + if (!aColorSpace || !components) + return NULL; + var components = components.slice(); + CGColorSpaceStandardizeComponents(aColorSpace, components); + var UID = CFHashCode(aColorSpace) + components.join(""); + if (_CGColorMap[UID]) + return _CGColorMap[UID]; + return _CGColorMap[UID] = { colorspace:aColorSpace, pattern:NULL, components:components }; +} +CGColorCreateCopy= function(aColor) +{ + return aColor; +} +CGColorCreateGenericGray= function(gray, alpha) +{ + return CGColorCreate(0, [gray, alpha]); +} +CGColorCreateGenericRGB= function(red, green, blue, alpha) +{ + return CGColorCreate(0, [red, green, blue, alpha]); +} +CGColorCreateGenericCMYK= function(cyan, magenta, yellow, black, alpha) +{ + return CGColorCreate(0, [cyan, magenta, yellow, black, alpha]); +} +CGColorCreateCopyWithAlpha= function(aColor, anAlpha) +{ + var components = aColor.components; + if (!aColor || anAlpha == components[components.length - 1]) + return aColor; + if (aColor.pattern) + var copy = CGColorCreateWithPattern(aColor.colorspace, aColor.pattern, components); + else + var copy = CGColorCreate(aColor.colorspace, components); + copy.components[components.length - 1] = anAlpha; + return copy; +} +CGColorCreateWithPattern= function(aColorSpace, aPattern, components) +{ + if (!aColorSpace || !aPattern || !components) + return NULL; + return { colorspace:aColorSpace, pattern:aPattern, components:components.slice() }; +} +CGColorEqualToColor= function(lhs, rhs) +{ + if (lhs == rhs) + return true; + if (!lhs || !rhs) + return false; + var lhsComponents = lhs.components, + rhsComponents = rhs.components, + lhsComponentCount = lhsComponents.length; + if (lhsComponentCount != rhsComponents.length) + return false; + while (lhsComponentCount--) + if (lhsComponents[lhsComponentCount] != rhsComponents[lhsComponentCount]) + return false; + if (lhs.pattern != rhs.pattern) + return false; + if (CGColorSpaceEqualToColorSpace(lhs.colorspace, rhs.colorspace)) + return false; + return true; +} +CGColorGetAlpha= function(aColor) +{ + var components = aColor.components; + return components[components.length - 1]; +} +CGColorGetColorSpace= function(aColor) +{ + return aColor.colorspace; +} +CGColorGetComponents= function(aColor) +{ + return aColor.components; +} +CGColorGetNumberOfComponents= function(aColor) +{ + return aColor.components.length; +} +CGColorGetPattern= function(aColor) +{ + return aColor.pattern; +} + +p;14;CGColorSpace.jc;4672;kCGColorSpaceModelUnknown = -1; +kCGColorSpaceModelMonochrome = 0; +kCGColorSpaceModelRGB = 1; +kCGColorSpaceModelCMYK = 2; +kCGColorSpaceModelLab = 3; +kCGColorSpaceModelDeviceN = 4; +kCGColorSpaceModelIndexed = 5; +kCGColorSpaceModelPattern = 6; +kCGColorSpaceGenericGray = "CGColorSpaceGenericGray"; +kCGColorSpaceGenericRGB = "CGColorSpaceGenericRGB"; +kCGColorSpaceGenericCMYK = "CGColorSpaceGenericCMYK"; +kCGColorSpaceGenericRGBLinear = "CGColorSpaceGenericRGBLinear"; +kCGColorSpaceGenericRGBHDR = "CGColorSpaceGenericRGBHDR"; +kCGColorSpaceAdobeRGB1998 = "CGColorSpaceAdobeRGB1998"; +kCGColorSpaceSRGB = "CGColorSpaceSRGB"; +var _CGNamedColorSpaces = {}; +CGColorSpaceCreateCalibratedGray= function(aWhitePoint, aBlackPoint, gamma) +{ + return { model:kCGColorSpaceModelMonochrome, count:1, base:NULL }; +} +CGColorSpaceCreateCalibratedRGB= function(aWhitePoint, aBlackPoint, gamma) +{ + return { model:kCGColorSpaceModelRGB, count:1, base:NULL }; +} +CGColorSpaceCreateICCBased= function(aComponentCount, range, profile, alternate) +{ + return NULL; +} +CGColorSpaceCreateLab= function(aWhitePoint, aBlackPoint, aRange) +{ + return NULL; +} +CGColorSpaceCreateDeviceCMYK= function() +{ + return CGColorSpaceCreateWithName(kCGColorSpaceGenericCMYK); +} +CGColorSpaceCreateDeviceGray= function() +{ + return CGColorSpaceCreateWithName(kCGColorSpaceGenericGray); +} +CGColorSpaceCreateDeviceRGB= function() +{ + return CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB); +} +CGColorSpaceCreateWithPlatformColorSpace= function() +{ + return NULL; +} +CGColorSpaceCreateIndexed= function(aBaseColorSpace, lastIndex, colorTable) +{ + return NULL; +} +CGColorSpaceCreatePattern= function(aBaseColorSpace) +{ + if (aBaseColorSpace) + return { model:kCGColorSpaceModelPattern, count:aBaseColorSpace.count, base:aBaseColorSpace }; + return { model:kCGColorSpaceModelPattern, count:0, base:NULL }; +} +CGColorSpaceCreateWithName= function(aName) +{ + var colorSpace = _CGNamedColorSpaces[aName]; + if (colorSpace) + return colorSpace; + switch (aName) + { + case kCGColorSpaceGenericGray: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelMonochrome, count:1, base:NULL }; + case kCGColorSpaceGenericRGB: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelRGB, count:3, base:NULL }; + case kCGColorSpaceGenericCMYK: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelCMYK, count:4, base:NULL }; + case kCGColorSpaceGenericRGBLinear: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelRGB, count:3, base:NULL }; + case kCGColorSpaceGenericRGBHDR: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelRGB, count:3, base:NULL }; + case kCGColorSpaceAdobeRGB1998: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelRGB, count:3, base:NULL }; + case kCGColorSpaceSRGB: return _CGNamedColorSpaces[aName] = { model:kCGColorSpaceModelRGB, count:3, base:NULL }; + } + return NULL; +} +CGColorSpaceCopyICCProfile= function(aColorSpace) +{ + return NULL; +} +CGColorSpaceGetNumberOfComponents= function(aColorSpace) +{ + return aColorSpace.count; +} +CGColorSpaceGetTypeID= function(aColorSpace) +{ +} +CGColorSpaceGetModel= function(aColorSpace) +{ + return aColorSpace.model; +} +CGColorSpaceGetBaseColorSpace= function(aColorSpace) +{ +} +CGColorSpaceGetColorTableCount= function(aColorSpace) +{ +} +CGColorSpaceGetColorTable= function(aColorSpace) +{ +} +CGColorSpaceRelease= function(aColorSpace) +{ +} +CGColorSpaceRetain= function(aColorSpace) +{ + return aColorSpace; +} +CGColorSpaceStandardizeComponents= function(aColorSpace, components) +{ + var count = aColorSpace.count; + { if (count > components.length) { components[count] = 1; return; } var component = components[count]; if (component < 0) components[count] = 0; else if (component > 1) components[count] = 1; else components[count] = ROUND(component * 1000) / 1000; }; + if (aColorSpace.base) + aColorSpace = aColorSpace.base; + switch (aColorSpace.model) + { + case kCGColorSpaceModelMonochrome: + case kCGColorSpaceModelRGB: + case kCGColorSpaceModelCMYK: + case kCGColorSpaceModelDeviceN: while (count--) + { if (count > components.length) { components[count] = 1; return; } var component = components[count]; if (component < 0) components[count] = 0; else if (component > 1) components[count] = 1; else components[count] = ROUND(component * 255) / 255; }; + break; + case kCGColorSpaceModelIndexed: + case kCGColorSpaceModelLab: + case kCGColorSpaceModelPattern: break; + } +} + +p;11;CGContext.ji;12;CGGeometry.ji;19;CGAffineTransform.ji;8;CGPath.jc;31196; +kCGLineCapButt = 0; +kCGLineCapRound = 1; +kCGLineCapSquare = 2; +kCGLineJoinMiter = 0; +kCGLineJoinRound = 1; +kCGLineJoinBevel = 2; +kCGPathFill = 0; +kCGPathEOFill = 1; +kCGPathStroke = 2; +kCGPathFillStroke = 3; +kCGPathEOFillStroke = 4; +kCGBlendModeNormal = 0; +kCGBlendModeMultiply = 1; +kCGBlendModeScreen = 2; +kCGBlendModeOverlay = 3; +kCGBlendModeDarken = 4; +kCGBlendModeLighten = 5; +kCGBlendModeColorDodge = 6; +kCGBlendModeColorBurn = 7; +kCGBlendModeSoftLight = 8; +kCGBlendModeHardLight = 9; +kCGBlendModeDifference = 10; +kCGBlendModeExclusion = 11; +kCGBlendModeHue = 12; +kCGBlendModeSaturation = 13; +kCGBlendModeColor = 14; +kCGBlendModeLuminosity = 15; +kCGBlendModeClear = 16; +kCGBlendModeCopy = 17; +kCGBlendModeSourceIn = 18; +kCGBlendModeSourceOut = 19; +kCGBlendModeSourceAtop = 20; +kCGBlendModeDestinationOver = 21; +kCGBlendModeDestinationIn = 22; +kCGBlendModeDestinationOut = 23; +kCGBlendModeDestinationAtop = 24; +kCGBlendModeXOR = 25; +kCGBlendModePlusDarker = 26; +kCGBlendModePlusLighter = 27; +CGContextRelease= function() +{ +} +CGContextRetain= function(aContext) +{ + return aContext; +} +if (!CPFeatureIsCompatible(CPHTMLCanvasFeature)) +{ +CGGStateCreate= function() +{ + return { alpha:1.0, strokeStyle:"#000", fillStyle:"#ccc", lineWidth:1.0, lineJoin:kCGLineJoinMiter, lineCap:kCGLineCapButt, miterLimit:10.0, globalAlpha:1.0, + blendMode:kCGBlendModeNormal, + shadowOffset:{ width:0.0, height:0.0 }, shadowBlur:0.0, shadowColor:NULL, CTM:{ a:1.0, b:0.0, c:0.0, d:1.0, tx:0.0, ty:0.0 } }; +} +CGGStateCreateCopy= function(aGState) +{ + return { alpha:aGState.alpha, strokeStyle:aGState.strokeStyle, fillStyle:aGState.fillStyle, lineWidth:aGState.lineWidth, + lineJoin:aGState.lineJoin, lineCap:aGState.lineCap, miterLimit:aGState.miterLimit, globalAlpha:aGState.globalAlpha, + blendMode:aGState.blendMode, + shadowOffset:aGState.shadowOffset, shadowBlur:aGState.shadowBlur, shadowColor:aGState.shadowColor, CTM:{ a:aGState.CTM.a, b:aGState.CTM.b, c:aGState.CTM.c, d:aGState.CTM.d, tx:aGState.CTM.tx, ty:aGState.CTM.ty } }; +} +CGBitmapGraphicsContextCreate= function() +{ + return { DOMElement:document.createElement("div"), path:NULL, gState:CGGStateCreate(), gStateStack:[] }; +} +CGContextSaveGState= function(aContext) +{ + aContext.gStateStack.push(CGGStateCreateCopy(aContext.gState)); +} +CGContextRestoreGState= function(aContext) +{ + aContext.gState = aContext.gStateStack.pop(); +} +CGContextSetLineCap= function(aContext, aLineCap) +{ + aContext.gState.lineCap = aLineCap; +} +CGContextSetLineJoin= function(aContext, aLineJoin) +{ + aContext.gState.lineJoin = aLineJoin; +} +CGContextSetLineWidth= function(aContext, aLineWidth) +{ + aContext.gState.lineWidth = aLineWidth; +} +CGContextSetMiterLimit= function(aContext, aMiterLimit) +{ + aContext.gState.miterLimit = aMiterLimit; +} +CGContextSetBlendMode= function(aContext, aBlendMode) +{ + aContext.gState.blendMode = aBlendMode; +} +CGContextAddArc= function(aContext, x, y, radius, startAngle, endAngle, clockwise) +{ + CGPathAddArc(aContext.path, aContext.gState.CTM, x, y, radius, startAngle, endAngle, clockwise); +} +CGContextAddArcToPoint= function(aContext, x1, y1, x2, y2, radius) +{ + CGPathAddArcToPoint(aContext.path, aContext.gState.CTM, x1, y1, x2, y2, radius); +} +CGContextAddCurveToPoint= function(aContext, cp1x, cp1y, cp2x, cp2y, x, y) +{ + CGPathAddCurveToPoint(aContext.path, aContext.gState.CTM, cp1x, cp1y, cp2x, cp2y, x, y); +} +CGContextAddLines= function(aContext, points, count) +{ + CGPathAddLines(aContext.path, aContext.gState.CTM, points, count); +} +CGContextAddLineToPoint= function(aContext, x, y) +{ + CGPathAddLineToPoint(aContext.path, aContext.gState.CTM, x, y); +} +CGContextAddPath= function(aContext, aPath) +{ + if (!aContext || CGPathIsEmpty(aPath)) + return; + if (!aContext.path) + aContext.path = CGPathCreateMutable(); + CGPathAddPath(aContext.path, aContext.gState.CTM, aPath); +} +CGContextAddQuadCurveToPoint= function(aContext, cpx, cpy, x, y) +{ + CGPathAddQuadCurveToPoint(aContext.path, aContext.gState.CTM, cpx, cpy, x, y); +} +CGContextAddRect= function(aContext, aRect) +{ + CGPathAddRect(aContext.path, aContext.gState.CTM, aRect); +} +CGContextAddRects= function(aContext, rects, count) +{ + CGPathAddRects(aContext.path, aContext.gState.CTM, rects, count); +} +CGContextBeginPath= function(aContext) +{ + aContext.path = CGPathCreateMutable(); +} +CGContextClosePath= function(aContext) +{ + CGPathCloseSubpath(aContext.path); +} +CGContextMoveToPoint= function(aContext, x, y) +{ + if (!aContext.path) + aContext.path = CGPathCreateMutable(); + CGPathMoveToPoint(aContext.path, aContext.gState.CTM, x, y); +} +CGContextFillRect= function(aContext, aRect) +{ + CGContextFillRects(aContext, [aRect], 1); +} +CGContextFillRects= function(aContext, rects, count) +{ + if (arguments[2] === undefined) + var count = rects.length; + CGContextBeginPath(aContext); + CGContextAddRects(aContext, rects, count); + CGContextClosePath(aContext); + CGContextDrawPath(aContext, kCGPathFill); +} +CGContextStrokeRect= function(aContext, aRect) +{ + CGContextBeginPath(aContext); + CGContextAddRect(aContext, aRect); + CGContextClosePath(aContext); + CGContextDrawPath(aContext, kCGPathStroke); +} +CGContextStrokeRectWithWidth= function(aContext, aRect, aWidth) +{ + CGContextSaveGState(aContext); + CGContextSetLineWidth(aContext, aWidth); + CGContextStrokeRect(aContext, aRect); + CGContextRestoreGState(aContext); +} +CGContextConcatCTM= function(aContext, aTransform) +{ + var CTM = aContext.gState.CTM; + var tx = CTM.tx * aTransform.a + CTM.ty * aTransform.c + aTransform.tx;CTM.ty = CTM.tx * aTransform.b + CTM.ty * aTransform.d + aTransform.ty;CTM.tx = tx;var a = CTM.a * aTransform.a + CTM.b * aTransform.c, b = CTM.a * aTransform.b + CTM.b * aTransform.d, c = CTM.c * aTransform.a + CTM.d * aTransform.c;CTM.d = CTM.c * aTransform.b + CTM.d * aTransform.d;CTM.a = a;CTM.b = b;CTM.c = c;; +} +CGContextGetCTM= function(aContext) +{ + return aContext.gState.CTM; +} +CGContextRotateCTM= function(aContext, anAngle) +{ + var gState = aContext.gState; + gState.CTM = CGAffineTransformRotate(gState.CTM, anAngle); +} +CGContextScaleCTM= function(aContext, sx, sy) +{ + var gState = aContext.gState; + gState.CTM = { a:gState.CTM.a * sx, b:gState.CTM.b * sx, c:gState.CTM.c * sy, d:gState.CTM.d * sy, tx:gState.CTM.tx, ty:gState.CTM.ty }; +} +CGContextTranslateCTM= function(aContext, tx, ty) +{ + var gState = aContext.gState; + gState.CTM = { a:gState.CTM.a, b:gState.CTM.b, c:gState.CTM.c, d:gState.CTM.d, tx:gState.CTM.tx + gState.CTM.a * tx + gState.CTM.c * ty, ty:gState.CTM.ty + gState.CTM.b * tx + gState.CTM.d * ty }; +} +CGContextSetShadow= function(aContext, aSize, aBlur) +{ + var gState = aContext.gState; + gState.shadowOffset = { width:aSize.width, height:aSize.height }; + gState.shadowBlur = aBlur; + gState.shadowColor = objj_msgSend(CPColor, "shadowColor"); +} +CGContextSetShadowWithColor= function(aContext, aSize, aBlur, aColor) +{ + var gState = aContext.gState; + gState.shadowOffset = { width:aSize.width, height:aSize.height }; + gState.shadowBlur = aBlur; + gState.shadowColor = aColor; +} +CGContextSetAlpha= function(aContext, anAlpha) +{ + aContext.gState.alpha = MAX(MIN(anAlpha, 1.0), 0.0); +} +} +CGContextEOFillPath= function(aContext) +{ + CGContextDrawPath(aContext, kCGPathEOFill); +} +CGContextFillPath= function(aContext) +{ + CGContextDrawPath(aContext, kCGPathFill); +} +var KAPPA = 4.0 * ((SQRT2 - 1.0) / 3.0); +CGContextAddEllipseInRect= function(aContext, aRect) +{ + CGContextAddPath(aContext, CGPathWithEllipseInRect(aRect)); +} +CGContextFillEllipseInRect= function(aContext, aRect) +{ + CGContextBeginPath(aContext); + CGContextAddEllipseInRect(aContext, aRect); + CGContextClosePath(aContext); + CGContextFillPath(aContext); +} +CGContextStrokeEllipseInRect= function(aContext, aRect) +{ + CGContextBeginPath(aContext); + CGContextAddEllipseInRect(aContext, aRect); + CGContextClosePath(aContext); + CGContextStrokePath(aContext); +} +CGContextStrokePath= function(aContext) +{ + CGContextDrawPath(aContext, kCGPathStroke); +} +CGContextStrokeLineSegments= function(aContext, points, count) +{ + var i = 0; + if (arguments["count"] == NULL) + var count = points.length; + CGContextBeginPath(aContext); + for (; i < count; i += 2) + { + CGContextMoveToPoint(aContext, points[i].x, points[i].y); + CGContextAddLineToPoint(aContext, points[i + 1].x, points[i + 1].y); + } + CGContextStrokePath(aContext); +} +CGContextSetFillColor= function(aContext, aColor) +{ + if (aColor) + aContext.gState.fillStyle = objj_msgSend(aColor, "cssString"); +} +CGContextSetStrokeColor= function(aContext, aColor) +{ + if (aColor) + aContext.gState.strokeStyle = objj_msgSend(aColor, "cssString"); +} +CGContextFillRoundedRectangleInRect= function(aContext, aRect, aRadius, ne, se, sw, nw) +{ + CGContextAddPath(aContext, CGPathWithRoundedRectangleInRect(aRect, aRadius, aRadius, ne, se, sw, nw)); + CGContextFillPath(aContext); +} +CGContextStrokeRoundedRectangleInRect= function(aContext, aRect, aRadius, ne, se, sw, nw) +{ + CGContextAddPath(aContext, CGPathWithRoundedRectangleInRect(aRect, aRadius, aRadius, ne, se, sw, nw)); + CGContextStrokePath(aContext); +} +if (CPFeatureIsCompatible(CPHTMLCanvasFeature)) +{ +var CANVAS_LINECAP_TABLE = [ "butt", "round", "square" ], + CANVAS_LINEJOIN_TABLE = [ "miter", "round", "bevel" ], + CANVAS_COMPOSITE_TABLE = [ "source-over", "source-over", "source-over", "source-over", "darker", + "lighter", "source-over", "source-over", "source-over", "source-over", + "source-over", "source-over", "source-over", "source-over", "source-over", + "source-over", "source-over", + "copy", "source-in", "source-out", "source-atop", + "destination-over", "destination-in", "destination-out", "destination-atop", + "xor", "source-over", "source-over" ]; +CGContextSaveGState= function(aContext) +{ + aContext.save(); +} +CGContextRestoreGState= function(aContext) +{ + aContext.restore(); +} +CGContextSetLineCap= function(aContext, aLineCap) +{ + aContext.lineCap = CANVAS_LINECAP_TABLE[aLineCap]; +} +CGContextSetLineJoin= function(aContext, aLineJoin) +{ + aContext.lineJoin = CANVAS_LINEJOIN_TABLE[aLineJoin]; +} +CGContextSetLineWidth= function(aContext, aLineWidth) +{ + aContext.lineWidth = aLineWidth; +} +CGContextSetMiterLimit= function(aContext, aMiterLimit) +{ + aContext.miterLimit = aMiterLimit; +} +CGContextSetBlendMode= function(aContext, aBlendMode) +{ + aContext.globalCompositeOperation = CANVAS_COMPOSITE_TABLE[aBlendMode]; +} +CGContextAddArc= function(aContext, x, y, radius, startAngle, endAngle, clockwise) +{ + aContext.arc(x, y, radius, startAngle, endAngle, !clockwise); +} +CGContextAddArcToPoint= function(aContext, x1, y1, x2, y2, radius) +{ + aContext.arcTo(x1, y1, x2, y2, radius); +} +CGContextAddCurveToPoint= function(aContext, cp1x, cp1y, cp2x, cp2y, x, y) +{ + aContext.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); +} +CGContextAddLineToPoint= function(aContext, x, y) +{ + aContext.lineTo(x, y); +} +CGContextAddPath= function(aContext, aPath) +{ + if (!aContext || CGPathIsEmpty(aPath)) + return; + var elements = aPath.elements, + i = 0, + count = aPath.count; + for (; i < count; ++i) + { + var element = elements[i], + type = element.type; + switch (type) + { + case kCGPathElementMoveToPoint: aContext.moveTo(element.x, element.y); + break; + case kCGPathElementAddLineToPoint: aContext.lineTo(element.x, element.y); + break; + case kCGPathElementAddQuadCurveToPoint: aContext.quadraticCurveTo(element.cpx, element.cpy, element.x, element.y); + break; + case kCGPathElementAddCurveToPoint: aContext.bezierCurveTo(element.cp1x, element.cp1y, element.cp2x, element.cp2y, element.x, element.y); + break; + case kCGPathElementCloseSubpath: aContext.closePath(); + break; + case kCGPathElementAddArc: aContext.arc(element.x, element.y, element.radius, element.startAngle, element.endAngle, element.clockwise); + break; + case kCGPathElementAddArcTo: + break; + } + } +} +CGContextAddRect= function(aContext, aRect) +{ + aContext.rect((aRect.origin.x), (aRect.origin.y), (aRect.size.width), (aRect.size.height)); +} +CGContextAddRects= function(aContext, rects, count) +{ + var i = 0; + if (arguments["count"] == NULL) + var count = rects.length; + for (; i < count; ++i) + { + var rect = rects[i]; + aContext.rect((rect.origin.x), (rect.origin.y), (rect.size.width), (rect.size.height)); + } +} +CGContextBeginPath= function(aContext) +{ + aContext.beginPath(); +} +CGContextClosePath= function(aContext) +{ + aContext.closePath(); +} +CGContextMoveToPoint= function(aContext, x, y) +{ + aContext.moveTo(x, y); +} +CGContextClearRect= function(aContext, aRect) +{ + aContext.clearRect((aRect.origin.x), (aRect.origin.y), (aRect.size.width), (aRect.size.height)); +} +CGContextDrawPath= function(aContext, aMode) +{ + if (aMode == kCGPathFill || aMode == kCGPathFillStroke) + aContext.fill(); + else if (aMode == kCGPathEOFill || aMode == kCGPathEOFillStroke) + alert("not implemented!!!"); + if (aMode == kCGPathStroke || aMode == kCGPathFillStroke || aMode == kCGPathEOFillStroke) + aContext.stroke(); +} +CGContextFillRect= function(aContext, aRect) +{ + aContext.fillRect((aRect.origin.x), (aRect.origin.y), (aRect.size.width), (aRect.size.height)); +} +CGContextFillRects= function(aContext, rects, count) +{ + var i = 0; + if (arguments["count"] == NULL) + var count = rects.length; + for (; i < count; ++i) + { + var rect = rects[i]; + aContext.fillRect((rect.origin.x), (rect.origin.y), (rect.size.width), (rect.size.height)); + } +} +CGContextStrokeRect= function(aContext, aRect) +{ + aContext.strokeRect((aRect.origin.x), (aRect.origin.y), (aRect.size.width), (aRect.size.height)); +} +CGContextClip= function(aContext) +{ + aContext.clip(); +} +CGContextClipToRect= function(aContext, aRect) +{ + aContext.beginPath(); + aContext.rect((aRect.origin.x), (aRect.origin.y), (aRect.size.width), (aRect.size.height)); + aContext.closePath(); + aContext.clip(); +} +CGContextClipToRects= function(aContext, rects, count) +{ + if (arguments["count"] == NULL) + var count = rects.length; + aContext.beginPath(); + CGContextAddRects(aContext, rects, count); + aContext.clip(); +} +CGContextSetAlpha= function(aContext, anAlpha) +{ + aContext.globalAlpha = anAlpha; +} +CGContextSetFillColor= function(aContext, aColor) +{ + aContext.fillStyle = objj_msgSend(aColor, "cssString"); +} +CGContextSetStrokeColor= function(aContext, aColor) +{ + aContext.strokeStyle = objj_msgSend(aColor, "cssString"); +} +CGContextSetShadow= function(aContext, aSize, aBlur) +{ + aContext.shadowOffsetX = aSize.width; + aContext.shadowOffsetY = aSize.height; + aContext.shadowBlur = aBlur; +} +CGContextSetShadowWithColor= function(aContext, aSize, aBlur, aColor) +{ + aContext.shadowOffsetX = aSize.width; + aContext.shadowOffsetY = aSize.height; + aContext.shadowBlur = aBlur; + aContext.shadowColor = objj_msgSend(aColor, "cssString"); +} +CGContextRotateCTM= function(aContext, anAngle) +{ + aContext.rotate(anAngle); +} +CGContextScaleCTM= function(aContext, sx, sy) +{ + aContext.scale(sx, sy); +} +CGContextTranslateCTM= function(aContext, tx, ty) +{ + aContext.translate(tx, ty); +} +eigen= function(anAffineTransform) +{ + alert("IMPLEMENT ME!"); +} +if (CPFeatureIsCompatible(CPJavaScriptCanvasTransformFeature)) +{ +CGContextConcatCTM = function(aContext, anAffineTransform) +{ + aContext.transform(anAffineTransform.a, anAffineTransform.b, anAffineTransform.c, anAffineTransform.d, anAffineTransform.tx, anAffineTransform.ty); +} +} +else +{ +CGContextConcatCTM = function(aContext, anAffineTransform) +{ + var a = anAffineTransform.a, + b = anAffineTransform.b, + c = anAffineTransform.c, + d = anAffineTransform.d, + tx = anAffineTransform.tx, + ty = anAffineTransform.ty, + sx = 1.0, + sy = 1.0, + a1 = 0.0, + a2 = 0.0; + if (b == 0.0 && c == 0.0) + { + sx = a; + sy = d; + } + else if (a * b == -c * d) + { + var sign = (a * d < 0.0 || b * c > 0.0) ? -1.0 : 1.0, a2 = (ATAN2(b, d) + ATAN2(-sign * c, sign * a)) / 2.0, cos = COS(a2), sin = SIN(a2); if (cos == 0) { sx = -c / sin; sy = b / sin; } else if (sin == 0) { sx = a / cos; sy = d / cos; } else { abs_cos = ABS(cos); abs_sin = ABS(sin); sx = (abs_cos * a / cos + abs_sin * -c / sin) / (abs_cos + abs_sin); sy = (abs_cos * d / cos + abs_sin * b / sin) / (abs_cos + abs_sin); } + } + else if (a * c == -b * d) + { + var sign = (a * d < 0.0 || b * c > 0.0) ? -1.0 : 1.0; a1 = (Math.atan2(sign * b, sign * a) + Math.atan2(-c, d)) / 2.0, cos = COS(a1), sin = SIN(a1); if (cos == 0) { sx = b / sin; sy = -c / sin; } else if (sin == 0) { sx = a / cos; sy = d / cos; } else { abs_cos = ABS(cos); abs_sin = ABS(sin); sx = (abs_cos * a / cos + abs_sin * b / sin) / (abs_cos + abs_sin); sy = (abs_cos * d / cos + abs_sin * -c / sin) / (abs_cos + abs_sin); } + } + else + { + var transpose = CGAffineTransformMake(a, c, b, d, 0.0, 0.0), + u = eigen(CGAffineTransformConcat(anAffineTransform, transpose)), + v = eigen(CGAffineTransformConcat(transpose, anAffineTransform)), + U = CGAffineTransformMake(u.vector_1.x, u.vector_2.x, u.vector_1.y, u.vector_2.y, 0.0, 0.0), + VT = CGAffineTransformMake(v.vector_1.x, v.vector_1.y, v.vector_2.x, v.vector_2.y, 0.0, 0.0), + S = CGAffineTransformConcat(CGAffineTransformConcat(CGAffineTransformInvert(U), anAffineTransform), CGAffineTransformInvert(VT)); + a = VT.a; + b = VT.b; + c = VT.c; + d = VT.d; + var sign = (a * d < 0.0 || b * c > 0.0) ? -1.0 : 1.0, a2 = (ATAN2(b, d) + ATAN2(-sign * c, sign * a)) / 2.0, cos = COS(a2), sin = SIN(a2); if (cos == 0) { sx = -c / sin; sy = b / sin; } else if (sin == 0) { sx = a / cos; sy = d / cos; } else { abs_cos = ABS(cos); abs_sin = ABS(sin); sx = (abs_cos * a / cos + abs_sin * -c / sin) / (abs_cos + abs_sin); sy = (abs_cos * d / cos + abs_sin * b / sin) / (abs_cos + abs_sin); } + S.a *= sx; + S.d *= sy; + a = U.a; + b = U.b; + c = U.c; + d = U.d; + var sign = (a * d < 0.0 || b * c > 0.0) ? -1.0 : 1.0; a1 = (Math.atan2(sign * b, sign * a) + Math.atan2(-c, d)) / 2.0, cos = COS(a1), sin = SIN(a1); if (cos == 0) { sx = b / sin; sy = -c / sin; } else if (sin == 0) { sx = a / cos; sy = d / cos; } else { abs_cos = ABS(cos); abs_sin = ABS(sin); sx = (abs_cos * a / cos + abs_sin * b / sin) / (abs_cos + abs_sin); sy = (abs_cos * d / cos + abs_sin * -c / sin) / (abs_cos + abs_sin); } + sx = S.a * sx; + sy = S.d * sy; + } + if (tx != 0 || ty != 0) + CGContextTranslateCTM(aContext, tx, ty); + if (a1 != 0.0) + CGContextRotateCTM(aContext, a1); + if (sx != 1.0 || sy != 1.0) + CGContextScaleCTM(aContext, sx, sy); + if (a2 != 0.0) + CGContextRotateCTM(aContext, a2); +} +} +CGContextDrawImage= function(aContext, aRect, anImage) +{ + aContext.drawImage(anImage._image, (aRect.origin.x), (aRect.origin.y), (aRect.size.width), (aRect.size.height)); +} +to_string= function(aColor) +{ + return "rgba(" + ROUND(aColor.components[0] * 255) + ", " + ROUND(aColor.components[1] * 255) + ", " + ROUND(255 * aColor.components[2]) + ", " + aColor.components[3] + ")"; +} +CGContextDrawLinearGradient= function(aContext, aGradient, aStartPoint, anEndPoint, options) +{ + var colors = aGradient.colors, + count = colors.length, + linearGradient = aContext.createLinearGradient(aStartPoint.x, aStartPoint.y, anEndPoint.x, anEndPoint.y); + while (count--) + linearGradient.addColorStop(aGradient.locations[count], to_string(colors[count])); + aContext.fillStyle = linearGradient; + aContext.fill(); +} +CGBitmapGraphicsContextCreate= function() +{ + var DOMElement = document.createElement("canvas"), + context = DOMElement.getContext("2d"); + context.DOMElement = DOMElement; + return context; +} +} +else if (CPFeatureIsCompatible(CPVMLFeature)) +{ +var VML_TRUTH_TABLE = [ "f", "t"], + VML_LINECAP_TABLE = [ "flat", "round", "square" ], + VML_LINEJOIN_TABLE = [ "miter", "round", "bevel" ], + VML_ELEMENT_TABLE = [ " m ", " l ", "qb", " c ", " x ", [" at ", " wa "]]; +var _CGBitmapGraphicsContextCreate = CGBitmapGraphicsContextCreate; +CGBitmapGraphicsContextCreate= function() +{ + document.namespaces.add("cg_vml_", "urn:schemas-microsoft-com:vml"); + document.createStyleSheet().cssText = "cg_vml_\\:*{behavior:url(#default#VML)}"; + CGBitmapGraphicsContextCreate = _CGBitmapGraphicsContextCreate; + return _CGBitmapGraphicsContextCreate(); +} +CGContextClearRect= function(aContext, aRect) +{ + if (aContext.buffer != nil) + aContext.buffer = ""; + else + aContext.DOMElement.innerHTML = ""; + aContext.path = NULL; +} +var W = 10.0, + H = 10.0, + Z = 10.0, + Z_2 = Z / 2.0; +CGContextDrawImage= function(aContext, aRect, anImage) +{ + var string = ""; + if (anImage.buffer != nil) + string = anImage.buffer; + else + { + var ctm = aContext.gState.CTM, + origin = CGPointApplyAffineTransform(aRect.origin, ctm), + similarity = ctm.a == ctm.d && ctm.b == -ctm.c, + vml = [""); + string = vml.join(""); + } + if (aContext.buffer != nil) + aContext.buffer += string; + else + aContext.DOMElement.insertAdjacentHTML("BeforeEnd", string); +} +CGContextDrawPath= function(aContext, aMode) +{ + if (!aContext || CGPathIsEmpty(aContext.path)) + return; + var elements = aContext.path.elements, + i = 0, + count = aContext.path.count, + gState = aContext.gState, + fill = (aMode == kCGPathFill || aMode == kCGPathFillStroke) ? 1 : 0, + stroke = (aMode == kCGPathStroke || aMode == kCGPathFillStroke) ? 1 : 0, + opacity = gState.alpha, + vml = [ "= x) + { + if (start.y < y) + start.x += 0.125; + else + start.y += 0.125; + } + else + { + if (end.y <= y) + end.x += 0.125; + else + end.y += 0.125; + } + vml.push(VML_ELEMENT_TABLE[type][clockwise], + (ROUND(Z * (x - radius) - Z_2)), ',', (ROUND(Z * (y - radius) - Z_2)), " ", + (ROUND(Z * (x + radius) - Z_2)), ',', (ROUND(Z * (y + radius) - Z_2)), " ", + (ROUND(Z * (start.x) - Z_2)), ',', (ROUND(Z * (start.y) - Z_2)), " ", + (ROUND(Z * (end.x) - Z_2)), ',', (ROUND(Z * (end.y) - Z_2))); + break; + case kCGPathElementAddArcTo: break; + } + } + vml.push("\">"); + if (gState.gradient) + vml.push(gState.gradient) + else if (fill) + vml.push(""); + if (stroke) + vml.push( ""); + var shadowColor = gState.shadowColor; + if (shadowColor) + { + var shadowOffset = gState.shadowOffset; + vml.push(""); + } + vml.push(""); + aContext.path = NULL; + if (aContext.buffer != nil) + aContext.buffer += vml.join(""); + else + aContext.DOMElement.insertAdjacentHTML("BeforeEnd", vml.join("")); +} +to_string= function(aColor) +{ + return "rgb(" + ROUND(aColor.components[0] * 255) + ", " + ROUND(aColor.components[1] * 255) + ", " + ROUND(255 * aColor.components[2]) + ")"; +} +CGContextDrawLinearGradient= function(aContext, aGradient, aStartPoint, anEndPoint, options) +{ + if (!aContext || !aGradient) + return; + var vml = nil; + if (aGradient.vml_gradient) + { + var stops = objj_msgSend(objj_msgSend(aGradient.vml_gradient, "stops"), "sortedArrayUsingSelector:", sel_getUid("comparePosition:")), + count = objj_msgSend(stops, "count"); + vml = [""); + } + else + { + var colors = aGradient.colors, + count = colors.length; + vml = [""); + } + aContext.gState.gradient = vml.join(""); + console.log(vml.join("")); +} +} + +p;12;CGGeometry.jc;7658;CGPointMake= function(x, y) { return { x:x, y:y }; } +CGPointMakeZero= function() { return { x:0.0, y:0.0 }; } +CGPointMakeCopy= function(aPoint) { return { x:aPoint.x, y:aPoint.y }; } +CGPointCreateCopy= function(aPoint) { return { x:aPoint.x, y:aPoint.y }; } +CGPointEqualToPoint= function(lhsPoint, rhsPoint) { return (lhsPoint.x == rhsPoint.x && lhsPoint.y == rhsPoint.y); } +CGStringFromPoint= function(aPoint) { return ("{" + aPoint.x + ", " + aPoint.y + "}"); } +CGSizeMake= function(width, height) { return { width:width, height:height }; } +CGSizeMakeZero= function() { return { width:0.0, height:0.0 }; } +CGSizeMakeCopy= function(aSize) { return { width:aSize.width, height:aSize.height }; } +CGSizeCreateCopy= function(aSize) { return { width:aSize.width, height:aSize.height }; } +CGSizeEqualToSize= function(lhsSize, rhsSize) { return (lhsSize.width == rhsSize.width && lhsSize.height == rhsSize.height); } +CGStringFromSize= function(aSize) { return ("{" + aSize.width + ", " + aSize.height + "}"); } +CGRectMake= function(x, y, width, height) { return { origin: { x:x, y:y }, size: { width:width, height:height } }; } +CGRectMakeZero= function() { return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; } +CGRectMakeCopy= function(aRect) { return { origin: { x:aRect.origin.x, y:aRect.origin.y }, size: { width:aRect.size.width, height:aRect.size.height } }; } +CGRectCreateCopy= function(aRect) { return { origin: { x:aRect.origin.x, y:aRect.origin.y }, size: { width:aRect.size.width, height:aRect.size.height } }; } +CGRectEqualToRect= function(lhsRect, rhsRect) { return ((lhsRect.origin.x == rhsRect.origin.x && lhsRect.origin.y == rhsRect.origin.y) && (lhsRect.size.width == rhsRect.size.width && lhsRect.size.height == rhsRect.size.height)); } +CGStringFromRect= function(aRect) { return ("{" + ("{" + aRect.origin.x + ", " + aRect.origin.y + "}") + ", " + ("{" + aRect.size.width + ", " + aRect.size.height + "}") + "}"); } +CGRectOffset= function(aRect, dX, dY) { return { origin: { x:aRect.origin.x + dX, y:aRect.origin.y + dY }, size: { width:aRect.size.width, height:aRect.size.height } }; } +CGRectInset= function(aRect, dX, dY) { return { origin: { x:aRect.origin.x + dX, y:aRect.origin.y + dY }, size: { width:aRect.size.width - 2 * dX, height:aRect.size.height - 2 * dY } }; } +CGRectGetHeight= function(aRect) { return (aRect.size.height); } +CGRectGetMaxX= function(aRect) { return (aRect.origin.x + aRect.size.width); } +CGRectGetMaxY= function(aRect) { return (aRect.origin.y + aRect.size.height); } +CGRectGetMidX= function(aRect) { return (aRect.origin.x + (aRect.size.width) / 2.0); } +CGRectGetMidY= function(aRect) { return (aRect.origin.y + (aRect.size.height) / 2.0); } +CGRectGetMinX= function(aRect) { return (aRect.origin.x); } +CGRectGetMinY= function(aRect) { return (aRect.origin.y); } +CGRectGetWidth= function(aRect) { return (aRect.size.width); } +CGRectIsEmpty= function(aRect) { return (aRect.size.width <= 0.0 || aRect.size.height <= 0.0); } +CGRectIsNull= function(aRect) { return (aRect.size.width <= 0.0 || aRect.size.height <= 0.0); } +CGRectContainsPoint= function(aRect, aPoint) { return (aPoint.x >= (aRect.origin.x) && aPoint.y >= (aRect.origin.y) && aPoint.x < (aRect.origin.x + aRect.size.width) && aPoint.y < (aRect.origin.y + aRect.size.height)); } +CGInsetMake= function(top, right, bottom, left) { return { top:(top), right:(right), bottom:(bottom), left:(left) }; } +CGInsetMakeZero= function() { return { top:(0), right:(0), bottom:(0), left:(0) }; } +CGInsetMakeCopy= function(anInset) { return { top:(anInset.top), right:(anInset.right), bottom:(anInset.bottom), left:(anInset.left) }; } +CGInsetIsEmpty= function(anInset) { return ((anInset).top === 0 && (anInset).right === 0 && (anInset).bottom === 0 && (anInset).left === 0); } +CGRectContainsRect= function(lhsRect, rhsRect) +{ + var union = CGRectUnion(lhsRect, rhsRect); + return ((union.origin.x == lhsRect.origin.x && union.origin.y == lhsRect.origin.y) && (union.size.width == lhsRect.size.width && union.size.height == lhsRect.size.height)); +} +CGRectIntersectsRect= function(lhsRect, rhsRect) +{ + var intersection = CGRectIntersection(lhsRect, rhsRect); + return !(intersection.size.width <= 0.0 || intersection.size.height <= 0.0); +} +CGRectIntegral= function(aRect) +{ + aRect = CGRectStandardize(aRect); + var x = FLOOR((aRect.origin.x)), + y = FLOOR((aRect.origin.y)); + aRect.size.width = CEIL((aRect.origin.x + aRect.size.width)) - x; + aRect.size.height = CEIL((aRect.origin.y + aRect.size.height)) - y; + aRect.origin.x = x; + aRect.origin.y = y; + return aRect; +} +CGRectIntersection= function(lhsRect, rhsRect) +{ + var intersection = { origin: { x:MAX((lhsRect.origin.x), (rhsRect.origin.x)), y:MAX((lhsRect.origin.y), (rhsRect.origin.y)) }, size: { width:0, height:0 } }; + intersection.size.width = MIN((lhsRect.origin.x + lhsRect.size.width), (rhsRect.origin.x + rhsRect.size.width)) - (intersection.origin.x); + intersection.size.height = MIN((lhsRect.origin.y + lhsRect.size.height), (rhsRect.origin.y + rhsRect.size.height)) - (intersection.origin.y); + return (intersection.size.width <= 0.0 || intersection.size.height <= 0.0) ? { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } } : intersection; +} +CGRectStandardize= function(aRect) +{ + var width = (aRect.size.width), + height = (aRect.size.height), + standardized = aRect; + if (width < 0.0) + { + if (standardized == aRect) + standardized = { origin: { x:aRect.origin.x, y:aRect.origin.y }, size: { width:aRect.size.width, height:aRect.size.height } }; + standardized.origin.x += width; + standardized.size.width = -width; + } + if (height < 0.0) + { + if (standardized == aRect) + standardized = { origin: { x:aRect.origin.x, y:aRect.origin.y }, size: { width:aRect.size.width, height:aRect.size.height } }; + standardized.origin.y += height; + standardized.size.height = -height; + } + return standardized; +} +CGRectUnion= function(lhsRect, rhsRect) +{ + var minX = MIN((lhsRect.origin.x), (rhsRect.origin.x)), + minY = MIN((lhsRect.origin.y), (rhsRect.origin.y)), + maxX = MAX((lhsRect.origin.x + lhsRect.size.width), (rhsRect.origin.x + rhsRect.size.width)), + maxY = MAX((lhsRect.origin.y + lhsRect.size.height), (rhsRect.origin.y + rhsRect.size.height)); + return { origin: { x:minX, y:minY }, size: { width:maxX - minX, height:maxY - minY } }; +} +CGPointFromString= function(aString) +{ + var comma = aString.indexOf(','); + return { x:parseInt(aString.substr(1, comma - 1)), y:parseInt(aString.substring(comma + 1, aString.length)) }; +} +CGSizeFromString= function(aString) +{ + var comma = aString.indexOf(','); + return { width:parseInt(aString.substr(1, comma - 1)), height:parseInt(aString.substring(comma + 1, aString.length)) }; +} +CGRectFromString= function(aString) +{ + var comma = aString.indexOf(',', aString.indexOf(',') + 1); + return { origin:CGPointFromString(aString.substr(1, comma - 1)), size:CGSizeFromString(aString.substring(comma + 2, aString.length)) }; +} +CGPointFromEvent= function(anEvent) +{ + return { x:anEvent.clientX, y:anEvent.clientY }; +} +CGInsetFromString= function(aString) +{ + var numbers = aString.substr(1, aString.length - 2).split(','); + return { top:(parseFloat(numbers[0])), right:(parseFloat(numbers[1])), bottom:(parseFloat(numbers[2])), left:(parseFloat(numbers[3])) }; +} +CGInsetFromCPString = CGInsetFromString; +CPStringFromCGInset= function(anInset) +{ + return '{' + anInset.top + ", " + anInset.left + ", " + anInset.bottom + ", " + anInset.right + '}'; +} + +p;12;CGGradient.ji;9;CGColor.ji;14;CGColorSpace.jc;750; +kCGGradientDrawsBeforeStartLocation = 1 << 0; +kCGGradientDrawsAfterEndLocation = 1 << 1; +CGGradientCreateWithColorComponents= function(aColorSpace, components, locations, count) +{ + if (arguments["count"] == NULL) + var count = locations.length; + var colors = []; + while (count--) + { + var offset = count * 4; + colors[count] = CGColorCreate(aColorSpace, components.slice(offset, offset + 4)); + } + return CGGradientCreateWithColors(aColorSpace, colors, locations); +} +CGGradientCreateWithColors= function(aColorSpace, colors, locations) +{ + return { colorspace:aColorSpace, colors:colors, locations:locations }; +} +CGGradientRelease= function() +{ +} +CGGradientRetain= function(aGradient) +{ + return aGradient; +} + +p;8;CGPath.ji;12;CGGeometry.ji;19;CGAffineTransform.jc;12124; +kCGPathElementMoveToPoint = 0; +kCGPathElementAddLineToPoint = 1; +kCGPathElementAddQuadCurveToPoint = 2; +kCGPathElementAddCurveToPoint = 3; +kCGPathElementCloseSubpath = 4; +kCGPathElementAddArc = 5; +kCGPathElementAddArcToPoint = 6; +CGPathCreateMutable= function() +{ + return { count:0, start:NULL, current:NULL, elements:[] }; +} +CGPathCreateMutableCopy= function(aPath) +{ + var path = CGPathCreateMutable(); + CGPathAddPath(path, aPath); + return path; +} +CGPathCreateCopy= function(aPath) +{ + return CGPathCreateMutableCopy(aPath); +} +CGPathRelease= function(aPath) +{ +} +CGPathRetain= function(aPath) +{ + return aPath; +} +CGPathAddArc= function(aPath, aTransform, x, y, aRadius, aStartAngle, anEndAngle, isClockwise) +{ + if (aTransform && !(aTransform.a == 1 && aTransform.b == 0 && aTransform.c == 0 && aTransform.d == 1 && aTransform.tx == 0 && aTransform.ty == 0)) + { + var center = { x:x, y:y }, + end = { x:COS(anEndAngle), y:SIN(anEndAngle) }, + start = { x:COS(aStartAngle), y:SIN(aStartAngle) }; + end = { x:end.x * aTransform.a + end.y * aTransform.c + aTransform.tx, y:end.x * aTransform.b + end.y * aTransform.d + aTransform.ty }; + start = { x:start.x * aTransform.a + start.y * aTransform.c + aTransform.tx, y:start.x * aTransform.b + start.y * aTransform.d + aTransform.ty }; + center = { x:center.x * aTransform.a + center.y * aTransform.c + aTransform.tx, y:center.x * aTransform.b + center.y * aTransform.d + aTransform.ty }; + x = center.x; + y = center.y; + var oldEndAngle = anEndAngle, + oldStartAngle = aStartAngle; + anEndAngle = ATAN2(end.y - aTransform.ty, end.x - aTransform.tx); + aStartAngle = ATAN2(start.y - aTransform.ty, start.x - aTransform.tx); + if (anEndAngle == aStartAngle && oldEndAngle != oldStartAngle) + if (oldStartAngle > oldEndAngle) + anEndAngle = anEndAngle - PI2; + else + aStartAngle = aStartAngle - PI2; + aRadius = { width:aRadius, height:0 }; + aRadius = { width:aRadius.width * aTransform.a + aRadius.height * aTransform.c, height:aRadius.width * aTransform.b + aRadius.height * aTransform.d }; + aRadius = SQRT(aRadius.width * aRadius.width + aRadius.height * aRadius.height); + } + aPath.current = { x:x + aRadius * COS(anEndAngle), y:y + aRadius * SIN(anEndAngle) }; + aPath.elements[aPath.count++] = { type:kCGPathElementAddArc, x:x, y:y, radius:aRadius, startAngle:aStartAngle, endAngle:anEndAngle }; +} +CGPathAddArcToPoint= function(aPath, aTransform, x1, y1, x2, y2, aRadius) +{ +} +CGPathAddCurveToPoint= function(aPath, aTransform, cp1x, cp1y, cp2x, cp2y, x, y) +{ + var cp1 = { x:cp1x, y:cp1y }, + cp2 = { x:cp2x, y:cp2y }, + end = { x:x, y:y }; + if (aTransform) + { + cp1 = { x:cp1.x * aTransform.a + cp1.y * aTransform.c + aTransform.tx, y:cp1.x * aTransform.b + cp1.y * aTransform.d + aTransform.ty }; + cp2 = { x:cp2.x * aTransform.a + cp2.y * aTransform.c + aTransform.tx, y:cp2.x * aTransform.b + cp2.y * aTransform.d + aTransform.ty }; + end = { x:end.x * aTransform.a + end.y * aTransform.c + aTransform.tx, y:end.x * aTransform.b + end.y * aTransform.d + aTransform.ty }; + } + aPath.current = end; + aPath.elements[aPath.count++] = { type:kCGPathElementAddCurveToPoint, cp1x:cp1.x, cp1y:cp1.y, cp2x:cp2.x, cp2y:cp2.y, x:end.x, y:end.y }; +} +CGPathAddLines= function(aPath, aTransform, points, count) +{ + var i = 1; + if (arguments["count"] == NULL) + var count = points.length; + if (!aPath || count < 2) + return; + CGPathMoveToPoint(aPath, aTransform, points[0].x, points[0].y); + for (; i < count; ++i) + CGPathAddLineToPoint(aPath, aTransform, points[i].x, points[i].y); +} +CGPathAddLineToPoint= function(aPath, aTransform, x, y) +{ + var point = { x:x, y:y }; + if (aTransform != NULL) + point = { x:point.x * aTransform.a + point.y * aTransform.c + aTransform.tx, y:point.x * aTransform.b + point.y * aTransform.d + aTransform.ty }; + aPath.elements[aPath.count++] = { type: kCGPathElementAddLineToPoint, x:point.x, y:point.y }; + aPath.current = point; +} +CGPathAddPath= function(aPath, aTransform, anotherPath) +{ + for (var i = 0, count = anotherPath.count; i < count; ++i) + { + var element = anotherPath.elements[i]; + switch (element.type) + { + case kCGPathElementAddLineToPoint: CGPathAddLineToPoint(aPath, aTransform, element.x, element.y); + break; + case kCGPathElementAddCurveToPoint: CGPathAddCurveToPoint(aPath, aTransform, + element.cp1x, element.cp1y, + element.cp2x, element.cp2y, + element.x, element.y); + break; + case kCGPathElementAddArc: CGPathAddArc(aPath, aTransform, element.x, element.y, + element.radius, element.startAngle, + element.endAngle, element.isClockwise); + break; + case kCGPathElementAddQuadCurveToPoint: CGPathAddQuadCurveToPoint(aPath, aTransform, + element.cpx, element.cpy, + element.x, element.y); + break; + case kCGPathElementMoveToPoint: CGPathMoveToPoint(aPath, aTransform, element.x, element.y); + break; + case kCGPathElementCloseSubpath: CGPathCloseSubpath(aPath); + break; + } + } +} +CGPathAddQuadCurveToPoint= function(aPath, aTransform, cpx, cpy, x, y) +{ + var cp = { x:cpx, y:cpy }, + end = { x:x, y:y }; + if (aTransform) + { + cp = { x:control.x * aTransform.a + control.y * aTransform.c + aTransform.tx, y:control.x * aTransform.b + control.y * aTransform.d + aTransform.ty }; + end = { x:end.x * aTransform.a + end.y * aTransform.c + aTransform.tx, y:end.x * aTransform.b + end.y * aTransform.d + aTransform.ty }; + } + aPath.elements[aPath.count++] = { type:kCGPathElementAddQuadCurveToPoint, cpx:cp.x, cpy:cp.y, x:end.x, y:end.y } + aPath.current = end; +} +CGPathAddRect= function(aPath, aTransform, aRect) +{ + CGPathAddRects(aPath, aTransform, [aRect], 1); +} +CGPathAddRects= function(aPath, aTransform, rects, count) +{ + var i = 0; + if (arguments["count"] == NULL) + var count = rects.length; + for (; i < count; ++i) + { + var rect = rects[i]; + CGPathMoveToPoint(aPath, aTransform, (rect.origin.x), (rect.origin.y)); + CGPathAddLineToPoint(aPath, aTransform, (rect.origin.x + rect.size.width), (rect.origin.y)); + CGPathAddLineToPoint(aPath, aTransform, (rect.origin.x + rect.size.width), (rect.origin.y + rect.size.height)); + CGPathAddLineToPoint(aPath, aTransform, (rect.origin.x), (rect.origin.y + rect.size.height)); + CGPathCloseSubpath(aPath); + } +} +CGPathMoveToPoint= function(aPath, aTransform, x, y) +{ + var point = { x:x, y:y }, + count = aPath.count; + if (aTransform != NULL) + point = { x:point.x * aTransform.a + point.y * aTransform.c + aTransform.tx, y:point.x * aTransform.b + point.y * aTransform.d + aTransform.ty }; + aPath.start = point; + aPath.current = point; + var previous = aPath.elements[count - 1]; + if (count != 0 && previous.type == kCGPathElementMoveToPoint) + { + previous.x = point.x; + previous.y = point.y; + } + else + aPath.elements[aPath.count++] = { type:kCGPathElementMoveToPoint, x:point.x, y:point.y }; +} +var KAPPA = 4.0 * ((SQRT2 - 1.0) / 3.0); +CGPathWithEllipseInRect= function(aRect) +{ + var path = CGPathCreateMutable(); + if ((aRect.size.width) == (aRect.size.height)) + CGPathAddArc(path, nil, (aRect.origin.x + (aRect.size.width) / 2.0), (aRect.origin.y + (aRect.size.height) / 2.0), (aRect.size.width) / 2.0, 0.0, 2 * PI, YES); + else + { + var axis = { width:(aRect.size.width) / 2.0, height:(aRect.size.height) / 2.0 }, + center = { x:(aRect.origin.x) + axis.width, y:(aRect.origin.y) + axis.height }; + CGPathMoveToPoint(path, nil, center.x, center.y - axis.height); + CGPathAddCurveToPoint(path, nil, center.x + (KAPPA * axis.width), center.y - axis.height, center.x + axis.width, center.y - (KAPPA * axis.height), center.x + axis.width, center.y); + CGPathAddCurveToPoint(path, nil, center.x + axis.width, center.y + (KAPPA * axis.height), center.x + (KAPPA * axis.width), center.y + axis.height, center.x, center.y + axis.height); + CGPathAddCurveToPoint(path, nil, center.x - (KAPPA * axis.width), center.y + axis.height, center.x - axis.width, center.y + (KAPPA * axis.height), center.x - axis.width, center.y); + CGPathAddCurveToPoint(path, nil, center.x - axis.width, center.y - (KAPPA * axis.height), center.x - (KAPPA * axis.width), center.y - axis.height, center.x, center.y - axis.height); + } + CGPathCloseSubpath(path); + return path; +} +CGPathWithRoundedRectangleInRect= function(aRect, xRadius, yRadius , ne, se, sw, nw) +{ + var path = CGPathCreateMutable(), + xMin = (aRect.origin.x), + xMax = (aRect.origin.x + aRect.size.width), + yMin = (aRect.origin.y), + yMax = (aRect.origin.y + aRect.size.height); + CGPathMoveToPoint(path, nil, xMin + xRadius, yMin); + if (ne) + { + CGPathAddLineToPoint(path, nil, xMax - xRadius, yMin); + CGPathAddCurveToPoint(path, nil, xMax - xRadius, yMin, xMax, yMin, xMax, yMin + xRadius); + } + else + CGPathAddLineToPoint(path, nil, xMax, yMin); + if (se) + { + CGPathAddLineToPoint(path, nil, xMax, yMax - xRadius); + CGPathAddCurveToPoint(path, nil, xMax, yMax - xRadius, xMax, yMax, xMax - xRadius, yMax); + } + else + CGPathAddLineToPoint(path, nil, xMax, yMax); + if (sw) + { + CGPathAddLineToPoint(path, nil, xMin + xRadius, yMax); + CGPathAddCurveToPoint(path, nil, xMin + xRadius, yMax, xMin, yMax, xMin, yMax - xRadius); + } + else + CGPathAddLineToPoint(path, nil, xMin, yMax); + if (nw) + { + CGPathAddLineToPoint(path, nil, xMin, yMin + xRadius); + CGPathAddCurveToPoint(path, nil, xMin, yMin + xRadius, xMin, yMin, xMin + xRadius, yMin); + } else + CGPathAddLineToPoint(path, nil, xMin, yMin); + CGPathCloseSubpath(path); + return path; +} +CGPathCloseSubpath= function(aPath) +{ + var count = aPath.count; + if (count == 0 || aPath.elements[count - 1].type == kCGPathElementCloseSubpath) + return; + aPath.elements[aPath.count++] = { type:kCGPathElementCloseSubpath, points:[aPath.start] }; +} +CGPathEqualToPath= function(aPath, anotherPath) +{ + if (aPath == anotherPath) + return YES; + if (aPath.count != anotherPath.count || !(aPath.start.x == anotherPath.start.x && aPath.start.y == anotherPath.start.y) || !(aPath.current.x == anotherPath.current.x && aPath.current.y == anotherPath.current.y)) + return NO; + var i = 0, + count = aPath.count; + for (; i < count; ++i) + { + var element = aPath[i], + anotherElement = anotherPath[i]; + if (element.type != anotherElement.type) + return NO; + if ((element.type == kCGPathElementAddArc || element.type == kCGPathElementAddArcToPoint) && + element.radius != anotherElement.radius) + return NO; + var j = element.points.length; + while (j--) + if (!(element.points[j].x == anotherElement.points[j].x && element.points[j].y == anotherElement.points[j].y)) + return NO; + } + return YES; +} +CGPathGetCurrentPoint= function(aPath) +{ + return { x:aPath.current.x, y:aPath.current.y }; +} +CGPathIsEmpty= function(aPath) +{ + return !aPath || aPath.count == 0; +} + +p;9;CPAlert.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jI;22;AppKit/CPApplication.jI;17;AppKit/CPButton.jI;16;AppKit/CPColor.jI;15;AppKit/CPFont.jI;16;AppKit/CPImage.jI;20;AppKit/CPImageView.jI;16;AppKit/CPPanel.jI;20;AppKit/CPTextField.jc;7353; +CPWarningAlertStyle = 0; +CPInformationalAlertStyle = 1; +CPCriticalAlertStyle = 2; +var CPAlertWarningImage, + CPAlertInformationImage, + CPAlertErrorImage; +{var the_class = objj_allocateClassPair(CPObject, "CPAlert"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_alertPanel"), new objj_ivar("_messageLabel"), new objj_ivar("_alertImageView"), new objj_ivar("_alertStyle"), new objj_ivar("_windowTitle"), new objj_ivar("_windowStyle"), new objj_ivar("_buttonCount"), new objj_ivar("_buttons"), new objj_ivar("_delegate")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPAlert__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _buttonCount = 0; + _buttons = objj_msgSend(CPArray, "array"); + _alertStyle = CPWarningAlertStyle; + _messageLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMake(57.0, 10.0, 220.0, 80.0)); + objj_msgSend(_messageLabel, "setFont:", objj_msgSend(CPFont, "systemFontOfSize:", 12.0)); + objj_msgSend(_messageLabel, "setLineBreakMode:", CPLineBreakByWordWrapping); + objj_msgSend(_messageLabel, "setAlignment:", CPJustifiedTextAlignment); + _alertImageView = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CGRectMake(15.0, 12.0, 32.0, 32.0)); + objj_msgSend(self, "setWindowStyle:", nil); + } + return self; +} +}), new objj_method(sel_getUid("setWindowStyle:"), function $CPAlert__setWindowStyle_(self, _cmd, styleMask) +{ with(self) +{ + _windowStyle = styleMask; + _alertPanel = objj_msgSend(objj_msgSend(CPPanel, "alloc"), "initWithContentRect:styleMask:", CGRectMake(0.0, 0.0, 300.0, 130.0), styleMask ? styleMask | CPTitledWindowMask : CPTitledWindowMask); + objj_msgSend(_alertPanel, "setFloatingPanel:", YES); + objj_msgSend(_alertPanel, "center"); + objj_msgSend(_messageLabel, "setTextColor:", (styleMask == CPHUDBackgroundWindowMask) ? objj_msgSend(CPColor, "whiteColor") : objj_msgSend(CPColor, "blackColor")); + var count = objj_msgSend(_buttons, "count"); + for(var i=0; i < count; i++) + { + var button = _buttons[i]; + objj_msgSend(button, "setFrameSize:", CGSizeMake(objj_msgSend(button, "frame").size.width, (styleMask == CPHUDBackgroundWindowMask) ? 20.0 : 24.0)); + objj_msgSend(button, "setBezelStyle:", (styleMask == CPHUDBackgroundWindowMask) ? CPHUDBezelStyle : CPRoundedBezelStyle); + objj_msgSend(objj_msgSend(_alertPanel, "contentView"), "addSubview:", button); + } + objj_msgSend(objj_msgSend(_alertPanel, "contentView"), "addSubview:", _messageLabel); + objj_msgSend(objj_msgSend(_alertPanel, "contentView"), "addSubview:", _alertImageView); +} +}), new objj_method(sel_getUid("setTitle:"), function $CPAlert__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + _windowTitle = aTitle; +} +}), new objj_method(sel_getUid("title"), function $CPAlert__title(self, _cmd) +{ with(self) +{ + return _windowTitle; +} +}), new objj_method(sel_getUid("windowStyle"), function $CPAlert__windowStyle(self, _cmd) +{ with(self) +{ + return _windowStyle; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPAlert__setDelegate_(self, _cmd, delegate) +{ with(self) +{ + _delegate = delegate; +} +}), new objj_method(sel_getUid("delegate"), function $CPAlert__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("setAlertStyle:"), function $CPAlert__setAlertStyle_(self, _cmd, style) +{ with(self) +{ + _alertStyle = style; +} +}), new objj_method(sel_getUid("alertStyle"), function $CPAlert__alertStyle(self, _cmd) +{ with(self) +{ + return _alertStyle; +} +}), new objj_method(sel_getUid("setMessageText:"), function $CPAlert__setMessageText_(self, _cmd, messageText) +{ with(self) +{ + objj_msgSend(_messageLabel, "setStringValue:", messageText); +} +}), new objj_method(sel_getUid("messageText"), function $CPAlert__messageText(self, _cmd) +{ with(self) +{ + return objj_msgSend(_messageLabel, "stringValue"); +} +}), new objj_method(sel_getUid("addButtonWithTitle:"), function $CPAlert__addButtonWithTitle_(self, _cmd, title) +{ with(self) +{ + var button = objj_msgSend(objj_msgSend(CPButton, "alloc"), "initWithFrame:", CGRectMake(200.0 - (_buttonCount * 90.0), 98.0, 80.0, (_windowStyle == CPHUDBackgroundWindowMask) ? 20.0 : 24.0)); + objj_msgSend(button, "setTitle:", title); + objj_msgSend(button, "setTarget:", self); + objj_msgSend(button, "setTag:", _buttonCount); + objj_msgSend(button, "setAction:", sel_getUid("_notifyDelegate:")); + objj_msgSend(button, "setBezelStyle:", (_windowStyle == CPHUDBackgroundWindowMask) ? CPHUDBezelStyle : CPRoundRectBezelStyle); + objj_msgSend(objj_msgSend(_alertPanel, "contentView"), "addSubview:", button); + if (_buttonCount == 0) + objj_msgSend(_alertPanel, "setDefaultButton:", button); + _buttonCount++; + objj_msgSend(_buttons, "addObject:", button); +} +}), new objj_method(sel_getUid("runModal"), function $CPAlert__runModal(self, _cmd) +{ with(self) +{ + var theTitle; + switch (_alertStyle) + { + case CPWarningAlertStyle: objj_msgSend(_alertImageView, "setImage:", CPAlertWarningImage); + theTitle = "Warning"; + break; + case CPInformationalAlertStyle: objj_msgSend(_alertImageView, "setImage:", CPAlertInformationImage); + theTitle = "Information"; + break; + case CPCriticalAlertStyle: objj_msgSend(_alertImageView, "setImage:", CPAlertErrorImage); + theTitle = "Error"; + break; + } + objj_msgSend(_alertPanel, "setTitle:", _windowTitle ? _windowTitle : theTitle); + objj_msgSend(CPApp, "runModalForWindow:", _alertPanel); +} +}), new objj_method(sel_getUid("_notifyDelegate:"), function $CPAlert___notifyDelegate_(self, _cmd, button) +{ with(self) +{ + if (_delegate && objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("alertDidEnd:returnCode:"))) + objj_msgSend(_delegate, "alertDidEnd:returnCode:", self, objj_msgSend(button, "tag")); + objj_msgSend(CPApp, "abortModal"); + objj_msgSend(_alertPanel, "close"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPAlert__initialize(self, _cmd) +{ with(self) +{ + if (self != CPAlert) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(self, "class")); + CPAlertWarningImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPAlert/dialog-warning.png"), CGSizeMake(32.0, 32.0)); + CPAlertInformationImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPAlert/dialog-information.png"), CGSizeMake(32.0, 32.0)); + CPAlertErrorImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPAlert/dialog-error.png"), CGSizeMake(32.0, 32.0)); +} +})]); +} + +p;13;CPAnimation.jI;21;Foundation/CPObject.ji;23;CAMediaTimingFunction.jc;5807; +CPAnimationEaseInOut = 0; +CPAnimationEaseIn = 1; +CPAnimationEaseOut = 2; +CPAnimationLinear = 3; +ACTUAL_FRAME_RATE = 0; +{var the_class = objj_allocateClassPair(CPObject, "CPAnimation"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_lastTime"), new objj_ivar("_duration"), new objj_ivar("_animationCurve"), new objj_ivar("_timingFunction"), new objj_ivar("_frameRate"), new objj_ivar("_progress"), new objj_ivar("_delegate"), new objj_ivar("_timer")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithDuration:animationCurve:"), function $CPAnimation__initWithDuration_animationCurve_(self, _cmd, aDuration, anAnimationCurve) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _progress = 0.0; + _duration = MAX(0.0, aDuration); + _animationCurve = anAnimationCurve; + _frameRate = 60.0; + } + return self; +} +}), new objj_method(sel_getUid("setAnimationCurve:"), function $CPAnimation__setAnimationCurve_(self, _cmd, anAnimationCurve) +{ with(self) +{ + switch (_animationCurve) + { + case CPAnimationEaseInOut: timingFunctionName = kCAMediaTimingFunctionEaseInEaseOut; + break; + case CPAnimationEaseIn: timingFunctionName = kCAMediaTimingFunctionEaseIn; + break; + case CPAnimationEaseOut: timingFunctionName = kCAMediaTimingFunctionEaseOut; + break; + case CPAnimationLinear: timingFunctionName = kCAMediaTimingFunctionLinear; + break; + default: objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "Invalid value provided for animation curve"); + break; + } + _animationCurve = anAnimationCurve; + _timingFunction = objj_msgSend(CAMediaTimingFunction, "functionWithName:", timingFunctionName); +} +}), new objj_method(sel_getUid("animationCurve"), function $CPAnimation__animationCurve(self, _cmd) +{ with(self) +{ + return _animationCurve; +} +}), new objj_method(sel_getUid("setDuration:"), function $CPAnimation__setDuration_(self, _cmd, aDuration) +{ with(self) +{ + if (aDuration < 0) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "aDuration can't be negative"); + _duration = aDuration; +} +}), new objj_method(sel_getUid("duration"), function $CPAnimation__duration(self, _cmd) +{ with(self) +{ + return _duration; +} +}), new objj_method(sel_getUid("setFrameRate:"), function $CPAnimation__setFrameRate_(self, _cmd, frameRate) +{ with(self) +{ + if (frameRate < 0) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "frameRate can't be negative"); + _frameRate = frameRate; +} +}), new objj_method(sel_getUid("frameRate"), function $CPAnimation__frameRate(self, _cmd) +{ with(self) +{ + return _frameRate; +} +}), new objj_method(sel_getUid("delegate"), function $CPAnimation__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPAnimation__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; +} +}), new objj_method(sel_getUid("startAnimation"), function $CPAnimation__startAnimation(self, _cmd) +{ with(self) +{ + if (_timer || _delegate && objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("animationShouldStart")) && !objj_msgSend(_delegate, "animationShouldStart:", self)) + return; + if (_progress === 1.0) + _progress = 0.0; + ACTUAL_FRAME_RATE = 0; + _lastTime = new Date(); + _timer = objj_msgSend(CPTimer, "scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:", 0.0, self, sel_getUid("animationTimerDidFire:"), nil, YES); +} +}), new objj_method(sel_getUid("animationTimerDidFire:"), function $CPAnimation__animationTimerDidFire_(self, _cmd, aTimer) +{ with(self) +{ + var currentTime = new Date(), + progress = MIN(1.0, objj_msgSend(self, "currentProgress") + (currentTime - _lastTime) / (_duration * 1000.0)); + _lastTime = currentTime; + ++ACTUAL_FRAME_RATE; + objj_msgSend(self, "setCurrentProgress:", progress); + if (progress === 1.0) + { + objj_msgSend(_timer, "invalidate"); + _timer = nil; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("animationDidEnd:"))) + objj_msgSend(_delegate, "animationDidEnd:", self); + } +} +}), new objj_method(sel_getUid("stopAnimation"), function $CPAnimation__stopAnimation(self, _cmd) +{ with(self) +{ + if (!_timer) + return; + objj_msgSend(_timer, "invalidate"); + _timer = nil; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("animationDidStop:"))) + objj_msgSend(_delegate, "animationDidStop:", self); +} +}), new objj_method(sel_getUid("isAnimating"), function $CPAnimation__isAnimating(self, _cmd) +{ with(self) +{ + return _timer; +} +}), new objj_method(sel_getUid("setCurrentProgress:"), function $CPAnimation__setCurrentProgress_(self, _cmd, aProgress) +{ with(self) +{ + _progress = aProgress; +} +}), new objj_method(sel_getUid("currentProgress"), function $CPAnimation__currentProgress(self, _cmd) +{ with(self) +{ + return _progress; +} +}), new objj_method(sel_getUid("currentValue"), function $CPAnimation__currentValue(self, _cmd) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("animation:valueForProgress:"))) + return objj_msgSend(_delegate, "animation:valueForProgress:", self, _progress); + if (_animationCurve == CPAnimationLinear) + return _progress; + alert("IMPLEMENT ANIMATION CURVES!!!"); +} +})]); +} + +p;15;CPApplication.jI;21;Foundation/CPBundle.ji;17;CPCompatibility.ji;9;CPEvent.ji;8;CPMenu.ji;13;CPResponder.ji;22;CPDocumentController.ji;14;CPThemeBlend.jc;23887; +var CPMainCibFile = "CPMainCibFile", + CPMainCibFileHumanFriendly = "Main cib file base name"; +CPApp = nil; +CPApplicationWillFinishLaunchingNotification = "CPApplicationWillFinishLaunchingNotification"; +CPApplicationDidFinishLaunchingNotification = "CPApplicationDidFinishLaunchingNotification"; +CPRunStoppedResponse = -1000; +CPRunAbortedResponse = -1001; +CPRunContinuesResponse = -1002; +{var the_class = objj_allocateClassPair(CPResponder, "CPApplication"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_eventListeners"), new objj_ivar("_currentEvent"), new objj_ivar("_windows"), new objj_ivar("_keyWindow"), new objj_ivar("_mainWindow"), new objj_ivar("_mainMenu"), new objj_ivar("_documentController"), new objj_ivar("_currentSession"), new objj_ivar("_delegate"), new objj_ivar("_namedArgs"), new objj_ivar("_args"), new objj_ivar("_fullArgsString")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPApplication__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "init"); + if (self) + { + _eventListeners = []; + _windows = []; + objj_msgSend(_windows, "addObject:", nil); + _mainMenu = objj_msgSend(objj_msgSend(CPMenu, "alloc"), "initWithTitle:", "MainMenu"); + objj_msgSend(_mainMenu, "setAutoenablesItems:", NO); + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPApplication, "class")), + newMenuItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "New", sel_getUid("newDocument:"), "N"); + objj_msgSend(newMenuItem, "setImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPApplication/New.png"), CGSizeMake(16.0, 16.0))); + objj_msgSend(newMenuItem, "setAlternateImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPApplication/NewHighlighted.png"), CGSizeMake(16.0, 16.0))); + objj_msgSend(_mainMenu, "addItem:", newMenuItem); + var openMenuItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Open", sel_getUid("openDocument:"), "O"); + objj_msgSend(openMenuItem, "setImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPApplication/Open.png"), CGSizeMake(16.0, 16.0))); + objj_msgSend(openMenuItem, "setAlternateImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPApplication/OpenHighlighted.png"), CGSizeMake(16.0, 16.0))); + objj_msgSend(_mainMenu, "addItem:", openMenuItem); + var saveMenu = objj_msgSend(objj_msgSend(CPMenu, "alloc"), "initWithTitle:", "Save"), + saveMenuItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Save", sel_getUid("saveDocument:"), nil); + objj_msgSend(saveMenuItem, "setImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPApplication/Save.png"), CGSizeMake(16.0, 16.0))); + objj_msgSend(saveMenuItem, "setAlternateImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPApplication/SaveHighlighted.png"), CGSizeMake(16.0, 16.0))); + objj_msgSend(saveMenu, "addItem:", objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Save", sel_getUid("saveDocument:"), "S")); + objj_msgSend(saveMenu, "addItem:", objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Save As", sel_getUid("saveDocumentAs:"), nil)); + objj_msgSend(saveMenuItem, "setSubmenu:", saveMenu); + objj_msgSend(_mainMenu, "addItem:", saveMenuItem); + var editMenuItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Edit", nil, nil), + editMenu = objj_msgSend(objj_msgSend(CPMenu, "alloc"), "initWithTitle:", "Edit"), + undoMenuItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Undo", sel_getUid("undo:"), CPUndoKeyEquivalent), + redoMenuItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Redo", sel_getUid("redo:"), CPRedoKeyEquivalent); + objj_msgSend(undoMenuItem, "setKeyEquivalentModifierMask:", CPUndoKeyEquivalentModifierMask); + objj_msgSend(redoMenuItem, "setKeyEquivalentModifierMask:", CPRedoKeyEquivalentModifierMask); + objj_msgSend(editMenu, "addItem:", undoMenuItem); + objj_msgSend(editMenu, "addItem:", redoMenuItem); + objj_msgSend(editMenu, "addItem:", objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Cut", sel_getUid("cut:"), "X")), + objj_msgSend(editMenu, "addItem:", objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Copy", sel_getUid("copy:"), "C")), + objj_msgSend(editMenu, "addItem:", objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Paste", sel_getUid("paste:"), "V")); + objj_msgSend(editMenuItem, "setSubmenu:", editMenu); + objj_msgSend(editMenuItem, "setHidden:", YES); + objj_msgSend(_mainMenu, "addItem:", editMenuItem); + objj_msgSend(_mainMenu, "addItem:", objj_msgSend(CPMenuItem, "separatorItem")); + } + return self; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPApplication__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate == aDelegate) + return; + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_delegate) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPApplicationWillFinishLaunchingNotification, self); + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPApplicationDidFinishLaunchingNotification, self); + } + _delegate = aDelegate; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("applicationWillFinishLaunching:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("applicationWillFinishLaunching:"), CPApplicationWillFinishLaunchingNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("applicationDidFinishLaunching:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("applicationDidFinishLaunching:"), CPApplicationDidFinishLaunchingNotification, self); +} +}), new objj_method(sel_getUid("delegate"), function $CPApplication__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("finishLaunching"), function $CPApplication__finishLaunching(self, _cmd) +{ with(self) +{ + var bundle = objj_msgSend(CPBundle, "mainBundle"), + types = objj_msgSend(bundle, "objectForInfoDictionaryKey:", "CPBundleDocumentTypes"); + if (objj_msgSend(types, "count") > 0) + _documentController = objj_msgSend(CPDocumentController, "sharedDocumentController"); + var delegateClassName = objj_msgSend(bundle, "objectForInfoDictionaryKey:", "CPApplicationDelegateClass"); + if (delegateClassName) + { + var delegateClass = objj_getClass(delegateClassName); + if (delegateClass) + if (objj_msgSend(_documentController, "class") == delegateClass) + objj_msgSend(self, "setDelegate:", _documentController); + else + objj_msgSend(self, "setDelegate:", objj_msgSend(objj_msgSend(delegateClass, "alloc"), "init")); + } + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + objj_msgSend(defaultCenter, "postNotificationName:object:", CPApplicationWillFinishLaunchingNotification, self); + if (_documentController) + objj_msgSend(_documentController, "newDocument:", self); + objj_msgSend(defaultCenter, "postNotificationName:object:", CPApplicationDidFinishLaunchingNotification, self); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); +} +}), new objj_method(sel_getUid("run"), function $CPApplication__run(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "finishLaunching"); +} +}), new objj_method(sel_getUid("runModalForWindow:"), function $CPApplication__runModalForWindow_(self, _cmd, aWindow) +{ with(self) +{ + objj_msgSend(self, "runModalSession:", objj_msgSend(self, "beginModalSessionForWindow:", aWindow)); +} +}), new objj_method(sel_getUid("stopModalWithCode:"), function $CPApplication__stopModalWithCode_(self, _cmd, aCode) +{ with(self) +{ + if (!_currentSession) + { + return; + } + _currentSession._state = aCode; + _currentSession = _currentSession._previous; + objj_msgSend(self, "_removeRunModalLoop"); +} +}), new objj_method(sel_getUid("_removeRunModalLoop"), function $CPApplication___removeRunModalLoop(self, _cmd) +{ with(self) +{ + var count = _eventListeners.length; + while (count--) + if (_eventListeners[count]._callback === _CPRunModalLoop) + { + _eventListeners.splice(count, 1); + return; + } +} +}), new objj_method(sel_getUid("stopModal"), function $CPApplication__stopModal(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "stopModalWithCode:", CPRunStoppedResponse) +} +}), new objj_method(sel_getUid("abortModal"), function $CPApplication__abortModal(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "stopModalWithCode:", CPRunAbortedResponse); +} +}), new objj_method(sel_getUid("beginModalSessionForWindow:"), function $CPApplication__beginModalSessionForWindow_(self, _cmd, aWindow) +{ with(self) +{ + return _CPModalSessionMake(aWindow, 0); +} +}), new objj_method(sel_getUid("runModalSession:"), function $CPApplication__runModalSession_(self, _cmd, aModalSession) +{ with(self) +{ + aModalSession._previous = _currentSession; + _currentSession = aModalSession; + var theWindow = aModalSession._window; + objj_msgSend(theWindow, "center"); + objj_msgSend(theWindow, "makeKeyAndOrderFront:", self); + objj_msgSend(CPApp, "setCallback:forNextEventMatchingMask:untilDate:inMode:dequeue:", _CPRunModalLoop, CPAnyEventMask, nil, 0, NO); +} +}), new objj_method(sel_getUid("modalWindow"), function $CPApplication__modalWindow(self, _cmd) +{ with(self) +{ + if (!_currentSession) + return nil; + return _currentSession._window; +} +}), new objj_method(sel_getUid("_handleKeyEquivalent:"), function $CPApplication___handleKeyEquivalent_(self, _cmd, anEvent) +{ with(self) +{ + if (objj_msgSend(_mainMenu, "performKeyEquivalent:", anEvent)) + return YES; + return NO; +} +}), new objj_method(sel_getUid("sendEvent:"), function $CPApplication__sendEvent_(self, _cmd, anEvent) +{ with(self) +{ + if (objj_msgSend(anEvent, "type") == CPKeyDown && + objj_msgSend(anEvent, "modifierFlags") & (CPCommandKeyMask | CPControlKeyMask) && + objj_msgSend(objj_msgSend(anEvent, "characters"), "length") > 0 && + objj_msgSend(self, "_handleKeyEquivalent:", anEvent)) + return; + if (_eventListeners.length) + { + if (_eventListeners[_eventListeners.length - 1]._mask & (1 << objj_msgSend(anEvent, "type"))) + _eventListeners.pop()._callback(anEvent); + return; + } + objj_msgSend(objj_msgSend(anEvent, "window"), "sendEvent:", anEvent); +} +}), new objj_method(sel_getUid("doCommandBySelector:"), function $CPApplication__doCommandBySelector_(self, _cmd, aSelector) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", aSelector)) + objj_msgSend(_delegate, "performSelector:", aSelector); + else + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "doCommandBySelector:", aSelector); +} +}), new objj_method(sel_getUid("keyWindow"), function $CPApplication__keyWindow(self, _cmd) +{ with(self) +{ + return _keyWindow; +} +}), new objj_method(sel_getUid("mainWindow"), function $CPApplication__mainWindow(self, _cmd) +{ with(self) +{ + return _mainWindow; +} +}), new objj_method(sel_getUid("windowWithWindowNumber:"), function $CPApplication__windowWithWindowNumber_(self, _cmd, aWindowNumber) +{ with(self) +{ + return _windows[aWindowNumber]; +} +}), new objj_method(sel_getUid("windows"), function $CPApplication__windows(self, _cmd) +{ with(self) +{ + return _windows; +} +}), new objj_method(sel_getUid("mainMenu"), function $CPApplication__mainMenu(self, _cmd) +{ with(self) +{ + return _mainMenu; +} +}), new objj_method(sel_getUid("setMainMenu:"), function $CPApplication__setMainMenu_(self, _cmd, aMenu) +{ with(self) +{ + _mainMenu = aMenu; +} +}), new objj_method(sel_getUid("orderFrontColorPanel:"), function $CPApplication__orderFrontColorPanel_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPColorPanel, "sharedColorPanel"), "orderFront:", self); +} +}), new objj_method(sel_getUid("orderFrontStandardAboutPanel:"), function $CPApplication__orderFrontStandardAboutPanel_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "orderFrontStandardAboutPanelWithOptions:", nil); +} +}), new objj_method(sel_getUid("orderFrontStandardAboutPanelWithOptions:"), function $CPApplication__orderFrontStandardAboutPanelWithOptions_(self, _cmd, aDictionary) +{ with(self) +{ +} +}), new objj_method(sel_getUid("tryToPerform:with:"), function $CPApplication__tryToPerform_with_(self, _cmd, anAction, anObject) +{ with(self) +{ + if (!anAction) + return NO; + if (objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "tryToPerform:with:", anAction, anObject)) + return YES; + if(objj_msgSend(_delegate, "respondsToSelector:", anAction)) + { + objj_msgSend(_delegate, "performSelector:withObject:", anAction, anObject); + return YES; + } + return NO; +} +}), new objj_method(sel_getUid("sendAction:to:from:"), function $CPApplication__sendAction_to_from_(self, _cmd, anAction, aTarget, aSender) +{ with(self) +{ + var target = objj_msgSend(self, "targetForAction:to:from:", anAction, aTarget, aSender); + if (!target) + return NO; + objj_msgSend(target, "performSelector:withObject:", anAction, aSender); + return YES; +} +}), new objj_method(sel_getUid("targetForAction:to:from:"), function $CPApplication__targetForAction_to_from_(self, _cmd, anAction, aTarget, aSender) +{ with(self) +{ + if (!anAction) + return nil; + if (aTarget) + return aTarget; + return objj_msgSend(self, "targetForAction:", anAction); +} +}), new objj_method(sel_getUid("_targetForWindow:action:"), function $CPApplication___targetForWindow_action_(self, _cmd, aWindow, anAction) +{ with(self) +{ + var responder = objj_msgSend(aWindow, "firstResponder"), + checkWindow = YES; + while (responder) + { + if (objj_msgSend(responder, "respondsToSelector:", anAction)) + return responder; + if (responder == aWindow) + checkWindow = NO; + responder = objj_msgSend(responder, "nextResponder"); + } + if (checkWindow && objj_msgSend(aWindow, "respondsToSelector:", anAction)) + return aWindow; + var delegate = objj_msgSend(aWindow, "delegate"); + if (objj_msgSend(delegate, "respondsToSelector:", anAction)) + return delegate; + var windowController = objj_msgSend(aWindow, "windowController"); + if (objj_msgSend(windowController, "respondsToSelector:", anAction)) + return windowController; + var theDocument = objj_msgSend(windowController, "document"); + if (theDocument != delegate && objj_msgSend(theDocument, "respondsToSelector:", anAction)) + return theDocument; + return nil; +} +}), new objj_method(sel_getUid("targetForAction:"), function $CPApplication__targetForAction_(self, _cmd, anAction) +{ with(self) +{ + if (!anAction) + return nil; + var target = objj_msgSend(self, "_targetForWindow:action:", objj_msgSend(self, "keyWindow"), anAction); + if (target) + return target; + target = objj_msgSend(self, "_targetForWindow:action:", objj_msgSend(self, "mainWindow"), anAction); + if (target) + return target; + if (objj_msgSend(self, "respondsToSelector:", anAction)) + return self; + if (objj_msgSend(_delegate, "respondsToSelector:", anAction)) + return _delegate; + if (objj_msgSend(_documentController, "respondsToSelector:", anAction)) + return _documentController; + return nil; +} +}), new objj_method(sel_getUid("setCallback:forNextEventMatchingMask:untilDate:inMode:dequeue:"), function $CPApplication__setCallback_forNextEventMatchingMask_untilDate_inMode_dequeue_(self, _cmd, aCallback, aMask, anExpiration, aMode, shouldDequeue) +{ with(self) +{ + _eventListeners.push(_CPEventListenerMake(aMask, aCallback)); + if (_eventListeners.length == 3) objj_debug_print_backtrace(); +} +}), new objj_method(sel_getUid("setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:"), function $CPApplication__setTarget_selector_forNextEventMatchingMask_untilDate_inMode_dequeue_(self, _cmd, aTarget, aSelector, aMask, anExpiration, aMode, shouldDequeue) +{ with(self) +{ + _eventListeners.push(_CPEventListenerMake(aMask, function (anEvent) { objj_msgSend(aTarget, aSelector, anEvent); })); +} +}), new objj_method(sel_getUid("beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo:"), function $CPApplication__beginSheet_modalForWindow_modalDelegate_didEndSelector_contextInfo_(self, _cmd, aSheet, aWindow, aModalDelegate, aDidEndSelector, aContextInfo) +{ with(self) +{ + objj_msgSend(aWindow, "_attachSheet:modalDelegate:didEndSelector:contextInfo:", aSheet, aModalDelegate, aDidEndSelector, aContextInfo); +} +}), new objj_method(sel_getUid("arguments"), function $CPApplication__arguments(self, _cmd) +{ with(self) +{ + if(_fullArgsString != window.location.hash) + objj_msgSend(self, "_reloadArguments"); + return _args; +} +}), new objj_method(sel_getUid("setArguments:"), function $CPApplication__setArguments_(self, _cmd, args) +{ with(self) +{ + if(!args || args.length == 0) + { + _args = []; + window.location.hash = "#"; + return; + } + if(objj_msgSend(args, "class") != CPArray) + args = objj_msgSend(CPArray, "arrayWithObject:", args); + _args = args; + var toEncode = objj_msgSend(_args, "copy"); + for(var i=0, count = toEncode.length; i CPOnState) + anObjectValue = CPOnState + else if (anObjectValue < CPOffState) + if (objj_msgSend(self, "allowsMixedState")) + anObjectValue = CPMixedState; + else + anObjectValue = CPOnState; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setObjectValue:", anObjectValue); + switch (objj_msgSend(self, "objectValue")) + { + case CPMixedState: objj_msgSend(self, "unsetThemeState:", CPThemeStateSelected); + objj_msgSend(self, "setThemeState:", CPButtonStateMixed); + break; + case CPOnState: objj_msgSend(self, "unsetThemeState:", CPButtonStateMixed); + objj_msgSend(self, "setThemeState:", CPThemeStateSelected); + break; + case CPOffState: objj_msgSend(self, "unsetThemeState:", CPThemeStateSelected | CPButtonStateMixed); + } +} +}), new objj_method(sel_getUid("nextState"), function $CPButton__nextState(self, _cmd) +{ with(self) +{ + if (objj_msgSend(self, "allowsMixedState")) + { + var value = objj_msgSend(self, "state"); + return value - ((value === -1) ? -2 : 1); + } + return 1 - objj_msgSend(self, "state"); +} +}), new objj_method(sel_getUid("setNextState"), function $CPButton__setNextState(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "setState:", objj_msgSend(self, "nextState")); +} +}), new objj_method(sel_getUid("setState:"), function $CPButton__setState_(self, _cmd, aState) +{ with(self) +{ + objj_msgSend(self, "setIntValue:", aState); +} +}), new objj_method(sel_getUid("state"), function $CPButton__state(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "intValue"); +} +}), new objj_method(sel_getUid("setTitle:"), function $CPButton__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + if (_title === aTitle) + return; + _title = aTitle; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("title"), function $CPButton__title(self, _cmd) +{ with(self) +{ + return _title; +} +}), new objj_method(sel_getUid("setAlternateTitle:"), function $CPButton__setAlternateTitle_(self, _cmd, aTitle) +{ with(self) +{ + if (_alternateTitle === aTitle) + return; + _alternateTitle = aTitle; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("alternateTitle"), function $CPButton__alternateTitle(self, _cmd) +{ with(self) +{ + return _alternateTitle; +} +}), new objj_method(sel_getUid("setImage:"), function $CPButton__setImage_(self, _cmd, anImage) +{ with(self) +{ + if (_image === anImage) + return; + _image = anImage; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("image"), function $CPButton__image(self, _cmd) +{ with(self) +{ + return _image; +} +}), new objj_method(sel_getUid("setAlternateImage:"), function $CPButton__setAlternateImage_(self, _cmd, anImage) +{ with(self) +{ + if (_alternateImage === anImage) + return; + _alternateImage = anImage; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("alternateImage"), function $CPButton__alternateImage(self, _cmd) +{ with(self) +{ + return _alternateImage; +} +}), new objj_method(sel_getUid("setShowsStateBy:"), function $CPButton__setShowsStateBy_(self, _cmd, aMask) +{ with(self) +{ + if (_showsStateBy === aMask) + return; + _showsStateBy = aMask; + objj_msgSend(self, "setNeedsDisplay:", YES); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("showsStateBy"), function $CPButton__showsStateBy(self, _cmd) +{ with(self) +{ + return _showsStateBy; +} +}), new objj_method(sel_getUid("setHighlightsBy:"), function $CPButton__setHighlightsBy_(self, _cmd, aMask) +{ with(self) +{ + if (_highlightsBy === aMask) + return; + _highlightsBy = aMask; + if (objj_msgSend(self, "hasThemeState:", CPThemeStateHighlighted)) + { + objj_msgSend(self, "setNeedsDisplay:", YES); + objj_msgSend(self, "setNeedsLayout"); + } +} +}), new objj_method(sel_getUid("setButtonType:"), function $CPButton__setButtonType_(self, _cmd, aButtonType) +{ with(self) +{ + switch (aButtonType) + { + case CPMomentaryLightButton: objj_msgSend(self, "setHighlightsBy:", CPChangeBackgroundCellMask); + objj_msgSend(self, "setShowsStateBy:", CPNoCellMask); + break; + case CPMomentaryPushInButton: objj_msgSend(self, "setHighlightsBy:", CPPushInCellMask | CPChangeGrayCellMask); + objj_msgSend(self, "setShowsStateBy:", CPNoCellMask); + break; + case CPMomentaryChangeButton: objj_msgSend(self, "setHighlightsBy:", CPContentsCellMask); + objj_msgSend(self, "setShowsStateBy:", CPNoCellMask); + break; + case CPPushOnPushOffButton: objj_msgSend(self, "setHighlightsBy:", CPPushInCellMask | CPChangeGrayCellMask); + objj_msgSend(self, "setShowsStateBy:", CPChangeBackgroundCellMask); + break; + case CPOnOffButton: objj_msgSend(self, "setHighlightsBy:", CPChangeBackgroundCellMask); + objj_msgSend(self, "setShowsStateBy:", CPChangeBackgroundCellMask); + break; + case CPToggleButton: objj_msgSend(self, "setHighlightsBy:", CPPushInCellMask | CPContentsCellMask); + objj_msgSend(self, "setShowsStateBy:", CPContentsCellMask); + break; + case CPSwitchButton: objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "The CPSwitchButton type is not supported in Cappuccino, use the CPCheckBox class instead."); + case CPRadioButton: objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "The CPRadioButton type is not supported in Cappuccino, use the CPRadio class instead."); + default: objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "Unknown button type."); + } + objj_msgSend(self, "setImageDimsWhenDisabled:", YES); +} +}), new objj_method(sel_getUid("setImageDimsWhenDisabled:"), function $CPButton__setImageDimsWhenDisabled_(self, _cmd, imageShouldDimWhenDisabled) +{ with(self) +{ + imageShouldDimWhenDisabled = !!imageShouldDimWhenDisabled; + if (_imageDimsWhenDisabled === imageShouldDimWhenDisabled) + return; + _imageDimsWhenDisabled = imageShouldDimWhenDisabled; + if (_imageDimsWhenDisabled) + { + objj_msgSend(self, "setNeedsDisplay:", YES); + objj_msgSend(self, "setNeedsLayout"); + } +} +}), new objj_method(sel_getUid("imageDimsWhenDisabled"), function $CPButton__imageDimsWhenDisabled(self, _cmd) +{ with(self) +{ + return _imageDimsWhenDisabled; +} +}), new objj_method(sel_getUid("startTrackingAt:"), function $CPButton__startTrackingAt_(self, _cmd, aPoint) +{ with(self) +{ + objj_msgSend(self, "highlight:", YES); + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "startTrackingAt:", aPoint); +} +}), new objj_method(sel_getUid("stopTracking:at:mouseIsUp:"), function $CPButton__stopTracking_at_mouseIsUp_(self, _cmd, lastPoint, aPoint, mouseIsUp) +{ with(self) +{ + objj_msgSend(self, "highlight:", NO); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "stopTracking:at:mouseIsUp:", lastPoint, aPoint, mouseIsUp); + if (mouseIsUp && CGRectContainsPoint(objj_msgSend(self, "bounds"), aPoint)) + objj_msgSend(self, "setNextState"); +} +}), new objj_method(sel_getUid("contentRectForBounds:"), function $CPButton__contentRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + var contentInset = objj_msgSend(self, "currentValueForThemeAttribute:", "content-inset"); + if (((contentInset).top === 0 && (contentInset).right === 0 && (contentInset).bottom === 0 && (contentInset).left === 0)) + return bounds; + bounds.origin.x += contentInset.left; + bounds.origin.y += contentInset.top; + bounds.size.width -= contentInset.left + contentInset.right; + bounds.size.height -= contentInset.top + contentInset.bottom; + return bounds; +} +}), new objj_method(sel_getUid("bezelRectForBounds:"), function $CPButton__bezelRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + if (!objj_msgSend(self, "isBordered")) + return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + var bezelInset = objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-inset"); + if (((bezelInset).top === 0 && (bezelInset).right === 0 && (bezelInset).bottom === 0 && (bezelInset).left === 0)) + return bounds; + bounds.origin.x += bezelInset.left; + bounds.origin.y += bezelInset.top; + bounds.size.width -= bezelInset.left + bezelInset.right; + bounds.size.height -= bezelInset.top + bezelInset.bottom; + return bounds; +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPButton__sizeToFit(self, _cmd) +{ with(self) +{ + var size = objj_msgSend((objj_msgSend(self, "title") || " "), "sizeWithFont:", objj_msgSend(self, "currentValueForThemeAttribute:", "font")), + contentInset = objj_msgSend(self, "currentValueForThemeAttribute:", "content-inset"), + minSize = objj_msgSend(self, "currentValueForThemeAttribute:", "min-size"), + maxSize = objj_msgSend(self, "currentValueForThemeAttribute:", "max-size"); + size.width = MAX(size.width + contentInset.left + contentInset.right, minSize.width); + size.height = MAX(size.height + contentInset.top + contentInset.bottom, minSize.height); + if (maxSize.width >= 0.0) + size.width = MIN(size.width, maxSize.width); + if (maxSize.height >= 0.0) + size.height = MIN(size.height, maxSize.height); + objj_msgSend(self, "setFrameSize:", size); +} +}), new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPButton__rectForEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "bezel-view") + return objj_msgSend(self, "bezelRectForBounds:", objj_msgSend(self, "bounds")); + else if (aName === "content-view") + return objj_msgSend(self, "contentRectForBounds:", objj_msgSend(self, "bounds")); + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "rectForEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPButton__createEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "bezel-view") + { + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + objj_msgSend(view, "setHitTests:", NO); + return view; + } + else + return objj_msgSend(objj_msgSend(_CPImageAndTextView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "createEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPButton__layoutSubviews(self, _cmd) +{ with(self) +{ + var bezelView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "bezel-view", CPWindowBelow, "content-view"); + if (bezelView) + objj_msgSend(bezelView, "setBackgroundColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-color")); + var contentView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "content-view", CPWindowAbove, "bezel-view"); + if (contentView) + { + objj_msgSend(contentView, "setText:", (objj_msgSend(self, "hasThemeState:", CPThemeStateHighlighted) && _alternateTitle) ? _alternateTitle : _title); + objj_msgSend(contentView, "setImage:", (objj_msgSend(self, "hasThemeState:", CPThemeStateHighlighted) && _alternateImage) ? _alternateImage : _image); + objj_msgSend(contentView, "setFont:", objj_msgSend(self, "currentValueForThemeAttribute:", "font")); + objj_msgSend(contentView, "setTextColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "text-color")); + objj_msgSend(contentView, "setAlignment:", objj_msgSend(self, "currentValueForThemeAttribute:", "alignment")); + objj_msgSend(contentView, "setVerticalAlignment:", objj_msgSend(self, "currentValueForThemeAttribute:", "vertical-alignment")); + objj_msgSend(contentView, "setLineBreakMode:", objj_msgSend(self, "currentValueForThemeAttribute:", "line-break-mode")); + objj_msgSend(contentView, "setTextShadowColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "text-shadow-color")); + objj_msgSend(contentView, "setTextShadowOffset:", objj_msgSend(self, "currentValueForThemeAttribute:", "text-shadow-offset")); + objj_msgSend(contentView, "setImagePosition:", objj_msgSend(self, "currentValueForThemeAttribute:", "image-position")); + objj_msgSend(contentView, "setImageScaling:", objj_msgSend(self, "currentValueForThemeAttribute:", "image-scaling")); + } +} +}), new objj_method(sel_getUid("setDefaultButton:"), function $CPButton__setDefaultButton_(self, _cmd, shouldBeDefaultButton) +{ with(self) +{ + if (shouldBeDefaultButton) + objj_msgSend(self, "setThemeState:", CPThemeStateDefault); + else + objj_msgSend(self, "unsetThemeState:", CPThemeStateDefault); +} +}), new objj_method(sel_getUid("setBordered:"), function $CPButton__setBordered_(self, _cmd, shouldBeBordered) +{ with(self) +{ + if (shouldBeBordered) + objj_msgSend(self, "setThemeState:", CPThemeStateBordered); + else + objj_msgSend(self, "unsetThemeState:", CPThemeStateBordered); +} +}), new objj_method(sel_getUid("isBordered"), function $CPButton__isBordered(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "hasThemeState:", CPThemeStateBordered); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("buttonWithTitle:"), function $CPButton__buttonWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + return objj_msgSend(self, "buttonWithTitle:theme:", aTitle, objj_msgSend(CPTheme, "defaultTheme")); +} +}), new objj_method(sel_getUid("buttonWithTitle:theme:"), function $CPButton__buttonWithTitle_theme_(self, _cmd, aTitle, aTheme) +{ with(self) +{ + var button = objj_msgSend(objj_msgSend(self, "alloc"), "init"); + objj_msgSend(button, "setTheme:", aTheme); + objj_msgSend(button, "setTitle:", aTitle); + objj_msgSend(button, "sizeToFit"); + return button; +} +}), new objj_method(sel_getUid("themeClass"), function $CPButton__themeClass(self, _cmd) +{ with(self) +{ + return "button"; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPButton__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [{ top:(0), right:(0), bottom:(0), left:(0) }, { top:(0), right:(0), bottom:(0), left:(0) }, nil], ["bezel-inset", "content-inset", "bezel-color"]); +} +})]); +} +{ +var the_class = objj_getClass("CPButton") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPButton\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("setBezelStyle:"), function $CPButton__setBezelStyle_(self, _cmd, aBezelStyle) +{ with(self) +{ +} +}), new objj_method(sel_getUid("bezelStyle"), function $CPButton__bezelStyle(self, _cmd) +{ with(self) +{ +} +})]); +} +var CPButtonImageKey = "CPButtonImageKey", + CPButtonAlternateImageKey = "CPButtonAlternateImageKey", + CPButtonTitleKey = "CPButtonTitleKey", + CPButtonAlternateTitleKey = "CPButtonAlternateTitleKey", + CPButtonIsBorderedKey = "CPButtonIsBorderedKey"; +{ +var the_class = objj_getClass("CPButton") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPButton\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPButton__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder); + if (self) + { + _controlSize = CPRegularControlSize; + objj_msgSend(self, "setImage:", objj_msgSend(aCoder, "decodeObjectForKey:", CPButtonImageKey)); + objj_msgSend(self, "setAlternateImage:", objj_msgSend(aCoder, "decodeObjectForKey:", CPButtonAlternateImageKey)); + objj_msgSend(self, "setTitle:", objj_msgSend(aCoder, "decodeObjectForKey:", CPButtonTitleKey)); + objj_msgSend(self, "setAlternateTitle:", objj_msgSend(aCoder, "decodeObjectForKey:", CPButtonAlternateTitleKey)); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPButton__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _image, CPButtonImageKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _alternateImage, CPButtonAlternateImageKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _title, CPButtonTitleKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _alternateTitle, CPButtonAlternateTitleKey); +} +})]); +} +i;12;CPCheckBox.ji;9;CPRadio.jp;13;CPButtonBar.jI;15;AppKit/CPView.jc;2246; + + + + +{var the_class = objj_allocateClassPair(CPControl, "CPButtonBar"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPButtonBar__rectForEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "bezel-view") + return objj_msgSend(self, "bounds"); + + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "rectForEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPButtonBar__createEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "bezel-view") + { + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + + objj_msgSend(view, "setHitTests:", NO); + + return view; + } + + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "createEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPButtonBar__layoutSubviews(self, _cmd) +{ with(self) +{ + var bezelView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "bezel-view", CPWindowBelow, ""); + + if (bezelView) + objj_msgSend(bezelView, "setBackgroundColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-color")); +} +}), new objj_method(sel_getUid("addSubview:"), function $CPButtonBar__addSubview_(self, _cmd, aSubview) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "addSubview:", aSubview); + + objj_msgSend(aSubview, "setAutoresizingMask:", CPViewMinXMargin); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeClass"), function $CPButtonBar__themeClass(self, _cmd) +{ with(self) +{ + return "button-bar"; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPButtonBar__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [nil], ["bezel-color"]); +} +})]); +} + +p;12;CPCheckBox.ji;10;CPButton.jc;1421; +{var the_class = objj_allocateClassPair(CPButton, "CPCheckBox"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPCheckBox__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "initWithFrame:", aFrame); + if (self) + { + objj_msgSend(self, "setHighlightsBy:", CPContentsCellMask); + objj_msgSend(self, "setShowsStateBy:", CPContentsCellMask); + objj_msgSend(self, "setImagePosition:", CPImageLeft); + objj_msgSend(self, "setAlignment:", CPLeftTextAlignment); + objj_msgSend(self, "setBordered:", YES); + } + return self; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("checkBoxWithTitle:theme:"), function $CPCheckBox__checkBoxWithTitle_theme_(self, _cmd, aTitle, aTheme) +{ with(self) +{ + return objj_msgSend(self, "buttonWithTitle:theme:", aTitle, aTheme); +} +}), new objj_method(sel_getUid("checkBoxWithTitle:"), function $CPCheckBox__checkBoxWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + return objj_msgSend(self, "buttonWithTitle:", aTitle); +} +}), new objj_method(sel_getUid("themeClass"), function $CPCheckBox__themeClass(self, _cmd) +{ with(self) +{ + return "check-box"; +} +})]); +} + +p;7;CPCib.jI;21;Foundation/CPObject.jI;28;Foundation/CPURLConnection.jI;25;Foundation/CPURLRequest.ji;20;_CPCibClassSwapper.ji;20;_CPCibCustomObject.ji;22;_CPCibCustomResource.ji;18;_CPCibCustomView.ji;23;_CPCibKeyedUnarchiver.ji;18;_CPCibObjectData.ji;22;_CPCibWindowTemplate.jc;5776; +CPCibOwner = "CPCibOwner", +CPCibTopLevelObjects = "CPCibTopLevelObjects", +CPCibReplacementClasses = "CPCibReplacementClasses"; +var CPCibObjectDataKey = "CPCibObjectDataKey"; +{var the_class = objj_allocateClassPair(CPObject, "CPCib"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_data"), new objj_ivar("_bundle"), new objj_ivar("_awakenCustomResources"), new objj_ivar("_loadDelegate")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithContentsOfURL:"), function $CPCib__initWithContentsOfURL_(self, _cmd, aURL) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _data = objj_msgSend(CPURLConnection, "sendSynchronousRequest:returningResponse:error:", objj_msgSend(CPURLRequest, "requestWithURL:", aURL), nil, nil); + _awakenCustomResources = YES; + } + return self; +} +}), new objj_method(sel_getUid("initWithContentsOfURL:loadDelegate:"), function $CPCib__initWithContentsOfURL_loadDelegate_(self, _cmd, aURL, aLoadDelegate) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + objj_msgSend(CPURLConnection, "connectionWithRequest:delegate:", objj_msgSend(CPURLRequest, "requestWithURL:", aURL), self); + _awakenCustomResources = YES; + _loadDelegate = aLoadDelegate; + } + return self; +} +}), new objj_method(sel_getUid("initWithCibNamed:bundle:loadDelegate:"), function $CPCib__initWithCibNamed_bundle_loadDelegate_(self, _cmd, aName, aBundle, aLoadDelegate) +{ with(self) +{ + if (!objj_msgSend(aName, "hasSuffix:", ".cib")) + aName = objj_msgSend(aName, "stringByAppendingString:", ".cib"); + self = objj_msgSend(self, "initWithContentsOfURL:loadDelegate:", objj_msgSend(aBundle || objj_msgSend(CPBundle, "mainBundle"), "pathForResource:", aName), aLoadDelegate); + if (self) + _bundle = aBundle; + return self; +} +}), new objj_method(sel_getUid("_setAwakenCustomResources:"), function $CPCib___setAwakenCustomResources_(self, _cmd, shouldAwakenCustomResources) +{ with(self) +{ + _awakenCustomResources = shouldAwakenCustomResources; +} +}), new objj_method(sel_getUid("_awakenCustomResources"), function $CPCib___awakenCustomResources(self, _cmd) +{ with(self) +{ + return _awakenCustomResources; +} +}), new objj_method(sel_getUid("instantiateCibWithExternalNameTable:"), function $CPCib__instantiateCibWithExternalNameTable_(self, _cmd, anExternalNameTable) +{ with(self) +{ + var bundle = _bundle, + owner = objj_msgSend(anExternalNameTable, "objectForKey:", CPCibOwner); + if (!bundle && owner) + bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(owner, "class")); + var unarchiver = objj_msgSend(objj_msgSend(_CPCibKeyedUnarchiver, "alloc"), "initForReadingWithData:bundle:awakenCustomResources:", _data, bundle, _awakenCustomResources), + replacementClasses = objj_msgSend(anExternalNameTable, "objectForKey:", CPCibReplacementClasses); + if (replacementClasses) + { + var key = nil, + keyEnumerator = objj_msgSend(replacementClasses, "keyEnumerator"); + while (key = objj_msgSend(keyEnumerator, "nextObject")) + objj_msgSend(unarchiver, "setClass:forClassName:", objj_msgSend(replacementClasses, "objectForKey:", key), key); + } + var objectData = objj_msgSend(unarchiver, "decodeObjectForKey:", CPCibObjectDataKey); + if (!objectData || !objj_msgSend(objectData, "isKindOfClass:", objj_msgSend(_CPCibObjectData, "class"))) + return NO; + var topLevelObjects = objj_msgSend(anExternalNameTable, "objectForKey:", CPCibTopLevelObjects); + objj_msgSend(objectData, "instantiateWithOwner:topLevelObjects:", owner, topLevelObjects) + objj_msgSend(objectData, "establishConnectionsWithOwner:topLevelObjects:", owner, topLevelObjects); + objj_msgSend(objectData, "awakeWithOwner:topLevelObjects:", owner, topLevelObjects); + var menu; + if ((menu = objj_msgSend(objectData, "mainMenu")) != nil) + { + objj_msgSend(CPApp, "setMainMenu:", menu); + objj_msgSend(CPMenu, "setMenuBarVisible:", YES); + } + objj_msgSend(objectData, "displayVisibleWindows"); + return YES; +} +}), new objj_method(sel_getUid("instantiateCibWithOwner:topLevelObjects:"), function $CPCib__instantiateCibWithOwner_topLevelObjects_(self, _cmd, anOwner, topLevelObjects) +{ with(self) +{ + return objj_msgSend(self, "instantiateCibWithExternalNameTable:", objj_msgSend(CPDictionary, "dictionaryWithObjectsAndKeys:", anOwner, CPCibOwner, topLevelObjects, CPCibTopLevelObjects)); +} +})]); +} +{ +var the_class = objj_getClass("CPCib") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPCib\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("connection:didReceiveData:"), function $CPCib__connection_didReceiveData_(self, _cmd, aConnection, data) +{ with(self) +{ + _data = objj_msgSend(CPData, "dataWithString:", data); +} +}), new objj_method(sel_getUid("connection:didFailWithError:"), function $CPCib__connection_didFailWithError_(self, _cmd, aConnection, anError) +{ with(self) +{ + alert("cib: connection failed."); + _loadDelegate = nil; +} +}), new objj_method(sel_getUid("connectionDidFinishLoading:"), function $CPCib__connectionDidFinishLoading_(self, _cmd, aConnection) +{ with(self) +{ + if (objj_msgSend(_loadDelegate, "respondsToSelector:", sel_getUid("cibDidFinishLoading:"))) + objj_msgSend(_loadDelegate, "cibDidFinishLoading:", self); + _loadDelegate = nil; +} +})]); +} + +p;14;CPCibLoading.jI;21;Foundation/CPBundle.jI;25;Foundation/CPDictionary.jI;21;Foundation/CPString.jc;2555; +var CPCibOwner = "CPCibOwner"; +var LoadInfoForCib = {}; +{ +var the_class = objj_getClass("CPObject") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPObject\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("awakeFromCib"), function $CPObject__awakeFromCib(self, _cmd) +{ with(self) +{ +} +})]); +} +{ +var the_class = objj_getClass("CPBundle") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPBundle\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("loadCibFile:externalNameTable:loadDelegate:"), function $CPBundle__loadCibFile_externalNameTable_loadDelegate_(self, _cmd, aFileName, aNameTable, aDelegate) +{ with(self) +{ + var cib = objj_msgSend(objj_msgSend(CPCib, "alloc"), "initWithCibNamed:bundle:loadDelegate:", aFileName, self, objj_msgSend(self, "class")); + LoadInfoForCib[objj_msgSend(cib, "hash")] = { loadDelegate:aDelegate, externalNameTable:aNameTable }; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("loadCibFile:externalNameTable:loadDelegate:"), function $CPBundle__loadCibFile_externalNameTable_loadDelegate_(self, _cmd, anAbsolutePath, aNameTable, aDelegate) +{ with(self) +{ + var cib = objj_msgSend(objj_msgSend(CPCib, "alloc"), "initWithContentsOfURL:loadDelegate:", anAbsolutePath, self); + LoadInfoForCib[objj_msgSend(cib, "hash")] = { loadDelegate:aDelegate, externalNameTable:aNameTable }; +} +}), new objj_method(sel_getUid("loadCibNamed:owner:loadDelegate:"), function $CPBundle__loadCibNamed_owner_loadDelegate_(self, _cmd, aName, anOwner, aDelegate) +{ with(self) +{ + var bundle = anOwner ? objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(anOwner, "class")) : objj_msgSend(CPBundle, "mainBundle"), + path = objj_msgSend(bundle, "pathForResource:", aName); + objj_msgSend(self, "loadCibFile:externalNameTable:loadDelegate:", path, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", anOwner, CPCibOwner), aDelegate); +} +}), new objj_method(sel_getUid("cibDidFinishLoading:"), function $CPBundle__cibDidFinishLoading_(self, _cmd, aCib) +{ with(self) +{ + var loadInfo = LoadInfoForCib[objj_msgSend(aCib, "hash")]; + delete LoadInfoForCib[objj_msgSend(aCib, "hash")]; + objj_msgSend(aCib, "instantiateCibWithExternalNameTable:", loadInfo.externalNameTable); + objj_msgSend(loadInfo.loadDelegate, "cibDidFinishLoading:", aCib); +} +})]); +} + +p;12;CPClipView.ji;8;CPView.jc;5648; +{var the_class = objj_allocateClassPair(CPView, "CPClipView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_documentView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setDocumentView:"), function $CPClipView__setDocumentView_(self, _cmd, aView) +{ with(self) +{ + if (_documentView == aView) + return; + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_documentView) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPViewFrameDidChangeNotification, _documentView); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPViewBoundsDidChangeNotification, _documentView); + objj_msgSend(_documentView, "removeFromSuperview"); + } + _documentView = aView; + if (_documentView) + { + objj_msgSend(self, "addSubview:", _documentView); + objj_msgSend(_documentView, "setPostsFrameChangedNotifications:", YES); + objj_msgSend(_documentView, "setPostsBoundsChangedNotifications:", YES); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("viewFrameChanged:"), CPViewFrameDidChangeNotification, _documentView); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("viewBoundsChanged:"), CPViewBoundsDidChangeNotification, _documentView); + } +} +}), new objj_method(sel_getUid("documentView"), function $CPClipView__documentView(self, _cmd) +{ with(self) +{ + return _documentView; +} +}), new objj_method(sel_getUid("constrainScrollPoint:"), function $CPClipView__constrainScrollPoint_(self, _cmd, aPoint) +{ with(self) +{ + if (!_documentView) + return { x:0.0, y:0.0 }; + var documentFrame = objj_msgSend(_documentView, "frame"); + aPoint.x = MAX(0.0, MIN(aPoint.x, MAX((documentFrame.size.width) - (_bounds.size.width), 0.0))); + aPoint.y = MAX(0.0, MIN(aPoint.y, MAX((documentFrame.size.height) - (_bounds.size.height), 0.0))); + return aPoint; +} +}), new objj_method(sel_getUid("setBoundsOrigin:"), function $CPClipView__setBoundsOrigin_(self, _cmd, aPoint) +{ with(self) +{ + if ((_bounds.origin.x == aPoint.x && _bounds.origin.y == aPoint.y)) + return; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setBoundsOrigin:", aPoint); + var superview = objj_msgSend(self, "superview"); + if(objj_msgSend(superview, "isKindOfClass:", objj_msgSend(CPScrollView, "class"))) + objj_msgSend(superview, "reflectScrolledClipView:", self); +} +}), new objj_method(sel_getUid("scrollToPoint:"), function $CPClipView__scrollToPoint_(self, _cmd, aPoint) +{ with(self) +{ + objj_msgSend(self, "setBoundsOrigin:", objj_msgSend(self, "constrainScrollPoint:", aPoint)); +} +}), new objj_method(sel_getUid("viewBoundsChanged:"), function $CPClipView__viewBoundsChanged_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "_constrainScrollPoint"); +} +}), new objj_method(sel_getUid("viewFrameChanged:"), function $CPClipView__viewFrameChanged_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "_constrainScrollPoint"); +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $CPClipView__resizeSubviewsWithOldSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "resizeSubviewsWithOldSize:", aSize); + objj_msgSend(self, "_constrainScrollPoint"); +} +}), new objj_method(sel_getUid("_constrainScrollPoint"), function $CPClipView___constrainScrollPoint(self, _cmd) +{ with(self) +{ + var oldScrollPoint = objj_msgSend(self, "bounds").origin; + objj_msgSend(self, "scrollToPoint:", oldScrollPoint); + if (!CGPointEqualToPoint(oldScrollPoint, objj_msgSend(self, "bounds").origin)) + return; + var superview = objj_msgSend(self, "superview"); + if (objj_msgSend(superview, "isKindOfClass:", objj_msgSend(CPScrollView, "class"))) + objj_msgSend(superview, "reflectScrolledClipView:", self); +} +}), new objj_method(sel_getUid("autoscroll:"), function $CPClipView__autoscroll_(self, _cmd, anEvent) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + eventLocation = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + if (CPRectContainsPoint(bounds, eventLocation)) + return NO; + var newRect = CGRectMakeZero(); + newRect.origin = eventLocation; + newRect.size = CPSizeMake(10, 10); + return objj_msgSend(_documentView, "scrollRectToVisible:", newRect); +} +})]); +} +var CPClipViewDocumentViewKey = "CPScrollViewDocumentView"; +{ +var the_class = objj_getClass("CPClipView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPClipView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPClipView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder)) + objj_msgSend(self, "setDocumentView:", objj_msgSend(aCoder, "decodeObjectForKey:", CPClipViewDocumentViewKey)); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPClipView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _documentView, CPClipViewDocumentViewKey); +} +})]); +} + +p;18;CPCollectionView.jI;20;Foundation/CPArray.jI;19;Foundation/CPData.jI;23;Foundation/CPIndexSet.jI;28;Foundation/CPKeyedArchiver.jI;30;Foundation/CPKeyedUnarchiver.jI;15;AppKit/CPView.jc;19001; +{var the_class = objj_allocateClassPair(CPView, "CPCollectionView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_content"), new objj_ivar("_items"), new objj_ivar("_itemData"), new objj_ivar("_itemPrototype"), new objj_ivar("_itemForDragging"), new objj_ivar("_cachedItems"), new objj_ivar("_maxNumberOfRows"), new objj_ivar("_maxNumberOfColumns"), new objj_ivar("_minItemSize"), new objj_ivar("_maxItemSize"), new objj_ivar("_tileWidth"), new objj_ivar("_isSelectable"), new objj_ivar("_allowsMultipleSelection"), new objj_ivar("_allowsEmptySelection"), new objj_ivar("_selectionIndexes"), new objj_ivar("_itemSize"), new objj_ivar("_horizontalMargin"), new objj_ivar("_verticalMargin"), new objj_ivar("_numberOfRows"), new objj_ivar("_numberOfColumns"), new objj_ivar("_delegate")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPCollectionView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _items = []; + _content = []; + _cachedItems = []; + _itemSize = CGSizeMakeZero(); + _minItemSize = CGSizeMakeZero(); + _maxItemSize = CGSizeMakeZero(); + _verticalMargin = 5.0; + _tileWidth = -1.0; + _selectionIndexes = objj_msgSend(CPIndexSet, "indexSet"); + _allowsEmptySelection = YES; + _isSelectable = YES; + } + return self; +} +}), new objj_method(sel_getUid("setItemPrototype:"), function $CPCollectionView__setItemPrototype_(self, _cmd, anItem) +{ with(self) +{ + _itemData = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", anItem); + _itemForDragging = anItem + _itemPrototype = anItem; + objj_msgSend(self, "reloadContent"); +} +}), new objj_method(sel_getUid("itemPrototype"), function $CPCollectionView__itemPrototype(self, _cmd) +{ with(self) +{ + return _itemPrototype; +} +}), new objj_method(sel_getUid("newItemForRepresentedObject:"), function $CPCollectionView__newItemForRepresentedObject_(self, _cmd, anObject) +{ with(self) +{ + var item = nil; + if (_cachedItems.length) + item = _cachedItems.pop(); + else + item = objj_msgSend(CPKeyedUnarchiver, "unarchiveObjectWithData:", _itemData); + objj_msgSend(item, "setRepresentedObject:", anObject); + objj_msgSend(objj_msgSend(item, "view"), "setFrameSize:", _itemSize); + return item; +} +}), new objj_method(sel_getUid("acceptsFirstResponder"), function $CPCollectionView__acceptsFirstResponder(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("isFirstResponder"), function $CPCollectionView__isFirstResponder(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "window"), "firstResponder") == self; +} +}), new objj_method(sel_getUid("setContent:"), function $CPCollectionView__setContent_(self, _cmd, anArray) +{ with(self) +{ + if (_content == anArray) + return; + _content = anArray; + objj_msgSend(self, "reloadContent"); +} +}), new objj_method(sel_getUid("content"), function $CPCollectionView__content(self, _cmd) +{ with(self) +{ + return _content; +} +}), new objj_method(sel_getUid("items"), function $CPCollectionView__items(self, _cmd) +{ with(self) +{ + return _items; +} +}), new objj_method(sel_getUid("setSelectable:"), function $CPCollectionView__setSelectable_(self, _cmd, isSelectable) +{ with(self) +{ + if (_isSelectable == isSelectable) + return; + _isSelectable = isSelectable; + if (!_isSelectable) + { + var index = CPNotFound; + while ((index = objj_msgSend(_selectionIndexes, "indexGreaterThanIndex:", index)) != CPNotFound) + objj_msgSend(_items[index], "setSelected:", NO); + } +} +}), new objj_method(sel_getUid("isSelected"), function $CPCollectionView__isSelected(self, _cmd) +{ with(self) +{ + return _isSelected; +} +}), new objj_method(sel_getUid("setAllowsEmptySelection:"), function $CPCollectionView__setAllowsEmptySelection_(self, _cmd, shouldAllowEmptySelection) +{ with(self) +{ + _allowsEmptySelection = shouldAllowEmptySelection; +} +}), new objj_method(sel_getUid("allowsEmptySelection"), function $CPCollectionView__allowsEmptySelection(self, _cmd) +{ with(self) +{ + return _allowsEmptySelection; +} +}), new objj_method(sel_getUid("setAllowsMultipleSelection:"), function $CPCollectionView__setAllowsMultipleSelection_(self, _cmd, shouldAllowMultipleSelection) +{ with(self) +{ + _allowsMultipleSelection = shouldAllowMultipleSelection; +} +}), new objj_method(sel_getUid("allowsMultipleSelection"), function $CPCollectionView__allowsMultipleSelection(self, _cmd) +{ with(self) +{ + return _allowsMultipleSelection; +} +}), new objj_method(sel_getUid("setSelectionIndexes:"), function $CPCollectionView__setSelectionIndexes_(self, _cmd, anIndexSet) +{ with(self) +{ + if (_selectionIndexes == anIndexSet || !_isSelectable) + return; + var index = CPNotFound; + while ((index = objj_msgSend(_selectionIndexes, "indexGreaterThanIndex:", index)) != CPNotFound) + objj_msgSend(_items[index], "setSelected:", NO); + _selectionIndexes = anIndexSet; + var index = CPNotFound; + while ((index = objj_msgSend(_selectionIndexes, "indexGreaterThanIndex:", index)) != CPNotFound) + objj_msgSend(_items[index], "setSelected:", YES); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("collectionViewDidChangeSelection:"))) + objj_msgSend(_delegate, "collectionViewDidChangeSelection:", self) +} +}), new objj_method(sel_getUid("selectionIndexes"), function $CPCollectionView__selectionIndexes(self, _cmd) +{ with(self) +{ + return _selectionIndexes; +} +}), new objj_method(sel_getUid("reloadContent"), function $CPCollectionView__reloadContent(self, _cmd) +{ with(self) +{ + var count = _items.length; + while (count--) + { + objj_msgSend(objj_msgSend(_items[count], "view"), "removeFromSuperview"); + _cachedItems.push(_items[count]); + } + _items = []; + if (!_itemData || !_content) + return; + var index = 0; + count = _content.length; + for (; index < count; ++index) + { + _items.push(objj_msgSend(self, "newItemForRepresentedObject:", _content[index])); + objj_msgSend(self, "addSubview:", objj_msgSend(_items[index], "view")); + } + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("tile"), function $CPCollectionView__tile(self, _cmd) +{ with(self) +{ + var width = CGRectGetWidth(objj_msgSend(self, "bounds")); + if (!objj_msgSend(_content, "count") || width == _tileWidth) + return; + var itemSize = CGSizeMakeCopy(_minItemSize); + _numberOfColumns = MAX(1.0, FLOOR(width / itemSize.width)); + if (_maxNumberOfColumns > 0) + _numberOfColumns = MIN(_maxNumberOfColumns, _numberOfColumns); + var remaining = width - _numberOfColumns * itemSize.width, + itemsNeedSizeUpdate = NO; + if (remaining > 0 && itemSize.width < _maxItemSize.width) + itemSize.width = MIN(_maxItemSize.width, itemSize.width + FLOOR(remaining / _numberOfColumns)); + if (_maxNumberOfColumns == 1 && itemSize.width < _maxItemSize.width && itemSize.width < width) + itemSize.width = MIN(_maxItemSize.width, width); + if (!CGSizeEqualToSize(_itemSize, itemSize)) + { + _itemSize = itemSize; + itemsNeedSizeUpdate = YES; + } + var index = 0, + count = _items.length; + if (_maxNumberOfColumns > 0 && _maxNumberOfRows > 0) + count = MIN(count, _maxNumberOfColumns * _maxNumberOfRows); + _numberOfRows = CEIL(count / _numberOfColumns); + _horizontalMargin = FLOOR((width - _numberOfColumns * itemSize.width) / (_numberOfColumns + 1)); + var x = _horizontalMargin, + y = -itemSize.height; + for (; index < count; ++index) + { + if (index % _numberOfColumns == 0) + { + x = _horizontalMargin; + y += _verticalMargin + itemSize.height; + } + var view = objj_msgSend(_items[index], "view"); + objj_msgSend(view, "setFrameOrigin:", CGPointMake(x, y)); + if (itemsNeedSizeUpdate) + objj_msgSend(view, "setFrameSize:", _itemSize); + x += itemSize.width + _horizontalMargin; + } + _tileWidth = width; + objj_msgSend(self, "setFrameSize:", CGSizeMake(width, y + itemSize.height + _verticalMargin)); + _tileWidth = -1.0; +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $CPCollectionView__resizeSubviewsWithOldSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("setMaxNumberOfRows:"), function $CPCollectionView__setMaxNumberOfRows_(self, _cmd, aMaxNumberOfRows) +{ with(self) +{ + if (_maxNumberOfRows == aMaxNumberOfRows) + return; + _maxNumberOfRows = aMaxNumberOfRows; + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("maxNumberOfRows"), function $CPCollectionView__maxNumberOfRows(self, _cmd) +{ with(self) +{ + return _maxNumberOfRows; +} +}), new objj_method(sel_getUid("setMaxNumberOfColumns:"), function $CPCollectionView__setMaxNumberOfColumns_(self, _cmd, aMaxNumberOfColumns) +{ with(self) +{ + if (_maxNumberOfColumns == aMaxNumberOfColumns) + return; + _maxNumberOfColumns = aMaxNumberOfColumns; + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("maxNumberOfColumns"), function $CPCollectionView__maxNumberOfColumns(self, _cmd) +{ with(self) +{ + return _maxNumberOfColumns; +} +}), new objj_method(sel_getUid("numberOfRows"), function $CPCollectionView__numberOfRows(self, _cmd) +{ with(self) +{ + return _numberOfRows; +} +}), new objj_method(sel_getUid("numberOfColumns"), function $CPCollectionView__numberOfColumns(self, _cmd) +{ with(self) +{ + return _numberOfColumns; +} +}), new objj_method(sel_getUid("setMinItemSize:"), function $CPCollectionView__setMinItemSize_(self, _cmd, aSize) +{ with(self) +{ + if (CGSizeEqualToSize(_minItemSize, aSize)) + return; + _minItemSize = CGSizeMakeCopy(aSize); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("minItemSize"), function $CPCollectionView__minItemSize(self, _cmd) +{ with(self) +{ + return _minItemSize; +} +}), new objj_method(sel_getUid("setMaxItemSize:"), function $CPCollectionView__setMaxItemSize_(self, _cmd, aSize) +{ with(self) +{ + if (CGSizeEqualToSize(_maxItemSize, aSize)) + return; + _maxItemSize = CGSizeMakeCopy(aSize); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("maxItemSize"), function $CPCollectionView__maxItemSize(self, _cmd) +{ with(self) +{ + return _maxItemSize; +} +}), new objj_method(sel_getUid("mouseUp:"), function $CPCollectionView__mouseUp_(self, _cmd, anEvent) +{ with(self) +{ + if (objj_msgSend(_selectionIndexes, "count") && objj_msgSend(anEvent, "clickCount") == 2 && objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("collectionView:didDoubleClickOnItemAtIndex:"))) + objj_msgSend(_delegate, "collectionView:didDoubleClickOnItemAtIndex:", self, objj_msgSend(_selectionIndexes, "firstIndex")); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPCollectionView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + var location = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil), + row = FLOOR(location.y / (_itemSize.height + _verticalMargin)), + column = FLOOR(location.x / (_itemSize.width + _horizontalMargin)), + index = row * _numberOfColumns + column; + if (index >= 0 && index < _items.length) + objj_msgSend(self, "setSelectionIndexes:", objj_msgSend(CPIndexSet, "indexSetWithIndex:", index)); + else if (_allowsEmptySelection) + objj_msgSend(self, "setSelectionIndexes:", objj_msgSend(CPIndexSet, "indexSet")); +} +}), new objj_method(sel_getUid("mouseDragged:"), function $CPCollectionView__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + if (!objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("collectionView:dragTypesForItemsAtIndexes:"))) + return; + if (!objj_msgSend(_selectionIndexes, "count")) + return; + var dragTypes = objj_msgSend(_delegate, "collectionView:dragTypesForItemsAtIndexes:", self, _selectionIndexes); + objj_msgSend(objj_msgSend(CPPasteboard, "pasteboardWithName:", CPDragPboard), "declareTypes:owner:", dragTypes, self); + var point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + objj_msgSend(_itemForDragging, "setRepresentedObject:", _content[objj_msgSend(_selectionIndexes, "firstIndex")]); + var view = objj_msgSend(_itemForDragging, "view"), + frame = objj_msgSend(view, "frame"); + objj_msgSend(view, "setFrameSize:", _itemSize); + objj_msgSend(view, "setAlphaValue:", 0.7); + objj_msgSend(self, "dragView:at:offset:event:pasteboard:source:slideBack:", view, objj_msgSend(objj_msgSend(_items[objj_msgSend(_selectionIndexes, "firstIndex")], "view"), "frame").origin, CGPointMakeZero(), anEvent, nil, self, YES); +} +}), new objj_method(sel_getUid("pasteboard:provideDataForType:"), function $CPCollectionView__pasteboard_provideDataForType_(self, _cmd, aPasteboard, aType) +{ with(self) +{ + objj_msgSend(aPasteboard, "setData:forType:", objj_msgSend(_delegate, "collectionView:dataForItemsAtIndexes:forType:", self, _selectionIndexes, aType), aType); +} +}), new objj_method(sel_getUid("setVerticalMargin:"), function $CPCollectionView__setVerticalMargin_(self, _cmd, aVerticalMargin) +{ with(self) +{ + if (_verticalMargin == aVerticalMargin) + return; + _verticalMargin = aVerticalMargin; + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("verticalMargin"), function $CPCollectionView__verticalMargin(self, _cmd) +{ with(self) +{ + return _verticalMargin; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPCollectionView__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; +} +}), new objj_method(sel_getUid("delegate"), function $CPCollectionView__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPCollectionViewItem"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_representedObject"), new objj_ivar("_view"), new objj_ivar("_isSelected")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setRepresentedObject:"), function $CPCollectionViewItem__setRepresentedObject_(self, _cmd, anObject) +{ with(self) +{ + if (_representedObject == anObject) + return; + _representedObject = anObject; + objj_msgSend(_view, "setRepresentedObject:", anObject); +} +}), new objj_method(sel_getUid("representedObject"), function $CPCollectionViewItem__representedObject(self, _cmd) +{ with(self) +{ + return _representedObject; +} +}), new objj_method(sel_getUid("setView:"), function $CPCollectionViewItem__setView_(self, _cmd, aView) +{ with(self) +{ + _view = aView; +} +}), new objj_method(sel_getUid("view"), function $CPCollectionViewItem__view(self, _cmd) +{ with(self) +{ + return _view; +} +}), new objj_method(sel_getUid("setSelected:"), function $CPCollectionViewItem__setSelected_(self, _cmd, shouldBeSelected) +{ with(self) +{ + if (_isSelected == shouldBeSelected) + return; + _isSelected = shouldBeSelected; + objj_msgSend(_view, "setSelected:", _isSelected); +} +}), new objj_method(sel_getUid("isSelected"), function $CPCollectionViewItem__isSelected(self, _cmd) +{ with(self) +{ + return _isSelected; +} +}), new objj_method(sel_getUid("collectionView"), function $CPCollectionViewItem__collectionView(self, _cmd) +{ with(self) +{ + return objj_msgSend(_view, "superview"); +} +})]); +} +var CPCollectionViewMinItemSizeKey = "CPCollectionViewMinItemSizeKey", + CPCollectionViewMaxItemSizeKey = "CPCollectionViewMaxItemSizeKey", + CPCollectionViewVerticalMarginKey = "CPCollectionViewVerticalMarginKey"; +{ +var the_class = objj_getClass("CPCollectionView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPCollectionView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPCollectionView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder); + if (self) + { + _items = []; + _content = []; + _cachedItems = []; + _itemSize = CGSizeMakeZero(); + _minItemSize = objj_msgSend(aCoder, "decodeSizeForKey:", CPCollectionViewMinItemSizeKey); + _maxItemSize = objj_msgSend(aCoder, "decodeSizeForKey:", CPCollectionViewMaxItemSizeKey); + _verticalMargin = objj_msgSend(aCoder, "decodeSizeForKey:", CPCollectionViewVerticalMarginKey); + _tileWidth = -1.0; + _selectionIndexes = objj_msgSend(CPIndexSet, "indexSet"); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPCollectionView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeSize:forKey:", _minItemSize, CPCollectionViewMinItemSizeKey); + objj_msgSend(aCoder, "encodeSize:forKey:", _maxItemSize, CPCollectionViewMaxItemSizeKey); + objj_msgSend(aCoder, "encodeSize:forKey:", _verticalMargin, CPCollectionViewVerticalMarginKey); +} +})]); +} +var CPCollectionViewItemViewKey = "CPCollectionViewItemViewKey"; +{ +var the_class = objj_getClass("CPCollectionViewItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPCollectionViewItem\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("copy"), function $CPCollectionViewItem__copy(self, _cmd) +{ with(self) +{ +} +})]); +} +var CPCollectionViewItemViewKey = "CPCollectionViewItemViewKey"; +{ +var the_class = objj_getClass("CPCollectionViewItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPCollectionViewItem\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPCollectionViewItem__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _view = objj_msgSend(aCoder, "decodeObjectForKey:", CPCollectionViewItemViewKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPCollectionViewItem__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _view, CPCollectionViewItemViewKey); +} +})]); +} + +p;9;CPColor.jI;21;Foundation/CPObject.ji;9;CGColor.ji;17;CPCompatibility.ji;9;CPImage.jc;19669; +var _redComponent = 0, + _greenComponent = 1, + _blueComponent = 2, + _alphaCompnent = 3; +var _hueComponent = 0, + _saturationComponent = 1, + _brightnessComponent = 2; +var cachedBlackColor, + cachedRedColor, + cachedGreenColor, + cachedBlueColor, + cachedYellowColor, + cachedGrayColor, + cachedLightGrayColor, + cachedDarkGrayColor, + cachedWhiteColor, + cachedShadowColor, + cachedClearColor; +{var the_class = objj_allocateClassPair(CPObject, "CPColor"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_components"), new objj_ivar("_patternImage"), new objj_ivar("_cssString")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("_initWithCSSString:"), function $CPColor___initWithCSSString_(self, _cmd, aString) +{ with(self) +{ + if(aString.indexOf("rgb") == CPNotFound) + return nil; + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + var startingIndex = aString.indexOf("("); + var parts = aString.substring(startingIndex+1).split(','); + _components = [ + parseInt(parts[0], 10) / 255.0, + parseInt(parts[1], 10) / 255.0, + parseInt(parts[2], 10) / 255.0, + parts[3] ? parseInt(parts[3], 10) / 255.0 : 1.0 + ] + _cssString = aString; + return self; +} +}), new objj_method(sel_getUid("_initWithRGBA:"), function $CPColor___initWithRGBA_(self, _cmd, components) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _components = components; + if (!CPFeatureIsCompatible(CPCSSRGBAFeature) && _components[3] != 1.0 && window.Base64 && window.CRC32) + { + var bytes = [0x89,0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x8,0x3,0x0,0x0,0x0,0x28,0xcb,0x34,0xbb,0x0,0x0,0x3,0x0,0x50,0x4c,0x54,0x45,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x17,0x89,0x99,0x55,0x0,0x0,0x0,0x1,0x74,0x52,0x4e,0x53,0x0,0x40,0xe6,0xd8,0x66,0x0,0x0,0x0,0x10,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0x60,0x0,0x0,0x0,0x0,0xff,0xff,0x3,0x0,0x0,0x2,0x0,0x1,0x24,0x7f,0x24,0xf1,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,0xff]; + var r_off = 41; + var g_off = 42; + var b_off = 43; + var a_off = 821; + var plte_crc_off = 809; + var trns_crc_off = 822; + var plte_type_off = 37; + var trns_type_off = 817; + bytes[r_off] = Math.round(_components[0]*255); + bytes[g_off] = Math.round(_components[1]*255); + bytes[b_off] = Math.round(_components[2]*255); + bytes[a_off] = Math.round(_components[3]*255); + var new_plte_crc = integerToBytes(CRC32.getCRC(bytes, plte_type_off, 4+768), 4); + var new_trns_crc = integerToBytes(CRC32.getCRC(bytes, trns_type_off, 4+1), 4); + for (var i = 0; i < 4; i++) + { + bytes[plte_crc_off+i] = new_plte_crc[i]; + bytes[trns_crc_off+i] = new_trns_crc[i]; + } + var base64image = Base64.encode(bytes); + _cssString = "url(\"data:image/png;base64," + base64image + "\")"; + } + else + { + var hasAlpha = CPFeatureIsCompatible(CPCSSRGBAFeature) && _components[3] != 1.0; + _cssString = (hasAlpha ? "rgba(" : "rgb(") + + parseInt(_components[0] * 255.0) + ", " + + parseInt(_components[1] * 255.0) + ", " + + parseInt(_components[2] * 255.0) + + (hasAlpha ? (", " + _components[3]) : "") + ")"; + } + } + return self; +} +}), new objj_method(sel_getUid("_initWithPatternImage:"), function $CPColor___initWithPatternImage_(self, _cmd, anImage) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _patternImage = anImage; + _cssString = "url(\"" + objj_msgSend(_patternImage, "filename") + "\")"; + } + return self; +} +}), new objj_method(sel_getUid("patternImage"), function $CPColor__patternImage(self, _cmd) +{ with(self) +{ + return _patternImage; +} +}), new objj_method(sel_getUid("alphaComponent"), function $CPColor__alphaComponent(self, _cmd) +{ with(self) +{ + return _components[3]; +} +}), new objj_method(sel_getUid("blueComponent"), function $CPColor__blueComponent(self, _cmd) +{ with(self) +{ + return _components[2]; +} +}), new objj_method(sel_getUid("greenComponent"), function $CPColor__greenComponent(self, _cmd) +{ with(self) +{ + return _components[1]; +} +}), new objj_method(sel_getUid("redComponent"), function $CPColor__redComponent(self, _cmd) +{ with(self) +{ + return _components[0]; +} +}), new objj_method(sel_getUid("components"), function $CPColor__components(self, _cmd) +{ with(self) +{ + return _components; +} +}), new objj_method(sel_getUid("colorWithAlphaComponent:"), function $CPColor__colorWithAlphaComponent_(self, _cmd, anAlphaComponent) +{ with(self) +{ + var components = _components.slice(); + components[components.length - 1] = anAlphaComponent; + return objj_msgSend(objj_msgSend(objj_msgSend(self, "class"), "alloc"), "_initWithRGBA:", components); +} +}), new objj_method(sel_getUid("hsbComponents"), function $CPColor__hsbComponents(self, _cmd) +{ with(self) +{ + var red = ROUND(_components[_redComponent] * 255.0), + green = ROUND(_components[_greenComponent] * 255.0), + blue = ROUND(_components[_blueComponent] * 255.0); + var max = MAX(red, green, blue), + min = MIN(red, green, blue), + delta = max - min; + var brightness = max / 255.0, + saturation = (max != 0) ? delta / max : 0; + var hue; + if(saturation == 0) + hue = 0; + else + { + var rr = (max - red) / delta; + var gr = (max - green) / delta; + var br = (max - blue) / delta; + if (red == max) + hue = br - gr; + else if (green == max) + hue = 2 + rr - br; + else + hue = 4 + gr - rr; + hue /= 6; + if (hue < 0) + hue++; + } + return [ + ROUND(hue * 360.0), + ROUND(saturation * 100.0), + ROUND(brightness * 100.0) + ]; +} +}), new objj_method(sel_getUid("cssString"), function $CPColor__cssString(self, _cmd) +{ with(self) +{ + return _cssString; +} +}), new objj_method(sel_getUid("hexString"), function $CPColor__hexString(self, _cmd) +{ with(self) +{ + return rgbToHex(objj_msgSend(self, "redComponent"), objj_msgSend(self, "greenComponent"), objj_msgSend(self, "blueComponent")) +} +}), new objj_method(sel_getUid("isEqual:"), function $CPColor__isEqual_(self, _cmd, aColor) +{ with(self) +{ + if (!aColor) + return NO; + if (aColor === self) + return YES; + return objj_msgSend(aColor, "isKindOfClass:", CPColor) && objj_msgSend(aColor, "cssString") === objj_msgSend(self, "cssString"); +} +}), new objj_method(sel_getUid("description"), function $CPColor__description(self, _cmd) +{ with(self) +{ + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "description")+" "+objj_msgSend(self, "cssString"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("colorWithRed:green:blue:alpha:"), function $CPColor__colorWithRed_green_blue_alpha_(self, _cmd, red, green, blue, alpha) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [red, green, blue, alpha]); +} +}), new objj_method(sel_getUid("colorWithCalibratedRed:green:blue:alpha:"), function $CPColor__colorWithCalibratedRed_green_blue_alpha_(self, _cmd, red, green, blue, alpha) +{ with(self) +{ + return objj_msgSend(self, "colorWithRed:green:blue:alpha:", red, green, blue, alpha); +} +}), new objj_method(sel_getUid("colorWithWhite:alpha:"), function $CPColor__colorWithWhite_alpha_(self, _cmd, white, alpha) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [white, white, white, alpha]); +} +}), new objj_method(sel_getUid("colorWithCalibratedWhite:alpha:"), function $CPColor__colorWithCalibratedWhite_alpha_(self, _cmd, white, alpha) +{ with(self) +{ + return objj_msgSend(self, "colorWithWhite:alpha:", white, alpha); +} +}), new objj_method(sel_getUid("colorWithHue:saturation:brightness:"), function $CPColor__colorWithHue_saturation_brightness_(self, _cmd, hue, saturation, brightness) +{ with(self) +{ + return objj_msgSend(self, "colorWithHue:saturation:brightness:alpha:", hue, saturation, brightness, 1.0); +} +}), new objj_method(sel_getUid("colorWithHue:saturation:brightness:alpha:"), function $CPColor__colorWithHue_saturation_brightness_alpha_(self, _cmd, hue, saturation, brightness, alpha) +{ with(self) +{ + if(saturation === 0.0) + return objj_msgSend(CPColor, "colorWithCalibratedWhite:alpha:", brightness / 100.0, alpha); + var f = hue % 60, + p = (brightness * (100 - saturation)) / 10000, + q = (brightness * (6000 - saturation * f)) / 600000, + t = (brightness * (6000 - saturation * (60 -f))) / 600000, + b = brightness / 100.0; + switch(FLOOR(hue / 60)) + { + case 0: return objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", b, t, p, alpha); + case 1: return objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", q, b, p, alpha); + case 2: return objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", p, b, t, alpha); + case 3: return objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", p, q, b, alpha); + case 4: return objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", t, p, b, alpha); + case 5: return objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", b, p, q, alpha); + } +} +}), new objj_method(sel_getUid("colorWithHexString:"), function $CPColor__colorWithHexString_(self, _cmd, hex) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", hexToRGB(hex)); +} +}), new objj_method(sel_getUid("blackColor"), function $CPColor__blackColor(self, _cmd) +{ with(self) +{ + if (!cachedBlackColor) + cachedBlackColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.0, 0.0, 0.0, 1.0]); + return cachedBlackColor; +} +}), new objj_method(sel_getUid("blueColor"), function $CPColor__blueColor(self, _cmd) +{ with(self) +{ + if (!cachedBlueColor) + cachedBlueColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.0, 0.0, 1.0, 1.0]); + return cachedBlueColor; +} +}), new objj_method(sel_getUid("darkGrayColor"), function $CPColor__darkGrayColor(self, _cmd) +{ with(self) +{ + if (!cachedDarkGrayColor) + cachedDarkGrayColor = objj_msgSend(CPColor, "colorWithCalibratedWhite:alpha:", 1.0 / 3.0, 1.0); + return cachedDarkGrayColor; +} +}), new objj_method(sel_getUid("grayColor"), function $CPColor__grayColor(self, _cmd) +{ with(self) +{ + if (!cachedGrayColor) + cachedGrayColor = objj_msgSend(CPColor, "colorWithCalibratedWhite:alpha:", 0.5, 1.0); + return cachedGrayColor; +} +}), new objj_method(sel_getUid("greenColor"), function $CPColor__greenColor(self, _cmd) +{ with(self) +{ + if (!cachedGreenColor) + cachedGreenColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.0, 1.0, 0.0, 1.0]); + return cachedGreenColor; +} +}), new objj_method(sel_getUid("lightGrayColor"), function $CPColor__lightGrayColor(self, _cmd) +{ with(self) +{ + if (!cachedLightGrayColor) + cachedLightGrayColor = objj_msgSend(CPColor, "colorWithCalibratedWhite:alpha:", 2.0 / 3.0, 1.0); + return cachedLightGrayColor; +} +}), new objj_method(sel_getUid("redColor"), function $CPColor__redColor(self, _cmd) +{ with(self) +{ + if (!cachedRedColor) + cachedRedColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [1.0, 0.0, 0.0, 1.0]); + return cachedRedColor; +} +}), new objj_method(sel_getUid("whiteColor"), function $CPColor__whiteColor(self, _cmd) +{ with(self) +{ + if (!cachedWhiteColor) + cachedWhiteColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [1.0, 1.0, 1.0, 1.0]); + return cachedWhiteColor; +} +}), new objj_method(sel_getUid("yellowColor"), function $CPColor__yellowColor(self, _cmd) +{ with(self) +{ + if (!cachedYellowColor) + cachedYellowColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [1.0, 1.0, 0.0, 1.0]); + return cachedYellowColor; +} +}), new objj_method(sel_getUid("shadowColor"), function $CPColor__shadowColor(self, _cmd) +{ with(self) +{ + if (!cachedShadowColor) + cachedShadowColor = objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.0, 0.0, 0.0, 1.0 / 3.0]); + return cachedShadowColor; +} +}), new objj_method(sel_getUid("clearColor"), function $CPColor__clearColor(self, _cmd) +{ with(self) +{ + if (!cachedClearColor) + cachedClearColor = objj_msgSend(self, "colorWithCalibratedWhite:alpha:", 0.0, 0.0); + return cachedClearColor; +} +}), new objj_method(sel_getUid("colorWithPatternImage:"), function $CPColor__colorWithPatternImage_(self, _cmd, anImage) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithPatternImage:", anImage); +} +}), new objj_method(sel_getUid("colorWithCSSString:"), function $CPColor__colorWithCSSString_(self, _cmd, aString) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithCSSString:", aString); +} +})]); +} +{ +var the_class = objj_getClass("CPColor") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPColor\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("set"), function $CPColor__set(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "setFill"); + objj_msgSend(self, "setStroke"); +} +}), new objj_method(sel_getUid("setFill"), function $CPColor__setFill(self, _cmd) +{ with(self) +{ + var ctx = objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"); + CGContextSetFillColor(ctx, self); +} +}), new objj_method(sel_getUid("setStroke"), function $CPColor__setStroke(self, _cmd) +{ with(self) +{ + var ctx = objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"); + CGContextSetStrokeColor(ctx, self); +} +})]); +} +var CPColorComponentsKey = "CPColorComponentsKey", + CPColorPatternImageKey = "CPColorPatternImageKey"; +{ +var the_class = objj_getClass("CPColor") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPColor\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPColor__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (objj_msgSend(aCoder, "containsValueForKey:", CPColorPatternImageKey)) + return objj_msgSend(self, "_initWithPatternImage:", objj_msgSend(aCoder, "decodeObjectForKey:", CPColorPatternImageKey)); + return objj_msgSend(self, "_initWithRGBA:", objj_msgSend(aCoder, "decodeObjectForKey:", CPColorComponentsKey)); +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPColor__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (_patternImage) + objj_msgSend(aCoder, "encodeObject:forKey:", _patternImage, CPColorPatternImageKey); + else + objj_msgSend(aCoder, "encodeObject:forKey:", _components, CPColorComponentsKey); +} +})]); +} +var hexCharacters = "0123456789ABCDEF"; +hexToRGB= function(hex) +{ + if ( hex.length == 3 ) + hex = hex.charAt(0) + hex.charAt(0) + hex.charAt(1) + hex.charAt(1) + hex.charAt(2) + hex.charAt(2); + if(hex.length != 6) + return null; + hex = hex.toUpperCase(); + for(var i=0; i= 0; i--) { + bytes[i] = integer & 255; + integer = integer >> 8 + } + return bytes; +} +rgbToHex= function(r,g,b) { + return byteToHex(r) + byteToHex(g) + byteToHex(b); +} +byteToHex= function(n) { + if (!n || isNaN(n)) return "00"; + n = ROUND(MIN(255,MAX(0,256*n))); + return hexCharacters.charAt((n - n % 16) / 16) + + hexCharacters.charAt(n % 16); +} + +p;14;CPColorPanel.ji;10;CPButton.ji;10;CPCookie.ji;9;CPPanel.ji;8;CPView.jc;21833; +CPColorPanelColorDidChangeNotification = "CPColorPanelColorDidChangeNotification"; +var PREVIEW_HEIGHT = 20.0, + TOOLBAR_HEIGHT = 32.0, + SWATCH_HEIGHT = 14.0, + ICON_WIDTH = 32.0, + ICON_PADDING = 12.0; +var SharedColorPanel = nil, + ColorPickerClasses = []; +CPWheelColorPickerMode = 1; +CPSliderColorPickerMode = 2; +CPColorPickerViewWidth = 265, +CPColorPickerViewHeight = 370; +{var the_class = objj_allocateClassPair(CPPanel, "CPColorPanel"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_toolbar"), new objj_ivar("_swatchView"), new objj_ivar("_previewView"), new objj_ivar("_opacitySlider"), new objj_ivar("_colorPickers"), new objj_ivar("_currentView"), new objj_ivar("_activePicker"), new objj_ivar("_color"), new objj_ivar("_target"), new objj_ivar("_action"), new objj_ivar("_mode")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPColorPanel__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPPanel") }, "initWithContentRect:styleMask:", CGRectMake(500.0, 50.0, 219.0, 370.0), (CPTitledWindowMask | CPClosableWindowMask | CPResizableWindowMask)); + if (self) + { + objj_msgSend(objj_msgSend(self, "contentView"), "setBackgroundColor:", objj_msgSend(CPColor, "colorWithWhite:alpha:", 0.95, 1.0)); + objj_msgSend(self, "setTitle:", "Color Panel"); + objj_msgSend(self, "setLevel:", CPFloatingWindowLevel); + objj_msgSend(self, "setFloatingPanel:", YES); + objj_msgSend(self, "setBecomesKeyOnlyIfNeeded:", YES); + objj_msgSend(self, "setMinSize:", CGSizeMake(219.0, 342.0)); + objj_msgSend(self, "setMaxSize:", CGSizeMake(323.0, 537.0)); + } + return self; +} +}), new objj_method(sel_getUid("setColor:"), function $CPColorPanel__setColor_(self, _cmd, aColor) +{ with(self) +{ + _color = aColor; + objj_msgSend(_previewView, "setBackgroundColor:", _color); + objj_msgSend(CPApp, "sendAction:to:from:", sel_getUid("changeColor:"), nil, self); + if (_target && _action) + objj_msgSend(CPApp, "sendAction:to:from:", _action, _target, self); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPColorPanelColorDidChangeNotification, self); + objj_msgSend(_activePicker, "setColor:", _color); + objj_msgSend(_opacitySlider, "setFloatValue:", objj_msgSend(_color, "alphaComponent")); +} +}), new objj_method(sel_getUid("setColor:updatePicker:"), function $CPColorPanel__setColor_updatePicker_(self, _cmd, aColor, bool) +{ with(self) +{ + objj_msgSend(self, "setColor:", aColor); + if (bool) + objj_msgSend(_activePicker, "setColor:", _color); +} +}), new objj_method(sel_getUid("color"), function $CPColorPanel__color(self, _cmd) +{ with(self) +{ + return _color; +} +}), new objj_method(sel_getUid("opacity"), function $CPColorPanel__opacity(self, _cmd) +{ with(self) +{ + return objj_msgSend(_opacitySlider, "floatValue"); +} +}), new objj_method(sel_getUid("setTarget:"), function $CPColorPanel__setTarget_(self, _cmd, aTarget) +{ with(self) +{ + _target = aTarget; +} +}), new objj_method(sel_getUid("target"), function $CPColorPanel__target(self, _cmd) +{ with(self) +{ + return _target; +} +}), new objj_method(sel_getUid("setAction:"), function $CPColorPanel__setAction_(self, _cmd, anAction) +{ with(self) +{ + _action = anAction; +} +}), new objj_method(sel_getUid("action"), function $CPColorPanel__action(self, _cmd) +{ with(self) +{ + return _action; +} +}), new objj_method(sel_getUid("setMode:"), function $CPColorPanel__setMode_(self, _cmd, mode) +{ with(self) +{ + _mode = mode; +} +}), new objj_method(sel_getUid("_setPicker:"), function $CPColorPanel___setPicker_(self, _cmd, sender) +{ with(self) +{ + var picker = _colorPickers[objj_msgSend(sender, "tag")], + view = objj_msgSend(picker, "provideNewView:", NO); + if (!view) + view = objj_msgSend(picker, "provideNewView:", YES); + if (view == _currentView) + return; + if (_currentView) + objj_msgSend(view, "setFrame:", objj_msgSend(_currentView, "frame")); + else + { + var height = (TOOLBAR_HEIGHT+10+PREVIEW_HEIGHT+5+SWATCH_HEIGHT+32), + bounds = objj_msgSend(objj_msgSend(self, "contentView"), "bounds"); + objj_msgSend(view, "setFrameSize:", CPSizeMake(bounds.size.width - 10, bounds.size.height - height)); + objj_msgSend(view, "setFrameOrigin:", CPPointMake(5, height)); + } + objj_msgSend(_currentView, "removeFromSuperview"); + objj_msgSend(objj_msgSend(self, "contentView"), "addSubview:", view); + _currentView = view; + _activePicker = picker; + objj_msgSend(picker, "setColor:", objj_msgSend(self, "color")); +} +}), new objj_method(sel_getUid("mode"), function $CPColorPanel__mode(self, _cmd) +{ with(self) +{ + return _mode; +} +}), new objj_method(sel_getUid("orderFront:"), function $CPColorPanel__orderFront_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "_loadContentsIfNecessary"); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPPanel") }, "orderFront:", aSender); +} +}), new objj_method(sel_getUid("_loadContentsIfNecessary"), function $CPColorPanel___loadContentsIfNecessary(self, _cmd) +{ with(self) +{ + if (_toolbar) + return; + if (!_color) + _color = objj_msgSend(CPColor, "whiteColor"); + _colorPickers = []; + var count = objj_msgSend(ColorPickerClasses, "count"); + for (var i=0; i objj_msgSend(self, "bounds").size.width - 1 || point.x < 1) + return NO; + objj_msgSend(_colorPanel, "setColor:updatePicker:", objj_msgSend(self, "colorAtIndex:", FLOOR(point.x / 13)), YES); +} +}), new objj_method(sel_getUid("mouseDragged:"), function $_CPColorPanelSwatches__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + var point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + if(point.x > objj_msgSend(self, "bounds").size.width - 1 || point.x < 1) + return NO; + objj_msgSend(objj_msgSend(CPPasteboard, "pasteboardWithName:", CPDragPboard), "declareTypes:owner:", objj_msgSend(CPArray, "arrayWithObject:", CPColorDragType), self); + var swatch = _swatches[FLOOR(point.x / 13)]; + _dragColor = objj_msgSend(objj_msgSend(swatch, "subviews")[0], "backgroundColor"); + var bounds = CPRectCreateCopy(objj_msgSend(swatch, "bounds")); + var dragView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", bounds); + dragFillView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectInset(bounds, 1.0, 1.0)); + objj_msgSend(dragView, "setBackgroundColor:", objj_msgSend(CPColor, "blackColor")); + objj_msgSend(dragFillView, "setBackgroundColor:", _dragColor); + objj_msgSend(dragView, "addSubview:", dragFillView); + objj_msgSend(self, "dragView:at:offset:event:pasteboard:source:slideBack:", dragView, CPPointMake(point.x - bounds.size.width / 2.0, point.y - bounds.size.height / 2.0), CPPointMake(0.0, 0.0), anEvent, nil, self, YES); +} +}), new objj_method(sel_getUid("pasteboard:provideDataForType:"), function $_CPColorPanelSwatches__pasteboard_provideDataForType_(self, _cmd, aPasteboard, aType) +{ with(self) +{ + if(aType == CPColorDragType) + objj_msgSend(aPasteboard, "setData:forType:", _dragColor, aType); +} +}), new objj_method(sel_getUid("performDragOperation:"), function $_CPColorPanelSwatches__performDragOperation_(self, _cmd, aSender) +{ with(self) +{ + var location = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(aSender, "draggingLocation"), nil), + pasteboard = objj_msgSend(aSender, "draggingPasteboard"), + swatch = nil; + if(!objj_msgSend(pasteboard, "availableTypeFromArray:", [CPColorDragType]) || location.x > objj_msgSend(self, "bounds").size.width - 1 || location.x < 1) + return NO; + objj_msgSend(self, "setColor:atIndex:", objj_msgSend(pasteboard, "dataForType:", CPColorDragType), FLOOR(location.x / 13)); +} +})]); +} +{var the_class = objj_allocateClassPair(CPView, "_CPColorPanelPreview"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_colorPanel")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $_CPColorPanelPreview__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + objj_msgSend(self, "registerForDraggedTypes:", objj_msgSend(CPArray, "arrayWithObjects:", CPColorDragType)); + return self; +} +}), new objj_method(sel_getUid("setColorPanel:"), function $_CPColorPanelPreview__setColorPanel_(self, _cmd, aPanel) +{ with(self) +{ + _colorPanel = aPanel; +} +}), new objj_method(sel_getUid("colorPanel"), function $_CPColorPanelPreview__colorPanel(self, _cmd) +{ with(self) +{ + return _colorPanel; +} +}), new objj_method(sel_getUid("performDragOperation:"), function $_CPColorPanelPreview__performDragOperation_(self, _cmd, aSender) +{ with(self) +{ + var pasteboard = objj_msgSend(aSender, "draggingPasteboard"); + if(!objj_msgSend(pasteboard, "availableTypeFromArray:", [CPColorDragType])) + return NO; + var color = objj_msgSend(pasteboard, "dataForType:", CPColorDragType); + objj_msgSend(_colorPanel, "setColor:updatePicker:", color, YES); +} +}), new objj_method(sel_getUid("isOpaque"), function $_CPColorPanelPreview__isOpaque(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("mouseDragged:"), function $_CPColorPanelPreview__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + var point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + objj_msgSend(objj_msgSend(CPPasteboard, "pasteboardWithName:", CPDragPboard), "declareTypes:owner:", objj_msgSend(CPArray, "arrayWithObject:", CPColorDragType), self); + var bounds = CPRectMake(0, 0, 15, 15); + var dragView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", bounds); + dragFillView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectInset(bounds, 1.0, 1.0)); + objj_msgSend(dragView, "setBackgroundColor:", objj_msgSend(CPColor, "blackColor")); + objj_msgSend(dragFillView, "setBackgroundColor:", objj_msgSend(self, "backgroundColor")); + objj_msgSend(dragView, "addSubview:", dragFillView); + objj_msgSend(self, "dragView:at:offset:event:pasteboard:source:slideBack:", dragView, CPPointMake(point.x - bounds.size.width / 2.0, point.y - bounds.size.height / 2.0), CPPointMake(0.0, 0.0), anEvent, nil, self, YES); +} +}), new objj_method(sel_getUid("pasteboard:provideDataForType:"), function $_CPColorPanelPreview__pasteboard_provideDataForType_(self, _cmd, aPasteboard, aType) +{ with(self) +{ + if(aType == CPColorDragType) + objj_msgSend(aPasteboard, "setData:forType:", objj_msgSend(self, "backgroundColor"), aType); +} +})]); +} +i;15;CPColorPicker.ji;21;CPSliderColorPicker.jc;160; +objj_msgSend(CPColorPanel, "provideColorPickerClass:", CPColorWheelColorPicker); +objj_msgSend(CPColorPanel, "provideColorPickerClass:", CPSliderColorPicker); + +p;15;CPColorPicker.jI;21;Foundation/CPObject.ji;14;CPColorPanel.jc;13205; +{var the_class = objj_allocateClassPair(CPObject, "CPColorPicker"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_panel"), new objj_ivar("_mask")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithPickerMask:colorPanel:"), function $CPColorPicker__initWithPickerMask_colorPanel_(self, _cmd, aMask, aPanel) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + _panel = aPanel; + _mask = aMask; + return self; +} +}), new objj_method(sel_getUid("colorPanel"), function $CPColorPicker__colorPanel(self, _cmd) +{ with(self) +{ + return _panel; +} +}), new objj_method(sel_getUid("provideNewButtonImage"), function $CPColorPicker__provideNewButtonImage(self, _cmd) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("setMode:"), function $CPColorPicker__setMode_(self, _cmd, mode) +{ with(self) +{ + return; +} +}), new objj_method(sel_getUid("setColor:"), function $CPColorPicker__setColor_(self, _cmd, aColor) +{ with(self) +{ + return; +} +})]); +} +{var the_class = objj_allocateClassPair(CPColorPicker, "CPColorWheelColorPicker"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_pickerView"), new objj_ivar("_brightnessSlider"), new objj_ivar("_hueSaturationView"), new objj_ivar("_cachedColor")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithPickerMask:colorPanel:"), function $CPColorWheelColorPicker__initWithPickerMask_colorPanel_(self, _cmd, mask, owningColorPanel) +{ with(self) +{ + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPColorPicker") }, "initWithPickerMask:colorPanel:", mask, owningColorPanel); +} +}), new objj_method(sel_getUid("initView"), function $CPColorWheelColorPicker__initView(self, _cmd) +{ with(self) +{ + aFrame = CPRectMake(0, 0, CPColorPickerViewWidth, CPColorPickerViewHeight); + _pickerView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", aFrame); + objj_msgSend(_pickerView, "setAutoresizingMask:", CPViewWidthSizable|CPViewHeightSizable); + _brightnessSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CGRectMake(0, (aFrame.size.height - 34), aFrame.size.width, 15)); + objj_msgSend(_brightnessSlider, "setValue:forThemeAttribute:", 15.0, "track-width"); + objj_msgSend(_brightnessSlider, "setValue:forThemeAttribute:", objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPColorPicker, "class")), "pathForResource:", "brightness_bar.png"))), "track-color"); + objj_msgSend(_brightnessSlider, "setMinValue:", 0.0); + objj_msgSend(_brightnessSlider, "setMaxValue:", 100.0); + objj_msgSend(_brightnessSlider, "setFloatValue:", 100.0); + objj_msgSend(_brightnessSlider, "setTarget:", self); + objj_msgSend(_brightnessSlider, "setAction:", sel_getUid("brightnessSliderDidChange:")); + objj_msgSend(_brightnessSlider, "setAutoresizingMask:", CPViewWidthSizable | CPViewMinYMargin); + _hueSaturationView = objj_msgSend(objj_msgSend(__CPColorWheel, "alloc"), "initWithFrame:", CPRectMake(0, 0, aFrame.size.width, aFrame.size.height - 38)); + objj_msgSend(_hueSaturationView, "setDelegate:", self); + objj_msgSend(_hueSaturationView, "setAutoresizingMask:", (CPViewWidthSizable | CPViewHeightSizable)); + objj_msgSend(_pickerView, "addSubview:", _hueSaturationView); + objj_msgSend(_pickerView, "addSubview:", _brightnessSlider); +} +}), new objj_method(sel_getUid("brightnessSliderDidChange:"), function $CPColorWheelColorPicker__brightnessSliderDidChange_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "updateColor"); +} +}), new objj_method(sel_getUid("colorWheelDidChange:"), function $CPColorWheelColorPicker__colorWheelDidChange_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "updateColor"); +} +}), new objj_method(sel_getUid("updateColor"), function $CPColorWheelColorPicker__updateColor(self, _cmd) +{ with(self) +{ + var hue = objj_msgSend(_hueSaturationView, "angle"), + saturation = objj_msgSend(_hueSaturationView, "distance"), + brightness = objj_msgSend(_brightnessSlider, "floatValue"); + objj_msgSend(_hueSaturationView, "setWheelBrightness:", brightness / 100.0); + objj_msgSend(_brightnessSlider, "setBackgroundColor:", objj_msgSend(CPColor, "colorWithHue:saturation:brightness:", hue, saturation, 100)); + var colorPanel = objj_msgSend(self, "colorPanel"), + opacity = objj_msgSend(colorPanel, "opacity"); + _cachedColor = objj_msgSend(CPColor, "colorWithHue:saturation:brightness:alpha:", hue, saturation, brightness, opacity); + objj_msgSend(objj_msgSend(self, "colorPanel"), "setColor:", _cachedColor); +} +}), new objj_method(sel_getUid("supportsMode:"), function $CPColorWheelColorPicker__supportsMode_(self, _cmd, mode) +{ with(self) +{ + return (mode == CPWheelColorPickerMode) ? YES : NO; +} +}), new objj_method(sel_getUid("currentMode"), function $CPColorWheelColorPicker__currentMode(self, _cmd) +{ with(self) +{ + return CPWheelColorPickerMode; +} +}), new objj_method(sel_getUid("provideNewView:"), function $CPColorWheelColorPicker__provideNewView_(self, _cmd, initialRequest) +{ with(self) +{ + if (initialRequest) + objj_msgSend(self, "initView"); + return _pickerView; +} +}), new objj_method(sel_getUid("setColor:"), function $CPColorWheelColorPicker__setColor_(self, _cmd, newColor) +{ with(self) +{ + if (objj_msgSend(newColor, "isEqual:", _cachedColor)) + return; + var hsb = objj_msgSend(newColor, "hsbComponents"); + objj_msgSend(_hueSaturationView, "setPositionToColor:", newColor); + objj_msgSend(_brightnessSlider, "setFloatValue:", hsb[2]); + objj_msgSend(_hueSaturationView, "setWheelBrightness:", hsb[2] / 100.0); + objj_msgSend(_brightnessSlider, "setBackgroundColor:", objj_msgSend(CPColor, "colorWithHue:saturation:brightness:", hsb[0], hsb[1], 100)); +} +}), new objj_method(sel_getUid("provideNewButtonImage"), function $CPColorWheelColorPicker__provideNewButtonImage(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", CPColorPicker), "pathForResource:", "wheel_button.png"), CGSizeMake(32, 32)); +} +}), new objj_method(sel_getUid("provideNewAlternateButtonImage"), function $CPColorWheelColorPicker__provideNewAlternateButtonImage(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", CPColorPicker), "pathForResource:", "wheel_button_h.png"), CGSizeMake(32, 32)); +} +})]); +} +{var the_class = objj_allocateClassPair(CPView, "__CPColorWheel"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_wheelImage"), new objj_ivar("_blackWheelImage"), new objj_ivar("_crosshair"), new objj_ivar("_delegate"), new objj_ivar("_angle"), new objj_ivar("_distance"), new objj_ivar("_radius")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $__CPColorWheel__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + var path = objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", CPColorPicker), "pathForResource:", "wheel.png"); + _wheelImage = new Image(); + _wheelImage.src = path; + _wheelImage.style.position = "absolute"; + path = objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", CPColorPicker), "pathForResource:", "wheel_black.png"); + _blackWheelImage = new Image(); + _blackWheelImage.src = path; + _blackWheelImage.style.opacity = "0"; + _blackWheelImage.style.filter = "alpha(opacity=0)" + _blackWheelImage.style.position = "absolute"; + _DOMElement.appendChild(_wheelImage); + _DOMElement.appendChild(_blackWheelImage); + objj_msgSend(self, "setWheelSize:", aFrame.size); + _crosshair = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(_radius - 2, _radius - 2, 4, 4)); + objj_msgSend(_crosshair, "setBackgroundColor:", objj_msgSend(CPColor, "blackColor")); + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectInset(objj_msgSend(_crosshair, "bounds"), 1.0, 1.0)); + objj_msgSend(view, "setBackgroundColor:", objj_msgSend(CPColor, "whiteColor")); + objj_msgSend(_crosshair, "addSubview:", view); + objj_msgSend(self, "addSubview:", _crosshair); + return self; +} +}), new objj_method(sel_getUid("setWheelBrightness:"), function $__CPColorWheel__setWheelBrightness_(self, _cmd, brightness) +{ with(self) +{ + _blackWheelImage.style.opacity = 1.0 - brightness; + _blackWheelImage.style.filter = "alpha(opacity=" + (1.0 - brightness)*100 + ")" +} +}), new objj_method(sel_getUid("setFrameSize:"), function $__CPColorWheel__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setFrameSize:", aSize); + objj_msgSend(self, "setWheelSize:", aSize); +} +}), new objj_method(sel_getUid("setWheelSize:"), function $__CPColorWheel__setWheelSize_(self, _cmd, aSize) +{ with(self) +{ + var min = MIN(aSize.width, aSize.height); + _blackWheelImage.style.width = min; + _blackWheelImage.style.height = min; + _blackWheelImage.width = min; + _blackWheelImage.height = min; + _blackWheelImage.style.top = (aSize.height - min) / 2.0 + "px"; + _blackWheelImage.style.left = (aSize.width - min) / 2.0 + "px"; + _wheelImage.style.width = min; + _wheelImage.style.height = min; + _wheelImage.width = min; + _wheelImage.height = min; + _wheelImage.style.top = (aSize.height - min) / 2.0 + "px"; + _wheelImage.style.left = (aSize.width - min) / 2.0 + "px"; + _radius = min / 2.0; + objj_msgSend(self, "setAngle:distance:", objj_msgSend(self, "degreesToRadians:", _angle), (_distance / 100.0) * _radius); +} +}), new objj_method(sel_getUid("setDelegate:"), function $__CPColorWheel__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; +} +}), new objj_method(sel_getUid("delegate"), function $__CPColorWheel__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("angle"), function $__CPColorWheel__angle(self, _cmd) +{ with(self) +{ + return _angle; +} +}), new objj_method(sel_getUid("distance"), function $__CPColorWheel__distance(self, _cmd) +{ with(self) +{ + return _distance; +} +}), new objj_method(sel_getUid("mouseDown:"), function $__CPColorWheel__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "reposition:", anEvent); +} +}), new objj_method(sel_getUid("mouseDragged:"), function $__CPColorWheel__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "reposition:", anEvent); +} +}), new objj_method(sel_getUid("reposition:"), function $__CPColorWheel__reposition_(self, _cmd, anEvent) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + location = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + var midX = CGRectGetMidX(bounds); + var midY = CGRectGetMidY(bounds); + var distance = MIN(SQRT((location.x - midX)*(location.x - midX) + (location.y - midY)*(location.y - midY)), _radius); + var angle = ATAN2(location.y - midY, location.x - midX); + objj_msgSend(self, "setAngle:distance:", angle, distance); + objj_msgSend(_delegate, "colorWheelDidChange:", self); +} +}), new objj_method(sel_getUid("setAngle:distance:"), function $__CPColorWheel__setAngle_distance_(self, _cmd, angle, distance) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"); + var midX = CGRectGetMidX(bounds); + var midY = CGRectGetMidY(bounds); + _angle = objj_msgSend(self, "radiansToDegrees:", angle); + _distance = (distance / _radius) * 100.0; + objj_msgSend(_crosshair, "setFrameOrigin:", CPPointMake(COS(angle) * distance + midX - 2.0, SIN(angle) * distance + midY - 2.0)); +} +}), new objj_method(sel_getUid("setPositionToColor:"), function $__CPColorWheel__setPositionToColor_(self, _cmd, aColor) +{ with(self) +{ + var hsb = objj_msgSend(aColor, "hsbComponents"), + bounds = objj_msgSend(self, "bounds"); + var angle = objj_msgSend(self, "degreesToRadians:", hsb[0]), + distance = (hsb[1] / 100.0) * _radius; + objj_msgSend(self, "setAngle:distance:", angle, distance); +} +}), new objj_method(sel_getUid("radiansToDegrees:"), function $__CPColorWheel__radiansToDegrees_(self, _cmd, radians) +{ with(self) +{ + return ((-radians / PI) * 180 + 360) % 360; +} +}), new objj_method(sel_getUid("degreesToRadians:"), function $__CPColorWheel__degreesToRadians_(self, _cmd, degrees) +{ with(self) +{ + return -(((degrees - 360) / 180) * PI); +} +})]); +} + +p;13;CPColorWell.jI;21;Foundation/CPString.ji;8;CPView.ji;9;CPColor.ji;14;CPColorPanel.jc;7936; +var _CPColorWellDidBecomeExclusiveNotification = "_CPColorWellDidBecomeExclusiveNotification"; +{var the_class = objj_allocateClassPair(CPControl, "CPColorWell"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_active"), new objj_ivar("_bordered"), new objj_ivar("_color"), new objj_ivar("_wellView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPColorWell__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + _active = NO; + _bordered = YES; + _color = objj_msgSend(CPColor, "whiteColor"); + objj_msgSend(self, "drawBezelWithHighlight:", NO); + objj_msgSend(self, "drawWellInside:", CGRectInset(objj_msgSend(self, "bounds"), 3.0, 3.0)); + objj_msgSend(self, "_registerForNotifications"); + } + return self; +} +}), new objj_method(sel_getUid("_registerForNotifications"), function $CPColorWell___registerForNotifications(self, _cmd) +{ with(self) +{ + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("colorWellDidBecomeExclusive:"), _CPColorWellDidBecomeExclusiveNotification, nil); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("colorPanelWillClose:"), CPWindowWillCloseNotification, objj_msgSend(CPColorPanel, "sharedColorPanel")); +} +}), new objj_method(sel_getUid("isBordered"), function $CPColorWell__isBordered(self, _cmd) +{ with(self) +{ + return _bordered; +} +}), new objj_method(sel_getUid("setBordered:"), function $CPColorWell__setBordered_(self, _cmd, bordered) +{ with(self) +{ + if (_bordered == bordered) + return; + _bordered = bordered; + objj_msgSend(self, "drawWellInside:", CGRectInset(objj_msgSend(self, "bounds"), 3.0, 3.0)); +} +}), new objj_method(sel_getUid("color"), function $CPColorWell__color(self, _cmd) +{ with(self) +{ + return _color; +} +}), new objj_method(sel_getUid("setColor:"), function $CPColorWell__setColor_(self, _cmd, aColor) +{ with(self) +{ + if (_color == aColor) + return; + _color = aColor; + objj_msgSend(self, "drawWellInside:", CGRectInset(objj_msgSend(self, "bounds"), 3.0, 3.0)); +} +}), new objj_method(sel_getUid("takeColorFrom:"), function $CPColorWell__takeColorFrom_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "setColor:", objj_msgSend(aSender, "color")); +} +}), new objj_method(sel_getUid("activate:"), function $CPColorWell__activate_(self, _cmd, shouldBeExclusive) +{ with(self) +{ + if (shouldBeExclusive) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", _CPColorWellDidBecomeExclusiveNotification, self); + if (objj_msgSend(self, "isActive")) + return; + _active = YES; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", self, sel_getUid("colorPanelDidChangeColor:"), CPColorPanelColorDidChangeNotification, objj_msgSend(CPColorPanel, "sharedColorPanel")); +} +}), new objj_method(sel_getUid("deactivate"), function $CPColorWell__deactivate(self, _cmd) +{ with(self) +{ + if (!objj_msgSend(self, "isActive")) + return; + _active = NO; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "removeObserver:name:object:", self, CPColorPanelColorDidChangeNotification, objj_msgSend(CPColorPanel, "sharedColorPanel")); +} +}), new objj_method(sel_getUid("isActive"), function $CPColorWell__isActive(self, _cmd) +{ with(self) +{ + return _active; +} +}), new objj_method(sel_getUid("drawBezelWithHighlight:"), function $CPColorWell__drawBezelWithHighlight_(self, _cmd, shouldHighlight) +{ with(self) +{ +} +}), new objj_method(sel_getUid("drawWellInside:"), function $CPColorWell__drawWellInside_(self, _cmd, aRect) +{ with(self) +{ + if (!_wellView) + { + _wellView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", aRect); + objj_msgSend(_wellView, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + objj_msgSend(self, "addSubview:", _wellView); + } + else + objj_msgSend(_wellView, "setFrame:", aRect); + objj_msgSend(_wellView, "setBackgroundColor:", _color); +} +}), new objj_method(sel_getUid("colorPanelDidChangeColor:"), function $CPColorWell__colorPanelDidChangeColor_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "takeColorFrom:", objj_msgSend(aNotification, "object")); + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); +} +}), new objj_method(sel_getUid("colorWellDidBecomeExclusive:"), function $CPColorWell__colorWellDidBecomeExclusive_(self, _cmd, aNotification) +{ with(self) +{ + if (self != objj_msgSend(aNotification, "object")) + objj_msgSend(self, "deactivate"); +} +}), new objj_method(sel_getUid("colorPanelWillClose:"), function $CPColorWell__colorPanelWillClose_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "deactivate"); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPColorWell__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "drawBezelWithHighlight:", YES); +} +}), new objj_method(sel_getUid("mouseDragged:"), function $CPColorWell__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "drawBezelWithHighlight:", CGRectContainsPoint(objj_msgSend(self, "bounds"), objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil))); +} +}), new objj_method(sel_getUid("mouseUp:"), function $CPColorWell__mouseUp_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "drawBezelWithHighlight:", NO); + if (!CGRectContainsPoint(objj_msgSend(self, "bounds"), objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil))) + return; + objj_msgSend(self, "activate:", YES); + var colorPanel = objj_msgSend(CPColorPanel, "sharedColorPanel"); + objj_msgSend(colorPanel, "setColor:", _color); + objj_msgSend(colorPanel, "orderFront:", self); +} +})]); +} +var CPColorWellColorKey = "CPColorWellColorKey", + CPColorWellBorderedKey = "CPColorWellBorderedKey"; +{ +var the_class = objj_getClass("CPColorWell") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPColorWell\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPColorWell__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder); + if (self) + { + _active = NO; + _bordered = objj_msgSend(aCoder, "decodeObjectForKey:", CPColorWellBorderedKey); + _color = objj_msgSend(aCoder, "decodeObjectForKey:", CPColorWellColorKey); + objj_msgSend(self, "drawBezelWithHighlight:", NO); + objj_msgSend(self, "drawWellInside:", CGRectInset(objj_msgSend(self, "bounds"), 3.0, 3.0)); + objj_msgSend(self, "_registerForNotifications"); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPColorWell__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + var actualSubviews = _subviews; + _subviews = objj_msgSend(_subviews, "copy"); + objj_msgSend(_subviews, "removeObjectIdenticalTo:", _wellView); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + _subviews = actualSubviews; + objj_msgSend(aCoder, "encodeObject:forKey:", _color, CPColorWellColorKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _bordered, CPColorWellBorderedKey); +} +})]); +} + +p;17;CPCompatibility.ji;9;CPEvent.jc;4224; +CPUnknownBrowserEngine = 0; +CPGeckoBrowserEngine = 1; +CPInternetExplorerBrowserEngine = 2; +CPKHTMLBrowserEngine = 3; +CPOperaBrowserEngine = 4; +CPWebKitBrowserEngine = 5; +CPCSSRGBAFeature = 1 << 5; +CPHTMLCanvasFeature = 1 << 6; +CPHTMLContentEditableFeature = 1 << 7; +CPJavascriptInnerTextFeature = 1 << 8; +CPJavascriptTextContentFeature = 1 << 9; +CPJavascriptClipboardEventsFeature = 1 << 10; +CPJavascriptClipboardAccessFeature = 1 << 11; +CPJavaScriptCanvasDrawFeature = 1 << 12; +CPJavaScriptCanvasTransformFeature = 1 << 13; +CPVMLFeature = 1 << 14; +CPJavascriptRemedialKeySupport = 1 << 15; +CPJavaScriptShadowFeature = 1 << 20; +CPJavaScriptNegativeMouseWheelValues = 1 << 22; +CPJavaScriptMouseWheelValues_8_15 = 1 << 23 +CPOpacityRequiresFilterFeature = 1 << 24; +CPInputTypeCanBeChangedFeature = 1 << 25; +var USER_AGENT = "", + PLATFORM_ENGINE = CPUnknownBrowserEngine, + PLATFORM_FEATURES = 0; +PLATFORM_FEATURES |= CPInputTypeCanBeChangedFeature; +if (typeof window != "undfined" && typeof window.navigator != "undefined") + USER_AGENT = window.navigator.userAgent; +if (window.opera) +{ + PLATFORM_ENGINE = CPOperaBrowserEngine; + PLATFORM_FEATURES |= CPJavaScriptCanvasDrawFeature; +} +else if (window.attachEvent) +{ + PLATFORM_ENGINE = CPInternetExplorerBrowserEngine; + PLATFORM_FEATURES |= CPVMLFeature; + PLATFORM_FEATURES |= CPJavascriptRemedialKeySupport; + PLATFORM_FEATURES |= CPJavaScriptShadowFeature; + PLATFORM_FEATURES |= CPOpacityRequiresFilterFeature; + PLATFORM_FEATURES &= ~CPInputTypeCanBeChangedFeature; +} +else if (USER_AGENT.indexOf("AppleWebKit/") != -1) +{ + PLATFORM_ENGINE = CPWebKitBrowserEngine; + PLATFORM_FEATURES |= CPCSSRGBAFeature; + PLATFORM_FEATURES |= CPHTMLContentEditableFeature; + PLATFORM_FEATURES |= CPJavascriptClipboardEventsFeature; + PLATFORM_FEATURES |= CPJavascriptClipboardAccessFeature; + PLATFORM_FEATURES |= CPJavaScriptShadowFeature; + var versionStart = USER_AGENT.indexOf("AppleWebKit/") + "AppleWebKit/".length, + versionEnd = USER_AGENT.indexOf(" ", versionStart), + version = parseFloat(USER_AGENT.substring(versionStart, versionEnd), 10); + if(USER_AGENT.indexOf("Plainview") == -1 && version >= 525.14 || USER_AGENT.indexOf("Chrome") != -1) + PLATFORM_FEATURES |= CPJavascriptRemedialKeySupport; +} +else if (USER_AGENT.indexOf("KHTML") != -1) +{ + PLATFORM_ENGINE = CPKHTMLBrowserEngine; +} +else if (USER_AGENT.indexOf("Gecko") !== -1) +{ + PLATFORM_ENGINE = CPGeckoBrowserEngine; + PLATFORM_FEATURES |= CPJavaScriptCanvasDrawFeature; + var index = USER_AGENT.indexOf("Firefox"), + version = (index === -1) ? 2.0 : parseFloat(USER_AGENT.substring(index + "Firefox".length + 1)); + if (version >= 3.0) + PLATFORM_FEATURES |= CPCSSRGBAFeature; + if (version < 3.0) + PLATFORM_FEATURES |= CPJavaScriptMouseWheelValues_8_15; +} +if (typeof document != "undefined") +{ + var canvasElement = document.createElement("canvas"); + if (canvasElement && canvasElement.getContext) + { + PLATFORM_FEATURES |= CPHTMLCanvasFeature; + var context = document.createElement("canvas").getContext("2d"); + if (context && context.setTransform && context.transform) + PLATFORM_FEATURES |= CPJavaScriptCanvasTransformFeature; + } + var DOMElement = document.createElement("div"); + if (DOMElement.innerText != undefined) + PLATFORM_FEATURES |= CPJavascriptInnerTextFeature; + else if (DOMElement.textContent != undefined) + PLATFORM_FEATURES |= CPJavascriptTextContentFeature; +} +CPFeatureIsCompatible= function(aFeature) +{ + return PLATFORM_FEATURES & aFeature; +} +CPBrowserIsEngine= function(anEngine) +{ + return PLATFORM_ENGINE == anEngine; +} +if (USER_AGENT.indexOf("Mac") != -1) +{ + CPPlatformActionKeyMask = CPCommandKeyMask; + CPUndoKeyEquivalent = "Z"; + CPRedoKeyEquivalent = "Z"; + CPUndoKeyEquivalentModifierMask = CPCommandKeyMask; + CPRedoKeyEquivalentModifierMask = CPCommandKeyMask | CPShiftKeyMask; +} +else +{ + CPPlatformActionKeyMask = CPControlKeyMask; + CPUndoKeyEquivalent = "Z"; + CPRedoKeyEquivalent = "Y"; + CPUndoKeyEquivalentModifierMask = CPControlKeyMask; + CPRedoKeyEquivalentModifierMask = CPControlKeyMask; +} + +p;11;CPControl.ji;8;CPFont.ji;10;CPShadow.ji;8;CPView.jc;25045; +CPLeftTextAlignment = 0; +CPRightTextAlignment = 1; +CPCenterTextAlignment = 2; +CPJustifiedTextAlignment = 3; +CPNaturalTextAlignment = 4; +CPRegularControlSize = 0; +CPSmallControlSize = 1; +CPMiniControlSize = 2; +CPControlNormalBackgroundColor = "CPControlNormalBackgroundColor"; +CPControlSelectedBackgroundColor = "CPControlSelectedBackgroundColor"; +CPControlHighlightedBackgroundColor = "CPControlHighlightedBackgroundColor"; +CPControlDisabledBackgroundColor = "CPControlDisabledBackgroundColor"; +CPControlTextDidBeginEditingNotification = "CPControlTextDidBeginEditingNotification"; +CPControlTextDidChangeNotification = "CPControlTextDidChangeNotification"; +CPControlTextDidEndEditingNotification = "CPControlTextDidEndEditingNotification"; +var CPControlBlackColor = objj_msgSend(CPColor, "blackColor"); +{var the_class = objj_allocateClassPair(CPView, "CPControl"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_value"), new objj_ivar("_target"), new objj_ivar("_action"), new objj_ivar("_sendActionOn"), new objj_ivar("_continuousTracking"), new objj_ivar("_trackingWasWithinFrame"), new objj_ivar("_trackingMouseDownFlags"), new objj_ivar("_previousTrackingLocation"), new objj_ivar("_ephemeralSubviewsForNames"), new objj_ivar("_ephereralSubviews"), new objj_ivar("_toolTip")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPControl__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _sendActionOn = CPLeftMouseUpMask; + _trackingMouseDownFlags = 0; + } + return self; +} +}), new objj_method(sel_getUid("setAction:"), function $CPControl__setAction_(self, _cmd, anAction) +{ with(self) +{ + _action = anAction; +} +}), new objj_method(sel_getUid("action"), function $CPControl__action(self, _cmd) +{ with(self) +{ + return _action; +} +}), new objj_method(sel_getUid("setTarget:"), function $CPControl__setTarget_(self, _cmd, aTarget) +{ with(self) +{ + _target = aTarget; +} +}), new objj_method(sel_getUid("target"), function $CPControl__target(self, _cmd) +{ with(self) +{ + return _target; +} +}), new objj_method(sel_getUid("sendAction:to:"), function $CPControl__sendAction_to_(self, _cmd, anAction, anObject) +{ with(self) +{ + objj_msgSend(CPApp, "sendAction:to:from:", anAction, anObject, self); +} +}), new objj_method(sel_getUid("sendActionOn:"), function $CPControl__sendActionOn_(self, _cmd, mask) +{ with(self) +{ + var previousMask = _sendActionOn; + _sendActionOn = mask; + return previousMask; +} +}), new objj_method(sel_getUid("isContinuous"), function $CPControl__isContinuous(self, _cmd) +{ with(self) +{ + return (_sendActionOn & CPPeriodicMask) !== 0; +} +}), new objj_method(sel_getUid("setContinuous:"), function $CPControl__setContinuous_(self, _cmd, flag) +{ with(self) +{ + if (flag) + _sendActionOn |= CPPeriodicMask; + else + _sendActionOn &= ~CPPeriodicMask; +} +}), new objj_method(sel_getUid("tracksMouseOutsideOfFrame"), function $CPControl__tracksMouseOutsideOfFrame(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("trackMouse:"), function $CPControl__trackMouse_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"), + currentLocation = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + isWithinFrame = objj_msgSend(self, "tracksMouseOutsideOfFrame") || CGRectContainsPoint(objj_msgSend(self, "bounds"), currentLocation); + if (type === CPLeftMouseUp) + { + objj_msgSend(self, "stopTracking:at:mouseIsUp:", _previousTrackingLocation, currentLocation, YES); + _trackingMouseDownFlags = 0; + } + else + { + if (type === CPLeftMouseDown) + { + _trackingMouseDownFlags = objj_msgSend(anEvent, "modifierFlags"); + _continuousTracking = objj_msgSend(self, "startTrackingAt:", currentLocation); + } + else if (type === CPLeftMouseDragged) + { + if (isWithinFrame) + { + if (!_trackingWasWithinFrame) + _continuousTracking = objj_msgSend(self, "startTrackingAt:", currentLocation); + else if (_continuousTracking) + _continuousTracking = objj_msgSend(self, "continueTracking:at:", _previousTrackingLocation, currentLocation); + } + else + objj_msgSend(self, "stopTracking:at:mouseIsUp:", _previousTrackingLocation, currentLocation, NO); + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackMouse:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); + } + if ((_sendActionOn & (1 << type)) && isWithinFrame) + objj_msgSend(self, "sendAction:to:", _action, _target); + _trackingWasWithinFrame = isWithinFrame; + _previousTrackingLocation = currentLocation; +} +}), new objj_method(sel_getUid("performClick:"), function $CPControl__performClick_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "highlight:", YES); + objj_msgSend(self, "setState:", objj_msgSend(self, "nextState")); + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); + objj_msgSend(self, "highlight:", NO); +} +}), new objj_method(sel_getUid("mouseDownFlags"), function $CPControl__mouseDownFlags(self, _cmd) +{ with(self) +{ + return _trackingMouseDownFlags; +} +}), new objj_method(sel_getUid("startTrackingAt:"), function $CPControl__startTrackingAt_(self, _cmd, aPoint) +{ with(self) +{ + objj_msgSend(self, "highlight:", YES); + return (_sendActionOn & CPPeriodicMask) || (_sendActionOn & CPLeftMouseDraggedMask); +} +}), new objj_method(sel_getUid("continueTracking:at:"), function $CPControl__continueTracking_at_(self, _cmd, lastPoint, aPoint) +{ with(self) +{ + return (_sendActionOn & CPPeriodicMask) || (_sendActionOn & CPLeftMouseDraggedMask); +} +}), new objj_method(sel_getUid("stopTracking:at:mouseIsUp:"), function $CPControl__stopTracking_at_mouseIsUp_(self, _cmd, lastPoint, aPoint, mouseIsUp) +{ with(self) +{ + objj_msgSend(self, "highlight:", NO); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPControl__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (!objj_msgSend(self, "isEnabled")) + return; + objj_msgSend(self, "trackMouse:", anEvent); +} +}), new objj_method(sel_getUid("objectValue"), function $CPControl__objectValue(self, _cmd) +{ with(self) +{ + return _value; +} +}), new objj_method(sel_getUid("setObjectValue:"), function $CPControl__setObjectValue_(self, _cmd, anObject) +{ with(self) +{ + _value = anObject; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("floatValue"), function $CPControl__floatValue(self, _cmd) +{ with(self) +{ + var floatValue = parseFloat(_value, 10); + return isNaN(floatValue) ? 0.0 : floatValue; +} +}), new objj_method(sel_getUid("setFloatValue:"), function $CPControl__setFloatValue_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", aValue); +} +}), new objj_method(sel_getUid("doubleValue"), function $CPControl__doubleValue(self, _cmd) +{ with(self) +{ + var doubleValue = parseFloat(_value, 10); + return isNaN(doubleValue) ? 0.0 : doubleValue; +} +}), new objj_method(sel_getUid("setDoubleValue:"), function $CPControl__setDoubleValue_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", anObject); +} +}), new objj_method(sel_getUid("intValue"), function $CPControl__intValue(self, _cmd) +{ with(self) +{ + var intValue = parseInt(_value, 10); + return isNaN(intValue) ? 0.0 : intValue; +} +}), new objj_method(sel_getUid("setIntValue:"), function $CPControl__setIntValue_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", anObject); +} +}), new objj_method(sel_getUid("integerValue"), function $CPControl__integerValue(self, _cmd) +{ with(self) +{ + var intValue = parseInt(_value, 10); + return isNaN(intValue) ? 0.0 : intValue; +} +}), new objj_method(sel_getUid("setIntegerValue:"), function $CPControl__setIntegerValue_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", anObject); +} +}), new objj_method(sel_getUid("stringValue"), function $CPControl__stringValue(self, _cmd) +{ with(self) +{ + return (_value === undefined || _value === nil) ? "" : String(_value); +} +}), new objj_method(sel_getUid("setStringValue:"), function $CPControl__setStringValue_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", anObject); +} +}), new objj_method(sel_getUid("takeDoubleValueFrom:"), function $CPControl__takeDoubleValueFrom_(self, _cmd, sender) +{ with(self) +{ + if (objj_msgSend(sender, "respondsToSelector:", sel_getUid("doubleValue"))) + objj_msgSend(self, "setDoubleValue:", objj_msgSend(sender, "doubleValue")); +} +}), new objj_method(sel_getUid("takeFloatValueFrom:"), function $CPControl__takeFloatValueFrom_(self, _cmd, sender) +{ with(self) +{ + if (objj_msgSend(sender, "respondsToSelector:", sel_getUid("floatValue"))) + objj_msgSend(self, "setFloatValue:", objj_msgSend(sender, "floatValue")); +} +}), new objj_method(sel_getUid("takeIntegerValueFrom:"), function $CPControl__takeIntegerValueFrom_(self, _cmd, sender) +{ with(self) +{ + if (objj_msgSend(sender, "respondsToSelector:", sel_getUid("integerValue"))) + objj_msgSend(self, "setIntegerValue:", objj_msgSend(sender, "integerValue")); +} +}), new objj_method(sel_getUid("takeIntValueFrom:"), function $CPControl__takeIntValueFrom_(self, _cmd, sender) +{ with(self) +{ + if (objj_msgSend(sender, "respondsToSelector:", sel_getUid("intValue"))) + objj_msgSend(self, "setIntValue:", objj_msgSend(sender, "intValue")); +} +}), new objj_method(sel_getUid("takeObjectValueFrom:"), function $CPControl__takeObjectValueFrom_(self, _cmd, sender) +{ with(self) +{ + if (objj_msgSend(sender, "respondsToSelector:", sel_getUid("objectValue"))) + objj_msgSend(self, "setObjectValue:", objj_msgSend(sender, "objectValue")); +} +}), new objj_method(sel_getUid("takeStringValueFrom:"), function $CPControl__takeStringValueFrom_(self, _cmd, sender) +{ with(self) +{ + if (objj_msgSend(sender, "respondsToSelector:", sel_getUid("stringValue"))) + objj_msgSend(self, "setStringValue:", objj_msgSend(sender, "stringValue")); +} +}), new objj_method(sel_getUid("textDidBeginEditing:"), function $CPControl__textDidBeginEditing_(self, _cmd, note) +{ with(self) +{ + if(objj_msgSend(note, "object") != self) + return; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPControlTextDidBeginEditingNotification, self, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", objj_msgSend(note, "object"), "CPFieldEditor")); +} +}), new objj_method(sel_getUid("textDidChange:"), function $CPControl__textDidChange_(self, _cmd, note) +{ with(self) +{ + if(objj_msgSend(note, "object") != self) + return; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPControlTextDidChangeNotification, self, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", objj_msgSend(note, "object"), "CPFieldEditor")); +} +}), new objj_method(sel_getUid("textDidEndEditing:"), function $CPControl__textDidEndEditing_(self, _cmd, note) +{ with(self) +{ + if(objj_msgSend(note, "object") != self) + return; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPControlTextDidEndEditingNotification, self, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", objj_msgSend(note, "object"), "CPFieldEditor")); +} +}), new objj_method(sel_getUid("setAlignment:"), function $CPControl__setAlignment_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "alignment");} +}), new objj_method(sel_getUid("alignment"), function $CPControl__alignment(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "alignment");} +}), new objj_method(sel_getUid("setVerticalAlignment:"), function $CPControl__setVerticalAlignment_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "vertical-alignment");} +}), new objj_method(sel_getUid("verticalAlignment"), function $CPControl__verticalAlignment(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "vertical-alignment");} +}), new objj_method(sel_getUid("setLineBreakMode:"), function $CPControl__setLineBreakMode_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "line-break-mode");} +}), new objj_method(sel_getUid("lineBreakMode"), function $CPControl__lineBreakMode(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "line-break-mode");} +}), new objj_method(sel_getUid("setTextColor:"), function $CPControl__setTextColor_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "text-color");} +}), new objj_method(sel_getUid("textColor"), function $CPControl__textColor(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "text-color");} +}), new objj_method(sel_getUid("setFont:"), function $CPControl__setFont_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "font");} +}), new objj_method(sel_getUid("font"), function $CPControl__font(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "font");} +}), new objj_method(sel_getUid("setTextShadowColor:"), function $CPControl__setTextShadowColor_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "text-shadow-color");} +}), new objj_method(sel_getUid("textShadowColor"), function $CPControl__textShadowColor(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "text-shadow-color");} +}), new objj_method(sel_getUid("setTextShadowOffset:"), function $CPControl__setTextShadowOffset_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "text-shadow-offset");} +}), new objj_method(sel_getUid("textShadowOffset"), function $CPControl__textShadowOffset(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "text-shadow-offset");} +}), new objj_method(sel_getUid("setImagePosition:"), function $CPControl__setImagePosition_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "image-position");} +}), new objj_method(sel_getUid("imagePosition"), function $CPControl__imagePosition(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "image-position");} +}), new objj_method(sel_getUid("setImageScaling:"), function $CPControl__setImageScaling_(self, _cmd, aValue) +{ with(self) +{objj_msgSend(self, "setValue:forThemeAttribute:", aValue, "image-scaling");} +}), new objj_method(sel_getUid("imageScaling"), function $CPControl__imageScaling(self, _cmd) +{ with(self) +{return objj_msgSend(self, "valueForThemeAttribute:", "image-scaling");} +}), new objj_method(sel_getUid("setEnabled:"), function $CPControl__setEnabled_(self, _cmd, isEnabled) +{ with(self) +{ + if (isEnabled) + objj_msgSend(self, "unsetThemeState:", CPThemeStateDisabled); + else + objj_msgSend(self, "setThemeState:", CPThemeStateDisabled); +} +}), new objj_method(sel_getUid("isEnabled"), function $CPControl__isEnabled(self, _cmd) +{ with(self) +{ + return !objj_msgSend(self, "hasThemeState:", CPThemeStateDisabled); +} +}), new objj_method(sel_getUid("highlight:"), function $CPControl__highlight_(self, _cmd, shouldHighlight) +{ with(self) +{ + objj_msgSend(self, "setHighlighted:", shouldHighlight); +} +}), new objj_method(sel_getUid("setHighlighted:"), function $CPControl__setHighlighted_(self, _cmd, isHighlighted) +{ with(self) +{ + if (isHighlighted) + objj_msgSend(self, "setThemeState:", CPThemeStateHighlighted); + else + objj_msgSend(self, "unsetThemeState:", CPThemeStateHighlighted); +} +}), new objj_method(sel_getUid("isHighlighted"), function $CPControl__isHighlighted(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "hasThemeState:", CPThemeStateHighlighted); +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPControl__createEphemeralSubviewNamed_(self, _cmd, aViewName) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPControl__rectForEphemeralSubviewNamed_(self, _cmd, aViewName) +{ with(self) +{ + return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; +} +}), new objj_method(sel_getUid("layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:"), function $CPControl__layoutEphemeralSubviewNamed_positioned_relativeToEphemeralSubviewNamed_(self, _cmd, aViewName, anOrderingMode, relativeToViewName) +{ with(self) +{ + if (!_ephemeralSubviewsForNames) + { + _ephemeralSubviewsForNames = {}; + _ephemeralSubviews = objj_msgSend(CPSet, "set"); + } + var frame = objj_msgSend(self, "rectForEphemeralSubviewNamed:", aViewName); + if (frame && !(frame.size.width <= 0.0 || frame.size.height <= 0.0)) + { + if (!_ephemeralSubviewsForNames[aViewName]) + { + _ephemeralSubviewsForNames[aViewName] = objj_msgSend(self, "createEphemeralSubviewNamed:", aViewName); + objj_msgSend(_ephemeralSubviews, "addObject:", _ephemeralSubviewsForNames[aViewName]); + if (_ephemeralSubviewsForNames[aViewName]) + objj_msgSend(self, "addSubview:positioned:relativeTo:", _ephemeralSubviewsForNames[aViewName], anOrderingMode, _ephemeralSubviewsForNames[relativeToViewName]); + } + if (_ephemeralSubviewsForNames[aViewName]) + objj_msgSend(_ephemeralSubviewsForNames[aViewName], "setFrame:", frame); + } + else if (_ephemeralSubviewsForNames[aViewName]) + { + objj_msgSend(_ephemeralSubviewsForNames[aViewName], "removeFromSuperview"); + objj_msgSend(_ephemeralSubviews, "removeObject:", _ephemeralSubviewsForNames[aViewName]); + delete _ephemeralSubviewsForNames[aViewName]; + } + return _ephemeralSubviewsForNames[aViewName]; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeAttributes"), function $CPControl__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [CPLeftTextAlignment, + CPTopVerticalTextAlignment, + CPLineBreakByClipping, + objj_msgSend(CPColor, "blackColor"), + objj_msgSend(CPFont, "systemFontOfSize:", 12.0), + nil, + { width:0.0, height:0.0 }, + CPImageLeft, + CPScaleToFit, + { width:0.0, height:0.0 }, + { width:-1.0, height:-1.0 }], ["alignment", + "vertical-alignment", + "line-break-mode", + "text-color", + "font", + "text-shadow-color", + "text-shadow-offset", + "image-position", + "image-scaling", + "min-size", + "max-size"]); +} +})]); +} +var CPControlValueKey = "CPControlValueKey", + CPControlControlStateKey = "CPControlControlStateKey", + CPControlIsEnabledKey = "CPControlIsEnabledKey", + CPControlTargetKey = "CPControlTargetKey", + CPControlActionKey = "CPControlActionKey", + CPControlSendActionOnKey = "CPControlSendActionOnKey"; +var __Deprecated__CPImageViewImageKey = "CPImageViewImageKey"; +{ +var the_class = objj_getClass("CPControl") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPControl\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPControl__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder); + if (self) + { + objj_msgSend(self, "setObjectValue:", objj_msgSend(aCoder, "decodeObjectForKey:", CPControlValueKey)); + objj_msgSend(self, "setTarget:", objj_msgSend(aCoder, "decodeObjectForKey:", CPControlTargetKey)); + objj_msgSend(self, "setAction:", objj_msgSend(aCoder, "decodeObjectForKey:", CPControlActionKey)); + objj_msgSend(self, "sendActionOn:", objj_msgSend(aCoder, "decodeIntForKey:", CPControlSendActionOnKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPControl__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + var count = objj_msgSend(_subviews, "count"), + ephemeral + subviews = nil; + if (count > 0 && objj_msgSend(_ephemeralSubviews, "count") > 0) + { + subviews = objj_msgSend(_subviews.slice(0), "copy"); + while (count--) + if (objj_msgSend(_ephemeralSubviews, "containsObject:", _subviews[count])) + _subviews.splice(count, 1); + } + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + if (subviews) + _subviews = subviews; + if (_value !== nil) + objj_msgSend(aCoder, "encodeObject:forKey:", _value, CPControlValueKey); + if (_target !== nil) + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _target, CPControlTargetKey); + if (_action !== NULL) + objj_msgSend(aCoder, "encodeObject:forKey:", _action, CPControlActionKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _sendActionOn, CPControlSendActionOnKey); +} +})]); +} +var _CPControlSizeIdentifiers = [], + _CPControlCachedColorWithPatternImages = {}, + _CPControlCachedThreePartImagePattern = {}; +_CPControlSizeIdentifiers[CPRegularControlSize] = "Regular"; +_CPControlSizeIdentifiers[CPSmallControlSize] = "Small"; +_CPControlSizeIdentifiers[CPMiniControlSize] = "Mini"; +_CPControlIdentifierForControlSize= function(aControlSize) +{ + return _CPControlSizeIdentifiers[aControlSize]; +} +_CPControlColorWithPatternImage= function(sizes, aClassName) +{ + var index = 1, + count = arguments.length, + identifier = ""; + for (; index < count; ++index) + identifier += arguments[index]; + var color = _CPControlCachedColorWithPatternImages[identifier]; + if (!color) + { + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPControl, "class")); + color = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", aClassName + "/" + identifier + ".png"), sizes[identifier])); + _CPControlCachedColorWithPatternImages[identifier] = color; + } + return color; +} +_CPControlThreePartImagePattern= function(isVertical, sizes, aClassName) +{ + var index = 2, + count = arguments.length, + identifier = ""; + for (; index < count; ++index) + identifier += arguments[index]; + var color = _CPControlCachedThreePartImagePattern[identifier]; + if (!color) + { + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPControl, "class")), + path = aClassName + "/" + identifier; + sizes = sizes[identifier]; + color = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPThreePartImage, "alloc"), "initWithImageSlices:isVertical:", [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", path + "0.png"), sizes[0]), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", path + "1.png"), sizes[1]), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", path + "2.png"), sizes[2]) + ], isVertical)); + _CPControlCachedThreePartImagePattern[identifier] = color; + } + return color; +} + +p;10;CPCookie.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;1831; +{var the_class = objj_allocateClassPair(CPObject, "CPCookie"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_cookieName"), new objj_ivar("_cookieValue"), new objj_ivar("_expires")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithName:"), function $CPCookie__initWithName_(self, _cmd, aName) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + _cookieName = aName; + _cookieValue = objj_msgSend(self, "_readCookieValue"); + return self; +} +}), new objj_method(sel_getUid("value"), function $CPCookie__value(self, _cmd) +{ with(self) +{ + return _cookieValue; +} +}), new objj_method(sel_getUid("name"), function $CPCookie__name(self, _cmd) +{ with(self) +{ + return _cookieName; +} +}), new objj_method(sel_getUid("expires"), function $CPCookie__expires(self, _cmd) +{ with(self) +{ + return _expires; +} +}), new objj_method(sel_getUid("setValue:expires:domain:"), function $CPCookie__setValue_expires_domain_(self, _cmd, value, date, domain) +{ with(self) +{ + if(date) + var expires = "; expires="+date.toGMTString(); + else + var expires = ""; + if(domain) + domain = "; domain="+domain; + else + domain = ""; + document.cookie = _cookieName+"="+value+expires+"; path=/"+domain; +} +}), new objj_method(sel_getUid("_readCookieValue"), function $CPCookie___readCookieValue(self, _cmd) +{ with(self) +{ + var nameEQ = _cookieName + "="; + var ca = document.cookie.split(';'); + for(var i=0;i < ca.length;i++) { + var c = ca[i]; + while (c.charAt(0)==' ') c = c.substring(1,c.length); + if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); + } + return ""; +} +})]); +} + +p;12;CPDocument.jI;21;Foundation/CPString.jI;20;Foundation/CPArray.ji;13;CPResponder.ji;20;CPWindowController.jc;17281; +CPSaveOperation = 0; +CPSaveAsOperation = 1; +CPSaveToOperation = 2; +CPAutosaveOperation = 3; +CPChangeDone = 0; +CPChangeUndone = 1; +CPChangeCleared = 2; +CPChangeReadOtherContents = 3; +CPChangeAutosaved = 4; +CPDocumentWillSaveNotification = "CPDocumentWillSaveNotification"; +CPDocumentDidSaveNotification = "CPDocumentDidSaveNotification"; +CPDocumentDidFailToSaveNotification = "CPDocumentDidFailToSaveNotification"; +var CPDocumentUntitledCount = 0; +{var the_class = objj_allocateClassPair(CPResponder, "CPDocument"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_fileURL"), new objj_ivar("_fileType"), new objj_ivar("_windowControllers"), new objj_ivar("_untitledDocumentIndex"), new objj_ivar("_hasUndoManager"), new objj_ivar("_undoManager"), new objj_ivar("_changeCount"), new objj_ivar("_readConnection"), new objj_ivar("_writeRequest")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPDocument__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "init"); + if (self) + { + _windowControllers = []; + _hasUndoManager = YES; + _changeCount = 0; + objj_msgSend(self, "setNextResponder:", CPApp); + } + return self; +} +}), new objj_method(sel_getUid("initWithType:error:"), function $CPDocument__initWithType_error_(self, _cmd, aType, anError) +{ with(self) +{ + self = objj_msgSend(self, "init"); + if (self) + objj_msgSend(self, "setFileType:", aType); + return self; +} +}), new objj_method(sel_getUid("initWithContentsOfURL:ofType:delegate:didReadSelector:contextInfo:"), function $CPDocument__initWithContentsOfURL_ofType_delegate_didReadSelector_contextInfo_(self, _cmd, anAbsoluteURL, aType, aDelegate, aDidReadSelector, aContextInfo) +{ with(self) +{ + self = objj_msgSend(self, "init"); + if (self) + { + objj_msgSend(self, "readFromURL:ofType:delegate:didReadSelector:contextInfo:", anAbsoluteURL, aType, aDelegate, aDidReadSelector, aContextInfo); + objj_msgSend(self, "setFileURL:", anAbsoluteURL); + objj_msgSend(self, "setFileType:", aType); + } + return self; +} +}), new objj_method(sel_getUid("initForURL:withContentsOfURL:ofType:delegate:didReadSelector:contextInfo:"), function $CPDocument__initForURL_withContentsOfURL_ofType_delegate_didReadSelector_contextInfo_(self, _cmd, anAbsoluteURL, absoluteContentsURL, aType, aDelegate, aDidReadSelector, aContextInfo) +{ with(self) +{ + self = objj_msgSend(self, "init"); + if (self) + { + objj_msgSend(self, "readFromURL:ofType:delegate:didReadSelector:contextInfo:", absoluteContentsURL, aType, aDelegate, aDidReadSelector, aContextInfo); + objj_msgSend(self, "setFileURL:", anAbsoluteURL); + objj_msgSend(self, "setFileType:", aType); + } + return self; +} +}), new objj_method(sel_getUid("dataOfType:error:"), function $CPDocument__dataOfType_error_(self, _cmd, aType, anError) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "dataOfType:error: must be overridden by the document subclass."); +} +}), new objj_method(sel_getUid("readFromData:ofType:error:"), function $CPDocument__readFromData_ofType_error_(self, _cmd, aData, aType, anError) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "readFromData:ofType: must be overridden by the document subclass."); +} +}), new objj_method(sel_getUid("makeWindowControllers"), function $CPDocument__makeWindowControllers(self, _cmd) +{ with(self) +{ + var controller = objj_msgSend(objj_msgSend(CPWindowController, "alloc"), "initWithWindowCibName:", nil); + objj_msgSend(self, "addWindowController:", controller); +} +}), new objj_method(sel_getUid("windowControllers"), function $CPDocument__windowControllers(self, _cmd) +{ with(self) +{ + return _windowControllers; +} +}), new objj_method(sel_getUid("addWindowController:"), function $CPDocument__addWindowController_(self, _cmd, aWindowController) +{ with(self) +{ + objj_msgSend(_windowControllers, "addObject:", aWindowController); + if (objj_msgSend(aWindowController, "document") != self) + { + objj_msgSend(aWindowController, "setNextResponder:", self); + objj_msgSend(aWindowController, "setDocument:", self); + } +} +}), new objj_method(sel_getUid("showWindows"), function $CPDocument__showWindows(self, _cmd) +{ with(self) +{ + objj_msgSend(_windowControllers, "makeObjectsPerformSelector:withObject:", sel_getUid("showWindow:"), self); +} +}), new objj_method(sel_getUid("displayName"), function $CPDocument__displayName(self, _cmd) +{ with(self) +{ + if (_fileURL) + return objj_msgSend(_fileURL, "lastPathComponent"); + if (!_untitledDocumentIndex) + _untitledDocumentIndex = ++CPDocumentUntitledCount; + if (_untitledDocumentIndex == 1) + return "Untitled"; + return "Untitled " + _untitledDocumentIndex; +} +}), new objj_method(sel_getUid("windowCibName"), function $CPDocument__windowCibName(self, _cmd) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("windowControllerDidLoadNib:"), function $CPDocument__windowControllerDidLoadNib_(self, _cmd, aWindowController) +{ with(self) +{ +} +}), new objj_method(sel_getUid("windowControllerWillLoadNib:"), function $CPDocument__windowControllerWillLoadNib_(self, _cmd, aWindowController) +{ with(self) +{ +} +}), new objj_method(sel_getUid("readFromURL:ofType:delegate:didReadSelector:contextInfo:"), function $CPDocument__readFromURL_ofType_delegate_didReadSelector_contextInfo_(self, _cmd, anAbsoluteURL, aType, aDelegate, aDidReadSelector, aContextInfo) +{ with(self) +{ + objj_msgSend(_readConnection, "cancel"); + _readConnection = objj_msgSend(CPURLConnection, "connectionWithRequest:delegate:", objj_msgSend(CPURLRequest, "requestWithURL:", anAbsoluteURL), self); + _readConnection.session = _CPReadSessionMake(aType, aDelegate, aDidReadSelector, aContextInfo); +} +}), new objj_method(sel_getUid("fileURL"), function $CPDocument__fileURL(self, _cmd) +{ with(self) +{ + return _fileURL; +} +}), new objj_method(sel_getUid("setFileURL:"), function $CPDocument__setFileURL_(self, _cmd, aFileURL) +{ with(self) +{ + if (_fileURL == aFileURL) + return; + _fileURL = aFileURL; + objj_msgSend(_windowControllers, "makeObjectsPerformSelector:", sel_getUid("synchronizeWindowTitleWithDocumentName")); +} +}), new objj_method(sel_getUid("saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:"), function $CPDocument__saveToURL_ofType_forSaveOperation_delegate_didSaveSelector_contextInfo_(self, _cmd, anAbsoluteURL, aTypeName, aSaveOperation, aDelegate, aDidSaveSelector, aContextInfo) +{ with(self) +{ + var data = objj_msgSend(self, "dataOfType:error:", objj_msgSend(self, "fileType"), nil), + oldChangeCount = _changeCount; + _writeRequest = objj_msgSend(CPURLRequest, "requestWithURL:", anAbsoluteURL); + objj_msgSend(_writeRequest, "setHTTPMethod:", "POST"); + objj_msgSend(_writeRequest, "setHTTPBody:", objj_msgSend(data, "string")); + objj_msgSend(_writeRequest, "setValue:forHTTPHeaderField:", "close", "Connection"); + if (aSaveOperation == CPSaveOperation) + objj_msgSend(_writeRequest, "setValue:forHTTPHeaderField:", "true", "x-cappuccino-overwrite"); + if (aSaveOperation != CPSaveToOperation) + objj_msgSend(self, "updateChangeCount:", CPChangeCleared); + var connection = objj_msgSend(CPURLConnection, "connectionWithRequest:delegate:", _writeRequest, self); + connection.session = _CPSaveSessionMake(anAbsoluteURL, aSaveOperation, oldChangeCount, aDelegate, aDidSaveSelector, aContextInfo, connection); +} +}), new objj_method(sel_getUid("connection:didReceiveResponse:"), function $CPDocument__connection_didReceiveResponse_(self, _cmd, aConnection, aResponse) +{ with(self) +{ + if (!objj_msgSend(aResponse, "isKindOfClass:", objj_msgSend(CPHTTPURLResponse, "class"))) + return; + var statusCode = objj_msgSend(aResponse, "statusCode"); + if (statusCode === 200) + return; + var session = aConnection.session; + if (aConnection == _readConnection) + { + objj_msgSend(aConnection, "cancel"); + alert("There was an error retrieving the document."); + objj_msgSend(session.delegate, session.didReadSelector, self, NO, session.contextInfo); + } + else + { + if (statusCode == 409) + { + objj_msgSend(aConnection, "cancel"); + if (confirm("There already exists a file with that name, would you like to overwrite it?")) + { + objj_msgSend(_writeRequest, "setValue:forHTTPHeaderField:", "true", "x-cappuccino-overwrite"); + objj_msgSend(aConnection, "start"); + } + else + { + if (session.saveOperation != CPSaveToOperation) + { + _changeCount += session.changeCount; + objj_msgSend(_windowControllers, "makeObjectsPerformSelector:withObject:", sel_getUid("setDocumentEdited:"), objj_msgSend(self, "isDocumentEdited")); + } + _writeRequest = nil; + objj_msgSend(session.delegate, session.didSaveSelector, self, NO, session.contextInfo); + } + } + } +} +}), new objj_method(sel_getUid("connection:didReceiveData:"), function $CPDocument__connection_didReceiveData_(self, _cmd, aConnection, aData) +{ with(self) +{ + var session = aConnection.session; + if (aConnection == _readConnection) + { + objj_msgSend(self, "readFromData:ofType:error:", objj_msgSend(CPData, "dataWithString:", aData), session.fileType, nil); + objj_msgSend(session.delegate, session.didReadSelector, self, YES, session.contextInfo); + } + else + { + if (session.saveOperation != CPSaveToOperation) + objj_msgSend(self, "setFileURL:", session.absoluteURL); + _writeRequest = nil; + objj_msgSend(session.delegate, session.didSaveSelector, self, YES, session.contextInfo); + } +} +}), new objj_method(sel_getUid("connection:didFailWithError:"), function $CPDocument__connection_didFailWithError_(self, _cmd, aConnection, anError) +{ with(self) +{ + var session = aConnection.session; + if (_readConnection == aConnection) + objj_msgSend(session.delegate, session.didReadSelector, self, NO, session.contextInfo); + else + { + if (session.saveOperation != CPSaveToOperation) + { + _changeCount += session.changeCount; + objj_msgSend(_windowControllers, "makeObjectsPerformSelector:withObject:", sel_getUid("setDocumentEdited:"), objj_msgSend(self, "isDocumentEdited")); + } + _writeRequest = nil; + alert("There was an error saving the document."); + objj_msgSend(session.delegate, session.didSaveSelector, self, NO, session.contextInfo); + } +} +}), new objj_method(sel_getUid("connectionDidFinishLoading:"), function $CPDocument__connectionDidFinishLoading_(self, _cmd, aConnection) +{ with(self) +{ + if (_readConnection == aConnection) + _readConnection = nil; +} +}), new objj_method(sel_getUid("isDocumentEdited"), function $CPDocument__isDocumentEdited(self, _cmd) +{ with(self) +{ + return _changeCount != 0; +} +}), new objj_method(sel_getUid("updateChangeCount:"), function $CPDocument__updateChangeCount_(self, _cmd, aChangeType) +{ with(self) +{ + if (aChangeType == CPChangeDone) + ++_changeCount; + else if (aChangeType == CPChangeUndone) + --_changeCount; + else if (aChangeType == CPChangeCleared) + _changeCount = 0; + objj_msgSend(_windowControllers, "makeObjectsPerformSelector:withObject:", sel_getUid("setDocumentEdited:"), objj_msgSend(self, "isDocumentEdited")); +} +}), new objj_method(sel_getUid("setFileType:"), function $CPDocument__setFileType_(self, _cmd, aType) +{ with(self) +{ + _fileType = aType; +} +}), new objj_method(sel_getUid("fileType"), function $CPDocument__fileType(self, _cmd) +{ with(self) +{ + return _fileType; +} +}), new objj_method(sel_getUid("hasUndoManager"), function $CPDocument__hasUndoManager(self, _cmd) +{ with(self) +{ + return _hasUndoManager; +} +}), new objj_method(sel_getUid("setHasUndoManager:"), function $CPDocument__setHasUndoManager_(self, _cmd, aFlag) +{ with(self) +{ + if (_hasUndoManager == aFlag) + return; + _hasUndoManager = aFlag; + if (!_hasUndoManager) + objj_msgSend(self, "setUndoManager:", nil); +} +}), new objj_method(sel_getUid("_undoManagerWillCloseGroup:"), function $CPDocument___undoManagerWillCloseGroup_(self, _cmd, aNotification) +{ with(self) +{ + var undoManager = objj_msgSend(aNotification, "object"); + if (objj_msgSend(undoManager, "isUndoing") || objj_msgSend(undoManager, "isRedoing")) + return; + objj_msgSend(self, "updateChangeCount:", CPChangeDone); +} +}), new objj_method(sel_getUid("_undoManagerDidUndoChange:"), function $CPDocument___undoManagerDidUndoChange_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "updateChangeCount:", CPChangeUndone); +} +}), new objj_method(sel_getUid("_undoManagerDidRedoChange:"), function $CPDocument___undoManagerDidRedoChange_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "updateChangeCount:", CPChangeDone); +} +}), new objj_method(sel_getUid("setUndoManager:"), function $CPDocument__setUndoManager_(self, _cmd, anUndoManager) +{ with(self) +{ + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_undoManager) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPUndoManagerDidUndoChangeNotification, _undoManager); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPUndoManagerDidRedoChangeNotification, _undoManager); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPUndoManagerWillCloseUndoGroupNotification, _undoManager); + } + _undoManager = anUndoManager; + if (_undoManager) + { + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("_undoManagerDidUndoChange:"), CPUndoManagerDidUndoChangeNotification, _undoManager); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("_undoManagerDidRedoChange:"), CPUndoManagerDidRedoChangeNotification, _undoManager); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("_undoManagerWillCloseGroup:"), CPUndoManagerWillCloseUndoGroupNotification, _undoManager); + } +} +}), new objj_method(sel_getUid("undoManager"), function $CPDocument__undoManager(self, _cmd) +{ with(self) +{ + if (_hasUndoManager && !_undoManager) + objj_msgSend(self, "setUndoManager:", objj_msgSend(objj_msgSend(CPUndoManager, "alloc"), "init")); + return _undoManager; +} +}), new objj_method(sel_getUid("windowWillReturnUndoManager:"), function $CPDocument__windowWillReturnUndoManager_(self, _cmd, aWindow) +{ with(self) +{ + return objj_msgSend(self, "undoManager"); +} +}), new objj_method(sel_getUid("saveDocument:"), function $CPDocument__saveDocument_(self, _cmd, aSender) +{ with(self) +{ + if (_fileURL) + { + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPDocumentWillSaveNotification, self); + objj_msgSend(self, "saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:", _fileURL, objj_msgSend(self, "fileType"), CPSaveOperation, self, sel_getUid("document:didSave:contextInfo:"), NULL); + } + else + objj_msgSend(self, "saveDocumentAs:", self); +} +}), new objj_method(sel_getUid("saveDocumentAs:"), function $CPDocument__saveDocumentAs_(self, _cmd, aSender) +{ with(self) +{ + _documentName = window.prompt("Document Name:"); + if (!_documentName) + return; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPDocumentWillSaveNotification, self); + objj_msgSend(self, "saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:", objj_msgSend(self, "proposedFileURL"), objj_msgSend(self, "fileType"), CPSaveAsOperation, self, sel_getUid("document:didSave:contextInfo:"), NULL); +} +}), new objj_method(sel_getUid("document:didSave:contextInfo:"), function $CPDocument__document_didSave_contextInfo_(self, _cmd, aDocument, didSave, aContextInfo) +{ with(self) +{ + if (didSave) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPDocumentDidSaveNotification, self); + else + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPDocumentDidFailToSaveNotification, self); +} +})]); +} +var _CPReadSessionMake = function(aType, aDelegate, aDidReadSelector, aContextInfo) +{ + return { fileType:aType, delegate:aDelegate, didReadSelector:aDidReadSelector, contextInfo:aContextInfo }; +} +var _CPSaveSessionMake = function(anAbsoluteURL, aSaveOperation, aChangeCount, aDelegate, aDidSaveSelector, aContextInfo, aConnection) +{ + return { absoluteURL:anAbsoluteURL, saveOperation:aSaveOperation, changeCount:aChangeCount, delegate:aDelegate, didSaveSelector:aDidSaveSelector, contextInfo:aContextInfo, connection:aConnection }; +} + +p;22;CPDocumentController.jI;21;Foundation/CPObject.jI;21;Foundation/CPBundle.ji;12;CPDocument.jc;8091; +var CPSharedDocumentController = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPDocumentController"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_documents"), new objj_ivar("_documentTypes")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPDocumentController__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _documents = objj_msgSend(objj_msgSend(CPArray, "alloc"), "init"); + if (!CPSharedDocumentController) + CPSharedDocumentController = self; + _documentTypes = objj_msgSend(objj_msgSend(objj_msgSend(CPBundle, "mainBundle"), "infoDictionary"), "objectForKey:", "CPBundleDocumentTypes"); + } + return self; +} +}), new objj_method(sel_getUid("documentForURL:"), function $CPDocumentController__documentForURL_(self, _cmd, aURL) +{ with(self) +{ + var index = 0, + count = objj_msgSend(_documents, "count"); + for (; index < count; ++index) + { + var theDocument = _documents[index]; + if (objj_msgSend(objj_msgSend(theDocument, "fileURL"), "isEqual:", aURL)) + return theDocument; + } + return nil; +} +}), new objj_method(sel_getUid("openUntitledDocumentOfType:display:"), function $CPDocumentController__openUntitledDocumentOfType_display_(self, _cmd, aType, shouldDisplay) +{ with(self) +{ + var theDocument = objj_msgSend(self, "makeUntitledDocumentOfType:error:", aType, nil); + if (theDocument) + objj_msgSend(self, "addDocument:", theDocument); + if (shouldDisplay) + { + objj_msgSend(theDocument, "makeWindowControllers"); + objj_msgSend(theDocument, "showWindows"); + } + return theDocument; +} +}), new objj_method(sel_getUid("makeUntitledDocumentOfType:error:"), function $CPDocumentController__makeUntitledDocumentOfType_error_(self, _cmd, aType, anError) +{ with(self) +{ + return objj_msgSend(objj_msgSend(objj_msgSend(self, "documentClassForType:", aType), "alloc"), "initWithType:error:", aType, anError); +} +}), new objj_method(sel_getUid("openDocumentWithContentsOfURL:display:error:"), function $CPDocumentController__openDocumentWithContentsOfURL_display_error_(self, _cmd, anAbsoluteURL, shouldDisplay, anError) +{ with(self) +{ + var result = objj_msgSend(self, "documentForURL:", anAbsoluteURL); + if (!result) + { + var type = objj_msgSend(self, "typeForContentsOfURL:error:", anAbsoluteURL, anError); + result = objj_msgSend(self, "makeDocumentWithContentsOfURL:ofType:delegate:didReadSelector:contextInfo:", anAbsoluteURL, type, self, sel_getUid("document:didRead:contextInfo:"), objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", shouldDisplay, "shouldDisplay")); + } + else if (shouldDisplay) + objj_msgSend(result, "showWindows"); + return result; +} +}), new objj_method(sel_getUid("reopenDocumentForURL:withContentsOfURL:error:"), function $CPDocumentController__reopenDocumentForURL_withContentsOfURL_error_(self, _cmd, anAbsoluteURL, absoluteContentsURL, anError) +{ with(self) +{ + return objj_msgSend(self, "makeDocumentForURL:withContentsOfURL:ofType:delegate:didReadSelector:contextInfo:", anAbsoluteURL, absoluteContentsURL, objj_msgSend(objj_msgSend(_documentTypes, "objectAtIndex:", 0), "objectForKey:", "CPBundleTypeName"), self, sel_getUid("document:didRead:contextInfo:"), nil); +} +}), new objj_method(sel_getUid("makeDocumentWithContentsOfURL:ofType:delegate:didReadSelector:contextInfo:"), function $CPDocumentController__makeDocumentWithContentsOfURL_ofType_delegate_didReadSelector_contextInfo_(self, _cmd, anAbsoluteURL, aType, aDelegate, aSelector, aContextInfo) +{ with(self) +{ + return objj_msgSend(objj_msgSend(objj_msgSend(self, "documentClassForType:", aType), "alloc"), "initWithContentsOfURL:ofType:delegate:didReadSelector:contextInfo:", anAbsoluteURL, aType, aDelegate, aSelector, aContextInfo); +} +}), new objj_method(sel_getUid("makeDocumentForURL:withContentsOfURL:ofType:delegate:didReadSelector:contextInfo:"), function $CPDocumentController__makeDocumentForURL_withContentsOfURL_ofType_delegate_didReadSelector_contextInfo_(self, _cmd, anAbsoluteURL, absoluteContentsURL, aType, aDelegate, aSelector, aContextInfo) +{ with(self) +{ + return objj_msgSend(objj_msgSend(objj_msgSend(self, "documentClassForType:", aType), "alloc"), "initForURL:withContentsOfURL:ofType:delegate:didReadSelector:contextInfo:", anAbsoluteURL, absoluteContentsURL, aType, aDelegate, aSelector, aContextInfo); +} +}), new objj_method(sel_getUid("document:didRead:contextInfo:"), function $CPDocumentController__document_didRead_contextInfo_(self, _cmd, aDocument, didRead, aContextInfo) +{ with(self) +{ + if (!didRead) + return; + objj_msgSend(self, "addDocument:", aDocument); + objj_msgSend(aDocument, "makeWindowControllers"); + if (objj_msgSend(aContextInfo, "objectForKey:", "shouldDisplay")) + objj_msgSend(aDocument, "showWindows"); +} +}), new objj_method(sel_getUid("newDocument:"), function $CPDocumentController__newDocument_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "openUntitledDocumentOfType:display:", objj_msgSend(objj_msgSend(_documentTypes, "objectAtIndex:", 0), "objectForKey:", "CPBundleTypeName"), YES); +} +}), new objj_method(sel_getUid("documents"), function $CPDocumentController__documents(self, _cmd) +{ with(self) +{ + return _documents; +} +}), new objj_method(sel_getUid("addDocument:"), function $CPDocumentController__addDocument_(self, _cmd, aDocument) +{ with(self) +{ + objj_msgSend(_documents, "addObject:", aDocument); +} +}), new objj_method(sel_getUid("removeDocument:"), function $CPDocumentController__removeDocument_(self, _cmd, aDocument) +{ with(self) +{ + objj_msgSend(_documents, "removeObjectIdenticalTo:", aDocument); +} +}), new objj_method(sel_getUid("defaultType"), function $CPDocumentController__defaultType(self, _cmd) +{ with(self) +{ + return objj_msgSend(_documentTypes[0], "objectForKey:", "CPBundleTypeName"); +} +}), new objj_method(sel_getUid("typeForContentsOfURL:error:"), function $CPDocumentController__typeForContentsOfURL_error_(self, _cmd, anAbsoluteURL, outError) +{ with(self) +{ + var index = 0, + count = _documentTypes.length, + extension = objj_msgSend(objj_msgSend(anAbsoluteURL, "pathExtension"), "lowercaseString"); + for (; index < count; ++index) + { + var documentType = _documentTypes[index], + extensions = objj_msgSend(documentType, "objectForKey:", "CFBundleTypeExtensions"), + extensionIndex = 0, + extensionCount = extensions.length; + for (; extensionIndex < extensionCount; ++extensionIndex) + if (objj_msgSend(extensions[extensionIndex], "lowercaseString") == extension) + return objj_msgSend(documentType, "objectForKey:", "CPBundleTypeName"); + } + return objj_msgSend(self, "defaultType"); +} +}), new objj_method(sel_getUid("_infoForType:"), function $CPDocumentController___infoForType_(self, _cmd, aType) +{ with(self) +{ + var i = 0, + count = objj_msgSend(_documentTypes, "count"); + for (;i < count; ++i) + { + var documentType = _documentTypes[i]; + if (objj_msgSend(documentType, "objectForKey:", "CPBundleTypeName") == aType) + return documentType; + } + return nil; +} +}), new objj_method(sel_getUid("documentClassForType:"), function $CPDocumentController__documentClassForType_(self, _cmd, aType) +{ with(self) +{ + var className = objj_msgSend(objj_msgSend(self, "_infoForType:", aType), "objectForKey:", "CPDocumentClass"); + return className ? CPClassFromString(className) : nil; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("sharedDocumentController"), function $CPDocumentController__sharedDocumentController(self, _cmd) +{ with(self) +{ + if (!CPSharedDocumentController) + objj_msgSend(objj_msgSend(self, "alloc"), "init"); + return CPSharedDocumentController; +} +})]); +} + +p;20;CPDOMDisplayServer.jI;22;Foundation/CPRunLoop.jc;6156; +var CPDOMDisplayRunLoop = nil; +CPDOMDisplayServerInstructions = []; +CPDOMDisplayServerInstructionCount = 0; +CPDOMDisplayServerViews = []; +CPDOMDisplayServerViewsCount = 0; +CPDOMDisplayServerViewsContext = {}; +{var the_class = objj_allocateClassPair(CPObject, "CPDOMDisplayServer"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(meta_class, [new objj_method(sel_getUid("start"), function $CPDOMDisplayServer__start(self, _cmd) +{ with(self) +{ + CPDOMDisplayRunLoop = objj_msgSend(CPRunLoop, "currentRunLoop"); + objj_msgSend(CPDOMDisplayRunLoop, "performSelector:target:argument:order:modes:", sel_getUid("run"), CPDOMDisplayServer, nil, 0, [CPDefaultRunLoopMode]); +} +}), new objj_method(sel_getUid("run"), function $CPDOMDisplayServer__run(self, _cmd) +{ with(self) +{ + while (CPDOMDisplayServerInstructionCount || CPDOMDisplayServerViewsCount) + { + var index = 0; + while (index < CPDOMDisplayServerInstructionCount) + { + var instruction = CPDOMDisplayServerInstructions[index++]; + try{ + switch (instruction) + { + case 0: + case 1: + case 2: + case 3: var element = CPDOMDisplayServerInstructions[index], + style = element.style, + x = (instruction == 0 || instruction == 2) ? "left" : "right", + y = (instruction == 0 || instruction == 1) ? "top" : "bottom"; + CPDOMDisplayServerInstructions[index++] = nil; + var transform = CPDOMDisplayServerInstructions[index++]; + if (transform) + { + var point = { x:CPDOMDisplayServerInstructions[index++], y:CPDOMDisplayServerInstructions[index++] }, + transformed = { x:point.x * transform.a + point.y * transform.c + transform.tx, y:point.x * transform.b + point.y * transform.d + transform.ty }; + style[x] = ROUND(transformed.x) + "px"; + style[y] = ROUND(transformed.y) + "px"; + } + else + { + style[x] = ROUND(CPDOMDisplayServerInstructions[index++]) + "px"; + style[y] = ROUND(CPDOMDisplayServerInstructions[index++]) + "px"; + } + element.CPDOMDisplayContext[0] = -1; + break; + case 4: var element = CPDOMDisplayServerInstructions[index], + style = element.style; + CPDOMDisplayServerInstructions[index++] = nil; + element.CPDOMDisplayContext[4] = -1; + style.width = MAX(0.0, ROUND(CPDOMDisplayServerInstructions[index++])) + "px"; + style.height = MAX(0.0, ROUND(CPDOMDisplayServerInstructions[index++])) + "px"; + break; + case 5: var element = CPDOMDisplayServerInstructions[index]; + CPDOMDisplayServerInstructions[index++] = nil; + element.CPDOMDisplayContext[5] = -1; + element.width = MAX(0.0, ROUND(CPDOMDisplayServerInstructions[index++])); + element.height = MAX(0.0, ROUND(CPDOMDisplayServerInstructions[index++])); + break; + case 6: CPDOMDisplayServerInstructions[index].appendChild(CPDOMDisplayServerInstructions[index + 1]); + CPDOMDisplayServerInstructions[index++] = nil; + CPDOMDisplayServerInstructions[index++] = nil; + break; + case 7: CPDOMDisplayServerInstructions[index].insertBefore(CPDOMDisplayServerInstructions[index + 1], CPDOMDisplayServerInstructions[index + 2]); + CPDOMDisplayServerInstructions[index++] = nil; + CPDOMDisplayServerInstructions[index++] = nil; + CPDOMDisplayServerInstructions[index++] = nil; + break; + case 8: CPDOMDisplayServerInstructions[index].removeChild(CPDOMDisplayServerInstructions[index + 1]); + CPDOMDisplayServerInstructions[index++] = nil; + CPDOMDisplayServerInstructions[index++] = nil; + break; + }}catch(e) { CPLog("here?" + instruction) } + } + CPDOMDisplayServerInstructionCount = 0; + var views = CPDOMDisplayServerViews, + index = 0, + count = CPDOMDisplayServerViewsCount; + CPDOMDisplayServerViews = []; + CPDOMDisplayServerViewsCount = 0; + for (; index < count; ++index) + { + var view = views[index]; + delete CPDOMDisplayServerViewsContext[objj_msgSend(view, "hash")]; + objj_msgSend(view, "layoutIfNeeded"); + objj_msgSend(view, "displayIfNeeded"); + } + } + objj_msgSend(CPDOMDisplayRunLoop, "performSelector:target:argument:order:modes:", sel_getUid("run"), CPDOMDisplayServer, nil, 0, [CPDefaultRunLoopMode]); +} +})]); +} +objj_msgSend(CPDOMDisplayServer, "start"); + +p;19;CPDOMWindowBridge.jI;21;Foundation/CPObject.jI;22;Foundation/CPRunLoop.ji;9;CPEvent.ji;17;CPCompatibility.ji;18;CPDOMWindowLayer.jc;33285; +CPSharedDOMWindowBridge = nil; +var ExcludedDOMElements = []; +var CPDOMWindowGetFrame, + CPDOMEventGetClickCount, + CPDOMEventStop; +{var the_class = objj_allocateClassPair(CPObject, "CPDOMWindowBridge"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_orderedWindows"), new objj_ivar("_mouseDownWindow"), new objj_ivar("_DOMWindow"), new objj_ivar("_DOMBodyElement"), new objj_ivar("_DOMFocusElement"), new objj_ivar("_windowLevels"), new objj_ivar("_windowLayers"), new objj_ivar("_frame"), new objj_ivar("_contentBounds"), new objj_ivar("_mouseIsDown"), new objj_ivar("_lastMouseUp"), new objj_ivar("_lastMouseDown"), new objj_ivar("_charCodes"), new objj_ivar("_keyCode"), new objj_ivar("_DOMEventMode"), new objj_ivar("_DOMPasteboardElement"), new objj_ivar("_pasteboardKeyDownEvent"), new objj_ivar("_overriddenEventType")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPDOMWindowBridge__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + alert("unimplemented"); +} +}), new objj_method(sel_getUid("_initWithDOMWindow:"), function $CPDOMWindowBridge___initWithDOMWindow_(self, _cmd, aDOMWindow) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _DOMWindow = aDOMWindow; + _windowLevels = []; + _windowLayers = objj_msgSend(CPDictionary, "dictionary"); + _DOMBodyElement = document.getElementsByTagName("body")[0]; + _DOMBodyElement.innerHTML = ""; + _DOMBodyElement.style.overflow = "hidden"; + _DOMBodyElement.style.webkitTouchCallout = "none"; + objj_msgSend(CPString, "_resetSize"); + if (document.documentElement) + document.documentElement.style.overflow = "hidden"; + _frame = CPDOMWindowGetFrame(_DOMWindow); + _contentBounds = CGRectMake(0.0, 0.0, CPRectGetWidth(_frame), CPRectGetHeight(_frame)); + _DOMFocusElement = document.createElement("input"); + _DOMFocusElement.style.position = "absolute"; + _DOMFocusElement.style.zIndex = "-1000"; + _DOMFocusElement.style.opacity = "0"; + _DOMFocusElement.style.filter = "alpha(opacity=0)"; + _DOMBodyElement.appendChild(_DOMFocusElement); + _DOMPasteboardElement = document.createElement("input"); + _DOMPasteboardElement.style.position = "absolute"; + _DOMPasteboardElement.style.top = "-10000px"; + _DOMPasteboardElement.style.zIndex = "99"; + _DOMBodyElement.appendChild(_DOMPasteboardElement); + _DOMPasteboardElement.blur(); + _charCodes = {}; + var theClass = objj_msgSend(self, "class"), + keyEventSelector = sel_getUid("_bridgeKeyEvent:"), + keyEventImplementation = class_getMethodImplementation(theClass, keyEventSelector), + keyEventCallback = function (anEvent) { keyEventImplementation(self, nil, anEvent); }, + mouseEventSelector = sel_getUid("_bridgeMouseEvent:"), + mouseEventImplementation = class_getMethodImplementation(theClass, mouseEventSelector), + mouseEventCallback = function (anEvent) { mouseEventImplementation(self, nil, anEvent); }, + scrollEventSelector = sel_getUid("_bridgeScrollEvent:"), + scrollEventImplementation = class_getMethodImplementation(theClass, scrollEventSelector), + scrollEventCallback = function (anEvent) { scrollEventImplementation(self, nil, anEvent); }, + resizeEventSelector = sel_getUid("_bridgeResizeEvent:"), + resizeEventImplementation = class_getMethodImplementation(theClass, resizeEventSelector), + resizeEventCallback = function (anEvent) { resizeEventImplementation(self, nil, anEvent); }, + touchEventSelector = sel_getUid("_bridgeTouchEvent:"), + touchEventImplementation = class_getMethodImplementation(theClass, touchEventSelector), + touchEventCallback = function (anEvent) { touchEventImplementation(self, nil, anEvent); }, + theDocument = _DOMWindow.document; + if (document.addEventListener) + { + _DOMWindow.addEventListener("resize", resizeEventCallback, NO); + theDocument.addEventListener(CPDOMEventMouseUp, mouseEventCallback, NO); + theDocument.addEventListener(CPDOMEventMouseDown, mouseEventCallback, NO); + theDocument.addEventListener(CPDOMEventMouseMoved, mouseEventCallback, NO); + theDocument.addEventListener(CPDOMEventKeyUp, keyEventCallback, NO); + theDocument.addEventListener(CPDOMEventKeyDown, keyEventCallback, NO); + theDocument.addEventListener(CPDOMEventKeyPress, keyEventCallback, NO); + theDocument.addEventListener(CPDOMEventTouchStart, touchEventCallback, NO); + theDocument.addEventListener(CPDOMEventTouchEnd, touchEventCallback, NO); + theDocument.addEventListener(CPDOMEventTouchMove, touchEventCallback, NO); + theDocument.addEventListener(CPDOMEventTouchCancel, touchEventCallback, NO); + _DOMWindow.addEventListener("DOMMouseScroll", scrollEventCallback, NO); + _DOMWindow.addEventListener(CPDOMEventScrollWheel, scrollEventCallback, NO); + } + else if(document.attachEvent) + { + _DOMWindow.attachEvent("onresize", resizeEventCallback); + theDocument.attachEvent("on" + CPDOMEventMouseUp, mouseEventCallback); + theDocument.attachEvent("on" + CPDOMEventMouseDown, mouseEventCallback); + theDocument.attachEvent("on" + CPDOMEventMouseMoved, mouseEventCallback); + theDocument.attachEvent("on" + CPDOMEventDoubleClick, mouseEventCallback); + theDocument.attachEvent("on" + CPDOMEventKeyUp, keyEventCallback); + theDocument.attachEvent("on" + CPDOMEventKeyDown, keyEventCallback); + theDocument.attachEvent("on" + CPDOMEventKeyPress, keyEventCallback); + _DOMWindow.onmousewheel = scrollEventCallback; + theDocument.onmousewheel = scrollEventCallback; + theDocument.body.ondrag = function () { return NO; }; + theDocument.body.onselectstart = function () { return window.event.srcElement == _DOMPasteboardElement; }; + } + ExcludedDOMElements["INPUT"] = YES; + ExcludedDOMElements["SELECT"] = YES; + ExcludedDOMElements["TEXTAREA"] = YES; + ExcludedDOMElements["OPTION"] = YES; + } + return self; +} +}), new objj_method(sel_getUid("frame"), function $CPDOMWindowBridge__frame(self, _cmd) +{ with(self) +{ + return CGRectMakeCopy(_frame); +} +}), new objj_method(sel_getUid("visibleFrame"), function $CPDOMWindowBridge__visibleFrame(self, _cmd) +{ with(self) +{ + var frame = objj_msgSend(self, "frame"); + frame.origin = CGPointMakeZero(); + if (objj_msgSend(CPMenu, "menuBarVisible")) + { + var menuBarHeight = objj_msgSend(objj_msgSend(CPApp, "mainMenu"), "menuBarHeight"); + frame.origin.y += menuBarHeight; + frame.size.height -= menuBarHeight; + } + return frame; +} +}), new objj_method(sel_getUid("contentBounds"), function $CPDOMWindowBridge__contentBounds(self, _cmd) +{ with(self) +{ + return CPRectCreateCopy(_contentBounds); +} +}), new objj_method(sel_getUid("orderedWindowsAtLevel:"), function $CPDOMWindowBridge__orderedWindowsAtLevel_(self, _cmd, aLevel) +{ with(self) +{ + var layer = objj_msgSend(self, "layerAtLevel:create:", aLevel, NO); + if (!layer) + return []; + return objj_msgSend(layer, "orderedWindows"); +} +}), new objj_method(sel_getUid("layerAtLevel:create:"), function $CPDOMWindowBridge__layerAtLevel_create_(self, _cmd, aLevel, aFlag) +{ with(self) +{ + var layer = objj_msgSend(_windowLayers, "objectForKey:", aLevel); + if (!layer && aFlag) + { + layer = objj_msgSend(objj_msgSend(CPDOMWindowLayer, "alloc"), "initWithLevel:", aLevel); + objj_msgSend(_windowLayers, "setObject:forKey:", layer, aLevel); + var low = 0, + high = _windowLevels.length - 1, + middle; + while (low <= high) + { + middle = FLOOR((low + high) / 2); + if (_windowLevels[middle] > aLevel) + high = middle - 1; + else + low = middle + 1; + } + objj_msgSend(_windowLevels, "insertObject:atIndex:", aLevel, _windowLevels[middle] > aLevel ? middle : middle + 1); + layer._DOMElement.style.zIndex = aLevel; + _DOMBodyElement.appendChild(layer._DOMElement); + } + return layer; +} +}), new objj_method(sel_getUid("order:window:relativeTo:"), function $CPDOMWindowBridge__order_window_relativeTo_(self, _cmd, aPlace, aWindow, otherWindow) +{ with(self) +{ + var layer = objj_msgSend(self, "layerAtLevel:create:", objj_msgSend(aWindow, "level"), aPlace != CPWindowOut); + if (aPlace == CPWindowOut) + return objj_msgSend(layer, "removeWindow:", aWindow); + objj_msgSend(layer, "insertWindow:atIndex:", aWindow, (otherWindow ? (aPlace == CPWindowAbove ? otherWindow._index + 1 : otherWindow._index) : CPNotFound)); +} +}), new objj_method(sel_getUid("_dragHitTest:pasteboard:"), function $CPDOMWindowBridge___dragHitTest_pasteboard_(self, _cmd, aPoint, aPasteboard) +{ with(self) +{ + var levels = _windowLevels, + layers = _windowLayers, + levelCount = levels.length; + while (levelCount--) + { + if (levels[levelCount] >= CPDraggingWindowLevel) + continue; + var windows = objj_msgSend(layers, "objectForKey:", levels[levelCount])._windows, + windowCount = windows.length; + while (windowCount--) + { + var theWindow = windows[windowCount]; + if (objj_msgSend(theWindow, "containsPoint:", aPoint)) + return objj_msgSend(theWindow, "_dragHitTest:pasteboard:", aPoint, aPasteboard); + } + } + return nil; +} +}), new objj_method(sel_getUid("_propagateCurrentDOMEvent:"), function $CPDOMWindowBridge___propagateCurrentDOMEvent_(self, _cmd, aFlag) +{ with(self) +{ + StopDOMEventPropagation = !aFlag; +} +}), new objj_method(sel_getUid("hitTest:"), function $CPDOMWindowBridge__hitTest_(self, _cmd, location) +{ with(self) +{ + var levels = _windowLevels, + layers = _windowLayers, + levelCount = levels.length, + theWindow = nil; + while (levelCount-- && !theWindow) + { + var windows = objj_msgSend(layers, "objectForKey:", levels[levelCount])._windows, + windowCount = windows.length; + while (windowCount-- && !theWindow) + { + var candidateWindow = windows[windowCount]; + if (!candidateWindow._ignoresMouseEvents && objj_msgSend(candidateWindow, "containsPoint:", location)) + theWindow = candidateWindow; + } + } + return theWindow; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("sharedDOMWindowBridge"), function $CPDOMWindowBridge__sharedDOMWindowBridge(self, _cmd) +{ with(self) +{ + if (!CPSharedDOMWindowBridge) + CPSharedDOMWindowBridge = objj_msgSend(objj_msgSend(CPDOMWindowBridge, "alloc"), "_initWithDOMWindow:", window); + return CPSharedDOMWindowBridge; +} +})]); +} +var CPDOMWindowGetFrame = function(_DOMWindow) +{ + var frame = nil; + if (_DOMWindow.outerWidth) + frame = CGRectMake(0, 0, _DOMWindow.outerWidth, _DOMWindow.outerHeight); + else + frame = CGRectMake(0, 0, -1, -1); + if (window.screenTop) + frame.origin = CGPointMake(_DOMWindow.screenLeft, _DOMWindow.screenTop, 0); + else if (window.screenX) + frame.origin = CGPointMake(_DOMWindow.screenX, _DOMWindow.screenY, 0); + if (_DOMWindow.innerWidth) + frame.size = CGSizeMake(_DOMWindow.innerWidth, _DOMWindow.innerHeight); + else if (document.documentElement && document.documentElement.clientWidth) + frame.size = CGSizeMake(_DOMWindow.document.documentElement.clientWidth, _DOMWindow.document.documentElement.clientHeight); + else + frame.size = CGSizeMake(_DOMWindow.document.body.clientWidth, _DOMWindow.document.body.clientHeight); + return frame; +} +var KeyCodesToPrevent = {}, + CharacterKeysToPrevent = {}, + KeyCodesWithoutKeyPressEvents = { '8':1, '9':1, '37':1, '38':1, '39':1, '40':1, '46':1, '33':1, '34':1 }; +var CTRL_KEY_CODE = 17; +{ +var the_class = objj_getClass("CPDOMWindowBridge") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPDOMWindowBridge\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("preventCharacterKeysFromPropagating:"), function $CPDOMWindowBridge__preventCharacterKeysFromPropagating_(self, _cmd, characters) +{ with(self) +{ + for(var i=characters.length; i>0; i--) + CharacterKeysToPrevent[""+characters[i-1].toLowerCase()] = YES; +} +}), new objj_method(sel_getUid("preventCharacterKeyFromPropagating:"), function $CPDOMWindowBridge__preventCharacterKeyFromPropagating_(self, _cmd, character) +{ with(self) +{ + CharacterKeysToPrevent[character.toLowerCase()] = YES; +} +}), new objj_method(sel_getUid("clearCharacterKeysToPreventFromPropagating"), function $CPDOMWindowBridge__clearCharacterKeysToPreventFromPropagating(self, _cmd) +{ with(self) +{ + CharacterKeysToPrevent = {}; +} +}), new objj_method(sel_getUid("preventKeyCodesFromPropagating:"), function $CPDOMWindowBridge__preventKeyCodesFromPropagating_(self, _cmd, keyCodes) +{ with(self) +{ + for(var i=keyCodes.length; i>0; i--) + KeyCodesToPrevent[keyCodes[i-1]] = YES; +} +}), new objj_method(sel_getUid("preventKeyCodeFromPropagating:"), function $CPDOMWindowBridge__preventKeyCodeFromPropagating_(self, _cmd, keyCode) +{ with(self) +{ + KeyCodesToPrevent[keyCode] = YES; +} +}), new objj_method(sel_getUid("clearKeyCodesToPreventFromPropagating"), function $CPDOMWindowBridge__clearKeyCodesToPreventFromPropagating(self, _cmd) +{ with(self) +{ + KeyCodesToPrevent = {}; +} +}), new objj_method(sel_getUid("_bridgeMouseEvent:"), function $CPDOMWindowBridge___bridgeMouseEvent_(self, _cmd, aDOMEvent) +{ with(self) +{ + var theType = _overriddenEventType || aDOMEvent.type; + if (theType === CPDOMEventDoubleClick) + { + _overriddenEventType = CPDOMEventMouseDown; + objj_msgSend(self, "_bridgeMouseEvent:", aDOMEvent); + _overriddenEventType = CPDOMEventMouseUp; + objj_msgSend(self, "_bridgeMouseEvent:", aDOMEvent); + _overriddenEventType = nil; + return; + } + try + { + var event, + location = { x:aDOMEvent.clientX, y:aDOMEvent.clientY }, + timestamp = aDOMEvent.timeStamp ? aDOMEvent.timeStamp : new Date(), + sourceElement = (aDOMEvent.target || aDOMEvent.srcElement), + windowNumber = 0, + modifierFlags = (aDOMEvent.shiftKey ? CPShiftKeyMask : 0) | + (aDOMEvent.ctrlKey ? CPControlKeyMask : 0) | + (aDOMEvent.altKey ? CPAlternateKeyMask : 0) | + (aDOMEvent.metaKey ? CPCommandKeyMask : 0); + StopDOMEventPropagation = YES; + if (_mouseDownWindow) + windowNumber = objj_msgSend(_mouseDownWindow, "windowNumber"); + else + { + var theWindow = objj_msgSend(self, "hitTest:", location); + if ((aDOMEvent.type === CPDOMEventMouseDown) && theWindow) + _mouseDownWindow = theWindow; + windowNumber = objj_msgSend(theWindow, "windowNumber"); + } + if (windowNumber) + { + var windowFrame = CPApp._windows[windowNumber]._frame; + location.x -= (windowFrame.origin.x); + location.y -= (windowFrame.origin.y); + } + switch (theType) + { + case CPDOMEventMouseUp: if(_mouseIsDown) + { + event = _CPEventFromNativeMouseEvent(aDOMEvent, CPLeftMouseUp, location, modifierFlags, timestamp, windowNumber, nil, -1, CPDOMEventGetClickCount(_lastMouseUp, timestamp, location), 0); + _mouseIsDown = NO; + _lastMouseUp = event; + _mouseDownWindow = nil; + } + if(_DOMEventMode) + { + _DOMEventMode = NO; + return; + } + break; + case CPDOMEventMouseDown: if (ExcludedDOMElements[sourceElement.tagName] && sourceElement != _DOMFocusElement) + { + _DOMEventMode = YES; + _mouseIsDown = YES; + objj_msgSend(CPApp, "sendEvent:", objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", CPLeftMouseDown, location, modifierFlags, timestamp, windowNumber, nil, -1, CPDOMEventGetClickCount(_lastMouseDown, timestamp, location), 0)); + objj_msgSend(CPApp, "sendEvent:", objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", CPLeftMouseUp, location, modifierFlags, timestamp, windowNumber, nil, -1, CPDOMEventGetClickCount(_lastMouseDown, timestamp, location), 0)); + return; + } + event = _CPEventFromNativeMouseEvent(aDOMEvent, CPLeftMouseDown, location, modifierFlags, timestamp, windowNumber, nil, -1, CPDOMEventGetClickCount(_lastMouseDown, timestamp, location), 0); + _mouseIsDown = YES; + _lastMouseDown = event; + break; + case CPDOMEventMouseMoved: if (_DOMEventMode) + return; + event = _CPEventFromNativeMouseEvent(aDOMEvent, _mouseIsDown ? CPLeftMouseDragged : CPMouseMoved, location, modifierFlags, timestamp, windowNumber, nil, -1, 1, 0); + break; + } + if (event) + { + event._DOMEvent = aDOMEvent; + objj_msgSend(CPApp, "sendEvent:", event); + } + if (StopDOMEventPropagation) + CPDOMEventStop(aDOMEvent); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + catch (anException) + { + objj_exception_report(anException, {path:"CPDOMWindowBridge.j"}); + } +} +}), new objj_method(sel_getUid("_bridgeKeyEvent:"), function $CPDOMWindowBridge___bridgeKeyEvent_(self, _cmd, aDOMEvent) +{ with(self) +{ + try + { + var event, + timestamp = aDOMEvent.timeStamp ? aDOMEvent.timeStamp : new Date(), + sourceElement = (aDOMEvent.target || aDOMEvent.srcElement), + windowNumber = objj_msgSend(objj_msgSend(CPApp, "keyWindow"), "windowNumber"), + modifierFlags = (aDOMEvent.shiftKey ? CPShiftKeyMask : 0) | + (aDOMEvent.ctrlKey ? CPControlKeyMask : 0) | + (aDOMEvent.altKey ? CPAlternateKeyMask : 0) | + (aDOMEvent.metaKey ? CPCommandKeyMask : 0); + if (ExcludedDOMElements[sourceElement.tagName] && sourceElement != _DOMFocusElement && sourceElement != _DOMPasteboardElement) + return; + StopDOMEventPropagation = !(modifierFlags & (CPControlKeyMask | CPCommandKeyMask)) || + CharacterKeysToPrevent[String.fromCharCode(aDOMEvent.keyCode || aDOMEvent.charCode).toLowerCase()] || + KeyCodesToPrevent[aDOMEvent.keyCode]; + var isNativePasteEvent = NO, + isNativeCopyOrCutEvent = NO; + switch (aDOMEvent.type) + { + case CPDOMEventKeyDown: + _keyCode = aDOMEvent.keyCode; + var characters = String.fromCharCode(_keyCode).toLowerCase(); + if (characters == "v" && (modifierFlags & CPPlatformActionKeyMask)) + { + _DOMPasteboardElement.select(); + _DOMPasteboardElement.value = ""; + isNativePasteEvent = YES; + } + else if ((characters == "c" || characters == "x") && (modifierFlags & CPPlatformActionKeyMask)) + isNativeCopyOrCutEvent = YES; + else if (!CPFeatureIsCompatible(CPJavascriptRemedialKeySupport)) + return; + else if (!KeyCodesWithoutKeyPressEvents[_keyCode] && (_keyCode == CTRL_KEY_CODE || !(modifierFlags & CPControlKeyMask))) + return; + case CPDOMEventKeyPress: + if ((aDOMEvent.target || aDOMEvent.srcElement) == _DOMPasteboardElement) + return; + var keyCode = _keyCode, + charCode = aDOMEvent.keyCode || aDOMEvent.charCode, + isARepeat = (_charCodes[keyCode] != nil); + _charCodes[keyCode] = charCode; + var characters = String.fromCharCode(charCode), + charactersIgnoringModifiers = characters.toLowerCase(); + event = objj_msgSend(CPEvent, "keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:", CPKeyDown, location, modifierFlags, timestamp, windowNumber, nil, characters, charactersIgnoringModifiers, isARepeat, keyCode); + if (isNativePasteEvent) + { + _pasteboardKeyDownEvent = event; + window.setNativeTimeout(function () { objj_msgSend(self, "_checkPasteboardElement") }, 0); + return; + } + break; + case CPDOMEventKeyUp: var keyCode = aDOMEvent.keyCode, + charCode = _charCodes[keyCode]; + _charCodes[keyCode] = nil; + var characters = String.fromCharCode(charCode), + charactersIgnoringModifiers = characters.toLowerCase(); + if (!(modifierFlags & CPShiftKeyMask)) + characters = charactersIgnoringModifiers; + event = objj_msgSend(CPEvent, "keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:", CPKeyUp, location, modifierFlags, timestamp, windowNumber, nil, characters, charactersIgnoringModifiers, NO, keyCode); + break; + } + if (event) + { + event._DOMEvent = aDOMEvent; + objj_msgSend(CPApp, "sendEvent:", event); + if (isNativeCopyOrCutEvent) + { + var pasteboard = objj_msgSend(CPPasteboard, "generalPasteboard"), + types = objj_msgSend(pasteboard, "types"); + if (types.length) + { + if (objj_msgSend(types, "indexOfObjectIdenticalTo:", CPStringPboardType) != CPNotFound) + _DOMPasteboardElement.value = objj_msgSend(pasteboard, "stringForType:", CPStringPboardType); + else + _DOMPasteboardElement.value = objj_msgSend(pasteboard, "_generateStateUID"); + _DOMPasteboardElement.select(); + window.setNativeTimeout(function() { objj_msgSend(self, "_clearPasteboardElement"); }, 0); + } + return; + } + } + if (StopDOMEventPropagation) + CPDOMEventStop(aDOMEvent); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + catch (anException) + { + objj_exception_report(anException, {path:"CPDOMWindowBridge.j"}); + } +} +}), new objj_method(sel_getUid("_bridgeScrollEvent:"), function $CPDOMWindowBridge___bridgeScrollEvent_(self, _cmd, aDOMEvent) +{ with(self) +{ + if(!aDOMEvent) + aDOMEvent = window.event; + try + { + if (CPFeatureIsCompatible(CPJavaScriptMouseWheelValues_8_15)) + { + var x = 0.0, + y = 0.0, + element = aDOMEvent.target; + while (element.nodeType !== 1) + element = element.parentNode; + if (element.offsetParent) + { + do + { + x += element.offsetLeft; + y += element.offsetTop; + } while (element = element.offsetParent); + } + var location = { x:(x + ((aDOMEvent.clientX - 8) / 15)), y:(y + ((aDOMEvent.clientY - 8) / 15)) };} + else + var location = { x:aDOMEvent.clientX, y:aDOMEvent.clientY }; + var deltaX = 0.0, + deltaY = 0.0, + windowNumber = 0, + timestamp = aDOMEvent.timeStamp ? aDOMEvent.timeStamp : new Date(), + modifierFlags = (aDOMEvent.shiftKey ? CPShiftKeyMask : 0) | + (aDOMEvent.ctrlKey ? CPControlKeyMask : 0) | + (aDOMEvent.altKey ? CPAlternateKeyMask : 0) | + (aDOMEvent.metaKey ? CPCommandKeyMask : 0); + StopDOMEventPropagation = YES; + windowNumber = objj_msgSend(objj_msgSend(self, "hitTest:", location), "windowNumber"); + if (!windowNumber) + return; + var windowFrame = CPApp._windows[windowNumber]._frame; + location.x -= CGRectGetMinX(windowFrame); + location.y -= CGRectGetMinY(windowFrame); + if(typeof aDOMEvent.wheelDeltaX != "undefined") + { + deltaX = aDOMEvent.wheelDeltaX / 120.0; + deltaY = aDOMEvent.wheelDeltaY / 120.0; + } + else if (aDOMEvent.wheelDelta) + deltaY = aDOMEvent.wheelDelta / 120.0; + else if (aDOMEvent.detail) + deltaY = -aDOMEvent.detail / 3.0; + else + return; + if(!CPFeatureIsCompatible(CPJavaScriptNegativeMouseWheelValues)) + { + deltaX = -deltaX; + deltaY = -deltaY; + } + var event = objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", CPScrollWheel, location, modifierFlags, timestamp, windowNumber, nil, -1, 1, 0 ); + event._DOMEvent = aDOMEvent; + event._deltaX = ROUND(deltaX * 1.5); + event._deltaY = ROUND(deltaY * 1.5); + objj_msgSend(CPApp, "sendEvent:", event); + if (StopDOMEventPropagation) + CPDOMEventStop(aDOMEvent); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + catch (anException) + { + objj_exception_report(anException, {path:"CPDOMWindowBridge.j"}); + } +} +}), new objj_method(sel_getUid("_bridgeResizeEvent:"), function $CPDOMWindowBridge___bridgeResizeEvent_(self, _cmd, aDOMEvent) +{ with(self) +{ + try + { + var oldSize = _frame.size; + _frame = CPDOMWindowGetFrame(_DOMWindow); + _contentBounds.size = CGSizeCreateCopy(_frame.size); + var levels = _windowLevels, + layers = _windowLayers, + levelCount = levels.length; + while (levelCount--) + { + var windows = objj_msgSend(layers, "objectForKey:", levels[levelCount])._windows, + windowCount = windows.length; + while (windowCount--) + objj_msgSend(windows[windowCount], "resizeWithOldBridgeSize:", oldSize); + } + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + catch (anException) + { + objj_exception_report(anException, {path:"CPDOMWindowBridge.j"}); + } +} +}), new objj_method(sel_getUid("_bridgeTouchEvent:"), function $CPDOMWindowBridge___bridgeTouchEvent_(self, _cmd, aDOMEvent) +{ with(self) +{ + try + { + if (aDOMEvent.touches && (aDOMEvent.touches.length == 1 || (aDOMEvent.touches.length == 0 && aDOMEvent.changedTouches.length == 1))) + { + var newEvent = {}; + switch(aDOMEvent.type) + { + case CPDOMEventTouchStart: newEvent.type = CPDOMEventMouseDown; + break; + case CPDOMEventTouchEnd: newEvent.type = CPDOMEventMouseUp; + break; + case CPDOMEventTouchMove: newEvent.type = CPDOMEventMouseMoved; + break; + case CPDOMEventTouchCancel: newEvent.type = CPDOMEventMouseUp; + break; + } + var touch = aDOMEvent.touches.length ? aDOMEvent.touches[0] : aDOMEvent.changedTouches[0]; + newEvent.clientX = touch.clientX; + newEvent.clientY = touch.clientY; + newEvent.timestamp = aDOMEvent.timestamp; + newEvent.target = aDOMEvent.target; + newEvent.shiftKey = newEvent.ctrlKey = newEvent.altKey = newEvent.metaKey = false; + newEvent.preventDefault = function(){if(aDOMEvent.preventDefault) aDOMEvent.preventDefault()}; + newEvent.stopPropagation = function(){if(aDOMEvent.stopPropagation) aDOMEvent.stopPropagation()}; + objj_msgSend(self, "_bridgeMouseEvent:", newEvent); + return; + } + else + { + if (aDOMEvent.preventDefault) + aDOMEvent.preventDefault(); + if (aDOMEvent.stopPropagation) + aDOMEvent.stopPropagation(); + } + } + catch(e) + { + objj_exception_report(e, {path:"CPDOMWindowBridge.j"}); + } +} +}), new objj_method(sel_getUid("_checkPasteboardElement"), function $CPDOMWindowBridge___checkPasteboardElement(self, _cmd) +{ with(self) +{ + try + { + var value = _DOMPasteboardElement.value; + if (objj_msgSend(value, "length")) + { + var pasteboard = objj_msgSend(CPPasteboard, "generalPasteboard"); + if (objj_msgSend(pasteboard, "_stateUID") != value) + { + objj_msgSend(pasteboard, "declareTypes:owner:", [CPStringPboardType], self); + objj_msgSend(pasteboard, "setString:forType:", value, CPStringPboardType); + } + } + objj_msgSend(self, "_clearPasteboardElement"); + objj_msgSend(CPApp, "sendEvent:", _pasteboardKeyDownEvent); + _pasteboardKeyDownEvent = nil; + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + catch (anException) + { + objj_exception_report(anException, {path:"CPDOMWindowBridge.j"}); + } +} +}), new objj_method(sel_getUid("_clearPasteboardElement"), function $CPDOMWindowBridge___clearPasteboardElement(self, _cmd) +{ with(self) +{ + _DOMPasteboardElement.value = ""; + _DOMPasteboardElement.blur(); +} +})]); +} +var CLICK_SPACE_DELTA = 5.0, + CLICK_TIME_DELTA = (typeof document != "undefined" && document.addEventListener) ? 350.0 : 1000.0; +var CPDOMEventGetClickCount = function(aComparisonEvent, aTimestamp, aLocation) +{ + if (!aComparisonEvent) + return 1; + var comparisonLocation = objj_msgSend(aComparisonEvent, "locationInWindow"); + return (aTimestamp - objj_msgSend(aComparisonEvent, "timestamp") < CLICK_TIME_DELTA && + ABS(comparisonLocation.x - aLocation.x) < CLICK_SPACE_DELTA && + ABS(comparisonLocation.y - aLocation.y) < CLICK_SPACE_DELTA) ? objj_msgSend(aComparisonEvent, "clickCount") + 1 : 1; +} +var CPDOMEventStop = function(aDOMEvent) +{ + aDOMEvent.cancelBubble = true; + aDOMEvent.returnValue = false; + if (aDOMEvent.preventDefault) + aDOMEvent.preventDefault(); + if (aDOMEvent.stopPropagation) + aDOMEvent.stopPropagation(); + if (aDOMEvent.type === CPDOMEventMouseDown) + { + CPSharedDOMWindowBridge._DOMFocusElement.focus(); + CPSharedDOMWindowBridge._DOMFocusElement.blur(); + } +} + +p;18;CPDOMWindowLayer.jI;20;Foundation/CPArray.jI;21;Foundation/CPObject.jc;3335; +{var the_class = objj_allocateClassPair(CPObject, "CPDOMWindowLayer"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_level"), new objj_ivar("_windows"), new objj_ivar("_DOMElement")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithLevel:"), function $CPDOMWindowLayer__initWithLevel_(self, _cmd, aLevel) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _level = aLevel; + _windows = []; + _DOMElement = document.createElement("div"); + _DOMElement.style.position = "absolute"; + _DOMElement.style.top = "0px"; + _DOMElement.style.left = "0px"; + _DOMElement.style.width = "1px"; + _DOMElement.style.height = "1px"; + } + return self; +} +}), new objj_method(sel_getUid("level"), function $CPDOMWindowLayer__level(self, _cmd) +{ with(self) +{ + return _level; +} +}), new objj_method(sel_getUid("removeWindow:"), function $CPDOMWindowLayer__removeWindow_(self, _cmd, aWindow) +{ with(self) +{ + if (!aWindow._isVisible) + return; + var index = aWindow._index, + count = _windows.length - 1; + CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 8; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = aWindow._DOMElement;; + objj_msgSend(_windows, "removeObjectAtIndex:", aWindow._index); + for (; index < count; ++index) + { + _windows[index]._index = index; + _windows[index]._DOMElement.style.zIndex = index; + } + aWindow._isVisible = NO; +} +}), new objj_method(sel_getUid("insertWindow:atIndex:"), function $CPDOMWindowLayer__insertWindow_atIndex_(self, _cmd, aWindow, anIndex) +{ with(self) +{ + var count = objj_msgSend(_windows, "count"), + zIndex = (anIndex == CPNotFound ? count : anIndex), + isVisible = aWindow._isVisible; + if (isVisible) + { + zIndex = MIN(zIndex, aWindow._index); + objj_msgSend(_windows, "removeObjectAtIndex:", aWindow._index); + } + else + ++count; + if (anIndex == CPNotFound || anIndex >= count) + objj_msgSend(_windows, "addObject:", aWindow); + else + objj_msgSend(_windows, "insertObject:atIndex:", aWindow, anIndex); + for (; zIndex < count; ++zIndex) + { + _windows[zIndex]._index = zIndex; + _windows[zIndex]._DOMElement.style.zIndex = zIndex; + } + if (!isVisible) + { + if (aWindow._DOMElement.CPDOMDisplayContext) aWindow._DOMElement.CPDOMDisplayContext[0] = -1; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 6; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = aWindow._DOMElement;; + aWindow._isVisible = YES; + if (objj_msgSend(aWindow, "isFullBridge")) + objj_msgSend(aWindow, "setFrame:", objj_msgSend(aWindow._bridge, "visibleFrame")); + } +} +}), new objj_method(sel_getUid("orderedWindows"), function $CPDOMWindowLayer__orderedWindows(self, _cmd) +{ with(self) +{ + return _windows; +} +})]); +} + +p;14;CPDragServer.jI;15;AppKit/CPView.jI;16;AppKit/CPEvent.jI;21;AppKit/CPPasteboard.jI;20;AppKit/CPImageView.jc;12323; +var CPSharedDragServer = nil; +var CPDragServerView = nil, + CPDragServerSource = nil, + CPDragServerWindow = nil, + CPDragServerOffset = nil, + CPDragServerLocation = nil, + CPDragServerPasteboard = nil, + CPDragServerDestination = nil, + CPDragServerDraggingInfo = nil, + CPDragServerPreviousEvent = nil, + CPDragServerAutoscrollInterval = nil; +var CPDragServerIsDraggingImage = NO, + CPDragServerShouldSendDraggedViewMovedTo = NO, + CPDragServerShouldSendDraggedImageMovedTo = NO, + CPDragServerShouldSendDraggedViewEndedAtOperation = NO, + CPDragServerShouldSendDraggedImageEndedAtOperation = NO; +var CPDragServerAutoscroll = function() +{ + objj_msgSend(CPDragServerSource, "autoscroll:", CPDragServerPreviousEvent); +} +var CPDragServerStartDragging = function(anEvent) +{ + CPDragServerUpdateDragging(anEvent); +} +var CPDragServerUpdateDragging = function(anEvent) +{ + if(objj_msgSend(anEvent, "type") == CPLeftMouseUp) + { + if (CPDragServerAutoscrollInterval !== nil) + clearInterval(CPDragServerAutoscrollInterval); + CPDragServerAutoscrollInterval = nil; + CPDragServerLocation = objj_msgSend((objj_msgSend(CPDragServerDestination, "isKindOfClass:", objj_msgSend(CPWindow, "class")) ? CPDragServerDestination : objj_msgSend(CPDragServerDestination, "window")), "convertBridgeToBase:", objj_msgSend(objj_msgSend(anEvent, "window"), "convertBaseToBridge:", objj_msgSend(anEvent, "locationInWindow"))); + objj_msgSend(CPDragServerView, "removeFromSuperview"); + objj_msgSend(CPSharedDragServer._dragWindow, "orderOut:", nil); + if (CPDragServerDestination && + (!objj_msgSend(CPDragServerDestination, "respondsToSelector:", sel_getUid("prepareForDragOperation:")) || objj_msgSend(CPDragServerDestination, "prepareForDragOperation:", CPDragServerDraggingInfo)) && + (!objj_msgSend(CPDragServerDestination, "respondsToSelector:", sel_getUid("performDragOperation:")) || objj_msgSend(CPDragServerDestination, "performDragOperation:", CPDragServerDraggingInfo)) && + objj_msgSend(CPDragServerDestination, "respondsToSelector:", sel_getUid("concludeDragOperation:"))) + objj_msgSend(CPDragServerDestination, "concludeDragOperation:", CPDragServerDraggingInfo); + if (CPDragServerShouldSendDraggedImageEndedAtOperation) + objj_msgSend(CPDragServerSource, "draggedImage:endedAt:operation:", objj_msgSend(CPDragServerView, "image"), CPDragServerLocation, NO); + else if (CPDragServerShouldSendDraggedViewEndedAtOperation) + objj_msgSend(CPDragServerSource, "draggedView:endedAt:operation:", CPDragServerView, CPDragServerLocation, NO); + CPDragServerIsDraggingImage = NO; + CPDragServerDestination = nil; + return; + } + if (CPDragServerAutoscrollInterval === nil) + { + if (objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("autoscroll:"))) + CPDragServerAutoscrollInterval = setInterval(CPDragServerAutoscroll, 100); + } + CPDragServerPreviousEvent = anEvent; + objj_msgSend(CPApp, "setCallback:forNextEventMatchingMask:untilDate:inMode:dequeue:", CPDragServerUpdateDragging, CPMouseMovedMask | CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, 0, NO); + var location = objj_msgSend(anEvent, "locationInWindow"), + operation = + bridgeLocation = objj_msgSend(objj_msgSend(anEvent, "window"), "convertBaseToBridge:", location); + var draggingDestination = objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "_dragHitTest:pasteboard:", bridgeLocation, CPDragServerPasteboard); + CPDragServerLocation = objj_msgSend((objj_msgSend(draggingDestination, "isKindOfClass:", objj_msgSend(CPWindow, "class")) ? draggingDestination : objj_msgSend(draggingDestination, "window")), "convertBridgeToBase:", bridgeLocation); + if(draggingDestination != CPDragServerDestination) + { + if (CPDragServerDestination && objj_msgSend(CPDragServerDestination, "respondsToSelector:", sel_getUid("draggingExited:"))) + objj_msgSend(CPDragServerDestination, "draggingExited:", CPDragServerDraggingInfo); + CPDragServerDestination = draggingDestination; + if (CPDragServerDestination && objj_msgSend(CPDragServerDestination, "respondsToSelector:", sel_getUid("draggingEntered:"))) + objj_msgSend(CPDragServerDestination, "draggingEntered:", CPDragServerDraggingInfo); + } + else if (CPDragServerDestination && objj_msgSend(CPDragServerDestination, "respondsToSelector:", sel_getUid("draggingUpdated:"))) + objj_msgSend(CPDragServerDestination, "draggingUpdated:", CPDragServerDraggingInfo); + location.x -= CPDragServerOffset.x; + location.y -= CPDragServerOffset.y; + objj_msgSend(CPDragServerView, "setFrameOrigin:", location); + if (CPDragServerShouldSendDraggedImageMovedTo) + objj_msgSend(CPDragServerSource, "draggedImage:movedTo:", objj_msgSend(CPDragServerView, "image"), location); + else if (CPDragServerShouldSendDraggedViewMovedTo) + objj_msgSend(CPDragServerSource, "draggedView:movedTo:", CPDragServerView, location); +} +{var the_class = objj_allocateClassPair(CPObject, "CPDraggingInfo"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("draggingSource"), function $CPDraggingInfo__draggingSource(self, _cmd) +{ with(self) +{ + return CPDragServerSource; +} +}), new objj_method(sel_getUid("draggingLocation"), function $CPDraggingInfo__draggingLocation(self, _cmd) +{ with(self) +{ + return CPDragServerLocation; +} +}), new objj_method(sel_getUid("draggingPasteboard"), function $CPDraggingInfo__draggingPasteboard(self, _cmd) +{ with(self) +{ + return CPDragServerPasteboard; +} +}), new objj_method(sel_getUid("draggedImage"), function $CPDraggingInfo__draggedImage(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDragServerView, "image"); +} +}), new objj_method(sel_getUid("draggedImageLocation"), function $CPDraggingInfo__draggedImageLocation(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "draggedViewLocation"); +} +}), new objj_method(sel_getUid("draggedViewLocation"), function $CPDraggingInfo__draggedViewLocation(self, _cmd) +{ with(self) +{ + return objj_msgSend((objj_msgSend(CPDragServerDestination, "isKindOfClass:", objj_msgSend(CPWindow, "class")) ? CPDragServerDestination : objj_msgSend(CPDragServerDestination, "window")), "convertBridgeToBase:", objj_msgSend(CPDragServerView, "frame").origin); +} +}), new objj_method(sel_getUid("draggedView"), function $CPDraggingInfo__draggedView(self, _cmd) +{ with(self) +{ + return CPDragServerView; +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPDragServer"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_dragWindow"), new objj_ivar("_imageView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPDragServer__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _dragWindow = objj_msgSend(objj_msgSend(CPWindow, "alloc"), "initWithContentRect:styleMask:", CPRectMakeZero(), CPBorderlessWindowMask); + objj_msgSend(_dragWindow, "setLevel:", CPDraggingWindowLevel); + } + return self; +} +}), new objj_method(sel_getUid("dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:"), function $CPDragServer__dragView_fromWindow_at_offset_event_pasteboard_source_slideBack_(self, _cmd, aView, aWindow, viewLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack) +{ with(self) +{ + var eventLocation = objj_msgSend(anEvent, "locationInWindow"); + CPDragServerView = aView; + CPDragServerSource = aSourceObject; + CPDragServerWindow = aWindow; + CPDragServerOffset = CPPointMake(eventLocation.x - viewLocation.x, eventLocation.y - viewLocation.y); + CPDragServerPasteboard = objj_msgSend(CPPasteboard, "pasteboardWithName:", CPDragPboard); + objj_msgSend(_dragWindow, "setFrameSize:", CGSizeMakeCopy(objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "frame").size)); + objj_msgSend(_dragWindow, "orderFront:", self); + objj_msgSend(aView, "setFrameOrigin:", viewLocation); + objj_msgSend(objj_msgSend(_dragWindow, "contentView"), "addSubview:", aView); + if (CPDragServerIsDraggingImage) + { + if (objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("draggedImage:beganAt:"))) + objj_msgSend(CPDragServerSource, "draggedImage:beganAt:", objj_msgSend(aView, "image"), viewLocation); + CPDragServerShouldSendDraggedImageMovedTo = objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("draggedImage:movedTo:")); + CPDragServerShouldSendDraggedImageEndedAtOperation = objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("draggedImage:endAt:operation:")); + CPDragServerShouldSendDraggedViewMovedTo = NO; + CPDragServerShouldSendDraggedViewEndedAtOperation = NO; + } + else + { + if (objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("draggedView:beganAt:"))) + objj_msgSend(CPDragServerSource, "draggedView:beganAt:", aView, viewLocation); + CPDragServerShouldSendDraggedViewMovedTo = objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("draggedView:movedTo:")); + CPDragServerShouldSendDraggedViewEndedAtOperation = objj_msgSend(CPDragServerSource, "respondsToSelector:", sel_getUid("draggedView:endedAt:operation:")); + CPDragServerShouldSendDraggedImageMovedTo = NO; + CPDragServerShouldSendDraggedImageEndedAtOperation = NO; + } + CPDragServerStartDragging(anEvent); +} +}), new objj_method(sel_getUid("dragImage:fromWindow:at:offset:event:pasteboard:source:slideBack:"), function $CPDragServer__dragImage_fromWindow_at_offset_event_pasteboard_source_slideBack_(self, _cmd, anImage, aWindow, imageLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack) +{ with(self) +{ + CPDragServerIsDraggingImage = YES; + if (!_imageView) + _imageView = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CPRectMakeZero()); + objj_msgSend(_imageView, "setImage:", anImage); + objj_msgSend(_imageView, "setFrameSize:", CGSizeMakeCopy(objj_msgSend(anImage, "size"))); + objj_msgSend(self, "dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:", _imageView, aWindow, imageLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPDragServer__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPDragServer, "class")) + return; + CPDragServerDraggingInfo = objj_msgSend(objj_msgSend(CPDraggingInfo, "alloc"), "init"); +} +}), new objj_method(sel_getUid("sharedDragServer"), function $CPDragServer__sharedDragServer(self, _cmd) +{ with(self) +{ + if (!CPSharedDragServer) + CPSharedDragServer = objj_msgSend(objj_msgSend(CPDragServer, "alloc"), "init"); + return CPSharedDragServer; +} +})]); +} +{ +var the_class = objj_getClass("CPWindow") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPWindow\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("_dragHitTest:pasteboard:"), function $CPWindow___dragHitTest_pasteboard_(self, _cmd, aPoint, aPasteboard) +{ with(self) +{ + if (!_inclusiveRegisteredDraggedTypes) + return nil; + var adjustedPoint = { x:aPoint.x - (_frame.origin.x), y:aPoint.y - (_frame.origin.y) }, + hitView = objj_msgSend(_windowView, "hitTest:", adjustedPoint); + while (hitView && !objj_msgSend(aPasteboard, "availableTypeFromArray:", objj_msgSend(hitView, "registeredDraggedTypes"))) + hitView = objj_msgSend(hitView, "superview"); + if (hitView) + return hitView; + if (objj_msgSend(aPasteboard, "availableTypeFromArray:", objj_msgSend(self, "registeredDraggedTypes"))) + return self; + return nil; +} +})]); +} + +p;9;CPEvent.jI;21;Foundation/CPObject.jc;11847; +CPLeftMouseDown = 1; +CPLeftMouseUp = 2; +CPRightMouseDown = 3; +CPRightMouseUp = 4; +CPMouseMoved = 5; +CPLeftMouseDragged = 6; +CPRightMouseDragged = 7; +CPMouseEntered = 8; +CPMouseExited = 9; +CPKeyDown = 10; +CPKeyUp = 11; +CPFlagsChanged = 12; +CPAppKitDefined = 13; +CPSystemDefined = 14; +CPApplicationDefined = 15; +CPPeriodic = 16; +CPCursorUpdate = 17; +CPScrollWheel = 22; +CPOtherMouseDown = 25; +CPOtherMouseUp = 26; +CPOtherMouseDragged = 27; +CPTouchStart = 28; +CPTouchMove = 29; +CPTouchEnd = 30; +CPTouchCancel = 31; +CPAlphaShiftKeyMask = 1 << 16; +CPShiftKeyMask = 1 << 17; +CPControlKeyMask = 1 << 18; +CPAlternateKeyMask = 1 << 19; +CPCommandKeyMask = 1 << 20; +CPNumericPadKeyMask = 1 << 21; +CPHelpKeyMask = 1 << 22; +CPFunctionKeyMask = 1 << 23; +CPDeviceIndependentModifierFlagsMask = 0xffff0000; +CPLeftMouseDownMask = 1 << CPLeftMouseDown; +CPLeftMouseUpMask = 1 << CPLeftMouseUp; +CPRightMouseDownMask = 1 << CPRightMouseDown; +CPRightMouseUpMask = 1 << CPRightMouseUp; +CPOtherMouseDownMask = 1 << CPOtherMouseDown; +CPOtherMouseUpMask = 1 << CPOtherMouseUp; +CPMouseMovedMask = 1 << CPMouseMoved; +CPLeftMouseDraggedMask = 1 << CPLeftMouseDragged; +CPRightMouseDraggedMask = 1 << CPRightMouseDragged; +CPOtherMouseDragged = 1 << CPOtherMouseDragged; +CPMouseEnteredMask = 1 << CPMouseEntered; +CPMouseExitedMask = 1 << CPMouseExited; +CPCursorUpdateMask = 1 << CPCursorUpdate; +CPKeyDownMask = 1 << CPKeyDown; +CPKeyUpMask = 1 << CPKeyUp; +CPFlagsChangedMask = 1 << CPFlagsChanged; +CPAppKitDefinedMask = 1 << CPAppKitDefined; +CPSystemDefinedMask = 1 << CPSystemDefined; +CPApplicationDefinedMask = 1 << CPApplicationDefined; +CPPeriodicMask = 1 << CPPeriodic; +CPScrollWheelMask = 1 << CPScrollWheel; +CPAnyEventMask = 0xffffffff; +CPDOMEventDoubleClick = "dblclick", +CPDOMEventMouseDown = "mousedown", +CPDOMEventMouseUp = "mouseup", +CPDOMEventMouseMoved = "mousemove", +CPDOMEventMouseDragged = "mousedrag", +CPDOMEventKeyUp = "keyup", +CPDOMEventKeyDown = "keydown", +CPDOMEventKeyPress = "keypress"; +CPDOMEventCopy = "copy"; +CPDOMEventPaste = "paste"; +CPDOMEventScrollWheel = "mousewheel"; +CPDOMEventTouchStart = "touchstart"; +CPDOMEventTouchMove = "touchmove"; +CPDOMEventTouchEnd = "touchend"; +CPDOMEventTouchCancel = "touchcancel"; +var _CPEventPeriodicEventPeriod = 0, + _CPEventPeriodicEventTimer = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPEvent"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_type"), new objj_ivar("_location"), new objj_ivar("_modifierFlags"), new objj_ivar("_timestamp"), new objj_ivar("_context"), new objj_ivar("_eventNumber"), new objj_ivar("_clickCount"), new objj_ivar("_pressure"), new objj_ivar("_window"), new objj_ivar("_windowNumber"), new objj_ivar("_characters"), new objj_ivar("_isARepeat"), new objj_ivar("_keyCode"), new objj_ivar("_DOMEvent"), new objj_ivar("_deltaX"), new objj_ivar("_deltaY"), new objj_ivar("_deltaZ")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("_initMouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:"), function $CPEvent___initMouseEventWithType_location_modifierFlags_timestamp_windowNumber_context_eventNumber_clickCount_pressure_(self, _cmd, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, anEventNumber, aClickCount, aPressure) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _type = anEventType; + _location = CPPointCreateCopy(aPoint); + _modifierFlags = modifierFlags; + _timestamp = aTimestamp; + _context = aGraphicsContext; + _eventNumber = anEventNumber; + _clickCount = aClickCount; + _pressure = aPressure; + _window = objj_msgSend(CPApp, "windowWithWindowNumber:", aWindowNumber); + } + return self; +} +}), new objj_method(sel_getUid("_initKeyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:"), function $CPEvent___initKeyEventWithType_location_modifierFlags_timestamp_windowNumber_context_characters_charactersIgnoringModifiers_isARepeat_keyCode_(self, _cmd, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, characters, unmodCharacters, isARepeat, code) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _type = anEventType; + _location = CPPointCreateCopy(aPoint); + _modifierFlags = modifierFlags; + _timestamp = aTimestamp; + _context = aGraphicsContext; + _characters = characters; + _charactersIgnoringModifiers = unmodCharacters; + _isARepeat = isARepeat; + _keyCode = code; + _windowNumber = aWindowNumber; + } + return self; +} +}), new objj_method(sel_getUid("_initOtherEventWithType:location:modifierFlags:timestamp:windowNumber:context:subtype:data1:data2:"), function $CPEvent___initOtherEventWithType_location_modifierFlags_timestamp_windowNumber_context_subtype_data1_data2_(self, _cmd, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, aSubtype, aData1, aData2) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _type = anEventType; + _location = CPPointCreateCopy(aPoint); + _modifierFlags = modifierFlags; + _timestamp = aTimestamp; + _context = aGraphicsContext; + _subtype = aSubtype; + _data1 = aData1; + _data2 = aData2; + } + return self; +} +}), new objj_method(sel_getUid("locationInWindow"), function $CPEvent__locationInWindow(self, _cmd) +{ with(self) +{ + return _location; +} +}), new objj_method(sel_getUid("modifierFlags"), function $CPEvent__modifierFlags(self, _cmd) +{ with(self) +{ + return _modifierFlags; +} +}), new objj_method(sel_getUid("timestamp"), function $CPEvent__timestamp(self, _cmd) +{ with(self) +{ + return _timestamp; +} +}), new objj_method(sel_getUid("type"), function $CPEvent__type(self, _cmd) +{ with(self) +{ + return _type; +} +}), new objj_method(sel_getUid("window"), function $CPEvent__window(self, _cmd) +{ with(self) +{ + if (!_window) + _window = objj_msgSend(CPApp, "windowWithWindowNumber:", _windowNumber); + return _window; +} +}), new objj_method(sel_getUid("windowNumber"), function $CPEvent__windowNumber(self, _cmd) +{ with(self) +{ + return _windowNumber; +} +}), new objj_method(sel_getUid("buttonNumber"), function $CPEvent__buttonNumber(self, _cmd) +{ with(self) +{ + return _buttonNumber; +} +}), new objj_method(sel_getUid("clickCount"), function $CPEvent__clickCount(self, _cmd) +{ with(self) +{ + return _clickCount; +} +}), new objj_method(sel_getUid("characters"), function $CPEvent__characters(self, _cmd) +{ with(self) +{ + return _characters; +} +}), new objj_method(sel_getUid("charactersIgnoringModifiers"), function $CPEvent__charactersIgnoringModifiers(self, _cmd) +{ with(self) +{ + return _charactersIgnoringModifiers; +} +}), new objj_method(sel_getUid("isARepeat"), function $CPEvent__isARepeat(self, _cmd) +{ with(self) +{ + return _isARepeat; +} +}), new objj_method(sel_getUid("keyCode"), function $CPEvent__keyCode(self, _cmd) +{ with(self) +{ + return _keyCode; +} +}), new objj_method(sel_getUid("pressure"), function $CPEvent__pressure(self, _cmd) +{ with(self) +{ + return _pressure; +} +}), new objj_method(sel_getUid("_DOMEvent"), function $CPEvent___DOMEvent(self, _cmd) +{ with(self) +{ + return _DOMEvent; +} +}), new objj_method(sel_getUid("deltaX"), function $CPEvent__deltaX(self, _cmd) +{ with(self) +{ + return _deltaX; +} +}), new objj_method(sel_getUid("deltaY"), function $CPEvent__deltaY(self, _cmd) +{ with(self) +{ + return _deltaY; +} +}), new objj_method(sel_getUid("deltaZ"), function $CPEvent__deltaZ(self, _cmd) +{ with(self) +{ + return _deltaZ; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:"), function $CPEvent__keyEventWithType_location_modifierFlags_timestamp_windowNumber_context_characters_charactersIgnoringModifiers_isARepeat_keyCode_(self, _cmd, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, characters, unmodCharacters, repeatKey, code) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "_initKeyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:", anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, characters, unmodCharacters, repeatKey, code); +} +}), new objj_method(sel_getUid("mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:"), function $CPEvent__mouseEventWithType_location_modifierFlags_timestamp_windowNumber_context_eventNumber_clickCount_pressure_(self, _cmd, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, anEventNumber, aClickCount, aPressure) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "_initMouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, anEventNumber, aClickCount, aPressure); +} +}), new objj_method(sel_getUid("otherEventWithType:location:modifierFlags:timestamp:windowNumber:context:subtype:data1:data2:"), function $CPEvent__otherEventWithType_location_modifierFlags_timestamp_windowNumber_context_subtype_data1_data2_(self, _cmd, anEventType, aLocation, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, aSubtype, aData1, aData2) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "_initOtherEventWithType:location:modifierFlags:timestamp:windowNumber:context:subtype:data1:data2:", anEventType, aLocation, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, aSubtype, aData1, aData2); +} +}), new objj_method(sel_getUid("startPeriodicEventsAfterDelay:withPeriod:"), function $CPEvent__startPeriodicEventsAfterDelay_withPeriod_(self, _cmd, aDelay, aPeriod) +{ with(self) +{ + _CPEventPeriodicEventPeriod = aPeriod; + _CPEventPeriodicEventTimer = window.setTimeout(function() { _CPEventPeriodicEventTimer = window.setInterval(_CPEventFirePeriodEvent, aPeriod * 1000.0); }, aDelay * 1000.0); +} +}), new objj_method(sel_getUid("stopPeriodicEvents"), function $CPEvent__stopPeriodicEvents(self, _cmd) +{ with(self) +{ + if (_CPEventPeriodicEventTimer === nil) + return; + window.clearTimeout(_CPEventPeriodicEventTimer); + _CPEventPeriodicEventTimer = nil; +} +})]); +} +_CPEventFirePeriodEvent= function() +{ + objj_msgSend(CPApp, "sendEvent:", objj_msgSend(CPEvent, "otherEventWithType:location:modifierFlags:timestamp:windowNumber:context:subtype:data1:data2:", CPPeriodic, { x:0.0, y:0.0 }, 0, 0, 0, nil, 0, 0, 0)); +} +var CPEventClass = objj_msgSend(CPEvent, "class"); +_CPEventFromNativeMouseEvent= function(aNativeEvent, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, anEventNumber, aClickCount, aPressure) +{ + aNativeEvent.isa = CPEventClass; + aNativeEvent._type = anEventType; + aNativeEvent._location = aPoint; + aNativeEvent._modifierFlags = modifierFlags; + aNativeEvent._timestamp = aTimestamp; + aNativeEvent._windowNumber = aWindowNumber; + aNativeEvent._window = nil; + aNativeEvent._context = aGraphicsContext; + aNativeEvent._eventNumber = anEventNumber; + aNativeEvent._clickCount = aClickCount; + aNativeEvent._pressure = aPressure; + return aNativeEvent; +} + +p;14;CPFlashMovie.jI;21;Foundation/CPObject.jc;844; +{var the_class = objj_allocateClassPair(CPObject, "CPFlashMovie"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_fileName")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFile:"), function $CPFlashMovie__initWithFile_(self, _cmd, aFileName) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _fileName = aFileName; + return self; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("flashMovieWithFile:"), function $CPFlashMovie__flashMovieWithFile_(self, _cmd, aFileName) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithFile:", aFileName); +} +})]); +} + +p;13;CPFlashView.ji;19;CPDOMWindowBridge.ji;14;CPFlashMovie.ji;8;CPView.jc;2794; +{var the_class = objj_allocateClassPair(CPView, "CPFlashView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_flashMovie"), new objj_ivar("_DOMEmbedElement"), new objj_ivar("_DOMMParamElement"), new objj_ivar("_DOMObjectElement")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPFlashView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _DOMObjectElement = document.createElement("object"); + _DOMObjectElement.width = "100%"; + _DOMObjectElement.height = "100%"; + _DOMObjectElement.style.top = "0px"; + _DOMObjectElement.style.left = "0px"; + _DOMParamElement = document.createElement("param"); + _DOMParamElement.name = "movie"; + _DOMObjectElement.appendChild(_DOMParamElement); + var param = document.createElement("param"); + param.name = "wmode"; + param.value = "transparent"; + _DOMObjectElement.appendChild(param); + _DOMEmbedElement = document.createElement("embed"); + _DOMEmbedElement.type = "application/x-shockwave-flash"; + _DOMEmbedElement.setAttribute("wmode", "transparent"); + _DOMEmbedElement.width = "100%"; + _DOMEmbedElement.height = "100%"; + _DOMElement.appendChild(_DOMEmbedElement); + _DOMElement.appendChild(_DOMObjectElement); + } + return self; +} +}), new objj_method(sel_getUid("setFlashMovie:"), function $CPFlashView__setFlashMovie_(self, _cmd, aFlashMovie) +{ with(self) +{ + if (_flashMovie == aFlashMovie) + return; + _flashMovie = aFlashMovie; + _DOMParamElement.value = aFlashMovie._fileName; + if (_DOMEmbedElement) + _DOMEmbedElement.src = aFlashMovie._fileName; +} +}), new objj_method(sel_getUid("flashMovie"), function $CPFlashView__flashMovie(self, _cmd) +{ with(self) +{ + return _flashMovie; +} +}), new objj_method(sel_getUid("mouseDragged:"), function $CPFlashView__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "_propagateCurrentDOMEvent:", YES); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPFlashView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "_propagateCurrentDOMEvent:", YES); +} +}), new objj_method(sel_getUid("mouseUp:"), function $CPFlashView__mouseUp_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "_propagateCurrentDOMEvent:", YES); +} +})]); +} + +p;8;CPFont.jc;3659;var _CPFonts = {}; + _CPFontSystemFontFace = "Arial"; +{var the_class = objj_allocateClassPair(CPObject, "CPFont"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_name"), new objj_ivar("_size"), new objj_ivar("_isBold"), new objj_ivar("_cssString")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("_initWithName:size:bold:"), function $CPFont___initWithName_size_bold_(self, _cmd, aName, aSize, isBold) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _name = aName; + _size = aSize; + _isBold = isBold; + _cssString = (_isBold ? "bold " : "") + ROUND(aSize) + "px '" + aName + "'"; + _CPFonts[_cssString] = self; + } + return self; +} +}), new objj_method(sel_getUid("size"), function $CPFont__size(self, _cmd) +{ with(self) +{ + return _size; +} +}), new objj_method(sel_getUid("cssString"), function $CPFont__cssString(self, _cmd) +{ with(self) +{ + return _cssString; +} +}), new objj_method(sel_getUid("familyName"), function $CPFont__familyName(self, _cmd) +{ with(self) +{ + return _name; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("fontWithName:size:"), function $CPFont__fontWithName_size_(self, _cmd, aName, aSize) +{ with(self) +{ + return _CPFonts[(NO ? "bold " : "") + ROUND(aSize) + "px '" + aName + "'"] || objj_msgSend(objj_msgSend(CPFont, "alloc"), "_initWithName:size:bold:", aName, aSize, NO); +} +}), new objj_method(sel_getUid("boldFontWithName:size:"), function $CPFont__boldFontWithName_size_(self, _cmd, aName, aSize) +{ with(self) +{ + return _CPFonts[(YES ? "bold " : "") + ROUND(aSize) + "px '" + aName + "'"] || objj_msgSend(objj_msgSend(CPFont, "alloc"), "_initWithName:size:bold:", aName, aSize, YES); +} +}), new objj_method(sel_getUid("systemFontOfSize:"), function $CPFont__systemFontOfSize_(self, _cmd, aSize) +{ with(self) +{ + return _CPFonts[(NO ? "bold " : "") + ROUND(aSize) + "px '" + _CPFontSystemFontFace + "'"] || objj_msgSend(objj_msgSend(CPFont, "alloc"), "_initWithName:size:bold:", _CPFontSystemFontFace, aSize, NO); +} +}), new objj_method(sel_getUid("boldSystemFontOfSize:"), function $CPFont__boldSystemFontOfSize_(self, _cmd, aSize) +{ with(self) +{ + return _CPFonts[(YES ? "bold " : "") + ROUND(aSize) + "px '" + _CPFontSystemFontFace + "'"] || objj_msgSend(objj_msgSend(CPFont, "alloc"), "_initWithName:size:bold:", _CPFontSystemFontFace, aSize, YES); +} +})]); +} +var CPFontNameKey = "CPFontNameKey", + CPFontSizeKey = "CPFontSizeKey", + CPFontIsBoldKey = "CPFontIsBoldKey"; +{ +var the_class = objj_getClass("CPFont") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPFont\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPFont__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + return objj_msgSend(self, "_initWithName:size:bold:", objj_msgSend(aCoder, "decodeObjectForKey:", CPFontNameKey), objj_msgSend(aCoder, "decodeFloatForKey:", CPFontSizeKey), objj_msgSend(aCoder, "decodeBoolForKey:", CPFontIsBoldKey)); +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPFont__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _name, CPFontNameKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _size, CPFontSizeKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _isBold, CPFontIsBoldKey); +} +})]); +} + +p;15;CPFontManager.jI;21;Foundation/CPObject.jI;15;AppKit/CPFont.jc;4835; +var CPSharedFontManager = nil, + CPFontManagerFactory = Nil; +{var the_class = objj_allocateClassPair(CPObject, "CPFontManager"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_availableFonts")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("availableFonts"), function $CPFontManager__availableFonts(self, _cmd) +{ with(self) +{ + if (!_availableFonts) + { + _CPFontDetectSpan = document.createElement("span"); + _CPFontDetectSpan.fontSize = "24px"; + _CPFontDetectSpan.appendChild(document.createTextNode("mmmmmmmmmml")); + var div = document.createElement("div"); + div.style.position = "absolute"; + div.style.top = "-1000px"; + div.appendChild(_CPFontDetectSpan); + document.getElementsByTagName("body")[0].appendChild(div); + _CPFontDetectReferenceFonts = _CPFontDetectPickTwoDifferentFonts(["monospace", "serif", "sans-serif", "cursive"]); + _availableFonts = []; + for (var i = 0; i < _CPFontDetectAllFonts.length; i++) { + var available = _CPFontDetectFontAvailable(_CPFontDetectAllFonts[i]); + if (available) + _availableFonts.push(_CPFontDetectAllFonts[i]); + } + } + return _availableFonts; +} +}), new objj_method(sel_getUid("fontWithNameIsAvailable:"), function $CPFontManager__fontWithNameIsAvailable_(self, _cmd, aFontName) +{ with(self) +{ + return _CPFontDetectFontAvailable(aFontName); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("sharedFontManager"), function $CPFontManager__sharedFontManager(self, _cmd) +{ with(self) +{ + if (!CPSharedFontManager) + CPSharedFontManager = objj_msgSend(objj_msgSend(CPFontManagerFactory, "alloc"), "init"); + return CPSharedFontManager; +} +}), new objj_method(sel_getUid("setFontManagerFactory:"), function $CPFontManager__setFontManagerFactory_(self, _cmd, aClass) +{ with(self) +{ + CPFontManagerFactory = aClass; +} +})]); +} +var _CPFontDetectSpan, + _CPFontDetectReferenceFonts, + _CPFontDetectAllFonts = [ + "American Typewriter", + "Apple Chancery","Arial","Arial Black","Arial Narrow","Arial Rounded MT Bold","Arial Unicode MS", + "Big Caslon","Bitstream Vera Sans","Bitstream Vera Sans Mono","Bitstream Vera Serif", + "Brush Script MT", + "Cambria", + "Caslon","Castellar","Cataneo BT","Centaur","Century Gothic","Century Schoolbook","Century Schoolbook L", + "Comic Sans", "Comic Sans MS","Consolas","Constantia","Cooper Black","Copperplate","Copperplate Gothic Bold","Copperplate Gothic Light","Corbel","Courier","Courier New", + "Futura", + "Geneva","Georgia","Georgia Ref", "Geeza Pro", "Gigi","Gill Sans","Gill Sans MT","Gill Sans MT Condensed","Gill Sans MT Ext Condensed Bold","Gill Sans Ultra Bold","Gill Sans Ultra Bold Condensed", + "Helvetica","Helvetica Narrow","Helvetica Neue","Herculanum","High Tower Text","Highlight LET","Hoefler Text","Impact","Imprint MT Shadow", + "Lucida","Lucida Bright","Lucida Calligraphy","Lucida Console","Lucida Fax","Lucida Grande","Lucida Handwriting","Lucida Sans","Lucida Sans Typewriter","Lucida Sans Unicode", + "Marker Felt", + "Microsoft Sans Serif","Milano LET","Minion Web","MisterEarl BT","Mistral","Monaco","Monotype Corsiva","Monotype.com","New Century Schoolbook","New York","News Gothic MT", + "Papyrus", + "Tahoma","Techno","Tempus Sans ITC","Terminal","Textile","Times","Times New Roman","Tiranti Solid LET","Trebuchet MS", + "Verdana","Verdana Ref", + "Zapfino"]; +var _CPFontDetectFontAvailable = function(font) { + for (var i = 0; i < _CPFontDetectReferenceFonts.length; i++) + if (_CPFontDetectCompareFonts(_CPFontDetectReferenceFonts[i], font)) + return true; + return false; +} +var _CPFontDetectCache = {}; +var _CPFontDetectCompareFonts = function(fontA, fontB) { + var a; + if (_CPFontDetectCache[fontA]) { + a = _CPFontDetectCache[fontA]; + } else { + _CPFontDetectSpan.style.fontFamily = '"' + fontA + '"'; + _CPFontDetectCache[fontA] = a = { w: _CPFontDetectSpan.offsetWidth, h: _CPFontDetectSpan.offsetHeight }; + } + _CPFontDetectSpan.style.fontFamily= '"' + fontB + '", "' + fontA + '"'; + var bWidth = _CPFontDetectSpan.offsetWidth; + var bHeight = _CPFontDetectSpan.offsetHeight; + return (a.w != bWidth || a.h != bHeight); +} +var _CPFontDetectPickTwoDifferentFonts = function(candidates) { + for (var i = 0; i < candidates.length; i++) + for (var j = 0; j < i; j++) + if (_CPFontDetectCompareFonts(candidates[i], candidates[j])) + return [candidates[i], candidates[j]]; + return [candidates[0]]; +} +objj_msgSend(CPFontManager, "setFontManagerFactory:", objj_msgSend(CPFontManager, "class")); + +p;12;CPGeometry.ji;12;CGGeometry.jc;5444; +CPMinXEdge = 0; +CPMinYEdge = 1; +CPMaxXEdge = 2; +CPMaxYEdge = 3; +CPMakePoint = CGPointMake; +CPMakeSize = CGSizeMake; +CPMakeRect = CGRectMake; +CPPointCreateCopy= function(aPoint) +{ + return { x: aPoint.x, y: aPoint.y }; +} +CPPointMake= function(x, y) +{ + return { x: x, y: y }; +} +CPRectInset= function(aRect, dX, dY) +{ + return CPRectMake( aRect.origin.x + dX, aRect.origin.y + dY, + aRect.size.width - 2 * dX, aRect.size.height - 2*dY); +} +CPRectIntegral= function(aRect) +{ + alert("CPRectIntegral unimplemented"); +} +CPRectIntersection= function(lhsRect, rhsRect) +{ + var intersection = CPRectMake( + Math.max(CPRectGetMinX(lhsRect), CPRectGetMinX(rhsRect)), + Math.max(CPRectGetMinY(lhsRect), CPRectGetMinY(rhsRect)), + 0, 0); + intersection.size.width = Math.min(CPRectGetMaxX(lhsRect), CPRectGetMaxX(rhsRect)) - CPRectGetMinX(intersection); + intersection.size.height = Math.min(CPRectGetMaxY(lhsRect), CPRectGetMaxY(rhsRect)) - CPRectGetMinY(intersection); + return CPRectIsEmpty(intersection) ? CPRectMakeZero() : intersection; +} +CPRectCreateCopy= function(aRect) +{ + return { origin: CPPointCreateCopy(aRect.origin), size: CPSizeCreateCopy(aRect.size) }; +} +CPRectMake= function(x, y, width, height) +{ + return { origin: CPPointMake(x, y), size: CPSizeMake(width, height) }; +} +CPRectOffset= function(aRect, dX, dY) +{ + return CPRectMake(aRect.origin.x + dX, aRect.origin.y + dY, aRect.size.width, aRect.size.height); +} +CPRectStandardize= function(aRect) +{ + var width = CPRectGetWidth(aRect), + height = CPRectGetHeight(aRect), + standardized = CPRectCreateCopy(aRect); + if (width < 0.0) + { + standardized.origin.x += width; + standardized.size.width = -width; + } + if (height < 0.0) + { + standardized.origin.y += height; + standardized.size.height = -height; + } + return standardized; +} +CPRectUnion= function(lhsRect, rhsRect) +{ + var minX = Math.min(CPRectGetMinX(lhsRect), CPRectGetMinX(rhsRect)), + minY = Math.min(CPRectGetMinY(lhsRect), CPRectGetMinY(rhsRect)), + maxX = Math.max(CPRectGetMaxX(lhsRect), CPRectGetMaxX(rhsRect)), + maxY = Math.max(CPRectGetMaxY(lhsRect), CPRectGetMaxY(rhsRect)); + return CPRectMake(minX, minY, maxX - minX, maxY - minY); +} +CPSizeCreateCopy= function(aSize) +{ + return { width: aSize.width, height: aSize.height }; +} +CPSizeMake= function(width, height) +{ + return { width: width, height: height }; +} +CPRectContainsPoint= function(aRect, aPoint) +{ + return aPoint.x >= CPRectGetMinX(aRect) && + aPoint.y >= CPRectGetMinY(aRect) && + aPoint.x < CPRectGetMaxX(aRect) && + aPoint.y < CPRectGetMaxY(aRect); +} +CPRectContainsRect= function(lhsRect, rhsRect) +{ + return CPRectEqualToRect(CPUnionRect(lhsRect, rhsRect), rhsRect); +} +CPPointEqualToPoint= function(lhsPoint, rhsPoint) +{ + return lhsPoint.x == rhsPoint.x && lhsPoint.y == rhsPoint.y; +} +CPRectEqualToRect= function(lhsRect, rhsRect) +{ + return CPPointEqualToPoint(lhsRect.origin, rhsRect.origin) && + CPSizeEqualToSize(lhsRect.size, rhsRect.size); +} +CPRectGetHeight= function(aRect) +{ + return aRect.size.height; +} +CPRectGetMaxX= function(aRect) +{ + return aRect.origin.x + aRect.size.width; +} +CPRectGetMaxY= function(aRect) +{ + return aRect.origin.y + aRect.size.height; +} +CPRectGetMidX= function(aRect) +{ + return aRect.origin.x + (aRect.size.width) / 2.0; +} +CPRectGetMidY= function(aRect) +{ + return aRect.origin.y + (aRect.size.height) / 2.0; +} +CPRectGetMinX= function(aRect) +{ + return aRect.origin.x; +} +CPRectGetMinY= function(aRect) +{ + return aRect.origin.y; +} +CPRectGetWidth= function(aRect) +{ + return aRect.size.width; +} +CPRectIntersectsRect= function(lhsRect, rhsRect) +{ + return !CPRectIsEmpty(CPRectIntersection(lhsRect, rhsRect)); +} +CPRectIsEmpty= function(aRect) +{ + return aRect.size.width <= 0.0 || aRect.size.height <= 0.0; +} +CPRectIsNull= function(aRect) +{ + return aRect.size.width <= 0.0 || aRect.size.height <= 0.0; +} +CPSizeEqualToSize= function(lhsSize, rhsSize) +{ + return lhsSize.width == rhsSize.width && lhsSize.height == rhsSize.height; +} +CPStringFromPoint= function(aPoint) +{ + return "{" + aPoint.x + ", " + aPoint.y + "}"; +} +CPStringFromSize= function(aSize) +{ + return "{" + aSize.width + ", " + aSize.height + "}"; +} +CPStringFromRect= function(aRect) +{ + return "{" + CPStringFromPoint(aRect.origin) + ", " + CPStringFromSize(aRect.size) + "}"; +} +CPPointFromString= function(aString) +{ + var comma = aString.indexOf(','); + return { x:parseFloat(aString.substr(1, comma - 1), 10), y:parseFloat(aString.substring(comma + 1, aString.length), 10) }; +} +CPSizeFromString= function(aString) +{ + var comma = aString.indexOf(','); + return { width:parseFloat(aString.substr(1, comma - 1), 10), height:parseFloat(aString.substring(comma + 1, aString.length), 10) }; +} +CPRectFromString= function(aString) +{ + var comma = aString.indexOf(',', aString.indexOf(',') + 1); + return { origin:CPPointFromString(aString.substr(1, comma - 1)), size:CPSizeFromString(aString.substring(comma + 2, aString.length)) }; +} +CPPointFromEvent= function(anEvent) +{ + return CPPointMake(anEvent.clientX, anEvent.clientY, 0); +} +CPSizeMakeZero= function() +{ + return CPSizeMake(0, 0); +} +CPRectMakeZero= function() +{ + return CPRectMake(0, 0, 0, 0); +} +CPPointMakeZero= function() +{ + return CPPointMake(0, 0, 0); +} + +p;19;CPGraphicsContext.jc;1484;var CPGraphicsContextCurrent = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPGraphicsContext"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_graphicsPort")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithGraphicsPort:"), function $CPGraphicsContext__initWithGraphicsPort_(self, _cmd, aGraphicsPort) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _graphicsPort = aGraphicsPort; + return self; +} +}), new objj_method(sel_getUid("graphicsPort"), function $CPGraphicsContext__graphicsPort(self, _cmd) +{ with(self) +{ + return _graphicsPort; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("currentContext"), function $CPGraphicsContext__currentContext(self, _cmd) +{ with(self) +{ + return CPGraphicsContextCurrent; +} +}), new objj_method(sel_getUid("setCurrentContext:"), function $CPGraphicsContext__setCurrentContext_(self, _cmd, aGraphicsContext) +{ with(self) +{ + CPGraphicsContextCurrent = aGraphicsContext; +} +}), new objj_method(sel_getUid("graphicsContextWithGraphicsPort:flipped:"), function $CPGraphicsContext__graphicsContextWithGraphicsPort_flipped_(self, _cmd, aContext, aFlag) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithGraphicsPort:", aContext); +} +})]); +} + +p;9;CPImage.jI;21;Foundation/CPBundle.jI;33;Foundation/CPNotificationCenter.jI;21;Foundation/CPObject.jI;22;Foundation/CPRunLoop.jI;21;Foundation/CPString.ji;12;CPGeometry.jc;12167; +CPImageLoadStatusInitialized = 0; +CPImageLoadStatusLoading = 1; +CPImageLoadStatusCompleted = 2; +CPImageLoadStatusCancelled = 3; +CPImageLoadStatusInvalidData = 4; +CPImageLoadStatusUnexpectedEOF = 5; +CPImageLoadStatusReadError = 6; +CPImageDidLoadNotification = "CPImageDidLoadNotification"; +CPImageInBundle= function(aFilename, aSize, aBundle) +{ + if (!aBundle) + aBundle = objj_msgSend(CPBundle, "mainBundle"); + if (aSize) + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(aBundle, "pathForResource:", aFilename), aSize); + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:", objj_msgSend(aBundle, "pathForResource:", aFilename)); +} +{ +var the_class = objj_getClass("CPBundle") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPBundle\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("pathForResource:"), function $CPBundle__pathForResource_(self, _cmd, aFilename) +{ with(self) +{ + return objj_msgSend(self, "resourcePath") + '/' + aFilename; +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPImage"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_size"), new objj_ivar("_filename"), new objj_ivar("_delegate"), new objj_ivar("_loadStatus"), new objj_ivar("_image")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initByReferencingFile:size:"), function $CPImage__initByReferencingFile_size_(self, _cmd, aFilename, aSize) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _size = CPSizeCreateCopy(aSize); + _filename = aFilename; + _loadStatus = CPImageLoadStatusInitialized; + } + return self; +} +}), new objj_method(sel_getUid("initWithContentsOfFile:size:"), function $CPImage__initWithContentsOfFile_size_(self, _cmd, aFilename, aSize) +{ with(self) +{ + self = objj_msgSend(self, "initByReferencingFile:size:", aFilename, aSize); + if (self) + objj_msgSend(self, "load"); + return self; +} +}), new objj_method(sel_getUid("initWithContentsOfFile:"), function $CPImage__initWithContentsOfFile_(self, _cmd, aFilename) +{ with(self) +{ + self = objj_msgSend(self, "initByReferencingFile:size:", aFilename, CGSizeMake(-1, -1)); + if (self) + objj_msgSend(self, "load"); + return self; +} +}), new objj_method(sel_getUid("filename"), function $CPImage__filename(self, _cmd) +{ with(self) +{ + return _filename; +} +}), new objj_method(sel_getUid("setSize:"), function $CPImage__setSize_(self, _cmd, aSize) +{ with(self) +{ + _size = CGSizeMakeCopy(aSize); +} +}), new objj_method(sel_getUid("size"), function $CPImage__size(self, _cmd) +{ with(self) +{ + return _size; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPImage__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; +} +}), new objj_method(sel_getUid("delegate"), function $CPImage__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("loadStatus"), function $CPImage__loadStatus(self, _cmd) +{ with(self) +{ + return _loadStatus; +} +}), new objj_method(sel_getUid("load"), function $CPImage__load(self, _cmd) +{ with(self) +{ + if (_loadStatus == CPImageLoadStatusLoading || _loadStatus == CPImageLoadStatusCompleted) + return; + _loadStatus = CPImageLoadStatusLoading; + _image = new Image(); + var isSynchronous = YES; + _image.onload = function () + { + if (isSynchronous) + window.setTimeout(function() { objj_msgSend(self, "_imageDidLoad"); }, 0); + else + { + objj_msgSend(self, "_imageDidLoad"); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + objj_msgSend(self, "_derefFromImage"); + } + _image.onerror = function () + { + if (isSynchronous) + window.setTimeout(function() { objj_msgSend(self, "_imageDidError"); }, 0); + else + { + objj_msgSend(self, "_imageDidError"); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + objj_msgSend(self, "_derefFromImage"); + } + _image.onabort = function () + { + if (isSynchronous) + window.setTimeout(function() { objj_msgSend(self, "_imageDidAbort"); }, 0); + else + { + objj_msgSend(self, "_imageDidAbort"); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + objj_msgSend(self, "_derefFromImage"); + } + _image.src = _filename; + isSynchronous = NO; +} +}), new objj_method(sel_getUid("isThreePartImage"), function $CPImage__isThreePartImage(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("isNinePartImage"), function $CPImage__isNinePartImage(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("_derefFromImage"), function $CPImage___derefFromImage(self, _cmd) +{ with(self) +{ + _image.onload = null; + _image.onerror = null; + _image.onabort = null; +} +}), new objj_method(sel_getUid("_imageDidLoad"), function $CPImage___imageDidLoad(self, _cmd) +{ with(self) +{ + _loadStatus = CPImageLoadStatusCompleted; + if (!_size || (_size.width == -1 && _size.height == -1)) + _size = CGSizeMake(_image.width, _image.height); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPImageDidLoadNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("imageDidLoad:"))) + objj_msgSend(_delegate, "imageDidLoad:", self); +} +}), new objj_method(sel_getUid("_imageDidError"), function $CPImage___imageDidError(self, _cmd) +{ with(self) +{ + _loadStatus = CPImageLoadStatusReadError; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("imageDidError:"))) + objj_msgSend(_delegate, "imageDidError:", self); +} +}), new objj_method(sel_getUid("_imageDidAbort"), function $CPImage___imageDidAbort(self, _cmd) +{ with(self) +{ + _loadStatus = CPImageLoadStatusCancelled; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("imageDidAbort:"))) + objj_msgSend(_delegate, "imageDidAbort:", self); +} +})]); +} +{ +var the_class = objj_getClass("CPImage") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPImage\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPImage__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + return objj_msgSend(self, "initWithContentsOfFile:size:", objj_msgSend(aCoder, "decodeObjectForKey:", "CPFilename"), objj_msgSend(aCoder, "decodeSizeForKey:", "CPSize")); +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPImage__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _filename, "CPFilename"); + objj_msgSend(aCoder, "encodeSize:forKey:", _size, "CPSize"); +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPThreePartImage"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_imageSlices"), new objj_ivar("_isVertical")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithImageSlices:isVertical:"), function $CPThreePartImage__initWithImageSlices_isVertical_(self, _cmd, imageSlices, isVertical) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _imageSlices = imageSlices; + _isVertical = isVertical; + } + return self; +} +}), new objj_method(sel_getUid("filename"), function $CPThreePartImage__filename(self, _cmd) +{ with(self) +{ + return ""; +} +}), new objj_method(sel_getUid("imageSlices"), function $CPThreePartImage__imageSlices(self, _cmd) +{ with(self) +{ + return _imageSlices; +} +}), new objj_method(sel_getUid("isVertical"), function $CPThreePartImage__isVertical(self, _cmd) +{ with(self) +{ + return _isVertical; +} +}), new objj_method(sel_getUid("isThreePartImage"), function $CPThreePartImage__isThreePartImage(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("isNinePartImage"), function $CPThreePartImage__isNinePartImage(self, _cmd) +{ with(self) +{ + return NO; +} +})]); +} +var CPThreePartImageImageSlicesKey = "CPThreePartImageImageSlicesKey", + CPThreePartImageIsVerticalKey = "CPThreePartImageIsVerticalKey"; +{ +var the_class = objj_getClass("CPThreePartImage") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPThreePartImage\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPThreePartImage__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _imageSlices = objj_msgSend(aCoder, "decodeObjectForKey:", CPThreePartImageImageSlicesKey); + _isVertical = objj_msgSend(aCoder, "decodeBoolForKey:", CPThreePartImageIsVerticalKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPThreePartImage__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _imageSlices, CPThreePartImageImageSlicesKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _isVertical, CPThreePartImageIsVerticalKey); +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPNinePartImage"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_imageSlices")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithImageSlices:"), function $CPNinePartImage__initWithImageSlices_(self, _cmd, imageSlices) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _imageSlices = imageSlices; + return self; +} +}), new objj_method(sel_getUid("filename"), function $CPNinePartImage__filename(self, _cmd) +{ with(self) +{ + return ""; +} +}), new objj_method(sel_getUid("imageSlices"), function $CPNinePartImage__imageSlices(self, _cmd) +{ with(self) +{ + return _imageSlices; +} +}), new objj_method(sel_getUid("isThreePartImage"), function $CPNinePartImage__isThreePartImage(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("isNinePartImage"), function $CPNinePartImage__isNinePartImage(self, _cmd) +{ with(self) +{ + return YES; +} +})]); +} +var CPNinePartImageImageSlicesKey = "CPNinePartImageImageSlicesKey"; +{ +var the_class = objj_getClass("CPNinePartImage") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPNinePartImage\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPNinePartImage__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _imageSlices = objj_msgSend(aCoder, "decodeObjectForKey:", CPNinePartImageImageSlicesKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPNinePartImage__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _imageSlices, CPNinePartImageImageSlicesKey); +} +})]); +} + +p;13;CPImageView.jI;33;Foundation/CPNotificationCenter.ji;11;CPControl.ji;9;CPImage.ji;14;CPShadowView.jc;9492; +CPScaleProportionally = 0; +CPScaleToFit = 1; +CPScaleNone = 2; +var CPImageViewShadowBackgroundColor = nil; +var LEFT_SHADOW_INSET = 3.0, + RIGHT_SHADOW_INSET = 3.0, + TOP_SHADOW_INSET = 3.0, + BOTTOM_SHADOW_INSET = 5.0, + VERTICAL_SHADOW_INSET = TOP_SHADOW_INSET + BOTTOM_SHADOW_INSET, + HORIZONTAL_SHADOW_INSET = LEFT_SHADOW_INSET + RIGHT_SHADOW_INSET; +{var the_class = objj_allocateClassPair(CPControl, "CPImageView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_DOMImageElement"), new objj_ivar("_hasShadow"), new objj_ivar("_shadowView"), new objj_ivar("_isEditable"), new objj_ivar("_imageRect")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPImageView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + } + return self; +} +}), new objj_method(sel_getUid("image"), function $CPImageView__image(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "objectValue"); +} +}), new objj_method(sel_getUid("setImage:"), function $CPImageView__setImage_(self, _cmd, anImage) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", anImage); +} +}), new objj_method(sel_getUid("setObjectValue:"), function $CPImageView__setObjectValue_(self, _cmd, anImage) +{ with(self) +{ + var oldImage = objj_msgSend(self, "objectValue"); + if (oldImage === anImage) + return; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setObjectValue:", anImage); + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (oldImage) + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPImageDidLoadNotification, oldImage); + var newImage = objj_msgSend(self, "objectValue"); + var size = objj_msgSend(newImage, "size"); + if (size && size.width === -1 && size.height === -1) + { + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("imageDidLoad:"), CPImageDidLoadNotification, newImage); + objj_msgSend(_shadowView, "setHidden:", YES); + } + else + { + objj_msgSend(self, "hideOrDisplayContents"); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + } +} +}), new objj_method(sel_getUid("imageDidLoad:"), function $CPImageView__imageDidLoad_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "hideOrDisplayContents"); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("hasShadow"), function $CPImageView__hasShadow(self, _cmd) +{ with(self) +{ + return _hasShadow; +} +}), new objj_method(sel_getUid("setHasShadow:"), function $CPImageView__setHasShadow_(self, _cmd, shouldHaveShadow) +{ with(self) +{ + if (_hasShadow == shouldHaveShadow) + return; + _hasShadow = shouldHaveShadow; + if (_hasShadow) + { + _shadowView = objj_msgSend(objj_msgSend(CPShadowView, "alloc"), "initWithFrame:", objj_msgSend(self, "bounds")); + objj_msgSend(self, "addSubview:", _shadowView); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + } + else + { + objj_msgSend(_shadowView, "removeFromSuperview"); + _shadowView = nil; + } + objj_msgSend(self, "hideOrDisplayContents"); +} +}), new objj_method(sel_getUid("setImageScaling:"), function $CPImageView__setImageScaling_(self, _cmd, anImageScaling) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setImageScaling:", anImageScaling); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("hideOrDisplayContents"), function $CPImageView__hideOrDisplayContents(self, _cmd) +{ with(self) +{ + if (!objj_msgSend(self, "image")) + { + objj_msgSend(_shadowView, "setHidden:", YES); + } + else + { + objj_msgSend(_shadowView, "setHidden:", NO); + } +} +}), new objj_method(sel_getUid("imageRect"), function $CPImageView__imageRect(self, _cmd) +{ with(self) +{ + return _imageRect; +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPImageView__layoutSubviews(self, _cmd) +{ with(self) +{ + if (!objj_msgSend(self, "image")) + return; + var bounds = objj_msgSend(self, "bounds"), + image = objj_msgSend(self, "image"), + imageScaling = objj_msgSend(self, "currentValueForThemeAttribute:", "image-scaling"), + x = 0.0, + y = 0.0, + insetWidth = (_hasShadow ? HORIZONTAL_SHADOW_INSET : 0.0), + insetHeight = (_hasShadow ? VERTICAL_SHADOW_INSET : 0.0), + boundsWidth = (bounds.size.width), + boundsHeight = (bounds.size.height), + width = boundsWidth - insetWidth, + height = boundsHeight - insetHeight; + if (imageScaling === CPScaleToFit) + { + } + else + { + var size = objj_msgSend(image, "size"); + if (size.width == -1 && size.height == -1) + return; + if (imageScaling === CPScaleProportionally) + { + if (width >= size.width && height >= size.height) + { + width = size.width; + height = size.height; + } + else + { + var imageRatio = size.width / size.height, + viewRatio = width / height; + if (viewRatio > imageRatio) + width = height * imageRatio; + else + height = width / imageRatio; + } + } + else + { + width = size.width; + height = size.height; + } + if (imageScaling == CPScaleNone) + { + } + var x = (boundsWidth - width) / 2.0, + y = (boundsHeight - height) / 2.0; + } + _imageRect = { origin: { x:x, y:y }, size: { width:width, height:height } }; + if (_hasShadow) + objj_msgSend(_shadowView, "setFrame:", { origin: { x:x - LEFT_SHADOW_INSET, y:y - TOP_SHADOW_INSET }, size: { width:width + insetWidth, height:height + insetHeight } }); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPImageView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(objj_msgSend(self, "nextResponder"), "mouseDown:", anEvent); +} +}), new objj_method(sel_getUid("setEditable:"), function $CPImageView__setEditable_(self, _cmd, shouldBeEditable) +{ with(self) +{ + if (_isEditable === shouldBeEditable) + return; + _isEditable = shouldBeEditable; + if (_isEditable) + objj_msgSend(self, "registerForDraggedTypes:", [CPImagesPboardType]); + else + { + var draggedTypes = objj_msgSend(self, "registeredDraggedTypes"); + objj_msgSend(self, "unregisterDraggedTypes"); + objj_msgSend(draggedTypes, "removeObjectIdenticalTo:", CPImagesPboardType); + objj_msgSend(self, "registerForDraggedTypes:", draggedTypes); + } +} +}), new objj_method(sel_getUid("isEditable"), function $CPImageView__isEditable(self, _cmd) +{ with(self) +{ + return _isEditable; +} +}), new objj_method(sel_getUid("performDragOperation:"), function $CPImageView__performDragOperation_(self, _cmd, aSender) +{ with(self) +{ + var images = objj_msgSend(CPKeyedUnarchiver, "unarchiveObjectWithData:", objj_msgSend(objj_msgSend(aSender, "draggingPasteboard"), "dataForType:", CPImagesPboardType)); + if (objj_msgSend(images, "count")) + objj_msgSend(self, "setImage:", images[0]); +} +})]); +} +var CPImageViewImageKey = "CPImageViewImageKey", + CPImageViewImageScalingKey = "CPImageViewImageScalingKey", + CPImageViewHasShadowKey = "CPImageViewHasShadowKey", + CPImageViewIsEditableKey = "CPImageViewIsEditableKey"; +{ +var the_class = objj_getClass("CPImageView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPImageView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPImageView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder); + if (self) + { + objj_msgSend(self, "setHasShadow:", objj_msgSend(aCoder, "decodeBoolForKey:", CPImageViewHasShadowKey)); + if (objj_msgSend(aCoder, "decodeBoolForKey:", CPImageViewIsEditableKey) || NO) + objj_msgSend(self, "setEditable:", YES); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPImageView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (_shadowView) + { + var actualSubviews = _subviews; + _subviews = objj_msgSend(_subviews, "copy"); + objj_msgSend(_subviews, "removeObjectIdenticalTo:", _shadowView); + } + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + if (_shadowView) + _subviews = actualSubviews; + objj_msgSend(aCoder, "encodeBool:forKey:", _hasShadow, CPImageViewHasShadowKey); + if (_isEditable) + objj_msgSend(aCoder, "encodeBool:forKey:", _isEditable, CPImageViewIsEditableKey); +} +})]); +} + +p;8;CPMenu.jI;20;Foundation/CPArray.jI;25;Foundation/CPDictionary.jI;33;Foundation/CPNotificationCenter.jI;21;Foundation/CPString.ji;15;CPApplication.ji;12;CPClipView.ji;12;CPMenuItem.ji;9;CPPanel.jc;66028; +CPMenuDidAddItemNotification = "CPMenuDidAddItemNotification"; +CPMenuDidChangeItemNotification = "CPMenuDidChangeItemNotification"; +CPMenuDidRemoveItemNotification = "CPMenuDidRemoveItemNotification"; +CPMenuDidEndTrackingNotification = "CPMenuDidEndTrackingNotification"; +var MENUBAR_HEIGHT = 19.0; +var _CPMenuBarVisible = NO, + _CPMenuBarTitle = "", + _CPMenuBarIconImage = nil, + _CPMenuBarIconImageAlphaValue = 1.0, + _CPMenuBarAttributes = nil, + _CPMenuBarSharedWindow = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPMenu"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_supermenu"), new objj_ivar("_title"), new objj_ivar("_items"), new objj_ivar("_attachedMenu"), new objj_ivar("_autoenablesItems"), new objj_ivar("_showsStateColumn"), new objj_ivar("_delegate"), new objj_ivar("_highlightedIndex"), new objj_ivar("_menuWindow")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("menuBarHeight"), function $CPMenu__menuBarHeight(self, _cmd) +{ with(self) +{ + if (self == objj_msgSend(CPApp, "mainMenu")) + return MENUBAR_HEIGHT; + return 0.0; +} +}), new objj_method(sel_getUid("initWithTitle:"), function $CPMenu__initWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _title = aTitle; + _items = []; + _autoenablesItems = YES; + _showsStateColumn = YES; + } + return self; +} +}), new objj_method(sel_getUid("init"), function $CPMenu__init(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "initWithTitle:", ""); +} +}), new objj_method(sel_getUid("insertItem:atIndex:"), function $CPMenu__insertItem_atIndex_(self, _cmd, aMenuItem, anIndex) +{ with(self) +{ + var menu = objj_msgSend(aMenuItem, "menu"); + if (menu) + if (menu != self) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Attempted to insert item into menu that was already in another menu."); + else + return; + objj_msgSend(aMenuItem, "setMenu:", self); + objj_msgSend(_items, "insertObject:atIndex:", aMenuItem, anIndex); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPMenuDidAddItemNotification, self, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", anIndex, "CPMenuItemIndex")); +} +}), new objj_method(sel_getUid("insertItemWithTitle:action:keyEquivalent:atIndex:"), function $CPMenu__insertItemWithTitle_action_keyEquivalent_atIndex_(self, _cmd, aTitle, anAction, aKeyEquivalent, anIndex) +{ with(self) +{ + var item = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", aTitle, anAction, aKeyEquivalent); + objj_msgSend(self, "insertItem:atIndex:", item, anIndex); + return item; +} +}), new objj_method(sel_getUid("addItem:"), function $CPMenu__addItem_(self, _cmd, aMenuItem) +{ with(self) +{ + objj_msgSend(self, "insertItem:atIndex:", aMenuItem, objj_msgSend(_items, "count")); +} +}), new objj_method(sel_getUid("addItemWithTitle:action:keyEquivalent:"), function $CPMenu__addItemWithTitle_action_keyEquivalent_(self, _cmd, aTitle, anAction, aKeyEquivalent) +{ with(self) +{ + return objj_msgSend(self, "insertItemWithTitle:action:keyEquivalent:atIndex:", aTitle, anAction, aKeyEquivalent, objj_msgSend(_items, "count")); +} +}), new objj_method(sel_getUid("removeItem:"), function $CPMenu__removeItem_(self, _cmd, aMenuItem) +{ with(self) +{ + objj_msgSend(self, "removeItemAtIndex:", objj_msgSend(_items, "indexOfObjectIdenticalTo:", aMenuItem)); +} +}), new objj_method(sel_getUid("removeItemAtIndex:"), function $CPMenu__removeItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + if (anIndex < 0 || anIndex >= _items.length) + return; + objj_msgSend(_items[anIndex], "setMenu:", nil); + objj_msgSend(_items, "removeObjectAtIndex:", anIndex); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPMenuDidRemoveItemNotification, self, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", anIndex, "CPMenuItemIndex")); +} +}), new objj_method(sel_getUid("itemChanged:"), function $CPMenu__itemChanged_(self, _cmd, aMenuItem) +{ with(self) +{ + if (objj_msgSend(aMenuItem, "menu") != self) + return; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPMenuDidChangeItemNotification, self, objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", objj_msgSend(_items, "indexOfObjectIdenticalTo:", aMenuItem), "CPMenuItemIndex")); +} +}), new objj_method(sel_getUid("menuWithTag:"), function $CPMenu__menuWithTag_(self, _cmd, aTag) +{ with(self) +{ + var index = objj_msgSend(self, "indexOfItemWithTag:", aTag); + if (index == CPNotFound) + return nil; + return _items[index]; +} +}), new objj_method(sel_getUid("menuWithTitle:"), function $CPMenu__menuWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + var index = objj_msgSend(self, "indexOfItemWithTitle:", aTitle); + if (index == CPNotFound) + return nil; + return _items[index]; +} +}), new objj_method(sel_getUid("itemAtIndex:"), function $CPMenu__itemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(_items, "objectAtIndex:", anIndex); +} +}), new objj_method(sel_getUid("numberOfItems"), function $CPMenu__numberOfItems(self, _cmd) +{ with(self) +{ + return objj_msgSend(_items, "count"); +} +}), new objj_method(sel_getUid("itemArray"), function $CPMenu__itemArray(self, _cmd) +{ with(self) +{ + return _items; +} +}), new objj_method(sel_getUid("indexOfItem:"), function $CPMenu__indexOfItem_(self, _cmd, aMenuItem) +{ with(self) +{ + if (objj_msgSend(aMenuItem, "menu") != self) + return CPNotFound; + return objj_msgSend(_items, "indexOfObjectIdenticalTo:", aMenuItem); +} +}), new objj_method(sel_getUid("indexOfItemWithTitle:"), function $CPMenu__indexOfItemWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + var index = 0, + count = _items.length; + for (; index < count; ++index) + if (objj_msgSend(_items[index], "title") === aTitle) + return index; + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfItemWithTag:"), function $CPMenu__indexOfItemWithTag_(self, _cmd, aTag) +{ with(self) +{ + var index = 0, + count = _items.length; + for (; index < count; ++index) + if (objj_msgSend(_items[index], "tag") == aTag) + return index; + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfItemWithTarget:andAction:"), function $CPMenu__indexOfItemWithTarget_andAction_(self, _cmd, aTarget, anAction) +{ with(self) +{ + var index = 0, + count = _items.length; + for (; index < count; ++index) + { + var item = _items[index]; + if (objj_msgSend(item, "target") == aTarget && (!anAction || objj_msgSend(item, "action") == anAction)) + return index; + } + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfItemWithRepresentedObject:"), function $CPMenu__indexOfItemWithRepresentedObject_(self, _cmd, anObject) +{ with(self) +{ + var index = 0, + count = _items.length; + for (; index < count; ++index) + if (objj_msgSend(objj_msgSend(_items[index], "representedObject"), "isEqual:", anObject)) + return index; + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfItemWithSubmenu:"), function $CPMenu__indexOfItemWithSubmenu_(self, _cmd, aMenu) +{ with(self) +{ + var index = 0, + count = _items.length; + for (; index < count; ++index) + if (objj_msgSend(_items[index], "submenu") == aMenu) + return index; + return CPNotFound; +} +}), new objj_method(sel_getUid("setSubmenu:forItem:"), function $CPMenu__setSubmenu_forItem_(self, _cmd, aMenu, aMenuItem) +{ with(self) +{ + objj_msgSend(aMenuItem, "setTarget:", aMenuItem); + objj_msgSend(aMenuItem, "setAction:", sel_getUid("submenuAction:")); + objj_msgSend(aMenuItem, "setSubmenu:", aMenu); +} +}), new objj_method(sel_getUid("submenuAction:"), function $CPMenu__submenuAction_(self, _cmd, aSender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("attachedMenu"), function $CPMenu__attachedMenu(self, _cmd) +{ with(self) +{ + return _attachedMenu; +} +}), new objj_method(sel_getUid("isAttached"), function $CPMenu__isAttached(self, _cmd) +{ with(self) +{ + return _isAttached; +} +}), new objj_method(sel_getUid("locationOfSubmenu:"), function $CPMenu__locationOfSubmenu_(self, _cmd, aMenu) +{ with(self) +{ +} +}), new objj_method(sel_getUid("supermenu"), function $CPMenu__supermenu(self, _cmd) +{ with(self) +{ + return _supermenu; +} +}), new objj_method(sel_getUid("setSupermenu:"), function $CPMenu__setSupermenu_(self, _cmd, aMenu) +{ with(self) +{ + _supermenu = aMenu; +} +}), new objj_method(sel_getUid("isTornOff"), function $CPMenu__isTornOff(self, _cmd) +{ with(self) +{ + return !_supermenu || self == objj_msgSend(CPApp, "mainMenu"); +} +}), new objj_method(sel_getUid("setAutoenablesItems:"), function $CPMenu__setAutoenablesItems_(self, _cmd, aFlag) +{ with(self) +{ + _autoenablesItems = aFlag; +} +}), new objj_method(sel_getUid("autoenablesItems"), function $CPMenu__autoenablesItems(self, _cmd) +{ with(self) +{ + return _autoenablesItems; +} +}), new objj_method(sel_getUid("update"), function $CPMenu__update(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("setTitle:"), function $CPMenu__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + _title = aTitle; +} +}), new objj_method(sel_getUid("title"), function $CPMenu__title(self, _cmd) +{ with(self) +{ + return _title; +} +}), new objj_method(sel_getUid("setShowsStateColumn:"), function $CPMenu__setShowsStateColumn_(self, _cmd, shouldShowStateColumn) +{ with(self) +{ + _showsStateColumn = shouldShowStateColumn; +} +}), new objj_method(sel_getUid("showsStateColumn"), function $CPMenu__showsStateColumn(self, _cmd) +{ with(self) +{ + return _showsStateColumn; +} +}), new objj_method(sel_getUid("highlightedItem"), function $CPMenu__highlightedItem(self, _cmd) +{ with(self) +{ + return _highlightedIndex >= 0 ? _items[_highlightedIndex] : nil; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPMenu__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; +} +}), new objj_method(sel_getUid("delegate"), function $CPMenu__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("cancelTracking"), function $CPMenu__cancelTracking(self, _cmd) +{ with(self) +{ + objj_msgSend(_menuWindow, "cancelTracking"); +} +}), new objj_method(sel_getUid("_setMenuWindow:"), function $CPMenu___setMenuWindow_(self, _cmd, aMenuWindow) +{ with(self) +{ + _menuWindow = aMenuWindow; +} +}), new objj_method(sel_getUid("performKeyEquivalent:"), function $CPMenu__performKeyEquivalent_(self, _cmd, anEvent) +{ with(self) +{ + if (_autoenablesItems) + objj_msgSend(self, "update"); + var index = 0, + count = _items.length, + characters = objj_msgSend(anEvent, "charactersIgnoringModifiers"), + modifierFlags = objj_msgSend(anEvent, "modifierFlags"); + for(; index < count; ++index) + { + var item = _items[index], + modifierMask = objj_msgSend(item, "keyEquivalentModifierMask"); + if ((modifierFlags & (CPShiftKeyMask | CPAlternateKeyMask | CPCommandKeyMask | CPControlKeyMask)) == modifierMask && + objj_msgSend(characters, "caseInsensitiveCompare:", objj_msgSend(item, "keyEquivalent")) == CPOrderedSame) + { + if (objj_msgSend(item, "isEnabled")) + objj_msgSend(self, "performActionForItemAtIndex:", index); + else + { + } + return YES; + } + if (objj_msgSend(objj_msgSend(item, "submenu"), "performKeyEquivalent:", anEvent)) + return YES; + } + return NO; +} +}), new objj_method(sel_getUid("performActionForItemAtIndex:"), function $CPMenu__performActionForItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + var item = _items[anIndex]; + objj_msgSend(CPApp, "sendAction:to:from:", objj_msgSend(item, "action"), objj_msgSend(item, "target"), item); +} +}), new objj_method(sel_getUid("_itemIsHighlighted:"), function $CPMenu___itemIsHighlighted_(self, _cmd, aMenuItem) +{ with(self) +{ + return _items[_highlightedIndex] == aMenuItem; +} +}), new objj_method(sel_getUid("_highlightItemAtIndex:"), function $CPMenu___highlightItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + var previousHighlightedIndex = _highlightedIndex; + _highlightedIndex = anIndex; + if (previousHighlightedIndex != CPNotFound) + objj_msgSend(objj_msgSend(_items[previousHighlightedIndex], "_menuItemView"), "highlight:", NO); + if (_highlightedIndex != CPNotFound) + objj_msgSend(objj_msgSend(_items[_highlightedIndex], "_menuItemView"), "highlight:", YES); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPMenu__initialize(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(self, "class"), "setMenuBarAttributes:", objj_msgSend(CPDictionary, "dictionary")); +} +}), new objj_method(sel_getUid("menuBarVisible"), function $CPMenu__menuBarVisible(self, _cmd) +{ with(self) +{ + return _CPMenuBarVisible; +} +}), new objj_method(sel_getUid("setMenuBarVisible:"), function $CPMenu__setMenuBarVisible_(self, _cmd, menuBarShouldBeVisible) +{ with(self) +{ + if (_CPMenuBarVisible == menuBarShouldBeVisible) + return; + _CPMenuBarVisible = menuBarShouldBeVisible; + if (menuBarShouldBeVisible) + { + if (!_CPMenuBarSharedWindow) + _CPMenuBarSharedWindow = objj_msgSend(objj_msgSend(_CPMenuBarWindow, "alloc"), "init"); + objj_msgSend(_CPMenuBarSharedWindow, "setMenu:", objj_msgSend(CPApp, "mainMenu")); + objj_msgSend(_CPMenuBarSharedWindow, "setTitle:", _CPMenuBarTitle); + objj_msgSend(_CPMenuBarSharedWindow, "setIconImage:", _CPMenuBarIconImage); + objj_msgSend(_CPMenuBarSharedWindow, "setIconImageAlphaValue:", _CPMenuBarIconImageAlphaValue); + objj_msgSend(_CPMenuBarSharedWindow, "setColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarBackgroundColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTextColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTextColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTitleColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTitleColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTextShadowColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTextShadowColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTitleShadowColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTitleShadowColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setHighlightColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarHighlightColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setHighlightTextColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarHighlightTextColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setHighlightTextShadowColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarHighlightTextShadowColor")); + objj_msgSend(_CPMenuBarSharedWindow, "orderFront:", self); + } + else + objj_msgSend(_CPMenuBarSharedWindow, "orderOut:", self); +} +}), new objj_method(sel_getUid("setMenuBarTitle:"), function $CPMenu__setMenuBarTitle_(self, _cmd, aTitle) +{ with(self) +{ + _CPMenuBarTitle = aTitle; + objj_msgSend(_CPMenuBarSharedWindow, "setTitle:", _CPMenuBarTitle); +} +}), new objj_method(sel_getUid("menuBarTitle"), function $CPMenu__menuBarTitle(self, _cmd) +{ with(self) +{ + return _CPMenuBarTitle; +} +}), new objj_method(sel_getUid("setMenuBarIconImage:"), function $CPMenu__setMenuBarIconImage_(self, _cmd, anImage) +{ with(self) +{ + _CPMenuBarImage = anImage; + objj_msgSend(_CPMenuBarSharedWindow, "setIconImage:", anImage); +} +}), new objj_method(sel_getUid("menuBarIconImage"), function $CPMenu__menuBarIconImage(self, _cmd) +{ with(self) +{ + return _CPMenuBarImage; +} +}), new objj_method(sel_getUid("setMenuBarAttributes:"), function $CPMenu__setMenuBarAttributes_(self, _cmd, attributes) +{ with(self) +{ + if (_CPMenuBarAttributes == attributes) + return; + _CPMenuBarAttributes = objj_msgSend(attributes, "copy"); + var textColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarTextColor"), + titleColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarTitleColor"), + textShadowColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarTextShadowColor"), + titleShadowColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarTitleShadowColor"), + highlightColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarHighlightColor"), + highlightTextColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarHighlightTextColor"), + highlightTextShadowColor = objj_msgSend(attributes, "objectForKey:", "CPMenuBarHighlightTextShadowColor"); + if (!textColor && titleColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", titleColor, "CPMenuBarTextColor"); + else if (textColor && !titleColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", textColor, "CPMenuBarTitleColor"); + else if (!textColor && !titleColor) + { + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "colorWithRed:green:blue:alpha:", 0.051, 0.2, 0.275, 1.0), "CPMenuBarTextColor"); + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "colorWithRed:green:blue:alpha:", 0.051, 0.2, 0.275, 1.0), "CPMenuBarTitleColor"); + } + if (!textShadowColor && titleShadowColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", titleShadowColor, "CPMenuBarTextShadowColor"); + else if (textShadowColor && !titleShadowColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", textShadowColor, "CPMenuBarTitleShadowColor"); + else if (!textShadowColor && !titleShadowColor) + { + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "whiteColor"), "CPMenuBarTextShadowColor"); + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "whiteColor"), "CPMenuBarTitleShadowColor"); + } + if (!highlightColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 94.0/255.0, 130.0/255.0, 186.0/255.0, 1.0), "CPMenuBarHighlightColor"); + if (!highlightTextColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "whiteColor"), "CPMenuBarHighlightTextColor"); + if (!highlightTextShadowColor) + objj_msgSend(_CPMenuBarAttributes, "setObject:forKey:", objj_msgSend(CPColor, "blackColor"), "CPMenuBarHighlightTextShadowColor"); + if (_CPMenuBarSharedWindow) + { + objj_msgSend(_CPMenuBarSharedWindow, "setColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarBackgroundColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTextColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTextColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTitleColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTitleColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTextShadowColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTextShadowColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setTitleShadowColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarTitleShadowColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setHighlightColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarHighlightColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setHighlightTextColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarHighlightTextColor")); + objj_msgSend(_CPMenuBarSharedWindow, "setHighlightTextShadowColor:", objj_msgSend(_CPMenuBarAttributes, "objectForKey:", "CPMenuBarHighlightTextShadowColor")); + } +} +}), new objj_method(sel_getUid("menuBarAttributes"), function $CPMenu__menuBarAttributes(self, _cmd) +{ with(self) +{ + return _CPMenuBarAttributes; +} +}), new objj_method(sel_getUid("_setMenuBarIconImageAlphaValue:"), function $CPMenu___setMenuBarIconImageAlphaValue_(self, _cmd, anAlphaValue) +{ with(self) +{ + _CPMenuBarIconImageAlphaValue = anAlphaValue; + objj_msgSend(_CPMenuBarSharedWindow, "setIconImageAlphaValue:", anAlphaValue); +} +}), new objj_method(sel_getUid("menuBarHeight"), function $CPMenu__menuBarHeight(self, _cmd) +{ with(self) +{ + return MENUBAR_HEIGHT; +} +}), new objj_method(sel_getUid("popUpContextMenu:withEvent:forView:"), function $CPMenu__popUpContextMenu_withEvent_forView_(self, _cmd, aMenu, anEvent, aView) +{ with(self) +{ + objj_msgSend(self, "popUpContextMenu:withEvent:forView:withFont:", aMenu, anEvent, aView, nil); +} +}), new objj_method(sel_getUid("popUpContextMenu:withEvent:forView:withFont:"), function $CPMenu__popUpContextMenu_withEvent_forView_withFont_(self, _cmd, aMenu, anEvent, aView, aFont) +{ with(self) +{ + objj_msgSend(self, "_popUpContextMenu:withEvent:forView:withFont:forMenuBar:", aMenu, anEvent, aView, aFont, NO); +} +}), new objj_method(sel_getUid("_popUpContextMenu:withEvent:forView:withFont:forMenuBar:"), function $CPMenu___popUpContextMenu_withEvent_forView_withFont_forMenuBar_(self, _cmd, aMenu, anEvent, aView, aFont, isForMenuBar) +{ with(self) +{ + var delegate = objj_msgSend(aMenu, "delegate"); + if (objj_msgSend(delegate, "respondsToSelector:", sel_getUid("menuWillOpen:"))) + objj_msgSend(delegate, "menuWillOpen:", aMenu); + if (!aFont) + aFont = objj_msgSend(CPFont, "systemFontOfSize:", 12.0); + var theWindow = objj_msgSend(aView, "window"), + menuWindow = objj_msgSend(_CPMenuWindow, "menuWindowWithMenu:font:", aMenu, aFont); + objj_msgSend(menuWindow, "setDelegate:", self); + objj_msgSend(menuWindow, "setBackgroundStyle:", isForMenuBar ? _CPMenuWindowMenuBarBackgroundStyle : _CPMenuWindowPopUpBackgroundStyle); + objj_msgSend(menuWindow, "setFrameOrigin:", objj_msgSend(objj_msgSend(anEvent, "window"), "convertBaseToBridge:", objj_msgSend(anEvent, "locationInWindow"))); + objj_msgSend(menuWindow, "orderFront:", self); + objj_msgSend(menuWindow, "beginTrackingWithEvent:sessionDelegate:didEndSelector:", anEvent, self, sel_getUid("_menuWindowDidFinishTracking:highlightedItem:")); +} +}), new objj_method(sel_getUid("_menuWindowDidFinishTracking:highlightedItem:"), function $CPMenu___menuWindowDidFinishTracking_highlightedItem_(self, _cmd, aMenuWindow, aMenuItem) +{ with(self) +{ + var menu = objj_msgSend(aMenuWindow, "menu"); + objj_msgSend(_CPMenuWindow, "poolMenuWindow:", aMenuWindow); + var delegate = objj_msgSend(menu, "delegate"); + if (objj_msgSend(delegate, "respondsToSelector:", sel_getUid("menuDidClose:"))) + objj_msgSend(delegate, "menuDidClose:", menu); + if(objj_msgSend(aMenuItem, "isEnabled")) + objj_msgSend(CPApp, "sendAction:to:from:", objj_msgSend(aMenuItem, "action"), objj_msgSend(aMenuItem, "target"), aMenuItem); +} +})]); +} +var CPMenuTitleKey = "CPMenuTitleKey", + CPMenuItemsKey = "CPMenuItemsKey", + CPMenuShowsStateColumnKey = "CPMenuShowsStateColumnKey"; +{ +var the_class = objj_getClass("CPMenu") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPMenu\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPMenu__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _title = objj_msgSend(aCoder, "decodeObjectForKey:", CPMenuTitleKey); + _items = objj_msgSend(aCoder, "decodeObjectForKey:", CPMenuItemsKey); + _showsStateColumn = !objj_msgSend(aCoder, "containsValueForKey:", CPMenuShowsStateColumnKey) || objj_msgSend(aCoder, "decodeBoolForKey:", CPMenuShowsStateColumnKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPMenu__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _title, CPMenuTitleKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _items, CPMenuItemsKey); + if (!_showsStateColumn) + objj_msgSend(aCoder, "encodeBool:forKey:", _showsStateColumn, CPMenuShowsStateColumnKey); +} +})]); +} +var _CPMenuWindowPool = [], + _CPMenuWindowPoolCapacity = 5, + _CPMenuWindowBackgroundColors = [], + _CPMenuWindowScrollingStateUp = -1, + _CPMenuWindowScrollingStateDown = 1, + _CPMenuWindowScrollingStateNone = 0; +_CPMenuWindowMenuBarBackgroundStyle = 0; +_CPMenuWindowPopUpBackgroundStyle = 1; +_CPMenuWindowAttachedMenuBackgroundStyle = 2; +var STICKY_TIME_INTERVAL = 500, + TOP_MARGIN = 5.0, + LEFT_MARGIN = 1.0, + RIGHT_MARGIN = 1.0, + BOTTOM_MARGIN = 5.0, + SCROLL_INDICATOR_HEIGHT = 16.0; +{var the_class = objj_allocateClassPair(CPWindow, "_CPMenuWindow"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_menuView"), new objj_ivar("_menuClipView"), new objj_ivar("_lastMouseOverMenuView"), new objj_ivar("_moreAboveView"), new objj_ivar("_moreBelowView"), new objj_ivar("_sessionDelegate"), new objj_ivar("_didEndSelector"), new objj_ivar("_startTime"), new objj_ivar("_scrollingState"), new objj_ivar("_lastScreenLocation"), new objj_ivar("_isShowingTopScrollIndicator"), new objj_ivar("_isShowingBottomScrollIndicator"), new objj_ivar("_trackingCanceled"), new objj_ivar("_unconstrainedFrame")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $_CPMenuWindow__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPWindow") }, "initWithContentRect:styleMask:", CGRectMakeZero(), CPBorderlessWindowMask); + if (self) + { + objj_msgSend(self, "setLevel:", CPPopUpMenuWindowLevel); + objj_msgSend(self, "setHasShadow:", YES); + objj_msgSend(self, "setAcceptsMouseMovedEvents:", YES); + _unconstrainedFrame = CGRectMakeZero(); + var contentView = objj_msgSend(self, "contentView"); + _menuView = objj_msgSend(objj_msgSend(_CPMenuView, "alloc"), "initWithFrame:", CGRectMakeZero()); + _menuClipView = objj_msgSend(objj_msgSend(CPClipView, "alloc"), "initWithFrame:", CGRectMake(LEFT_MARGIN, TOP_MARGIN, 0.0, 0.0)); + objj_msgSend(_menuClipView, "setDocumentView:", _menuView); + objj_msgSend(contentView, "addSubview:", _menuClipView); + _moreAboveView = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_moreAboveView, "setImage:", _CPMenuWindowMoreAboveImage); + objj_msgSend(_moreAboveView, "setFrameSize:", objj_msgSend(_CPMenuWindowMoreAboveImage, "size")); + objj_msgSend(contentView, "addSubview:", _moreAboveView); + _moreBelowView = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_moreBelowView, "setImage:", _CPMenuWindowMoreBelowImage); + objj_msgSend(_moreBelowView, "setFrameSize:", objj_msgSend(_CPMenuWindowMoreBelowImage, "size")); + objj_msgSend(contentView, "addSubview:", _moreBelowView); + } + return self; +} +}), new objj_method(sel_getUid("overlapOffsetWidth"), function $_CPMenuWindow__overlapOffsetWidth(self, _cmd) +{ with(self) +{ + return LEFT_MARGIN; +} +}), new objj_method(sel_getUid("setFont:"), function $_CPMenuWindow__setFont_(self, _cmd, aFont) +{ with(self) +{ + objj_msgSend(_menuView, "setFont:", aFont); +} +}), new objj_method(sel_getUid("setBackgroundStyle:"), function $_CPMenuWindow__setBackgroundStyle_(self, _cmd, aBackgroundStyle) +{ with(self) +{ + var color = _CPMenuWindowBackgroundColors[aBackgroundStyle]; + if (!color) + { + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(self, "class")); + if (aBackgroundStyle == _CPMenuWindowPopUpBackgroundStyle) + color = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowRounded0.png"), CGSizeMake(4.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow1.png"), CGSizeMake(1.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowRounded2.png"), CGSizeMake(4.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow3.png"), CGSizeMake(4.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow4.png"), CGSizeMake(1.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow5.png"), CGSizeMake(4.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowRounded6.png"), CGSizeMake(4.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow7.png"), CGSizeMake(1.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowRounded8.png"), CGSizeMake(4.0, 4.0)) + ])); + else if (aBackgroundStyle == _CPMenuWindowMenuBarBackgroundStyle) + color = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow3.png"), CGSizeMake(4.0, 0.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow4.png"), CGSizeMake(1.0, 0.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow5.png"), CGSizeMake(4.0, 0.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow3.png"), CGSizeMake(4.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow4.png"), CGSizeMake(1.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow5.png"), CGSizeMake(4.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowRounded6.png"), CGSizeMake(4.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindow7.png"), CGSizeMake(1.0, 4.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowRounded8.png"), CGSizeMake(4.0, 4.0)) + ])); + _CPMenuWindowBackgroundColors[aBackgroundStyle] = color; + } + objj_msgSend(self, "setBackgroundColor:", color); +} +}), new objj_method(sel_getUid("setMenu:"), function $_CPMenuWindow__setMenu_(self, _cmd, aMenu) +{ with(self) +{ + objj_msgSend(aMenu, "_setMenuWindow:", self); + objj_msgSend(_menuView, "setMenu:", aMenu); + var menuViewSize = objj_msgSend(_menuView, "frame").size; + objj_msgSend(self, "setFrameSize:", CGSizeMake(LEFT_MARGIN + menuViewSize.width + RIGHT_MARGIN, TOP_MARGIN + menuViewSize.height + BOTTOM_MARGIN)); + objj_msgSend(_menuView, "scrollPoint:", CGPointMake(0.0, 0.0)); + objj_msgSend(_menuClipView, "setFrame:", CGRectMake(LEFT_MARGIN, TOP_MARGIN, menuViewSize.width, menuViewSize.height)); +} +}), new objj_method(sel_getUid("setMinWidth:"), function $_CPMenuWindow__setMinWidth_(self, _cmd, aWidth) +{ with(self) +{ + var size = objj_msgSend(self, "frame").size; + objj_msgSend(self, "setFrameSize:", CGSizeMake(MAX(size.width, aWidth), size.height)); +} +}), new objj_method(sel_getUid("rectForItemAtIndex:"), function $_CPMenuWindow__rectForItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(_menuView, "convertRect:toView:", objj_msgSend(_menuView, "rectForItemAtIndex:", anIndex), nil); +} +}), new objj_method(sel_getUid("orderFront:"), function $_CPMenuWindow__orderFront_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "constrainToScreen"); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPWindow") }, "orderFront:", aSender); +} +}), new objj_method(sel_getUid("constrainToScreen"), function $_CPMenuWindow__constrainToScreen(self, _cmd) +{ with(self) +{ + _unconstrainedFrame = CGRectMakeCopy(objj_msgSend(self, "frame")); + var screenBounds = CGRectInset(objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "contentBounds"), 5.0, 5.0), + constrainedFrame = CGRectIntersection(_unconstrainedFrame, screenBounds), + menuViewOrigin = objj_msgSend(self, "convertBaseToBridge:", CGPointMake(LEFT_MARGIN, TOP_MARGIN)); + constrainedFrame.origin.x = CGRectGetMinX(_unconstrainedFrame); + constrainedFrame.size.width = CGRectGetWidth(_unconstrainedFrame); + if (CGRectGetWidth(constrainedFrame) > CGRectGetWidth(screenBounds)) + constrainedFrame.size.width = CGRectGetWidth(screenBounds); + if (CGRectGetMaxX(constrainedFrame) > CGRectGetMaxX(screenBounds)) + constrainedFrame.origin.x -= CGRectGetMaxX(constrainedFrame) - CGRectGetMaxX(screenBounds); + if (CGRectGetMinX(constrainedFrame) < CGRectGetMinX(screenBounds)) + constrainedFrame.origin.x = CGRectGetMinX(screenBounds); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPWindow") }, "setFrame:", constrainedFrame); + var topMargin = TOP_MARGIN, + bottomMargin = BOTTOM_MARGIN, + contentView = objj_msgSend(self, "contentView"), + bounds = objj_msgSend(contentView, "bounds"); + var moreAbove = menuViewOrigin.y < CGRectGetMinY(constrainedFrame) + TOP_MARGIN, + moreBelow = menuViewOrigin.y + CGRectGetHeight(objj_msgSend(_menuView, "frame")) > CGRectGetMaxY(constrainedFrame) - BOTTOM_MARGIN; + if (moreAbove) + { + topMargin += SCROLL_INDICATOR_HEIGHT; + var frame = objj_msgSend(_moreAboveView, "frame"); + objj_msgSend(_moreAboveView, "setFrameOrigin:", CGPointMake((CGRectGetWidth(bounds) - CGRectGetWidth(frame)) / 2.0, (TOP_MARGIN + SCROLL_INDICATOR_HEIGHT - CGRectGetHeight(frame)) / 2.0)); + } + objj_msgSend(_moreAboveView, "setHidden:", !moreAbove); + if (moreBelow) + { + bottomMargin += SCROLL_INDICATOR_HEIGHT; + objj_msgSend(_moreBelowView, "setFrameOrigin:", CGPointMake((CGRectGetWidth(bounds) - CGRectGetWidth(objj_msgSend(_moreBelowView, "frame"))) / 2.0, CGRectGetHeight(bounds) - SCROLL_INDICATOR_HEIGHT - BOTTOM_MARGIN)); + } + objj_msgSend(_moreBelowView, "setHidden:", !moreBelow); + var clipFrame = CGRectMake(LEFT_MARGIN, topMargin, CGRectGetWidth(constrainedFrame) - LEFT_MARGIN - RIGHT_MARGIN, CGRectGetHeight(constrainedFrame) - topMargin - bottomMargin) + objj_msgSend(_menuClipView, "setFrame:", clipFrame); + objj_msgSend(_menuView, "setFrameSize:", CGSizeMake(CGRectGetWidth(clipFrame), CGRectGetHeight(objj_msgSend(_menuView, "frame")))); + objj_msgSend(_menuView, "scrollPoint:", CGPointMake(0.0, objj_msgSend(self, "convertBaseToBridge:", clipFrame.origin).y - menuViewOrigin.y)); +} +}), new objj_method(sel_getUid("cancelTracking"), function $_CPMenuWindow__cancelTracking(self, _cmd) +{ with(self) +{ + _trackingCanceled = YES; +} +}), new objj_method(sel_getUid("beginTrackingWithEvent:sessionDelegate:didEndSelector:"), function $_CPMenuWindow__beginTrackingWithEvent_sessionDelegate_didEndSelector_(self, _cmd, anEvent, aSessionDelegate, aDidEndSelector) +{ with(self) +{ + _startTime = objj_msgSend(anEvent, "timestamp"); + _scrollingState = _CPMenuWindowScrollingStateNone; + _trackingCanceled = NO; + _sessionDelegate = aSessionDelegate; + _didEndSelector = aDidEndSelector; + objj_msgSend(self, "trackEvent:", anEvent); +} +}), new objj_method(sel_getUid("trackEvent:"), function $_CPMenuWindow__trackEvent_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"), + theWindow = objj_msgSend(anEvent, "window"), + screenLocation = theWindow ? objj_msgSend(theWindow, "convertBaseToBridge:", objj_msgSend(anEvent, "locationInWindow")) : objj_msgSend(anEvent, "locationInWindow"); + if (type == CPPeriodic) + { + var constrainedBounds = CGRectInset(objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "contentBounds"), 5.0, 5.0); + if (_scrollingState == _CPMenuWindowScrollingStateUp) + { + if (CGRectGetMinY(_unconstrainedFrame) < CGRectGetMinY(constrainedBounds)) + _unconstrainedFrame.origin.y += 10; + } + else if (_scrollingState == _CPMenuWindowScrollingStateDown) + if (CGRectGetMaxY(_unconstrainedFrame) > CGRectGetHeight(constrainedBounds)) + _unconstrainedFrame.origin.y -= 10; + objj_msgSend(self, "setFrame:", _unconstrainedFrame); + objj_msgSend(self, "constrainToScreen"); + screenLocation = _lastScreenLocation; + } + _lastScreenLocation = screenLocation; + var menu = objj_msgSend(_menuView, "menu"), + menuLocation = objj_msgSend(self, "convertBridgeToBase:", screenLocation), + activeItemIndex = objj_msgSend(_menuView, "itemIndexAtPoint:", objj_msgSend(_menuView, "convertPoint:fromView:", menuLocation, nil)), + mouseOverMenuView = objj_msgSend(objj_msgSend(menu, "itemAtIndex:", activeItemIndex), "view"); + if (mouseOverMenuView) + { + if (!_lastMouseOverMenuView) + objj_msgSend(menu, "_highlightItemAtIndex:", CPNotFound); + if (_lastMouseOverMenuView != mouseOverMenuView) + { + objj_msgSend(mouseOverMenuView, "mouseExited:", anEvent); + objj_msgSend(_lastMouseOverMenuView, "mouseEntered:", anEvent); + _lastMouseOverMenuView = mouseOverMenuView; + } + objj_msgSend(self, "sendEvent:", objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", type, menuLocation, objj_msgSend(anEvent, "modifierFlags"), objj_msgSend(anEvent, "timestamp"), objj_msgSend(self, "windowNumber"), nil, 0, objj_msgSend(anEvent, "clickCount"), objj_msgSend(anEvent, "pressure"))); + } + else + { + if (_lastMouseOverMenuView) + { + objj_msgSend(_lastMouseOverMenuView, "mouseExited:", anEvent); + _lastMouseOverMenuView = nil; + } + objj_msgSend(menu, "_highlightItemAtIndex:", objj_msgSend(_menuView, "itemIndexAtPoint:", objj_msgSend(_menuView, "convertPoint:fromView:", objj_msgSend(self, "convertBridgeToBase:", screenLocation), nil))); + if (type == CPMouseMoved || type == CPLeftMouseDragged || type == CPLeftMouseDown) + { + var frame = objj_msgSend(self, "frame"), + oldScrollingState = _scrollingState; + _scrollingState = _CPMenuWindowScrollingStateNone; + if (screenLocation.y < CGRectGetMinY(frame) + TOP_MARGIN + SCROLL_INDICATOR_HEIGHT) + _scrollingState = _CPMenuWindowScrollingStateUp; + else if (screenLocation.y > CGRectGetMaxY(frame) - BOTTOM_MARGIN - SCROLL_INDICATOR_HEIGHT) + _scrollingState = _CPMenuWindowScrollingStateDown; + if (_scrollingState != oldScrollingState) + if (_scrollingState == _CPMenuWindowScrollingStateNone) + objj_msgSend(CPEvent, "stopPeriodicEvents"); + else if (oldScrollingState == _CPMenuWindowScrollingStateNone) + objj_msgSend(CPEvent, "startPeriodicEventsAfterDelay:withPeriod:", 0.0, 0.04); + } + else if (type == CPLeftMouseUp && (objj_msgSend(anEvent, "timestamp") - _startTime > STICKY_TIME_INTERVAL)) + { + if (_scrollingState != _CPMenuWindowScrollingStateNone) + objj_msgSend(CPEvent, "stopPeriodicEvents"); + objj_msgSend(self, "cancelTracking"); + } + } + if (_trackingCanceled) + { + objj_msgSend(CPEvent, "stopPeriodicEvents"); + var highlightedItem = objj_msgSend(objj_msgSend(_menuView, "menu"), "highlightedItem"); + objj_msgSend(menu, "_highlightItemAtIndex:", CPNotFound); + objj_msgSend(_menuView, "setMenu:", nil); + objj_msgSend(self, "orderOut:", self); + if (_sessionDelegate && _didEndSelector) + objj_msgSend(_sessionDelegate, _didEndSelector, self, highlightedItem); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPMenuDidEndTrackingNotification, menu); + var delegate = objj_msgSend(menu, "delegate"); + if (objj_msgSend(delegate, "respondsToSelector:", sel_getUid("menuDidClose:"))) + objj_msgSend(delegate, "menuDidClose:", menu); + return; + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackEvent:"), CPPeriodicMask | CPMouseMovedMask | CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("menuWindowWithMenu:font:"), function $_CPMenuWindow__menuWindowWithMenu_font_(self, _cmd, aMenu, aFont) +{ with(self) +{ + var menuWindow = nil; + if (_CPMenuWindowPool.length) + menuWindow = _CPMenuWindowPool.pop(); + else + menuWindow = objj_msgSend(objj_msgSend(_CPMenuWindow, "alloc"), "init"); + objj_msgSend(menuWindow, "setFont:", aFont); + objj_msgSend(menuWindow, "setMenu:", aMenu); + return menuWindow; +} +}), new objj_method(sel_getUid("poolMenuWindow:"), function $_CPMenuWindow__poolMenuWindow_(self, _cmd, aMenuWindow) +{ with(self) +{ + if (!aMenuWindow || _CPMenuWindowPool.length >= _CPMenuWindowPoolCapacity) + return; + _CPMenuWindowPool.push(aMenuWindow); +} +}), new objj_method(sel_getUid("initialize"), function $_CPMenuWindow__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPMenuWindow, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPMenuWindowMoreAboveImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowMoreAbove.png"), CGSizeMake(38.0, 18.0)); + _CPMenuWindowMoreBelowImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPMenuWindow/_CPMenuWindowMoreBelow.png"), CGSizeMake(38.0, 18.0)); +} +})]); +} +{var the_class = objj_allocateClassPair(CPView, "_CPMenuView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_menuItemViews"), new objj_ivar("_visibleMenuItemInfos"), new objj_ivar("_font")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setFont:"), function $_CPMenuView__setFont_(self, _cmd, aFont) +{ with(self) +{ + _font = aFont; +} +}), new objj_method(sel_getUid("rectForItemAtIndex:"), function $_CPMenuView__rectForItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(_menuItemViews[anIndex == CPNotFound ? 0 : anIndex], "frame"); +} +}), new objj_method(sel_getUid("itemIndexAtPoint:"), function $_CPMenuView__itemIndexAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var x = aPoint.x, + bounds = objj_msgSend(self, "bounds"); + if (x < CGRectGetMinX(bounds) || x > CGRectGetMaxX(bounds)) + return CPNotFound; + var y = aPoint.y, + low = 0, + high = _visibleMenuItemInfos.length - 1; + while (low <= high) + { + var middle = FLOOR(low + (high - low) / 2), + info = _visibleMenuItemInfos[middle] + frame = objj_msgSend(info.view, "frame"); + if (y < CGRectGetMinY(frame)) + high = middle - 1; + else if (y > CGRectGetMaxY(frame)) + low = middle + 1; + else + return info.index; + } + return CPNotFound; +} +}), new objj_method(sel_getUid("setMenu:"), function $_CPMenuView__setMenu_(self, _cmd, aMenu) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setMenu:", aMenu); + objj_msgSend(_menuItemViews, "makeObjectsPerformSelector:", sel_getUid("removeFromSuperview")); + _menuItemViews = []; + _visibleMenuItemInfos = []; + var menu = objj_msgSend(self, "menu"); + if (!menu) + return; + var items = objj_msgSend(menu, "itemArray"), + index = 0, + count = objj_msgSend(items, "count"), + maxWidth = 0, + y = 0, + showsStateColumn = objj_msgSend(menu, "showsStateColumn"); + for (; index < count; ++index) + { + var item = items[index], + view = objj_msgSend(item, "_menuItemView"); + _menuItemViews.push(view); + if (objj_msgSend(item, "isHidden")) + continue; + _visibleMenuItemInfos.push({ view:view, index:index }); + objj_msgSend(view, "setFont:", _font); + objj_msgSend(view, "setShowsStateColumn:", showsStateColumn); + objj_msgSend(view, "synchronizeWithMenuItem"); + objj_msgSend(view, "setFrameOrigin:", CGPointMake(0.0, y)); + objj_msgSend(self, "addSubview:", view); + var size = objj_msgSend(view, "minSize"), + width = size.width; + if (maxWidth < width) + maxWidth = width; + y += size.height; + } + for (index = 0; index < count; ++index) + { + var view = _menuItemViews[index]; + objj_msgSend(view, "setFrameSize:", CGSizeMake(maxWidth, CGRectGetHeight(objj_msgSend(view, "frame")))); + } + objj_msgSend(self, "setAutoresizesSubviews:", NO); + objj_msgSend(self, "setFrameSize:", CGSizeMake(maxWidth, y)); + objj_msgSend(self, "setAutoresizesSubviews:", YES); +} +})]); +} +var MENUBAR_HEIGHT = 29.0, + MENUBAR_MARGIN = 10.0, + MENUBAR_LEFT_MARGIN = 10.0, + MENUBAR_RIGHT_MARGIN = 10.0; +var _CPMenuBarWindowBackgroundColor = nil, + _CPMenuBarWindowFont = nil; +{var the_class = objj_allocateClassPair(CPPanel, "_CPMenuBarWindow"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_menu"), new objj_ivar("_highlightView"), new objj_ivar("_menuItemViews"), new objj_ivar("_trackingMenuItem"), new objj_ivar("_iconImageView"), new objj_ivar("_titleField"), new objj_ivar("_textColor"), new objj_ivar("_titleColor"), new objj_ivar("_textShadowColor"), new objj_ivar("_titleShadowColor"), new objj_ivar("_highlightColor"), new objj_ivar("_highlightTextColor"), new objj_ivar("_highlightTextShadowColor")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $_CPMenuBarWindow__init(self, _cmd) +{ with(self) +{ + var bridgeWidth = CGRectGetWidth(objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "contentBounds")); + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPPanel") }, "initWithContentRect:styleMask:", CGRectMake(0.0, 0.0, bridgeWidth, MENUBAR_HEIGHT), CPBorderlessWindowMask); + if (self) + { + objj_msgSend(self, "setLevel:", -1); + objj_msgSend(self, "setAutoresizingMask:", CPWindowWidthSizable); + var contentView = objj_msgSend(self, "contentView"); + objj_msgSend(contentView, "setAutoresizesSubviews:", NO); + objj_msgSend(self, "setBecomesKeyOnlyIfNeeded:", YES); + _iconImageView = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, 16.0, 16.0)); + objj_msgSend(contentView, "addSubview:", _iconImageView); + _titleField = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_titleField, "setFont:", objj_msgSend(CPFont, "boldSystemFontOfSize:", 12.0)); + objj_msgSend(_titleField, "setAlignment:", CPCenterTextAlignment); + objj_msgSend(_titleField, "setTextShadowOffset:", CGSizeMake(0, 1)); + objj_msgSend(contentView, "addSubview:", _titleField); + } + return self; +} +}), new objj_method(sel_getUid("setTitle:"), function $_CPMenuBarWindow__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + objj_msgSend(_titleField, "setStringValue:", aTitle); + objj_msgSend(_titleField, "sizeToFit"); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("setIconImage:"), function $_CPMenuBarWindow__setIconImage_(self, _cmd, anImage) +{ with(self) +{ + objj_msgSend(_iconImageView, "setImage:", anImage); + objj_msgSend(_iconImageView, "setHidden:", anImage == nil); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("setIconImageAlphaValue:"), function $_CPMenuBarWindow__setIconImageAlphaValue_(self, _cmd, anAlphaValue) +{ with(self) +{ + objj_msgSend(_iconImageView, "setAlphaValue:", anAlphaValue); +} +}), new objj_method(sel_getUid("setColor:"), function $_CPMenuBarWindow__setColor_(self, _cmd, aColor) +{ with(self) +{ + if (!aColor) + { + if (!_CPMenuBarWindowBackgroundColor) + _CPMenuBarWindowBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(_CPMenuBarWindow, "class")), "pathForResource:", "_CPMenuBarWindow/_CPMenuBarWindowBackground.png"), CGSizeMake(1.0, 18.0))); + objj_msgSend(objj_msgSend(self, "contentView"), "setBackgroundColor:", _CPMenuBarWindowBackgroundColor); + } + else + objj_msgSend(objj_msgSend(self, "contentView"), "setBackgroundColor:", aColor); +} +}), new objj_method(sel_getUid("setTextColor:"), function $_CPMenuBarWindow__setTextColor_(self, _cmd, aColor) +{ with(self) +{ + if (_textColor == aColor) + return; + _textColor = aColor; + objj_msgSend(_menuItemViews, "makeObjectsPerformSelector:withObject:", sel_getUid("setTextColor:"), _textColor); +} +}), new objj_method(sel_getUid("setTitleColor:"), function $_CPMenuBarWindow__setTitleColor_(self, _cmd, aColor) +{ with(self) +{ + if (_titleColor == aColor) + return; + _titleColor = aColor; + objj_msgSend(_titleField, "setTextColor:", aColor ? aColor : objj_msgSend(CPColor, "blackColor")); +} +}), new objj_method(sel_getUid("setTextShadowColor:"), function $_CPMenuBarWindow__setTextShadowColor_(self, _cmd, aColor) +{ with(self) +{ + if (_textShadowColor == aColor) + return; + _textShadowColor = aColor; + objj_msgSend(_menuItemViews, "makeObjectsPerformSelector:withObject:", sel_getUid("setTextShadowColor:"), _textShadowColor); +} +}), new objj_method(sel_getUid("setTitleShadowColor:"), function $_CPMenuBarWindow__setTitleShadowColor_(self, _cmd, aColor) +{ with(self) +{ + if (_titleShadowColor == aColor) + return; + _titleShadowColor = aColor; + objj_msgSend(_titleField, "setTextShadowColor:", aColor ? aColor : objj_msgSend(CPColor, "whiteColor")); +} +}), new objj_method(sel_getUid("setHighlightColor:"), function $_CPMenuBarWindow__setHighlightColor_(self, _cmd, aColor) +{ with(self) +{ + if (_highlightColor == aColor) + return; + _highlightColor = aColor; +} +}), new objj_method(sel_getUid("setHighlightTextColor:"), function $_CPMenuBarWindow__setHighlightTextColor_(self, _cmd, aColor) +{ with(self) +{ + if (_highlightTextColor == aColor) + return; + _highlightTextColor = aColor; + objj_msgSend(_menuItemViews, "makeObjectsPerformSelector:withObject:", sel_getUid("setActivateColor:"), _highlightTextColor); +} +}), new objj_method(sel_getUid("setHighlightTextShadowColor:"), function $_CPMenuBarWindow__setHighlightTextShadowColor_(self, _cmd, aColor) +{ with(self) +{ + if (_highlightTextShadowColor == aColor) + return; + _highlightTextShadowColor = aColor; + objj_msgSend(_menuItemViews, "makeObjectsPerformSelector:withObject:", sel_getUid("setActivateShadowColor:"), _highlightTextShadowColor); +} +}), new objj_method(sel_getUid("setMenu:"), function $_CPMenuBarWindow__setMenu_(self, _cmd, aMenu) +{ with(self) +{ + if (_menu == aMenu) + return; + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_menu) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPMenuDidAddItemNotification, _menu); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPMenuDidChangeItemNotification, _menu); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPMenuDidRemoveItemNotification, _menu); + var items = objj_msgSend(_menu, "itemArray"), + count = items.length; + while (count--) + objj_msgSend(objj_msgSend(items[count], "_menuItemView"), "removeFromSuperview"); + } + _menu = aMenu; + if (_menu) + { + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("menuDidAddItem:"), CPMenuDidAddItemNotification, _menu); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("menuDidChangeItem:"), CPMenuDidChangeItemNotification, _menu); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("menuDidRemoveItem:"), CPMenuDidRemoveItemNotification, _menu); + } + _menuItemViews = []; + var contentView = objj_msgSend(self, "contentView"), + items = objj_msgSend(_menu, "itemArray"), + count = items.length; + for (index = 0; index < count; ++index) + { + var item = items[index], + menuItemView = objj_msgSend(item, "_menuItemView"); + _menuItemViews.push(menuItemView); + objj_msgSend(menuItemView, "setShowsStateColumn:", NO); + objj_msgSend(menuItemView, "setBelongsToMenuBar:", YES); + objj_msgSend(menuItemView, "setFont:", _CPMenuBarWindowFont); + objj_msgSend(menuItemView, "setTextColor:", _textColor); + objj_msgSend(menuItemView, "setHidden:", objj_msgSend(item, "isHidden")); + objj_msgSend(menuItemView, "synchronizeWithMenuItem"); + objj_msgSend(contentView, "addSubview:", menuItemView); + } + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("menuDidChangeItem:"), function $_CPMenuBarWindow__menuDidChangeItem_(self, _cmd, aNotification) +{ with(self) +{ + var menuItem = objj_msgSend(_menu, "itemAtIndex:", objj_msgSend(objj_msgSend(aNotification, "userInfo"), "objectForKey:", "CPMenuItemIndex")), + menuItemView = objj_msgSend(menuItem, "_menuItemView"); + objj_msgSend(menuItemView, "setHidden:", objj_msgSend(menuItem, "isHidden")); + objj_msgSend(menuItemView, "synchronizeWithMenuItem"); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("menuDidAddItem:"), function $_CPMenuBarWindow__menuDidAddItem_(self, _cmd, aNotification) +{ with(self) +{ + var index = objj_msgSend(objj_msgSend(aNotification, "userInfo"), "objectForKey:", "CPMenuItemIndex"), + menuItem = objj_msgSend(_menu, "itemAtIndex:", index), + menuItemView = objj_msgSend(menuItem, "_menuItemView"); + objj_msgSend(_menuItemViews, "insertObject:atIndex:", menuItemView, index); + objj_msgSend(menuItemView, "setShowsStateColumn:", NO); + objj_msgSend(menuItemView, "setBelongsToMenuBar:", YES); + objj_msgSend(menuItemView, "setFont:", _CPMenuBarWindowFont); + objj_msgSend(menuItemView, "setTextColor:", _textColor); + objj_msgSend(menuItemView, "setHidden:", objj_msgSend(menuItem, "isHidden")); + objj_msgSend(menuItemView, "synchronizeWithMenuItem"); + objj_msgSend(objj_msgSend(self, "contentView"), "addSubview:", menuItemView); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("menuDidRemoveItem:"), function $_CPMenuBarWindow__menuDidRemoveItem_(self, _cmd, aNotification) +{ with(self) +{ + var index = objj_msgSend(objj_msgSend(aNotification, "userInfo"), "objectForKey:", "CPMenuItemIndex"), + menuItemView = objj_msgSend(_menuItemViews, "objectAtIndex:", index); + objj_msgSend(_menuItemViews, "removeObjectAtIndex:", index); + objj_msgSend(menuItemView, "removeFromSuperview"); + objj_msgSend(self, "tile"); +} +}), new objj_method(sel_getUid("frameForMenuItem:"), function $_CPMenuBarWindow__frameForMenuItem_(self, _cmd, aMenuItem) +{ with(self) +{ + var frame = objj_msgSend(objj_msgSend(aMenuItem, "_menuItemView"), "frame"); + frame.origin.x -= 5.0; + frame.origin.y = 0; + frame.size.width += 10.0; + frame.size.height = MENUBAR_HEIGHT; + return frame; +} +}), new objj_method(sel_getUid("menuItemAtPoint:"), function $_CPMenuBarWindow__menuItemAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var items = objj_msgSend(_menu, "itemArray"), + count = items.length; + while (count--) + { + var item = items[count]; + if (objj_msgSend(item, "isHidden") || objj_msgSend(item, "isSeparatorItem")) + continue; + if (CGRectContainsPoint(objj_msgSend(self, "frameForMenuItem:", item), aPoint)) + return item; + } + return nil; +} +}), new objj_method(sel_getUid("mouseDown:"), function $_CPMenuBarWindow__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + _trackingMenuItem = objj_msgSend(self, "menuItemAtPoint:", objj_msgSend(anEvent, "locationInWindow")); + if (!objj_msgSend(_trackingMenuItem, "isEnabled")) + return; + if (objj_msgSend(objj_msgSend(_trackingMenuItem, "_menuItemView"), "eventOnSubmenu:", anEvent)) + return objj_msgSend(self, "showMenu:", anEvent); + if (objj_msgSend(_trackingMenuItem, "isEnabled")) + objj_msgSend(self, "trackEvent:", anEvent); +} +}), new objj_method(sel_getUid("trackEvent:"), function $_CPMenuBarWindow__trackEvent_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"); + if (type === CPPeriodic) + return objj_msgSend(self, "showMenu:", anEvent); + var frame = objj_msgSend(self, "frameForMenuItem:", _trackingMenuItem), + menuItemView = objj_msgSend(_trackingMenuItem, "_menuItemView"), + onMenuItemView = CGRectContainsPoint(frame, objj_msgSend(anEvent, "locationInWindow")); + if (type == CPLeftMouseDown) + { + if (objj_msgSend(_trackingMenuItem, "submenu") != nil) + { + var action = objj_msgSend(_trackingMenuItem, "action"); + if (!action || action === sel_getUid("submenuAction:")) + return objj_msgSend(self, "showMenu:", anEvent); + objj_msgSend(CPEvent, "startPeriodicEventsAfterDelay:withPeriod:", 0.0, 0.5); + } + objj_msgSend(menuItemView, "highlight:", onMenuItemView); + } + else if (type == CPLeftMouseDragged) + { + if (!onMenuItemView && objj_msgSend(_trackingMenuItem, "submenu")) + return objj_msgSend(self, "showMenu:", anEvent); + objj_msgSend(menuItemView, "highlight:", onMenuItemView); + } + else + { + objj_msgSend(CPEvent, "stopPeriodicEvents"); + objj_msgSend(menuItemView, "highlight:", NO); + if (onMenuItemView) + objj_msgSend(CPApp, "sendAction:to:from:", objj_msgSend(_trackingMenuItem, "action"), objj_msgSend(_trackingMenuItem, "target"), _trackingMenuItem); + return; + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackEvent:"), CPPeriodicMask | CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("showMenu:"), function $_CPMenuBarWindow__showMenu_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(CPEvent, "stopPeriodicEvents"); + var frame = objj_msgSend(self, "frameForMenuItem:", _trackingMenuItem), + menuItemView = objj_msgSend(_trackingMenuItem, "_menuItemView"); + if (!_highlightView) + { + _highlightView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", frame); + objj_msgSend(_highlightView, "setBackgroundColor:", _highlightColor ? _highlightColor : objj_msgSend(CPColor, "colorWithRed:green:blue:alpha:", 95.0/255.0, 131.0/255.0, 185.0/255.0, 1.0)); + } + else + objj_msgSend(_highlightView, "setFrame:", frame); + objj_msgSend(objj_msgSend(self, "contentView"), "addSubview:positioned:relativeTo:", _highlightView, CPWindowBelow, menuItemView); + objj_msgSend(menuItemView, "activate:", YES); + var submenu = objj_msgSend(_trackingMenuItem, "submenu"); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", self, sel_getUid("menuDidEndTracking:"), CPMenuDidEndTrackingNotification, submenu); + objj_msgSend(CPMenu, "_popUpContextMenu:withEvent:forView:withFont:forMenuBar:", submenu, objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", CPLeftMouseDown, CGPointMake(CGRectGetMinX(frame), CGRectGetMaxY(frame)), objj_msgSend(anEvent, "modifierFlags"), objj_msgSend(anEvent, "timestamp"), objj_msgSend(self, "windowNumber"), nil, 0, objj_msgSend(anEvent, "clickCount"), objj_msgSend(anEvent, "pressure")), objj_msgSend(self, "contentView"), nil, YES); +} +}), new objj_method(sel_getUid("menuDidEndTracking:"), function $_CPMenuBarWindow__menuDidEndTracking_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(_highlightView, "removeFromSuperview"); + objj_msgSend(objj_msgSend(_trackingMenuItem, "_menuItemView"), "activate:", NO); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "removeObserver:name:object:", self, CPMenuDidEndTrackingNotification, objj_msgSend(aNotification, "object")); +} +}), new objj_method(sel_getUid("tile"), function $_CPMenuBarWindow__tile(self, _cmd) +{ with(self) +{ + var items = objj_msgSend(_menu, "itemArray"), + index = 0, + count = items.length, + x = MENUBAR_LEFT_MARGIN, + y = 0.0, + isLeftAligned = YES; + for (; index < count; ++index) + { + var item = items[index]; + if (objj_msgSend(item, "isSeparatorItem")) + { + x = CGRectGetWidth(objj_msgSend(self, "frame")) - MENUBAR_RIGHT_MARGIN; + isLeftAligned = NO; + continue; + } + if (objj_msgSend(item, "isHidden")) + continue; + var menuItemView = objj_msgSend(item, "_menuItemView"), + frame = objj_msgSend(menuItemView, "frame"); + if (isLeftAligned) + { + objj_msgSend(menuItemView, "setFrameOrigin:", CGPointMake(x, (MENUBAR_HEIGHT - 1.0 - CGRectGetHeight(frame)) / 2.0)); + x += CGRectGetWidth(objj_msgSend(menuItemView, "frame")) + MENUBAR_MARGIN; + } + else + { + objj_msgSend(menuItemView, "setFrameOrigin:", CGPointMake(x - CGRectGetWidth(frame), (MENUBAR_HEIGHT - 1.0 - CGRectGetHeight(frame)) / 2.0)); + x = CGRectGetMinX(objj_msgSend(menuItemView, "frame")) - MENUBAR_MARGIN; + } + } + var bounds = objj_msgSend(objj_msgSend(self, "contentView"), "bounds"), + titleFrame = objj_msgSend(_titleField, "frame"); + if (objj_msgSend(_iconImageView, "isHidden")) + objj_msgSend(_titleField, "setFrameOrigin:", CGPointMake((CGRectGetWidth(bounds) - CGRectGetWidth(titleFrame)) / 2.0, (CGRectGetHeight(bounds) - CGRectGetHeight(titleFrame)) / 2.0)); + else + { + var iconFrame = objj_msgSend(_iconImageView, "frame"), + iconWidth = CGRectGetWidth(iconFrame), + totalWidth = iconWidth + CGRectGetWidth(titleFrame); + objj_msgSend(_iconImageView, "setFrameOrigin:", CGPointMake((CGRectGetWidth(bounds) - totalWidth) / 2.0, (CGRectGetHeight(bounds) - CGRectGetHeight(iconFrame)) / 2.0)); + objj_msgSend(_titleField, "setFrameOrigin:", CGPointMake((CGRectGetWidth(bounds) - totalWidth) / 2.0 + iconWidth, (CGRectGetHeight(bounds) - CGRectGetHeight(titleFrame)) / 2.0)); + } +} +}), new objj_method(sel_getUid("setFrameSize:"), function $_CPMenuBarWindow__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPPanel") }, "setFrameSize:", aSize); + objj_msgSend(self, "tile"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPMenuBarWindow__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPMenuBarWindow, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPMenuBarWindowFont = objj_msgSend(CPFont, "systemFontOfSize:", 11.0); +} +})]); +} + +p;12;CPMenuItem.jI;20;Foundation/CPCoder.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jI;16;AppKit/CPImage.jI;15;AppKit/CPMenu.jI;15;AppKit/CPView.jc;32013; +{var the_class = objj_allocateClassPair(CPObject, "CPMenuItem"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_isSeparator"), new objj_ivar("_title"), new objj_ivar("_font"), new objj_ivar("_target"), new objj_ivar("_action"), new objj_ivar("_isEnabled"), new objj_ivar("_isHidden"), new objj_ivar("_tag"), new objj_ivar("_state"), new objj_ivar("_image"), new objj_ivar("_alternateImage"), new objj_ivar("_onStateImage"), new objj_ivar("_offStateImage"), new objj_ivar("_mixedStateImage"), new objj_ivar("_submenu"), new objj_ivar("_menu"), new objj_ivar("_keyEquivalent"), new objj_ivar("_keyEquivalentModifierMask"), new objj_ivar("_mnemonicLocation"), new objj_ivar("_isAlternate"), new objj_ivar("_indentationLevel"), new objj_ivar("_toolTip"), new objj_ivar("_representedObject"), new objj_ivar("_view"), new objj_ivar("_menuItemView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithTitle:action:keyEquivalent:"), function $CPMenuItem__initWithTitle_action_keyEquivalent_(self, _cmd, aTitle, anAction, aKeyEquivalent) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _isSeparator = NO; + _title = aTitle; + _action = anAction; + _isEnabled = YES; + _tag = 0; + _state = CPOffState; + _keyEquivalent = aKeyEquivalent || ""; + _keyEquivalentModifierMask = CPPlatformActionKeyMask; + _mnemonicLocation = CPNotFound; + } + return self; +} +}), new objj_method(sel_getUid("setEnabled:"), function $CPMenuItem__setEnabled_(self, _cmd, isEnabled) +{ with(self) +{ + if (objj_msgSend(_menu, "autoenablesItems")) + return; + _isEnabled = isEnabled; + objj_msgSend(_menuItemView, "setDirty"); + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("isEnabled"), function $CPMenuItem__isEnabled(self, _cmd) +{ with(self) +{ + return _isEnabled; +} +}), new objj_method(sel_getUid("setHidden:"), function $CPMenuItem__setHidden_(self, _cmd, isHidden) +{ with(self) +{ + if (_isHidden == isHidden) + return; + _isHidden = isHidden; + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("isHidden"), function $CPMenuItem__isHidden(self, _cmd) +{ with(self) +{ + return _isHidden; +} +}), new objj_method(sel_getUid("isHiddenOrHasHiddenAncestor"), function $CPMenuItem__isHiddenOrHasHiddenAncestor(self, _cmd) +{ with(self) +{ + if (_isHidden) + return YES; + var supermenu = objj_msgSend(_menu, "supermenu"); + if (objj_msgSend(objj_msgSend(supermenu, "itemAtIndex:", objj_msgSend(supermenu, "indexOfItemWithSubmenu:", _menu)), "isHiddenOrHasHiddenAncestor")) + return YES; + return NO; +} +}), new objj_method(sel_getUid("setTarget:"), function $CPMenuItem__setTarget_(self, _cmd, aTarget) +{ with(self) +{ + _target = aTarget; +} +}), new objj_method(sel_getUid("target"), function $CPMenuItem__target(self, _cmd) +{ with(self) +{ + return _target; +} +}), new objj_method(sel_getUid("setAction:"), function $CPMenuItem__setAction_(self, _cmd, anAction) +{ with(self) +{ + _action = anAction; +} +}), new objj_method(sel_getUid("action"), function $CPMenuItem__action(self, _cmd) +{ with(self) +{ + return _action; +} +}), new objj_method(sel_getUid("setTitle:"), function $CPMenuItem__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + _mnemonicLocation = CPNotFound; + if (_title == aTitle) + return; + _title = aTitle; + objj_msgSend(_menuItemView, "setDirty"); + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("title"), function $CPMenuItem__title(self, _cmd) +{ with(self) +{ + return _title; +} +}), new objj_method(sel_getUid("setTextColor:"), function $CPMenuItem__setTextColor_(self, _cmd, aColor) +{ with(self) +{ +} +}), new objj_method(sel_getUid("setFont:"), function $CPMenuItem__setFont_(self, _cmd, aFont) +{ with(self) +{ + if (_font == aFont) + return; + _font = aFont; + objj_msgSend(_menu, "itemChanged:", self); + objj_msgSend(_menuItemView, "setDirty"); +} +}), new objj_method(sel_getUid("font"), function $CPMenuItem__font(self, _cmd) +{ with(self) +{ + return _font; +} +}), new objj_method(sel_getUid("setTag:"), function $CPMenuItem__setTag_(self, _cmd, aTag) +{ with(self) +{ + _tag = aTag; +} +}), new objj_method(sel_getUid("tag"), function $CPMenuItem__tag(self, _cmd) +{ with(self) +{ + return _tag; +} +}), new objj_method(sel_getUid("setState:"), function $CPMenuItem__setState_(self, _cmd, aState) +{ with(self) +{ + if (_state == aState) + return; + _state = aState; + objj_msgSend(_menu, "itemChanged:", self); + objj_msgSend(_menuItemView, "setDirty"); +} +}), new objj_method(sel_getUid("state"), function $CPMenuItem__state(self, _cmd) +{ with(self) +{ + return _state; +} +}), new objj_method(sel_getUid("setImage:"), function $CPMenuItem__setImage_(self, _cmd, anImage) +{ with(self) +{ + if (_image == anImage) + return; + _image = anImage; + objj_msgSend(_menuItemView, "setDirty"); + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("image"), function $CPMenuItem__image(self, _cmd) +{ with(self) +{ + return _image; +} +}), new objj_method(sel_getUid("setAlternateImage:"), function $CPMenuItem__setAlternateImage_(self, _cmd, anImage) +{ with(self) +{ + _alternateImage = anImage; +} +}), new objj_method(sel_getUid("alternateImage"), function $CPMenuItem__alternateImage(self, _cmd) +{ with(self) +{ + return _alternateImage; +} +}), new objj_method(sel_getUid("setOnStateImage:"), function $CPMenuItem__setOnStateImage_(self, _cmd, anImage) +{ with(self) +{ + if (_onStateImage == anImage) + return; + _onStateImage = anImage; + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("onStateImage"), function $CPMenuItem__onStateImage(self, _cmd) +{ with(self) +{ + return _onStateImage; +} +}), new objj_method(sel_getUid("setOffStateImage:"), function $CPMenuItem__setOffStateImage_(self, _cmd, anImage) +{ with(self) +{ + if (_offStateImage == anImage) + return; + _offStateImage = anImage; + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("offStateImage"), function $CPMenuItem__offStateImage(self, _cmd) +{ with(self) +{ + return _offStateImage; +} +}), new objj_method(sel_getUid("setMixedStateImage:"), function $CPMenuItem__setMixedStateImage_(self, _cmd, anImage) +{ with(self) +{ + if (_mixedStateImage == anImage) + return; + _mixedStateImage = anImage; + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("mixedStateImage"), function $CPMenuItem__mixedStateImage(self, _cmd) +{ with(self) +{ + return _mixedStateImage; +} +}), new objj_method(sel_getUid("setSubmenu:"), function $CPMenuItem__setSubmenu_(self, _cmd, aMenu) +{ with(self) +{ + var supermenu = objj_msgSend(_submenu, "supermenu"); + if (supermenu == self) + return; + if (supermenu) + return alert("bad"); + objj_msgSend(_submenu, "setSupermenu:", _menu); + _submenu = aMenu; + objj_msgSend(_menuItemView, "setDirty"); + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("submenu"), function $CPMenuItem__submenu(self, _cmd) +{ with(self) +{ + return _submenu; +} +}), new objj_method(sel_getUid("hasSubmenu"), function $CPMenuItem__hasSubmenu(self, _cmd) +{ with(self) +{ + return _submenu ? YES : NO; +} +}), new objj_method(sel_getUid("isSeparatorItem"), function $CPMenuItem__isSeparatorItem(self, _cmd) +{ with(self) +{ + return _isSeparator; +} +}), new objj_method(sel_getUid("setMenu:"), function $CPMenuItem__setMenu_(self, _cmd, aMenu) +{ with(self) +{ + _menu = aMenu; +} +}), new objj_method(sel_getUid("menu"), function $CPMenuItem__menu(self, _cmd) +{ with(self) +{ + return _menu; +} +}), new objj_method(sel_getUid("setKeyEquivalent:"), function $CPMenuItem__setKeyEquivalent_(self, _cmd, aString) +{ with(self) +{ + _keyEquivalent = aString || ""; +} +}), new objj_method(sel_getUid("keyEquivalent"), function $CPMenuItem__keyEquivalent(self, _cmd) +{ with(self) +{ + return _keyEquivalent; +} +}), new objj_method(sel_getUid("setKeyEquivalentModifierMask:"), function $CPMenuItem__setKeyEquivalentModifierMask_(self, _cmd, aMask) +{ with(self) +{ + _keyEquivalentModifierMask = aMask; +} +}), new objj_method(sel_getUid("keyEquivalentModifierMask"), function $CPMenuItem__keyEquivalentModifierMask(self, _cmd) +{ with(self) +{ + return _keyEquivalentModifierMask; +} +}), new objj_method(sel_getUid("setMnemonicLocation:"), function $CPMenuItem__setMnemonicLocation_(self, _cmd, aLocation) +{ with(self) +{ + _mnemonicLocation = aLocation; +} +}), new objj_method(sel_getUid("mnemonicLocation"), function $CPMenuItem__mnemonicLocation(self, _cmd) +{ with(self) +{ + return _mnemonicLocation; +} +}), new objj_method(sel_getUid("setTitleWithMnemonicLocation:"), function $CPMenuItem__setTitleWithMnemonicLocation_(self, _cmd, aTitle) +{ with(self) +{ + var location = objj_msgSend(aTitle, "rangeOfString:", "&").location; + if (location == CPNotFound) + objj_msgSend(self, "setTitle:", aTitle); + else + { + objj_msgSend(self, "setTitle:", objj_msgSend(aTitle, "substringToIndex:", location) + objj_msgSend(aTitle, "substringFromIndex:", location + 1)); + objj_msgSend(self, "setMnemonicLocation:", location); + } +} +}), new objj_method(sel_getUid("mnemonic"), function $CPMenuItem__mnemonic(self, _cmd) +{ with(self) +{ + return _mnemonicLocation == CPNotFound ? "" : objj_msgSend(_title, "characterAtIndex:", _mnemonicLocation); +} +}), new objj_method(sel_getUid("setAlternate:"), function $CPMenuItem__setAlternate_(self, _cmd, isAlternate) +{ with(self) +{ + _isAlternate = isAlternate; +} +}), new objj_method(sel_getUid("isAlternate"), function $CPMenuItem__isAlternate(self, _cmd) +{ with(self) +{ + return _isAlternate; +} +}), new objj_method(sel_getUid("setIndentationLevel:"), function $CPMenuItem__setIndentationLevel_(self, _cmd, aLevel) +{ with(self) +{ + if (aLevel < 0) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "setIndentationLevel: argument must be greater than 0."); + _indentationLevel = MIN(15, aLevel); +} +}), new objj_method(sel_getUid("indentationLevel"), function $CPMenuItem__indentationLevel(self, _cmd) +{ with(self) +{ + return _indentationLevel; +} +}), new objj_method(sel_getUid("setToolTip:"), function $CPMenuItem__setToolTip_(self, _cmd, aToolTip) +{ with(self) +{ + _toolTip = aToolTip; +} +}), new objj_method(sel_getUid("toolTip"), function $CPMenuItem__toolTip(self, _cmd) +{ with(self) +{ + return _toolTip; +} +}), new objj_method(sel_getUid("setRepresentedObject:"), function $CPMenuItem__setRepresentedObject_(self, _cmd, anObject) +{ with(self) +{ + _representedObject = anObject; +} +}), new objj_method(sel_getUid("representedObject"), function $CPMenuItem__representedObject(self, _cmd) +{ with(self) +{ + return _representedObject; +} +}), new objj_method(sel_getUid("setView:"), function $CPMenuItem__setView_(self, _cmd, aView) +{ with(self) +{ + if (_view === aView) + return; + _view = aView; + objj_msgSend(_menuItemView, "setDirty"); + objj_msgSend(_menu, "itemChanged:", self); +} +}), new objj_method(sel_getUid("view"), function $CPMenuItem__view(self, _cmd) +{ with(self) +{ + return _view; +} +}), new objj_method(sel_getUid("isHighlighted"), function $CPMenuItem__isHighlighted(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "menu"), "highlightedItem") == self; +} +}), new objj_method(sel_getUid("_menuItemView"), function $CPMenuItem___menuItemView(self, _cmd) +{ with(self) +{ + if (!_menuItemView) + _menuItemView = objj_msgSend(objj_msgSend(_CPMenuItemView, "alloc"), "initWithFrame:forMenuItem:", CGRectMakeZero(), self); + return _menuItemView; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("separatorItem"), function $CPMenuItem__separatorItem(self, _cmd) +{ with(self) +{ + var separatorItem = objj_msgSend(objj_msgSend(self, "alloc"), "initWithTitle:action:keyEquivalent:", "", nil, nil); + separatorItem._isSeparator = YES; + return separatorItem; +} +})]); +} +var CPMenuItemIsSeparatorKey = "CPMenuItemIsSeparatorKey", + CPMenuItemTitleKey = "CPMenuItemTitleKey", + CPMenuItemTargetKey = "CPMenuItemTargetKey", + CPMenuItemActionKey = "CPMenuItemActionKey", + CPMenuItemIsEnabledKey = "CPMenuItemIsEnabledKey", + CPMenuItemIsHiddenKey = "CPMenuItemIsHiddenKey", + CPMenuItemTagKey = "CPMenuItemTagKey", + CPMenuItemStateKey = "CPMenuItemStateKey", + CPMenuItemImageKey = "CPMenuItemImageKey", + CPMenuItemAlternateImageKey = "CPMenuItemAlternateImageKey", + CPMenuItemSubmenuKey = "CPMenuItemSubmenuKey", + CPMenuItemMenuKey = "CPMenuItemMenuKey", + CPMenuItemRepresentedObjectKey = "CPMenuItemRepresentedObjectKey", + CPMenuItemViewKey = "CPMenuItemViewKey"; +{ +var the_class = objj_getClass("CPMenuItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPMenuItem\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPMenuItem__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _isSeparator = objj_msgSend(aCoder, "containsValueForKey:", CPMenuItemIsSeparatorKey) && objj_msgSend(aCoder, "decodeBoolForKey:", CPMenuItemIsSeparatorKey); + _title = objj_msgSend(aCoder, "decodeObjectForKey:", CPMenuItemTitleKey); + _target = objj_msgSend(aCoder, "decodeObjectForKey:", CPMenuItemTargetKey); + _action = objj_msgSend(aCoder, "decodeObjectForKey:", CPMenuItemActionKey); + _isEnabled = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemIsEnabledKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemIsEnabledKey)) : (YES); + _isHidden = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemIsHiddenKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemIsHiddenKey)) : (NO); + _tag = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemTagKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemTagKey)) : (0); + _state = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemStateKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemStateKey)) : (CPOffState); + _image = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemImageKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemImageKey)) : (nil); + _alternateImage = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemAlternateImageKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemAlternateImageKey)) : (nil); + _submenu = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemSubmenuKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemSubmenuKey)) : (nil); + _menu = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemMenuKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemMenuKey)) : (nil); + _representedObject = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemRepresentedObjectKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemRepresentedObjectKey)) : (nil); + _view = objj_msgSend(aCoder, "containsValueForKey:", (CPMenuItemViewKey)) ? objj_msgSend(aCoder, "decodeObjectForKey:", (CPMenuItemViewKey)) : (nil); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPMenuItem__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (_isSeparator) + objj_msgSend(aCoder, "encodeBool:forKey:", _isSeparator, CPMenuItemIsSeparatorKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _title, CPMenuItemTitleKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _target, CPMenuItemTargetKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _action, CPMenuItemActionKey); + if ((_isEnabled) !== (YES)) objj_msgSend(aCoder, "encodeObject:forKey:", (_isEnabled), (CPMenuItemIsEnabledKey));; + if ((_isHidden) !== (NO)) objj_msgSend(aCoder, "encodeObject:forKey:", (_isHidden), (CPMenuItemIsHiddenKey));; + if ((_tag) !== (0)) objj_msgSend(aCoder, "encodeObject:forKey:", (_tag), (CPMenuItemTagKey));; + if ((_state) !== (CPOffState)) objj_msgSend(aCoder, "encodeObject:forKey:", (_state), (CPMenuItemStateKey));; + if ((_image) !== (nil)) objj_msgSend(aCoder, "encodeObject:forKey:", (_image), (CPMenuItemImageKey));; + if ((_alternateImage) !== (nil)) objj_msgSend(aCoder, "encodeObject:forKey:", (_alternateImage), (CPMenuItemAlternateImageKey));; + if ((_submenu) !== (nil)) objj_msgSend(aCoder, "encodeObject:forKey:", (_submenu), (CPMenuItemSubmenuKey));; + if ((_menu) !== (nil)) objj_msgSend(aCoder, "encodeObject:forKey:", (_menu), (CPMenuItemMenuKey));; + if ((_representedObject) !== (nil)) objj_msgSend(aCoder, "encodeObject:forKey:", (_representedObject), (CPMenuItemRepresentedObjectKey));; + if ((_view) !== (nil)) objj_msgSend(aCoder, "encodeObject:forKey:", (_view), (CPMenuItemViewKey));; +} +})]); +} +var LEFT_MARGIN = 3.0, + RIGHT_MARGIN = 16.0, + STATE_COLUMN_WIDTH = 14.0, + INDENTATION_WIDTH = 17.0, + VERTICAL_MARGIN = 4.0; +var _CPMenuItemSelectionColor = nil, + _CPMenuItemTextShadowColor = nil, + _CPMenuItemDefaultStateImages = [], + _CPMenuItemDefaultStateHighlightedImages = []; +{var the_class = objj_allocateClassPair(CPView, "_CPMenuItemView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_menuItem"), new objj_ivar("_font"), new objj_ivar("_textColor"), new objj_ivar("_textShadowColor"), new objj_ivar("_activateColor"), new objj_ivar("_activateShadowColor"), new objj_ivar("_minSize"), new objj_ivar("_isDirty"), new objj_ivar("_showsStateColumn"), new objj_ivar("_belongsToMenuBar"), new objj_ivar("_stateView"), new objj_ivar("_imageAndTextView"), new objj_ivar("_submenuView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:forMenuItem:"), function $_CPMenuItemView__initWithFrame_forMenuItem_(self, _cmd, aFrame, aMenuItem) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _menuItem = aMenuItem; + _showsStateColumn = YES; + _isDirty = YES; + objj_msgSend(self, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(self, "synchronizeWithMenuItem"); + } + return self; +} +}), new objj_method(sel_getUid("minSize"), function $_CPMenuItemView__minSize(self, _cmd) +{ with(self) +{ + return _minSize; +} +}), new objj_method(sel_getUid("setDirty"), function $_CPMenuItemView__setDirty(self, _cmd) +{ with(self) +{ + _isDirty = YES; +} +}), new objj_method(sel_getUid("synchronizeWithMenuItem"), function $_CPMenuItemView__synchronizeWithMenuItem(self, _cmd) +{ with(self) +{ + if (!_isDirty) + return; + _isDirty = NO; + var view = objj_msgSend(_menuItem, "view"); + if (objj_msgSend(_menuItem, "isSeparatorItem")) + { + var line = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, 5.0, 10.0, 1.0)); + view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, 0.0, 10.0)); + objj_msgSend(view, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(line, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(line, "setBackgroundColor:", objj_msgSend(CPColor, "lightGrayColor")); + objj_msgSend(view, "addSubview:", line); + } + if (view) + { + objj_msgSend(_imageAndTextView, "removeFromSuperview"); + _imageAndTextView = nil; + objj_msgSend(_stateView, "removeFromSuperview"); + _stateView = nil; + objj_msgSend(_submenuView, "removeFromSuperview"); + _submenuView = nil; + _minSize = objj_msgSend(view, "frame").size; + objj_msgSend(self, "setFrameSize:", _minSize); + objj_msgSend(self, "addSubview:", view); + return; + } + var x = _belongsToMenuBar ? 0.0 : (LEFT_MARGIN + objj_msgSend(_menuItem, "indentationLevel") * INDENTATION_WIDTH); + if (_showsStateColumn) + { + if (!_stateView) + { + _stateView = objj_msgSend(objj_msgSend(CPImageView, "alloc"), "initWithFrame:", CGRectMake(x, (CGRectGetHeight(objj_msgSend(self, "frame")) - STATE_COLUMN_WIDTH) / 2.0, STATE_COLUMN_WIDTH, STATE_COLUMN_WIDTH)); + objj_msgSend(_stateView, "setAutoresizingMask:", CPViewMinYMargin | CPViewMaxYMargin); + objj_msgSend(self, "addSubview:", _stateView); + } + var state = objj_msgSend(_menuItem, "state"); + switch (state) + { + case CPOffState: + case CPOnState: + case CPMixedState: objj_msgSend(_stateView, "setImage:", _CPMenuItemDefaultStateImages[state]); + break; + default: objj_msgSend(_stateView, "setImage:", nil); + } + x += STATE_COLUMN_WIDTH; + } + else + { + objj_msgSend(_stateView, "removeFromSuperview"); + _stateView = nil; + } + if (!_imageAndTextView) + { + _imageAndTextView = objj_msgSend(objj_msgSend(_CPImageAndTextView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, 0.0, 0.0)); + objj_msgSend(_imageAndTextView, "setImagePosition:", CPImageLeft); + objj_msgSend(_imageAndTextView, "setTextShadowOffset:", CGSizeMake(0.0, 1.0)); + objj_msgSend(self, "addSubview:", _imageAndTextView); + } + var font = objj_msgSend(_menuItem, "font"); + if (!font) + font = _font; + objj_msgSend(_imageAndTextView, "setFont:", font); + objj_msgSend(_imageAndTextView, "setVerticalAlignment:", CPCenterVerticalTextAlignment); + objj_msgSend(_imageAndTextView, "setImage:", objj_msgSend(_menuItem, "image")); + objj_msgSend(_imageAndTextView, "setText:", objj_msgSend(_menuItem, "title")); + objj_msgSend(_imageAndTextView, "setTextColor:", objj_msgSend(self, "textColor")); + objj_msgSend(_imageAndTextView, "setTextShadowColor:", objj_msgSend(self, "textShadowColor")); + objj_msgSend(_imageAndTextView, "setTextShadowOffset:", CGSizeMake(0, 1)); + objj_msgSend(_imageAndTextView, "setFrameOrigin:", CGPointMake(x, VERTICAL_MARGIN)); + objj_msgSend(_imageAndTextView, "sizeToFit"); + var frame = objj_msgSend(_imageAndTextView, "frame"); + frame.size.height += 2 * VERTICAL_MARGIN; + x += CGRectGetWidth(frame); + if (objj_msgSend(_menuItem, "hasSubmenu")) + { + x += 3.0; + if (!_submenuView) + { + _submenuView = objj_msgSend(objj_msgSend(_CPMenuItemArrowView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, 10.0, 10.0)); + objj_msgSend(self, "addSubview:", _submenuView); + } + objj_msgSend(_submenuView, "setHidden:", NO); + objj_msgSend(_submenuView, "setColor:", _belongsToMenuBar ? objj_msgSend(self, "textColor") : nil); + objj_msgSend(_submenuView, "setFrameOrigin:", CGPointMake(x, (CGRectGetHeight(frame) - 10.0) / 2.0)); + x += 10.0; + } + else + objj_msgSend(_submenuView, "setHidden:", YES); + _minSize = CGSizeMake(x + (_belongsToMenuBar ? 0.0 : RIGHT_MARGIN) + 3.0, CGRectGetHeight(frame)); + objj_msgSend(self, "setFrameSize:", _minSize); +} +}), new objj_method(sel_getUid("overlapOffsetWidth"), function $_CPMenuItemView__overlapOffsetWidth(self, _cmd) +{ with(self) +{ + return LEFT_MARGIN + (objj_msgSend(objj_msgSend(_menuItem, "menu"), "showsStateColumn") ? STATE_COLUMN_WIDTH : 0.0); +} +}), new objj_method(sel_getUid("setShowsStateColumn:"), function $_CPMenuItemView__setShowsStateColumn_(self, _cmd, shouldShowStateColumn) +{ with(self) +{ + _showsStateColumn = shouldShowStateColumn; +} +}), new objj_method(sel_getUid("setBelongsToMenuBar:"), function $_CPMenuItemView__setBelongsToMenuBar_(self, _cmd, shouldBelongToMenuBar) +{ with(self) +{ + _belongsToMenuBar = shouldBelongToMenuBar; +} +}), new objj_method(sel_getUid("highlight:"), function $_CPMenuItemView__highlight_(self, _cmd, shouldHighlight) +{ with(self) +{ + if (_belongsToMenuBar) + objj_msgSend(_imageAndTextView, "setImage:", shouldHighlight ? objj_msgSend(_menuItem, "alternateImage") : objj_msgSend(_menuItem, "image")); + else if (objj_msgSend(_menuItem, "isEnabled")) + { + if (shouldHighlight) + { + objj_msgSend(self, "setBackgroundColor:", _CPMenuItemSelectionColor); + objj_msgSend(_imageAndTextView, "setTextColor:", objj_msgSend(CPColor, "whiteColor")); + objj_msgSend(_imageAndTextView, "setTextShadowColor:", _CPMenuItemTextShadowColor); + } + else + { + objj_msgSend(self, "setBackgroundColor:", nil); + objj_msgSend(_imageAndTextView, "setTextColor:", objj_msgSend(self, "textColor")); + objj_msgSend(_imageAndTextView, "setTextShadowColor:", objj_msgSend(self, "textShadowColor")); + } + var state = objj_msgSend(_menuItem, "state"); + switch (state) + { + case CPOffState: + case CPOnState: + case CPMixedState: objj_msgSend(_stateView, "setImage:", shouldHighlight ? _CPMenuItemDefaultStateHighlightedImages[state] : _CPMenuItemDefaultStateImages[state]); + break; + default: objj_msgSend(_stateView, "setImage:", nil); + } + } +} +}), new objj_method(sel_getUid("activate:"), function $_CPMenuItemView__activate_(self, _cmd, shouldActivate) +{ with(self) +{ + objj_msgSend(_imageAndTextView, "setImage:", objj_msgSend(_menuItem, "image")); + if (shouldActivate) + { + objj_msgSend(_imageAndTextView, "setTextColor:", objj_msgSend(self, "activateColor") || objj_msgSend(CPColor, "whiteColor")); + objj_msgSend(_imageAndTextView, "setTextShadowColor:", objj_msgSend(self, "activateShadowColor") || objj_msgSend(CPColor, "blackColor")); + objj_msgSend(_submenuView, "setColor:", objj_msgSend(self, "activateColor") || objj_msgSend(CPColor, "whiteColor")); + } + else + { + objj_msgSend(_imageAndTextView, "setTextColor:", objj_msgSend(self, "textColor")); + objj_msgSend(_imageAndTextView, "setTextShadowColor:", objj_msgSend(self, "textShadowColor")); + objj_msgSend(_submenuView, "setColor:", objj_msgSend(self, "textColor")); + } +} +}), new objj_method(sel_getUid("eventOnSubmenu:"), function $_CPMenuItemView__eventOnSubmenu_(self, _cmd, anEvent) +{ with(self) +{ + if (!objj_msgSend(_menuItem, "hasSubmenu")) + return NO; + return CGRectContainsPoint(objj_msgSend(_submenuView, "frame"), objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil)); +} +}), new objj_method(sel_getUid("isHidden"), function $_CPMenuItemView__isHidden(self, _cmd) +{ with(self) +{ + return objj_msgSend(_menuItem, "isHidden"); +} +}), new objj_method(sel_getUid("menuItem"), function $_CPMenuItemView__menuItem(self, _cmd) +{ with(self) +{ + return _menuItem; +} +}), new objj_method(sel_getUid("setFont:"), function $_CPMenuItemView__setFont_(self, _cmd, aFont) +{ with(self) +{ + if (_font == aFont) + return; + _font = aFont; + objj_msgSend(self, "setDirty"); +} +}), new objj_method(sel_getUid("setTextColor:"), function $_CPMenuItemView__setTextColor_(self, _cmd, aColor) +{ with(self) +{ + if (_textColor == aColor) + return; + _textColor = aColor; + objj_msgSend(_imageAndTextView, "setTextColor:", objj_msgSend(self, "textColor")); + objj_msgSend(_submenuView, "setColor:", objj_msgSend(self, "textColor")); +} +}), new objj_method(sel_getUid("textColor"), function $_CPMenuItemView__textColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(_menuItem, "isEnabled") ? (_textColor ? _textColor : objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 70.0 / 255.0, 69.0 / 255.0, 69.0 / 255.0, 1.0)) : objj_msgSend(CPColor, "darkGrayColor"); +} +}), new objj_method(sel_getUid("setTextShadowColor:"), function $_CPMenuItemView__setTextShadowColor_(self, _cmd, aColor) +{ with(self) +{ + if (_textShadowColor == aColor) + return; + _textShadowColor = aColor; + objj_msgSend(_imageAndTextView, "setTextShadowColor:", objj_msgSend(self, "textShadowColor")); +} +}), new objj_method(sel_getUid("textShadowColor"), function $_CPMenuItemView__textShadowColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(_menuItem, "isEnabled") ? (_textShadowColor ? _textShadowColor : objj_msgSend(CPColor, "colorWithWhite:alpha:", 1.0, 0.8)) : objj_msgSend(CPColor, "colorWithWhite:alpha:", 0.8, 0.8); +} +}), new objj_method(sel_getUid("setActivateColor:"), function $_CPMenuItemView__setActivateColor_(self, _cmd, aColor) +{ with(self) +{ + _activateColor = aColor; +} +}), new objj_method(sel_getUid("activateColor"), function $_CPMenuItemView__activateColor(self, _cmd) +{ with(self) +{ + return _activateColor; +} +}), new objj_method(sel_getUid("setActivateShadowColor:"), function $_CPMenuItemView__setActivateShadowColor_(self, _cmd, aColor) +{ with(self) +{ + _activateShadowColor = aColor; +} +}), new objj_method(sel_getUid("activateShadowColor"), function $_CPMenuItemView__activateShadowColor(self, _cmd) +{ with(self) +{ + return _activateShadowColor; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPMenuItemView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPMenuItemView, "class")) + return; + _CPMenuItemSelectionColor = objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 95.0 / 255.0, 131.0 / 255.0, 185.0 / 255.0, 1.0); + _CPMenuItemTextShadowColor = objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", 26.0 / 255.0, 73.0 / 255.0, 109.0 / 255.0, 1.0) + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPMenuItemDefaultStateImages[CPOffState] = nil; + _CPMenuItemDefaultStateHighlightedImages[CPOffState] = nil; + _CPMenuItemDefaultStateImages[CPOnState] = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPMenuItem/CPMenuItemOnState.png"), CGSizeMake(14.0, 14.0)); + _CPMenuItemDefaultStateHighlightedImages[CPOnState] = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPMenuItem/CPMenuItemOnStateHighlighted.png"), CGSizeMake(14.0, 14.0)); + _CPMenuItemDefaultStateImages[CPMixedState] = nil; + _CPMenuItemDefaultStateHighlightedImages[CPMixedState] = nil; +} +}), new objj_method(sel_getUid("leftMargin"), function $_CPMenuItemView__leftMargin(self, _cmd) +{ with(self) +{ + return LEFT_MARGIN + STATE_COLUMN_WIDTH; +} +})]); +} +{var the_class = objj_allocateClassPair(CPView, "_CPMenuItemArrowView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_color")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("setColor:"), function $_CPMenuItemArrowView__setColor_(self, _cmd, aColor) +{ with(self) +{ + if (_color == aColor) + return; + _color = aColor; + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("drawRect:"), function $_CPMenuItemArrowView__drawRect_(self, _cmd, aRect) +{ with(self) +{ + var context = objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"); + CGContextBeginPath(context); + CGContextMoveToPoint(context, 1.0, 4.0); + CGContextAddLineToPoint(context, 9.0, 4.0); + CGContextAddLineToPoint(context, 5.0, 8.0); + CGContextAddLineToPoint(context, 1.0, 4.0); + CGContextClosePath(context); + CGContextSetFillColor(context, _color); + CGContextFillPath(context); +} +})]); +} + +p;13;CPOpenPanel.jI;16;AppKit/CPPanel.jc;2558; + + +var SharedOpenPanel = nil; + +{var the_class = objj_allocateClassPair(CPPanel, "CPOpenPanel"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_files"), new objj_ivar("_canChooseFiles"), new objj_ivar("_canChooseDirectories"), new objj_ivar("_allowsMultipleSelection")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("canChooseFiles"), function $CPOpenPanel__canChooseFiles(self, _cmd) +{ with(self) +{ +return _canChooseFiles; +} +}), +new objj_method(sel_getUid("setCanChooseFiles:"), function $CPOpenPanel__setCanChooseFiles_(self, _cmd, newValue) +{ with(self) +{ +_canChooseFiles = newValue; +} +}), +new objj_method(sel_getUid("canChooseDirectories"), function $CPOpenPanel__canChooseDirectories(self, _cmd) +{ with(self) +{ +return _canChooseDirectories; +} +}), +new objj_method(sel_getUid("setCanChooseDirectories:"), function $CPOpenPanel__setCanChooseDirectories_(self, _cmd, newValue) +{ with(self) +{ +_canChooseDirectories = newValue; +} +}), +new objj_method(sel_getUid("allowsMultipleSelection"), function $CPOpenPanel__allowsMultipleSelection(self, _cmd) +{ with(self) +{ +return _allowsMultipleSelection; +} +}), +new objj_method(sel_getUid("setAllowsMultipleSelection:"), function $CPOpenPanel__setAllowsMultipleSelection_(self, _cmd, newValue) +{ with(self) +{ +_allowsMultipleSelection = newValue; +} +}), new objj_method(sel_getUid("init"), function $CPOpenPanel__init(self, _cmd) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPPanel") }, "init")) + { + _files = []; + _canChooseFiles = YES; + } + + return self; +} +}), new objj_method(sel_getUid("filenames"), function $CPOpenPanel__filenames(self, _cmd) +{ with(self) +{ + return _files; +} +}), new objj_method(sel_getUid("runModalForDirectory:file:types:"), function $CPOpenPanel__runModalForDirectory_file_types_(self, _cmd, absoluteDirectoryPath, filename, fileTypes) +{ with(self) +{ +} +}), new objj_method(sel_getUid("runModalForTypes:"), function $CPOpenPanel__runModalForTypes_(self, _cmd, fileTypes) +{ with(self) +{alert("HERE"); + objj_msgSend(self, "runModalForDirectory:file:types:", "/", nil, fileTypes); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("openPanel"), function $CPOpenPanel__openPanel(self, _cmd) +{ with(self) +{ + if (!SharedOpenPanel) + SharedOpenPanel = objj_msgSend(objj_msgSend(CPOpenPanel, "alloc"), "init"); + + return SharedOpenPanel; +} +})]); +} + +p;15;CPOutlineView.ji;13;CPTableView.jc;3363; +{var the_class = objj_allocateClassPair(CPTableView, "CPOutlineView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_outlineDataSource"), new objj_ivar("_itemsByRow")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPOutlineView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTableView") }, "initWithFrame:", aFrame); + if (self) + { + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTableView") }, "setDataSource:", self); + _itemsByRow = objj_msgSend(objj_msgSend(CPArray, "alloc"), "init"); + } + return self; +} +}), new objj_method(sel_getUid("setDataSource:"), function $CPOutlineView__setDataSource_(self, _cmd, aDataSource) +{ with(self) +{ + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("outlineView:child:ofItem"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source must implement 'outlineView:child:ofItem'"); + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("outlineView:isItemExpandable"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source must implement 'outlineView:isItemExpandable'"); + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("outlineView:numberOfChildrenOfItem"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source must implement 'outlineView:numberOfChildrenOfItem'"); + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("outlineView:objectValueForTableColumn:byItem"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source must implement 'outlineView:objectValueForTableColumn:byItem'"); + _outlineDataSource = aDataSource; + objj_msgSend(self, "reloadData"); +} +}), new objj_method(sel_getUid("reloadData"), function $CPOutlineView__reloadData(self, _cmd) +{ with(self) +{ + _numberOfVisibleItems = objj_msgSend(_outlineDataSource, "outlineView:numberOfChildrenOfItem:", self, nil); + _numberOfRows = _numberOfVisibleItems; + var i = 0; + for (; i < _numberOfVisibleItems; ++i) + _itemsByRow[i] = objj_msgSend(_outlineDataSource, "outlineView:child:ofItem:", self, i, nil); + objj_msgSend(self, "loadTableCellsInRect:", objj_msgSend(self, "bounds")); +} +})]); +} +{ +var the_class = objj_getClass("CPOutlineView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPOutlineView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("numberOfRowsInTableView:"), function $CPOutlineView__numberOfRowsInTableView_(self, _cmd, aTableView) +{ with(self) +{ + return _numberOfVisibleItems; +} +}), new objj_method(sel_getUid("tableView:objectValueForTableColumn:row:"), function $CPOutlineView__tableView_objectValueForTableColumn_row_(self, _cmd, aTableView, aTableColumn, aRowIndex) +{ with(self) +{ + return objj_msgSend(_outlineDataSource, "outlineView:objectValueForTableColumn:byItem:", self, aTableColumn, _itemsByRow[aRowIndex]); +} +})]); +} + +p;9;CPPanel.ji;10;CPWindow.jc;1654; +CPOKButton = 1; +CPCancelButton = 0; +{var the_class = objj_allocateClassPair(CPWindow, "CPPanel"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_becomesKeyOnlyIfNeeded"), new objj_ivar("_worksWhenModal")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("isFloatingPanel"), function $CPPanel__isFloatingPanel(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "level") == CPFloatingWindowLevel; +} +}), new objj_method(sel_getUid("setFloatingPanel:"), function $CPPanel__setFloatingPanel_(self, _cmd, isFloatingPanel) +{ with(self) +{ + objj_msgSend(self, "setLevel:", isFloatingPanel ? CPFloatingWindowLevel : CPNormalWindowLevel); +} +}), new objj_method(sel_getUid("becomesKeyOnlyIfNeeded"), function $CPPanel__becomesKeyOnlyIfNeeded(self, _cmd) +{ with(self) +{ + return _becomesKeyOnlyIfNeeded; +} +}), new objj_method(sel_getUid("setBecomesKeyOnlyIfNeeded:"), function $CPPanel__setBecomesKeyOnlyIfNeeded_(self, _cmd, shouldBecomeKeyOnlyIfNeeded) +{ with(self) +{ + _becomesKeyOnlyIfNeeded = shouldBecomeKeyOnlyIfNeeded +} +}), new objj_method(sel_getUid("worksWhenModal"), function $CPPanel__worksWhenModal(self, _cmd) +{ with(self) +{ + return _worksWhenModal; +} +}), new objj_method(sel_getUid("setWorksWhenModal:"), function $CPPanel__setWorksWhenModal_(self, _cmd, shouldWorkWhenModal) +{ with(self) +{ + _worksWhenModal = shouldWorkWhenModal; +} +}), new objj_method(sel_getUid("canBecomeMainWindow"), function $CPPanel__canBecomeMainWindow(self, _cmd) +{ with(self) +{ + return NO; +} +})]); +} + +p;14;CPPasteboard.jI;21;Foundation/CPObject.jI;20;Foundation/CPArray.jI;25;Foundation/CPDictionary.jI;40;Foundation/CPPropertyListSerialization.jc;6120; +CPGeneralPboard = "CPGeneralPboard"; +CPFontPboard = "CPFontPboard"; +CPRulerPboard = "CPRulerPboard"; +CPFindPboard = "CPFindPboard"; +CPDragPboard = "CPDragPboard"; +CPColorPboardType = "CPColorPboardType"; +CPFilenamesPboardType = "CPFilenamesPboardType"; +CPFontPboardType = "CPFontPboardType"; +CPHTMLPboardType = "CPHTMLPboardType"; +CPStringPboardType = "CPStringPboardType"; +CPURLPboardType = "CPURLPboardType"; +CPImagesPboardType = "CPImagesPboardType"; +CPVideosPboardType = "CPVideosPboardType"; +CPImagePboardType = "CPImagePboardType"; +var CPPasteboards = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPPasteboard"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_types"), new objj_ivar("_owners"), new objj_ivar("_provided"), new objj_ivar("_changeCount"), new objj_ivar("_stateUID")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("_initWithName:"), function $CPPasteboard___initWithName_(self, _cmd, aName) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _name = aName; + _types = []; + _owners = objj_msgSend(CPDictionary, "dictionary"); + _provided = objj_msgSend(CPDictionary, "dictionary"); + _changeCount = 0; + } + return self; +} +}), new objj_method(sel_getUid("addTypes:owner:"), function $CPPasteboard__addTypes_owner_(self, _cmd, types, anOwner) +{ with(self) +{ + var i = 0, + count = types.length; + for (; i < count; ++i) + { + var type = types[i]; + if(!objj_msgSend(_owners, "objectForKey:", type)) + { + objj_msgSend(_types, "addObject:", type); + objj_msgSend(_provided, "removeObjectForKey:", type); + } + objj_msgSend(_owners, "setObject:forKey:", anOwner, type); + } + return ++_changeCount; +} +}), new objj_method(sel_getUid("declareTypes:owner:"), function $CPPasteboard__declareTypes_owner_(self, _cmd, types, anOwner) +{ with(self) +{ + objj_msgSend(_types, "setArray:", types); + _owners = objj_msgSend(CPDictionary, "dictionary"); + _provided = objj_msgSend(CPDictionary, "dictionary"); + var count = _types.length; + while (count--) + objj_msgSend(_owners, "setObject:forKey:", anOwner, _types[count]); + return ++_changeCount; +} +}), new objj_method(sel_getUid("setData:forType:"), function $CPPasteboard__setData_forType_(self, _cmd, aData, aType) +{ with(self) +{ + objj_msgSend(_provided, "setObject:forKey:", aData, aType); + return YES; +} +}), new objj_method(sel_getUid("setPropertyList:forType:"), function $CPPasteboard__setPropertyList_forType_(self, _cmd, aPropertyList, aType) +{ with(self) +{ + return objj_msgSend(self, "setData:forType:", objj_msgSend(CPPropertyListSerialization, "dataFromPropertyList:format:errorDescription:", aPropertyList, CPPropertyListXMLFormat_v1_0, nil), aType); +} +}), new objj_method(sel_getUid("setString:forType:"), function $CPPasteboard__setString_forType_(self, _cmd, aString, aType) +{ with(self) +{ + return objj_msgSend(self, "setPropertyList:forType:", aString, aType); +} +}), new objj_method(sel_getUid("availableTypeFromArray:"), function $CPPasteboard__availableTypeFromArray_(self, _cmd, anArray) +{ with(self) +{ + return objj_msgSend(_types, "firstObjectCommonWithArray:", anArray); +} +}), new objj_method(sel_getUid("types"), function $CPPasteboard__types(self, _cmd) +{ with(self) +{ + return _types; +} +}), new objj_method(sel_getUid("changeCount"), function $CPPasteboard__changeCount(self, _cmd) +{ with(self) +{ + return _changeCount; +} +}), new objj_method(sel_getUid("dataForType:"), function $CPPasteboard__dataForType_(self, _cmd, aType) +{ with(self) +{ + var data = objj_msgSend(_provided, "objectForKey:", aType); + if (data) + return data; + var owner = objj_msgSend(_owners, "objectForKey:", aType); + if (owner) + { + objj_msgSend(owner, "pasteboard:provideDataForType:", self, aType); + ++_changeCount; + return objj_msgSend(_provided, "objectForKey:", aType); + } + return nil; +} +}), new objj_method(sel_getUid("propertyListForType:"), function $CPPasteboard__propertyListForType_(self, _cmd, aType) +{ with(self) +{ + var data = objj_msgSend(self, "dataForType:", aType); + if (data) + return objj_msgSend(CPPropertyListSerialization, "propertyListFromData:format:errorDescription:", data, CPPropertyListXMLFormat_v1_0, nil); + return nil; +} +}), new objj_method(sel_getUid("stringForType:"), function $CPPasteboard__stringForType_(self, _cmd, aType) +{ with(self) +{ + return objj_msgSend(self, "propertyListForType:", aType); +} +}), new objj_method(sel_getUid("_generateStateUID"), function $CPPasteboard___generateStateUID(self, _cmd) +{ with(self) +{ + var bits = 32; + _stateUID = ""; + while (bits--) + _stateUID += FLOOR(RAND() * 16.0).toString(16).toUpperCase(); + return _stateUID; +} +}), new objj_method(sel_getUid("_stateUID"), function $CPPasteboard___stateUID(self, _cmd) +{ with(self) +{ + return _stateUID; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPPasteboard__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPPasteboard, "class")) + return; + objj_msgSend(self, "setVersion:", 1.0); + CPPasteboards = objj_msgSend(CPDictionary, "dictionary"); +} +}), new objj_method(sel_getUid("generalPasteboard"), function $CPPasteboard__generalPasteboard(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPPasteboard, "pasteboardWithName:", CPGeneralPboard); +} +}), new objj_method(sel_getUid("pasteboardWithName:"), function $CPPasteboard__pasteboardWithName_(self, _cmd, aName) +{ with(self) +{ + var pasteboard = objj_msgSend(CPPasteboards, "objectForKey:", aName); + if (pasteboard) + return pasteboard; + pasteboard = objj_msgSend(objj_msgSend(CPPasteboard, "alloc"), "_initWithName:", aName); + objj_msgSend(CPPasteboards, "setObject:forKey:", pasteboard, aName); + return pasteboard; +} +})]); +} + +p;15;CPPopUpButton.ji;10;CPButton.ji;12;CPGeometry.ji;8;CPMenu.ji;12;CPMenuItem.jc;18729; +var VISIBLE_MARGIN = 7.0; +CPPopUpButtonStatePullsDown = CPThemeState("pulls-down"); +{var the_class = objj_allocateClassPair(CPButton, "CPPopUpButton"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_selectedIndex"), new objj_ivar("_preferredEdge"), new objj_ivar("_menu")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:pullsDown:"), function $CPPopUpButton__initWithFrame_pullsDown_(self, _cmd, aFrame, shouldPullDown) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "initWithFrame:", aFrame); + if (self) + { + _selectedIndex = CPNotFound; + _preferredEdge = CPMaxYEdge; + objj_msgSend(self, "setValue:forThemeAttribute:", CPImageLeft, "image-position"); + objj_msgSend(self, "setValue:forThemeAttribute:", CPLeftTextAlignment, "alignment"); + objj_msgSend(self, "setValue:forThemeAttribute:", CPLineBreakByTruncatingTail, "line-break-mode"); + objj_msgSend(self, "setMenu:", objj_msgSend(objj_msgSend(CPMenu, "alloc"), "initWithTitle:", "")); + objj_msgSend(self, "setPullsDown:", shouldPullDown); + } + return self; +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPPopUpButton__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + return objj_msgSend(self, "initWithFrame:pullsDown:", aFrame, NO); +} +}), new objj_method(sel_getUid("setPullsDown:"), function $CPPopUpButton__setPullsDown_(self, _cmd, shouldPullDown) +{ with(self) +{ + if (shouldPullDown) + var changed = objj_msgSend(self, "setThemeState:", CPPopUpButtonStatePullsDown); + else + var changed = objj_msgSend(self, "unsetThemeState:", CPPopUpButtonStatePullsDown); + if (!changed) + return; + var items = objj_msgSend(_menu, "itemArray"); + if (objj_msgSend(items, "count") <= 0) + return; + objj_msgSend(items[0], "setHidden:", objj_msgSend(self, "pullsDown")); + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); +} +}), new objj_method(sel_getUid("pullsDown"), function $CPPopUpButton__pullsDown(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "hasThemeState:", CPPopUpButtonStatePullsDown); +} +}), new objj_method(sel_getUid("addItem:"), function $CPPopUpButton__addItem_(self, _cmd, anItem) +{ with(self) +{ + objj_msgSend(_menu, "addItem:", anItem); +} +}), new objj_method(sel_getUid("addItemWithTitle:"), function $CPPopUpButton__addItemWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + objj_msgSend(_menu, "addItemWithTitle:action:keyEquivalent:", aTitle, NULL, nil); +} +}), new objj_method(sel_getUid("addItemsWithTitles:"), function $CPPopUpButton__addItemsWithTitles_(self, _cmd, titles) +{ with(self) +{ + var index = 0, + count = objj_msgSend(titles, "count"); + for (; index < count; ++index) + objj_msgSend(self, "addItemWithTitle:", titles[index]); +} +}), new objj_method(sel_getUid("insertItemWithTitle:atIndex:"), function $CPPopUpButton__insertItemWithTitle_atIndex_(self, _cmd, aTitle, anIndex) +{ with(self) +{ + var items = objj_msgSend(self, "itemArray"), + count = objj_msgSend(items, "count"); + while (count--) + if (objj_msgSend(items[count], "title") == aTitle) + objj_msgSend(self, "removeItemAtIndex:", count); + objj_msgSend(_menu, "insertItemWithTitle:action:keyEquivalent:atIndex:", aTitle, NULL, nil, anIndex); +} +}), new objj_method(sel_getUid("removeAllItems"), function $CPPopUpButton__removeAllItems(self, _cmd) +{ with(self) +{ + var count = objj_msgSend(_menu, "numberOfItems"); + while (count--) + objj_msgSend(_menu, "removeItemAtIndex:", 0); +} +}), new objj_method(sel_getUid("removeItemWithTitle:"), function $CPPopUpButton__removeItemWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + objj_msgSend(self, "removeItemAtIndex:", objj_msgSend(self, "indexOfItemWithTitle:", aTitle)); + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); +} +}), new objj_method(sel_getUid("removeItemAtIndex:"), function $CPPopUpButton__removeItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + objj_msgSend(_menu, "removeItemAtIndex:", anIndex); + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); +} +}), new objj_method(sel_getUid("selectedItem"), function $CPPopUpButton__selectedItem(self, _cmd) +{ with(self) +{ + if (_selectedIndex < 0) + return nil; + return objj_msgSend(_menu, "itemAtIndex:", _selectedIndex); +} +}), new objj_method(sel_getUid("titleOfSelectedItem"), function $CPPopUpButton__titleOfSelectedItem(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "selectedItem"), "title"); +} +}), new objj_method(sel_getUid("indexOfSelectedItem"), function $CPPopUpButton__indexOfSelectedItem(self, _cmd) +{ with(self) +{ + return _selectedIndex; +} +}), new objj_method(sel_getUid("objectValue"), function $CPPopUpButton__objectValue(self, _cmd) +{ with(self) +{ + return _selectedIndex; +} +}), new objj_method(sel_getUid("selectItem:"), function $CPPopUpButton__selectItem_(self, _cmd, aMenuItem) +{ with(self) +{ + objj_msgSend(self, "selectItemAtIndex:", objj_msgSend(self, "indexOfItem:", aMenuItem)); +} +}), new objj_method(sel_getUid("selectItemAtIndex:"), function $CPPopUpButton__selectItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + if (_selectedIndex == anIndex) + return; + if (_selectedIndex >= 0 && !objj_msgSend(self, "pullsDown")) + objj_msgSend(objj_msgSend(self, "selectedItem"), "setState:", CPOffState); + _selectedIndex = anIndex; + if (_selectedIndex >= 0 && !objj_msgSend(self, "pullsDown")) + objj_msgSend(objj_msgSend(self, "selectedItem"), "setState:", CPOnState); + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); +} +}), new objj_method(sel_getUid("selectItemWithTag:"), function $CPPopUpButton__selectItemWithTag_(self, _cmd, aTag) +{ with(self) +{ + objj_msgSend(self, "selectItemAtIndex:", objj_msgSend(self, "indexOfItemWithTag:", aTag)); +} +}), new objj_method(sel_getUid("selectItemWithTitle:"), function $CPPopUpButton__selectItemWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + objj_msgSend(self, "selectItemAtIndex:", objj_msgSend(self, "indexOfItemWithTitle:", aTitle)); +} +}), new objj_method(sel_getUid("setObjectValue:"), function $CPPopUpButton__setObjectValue_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSend(self, "selectItemAtIndex:", objj_msgSend(aValue, "intValue")); +} +}), new objj_method(sel_getUid("menu"), function $CPPopUpButton__menu(self, _cmd) +{ with(self) +{ + return _menu; +} +}), new objj_method(sel_getUid("setMenu:"), function $CPPopUpButton__setMenu_(self, _cmd, aMenu) +{ with(self) +{ + if (_menu === aMenu) + return; + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_menu) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPMenuDidAddItemNotification, _menu); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPMenuDidChangeItemNotification, _menu); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPMenuDidRemoveItemNotification, _menu); + } + _menu = aMenu; + if (_menu) + { + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("menuDidAddItem:"), CPMenuDidAddItemNotification, _menu); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("menuDidChangeItem:"), CPMenuDidChangeItemNotification, _menu); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("menuDidRemoveItem:"), CPMenuDidRemoveItemNotification, _menu); + } + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); +} +}), new objj_method(sel_getUid("numberOfItems"), function $CPPopUpButton__numberOfItems(self, _cmd) +{ with(self) +{ + return objj_msgSend(_menu, "numberOfItems"); +} +}), new objj_method(sel_getUid("itemArray"), function $CPPopUpButton__itemArray(self, _cmd) +{ with(self) +{ + return objj_msgSend(_menu, "itemArray"); +} +}), new objj_method(sel_getUid("itemAtIndex:"), function $CPPopUpButton__itemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(_menu, "itemAtIndex:", anIndex); +} +}), new objj_method(sel_getUid("itemTitleAtIndex:"), function $CPPopUpButton__itemTitleAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(objj_msgSend(_menu, "itemAtIndex:", anIndex), "title"); +} +}), new objj_method(sel_getUid("itemTitles"), function $CPPopUpButton__itemTitles(self, _cmd) +{ with(self) +{ + var titles = [], + items = objj_msgSend(self, "itemArray"), + index = 0, + count = objj_msgSend(items, "count"); + for (; index < count; ++index) + items.push(objj_msgSend(items[index], "title")); +} +}), new objj_method(sel_getUid("itemWithTitle:"), function $CPPopUpButton__itemWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + return objj_msgSend(_menu, "itemAtIndex:", objj_msgSend(_menu, "indexOfItemWithTitle:", aTitle)); +} +}), new objj_method(sel_getUid("lastItem"), function $CPPopUpButton__lastItem(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(_menu, "itemArray"), "lastObject"); +} +}), new objj_method(sel_getUid("indexOfItem:"), function $CPPopUpButton__indexOfItem_(self, _cmd, aMenuItem) +{ with(self) +{ + return objj_msgSend(_menu, "indexOfItem:", aMenuItem); +} +}), new objj_method(sel_getUid("indexOfItemWithTag:"), function $CPPopUpButton__indexOfItemWithTag_(self, _cmd, aTag) +{ with(self) +{ + return objj_msgSend(_menu, "indexOfItemWithTag:", aTag); +} +}), new objj_method(sel_getUid("indexOfItemWithTitle:"), function $CPPopUpButton__indexOfItemWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + return objj_msgSend(_menu, "indexOfItemWithTitle:", aTitle); +} +}), new objj_method(sel_getUid("indexOfItemWithRepresentedObject:"), function $CPPopUpButton__indexOfItemWithRepresentedObject_(self, _cmd, anObject) +{ with(self) +{ + return objj_msgSend(_menu, "indexOfItemWithRepresentedObject:", anObject); +} +}), new objj_method(sel_getUid("indexOfItemWithTarget:action:"), function $CPPopUpButton__indexOfItemWithTarget_action_(self, _cmd, aTarget, anAction) +{ with(self) +{ + return objj_msgSend(_menu, "indexOfItemWithTarget:action:", aTarget, anAction); +} +}), new objj_method(sel_getUid("preferredEdge"), function $CPPopUpButton__preferredEdge(self, _cmd) +{ with(self) +{ + return _preferredEdge; +} +}), new objj_method(sel_getUid("setPreferredEdge:"), function $CPPopUpButton__setPreferredEdge_(self, _cmd, aRectEdge) +{ with(self) +{ + _preferredEdge = aRectEdge; +} +}), new objj_method(sel_getUid("setTitle:"), function $CPPopUpButton__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + if (objj_msgSend(self, "title") === aTitle) + return; + if (objj_msgSend(self, "pullsDown")) + { + var items = objj_msgSend(_menu, "itemArray"); + if (objj_msgSend(items, "count") <= 0) + objj_msgSend(self, "addItemWithTitle:", aTitle); + else + { + objj_msgSend(items[0], "setTitle:", aTitle); + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); + } + } + else + { + var index = objj_msgSend(self, "indexOfItemWithTitle:", aTitle); + if (index < 0) + { + objj_msgSend(self, "addItemWithTitle:", aTitle); + index = objj_msgSend(self, "numberOfItems") - 1; + } + objj_msgSend(self, "selectItemAtIndex:", index); + } +} +}), new objj_method(sel_getUid("setImage:"), function $CPPopUpButton__setImage_(self, _cmd, anImage) +{ with(self) +{ +} +}), new objj_method(sel_getUid("synchronizeTitleAndSelectedItem"), function $CPPopUpButton__synchronizeTitleAndSelectedItem(self, _cmd) +{ with(self) +{ + var item = nil; + if (objj_msgSend(self, "pullsDown")) + { + var items = objj_msgSend(_menu, "itemArray"); + if (objj_msgSend(items, "count") > 0) + item = items[0]; + } + else + item = objj_msgSend(self, "selectedItem"); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "setImage:", objj_msgSend(item, "image")); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "setTitle:", objj_msgSend(item, "title")); +} +}), new objj_method(sel_getUid("menuDidAddItem:"), function $CPPopUpButton__menuDidAddItem_(self, _cmd, aNotification) +{ with(self) +{ + var index = objj_msgSend(objj_msgSend(aNotification, "userInfo"), "objectForKey:", "CPMenuItemIndex"); + if (_selectedIndex < 0) + objj_msgSend(self, "selectItemAtIndex:", 0); + else if (index == _selectedIndex) + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); + else if (index < _selectedIndex) + ++_selectedIndex; + if (index == 0 && objj_msgSend(self, "pullsDown")) + { + var items = objj_msgSend(_menu, "itemArray"); + objj_msgSend(items[0], "setHidden:", YES); + if (items.length > 0) + objj_msgSend(items[1], "setHidden:", NO); + } + var item = objj_msgSend(_menu, "itemArray")[index], + action = objj_msgSend(item, "action"); + if (!action || (action === sel_getUid("_popUpItemAction:"))) + { + objj_msgSend(item, "setTarget:", self); + objj_msgSend(item, "setAction:", sel_getUid("_popUpItemAction:")); + } +} +}), new objj_method(sel_getUid("menuDidChangeItem:"), function $CPPopUpButton__menuDidChangeItem_(self, _cmd, aNotification) +{ with(self) +{ + var index = objj_msgSend(objj_msgSend(aNotification, "userInfo"), "objectForKey:", "CPMenuItemIndex"); + if (objj_msgSend(self, "pullsDown") && index != 0) + return; + if (!objj_msgSend(self, "pullsDown") && index != _selectedIndex) + return; + objj_msgSend(self, "synchronizeTitleAndSelectedItem"); +} +}), new objj_method(sel_getUid("menuDidRemoveItem:"), function $CPPopUpButton__menuDidRemoveItem_(self, _cmd, aNotification) +{ with(self) +{ + var numberOfItems = objj_msgSend(self, "numberOfItems"); + if (numberOfItems <= _selectedIndex) + objj_msgSend(self, "selectItemAtIndex:", numberOfItems - 1); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPPopUpButton__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (!objj_msgSend(self, "isEnabled")) + return; + objj_msgSend(self, "highlight:", YES); + var menu = objj_msgSend(self, "menu"), + theWindow = objj_msgSend(self, "window"), + menuWindow = objj_msgSend(_CPMenuWindow, "menuWindowWithMenu:font:", menu, objj_msgSend(self, "font")); + objj_msgSend(menuWindow, "setDelegate:", self); + objj_msgSend(menuWindow, "setBackgroundStyle:", _CPMenuWindowPopUpBackgroundStyle); + if (objj_msgSend(self, "pullsDown")) + var menuOrigin = objj_msgSend(theWindow, "convertBaseToBridge:", objj_msgSend(self, "convertPoint:toView:", CGPointMake(0.0, CGRectGetMaxY(objj_msgSend(self, "bounds"))), nil)); + else + { + var contentRect = objj_msgSend(self, "convertRect:toView:", objj_msgSend(self, "contentRectForBounds:", objj_msgSend(self, "bounds")), nil), + menuOrigin = objj_msgSend(theWindow, "convertBaseToBridge:", contentRect.origin), + menuItemRect = objj_msgSend(menuWindow, "rectForItemAtIndex:", _selectedIndex); + menuOrigin.x -= CGRectGetMinX(menuItemRect) + objj_msgSend(menuWindow, "overlapOffsetWidth") + objj_msgSend(objj_msgSend(objj_msgSend(menu, "itemAtIndex:", _selectedIndex), "_menuItemView"), "overlapOffsetWidth"); + menuOrigin.y -= CGRectGetMinY(menuItemRect) + (CGRectGetHeight(menuItemRect) - CGRectGetHeight(contentRect)) / 2.0; + } + objj_msgSend(menuWindow, "setFrameOrigin:", menuOrigin); + var menuMaxX = CGRectGetMaxX(objj_msgSend(menuWindow, "frame")), + buttonMaxX = objj_msgSend(theWindow, "convertBaseToBridge:", CGPointMake(CGRectGetMaxX(objj_msgSend(self, "convertRect:toView:", objj_msgSend(self, "bounds"), nil)), 0.0)).x; + if (menuMaxX < buttonMaxX) + objj_msgSend(menuWindow, "setMinWidth:", CGRectGetWidth(objj_msgSend(menuWindow, "frame")) + buttonMaxX - menuMaxX - (objj_msgSend(self, "pullsDown") ? 0.0 : VISIBLE_MARGIN)); + objj_msgSend(menuWindow, "orderFront:", self); + objj_msgSend(menuWindow, "beginTrackingWithEvent:sessionDelegate:didEndSelector:", anEvent, self, sel_getUid("menuWindowDidFinishTracking:highlightedItem:")); +} +}), new objj_method(sel_getUid("menuWindowDidFinishTracking:highlightedItem:"), function $CPPopUpButton__menuWindowDidFinishTracking_highlightedItem_(self, _cmd, aMenuWindow, aMenuItem) +{ with(self) +{ + objj_msgSend(_CPMenuWindow, "poolMenuWindow:", aMenuWindow); + objj_msgSend(self, "highlight:", NO); + var index = objj_msgSend(_menu, "indexOfItem:", aMenuItem); + if (index == CPNotFound) + return; + objj_msgSend(self, "selectItemAtIndex:", index); + objj_msgSend(CPApp, "sendAction:to:from:", objj_msgSend(aMenuItem, "action"), objj_msgSend(aMenuItem, "target"), aMenuItem); +} +}), new objj_method(sel_getUid("_popUpItemAction:"), function $CPPopUpButton___popUpItemAction_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeClass"), function $CPPopUpButton__themeClass(self, _cmd) +{ with(self) +{ + return "popup-button"; +} +})]); +} +var CPPopUpButtonMenuKey = "CPPopUpButtonMenuKey", + CPPopUpButtonSelectedIndexKey = "CPPopUpButtonSelectedIndexKey", + CPPopUpButtonPullsDownKey = "CPPopUpButtonPullsDownKey"; +{ +var the_class = objj_getClass("CPPopUpButton") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPPopUpButton\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPPopUpButton__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "initWithCoder:", aCoder); + if (self) + { + _selectedIndex = -1; + objj_msgSend(self, "setMenu:", objj_msgSend(aCoder, "decodeObjectForKey:", CPPopUpButtonMenuKey)); + objj_msgSend(self, "selectItemAtIndex:", objj_msgSend(aCoder, "decodeObjectForKey:", CPPopUpButtonSelectedIndexKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPPopUpButton__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _menu, CPPopUpButtonMenuKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _selectedIndex, CPPopUpButtonSelectedIndexKey); +} +})]); +} + +p;21;CPProgressIndicator.jI;19;AppKit/CGGeometry.jI;20;AppKit/CPImageView.jI;15;AppKit/CPView.jc;13151; +CPProgressIndicatorBarStyle = 0; +CPProgressIndicatorSpinningStyle = 1; +CPProgressIndicatorHUDBarStyle = 2; +var CPProgressIndicatorSpinningStyleColors = nil, + CPProgressIndicatorClassName = nil, + CPProgressIndicatorStyleIdentifiers = nil, + CPProgressIndicatorStyleSizes = nil; +{var the_class = objj_allocateClassPair(CPView, "CPProgressIndicator"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_minValue"), new objj_ivar("_maxValue"), new objj_ivar("_doubleValue"), new objj_ivar("_controlSize"), new objj_ivar("_isIndeterminate"), new objj_ivar("_style"), new objj_ivar("_isAnimating"), new objj_ivar("_isDisplayedWhenStoppedSet"), new objj_ivar("_isDisplayedWhenStopped"), new objj_ivar("_barView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPProgressIndicator__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _minValue = 0.0; + _maxValue = 100.0; + _doubleValue = 0.0; + _style = CPProgressIndicatorBarStyle; + _isDisplayedWhenStoppedSet = NO; + _controlSize = CPRegularControlSize; + objj_msgSend(self, "updateBackgroundColor"); + objj_msgSend(self, "drawBar"); + } + return self; +} +}), new objj_method(sel_getUid("setUsesThreadedAnimation:"), function $CPProgressIndicator__setUsesThreadedAnimation_(self, _cmd, aFlag) +{ with(self) +{ +} +}), new objj_method(sel_getUid("startAnimation:"), function $CPProgressIndicator__startAnimation_(self, _cmd, aSender) +{ with(self) +{ + _isAnimating = YES; + objj_msgSend(self, "_hideOrDisplay"); +} +}), new objj_method(sel_getUid("stopAnimation:"), function $CPProgressIndicator__stopAnimation_(self, _cmd, aSender) +{ with(self) +{ + _isAnimating = NO; + objj_msgSend(self, "_hideOrDisplay"); +} +}), new objj_method(sel_getUid("usesThreadedAnimation"), function $CPProgressIndicator__usesThreadedAnimation(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("incrementBy:"), function $CPProgressIndicator__incrementBy_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSend(self, "setDoubleValue:", _doubleValue + aValue); +} +}), new objj_method(sel_getUid("setDoubleValue:"), function $CPProgressIndicator__setDoubleValue_(self, _cmd, aValue) +{ with(self) +{ + _doubleValue = MIN(MAX(aValue, _minValue), _maxValue); + objj_msgSend(self, "drawBar"); +} +}), new objj_method(sel_getUid("doubleValue"), function $CPProgressIndicator__doubleValue(self, _cmd) +{ with(self) +{ + return _doubleValue; +} +}), new objj_method(sel_getUid("setMinValue:"), function $CPProgressIndicator__setMinValue_(self, _cmd, aValue) +{ with(self) +{ + _minValue = aValue; +} +}), new objj_method(sel_getUid("minValue"), function $CPProgressIndicator__minValue(self, _cmd) +{ with(self) +{ + return _minValue; +} +}), new objj_method(sel_getUid("setMaxValue:"), function $CPProgressIndicator__setMaxValue_(self, _cmd, aValue) +{ with(self) +{ + _maxValue = aValue; +} +}), new objj_method(sel_getUid("maxValue"), function $CPProgressIndicator__maxValue(self, _cmd) +{ with(self) +{ + return _maxValue; +} +}), new objj_method(sel_getUid("setControlSize:"), function $CPProgressIndicator__setControlSize_(self, _cmd, aControlSize) +{ with(self) +{ + if (_controlSize == aControlSize) + return; + _controlSize = aControlSize; + objj_msgSend(self, "updateBackgroundColor"); +} +}), new objj_method(sel_getUid("controlSize"), function $CPProgressIndicator__controlSize(self, _cmd) +{ with(self) +{ + return _controlSize; +} +}), new objj_method(sel_getUid("setControlTint:"), function $CPProgressIndicator__setControlTint_(self, _cmd, aControlTint) +{ with(self) +{ +} +}), new objj_method(sel_getUid("controlTint"), function $CPProgressIndicator__controlTint(self, _cmd) +{ with(self) +{ + return 0; +} +}), new objj_method(sel_getUid("setBezeled:"), function $CPProgressIndicator__setBezeled_(self, _cmd, isBezeled) +{ with(self) +{ +} +}), new objj_method(sel_getUid("isBezeled"), function $CPProgressIndicator__isBezeled(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("setIndeterminate:"), function $CPProgressIndicator__setIndeterminate_(self, _cmd, isIndeterminate) +{ with(self) +{ + if (_isIndeterminate == isIndeterminate) + return; + _isIndeterminate = isIndeterminate; + objj_msgSend(self, "updateBackgroundColor"); +} +}), new objj_method(sel_getUid("isIndeterminate"), function $CPProgressIndicator__isIndeterminate(self, _cmd) +{ with(self) +{ + return _isIndeterminate; +} +}), new objj_method(sel_getUid("setStyle:"), function $CPProgressIndicator__setStyle_(self, _cmd, aStyle) +{ with(self) +{ + if (_style == aStyle) + return; + _style = aStyle; + objj_msgSend(self, "updateBackgroundColor"); +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPProgressIndicator__sizeToFit(self, _cmd) +{ with(self) +{ + if (_style == CPProgressIndicatorSpinningStyle) + objj_msgSend(self, "setFrameSize:", objj_msgSend(objj_msgSend(CPProgressIndicatorSpinningStyleColors[_controlSize], "patternImage"), "size")); + else + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(objj_msgSend(self, "frame")), CPProgressIndicatorStyleSizes[ + CPProgressIndicatorClassName + "BezelBorder" + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorBarStyle] + + _CPControlIdentifierForControlSize(_controlSize)][0].height)); +} +}), new objj_method(sel_getUid("setDisplayedWhenStopped:"), function $CPProgressIndicator__setDisplayedWhenStopped_(self, _cmd, isDisplayedWhenStopped) +{ with(self) +{ + if (_isDisplayedWhenStoppedSet && _isDisplayedWhenStopped == isDisplayedWhenStopped) + return; + _isDisplayedWhenStoppedSet = YES; + _isDisplayedWhenStopped = isDisplayedWhenStopped; + objj_msgSend(self, "_hideOrDisplay"); +} +}), new objj_method(sel_getUid("isDisplayedWhenStopped"), function $CPProgressIndicator__isDisplayedWhenStopped(self, _cmd) +{ with(self) +{ + if (_isDisplayedWhenStoppedSet) + return _isDisplayedWhenStopped; + if (_style == CPProgressIndicatorBarStyle || _style == CPProgressIndicatorHUDBarStyle) + return YES; + return NO; +} +}), new objj_method(sel_getUid("_hideOrDisplay"), function $CPProgressIndicator___hideOrDisplay(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "setHidden:", !_isAnimating && !objj_msgSend(self, "isDisplayedWhenStopped")); +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPProgressIndicator__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setFrameSize:", aSize); + objj_msgSend(self, "drawBar"); +} +}), new objj_method(sel_getUid("drawBar"), function $CPProgressIndicator__drawBar(self, _cmd) +{ with(self) +{ + if (_style == CPProgressIndicatorSpinningStyle) + return; + if (!_barView) + { + _barView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(2.0, 2.0, 0.0, 9.0)); + objj_msgSend(_barView, "setBackgroundColor:", objj_msgSend(CPColor, "redColor")); + objj_msgSend(self, "addSubview:", _barView); + } + objj_msgSend(_barView, "setBackgroundColor:", _CPControlColorWithPatternImage( + CPProgressIndicatorStyleSizes, + CPProgressIndicatorClassName, + "Bar", + CPProgressIndicatorStyleIdentifiers[_style], + _CPControlIdentifierForControlSize(_controlSize))); + objj_msgSend(_barView, "setFrameSize:", CGSizeMake(CGRectGetWidth(objj_msgSend(self, "bounds")) * (_doubleValue - _minValue) / (_maxValue - _minValue) - 4.0, 9.0)); +} +}), new objj_method(sel_getUid("updateBackgroundColor"), function $CPProgressIndicator__updateBackgroundColor(self, _cmd) +{ with(self) +{ + if (YES) + { + if (_style == CPProgressIndicatorSpinningStyle) + { + objj_msgSend(_barView, "removeFromSuperview"); + _barView = nil; + objj_msgSend(self, "setBackgroundColor:", CPProgressIndicatorSpinningStyleColors[_controlSize]); + } + else + { + objj_msgSend(self, "setBackgroundColor:", _CPControlThreePartImagePattern( + NO, + CPProgressIndicatorStyleSizes, + CPProgressIndicatorClassName, + "BezelBorder", + CPProgressIndicatorStyleIdentifiers[_style], + _CPControlIdentifierForControlSize(_controlSize))); + objj_msgSend(self, "drawBar"); + } + } + else + objj_msgSend(self, "setBackgroundColor:", nil); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPProgressIndicator__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPProgressIndicator, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + CPProgressIndicatorSpinningStyleColors = []; + CPProgressIndicatorSpinningStyleColors[CPMiniControlSize] = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", + objj_msgSend(bundle, "pathForResource:", "CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"), CGSizeMake(64.0, 64.0))); + CPProgressIndicatorSpinningStyleColors[CPSmallControlSize] = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", + objj_msgSend(bundle, "pathForResource:", "CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"), CGSizeMake(64.0, 64.0))); + CPProgressIndicatorSpinningStyleColors[CPRegularControlSize] = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", + objj_msgSend(bundle, "pathForResource:", "CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif"), CGSizeMake(64.0, 64.0))); + CPProgressIndicatorBezelBorderViewPool = []; + var start = CPProgressIndicatorBarStyle, + end = CPProgressIndicatorHUDBarStyle; + for (; start <= end; ++start) + { + CPProgressIndicatorBezelBorderViewPool[start] = []; + CPProgressIndicatorBezelBorderViewPool[start][CPMiniControlSize] = []; + CPProgressIndicatorBezelBorderViewPool[start][CPSmallControlSize] = []; + CPProgressIndicatorBezelBorderViewPool[start][CPRegularControlSize] = []; + } + CPProgressIndicatorClassName = objj_msgSend(self, "className"); + CPProgressIndicatorStyleIdentifiers = []; + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorBarStyle] = "Bar"; + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorSpinningStyle] = "Spinny"; + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorHUDBarStyle] = "HUDBar"; + var regularIdentifier = _CPControlIdentifierForControlSize(CPRegularControlSize), + smallIdentifier = _CPControlIdentifierForControlSize(CPSmallControlSize), + miniIdentifier = _CPControlIdentifierForControlSize(CPMiniControlSize); + CPProgressIndicatorStyleSizes = []; + var prefix = CPProgressIndicatorClassName + "BezelBorder" + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorBarStyle]; + CPProgressIndicatorStyleSizes[prefix + regularIdentifier] = [{ width:3.0, height:15.0 }, { width:1.0, height:15.0 }, { width:3.0, height:15.0 }]; + CPProgressIndicatorStyleSizes[prefix + smallIdentifier] = [{ width:3.0, height:15.0 }, { width:1.0, height:15.0 }, { width:3.0, height:15.0 }]; + CPProgressIndicatorStyleSizes[prefix + miniIdentifier] = [{ width:3.0, height:15.0 }, { width:1.0, height:15.0 }, { width:3.0, height:15.0 }]; + prefix = CPProgressIndicatorClassName + "Bar" + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorBarStyle]; + CPProgressIndicatorStyleSizes[prefix + regularIdentifier] = { width:1.0, height:9.0 }; + CPProgressIndicatorStyleSizes[prefix + smallIdentifier] = { width:1.0, height:9.0 }; + CPProgressIndicatorStyleSizes[prefix + miniIdentifier] = { width:1.0, height:9.0 }; + prefix = CPProgressIndicatorClassName + "BezelBorder" + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorHUDBarStyle]; + CPProgressIndicatorStyleSizes[prefix + regularIdentifier] = [{ width:3.0, height:15.0 }, { width:1.0, height:15.0 }, { width:3.0, height:15.0 }]; + CPProgressIndicatorStyleSizes[prefix + smallIdentifier] = [{ width:3.0, height:15.0 }, { width:1.0, height:15.0 }, { width:3.0, height:15.0 }]; + CPProgressIndicatorStyleSizes[prefix + miniIdentifier] = [{ width:3.0, height:15.0 }, { width:1.0, height:15.0 }, { width:3.0, height:15.0 }]; + prefix = CPProgressIndicatorClassName + "Bar" + CPProgressIndicatorStyleIdentifiers[CPProgressIndicatorHUDBarStyle]; + CPProgressIndicatorStyleSizes[prefix + regularIdentifier] = { width:1.0, height:9.0 }; + CPProgressIndicatorStyleSizes[prefix + smallIdentifier] = { width:1.0, height:9.0 }; + CPProgressIndicatorStyleSizes[prefix + miniIdentifier] = { width:1.0, height:9.0 }; +} +})]); +} + +p;9;CPRadio.jI;21;Foundation/CPObject.jI;18;Foundation/CPSet.ji;10;CPButton.jc;6807; +{var the_class = objj_allocateClassPair(CPButton, "CPRadio"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_radioGroup")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:radioGroup:"), function $CPRadio__initWithFrame_radioGroup_(self, _cmd, aFrame, aRadioGroup) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "initWithFrame:", aFrame); + if (self) + { + objj_msgSend(self, "setRadioGroup:", aRadioGroup || objj_msgSend(CPRadioGroup, "new")); + objj_msgSend(self, "setHighlightsBy:", CPContentsCellMask); + objj_msgSend(self, "setShowsStateBy:", CPContentsCellMask); + objj_msgSend(self, "setImagePosition:", CPImageLeft); + objj_msgSend(self, "setAlignment:", CPLeftTextAlignment); + objj_msgSend(self, "setBordered:", YES); + } + return self; +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPRadio__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + return objj_msgSend(self, "initWithFrame:radioGroup:", aFrame, nil); +} +}), new objj_method(sel_getUid("nextState"), function $CPRadio__nextState(self, _cmd) +{ with(self) +{ + return CPOnState; +} +}), new objj_method(sel_getUid("setRadioGroup:"), function $CPRadio__setRadioGroup_(self, _cmd, aRadioGroup) +{ with(self) +{ + if (_radioGroup === aRadioGroup) + return; + objj_msgSend(_radioGroup, "_removeRadio:", self); + _radioGroup = aRadioGroup; + objj_msgSend(_radioGroup, "_addRadio:", self); +} +}), new objj_method(sel_getUid("radioGroup"), function $CPRadio__radioGroup(self, _cmd) +{ with(self) +{ + return _radioGroup; +} +}), new objj_method(sel_getUid("setObjectValue:"), function $CPRadio__setObjectValue_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "setObjectValue:", aValue); + if (objj_msgSend(self, "state") === CPOnState) + objj_msgSend(_radioGroup, "_setSelectedRadio:", self); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("radioWithTitle:theme:"), function $CPRadio__radioWithTitle_theme_(self, _cmd, aTitle, aTheme) +{ with(self) +{ + return objj_msgSend(self, "buttonWithTitle:theme:", aTitle, aTheme); +} +}), new objj_method(sel_getUid("radioWithTitle:"), function $CPRadio__radioWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + return objj_msgSend(self, "buttonWithTitle:", aTitle); +} +}), new objj_method(sel_getUid("standardButtonWithTitle:"), function $CPRadio__standardButtonWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + var button = objj_msgSend(objj_msgSend(CPRadio, "alloc"), "init"); + objj_msgSend(button, "setTitle:", aTitle); + return button; +} +}), new objj_method(sel_getUid("themeClass"), function $CPRadio__themeClass(self, _cmd) +{ with(self) +{ + return "radio"; +} +})]); +} +var CPRadioRadioGroupKey = "CPRadioRadioGroupKey"; +{ +var the_class = objj_getClass("CPRadio") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPRadio\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPRadio__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "initWithCoder:", aCoder); + if (self) + _radioGroup = objj_msgSend(aCoder, "decodeObjectForKey:", CPRadioRadioGroupKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPRadio__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPButton") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _radioGroup, CPRadioRadioGroupKey); +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPRadioGroup"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_radios"), new objj_ivar("_selectedRadio")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPRadioGroup__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _radios = objj_msgSend(CPSet, "set"); + _selectedRadio = nil; + } + return self; +} +}), new objj_method(sel_getUid("_addRadio:"), function $CPRadioGroup___addRadio_(self, _cmd, aRadio) +{ with(self) +{ + objj_msgSend(_radios, "addObject:", aRadio); + if (objj_msgSend(aRadio, "state") === CPOnState) + objj_msgSend(self, "_setSelectedRadio:", aRadio); +} +}), new objj_method(sel_getUid("_removeRadio:"), function $CPRadioGroup___removeRadio_(self, _cmd, aRadio) +{ with(self) +{ + if (_selectedRadio === aRadio) + _selectedRadio = nil; + objj_msgSend(_radios, "removeObject:", aRadio); +} +}), new objj_method(sel_getUid("_setSelectedRadio:"), function $CPRadioGroup___setSelectedRadio_(self, _cmd, aRadio) +{ with(self) +{ + if (_selectedRadio === aRadio) + return; + objj_msgSend(_selectedRadio, "setState:", CPOffState); + _selectedRadio = aRadio; +} +}), new objj_method(sel_getUid("selectedRadio"), function $CPRadioGroup__selectedRadio(self, _cmd) +{ with(self) +{ + return _selectedRadio; +} +}), new objj_method(sel_getUid("radios"), function $CPRadioGroup__radios(self, _cmd) +{ with(self) +{ + return objj_msgSend(_radios, "allObjects"); +} +})]); +} +var CPRadioGroupRadiosKey = "CPRadioGroupRadiosKey", + CPRadioGroupSelectedRadioKey = "CPRadioGroupSelectedRadioKey"; +{ +var the_class = objj_getClass("CPRadioGroup") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPRadioGroup\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPRadioGroup__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _radios = objj_msgSend(aCoder, "decodeObjectForKey:", CPRadioGroupRadiosKey); + _selectedRadio = objj_msgSend(aCoder, "decodeObjectForKey:", CPRadioGroupSelectedRadioKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPRadioGroup__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _radios, CPRadioGroupRadiosKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _selectedRadio, CPRadioGroupSelectedRadioKey); +} +})]); +} + +p;13;CPResponder.jI;21;Foundation/CPObject.jc;8086; +CPDeleteKeyCode = 8; +CPTabKeyCode = 9; +CPReturnKeyCode = 13; +CPEscapeKeyCode = 27; +CPLeftArrowKeyCode = 37; +CPUpArrowKeyCode = 38; +CPRightArrowKeyCode = 39; +CPDownArrowKeyCode = 40; +{var the_class = objj_allocateClassPair(CPObject, "CPResponder"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_menu"), new objj_ivar("_nextResponder")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("acceptsFirstResponder"), function $CPResponder__acceptsFirstResponder(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("becomeFirstResponder"), function $CPResponder__becomeFirstResponder(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("resignFirstResponder"), function $CPResponder__resignFirstResponder(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("setNextResponder:"), function $CPResponder__setNextResponder_(self, _cmd, aResponder) +{ with(self) +{ + _nextResponder = aResponder; +} +}), new objj_method(sel_getUid("nextResponder"), function $CPResponder__nextResponder(self, _cmd) +{ with(self) +{ + return _nextResponder; +} +}), new objj_method(sel_getUid("interpretKeyEvents:"), function $CPResponder__interpretKeyEvents_(self, _cmd, events) +{ with(self) +{ + var event, + index = 0; + while(event = events[index++]) + { + switch(objj_msgSend(event, "keyCode")) + { + case CPLeftArrowKeyCode: objj_msgSend(self, "moveBackward:", self); + break; + case CPRightArrowKeyCode: objj_msgSend(self, "moveForward:", self); + break; + case CPUpArrowKeyCode: objj_msgSend(self, "moveUp:", self); + break; + case CPDownArrowKeyCode: objj_msgSend(self, "moveDown:", self); + break; + case CPDeleteKeyCode: objj_msgSend(self, "deleteBackward:", self); + break; + case CPReturnKeyCode: + case 3: objj_msgSend(self, "insertLineBreak:", self); + break; + case CPEscapeKeyCode: objj_msgSend(self, "cancel:", self); + break; + case CPTabKeyCode: var shift = objj_msgSend(event, "modifierFlags") & CPShiftKeyMask; + if (!shift) + objj_msgSend(self, "insertTab:", self); + else + objj_msgSend(self, "insertBackTab:", self); + break; + default: objj_msgSend(self, "insertText:", objj_msgSend(event, "characters")); + } + } +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPResponder__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("mouseDragged:"), function $CPResponder__mouseDragged_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("mouseUp:"), function $CPResponder__mouseUp_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("mouseMoved:"), function $CPResponder__mouseMoved_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("mouseEntered:"), function $CPResponder__mouseEntered_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("mouseExited:"), function $CPResponder__mouseExited_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("scrollWheel:"), function $CPResponder__scrollWheel_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("keyDown:"), function $CPResponder__keyDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("keyUp:"), function $CPResponder__keyUp_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(_nextResponder, "performSelector:withObject:", _cmd, anEvent); +} +}), new objj_method(sel_getUid("performKeyEquivalent:"), function $CPResponder__performKeyEquivalent_(self, _cmd, anEvent) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("deleteBackward:"), function $CPResponder__deleteBackward_(self, _cmd, aSender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("insertLineBreak:"), function $CPResponder__insertLineBreak_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "insertNewline:", aSender); +} +}), new objj_method(sel_getUid("insertNewline:"), function $CPResponder__insertNewline_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "insertNewline:", aSender); +} +}), new objj_method(sel_getUid("cancel:"), function $CPResponder__cancel_(self, _cmd, sender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("insertTab:"), function $CPResponder__insertTab_(self, _cmd, sender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("insertBackTab:"), function $CPResponder__insertBackTab_(self, _cmd, sender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("insertText:"), function $CPResponder__insertText_(self, _cmd, aString) +{ with(self) +{ +} +}), new objj_method(sel_getUid("doCommandBySelector:"), function $CPResponder__doCommandBySelector_(self, _cmd, aSelector) +{ with(self) +{ + if(objj_msgSend(self, "respondsToSelector:", aSelector)) + objj_msgSend(self, "performSelector:", aSelector); + else + objj_msgSend(_nextResponder, "doCommandBySelector:", aSelector); +} +}), new objj_method(sel_getUid("tryToPerform:with:"), function $CPResponder__tryToPerform_with_(self, _cmd, aSelector, anObject) +{ with(self) +{ + if(objj_msgSend(self, "respondsToSelector:", aSelector)) + { + objj_msgSend(self, "performSelector:withObject:", aSelector, anObject); + return YES; + } + return objj_msgSend(_nextResponder, "tryToPerform:with:", aSelector, anObject); +} +}), new objj_method(sel_getUid("setMenu:"), function $CPResponder__setMenu_(self, _cmd, aMenu) +{ with(self) +{ + _menu = aMenu; +} +}), new objj_method(sel_getUid("menu"), function $CPResponder__menu(self, _cmd) +{ with(self) +{ + return _menu; +} +}), new objj_method(sel_getUid("undoManager"), function $CPResponder__undoManager(self, _cmd) +{ with(self) +{ + return objj_msgSend(_nextResponder, "performSelector:", _cmd); +} +}), new objj_method(sel_getUid("noResponderFor:"), function $CPResponder__noResponderFor_(self, _cmd, anEventSelector) +{ with(self) +{ +} +})]); +} +var CPResponderNextResponderKey = "CPResponderNextResponderKey"; +{ +var the_class = objj_getClass("CPResponder") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPResponder\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPResponder__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _nextResponder = objj_msgSend(aCoder, "decodeObjectForKey:", CPResponderNextResponderKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPResponder__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (_nextResponder !== nil) + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _nextResponder, CPResponderNextResponderKey); +} +})]); +} + +p;13;CPSavePanel.jI;16;AppKit/CPPanel.jc;1455; + + +{var the_class = objj_allocateClassPair(CPPanel, "CPSavePanel"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_savePanel")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPSavePanel__init(self, _cmd) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPPanel") }, "init")) + _savePanel = window.application.createSavePanel(); + + return self; +} +}), new objj_method(sel_getUid("runModal"), function $CPSavePanel__runModal(self, _cmd) +{ with(self) +{ + + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", nil); + + return _savePanel.runModal(); +} +}), new objj_method(sel_getUid("runModalForDirectory:"), function $CPSavePanel__runModalForDirectory_(self, _cmd, anAbsoluteDirectoryPath) +{ with(self) +{ + + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", nil); + + return _savePanel.runModal(anAbsoluteDirectoryPath); +} +}), new objj_method(sel_getUid("filename"), function $CPSavePanel__filename(self, _cmd) +{ with(self) +{ + return _savePanel.filename; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("savePanel"), function $CPSavePanel__savePanel(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPSavePanel, "alloc"), "init"); +} +})]); +} + +p;12;CPScroller.ji;11;CPControl.jc;22090; +CPScrollerNoPart = 0; +CPScrollerDecrementPage = 1; +CPScrollerKnob = 2; +CPScrollerIncrementPage = 3; +CPScrollerDecrementLine = 4; +CPScrollerIncrementLine = 5; +CPScrollerKnobSlot = 6; +CPScrollerIncrementArrow = 0; +CPScrollerDecrementArrow = 1; +CPNoScrollerParts = 0; +CPOnlyScrollerArrows = 1; +CPAllScrollerParts = 2; +var PARTS_ARRANGEMENT = [CPScrollerKnobSlot, CPScrollerDecrementLine, CPScrollerIncrementLine, CPScrollerKnob], + NAMES_FOR_PARTS = {}, + PARTS_FOR_NAMES = {}; +NAMES_FOR_PARTS[CPScrollerDecrementLine] = "decrement-line"; +NAMES_FOR_PARTS[CPScrollerIncrementLine] = "increment-line"; +NAMES_FOR_PARTS[CPScrollerKnobSlot] = "knob-slot"; +NAMES_FOR_PARTS[CPScrollerKnob] = "knob"; +{var the_class = objj_allocateClassPair(CPControl, "CPScroller"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_controlSize"), new objj_ivar("_usableParts"), new objj_ivar("_partRects"), new objj_ivar("_isVertical"), new objj_ivar("_knobProportion"), new objj_ivar("_hitPart"), new objj_ivar("_trackingPart"), new objj_ivar("_trackingFloatValue"), new objj_ivar("_trackingStartPoint")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("isVertical"), function $CPScroller__isVertical(self, _cmd) +{ with(self) +{ +return _isVertical; +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPScroller__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + _controlSize = CPRegularControlSize; + _partRects = []; + objj_msgSend(self, "setFloatValue:knobProportion:", 0.0, 1.0); + _hitPart = CPScrollerNoPart; + objj_msgSend(self, "_recalculateIsVertical"); + } + return self; +} +}), new objj_method(sel_getUid("setControlSize:"), function $CPScroller__setControlSize_(self, _cmd, aControlSize) +{ with(self) +{ + if (_controlSize == aControlSize) + return; + _controlSize = aControlSize; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("controlSize"), function $CPScroller__controlSize(self, _cmd) +{ with(self) +{ + return _controlSize; +} +}), new objj_method(sel_getUid("setFloatValue:"), function $CPScroller__setFloatValue_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setFloatValue:", MIN(1.0, MAX(0.0, aValue))); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("setFloatValue:knobProportion:"), function $CPScroller__setFloatValue_knobProportion_(self, _cmd, aValue, aProportion) +{ with(self) +{ + _knobProportion = MIN(1.0, MAX(0.0001, aProportion)); + objj_msgSend(self, "setFloatValue:", aValue); +} +}), new objj_method(sel_getUid("knobProportion"), function $CPScroller__knobProportion(self, _cmd) +{ with(self) +{ + return _knobProportion; +} +}), new objj_method(sel_getUid("currentValueForThemeAttribute:"), function $CPScroller__currentValueForThemeAttribute_(self, _cmd, anAttributeName) +{ with(self) +{ + var themeState = _themeState; + if (NAMES_FOR_PARTS[_hitPart] + "-color" !== anAttributeName) + themeState &= ~CPThemeStateHighlighted; + return objj_msgSend(self, "valueForThemeAttribute:inState:", anAttributeName, themeState); +} +}), new objj_method(sel_getUid("rectForPart:"), function $CPScroller__rectForPart_(self, _cmd, aPart) +{ with(self) +{ + if (aPart == CPScrollerNoPart) + return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + return _partRects[aPart]; +} +}), new objj_method(sel_getUid("testPart:"), function $CPScroller__testPart_(self, _cmd, aPoint) +{ with(self) +{ + aPoint = objj_msgSend(self, "convertPoint:fromView:", aPoint, nil); + if (CGRectContainsPoint(objj_msgSend(self, "rectForPart:", CPScrollerKnob), aPoint)) + return CPScrollerKnob; + if (CGRectContainsPoint(objj_msgSend(self, "rectForPart:", CPScrollerDecrementPage), aPoint)) + return CPScrollerDecrementPage; + if (CGRectContainsPoint(objj_msgSend(self, "rectForPart:", CPScrollerIncrementPage), aPoint)) + return CPScrollerIncrementPage; + if (CGRectContainsPoint(objj_msgSend(self, "rectForPart:", CPScrollerDecrementLine), aPoint)) + return CPScrollerDecrementLine; + if (CGRectContainsPoint(objj_msgSend(self, "rectForPart:", CPScrollerIncrementLine), aPoint)) + return CPScrollerIncrementLine; + if (CGRectContainsPoint(objj_msgSend(self, "rectForPart:", CPScrollerKnobSlot), aPoint)) + return CPScrollerKnobSlot; + return CPScrollerNoPart; +} +}), new objj_method(sel_getUid("checkSpaceForParts"), function $CPScroller__checkSpaceForParts(self, _cmd) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"); + if (_knobProportion === 1.0) + { + _usableParts = CPNoScrollerParts; + _partRects[CPScrollerDecrementPage] = { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + _partRects[CPScrollerKnob] = { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + _partRects[CPScrollerIncrementPage] = { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + _partRects[CPScrollerDecrementLine] = { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + _partRects[CPScrollerIncrementLine] = { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + _partRects[CPScrollerKnobSlot] = { origin: { x:bounds.origin.x, y:bounds.origin.y }, size: { width:bounds.size.width, height:bounds.size.height } }; + return; + } + _usableParts = CPAllScrollerParts; + var knobInset = objj_msgSend(self, "currentValueForThemeAttribute:", "knob-inset"), + trackInset = objj_msgSend(self, "currentValueForThemeAttribute:", "track-inset"), + width = (bounds.size.width), + height = (bounds.size.height); + if (objj_msgSend(self, "isVertical")) + { + var decrementLineSize = objj_msgSend(self, "currentValueForThemeAttribute:", "decrement-line-size"), + incrementLineSize = objj_msgSend(self, "currentValueForThemeAttribute:", "increment-line-size"), + effectiveDecrementLineHeight = decrementLineSize.height + trackInset.top, + effectiveIncrementLineHeight = incrementLineSize.height + trackInset.bottom, + slotHeight = height - effectiveDecrementLineHeight - effectiveIncrementLineHeight, + minimumKnobLength = objj_msgSend(self, "currentValueForThemeAttribute:", "minimum-knob-length"), + knobWidth = width - knobInset.left - knobInset.right, + knobHeight = MAX(minimumKnobLength, (slotHeight * _knobProportion)), + knobLocation = effectiveDecrementLineHeight + (slotHeight - knobHeight) * objj_msgSend(self, "floatValue"); + _partRects[CPScrollerDecrementPage] = { origin: { x:0.0, y:effectiveDecrementLineHeight }, size: { width:width, height:knobLocation - effectiveDecrementLineHeight } }; + _partRects[CPScrollerKnob] = { origin: { x:knobInset.left, y:knobLocation }, size: { width:knobWidth, height:knobHeight } }; + _partRects[CPScrollerIncrementPage] = { origin: { x:0.0, y:knobLocation + knobHeight }, size: { width:width, height:height - (knobLocation + knobHeight) - effectiveIncrementLineHeight } }; + _partRects[CPScrollerKnobSlot] = { origin: { x:trackInset.left, y:effectiveDecrementLineHeight }, size: { width:width - trackInset.left - trackInset.right, height:slotHeight } }; + _partRects[CPScrollerDecrementLine] = { origin: { x:0.0, y:0.0 }, size: { width:decrementLineSize.width, height:decrementLineSize.height } }; + _partRects[CPScrollerIncrementLine] = { origin: { x:0.0, y:height - incrementLineSize.height }, size: { width:incrementLineSize.width, height:incrementLineSize.height } }; + } + else + { + var decrementLineSize = objj_msgSend(self, "currentValueForThemeAttribute:", "decrement-line-size"), + incrementLineSize = objj_msgSend(self, "currentValueForThemeAttribute:", "increment-line-size"), + effectiveDecrementLineWidth = decrementLineSize.width + trackInset.left, + effectiveIncrementLineWidth = incrementLineSize.width + trackInset.right; + slotWidth = width - effectiveDecrementLineWidth - effectiveIncrementLineWidth, + minimumKnobLength = objj_msgSend(self, "currentValueForThemeAttribute:", "minimum-knob-length"), + knobWidth = MAX(minimumKnobLength, (slotWidth * _knobProportion)), + knobHeight = height - knobInset.top - knobInset.bottom, + knobLocation = effectiveDecrementLineWidth + (slotWidth - knobWidth) * objj_msgSend(self, "floatValue"); + _partRects[CPScrollerDecrementPage] = { origin: { x:effectiveDecrementLineWidth, y:0.0 }, size: { width:knobLocation - effectiveDecrementLineWidth, height:height } }; + _partRects[CPScrollerKnob] = { origin: { x:knobLocation, y:knobInset.top }, size: { width:knobWidth, height:knobHeight } }; + _partRects[CPScrollerIncrementPage] = { origin: { x:knobLocation + knobWidth, y:0.0 }, size: { width:width - (knobLocation + knobWidth) - effectiveIncrementLineWidth, height:height } }; + _partRects[CPScrollerKnobSlot] = { origin: { x:effectiveDecrementLineWidth, y:trackInset.top }, size: { width:slotWidth, height:height - trackInset.top - trackInset.bottom } }; + _partRects[CPScrollerDecrementLine] = { origin: { x:0.0, y:0.0 }, size: { width:decrementLineSize.width, height:decrementLineSize.height } }; + _partRects[CPScrollerIncrementLine] = { origin: { x:width - incrementLineSize.width, y:0.0 }, size: { width:incrementLineSize.width, height:incrementLineSize.height } }; + } +} +}), new objj_method(sel_getUid("usableParts"), function $CPScroller__usableParts(self, _cmd) +{ with(self) +{ + return _usableParts; +} +}), new objj_method(sel_getUid("drawArrow:highlight:"), function $CPScroller__drawArrow_highlight_(self, _cmd, anArrow, shouldHighlight) +{ with(self) +{ +} +}), new objj_method(sel_getUid("drawKnob"), function $CPScroller__drawKnob(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("drawKnobSlot"), function $CPScroller__drawKnobSlot(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("createViewForPart:"), function $CPScroller__createViewForPart_(self, _cmd, aPart) +{ with(self) +{ + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + objj_msgSend(view, "setHitTests:", NO); + return view; +} +}), new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPScroller__rectForEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + return _partRects[aName]; +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPScroller__createEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + objj_msgSend(view, "setHitTests:", NO); + return view; +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPScroller__layoutSubviews(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "checkSpaceForParts"); + var index = 0, + count = PARTS_ARRANGEMENT.length; + for (; index < count; ++index) + { + var part = PARTS_ARRANGEMENT[index]; + if (index === 0) + view = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", part, CPWindowBelow, PARTS_ARRANGEMENT[index + 1]); + else + view = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", part, CPWindowAbove, PARTS_ARRANGEMENT[index - 1]); + if (view) + objj_msgSend(view, "setBackgroundColor:", objj_msgSend(self, "currentValueForThemeAttribute:", NAMES_FOR_PARTS[part] + "-color")); + } +} +}), new objj_method(sel_getUid("drawParts"), function $CPScroller__drawParts(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "drawKnobSlot"); + objj_msgSend(self, "drawKnob"); + objj_msgSend(self, "drawArrow:highlight:", CPScrollerDecrementArrow, NO); + objj_msgSend(self, "drawArrow:highlight:", CPScrollerIncrementArrow, NO); +} +}), new objj_method(sel_getUid("hitPart"), function $CPScroller__hitPart(self, _cmd) +{ with(self) +{ + return _hitPart; +} +}), new objj_method(sel_getUid("trackKnob:"), function $CPScroller__trackKnob_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"); + if (type === CPLeftMouseUp) + { + _hitPart = CPScrollerNoPart; + return; + } + if (type === CPLeftMouseDown) + { + _trackingFloatValue = objj_msgSend(self, "floatValue"); + _trackingStartPoint = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + } + else if (type === CPLeftMouseDragged) + { + var knobRect = objj_msgSend(self, "rectForPart:", CPScrollerKnob), + knobSlotRect = objj_msgSend(self, "rectForPart:", CPScrollerKnobSlot), + remainder = !objj_msgSend(self, "isVertical") ? ((knobSlotRect.size.width) - (knobRect.size.width)) : ((knobSlotRect.size.height) - (knobRect.size.height)); + if (remainder <= 0) + objj_msgSend(self, "setFloatValue:", 0.0); + else + { + var location = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + delta = !objj_msgSend(self, "isVertical") ? location.x - _trackingStartPoint.x : location.y - _trackingStartPoint.y; + objj_msgSend(self, "setFloatValue:", _trackingFloatValue + delta / remainder); + } + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackKnob:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); +} +}), new objj_method(sel_getUid("trackScrollButtons:"), function $CPScroller__trackScrollButtons_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"); + if (type === CPLeftMouseUp) + { + objj_msgSend(self, "highlight:", NO); + objj_msgSend(CPEvent, "stopPeriodicEvents"); + _hitPart = CPScrollerNoPart; + return; + } + if (type === CPLeftMouseDown) + { + _trackingPart = objj_msgSend(self, "hitPart"); + _trackingStartPoint = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + if (objj_msgSend(anEvent, "modifierFlags") & CPAlternateKeyMask) + { + if (_trackingPart == CPScrollerDecrementLine) + _hitPart = CPScrollerDecrementPage; + else if (_trackingPart == CPScrollerIncrementLine) + _hitPart = CPScrollerIncrementPage; + else if (_trackingPart == CPScrollerDecrementPage || _trackingPart == CPScrollerIncrementPage) + { + var knobRect = objj_msgSend(self, "rectForPart:", CPScrollerKnob), + knobWidth = !objj_msgSend(self, "isVertical") ? (knobRect.size.width) : (knobRect.size.height), + knobSlotRect = objj_msgSend(self, "rectForPart:", CPScrollerKnobSlot), + remainder = (!objj_msgSend(self, "isVertical") ? (knobSlotRect.size.width) : (knobSlotRect.size.height)) - knobWidth; + objj_msgSend(self, "setFloatValue:", ((!objj_msgSend(self, "isVertical") ? _trackingStartPoint.x - (knobSlotRect.origin.x) : _trackingStartPoint.y - (knobSlotRect.origin.y)) - knobWidth / 2.0) / remainder); + _hitPart = CPScrollerKnob; + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); + return objj_msgSend(self, "trackKnob:", anEvent); + } + } + objj_msgSend(self, "highlight:", YES); + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); + objj_msgSend(CPEvent, "startPeriodicEventsAfterDelay:withPeriod:", 0.5, 0.04); + } + else if (type === CPLeftMouseDragged) + { + _trackingStartPoint = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + if (_trackingPart == CPScrollerDecrementPage || _trackingPart == CPScrollerIncrementPage) + { + var hitPart = objj_msgSend(self, "testPart:", objj_msgSend(anEvent, "locationInWindow")); + if (hitPart == CPScrollerDecrementPage || hitPart == CPScrollerIncrementPage) + { + _trackingPart = hitPart; + _hitPart = hitPart; + } + } + objj_msgSend(self, "highlight:", CGRectContainsPoint(objj_msgSend(self, "rectForPart:", _trackingPart), _trackingStartPoint)); + } + else if (type == CPPeriodic && CGRectContainsPoint(objj_msgSend(self, "rectForPart:", _trackingPart), _trackingStartPoint)) + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackScrollButtons:"), CPPeriodicMask | CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("_recalculateIsVertical"), function $CPScroller___recalculateIsVertical(self, _cmd) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + width = (bounds.size.width), + height = (bounds.size.height); + _isVertical = width < height ? 1 : (width > height ? 0 : -1); + if (_isVertical === 1) + objj_msgSend(self, "setThemeState:", CPThemeStateVertical); + else if (_isVertical === 0) + objj_msgSend(self, "unsetThemeState:", CPThemeStateVertical); +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPScroller__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setFrameSize:", aSize); + objj_msgSend(self, "_recalculateIsVertical"); + objj_msgSend(self, "checkSpaceForParts"); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPScroller__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (!objj_msgSend(self, "isEnabled")) + return; + _hitPart = objj_msgSend(self, "testPart:", objj_msgSend(anEvent, "locationInWindow")); + switch (_hitPart) + { + case CPScrollerKnob: return objj_msgSend(self, "trackKnob:", anEvent); + case CPScrollerDecrementLine: + case CPScrollerIncrementLine: + case CPScrollerDecrementPage: + case CPScrollerIncrementPage: return objj_msgSend(self, "trackScrollButtons:", anEvent); + } +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeClass"), function $CPScroller__themeClass(self, _cmd) +{ with(self) +{ + return "scroller"; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPScroller__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [ nil, nil, nil, nil, + { width:0.0, height:0.0 }, { width:0.0, height:0.0 }, { top:(0), right:(0), bottom:(0), left:(0) }, { top:(0), right:(0), bottom:(0), left:(0) }, { width:0.0, height:0.0 }], [ "knob-slot-color", + "decrement-line-color", + "increment-line-color", + "knob-color", + "decrement-line-size", + "increment-line-size", + "track-inset", + "knob-inset", + "minimum-knob-length"]); +} +}), new objj_method(sel_getUid("scrollerWidth"), function $CPScroller__scrollerWidth(self, _cmd) +{ with(self) +{ + return 17.0; +} +}), new objj_method(sel_getUid("scrollerWidthForControlSize:"), function $CPScroller__scrollerWidthForControlSize_(self, _cmd, aControlSize) +{ with(self) +{ + return 17.0; +} +})]); +} +var CPScrollerControlSizeKey = "CPScrollerControlSize", + CPScrollerKnobProportionKey = "CPScrollerKnobProportion"; +{ +var the_class = objj_getClass("CPScroller") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPScroller\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPScroller__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder)) + { + _controlSize = CPRegularControlSize; + if (objj_msgSend(aCoder, "containsValueForKey:", CPScrollerControlSizeKey)) + _controlSize = objj_msgSend(aCoder, "decodeIntForKey:", CPScrollerControlSizeKey); + _knobProportion = 1.0; + if (objj_msgSend(aCoder, "containsValueForKey:", CPScrollerKnobProportionKey)) + _knobProportion = objj_msgSend(aCoder, "decodeFloatForKey:", CPScrollerKnobProportionKey); + _partRects = []; + _hitPart = CPScrollerNoPart; + objj_msgSend(self, "_recalculateIsVertical"); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPScroller__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeInt:forKey:", _controlSize, CPScrollerControlSizeKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _knobProportion, CPScrollerKnobProportionKey); +} +})]); +} + +p;14;CPScrollView.ji;8;CPView.ji;12;CPClipView.ji;12;CPScroller.jc;21410; +{var the_class = objj_allocateClassPair(CPView, "CPScrollView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_contentView"), new objj_ivar("_hasVerticalScroller"), new objj_ivar("_hasHorizontalScroller"), new objj_ivar("_autohidesScrollers"), new objj_ivar("_verticalScroller"), new objj_ivar("_horizontalScroller"), new objj_ivar("_recursionCount"), new objj_ivar("_verticalLineScroll"), new objj_ivar("_verticalPageScroll"), new objj_ivar("_horizontalLineScroll"), new objj_ivar("_horizontalPageScroll")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPScrollView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _verticalLineScroll = 10.0; + _verticalPageScroll = 10.0; + _horizontalLineScroll = 10.0; + _horizontalPageScroll = 10.0; + _contentView = objj_msgSend(objj_msgSend(CPClipView, "alloc"), "initWithFrame:", objj_msgSend(self, "bounds")); + objj_msgSend(self, "addSubview:", _contentView); + objj_msgSend(self, "setHasVerticalScroller:", YES); + objj_msgSend(self, "setHasHorizontalScroller:", YES); + } + return self; +} +}), new objj_method(sel_getUid("contentSize"), function $CPScrollView__contentSize(self, _cmd) +{ with(self) +{ + return objj_msgSend(_contentView, "frame").size; +} +}), new objj_method(sel_getUid("documentView"), function $CPScrollView__documentView(self, _cmd) +{ with(self) +{ + return objj_msgSend(_contentView, "documentView"); +} +}), new objj_method(sel_getUid("setContentView:"), function $CPScrollView__setContentView_(self, _cmd, aContentView) +{ with(self) +{ + if (!aContentView) + return; + var documentView = objj_msgSend(aContentView, "documentView"); + if (documentView) + objj_msgSend(documentView, "removeFromSuperview"); + objj_msgSend(_contentView, "removeFromSuperview"); + var size = objj_msgSend(self, "contentSize"); + _contentView = aContentView; + objj_msgSend(_contentView, "setFrame:", CGRectMake(0.0, 0.0, size.width, size.height)); + objj_msgSend(_contentView, "setDocumentView:", documentView); + objj_msgSend(self, "addSubview:", _contentView); +} +}), new objj_method(sel_getUid("contentView"), function $CPScrollView__contentView(self, _cmd) +{ with(self) +{ + return _contentView; +} +}), new objj_method(sel_getUid("setDocumentView:"), function $CPScrollView__setDocumentView_(self, _cmd, aView) +{ with(self) +{ + objj_msgSend(_contentView, "setDocumentView:", aView); + objj_msgSend(self, "reflectScrolledClipView:", _contentView); +} +}), new objj_method(sel_getUid("reflectScrolledClipView:"), function $CPScrollView__reflectScrolledClipView_(self, _cmd, aClipView) +{ with(self) +{ + if(_contentView !== aClipView) + return; + if (_recursionCount > 5) + return; + ++_recursionCount; + var documentView = objj_msgSend(self, "documentView"); + if (!documentView) + { + if (_autohidesScrollers) + { + objj_msgSend(_verticalScroller, "setHidden:", YES); + objj_msgSend(_horizontalScroller, "setHidden:", YES); + } + else + { + } + objj_msgSend(_contentView, "setFrame:", objj_msgSend(self, "bounds")); + --_recursionCount; + return; + } + var documentFrame = objj_msgSend(documentView, "frame"), + contentViewFrame = objj_msgSend(self, "bounds"), + scrollPoint = objj_msgSend(_contentView, "bounds").origin, + difference = { width:CPRectGetWidth(documentFrame) - CPRectGetWidth(contentViewFrame), height:CPRectGetHeight(documentFrame) - CPRectGetHeight(contentViewFrame) }, + shouldShowVerticalScroller = (!_autohidesScrollers || difference.height > 0.0) && _hasVerticalScroller, + shouldShowHorizontalScroller = (!_autohidesScrollers || difference.width > 0.0) && _hasHorizontalScroller, + wasShowingVerticalScroller = !objj_msgSend(_verticalScroller, "isHidden"), + wasShowingHorizontalScroller = !objj_msgSend(_horizontalScroller, "isHidden"), + verticalScrollerWidth = (objj_msgSend(_verticalScroller, "frame").size.width); + horizontalScrollerHeight = (objj_msgSend(_horizontalScroller, "frame").size.height); + if (_autohidesScrollers) + { + if (shouldShowVerticalScroller) + shouldShowHorizontalScroller = (!_autohidesScrollers || difference.width > -verticalScrollerWidth) && _hasHorizontalScroller; + if (shouldShowHorizontalScroller) + shouldShowVerticalScroller = (!_autohidesScrollers || difference.height > -horizontalScrollerHeight) && _hasVerticalScroller; + } + objj_msgSend(_verticalScroller, "setHidden:", !shouldShowVerticalScroller); + objj_msgSend(_verticalScroller, "setEnabled:", difference.height > 0.0); + objj_msgSend(_horizontalScroller, "setHidden:", !shouldShowHorizontalScroller); + objj_msgSend(_horizontalScroller, "setEnabled:", difference.width > 0.0); + if (shouldShowVerticalScroller) + { + var verticalScrollerHeight = CPRectGetHeight(contentViewFrame); + if (shouldShowHorizontalScroller) + verticalScrollerHeight -= horizontalScrollerHeight; + difference.width += verticalScrollerWidth; + contentViewFrame.size.width -= verticalScrollerWidth; + objj_msgSend(_verticalScroller, "setFloatValue:knobProportion:", (difference.height <= 0.0) ? 0.0 : scrollPoint.y / difference.height, CPRectGetHeight(contentViewFrame) / CPRectGetHeight(documentFrame)); + objj_msgSend(_verticalScroller, "setFrame:", CPRectMake(CPRectGetMaxX(contentViewFrame), 0.0, verticalScrollerWidth, verticalScrollerHeight)); + } + else if (wasShowingVerticalScroller) + objj_msgSend(_verticalScroller, "setFloatValue:knobProportion:", 0.0, 1.0); + if (shouldShowHorizontalScroller) + { + difference.height += horizontalScrollerHeight; + contentViewFrame.size.height -= horizontalScrollerHeight; + objj_msgSend(_horizontalScroller, "setFloatValue:knobProportion:", (difference.width <= 0.0) ? 0.0 : scrollPoint.x / difference.width, CPRectGetWidth(contentViewFrame) / CPRectGetWidth(documentFrame)); + objj_msgSend(_horizontalScroller, "setFrame:", CPRectMake(0.0, CPRectGetMaxY(contentViewFrame), CPRectGetWidth(contentViewFrame), horizontalScrollerHeight)); + } + else if (wasShowingHorizontalScroller) + objj_msgSend(_horizontalScroller, "setFloatValue:knobProportion:", 0.0, 1.0); + objj_msgSend(_contentView, "setFrame:", contentViewFrame); + --_recursionCount; +} +}), new objj_method(sel_getUid("setHorizontalScroller:"), function $CPScrollView__setHorizontalScroller_(self, _cmd, aScroller) +{ with(self) +{ + if (_horizontalScroller === aScroller) + return; + objj_msgSend(_horizontalScroller, "removeFromSuperview"); + objj_msgSend(_horizontalScroller, "setTarget:", nil); + objj_msgSend(_horizontalScroller, "setAction:", nil); + _horizontalScroller = aScroller; + objj_msgSend(_horizontalScroller, "setTarget:", self); + objj_msgSend(_horizontalScroller, "setAction:", sel_getUid("_horizontalScrollerDidScroll:")); + objj_msgSend(self, "addSubview:", _horizontalScroller); + objj_msgSend(self, "reflectScrolledClipView:", _contentView); +} +}), new objj_method(sel_getUid("horizontalScroller"), function $CPScrollView__horizontalScroller(self, _cmd) +{ with(self) +{ + return _horizontalScroller; +} +}), new objj_method(sel_getUid("setHasHorizontalScroller:"), function $CPScrollView__setHasHorizontalScroller_(self, _cmd, shouldHaveHorizontalScroller) +{ with(self) +{ + if (_hasHorizontalScroller === shouldHaveHorizontalScroller) + return; + _hasHorizontalScroller = shouldHaveHorizontalScroller; + if (_hasHorizontalScroller && !_horizontalScroller) + objj_msgSend(self, "setHorizontalScroller:", objj_msgSend(objj_msgSend(CPScroller, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, CPRectGetWidth(objj_msgSend(self, "bounds")), objj_msgSend(CPScroller, "scrollerWidth")))); + else if (!_hasHorizontalScroller && _horizontalScroller) + { + objj_msgSend(_horizontalScroller, "setHidden:", YES); + objj_msgSend(self, "reflectScrolledClipView:", _contentView); + } +} +}), new objj_method(sel_getUid("hasHorizontalScroller"), function $CPScrollView__hasHorizontalScroller(self, _cmd) +{ with(self) +{ + return _hasHorizontalScroller; +} +}), new objj_method(sel_getUid("setVerticalScroller:"), function $CPScrollView__setVerticalScroller_(self, _cmd, aScroller) +{ with(self) +{ + if (_verticalScroller === aScroller) + return; + objj_msgSend(_verticalScroller, "removeFromSuperview"); + objj_msgSend(_verticalScroller, "setTarget:", nil); + objj_msgSend(_verticalScroller, "setAction:", nil); + _verticalScroller = aScroller; + objj_msgSend(_verticalScroller, "setTarget:", self); + objj_msgSend(_verticalScroller, "setAction:", sel_getUid("_verticalScrollerDidScroll:")); + objj_msgSend(self, "addSubview:", _verticalScroller); + objj_msgSend(self, "reflectScrolledClipView:", _contentView); +} +}), new objj_method(sel_getUid("verticalScroller"), function $CPScrollView__verticalScroller(self, _cmd) +{ with(self) +{ + return _verticalScroller; +} +}), new objj_method(sel_getUid("setHasVerticalScroller:"), function $CPScrollView__setHasVerticalScroller_(self, _cmd, shouldHaveVerticalScroller) +{ with(self) +{ + if (_hasVerticalScroller === shouldHaveVerticalScroller) + return; + _hasVerticalScroller = shouldHaveVerticalScroller; + if (_hasVerticalScroller && !_verticalScroller) + objj_msgSend(self, "setVerticalScroller:", objj_msgSend(objj_msgSend(CPScroller, "alloc"), "initWithFrame:", CPRectMake(0.0, 0.0, objj_msgSend(CPScroller, "scrollerWidth"), CPRectGetHeight(objj_msgSend(self, "bounds"))))); + else if (!_hasVerticalScroller && _verticalScroller) + { + objj_msgSend(_verticalScroller, "setHidden:", YES); + objj_msgSend(self, "reflectScrolledClipView:", _contentView); + } +} +}), new objj_method(sel_getUid("hasVerticalScroller"), function $CPScrollView__hasVerticalScroller(self, _cmd) +{ with(self) +{ + return _hasVerticalScroller; +} +}), new objj_method(sel_getUid("setAutohidesScrollers:"), function $CPScrollView__setAutohidesScrollers_(self, _cmd, autohidesScrollers) +{ with(self) +{ + if (_autohidesScrollers == autohidesScrollers) + return; + _autohidesScrollers = autohidesScrollers; + objj_msgSend(self, "reflectScrolledClipView:", _contentView); +} +}), new objj_method(sel_getUid("autohidesScrollers"), function $CPScrollView__autohidesScrollers(self, _cmd) +{ with(self) +{ + return _autohidesScrollers; +} +}), new objj_method(sel_getUid("_verticalScrollerDidScroll:"), function $CPScrollView___verticalScrollerDidScroll_(self, _cmd, aScroller) +{ with(self) +{ + var value = objj_msgSend(aScroller, "floatValue"), + documentFrame = objj_msgSend(objj_msgSend(_contentView, "documentView"), "frame"); + contentBounds = objj_msgSend(_contentView, "bounds"); + switch (objj_msgSend(_verticalScroller, "hitPart")) + { + case CPScrollerDecrementLine: contentBounds.origin.y -= _verticalLineScroll; + break; + case CPScrollerIncrementLine: contentBounds.origin.y += _verticalLineScroll; + break; + case CPScrollerDecrementPage: contentBounds.origin.y -= (contentBounds.size.height) - _verticalPageScroll; + break; + case CPScrollerIncrementPage: contentBounds.origin.y += (contentBounds.size.height) - _verticalPageScroll; + break; + case CPScrollerKnobSlot: + case CPScrollerKnob: + default: contentBounds.origin.y = value * ((documentFrame.size.height) - (contentBounds.size.height)); + } + objj_msgSend(_contentView, "scrollToPoint:", contentBounds.origin); +} +}), new objj_method(sel_getUid("_horizontalScrollerDidScroll:"), function $CPScrollView___horizontalScrollerDidScroll_(self, _cmd, aScroller) +{ with(self) +{ + var value = objj_msgSend(aScroller, "floatValue"), + documentFrame = objj_msgSend(objj_msgSend(self, "documentView"), "frame"), + contentBounds = objj_msgSend(_contentView, "bounds"); + switch (objj_msgSend(_horizontalScroller, "hitPart")) + { + case CPScrollerDecrementLine: contentBounds.origin.x -= _horizontalLineScroll; + break; + case CPScrollerIncrementLine: contentBounds.origin.x += _horizontalLineScroll; + break; + case CPScrollerDecrementPage: contentBounds.origin.x -= (contentBounds.size.width) - _horizontalPageScroll; + break; + case CPScrollerIncrementPage: contentBounds.origin.x += (contentBounds.size.width) - _horizontalPageScroll; + break; + case CPScrollerKnobSlot: + case CPScrollerKnob: + default: contentBounds.origin.x = value * ((documentFrame.size.width) - (contentBounds.size.width)); + } + objj_msgSend(_contentView, "scrollToPoint:", contentBounds.origin); +} +}), new objj_method(sel_getUid("tile"), function $CPScrollView__tile(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $CPScrollView__resizeSubviewsWithOldSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSend(self, "reflectScrolledClipView:", _contentView); +} +}), new objj_method(sel_getUid("setLineScroll:"), function $CPScrollView__setLineScroll_(self, _cmd, aLineScroll) +{ with(self) +{ + objj_msgSend(self, "setHorizonalLineScroll:", aLineScroll); + objj_msgSend(self, "setVerticalLineScroll:", aLineScroll); +} +}), new objj_method(sel_getUid("lineScroll"), function $CPScrollView__lineScroll(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "horizontalLineScroll"); +} +}), new objj_method(sel_getUid("setHorizontalLineScroll:"), function $CPScrollView__setHorizontalLineScroll_(self, _cmd, aLineScroll) +{ with(self) +{ + _horizontalLineScroll = aLineScroll; +} +}), new objj_method(sel_getUid("horizontalLineScroll"), function $CPScrollView__horizontalLineScroll(self, _cmd) +{ with(self) +{ + return _horizontalLineScroll; +} +}), new objj_method(sel_getUid("setVerticalLineScroll:"), function $CPScrollView__setVerticalLineScroll_(self, _cmd, aLineScroll) +{ with(self) +{ + _verticalLineScroll = aLineScroll; +} +}), new objj_method(sel_getUid("verticalLineScroll"), function $CPScrollView__verticalLineScroll(self, _cmd) +{ with(self) +{ + return _verticalLineScroll; +} +}), new objj_method(sel_getUid("setPageScroll:"), function $CPScrollView__setPageScroll_(self, _cmd, aPageScroll) +{ with(self) +{ + objj_msgSend(self, "setHorizontalPageScroll:", aPageScroll); + objj_msgSend(self, "setVerticalPageScroll:", aPageScroll); +} +}), new objj_method(sel_getUid("pageScroll"), function $CPScrollView__pageScroll(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "horizontalPageScroll"); +} +}), new objj_method(sel_getUid("setHorizontalPageScroll:"), function $CPScrollView__setHorizontalPageScroll_(self, _cmd, aPageScroll) +{ with(self) +{ + _horizontalPageScroll = aPageScroll; +} +}), new objj_method(sel_getUid("horizontalPageScroll"), function $CPScrollView__horizontalPageScroll(self, _cmd) +{ with(self) +{ + return _horizontalPageScroll; +} +}), new objj_method(sel_getUid("setVerticalPageScroll:"), function $CPScrollView__setVerticalPageScroll_(self, _cmd, aPageScroll) +{ with(self) +{ + _verticalPageScroll = aPageScroll; +} +}), new objj_method(sel_getUid("verticalPageScroll"), function $CPScrollView__verticalPageScroll(self, _cmd) +{ with(self) +{ + return _verticalPageScroll; +} +}), new objj_method(sel_getUid("scrollWheel:"), function $CPScrollView__scrollWheel_(self, _cmd, anEvent) +{ with(self) +{ + var value = objj_msgSend(_verticalScroller, "floatValue"), + documentFrame = objj_msgSend(objj_msgSend(self, "documentView"), "frame"), + contentBounds = objj_msgSend(_contentView, "bounds"); + contentBounds.origin.x += objj_msgSend(anEvent, "deltaX") * _horizontalLineScroll; + contentBounds.origin.y += objj_msgSend(anEvent, "deltaY") * _verticalLineScroll; + objj_msgSend(_contentView, "scrollToPoint:", contentBounds.origin); +} +}), new objj_method(sel_getUid("keyDown:"), function $CPScrollView__keyDown_(self, _cmd, anEvent) +{ with(self) +{ + var keyCode = objj_msgSend(anEvent, "keyCode"), + value = objj_msgSend(_verticalScroller, "floatValue"), + documentFrame = objj_msgSend(objj_msgSend(self, "documentView"), "frame"), + contentBounds = objj_msgSend(_contentView, "bounds"); + switch (keyCode) + { + case 33: + contentBounds.origin.y -= (contentBounds.size.height) - _verticalPageScroll; + break; + case 34: + contentBounds.origin.y += (contentBounds.size.height) - _verticalPageScroll; + break; + case 38: + contentBounds.origin.y -= _verticalLineScroll; + break; + case 40: + contentBounds.origin.y += _verticalLineScroll; + break; + case 37: + contentBounds.origin.x -= _horizontalLineScroll; + break; + case 49: + contentBounds.origin.x += _horizontalLineScroll; + break; + default: return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "keyDown:", anEvent); + } + objj_msgSend(_contentView, "scrollToPoint:", contentBounds.origin); +} +})]); +} +var CPScrollViewContentViewKey = "CPScrollViewContentView", + CPScrollViewVLineScrollKey = "CPScrollViewVLineScroll", + CPScrollViewHLineScrollKey = "CPScrollViewHLineScroll", + CPScrollViewVPageScrollKey = "CPScrollViewVPageScroll", + CPScrollViewHPageScrollKey = "CPScrollViewHPageScroll", + CPScrollViewHasVScrollerKey = "CPScrollViewHasVScroller", + CPScrollViewHasHScrollerKey = "CPScrollViewHasHScroller", + CPScrollViewVScrollerKey = "CPScrollViewVScroller", + CPScrollViewHScrollerKey = "CPScrollViewHScroller", + CPScrollViewAutohidesScrollerKey = "CPScrollViewAutohidesScroller"; +{ +var the_class = objj_getClass("CPScrollView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPScrollView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPScrollView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder)) + { + _verticalLineScroll = objj_msgSend(aCoder, "decodeFloatForKey:", CPScrollViewVLineScrollKey); + _verticalPageScroll = objj_msgSend(aCoder, "decodeFloatForKey:", CPScrollViewVPageScrollKey); + _horizontalLineScroll = objj_msgSend(aCoder, "decodeFloatForKey:", CPScrollViewHLineScrollKey); + _horizontalPageScroll = objj_msgSend(aCoder, "decodeFloatForKey:", CPScrollViewHPageScrollKey); + _contentView = objj_msgSend(aCoder, "decodeObjectForKey:", CPScrollViewContentViewKey); + _verticalScroller = objj_msgSend(aCoder, "decodeObjectForKey:", CPScrollViewVScrollerKey); + _horizontalScroller = objj_msgSend(aCoder, "decodeObjectForKey:", CPScrollViewHScrollerKey); + _hasVerticalScroller = objj_msgSend(aCoder, "decodeBoolForKey:", CPScrollViewHasVScrollerKey); + _hasHorizontalScroller = objj_msgSend(aCoder, "decodeBoolForKey:", CPScrollViewHasHScrollerKey); + _autohidesScrollers = objj_msgSend(aCoder, "decodeBoolForKey:", CPScrollViewAutohidesScrollerKey); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "performSelector:target:argument:order:modes:", sel_getUid("reflectScrolledClipView:"), self, _contentView, 0, [CPDefaultRunLoopMode]); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPScrollView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _contentView, CPScrollViewContentViewKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _verticalScroller, CPScrollViewVScrollerKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _horizontalScroller, CPScrollViewHScrollerKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _verticalLineScroll, CPScrollViewVLineScrollKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _verticalPageScroll, CPScrollViewVPageScrollKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _horizontalLineScroll, CPScrollViewHLineScrollKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _horizontalPageScroll, CPScrollViewHPageScrollKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _hasVerticalScroller, CPScrollViewHasVScrollerKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _hasHorizontalScroller, CPScrollViewHasHScrollerKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _autohidesScrollers, CPScrollViewAutohidesScrollerKey); +} +})]); +} + +p;15;CPSearchField.ji;13;CPTextField.jc;23743; +CPSearchFieldRecentsTitleMenuItemTag = 1000; +CPSearchFieldRecentsMenuItemTag = 1001; +CPSearchFieldClearRecentsMenuItemTag = 1002; +CPSearchFieldNoRecentsMenuItemTag = 1003; +var CPSearchFieldSearchImage = nil, + CPSearchFieldFindImage = nil, + CPSearchFieldCancelImage = nil, + CPSearchFieldCancelPressedImage = nil; +{var the_class = objj_allocateClassPair(CPTextField, "CPSearchField"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_searchButton"), new objj_ivar("_cancelButton"), new objj_ivar("_searchMenuTemplate"), new objj_ivar("_searchMenu"), new objj_ivar("_recentsAutosaveName"), new objj_ivar("_recentSearches"), new objj_ivar("_maximumRecents"), new objj_ivar("_sendsWholeSearchString"), new objj_ivar("_sendsSearchStringImmediately"), new objj_ivar("_partialStringTimer")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPSearchField__initWithFrame_(self, _cmd, frame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "initWithFrame:", frame); + if (self != nil) + { + _recentSearches = objj_msgSend(CPArray, "array"); + _maximumRecents = 10; + _sendsWholeSearchString = NO; + _sendsSearchStringImmediately = NO; + objj_msgSend(self, "setBezeled:", YES); + objj_msgSend(self, "setBezelStyle:", CPTextFieldRoundedBezel); + objj_msgSend(self, "setBordered:", YES); + objj_msgSend(self, "setEditable:", YES); + objj_msgSend(self, "setDelegate:", self); + _cancelButton = objj_msgSend(objj_msgSend(CPButton, "alloc"), "initWithFrame:", CPMakeRect(frame.size.width - 27,(frame.size.height-22)/2,22,22)); + objj_msgSend(self, "resetCancelButton"); + objj_msgSend(_cancelButton, "setHidden:", YES); + objj_msgSend(self, "addSubview:", _cancelButton); + _searchButton = objj_msgSend(objj_msgSend(CPButton, "alloc"), "initWithFrame:", CPMakeRect(5,(frame.size.height-25)/2,25,25)); + objj_msgSend(_searchButton, "setBezelStyle:", CPRegularSquareBezelStyle); + objj_msgSend(_searchButton, "setBordered:", NO); + objj_msgSend(_searchButton, "setImageScaling:", CPScaleToFit); + objj_msgSend(self, "setSearchMenuTemplate:", objj_msgSend(self, "_searchMenuTemplate")); + objj_msgSend(self, "addSubview:", _searchButton); + } + return self; +} +}), new objj_method(sel_getUid("copy"), function $CPSearchField__copy(self, _cmd) +{ with(self) +{ + var copy = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "copy"); + objj_msgSend(copy, "setCancelButton:", objj_msgSend(_cancelButton, "copy")); + objj_msgSend(copy, "setSearchButton:", objj_msgSend(_searchButton, "copy")); + objj_msgSend(copy, "setrecentsAutosaveName:", objj_msgSend(_recentsAutosaveName, "copy")); + objj_msgSend(copy, "setSendsWholeSearchString:", objj_msgSend(_sendsWholeSearchString, "copy")); + objj_msgSend(copy, "setSendsSearchStringImmediately:", objj_msgSend(_sendsSearchStringImmediately, "copy")); + objj_msgSend(copy, "setMaximumRecents:", _maximumRecents); + objj_msgSend(copy, "setSearchMenutemplate:", objj_msgSend(_searchMenuTemplate, "copy")); + return copy; +} +}), new objj_method(sel_getUid("setSearchButton:"), function $CPSearchField__setSearchButton_(self, _cmd, button) +{ with(self) +{ + _searchButton = button; +} +}), new objj_method(sel_getUid("searchButton"), function $CPSearchField__searchButton(self, _cmd) +{ with(self) +{ + return _searchButton; +} +}), new objj_method(sel_getUid("resetSearchButton"), function $CPSearchField__resetSearchButton(self, _cmd) +{ with(self) +{ + var searchButtonImage, + action, + target, + button = objj_msgSend(self, "searchButton"); + if (_searchMenuTemplate == nil) + { + searchButtonImage = CPSearchFieldSearchImage; + action = objj_msgSend(self, "action"); + target = objj_msgSend(self, "target"); + } + else + { + searchButtonImage = CPSearchFieldFindImage; + action = sel_getUid("_showMenu:"); + target = self; + } + objj_msgSend(button, "setImage:", searchButtonImage); + objj_msgSend(button, "setTarget:", target); + objj_msgSend(button, "setAction:", action); +} +}), new objj_method(sel_getUid("setCancelButton:"), function $CPSearchField__setCancelButton_(self, _cmd, button) +{ with(self) +{ + _cancelButton = button; +} +}), new objj_method(sel_getUid("cancelButton"), function $CPSearchField__cancelButton(self, _cmd) +{ with(self) +{ + return _cancelButton; +} +}), new objj_method(sel_getUid("resetCancelButton"), function $CPSearchField__resetCancelButton(self, _cmd) +{ with(self) +{ + var button = objj_msgSend(self, "cancelButton"); + objj_msgSend(button, "setBezelStyle:", CPRegularSquareBezelStyle); + objj_msgSend(button, "setBordered:", NO); + objj_msgSend(button, "setImageScaling:", CPScaleToFit); + objj_msgSend(button, "setImage:", CPSearchFieldCancelImage); + objj_msgSend(button, "setAlternateImage:", CPSearchFieldCancelPressedImage); + objj_msgSend(button, "setTarget:", self); + objj_msgSend(button, "setAction:", sel_getUid("_searchFieldCancel:")); +} +}), new objj_method(sel_getUid("searchTextRectForBounds:"), function $CPSearchField__searchTextRectForBounds_(self, _cmd, rect) +{ with(self) +{ + var leftOffset = 0, width = rect.size.width; + if (_searchButton) + { + var searchRect = objj_msgSend(_searchButton, "frame"); + leftOffset = searchRect.origin.x + searchRect.size.width; + } + if (_cancelButton) + { + var cancelRect = objj_msgSend(_cancelButton, "frame"); + width = cancelRect.origin.x - leftOffset; + } + return CPMakeRect(leftOffset,rect.origin.y,width,rect.size.height); +} +}), new objj_method(sel_getUid("searchButtonRectForBounds:"), function $CPSearchField__searchButtonRectForBounds_(self, _cmd, rect) +{ with(self) +{ + return objj_msgSend(_searchButton, "frame"); +} +}), new objj_method(sel_getUid("cancelButtonRectForBounds:"), function $CPSearchField__cancelButtonRectForBounds_(self, _cmd, rect) +{ with(self) +{ + return objj_msgSend(_cancelButton, "frame"); +} +}), new objj_method(sel_getUid("searchMenuTemplate"), function $CPSearchField__searchMenuTemplate(self, _cmd) +{ with(self) +{ + return _searchMenuTemplate; +} +}), new objj_method(sel_getUid("setSearchMenuTemplate:"), function $CPSearchField__setSearchMenuTemplate_(self, _cmd, menu) +{ with(self) +{ + _searchMenuTemplate = menu; + objj_msgSend(self, "resetSearchButton"); + objj_msgSend(self, "_updateSearchMenu"); +} +}), new objj_method(sel_getUid("sendsWholeSearchString"), function $CPSearchField__sendsWholeSearchString(self, _cmd) +{ with(self) +{ + return _sendsWholeSearchString; +} +}), new objj_method(sel_getUid("setSendsWholeSearchString:"), function $CPSearchField__setSendsWholeSearchString_(self, _cmd, flag) +{ with(self) +{ + _sendsWholeSearchString = flag; +} +}), new objj_method(sel_getUid("sendsSearchStringImmediately"), function $CPSearchField__sendsSearchStringImmediately(self, _cmd) +{ with(self) +{ + return _sendsSearchStringImmediately; +} +}), new objj_method(sel_getUid("setSendsSearchStringImmediately:"), function $CPSearchField__setSendsSearchStringImmediately_(self, _cmd, flag) +{ with(self) +{ + _sendsSearchStringImmediately = flag; +} +}), new objj_method(sel_getUid("maximumRecents"), function $CPSearchField__maximumRecents(self, _cmd) +{ with(self) +{ + return _maximumRecents; +} +}), new objj_method(sel_getUid("setMaximumRecents:"), function $CPSearchField__setMaximumRecents_(self, _cmd, max) +{ with(self) +{ + if (max > 254) + max = 254; + else if (max < 0) + max = 10; + _maximumRecents = max; +} +}), new objj_method(sel_getUid("recentSearches"), function $CPSearchField__recentSearches(self, _cmd) +{ with(self) +{ + return _recentSearches; +} +}), new objj_method(sel_getUid("setRecentSearches:"), function $CPSearchField__setRecentSearches_(self, _cmd, searches) +{ with(self) +{ + var max = MIN(objj_msgSend(self, "maximumRecents"),objj_msgSend(searches, "count")); + var searches = objj_msgSend(searches, "subarrayWithRange:", CPMakeRange(0,max)); + _recentSearches = searches; + objj_msgSend(self, "_autosaveRecentSearchList"); +} +}), new objj_method(sel_getUid("recentsAutosaveName"), function $CPSearchField__recentsAutosaveName(self, _cmd) +{ with(self) +{ + return _recentsAutosaveName; +} +}), new objj_method(sel_getUid("setRecentsAutosaveName:"), function $CPSearchField__setRecentsAutosaveName_(self, _cmd, name) +{ with(self) +{ + _recentsAutosaveName = name; + if(name != nil) + objj_msgSend(self, "_registerForAutosaveNotification"); + else + objj_msgSend(self, "_deregisterForAutosaveNotification"); +} +}), new objj_method(sel_getUid("contentRectForBounds:"), function $CPSearchField__contentRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + var superbounds = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "contentRectForBounds:", bounds); + return objj_msgSend(self, "searchTextRectForBounds:", superbounds); +} +}), new objj_method(sel_getUid("menu"), function $CPSearchField__menu(self, _cmd) +{ with(self) +{ + return _searchMenu; +} +}), new objj_method(sel_getUid("isOpaque"), function $CPSearchField__isOpaque(self, _cmd) +{ with(self) +{ + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "isOpaque") && objj_msgSend(_cancelButton, "isOpaque") && objj_msgSend(_searchButton, "isOpaque"); +} +}), new objj_method(sel_getUid("_updateCancelButtonVisibility"), function $CPSearchField___updateCancelButtonVisibility(self, _cmd) +{ with(self) +{ + objj_msgSend(_cancelButton, "setHidden:", (objj_msgSend(objj_msgSend(self, "stringValue"), "length") == 0)); +} +}), new objj_method(sel_getUid("controlTextDidChange:"), function $CPSearchField__controlTextDidChange_(self, _cmd, aNotification) +{ with(self) +{ + if(!_sendsWholeSearchString) + { + if(_sendsSearchStringImmediately) + objj_msgSend(self, "_sendPartialString"); + else + { + objj_msgSend(_partialStringTimer, "invalidate"); + var timeInterval = objj_msgSend(CPSearchField, "_keyboardDelayForPartialSearchString:", objj_msgSend(self, "stringValue")); + _partialStringTimer = objj_msgSend(CPTimer, "scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:", timeInterval, self, sel_getUid("_sendPartialString"), nil, NO); + } + } + objj_msgSend(self, "_updateCancelButtonVisibility"); +} +}), new objj_method(sel_getUid("sendAction:to:"), function $CPSearchField__sendAction_to_(self, _cmd, anAction, anObject) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "sendAction:to:", anAction, anObject); + objj_msgSend(_partialStringTimer, "invalidate"); + var current_value = objj_msgSend(self, "objectValue"); + if(current_value != nil && current_value != "" && !objj_msgSend(_recentSearches, "containsObject:", current_value)) + { + objj_msgSend(self, "_addStringToRecentSearches:", current_value); + objj_msgSend(self, "_updateSearchMenu"); + } + objj_msgSend(self, "_updateCancelButtonVisibility"); +} +}), new objj_method(sel_getUid("_addStringToRecentSearches:"), function $CPSearchField___addStringToRecentSearches_(self, _cmd, string) +{ with(self) +{ + var newSearches = objj_msgSend(CPMutableArray, "arrayWithArray:", _recentSearches); + objj_msgSend(newSearches, "addObject:", string); + objj_msgSend(self, "setRecentSearches:", newSearches); +} +}), new objj_method(sel_getUid("trackMouse:"), function $CPSearchField__trackMouse_(self, _cmd, event) +{ with(self) +{ + var rect; + var point; + var location = objj_msgSend(event, "locationInWindow"); + point = objj_msgSend(self, "convertPoint:fromView:", location, nil); + rect = objj_msgSend(self, "searchButtonRectForBounds:", objj_msgSend(self, "frame")); + if (CPRectContainsPoint(rect,point)) + { + return objj_msgSend(objj_msgSend(self, "searchButton"), "trackMouse:", event); + } + rect = objj_msgSend(self, "cancelButtonRectForBounds:", objj_msgSend(self, "frame")); + if (CPRectContainsPoint(rect,point)) + { + return objj_msgSend(objj_msgSend(self, "cancelButton"), "trackMouse:", event); + } + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "trackMouse:", event); +} +}), new objj_method(sel_getUid("_searchMenuTemplate"), function $CPSearchField___searchMenuTemplate(self, _cmd) +{ with(self) +{ + var template, item; + template = objj_msgSend(objj_msgSend(CPMenu, "alloc"), "init"); + item = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Recent searches", NULL, ""); + objj_msgSend(item, "setTag:", CPSearchFieldRecentsTitleMenuItemTag); + objj_msgSend(item, "setEnabled:", NO); + objj_msgSend(template, "addItem:", item); + item = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Recent search item", sel_getUid("_searchFieldSearch:"), ""); + objj_msgSend(item, "setTag:", CPSearchFieldRecentsMenuItemTag); + objj_msgSend(item, "setTarget:", self); + objj_msgSend(template, "addItem:", item); + item = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "Clear recent searches", sel_getUid("_searchFieldClearRecents:"), ""); + objj_msgSend(item, "setTag:", CPSearchFieldClearRecentsMenuItemTag); + objj_msgSend(item, "setTarget:", self); + objj_msgSend(template, "addItem:", item); + item = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", "No recent searches", NULL, ""); + objj_msgSend(item, "setTag:", CPSearchFieldNoRecentsMenuItemTag); + objj_msgSend(item, "setEnabled:", NO); + objj_msgSend(template, "addItem:", item); + return template; +} +}), new objj_method(sel_getUid("_updateSearchMenu"), function $CPSearchField___updateSearchMenu(self, _cmd) +{ with(self) +{ + if(_searchMenuTemplate == nil) + return; + var i, menu = objj_msgSend(objj_msgSend(CPMenu, "alloc"), "init"); + var countOfRecents = objj_msgSend(_recentSearches, "count"); + for (i = 0; i < objj_msgSend(_searchMenuTemplate, "numberOfItems"); i++) + { + var item = objj_msgSend(_searchMenuTemplate, "itemAtIndex:", i); + var tag = objj_msgSend(item, "tag"); + if(tag == CPSearchFieldClearRecentsMenuItemTag && countOfRecents != 0) + { + var separator = objj_msgSend(CPMenuItem, "separatorItem"); + objj_msgSend(menu, "addItem:", separator); + } + if (!(tag == CPSearchFieldRecentsTitleMenuItemTag && countOfRecents == 0) && + !(tag == CPSearchFieldClearRecentsMenuItemTag && countOfRecents == 0) && + !(tag == CPSearchFieldNoRecentsMenuItemTag && countOfRecents != 0) && + !(tag == CPSearchFieldRecentsMenuItemTag)) + { + var templateItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", objj_msgSend(item, "title"), objj_msgSend(item, "action"), objj_msgSend(item, "keyEquivalent")); + objj_msgSend(templateItem, "setTarget:", objj_msgSend(item, "target")); + objj_msgSend(templateItem, "setEnabled:", objj_msgSend(item, "isEnabled")); + objj_msgSend(templateItem, "setTag:", objj_msgSend(item, "tag")); + objj_msgSend(menu, "addItem:", templateItem); + } + else if (tag == CPSearchFieldRecentsMenuItemTag) + { + var j; + for (j = 0; j < countOfRecents; j++) + { + var rencentItem = objj_msgSend(objj_msgSend(CPMenuItem, "alloc"), "initWithTitle:action:keyEquivalent:", objj_msgSend(_recentSearches, "objectAtIndex:", j), objj_msgSend(item, "action"), objj_msgSend(item, "keyEquivalent")); + objj_msgSend(rencentItem, "setTarget:", objj_msgSend(item, "target")); + objj_msgSend(menu, "addItem:", rencentItem); + } + } + } + _searchMenu = menu; +} +}), new objj_method(sel_getUid("_showMenu:"), function $CPSearchField___showMenu_(self, _cmd, sender) +{ with(self) +{ + if(_searchMenu == nil) + return; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "selectText:", nil); + var origin = CPMakePoint(objj_msgSend(self, "frame").origin.x, objj_msgSend(self, "frame").origin.y + objj_msgSend(self, "frame").size.height); + var anEvent = objj_msgSend(CPEvent, "keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:", CPRightMouseDown, origin, 0, objj_msgSend(CPDate, "date"), 1, objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"), "", "", NO, 0); + objj_msgSend(CPMenu, "popUpContextMenu:withEvent:forView:", _searchMenu, anEvent, sender); +} +}), new objj_method(sel_getUid("_sendPartialString"), function $CPSearchField___sendPartialString(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(self, "target"), "performSelector:withObject:", objj_msgSend(self, "action"), self); +} +}), new objj_method(sel_getUid("_searchFieldCancel:"), function $CPSearchField___searchFieldCancel_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", nil); + objj_msgSend(self, "_sendPartialString"); + objj_msgSend(self, "_updateCancelButtonVisibility"); + objj_msgSend(sender, "setHidden:", YES); +} +}), new objj_method(sel_getUid("_searchFieldSearch:"), function $CPSearchField___searchFieldSearch_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", objj_msgSend(sender, "title")); + objj_msgSend(self, "_sendPartialString"); + objj_msgSend(self, "_updateCancelButtonVisibility"); +} +}), new objj_method(sel_getUid("_searchFieldClearRecents:"), function $CPSearchField___searchFieldClearRecents_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "setRecentSearches:", objj_msgSend(CPArray, "array")); + objj_msgSend(self, "_updateSearchMenu"); + } +}), new objj_method(sel_getUid("_registerForAutosaveNotification"), function $CPSearchField___registerForAutosaveNotification(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", self, sel_getUid("_updateAutosavedRecents:"), "CPAutosavedRecentsChangedNotification", nil); +} +}), new objj_method(sel_getUid("_deregisterForAutosaveNotification"), function $CPSearchField___deregisterForAutosaveNotification(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "removeObserver:name:object:", self, "CPAutosavedRecentsChangedNotification", nil); +} +}), new objj_method(sel_getUid("_updateAutosavedRecents:"), function $CPSearchField___updateAutosavedRecents_(self, _cmd, notification) +{ with(self) +{ + var name = objj_msgSend(notification, "object"); + var list = objj_msgSend(self, "recentSearches"); + objj_msgSend(objj_msgSend(CPUserDefaults, "standardUserDefaults"), "setObject:forKey:", list, name); +} +}), new objj_method(sel_getUid("_autosaveRecentSearchList"), function $CPSearchField___autosaveRecentSearchList(self, _cmd) +{ with(self) +{ + if(_recentsAutosaveName != nil) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", "CPAutosavedRecentsChangedNotification", _recentsAutosaveName); +} +}), new objj_method(sel_getUid("_loadRecentSearchList"), function $CPSearchField___loadRecentSearchList(self, _cmd) +{ with(self) +{ + var list, + name = objj_msgSend(self, "recentsAutosaveName"); + list = objj_msgSend(objj_msgSend(CPUserDefaults, "standardUserDefaults"), "objectForKey:", name); + _recentSearches = list; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPSearchField__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPSearchField, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + CPSearchFieldSearchImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:", objj_msgSend(bundle, "pathForResource:", "CPSearchField/CPSearchFieldSearch.png")); + CPSearchFieldFindImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:", objj_msgSend(bundle, "pathForResource:", "CPSearchField/CPSearchFieldFind.png")); + CPSearchFieldCancelImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:", objj_msgSend(bundle, "pathForResource:", "CPSearchField/CPSearchFieldCancel.png")); + CPSearchFieldCancelPressedImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:", objj_msgSend(bundle, "pathForResource:", "CPSearchField/CPSearchFieldCancelPressed.png")); +} +}), new objj_method(sel_getUid("_keyboardDelayForPartialSearchString:"), function $CPSearchField___keyboardDelayForPartialSearchString_(self, _cmd, string) +{ with(self) +{ + return (6 - MIN(objj_msgSend(string, "length"),4))/10; +} +})]); +} +var CPSearchButtonKey = "CPSearchButtonKey", + CPCancelButtonKey = "CPCancelButtonKey", + CPRecentsAutosaveNameKey = "CPRecentsAutosaveNameKey", + CPSendsWholeSearchStringKey = "CPSendsWholeSearchStringKey", + CPSendsSearchStringImmediatelyKey = "CPSendsSearchStringImmediatelyKey", + CPMaximumRecentsKey = "CPMaximumRecentsKey", + CPSearchMenuTemplateKey = "CPSearchMenuTemplateKey"; +{ +var the_class = objj_getClass("CPSearchField") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPSearchField\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("encodeWithCoder:"), function $CPSearchField__encodeWithCoder_(self, _cmd, coder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "encodeWithCoder:", coder); + objj_msgSend(coder, "encodeObject:forKey:", _searchButton, CPSearchButtonKey); + objj_msgSend(coder, "encodeObject:forKey:", _cancelButton, CPCancelButtonKey); + objj_msgSend(coder, "encodeObject:forKey:", _recentsAutosaveName, CPRecentsAutosaveNameKey); + objj_msgSend(coder, "encodeBool:forKey:", _sendsWholeSearchString, CPSendsWholeSearchStringKey); + objj_msgSend(coder, "encodeBool:forKey:", _sendsSearchStringImmediately, CPSendsSearchStringImmediatelyKey); + objj_msgSend(coder, "encodeInt:forKey:", _maximumRecents, CPMaximumRecentsKey); + objj_msgSend(coder, "encodeObject:forKey:", _searchMenuTemplate, CPSearchMenuTemplateKey); +} +}), new objj_method(sel_getUid("initWithCoder:"), function $CPSearchField__initWithCoder_(self, _cmd, coder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPTextField") }, "initWithCoder:", coder); + _searchButton = objj_msgSend(coder, "decodeObjectForKey:", CPSearchButtonKey); + _searchButton = objj_msgSend(coder, "decodeObjectForKey:", CPCancelButtonKey); + _recentsAutosaveName = objj_msgSend(coder, "decodeObjectForKey:", CPRecentsAutosaveNameKey); + _sendsWholeSearchString = objj_msgSend(coder, "decodeBoolForKey:", CPSendsWholeSearchStringKey); + _sendsSearchStringImmediately = objj_msgSend(coder, "decodeBoolForKey:", CPSendsSearchStringImmediatelyKey); + _maximumRecents = objj_msgSend(coder, "decodeIntForKey:", CPMaximumRecentsKey); + objj_msgSend(self, "setSearchMenuTemplate:", objj_msgSend(coder, "decodeObjectForKey:", CPSearchMenuTemplateKey)); + return self; +} +})]); +} + +p;19;CPSecureTextField.ji;13;CPTextField.jc;388; + + + + +{var the_class = objj_allocateClassPair(CPTextField, "CPSecureTextField"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("isSecure"), function $CPSecureTextField__isSecure(self, _cmd) +{ with(self) +{ + return YES; +} +})]); +} + +p;20;CPSegmentedControl.jI;20;Foundation/CPArray.ji;11;CPControl.jc;28921; +CPSegmentSwitchTrackingSelectOne = 0; +CPSegmentSwitchTrackingSelectAny = 1; +CPSegmentSwitchTrackingMomentary = 2; +{var the_class = objj_allocateClassPair(CPControl, "CPSegmentedControl"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_segments"), new objj_ivar("_themeStates"), new objj_ivar("_selectedSegment"), new objj_ivar("_segmentStyle"), new objj_ivar("_trackingMode"), new objj_ivar("_trackingSegment"), new objj_ivar("_trackingHighlighted")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPSegmentedControl__initWithFrame_(self, _cmd, aRect) +{ with(self) +{ + _segments = []; + _themeStates = []; + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aRect); + if (self) + { + _selectedSegment = -1; + _trackingMode = CPSegmentSwitchTrackingSelectOne; + } + return self; +} +}), new objj_method(sel_getUid("selectedTag"), function $CPSegmentedControl__selectedTag(self, _cmd) +{ with(self) +{ + return _segments[_selectedSegment].tag; +} +}), new objj_method(sel_getUid("setSegmentCount:"), function $CPSegmentedControl__setSegmentCount_(self, _cmd, aCount) +{ with(self) +{ + if (_segments.length == aCount) + return; + var height = CGRectGetHeight(objj_msgSend(self, "bounds")); + if (_segments.length < aCount) + { + for (var index = _segments.length; index < aCount; ++index) + { + _segments[index] = objj_msgSend(objj_msgSend(_CPSegmentItem, "alloc"), "init"); + _themeStates[index] = CPThemeStateNormal; + } + } + else if (aCount < _segments.length) + { + for (var index = aCount; index < _segments.length; ++index) + _segments[index] = nil; + } + if (_selectedSegment < _segments.length) + _selectedSegment = -1; + objj_msgSend(self, "tileWithChangedSegment:", 0); +} +}), new objj_method(sel_getUid("segmentCount"), function $CPSegmentedControl__segmentCount(self, _cmd) +{ with(self) +{ + return _segments.length; +} +}), new objj_method(sel_getUid("setSelectedSegment:"), function $CPSegmentedControl__setSelectedSegment_(self, _cmd, aSegment) +{ with(self) +{ + objj_msgSend(self, "setSelected:forSegment:", YES, aSegment); +} +}), new objj_method(sel_getUid("selectedSegment"), function $CPSegmentedControl__selectedSegment(self, _cmd) +{ with(self) +{ + return _selectedSegment; +} +}), new objj_method(sel_getUid("selectSegmentWithTag:"), function $CPSegmentedControl__selectSegmentWithTag_(self, _cmd, aTag) +{ with(self) +{ + var index = 0; + for (; index < _segments.length; ++index) + if (_segments[index].tag == aTag) + { + objj_msgSend(self, "setSelectedSegment:", index); + return YES; + } + return NO; +} +}), new objj_method(sel_getUid("isTracking"), function $CPSegmentedControl__isTracking(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("setTrackingMode:"), function $CPSegmentedControl__setTrackingMode_(self, _cmd, aTrackingMode) +{ with(self) +{ + if (_trackingMode == aTrackingMode) + return; + _trackingMode = aTrackingMode; + if (_trackingMode == CPSegmentSwitchTrackingSelectOne) + { + var index = 0, + selected = NO; + for (; index < _segments.length; ++index) + if (_segments[index].selected) + if (selected) + objj_msgSend(self, "setSelected:forSegment:", NO, index); + else + selected = YES; + } + else if (_trackingMode == CPSegmentSwitchTrackingMomentary) + { + var index = 0; + for (; index < _segments.length; ++index) + if (_segments[index].selected) + objj_msgSend(self, "setSelected:forSegment:", NO, index); + } +} +}), new objj_method(sel_getUid("trackingMode"), function $CPSegmentedControl__trackingMode(self, _cmd) +{ with(self) +{ + return _trackingMode; +} +}), new objj_method(sel_getUid("setWidth:forSegment:"), function $CPSegmentedControl__setWidth_forSegment_(self, _cmd, aWidth, aSegment) +{ with(self) +{ + _segments[aSegment].width = aWidth; + objj_msgSend(self, "tileWithChangedSegment:", aSegment); +} +}), new objj_method(sel_getUid("widthForSegment:"), function $CPSegmentedControl__widthForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].width; +} +}), new objj_method(sel_getUid("setImage:forSegment:"), function $CPSegmentedControl__setImage_forSegment_(self, _cmd, anImage, aSegment) +{ with(self) +{ + var segment = _segments[aSegment]; + segment.image = anImage; + objj_msgSend(self, "tileWithChangedSegment:", aSegment); +} +}), new objj_method(sel_getUid("imageForSegment:"), function $CPSegmentedControl__imageForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].image; +} +}), new objj_method(sel_getUid("setLabel:forSegment:"), function $CPSegmentedControl__setLabel_forSegment_(self, _cmd, aLabel, aSegment) +{ with(self) +{ + var segment = _segments[aSegment]; + _segments[aSegment].label = aLabel; + objj_msgSend(self, "tileWithChangedSegment:", aSegment); +} +}), new objj_method(sel_getUid("labelForSegment:"), function $CPSegmentedControl__labelForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].label; +} +}), new objj_method(sel_getUid("setMenu:forSegment:"), function $CPSegmentedControl__setMenu_forSegment_(self, _cmd, aMenu, aSegment) +{ with(self) +{ + _segments[aSegment].menu = aMenu; +} +}), new objj_method(sel_getUid("menuForSegment:"), function $CPSegmentedControl__menuForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].menu; +} +}), new objj_method(sel_getUid("setSelected:forSegment:"), function $CPSegmentedControl__setSelected_forSegment_(self, _cmd, isSelected, aSegment) +{ with(self) +{ + var segment = _segments[aSegment]; + if (segment.selected == isSelected) + return; + segment.selected = isSelected; + _themeStates[aSegment] = isSelected ? CPThemeStateSelected : CPThemeStateNormal; + if (isSelected) + { + var oldSelectedSegment = _selectedSegment; + _selectedSegment = aSegment; + if (_trackingMode == CPSegmentSwitchTrackingSelectOne && oldSelectedSegment != aSegment && oldSelectedSegment != -1) + { + _segments[oldSelectedSegment].selected = NO; + _themeStates[oldSelectedSegment] = CPThemeStateNormal; + objj_msgSend(self, "drawSegmentBezel:highlight:", oldSelectedSegment, NO); + } + } + if (_trackingMode != CPSegmentSwitchTrackingMomentary) + objj_msgSend(self, "drawSegmentBezel:highlight:", aSegment, NO); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("isSelectedForSegment:"), function $CPSegmentedControl__isSelectedForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].selected; +} +}), new objj_method(sel_getUid("setEnabled:forSegment:"), function $CPSegmentedControl__setEnabled_forSegment_(self, _cmd, isEnabled, aSegment) +{ with(self) +{ + _segments[aSegment].enabled = isEnabled; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("isEnabledForSegment:"), function $CPSegmentedControl__isEnabledForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].enabled; +} +}), new objj_method(sel_getUid("setTag:forSegment:"), function $CPSegmentedControl__setTag_forSegment_(self, _cmd, aTag, aSegment) +{ with(self) +{ + _segments[aSegment].tag = aTag; +} +}), new objj_method(sel_getUid("tagForSegment:"), function $CPSegmentedControl__tagForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return _segments[aSegment].tag; +} +}), new objj_method(sel_getUid("drawSegmentBezel:highlight:"), function $CPSegmentedControl__drawSegmentBezel_highlight_(self, _cmd, aSegment, shouldHighlight) +{ with(self) +{ + if (shouldHighlight) + _themeStates[aSegment] |= CPThemeStateHighlighted; + else + _themeStates[aSegment] &= ~CPThemeStateHighlighted; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("_leftOffsetForSegment:"), function $CPSegmentedControl___leftOffsetForSegment_(self, _cmd, segment) +{ with(self) +{ + var bezelInset = objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-inset"); + if (segment == 0) + return bezelInset.left; + var thickness = objj_msgSend(self, "currentValueForThemeAttribute:", "divider-thickness"); + return objj_msgSend(self, "_leftOffsetForSegment:", segment - 1) + objj_msgSend(self, "widthForSegment:", segment - 1) + thickness; +} +}), new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPSegmentedControl__rectForEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + var height = objj_msgSend(self, "currentValueForThemeAttribute:", "default-height"), + contentInset = objj_msgSend(self, "currentValueForThemeAttribute:", "content-inset"), + bezelInset = objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-inset"), + bounds = objj_msgSend(self, "bounds"); + if (aName === "left-segment-bezel") + { + return CGRectMake(bezelInset.left, bezelInset.top, contentInset.left, height); + } + else if (aName === "right-segment-bezel") + { + return CGRectMake(CGRectGetMaxX(bounds) - contentInset.right - bezelInset.right, bezelInset.top, contentInset.right, height); + } + else if (aName.substring(0, "segment-bezel".length) == "segment-bezel") + { + var segment = parseInt(aName.substring("segment-bezel-".length), 10), + frame = CGRectCreateCopy(_segments[segment].frame); + if (segment == 0) + { + frame.origin.x += contentInset.left; + frame.size.width -= contentInset.left; + } + if (segment == _segments.length - 1) + frame.size.width -= contentInset.right; + return frame; + } + else if (aName.substring(0, "divider-bezel".length) == "divider-bezel") + { + var segment = parseInt(aName.substring("divider-bezel-".length), 10), + width = objj_msgSend(self, "widthForSegment:", segment), + left = objj_msgSend(self, "_leftOffsetForSegment:", segment), + thickness = objj_msgSend(self, "currentValueForThemeAttribute:", "divider-thickness"); + return CGRectMake(left + width, bezelInset.top, thickness, height); + } + else if (aName.substring(0, "segment-content".length) == "segment-content") + { + var segment = parseInt(aName.substring("segment-content-".length), 10); + return objj_msgSend(self, "contentFrameForSegment:", segment); + } + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "rectForEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPSegmentedControl__createEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName.substring(0, "segment-content".length) == "segment-content") + return objj_msgSend(objj_msgSend(_CPImageAndTextView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + return objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPSegmentedControl__layoutSubviews(self, _cmd) +{ with(self) +{ + var leftCapColor = objj_msgSend(self, "valueForThemeAttribute:inState:", "left-segment-bezel-color", _themeStates[0]); + var leftBezelView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "left-segment-bezel", CPWindowBelow, nil); + objj_msgSend(leftBezelView, "setBackgroundColor:", leftCapColor); + var rightCapColor = objj_msgSend(self, "valueForThemeAttribute:inState:", "right-segment-bezel-color", _themeStates[_themeStates.length - 1]); + var rightBezelView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "right-segment-bezel", CPWindowBelow, nil); + objj_msgSend(rightBezelView, "setBackgroundColor:", rightCapColor); + for (var i=0, count = _themeStates.length; i= _segments.length) + return; + var segment = _segments[aSegment], + segmentWidth = segment.width, + themeState = _themeStates[aSegment] | (_themeState & CPThemeStateDisabled), + contentInset = objj_msgSend(self, "valueForThemeAttribute:inState:", "content-inset", themeState), + font = objj_msgSend(self, "valueForThemeAttribute:inState:", "font", themeState); + if (!segmentWidth) + { + if (segment.image && segment.label) + segmentWidth = objj_msgSend(segment.label, "sizeWithFont:", font).width + objj_msgSend(segment.image, "size").width + contentInset.left + contentInset.right; + else if (segment.image) + segmentWidth = objj_msgSend(segment.image, "size").width + contentInset.left + contentInset.right; + else if (segment.label) + segmentWidth = objj_msgSend(segment.label, "sizeWithFont:", font).width + contentInset.left + contentInset.right; + else + segmentWidth = 0.0; + } + var delta = segmentWidth - CGRectGetWidth(segment.frame); + if (!delta) + return; + var frame = objj_msgSend(self, "frame"); + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(frame) + delta, CGRectGetHeight(frame))); + segment.width = segmentWidth; + segment.frame = objj_msgSend(self, "frameForSegment:", aSegment);; + var index = aSegment + 1; + for (; index < _segments.length; ++index) + { + _segments[index].frame.origin.x += delta; + objj_msgSend(self, "drawSegmentBezel:highlight:", index, NO); + objj_msgSend(self, "drawSegment:highlight:", index, NO); + } + objj_msgSend(self, "drawSegmentBezel:highlight:", aSegment, NO); + objj_msgSend(self, "drawSegment:highlight:", aSegment, NO); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("frameForSegment:"), function $CPSegmentedControl__frameForSegment_(self, _cmd, aSegment) +{ with(self) +{ + return objj_msgSend(self, "bezelFrameForSegment:", aSegment); +} +}), new objj_method(sel_getUid("bezelFrameForSegment:"), function $CPSegmentedControl__bezelFrameForSegment_(self, _cmd, aSegment) +{ with(self) +{ + var height = objj_msgSend(self, "currentValueForThemeAttribute:", "default-height"), + bezelInset = objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-inset"), + width = objj_msgSend(self, "widthForSegment:", aSegment), + left = objj_msgSend(self, "_leftOffsetForSegment:", aSegment); + return CGRectMake(left, bezelInset.top, width, height); +} +}), new objj_method(sel_getUid("contentFrameForSegment:"), function $CPSegmentedControl__contentFrameForSegment_(self, _cmd, aSegment) +{ with(self) +{ + var height = objj_msgSend(self, "currentValueForThemeAttribute:", "default-height"), + contentInset = objj_msgSend(self, "currentValueForThemeAttribute:", "content-inset"), + width = objj_msgSend(self, "widthForSegment:", aSegment), + left = objj_msgSend(self, "_leftOffsetForSegment:", aSegment); + return CGRectMake(left + contentInset.left, contentInset.top, width - contentInset.left - contentInset.right, height - contentInset.top - contentInset.bottom); +} +}), new objj_method(sel_getUid("testSegment:"), function $CPSegmentedControl__testSegment_(self, _cmd, aPoint) +{ with(self) +{ + var location = objj_msgSend(self, "convertPoint:fromView:", aPoint, nil), + count = _segments.length; + while (count--) + if (CGRectContainsPoint(_segments[count].frame, aPoint)) + return count; + return -1; +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPSegmentedControl__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (!objj_msgSend(self, "isEnabled")) + return; + objj_msgSend(self, "trackSegment:", anEvent); +} +}), new objj_method(sel_getUid("mouseUp:"), function $CPSegmentedControl__mouseUp_(self, _cmd, anEvent) +{ with(self) +{ +} +}), new objj_method(sel_getUid("trackSegment:"), function $CPSegmentedControl__trackSegment_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"), + location = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + if (type == CPLeftMouseUp) + { + if (_trackingSegment == -1) + return; + if (CGRectContainsPoint(_segments[_trackingSegment].frame, location)) + { + if (_trackingMode == CPSegmentSwitchTrackingSelectAny) + { + objj_msgSend(self, "setSelected:forSegment:", !objj_msgSend(self, "isSelectedForSegment:", _trackingSegment), _trackingSegment); + _selectedSegment = _trackingSegment; + } + else + objj_msgSend(self, "setSelected:forSegment:", YES, _trackingSegment); + objj_msgSend(self, "sendAction:to:", objj_msgSend(self, "action"), objj_msgSend(self, "target")); + if (_trackingMode == CPSegmentSwitchTrackingMomentary) + { + objj_msgSend(self, "setSelected:forSegment:", NO, _trackingSegment); + _selectedSegment = -1; + } + } + objj_msgSend(self, "drawSegmentBezel:highlight:", _trackingSegment, NO); + _trackingSegment = -1; + return; + } + if (type == CPLeftMouseDown) + { + _trackingHighlighted = YES; + _trackingSegment = objj_msgSend(self, "testSegment:", location); + objj_msgSend(self, "drawSegmentBezel:highlight:", _trackingSegment, YES); + } + else if (type == CPLeftMouseDragged) + { + if (_trackingSegment == -1) + return; + var highlighted = CGRectContainsPoint(_segments[_trackingSegment].frame, location); + if (highlighted != _trackingHighlighted) + { + _trackingHighlighted = highlighted; + objj_msgSend(self, "drawSegmentBezel:highlight:", _trackingSegment, _trackingHighlighted); + } + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackSegment:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("setFont:"), function $CPSegmentedControl__setFont_(self, _cmd, aFont) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setFont:", aFont); + objj_msgSend(self, "tileWithChangedSegment:", 0); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeClass"), function $CPSegmentedControl__themeClass(self, _cmd) +{ with(self) +{ + return "segmented-control"; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPSegmentedControl__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [CPCenterTextAlignment, CPCenterVerticalTextAlignment, CPImageLeft, CPScaleNone, { top:(0), right:(0), bottom:(0), left:(0) }, { top:(0), right:(0), bottom:(0), left:(0) }, nil, nil, nil, nil, 1.0, 24.0], ["alignment", "vertical-alignment", "image-position", "image-scaling", "bezel-inset", "content-inset", "left-segment-bezel-color", "right-segment-bezel-color", "center-segment-bezel-color", "divider-bezel-color", "divider-thickness", "default-height"]); +} +})]); +} +var CPSegmentedControlSegmentsKey = "CPSegmentedControlSegmentsKey", + CPSegmentedControlSelectedKey = "CPSegmentedControlSelectedKey", + CPSegmentedControlSegmentStyleKey = "CPSegmentedControlSegmentStyleKey", + CPSegmentedControlTrackingModeKey = "CPSegmentedControlTrackingModeKey"; +{ +var the_class = objj_getClass("CPSegmentedControl") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPSegmentedControl\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPSegmentedControl__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder); + if (self) + { + var frame = objj_msgSend(self, "frame"), + originalWidth = frame.size.width; + frame.size.width = 0; + objj_msgSend(self, "setFrame:", frame); + _segments = objj_msgSend(aCoder, "decodeObjectForKey:", CPSegmentedControlSegmentsKey); + _segmentStyle = objj_msgSend(aCoder, "decodeIntForKey:", CPSegmentedControlSegmentStyleKey); + _themeStates = []; + if (objj_msgSend(aCoder, "containsValueForKey:", CPSegmentedControlSelectedKey)) + _selectedSegment = objj_msgSend(aCoder, "decodeIntForKey:", CPSegmentedControlSelectedKey); + else + _selectedSegment = -1; + if (objj_msgSend(aCoder, "containsValueForKey:", CPSegmentedControlTrackingModeKey)) + _trackingMode = objj_msgSend(aCoder, "decodeIntForKey:", CPSegmentedControlTrackingModeKey); + else + _trackingMode = CPSegmentSwitchTrackingSelectOne; + for (var i = 0; i < _segments.length; i++) + { + _themeStates[i] = _segments[i].selected ? CPThemeStateSelected : CPThemeStateNormal; + objj_msgSend(self, "tileWithChangedSegment:", i); + } + var difference = MAX(originalWidth - objj_msgSend(self, "frame").size.width, 0.0), + remainingWidth = FLOOR(difference / _segments.length); + for (var i=0; i < _segments.length; i++) + objj_msgSend(self, "setWidth:forSegment:", _segments[i].width + remainingWidth, i); + objj_msgSend(self, "tileWithChangedSegment:", 0); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPSegmentedControl__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _segments, CPSegmentedControlSegmentsKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _selectedSegment, CPSegmentedControlSelectedKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _segmentStyle, CPSegmentedControlSegmentStyleKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _trackingMode, CPSegmentedControlTrackingModeKey); +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "_CPSegmentItem"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("image"), new objj_ivar("label"), new objj_ivar("menu"), new objj_ivar("selected"), new objj_ivar("enabled"), new objj_ivar("tag"), new objj_ivar("width"), new objj_ivar("frame")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $_CPSegmentItem__init(self, _cmd) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init")) + { + image = nil; + label = ""; + menu = nil; + selected = NO; + enabled = NO; + tag = 0; + width = 0; + frame = CGRectMakeZero(); + } + return self; +} +})]); +} +var CPSegmentItemImageKey = "CPSegmentItemImageKey", + CPSegmentItemLabelKey = "CPSegmentItemLabelKey", + CPSegmentItemMenuKey = "CPSegmentItemMenuKey", + CPSegmentItemSelectedKey = "CPSegmentItemSelectedKey", + CPSegmentItemEnabledKey = "CPSegmentItemEnabledKey", + CPSegmentItemTagKey = "CPSegmentItemTagKey", + CPSegmentItemWidthKey = "CPSegmentItemWidthKey"; +{ +var the_class = objj_getClass("_CPSegmentItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPSegmentItem\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPSegmentItem__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + image = objj_msgSend(aCoder, "decodeObjectForKey:", CPSegmentItemImageKey); + label = objj_msgSend(aCoder, "decodeObjectForKey:", CPSegmentItemLabelKey); + menu = objj_msgSend(aCoder, "decodeObjectForKey:", CPSegmentItemMenuKey); + selected = objj_msgSend(aCoder, "decodeBoolForKey:", CPSegmentItemSelectedKey); + enabled = objj_msgSend(aCoder, "decodeBoolForKey:", CPSegmentItemEnabledKey); + tag = objj_msgSend(aCoder, "decodeIntForKey:", CPSegmentItemTagKey); + width = objj_msgSend(aCoder, "decodeFloatForKey:", CPSegmentItemWidthKey); + frame = CGRectMakeZero(); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPSegmentItem__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", image, CPSegmentItemImageKey); + objj_msgSend(aCoder, "encodeObject:forKey:", label, CPSegmentItemLabelKey); + objj_msgSend(aCoder, "encodeObject:forKey:", menu, CPSegmentItemMenuKey); + objj_msgSend(aCoder, "encodeBool:forKey:", selected, CPSegmentItemSelectedKey); + objj_msgSend(aCoder, "encodeBool:forKey:", enabled, CPSegmentItemEnabledKey); + objj_msgSend(aCoder, "encodeInt:forKey:", tag, CPSegmentItemTagKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", width, CPSegmentItemWidthKey); +} +})]); +} + +p;10;CPShadow.jI;21;Foundation/CPObject.jc;1833; +{var the_class = objj_allocateClassPair(CPObject, "CPShadow"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_offset"), new objj_ivar("_blurRadius"), new objj_ivar("_color"), new objj_ivar("_cssString")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("_initWithOffset:blurRadius:color:"), function $CPShadow___initWithOffset_blurRadius_color_(self, _cmd, anOffset, aBlurRadius, aColor) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _offset = anOffset; + _blurRadius = aBlurRadius; + _color = aColor; + _cssString = objj_msgSend(_color, "cssString") + " " + Math.round(anOffset.width) + "px " + Math.round(anOffset.height) + "px " + Math.round(_blurRadius) + "px"; + } + return self; +} +}), new objj_method(sel_getUid("shadowOffset"), function $CPShadow__shadowOffset(self, _cmd) +{ with(self) +{ + return _offset; +} +}), new objj_method(sel_getUid("shadowBlurRadius"), function $CPShadow__shadowBlurRadius(self, _cmd) +{ with(self) +{ + return _blurRadius; +} +}), new objj_method(sel_getUid("shadowColor"), function $CPShadow__shadowColor(self, _cmd) +{ with(self) +{ + return _color; +} +}), new objj_method(sel_getUid("cssString"), function $CPShadow__cssString(self, _cmd) +{ with(self) +{ + return _cssString; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("shadowWithOffset:blurRadius:color:"), function $CPShadow__shadowWithOffset_blurRadius_color_(self, _cmd, anOffset, aBlurRadius, aColor) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPShadow, "alloc"), "_initWithOffset:blurRadius:color:", anOffset, aBlurRadius, aColor); +} +})]); +} + +p;14;CPShadowView.jI;21;Foundation/CPBundle.ji;12;CGGeometry.ji;9;CPImage.ji;13;CPImageView.ji;8;CPView.jc;7793; +CPLightShadow = 0; +CPHeavyShadow = 1; +var CPShadowViewLightBackgroundColor = nil, + CPShadowViewHeavyBackgroundColor = nil; +var LIGHT_LEFT_INSET = 3.0, + LIGHT_RIGHT_INSET = 3.0, + LIGHT_TOP_INSET = 3.0, + LIGHT_BOTTOM_INSET = 5.0, + HEAVY_LEFT_INSET = 7.0, + HEAVY_RIGHT_INSET = 7.0, + HEAVY_TOP_INSET = 5.0, + HEAVY_BOTTOM_INSET = 5.0; +{var the_class = objj_allocateClassPair(CPView, "CPShadowView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_weight")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPShadowView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _weight = CPLightShadow; + objj_msgSend(self, "setBackgroundColor:", CPShadowViewLightBackgroundColor); + objj_msgSend(self, "setHitTests:", NO); + } + return self; +} +}), new objj_method(sel_getUid("setWeight:"), function $CPShadowView__setWeight_(self, _cmd, aWeight) +{ with(self) +{ + if (_weight == aWeight) + return; + _weight = aWeight; + if (_weight == CPLightShadow) + objj_msgSend(self, "setBackgroundColor:", CPShadowViewLightBackgroundColor); + else + objj_msgSend(self, "setBackgroundColor:", CPShadowViewHeavyBackgroundColor); +} +}), new objj_method(sel_getUid("leftInset"), function $CPShadowView__leftInset(self, _cmd) +{ with(self) +{ + return _weight == CPLightShadow ? LIGHT_LEFT_INSET : HEAVY_LEFT_INSET; +} +}), new objj_method(sel_getUid("rightInset"), function $CPShadowView__rightInset(self, _cmd) +{ with(self) +{ + return _weight == CPLightShadow ? LIGHT_RIGHT_INSET : HEAVY_RIGHT_INSET; +} +}), new objj_method(sel_getUid("topInset"), function $CPShadowView__topInset(self, _cmd) +{ with(self) +{ + return _weight == CPLightShadow ? LIGHT_TOP_INSET : HEAVY_TOP_INSET; +} +}), new objj_method(sel_getUid("bottomInset"), function $CPShadowView__bottomInset(self, _cmd) +{ with(self) +{ + return _weight == CPLightShadow ? LIGHT_BOTTOM_INSET : HEAVY_BOTTOM_INSET; +} +}), new objj_method(sel_getUid("horizontalInset"), function $CPShadowView__horizontalInset(self, _cmd) +{ with(self) +{ + if (_weight == CPLightShadow) + return LIGHT_LEFT_INSET + LIGHT_RIGHT_INSET; + return HEAVY_LEFT_INSET + HEAVY_RIGHT_INSET; +} +}), new objj_method(sel_getUid("verticalInset"), function $CPShadowView__verticalInset(self, _cmd) +{ with(self) +{ + if (_weight == CPLightShadow) + return LIGHT_TOP_INSET + LIGHT_BOTTOM_INSET; + return HEAVY_TOP_INSET + HEAVY_BOTTOM_INSET; +} +}), new objj_method(sel_getUid("frameForContentFrame:"), function $CPShadowView__frameForContentFrame_(self, _cmd, aFrame) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "class"), "frameForContentFrame:withWeight:", aFrame, _weight); +} +}), new objj_method(sel_getUid("setFrameForContentFrame:"), function $CPShadowView__setFrameForContentFrame_(self, _cmd, aFrame) +{ with(self) +{ + objj_msgSend(self, "setFrame:", objj_msgSend(self, "frameForContentFrame:", aFrame)); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPShadowView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPShadowView, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(self, "class")); + CPShadowViewLightBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightTopLeft.png"), CGSizeMake(9.0, 9.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightTop.png"), CGSizeMake(1.0, 9.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightTopRight.png"), CGSizeMake(9.0, 9.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightLeft.png"), CGSizeMake(9.0, 1.0)), + nil, + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightRight.png"), CGSizeMake(9.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightBottomLeft.png"), CGSizeMake(9.0, 9.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightBottom.png"), CGSizeMake(1.0, 9.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewLightBottomRight.png"), CGSizeMake(9.0, 9.0)) + ])); + CPShadowViewHeavyBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyTopLeft.png"), CGSizeMake(17.0, 17.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyTop.png"), CGSizeMake(1.0, 17.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyTopRight.png"), CGSizeMake(17.0, 17.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyLeft.png"), CGSizeMake(17.0, 1.0)), + nil, + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyRight.png"), CGSizeMake(17.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyBottomLeft.png"), CGSizeMake(17.0, 17.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyBottom.png"), CGSizeMake(1.0, 17.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPShadowView/CPShadowViewHeavyBottomRight.png"), CGSizeMake(17.0, 17.0)) + ])); +} +}), new objj_method(sel_getUid("frameForContentFrame:withWeight:"), function $CPShadowView__frameForContentFrame_withWeight_(self, _cmd, aFrame, aWeight) +{ with(self) +{ + if (aWeight == CPLightShadow) + return CGRectMake((aFrame.origin.x) - LIGHT_LEFT_INSET, (aFrame.origin.y) - LIGHT_TOP_INSET, (aFrame.size.width) + LIGHT_LEFT_INSET + LIGHT_RIGHT_INSET, (aFrame.size.height) + LIGHT_TOP_INSET + LIGHT_BOTTOM_INSET); + else + return CGRectMake((aFrame.origin.x) - HEAVY_LEFT_INSET, (aFrame.origin.y) - HEAVY_TOP_INSET, (aFrame.size.width) + HEAVY_LEFT_INSET + HEAVY_RIGHT_INSET, (aFrame.size.height) + HEAVY_TOP_INSET + HEAVY_BOTTOM_INSET); +} +})]); +} + +p;10;CPSlider.ji;11;CPControl.jc;15669; +CPLinearSlider = 0; +CPCircularSlider = 1; +{var the_class = objj_allocateClassPair(CPControl, "CPSlider"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_minValue"), new objj_ivar("_maxValue"), new objj_ivar("_altIncrementValue"), new objj_ivar("_isVertical")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPSlider__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + _minValue = 0.0; + _maxValue = 100.0; + objj_msgSend(self, "setObjectValue:", 50.0); + objj_msgSend(self, "setContinuous:", YES); + objj_msgSend(self, "_recalculateIsVertical"); + } + return self; +} +}), new objj_method(sel_getUid("setMinValue:"), function $CPSlider__setMinValue_(self, _cmd, aMinimumValue) +{ with(self) +{ + if (_minValue === aMinimumValue) + return; + _minValue = aMinimumValue; + var doubleValue = objj_msgSend(self, "doubleValue"); + if (doubleValue < _minValue) + objj_msgSend(self, "setDoubleValue:", _minValue); +} +}), new objj_method(sel_getUid("minValue"), function $CPSlider__minValue(self, _cmd) +{ with(self) +{ + return _minValue; +} +}), new objj_method(sel_getUid("setMaxValue:"), function $CPSlider__setMaxValue_(self, _cmd, aMaximumValue) +{ with(self) +{ + if (_maxValue === aMaximumValue) + return; + _maxValue = aMaximumValue; + var doubleValue = objj_msgSend(self, "doubleValue"); + if (doubleValue > _maxValue) + objj_msgSend(self, "setDoubleValue:", _maxValue); +} +}), new objj_method(sel_getUid("maxValue"), function $CPSlider__maxValue(self, _cmd) +{ with(self) +{ + return _maxValue; +} +}), new objj_method(sel_getUid("setObjectValue:"), function $CPSlider__setObjectValue_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setObjectValue:", MIN(MAX(aValue, _minValue), _maxValue)); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("setSliderType:"), function $CPSlider__setSliderType_(self, _cmd, aSliderType) +{ with(self) +{ + if (aSliderType === CPCircularSlider) + objj_msgSend(self, "setThemeState:", CPThemeStateCircular); + else + objj_msgSend(self, "unsetThemeState:", CPThemeStateCircular); +} +}), new objj_method(sel_getUid("sliderType"), function $CPSlider__sliderType(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "hasThemeState:", CPThemeStateCircular) ? CPCircularSlider : CPLinearSlider; +} +}), new objj_method(sel_getUid("trackRectForBounds:"), function $CPSlider__trackRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + if (objj_msgSend(self, "hasThemeState:", CPThemeStateCircular)) + { + var originalBounds = CGRectCreateCopy(bounds); + bounds.size.width = MIN(bounds.size.width, bounds.size.height); + bounds.size.height = bounds.size.width; + if (bounds.size.width < originalBounds.size.width) + bounds.origin.x += (originalBounds.size.width - bounds.size.width) / 2.0; + else + bounds.origin.y += (originalBounds.size.height - bounds.size.height) / 2.0; + } + else + { + var trackWidth = objj_msgSend(self, "currentValueForThemeAttribute:", "track-width"); + if (trackWidth <= 0) + return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + if (objj_msgSend(self, "isVertical")) + { + bounds.origin.x = ((bounds.size.width) - trackWidth) / 2.0; + bounds.size.width = trackWidth; + } + else + { + bounds.origin.y = ((bounds.size.height) - trackWidth) / 2.0; + bounds.size.height = trackWidth; + } + } + return bounds; +} +}), new objj_method(sel_getUid("knobRectForBounds:"), function $CPSlider__knobRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + var knobSize = objj_msgSend(self, "currentValueForThemeAttribute:", "knob-size"); + if (knobSize.width <= 0 || knobSize.height <= 0) + return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + var knobRect = { origin: { x:0.0, y:0.0 }, size: { width:knobSize.width, height:knobSize.height } }, + trackRect = objj_msgSend(self, "trackRectForBounds:", bounds); + if (!trackRect || (trackRect.size.width <= 0.0 || trackRect.size.height <= 0.0)) + trackRect = bounds; + if (objj_msgSend(self, "hasThemeState:", CPThemeStateCircular)) + { + var angle = 3*PI_2 - (1.0 - objj_msgSend(self, "doubleValue") - _minValue) / (_maxValue - _minValue) * PI2, + radius = CGRectGetWidth(trackRect) / 2.0 - 8.0; + knobRect.origin.x = radius * COS(angle) + CGRectGetMidX(trackRect) - 3.0; + knobRect.origin.y = radius * SIN(angle) + CGRectGetMidY(trackRect) - 2.0; + } + else if (objj_msgSend(self, "isVertical")) + { + knobRect.origin.x = (trackRect.origin.x + (trackRect.size.width) / 2.0) - knobSize.width / 2.0; + knobRect.origin.y = ((objj_msgSend(self, "doubleValue") - _minValue) / (_maxValue - _minValue)) * ((trackRect.size.height) - knobSize.height); + } + else + { + knobRect.origin.x = ((objj_msgSend(self, "doubleValue") - _minValue) / (_maxValue - _minValue)) * ((trackRect.size.width) - knobSize.width); + knobRect.origin.y = (trackRect.origin.y + (trackRect.size.height) / 2.0) - knobSize.height / 2.0; + } + return knobRect; +} +}), new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPSlider__rectForEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "track-view") + return objj_msgSend(self, "trackRectForBounds:", objj_msgSend(self, "bounds")); + else if (aName === "knob-view") + return objj_msgSend(self, "knobRectForBounds:", objj_msgSend(self, "bounds")); + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "rectForEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPSlider__createEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "track-view" || aName === "knob-view") + { + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "init"); + objj_msgSend(view, "setHitTests:", NO); + return view; + } + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "createEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("setAltIncrementValue:"), function $CPSlider__setAltIncrementValue_(self, _cmd, anAltIncrementValue) +{ with(self) +{ + _altIncrementValue = anAltIncrementValue; +} +}), new objj_method(sel_getUid("altIncrementValue"), function $CPSlider__altIncrementValue(self, _cmd) +{ with(self) +{ + return _altIncrementValue; +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPSlider__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setFrameSize:", aSize); + objj_msgSend(self, "_recalculateIsVertical"); +} +}), new objj_method(sel_getUid("_recalculateIsVertical"), function $CPSlider___recalculateIsVertical(self, _cmd) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + width = (bounds.size.width), + height = (bounds.size.height); + _isVertical = width < height ? 1 : (width > height ? 0 : -1); + if (_isVertical === 1) + objj_msgSend(self, "setThemeState:", CPThemeStateVertical); + else if (_isVertical === 0) + objj_msgSend(self, "unsetThemeState:", CPThemeStateVertical); +} +}), new objj_method(sel_getUid("isVertical"), function $CPSlider__isVertical(self, _cmd) +{ with(self) +{ + return _isVertical; +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPSlider__layoutSubviews(self, _cmd) +{ with(self) +{ + var trackView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "track-view", CPWindowBelow, "knob-view"); + if (trackView) + objj_msgSend(trackView, "setBackgroundColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "track-color")); + var knobView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "knob-view", CPWindowAbove, "track-view"); + if (knobView) + objj_msgSend(knobView, "setBackgroundColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "knob-color")); +} +}), new objj_method(sel_getUid("tracksMouseOutsideOfFrame"), function $CPSlider__tracksMouseOutsideOfFrame(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("_valueAtPoint:"), function $CPSlider___valueAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + knobRect = objj_msgSend(self, "knobRectForBounds:", bounds), + trackRect = objj_msgSend(self, "trackRectForBounds:", bounds); + if (objj_msgSend(self, "hasThemeState:", CPThemeStateCircular)) + { + var knobWidth = (knobRect.size.width); + trackRect.origin.x += knobWidth / 2; + trackRect.size.width -= knobWidth; + var minValue = objj_msgSend(self, "minValue"), + dx = aPoint.x - (trackRect.origin.x + (trackRect.size.width) / 2.0), + dy = aPoint.y - (trackRect.origin.y + (trackRect.size.height) / 2.0); + return MAX(0.0, MIN(1.0, 1.0 - (3 * PI_2 - ATAN2(dy, dx)) % PI2 / PI2)) * (objj_msgSend(self, "maxValue") - minValue) + minValue; + } + else if (objj_msgSend(self, "isVertical")) + { + var knobHeight = (knobRect.size.height); + trackRect.origin.y += knobHeight / 2; + trackRect.size.height -= knobHeight; + var minValue = objj_msgSend(self, "minValue"); + return MAX(0.0, MIN(1.0, (aPoint.y - (trackRect.origin.y)) / (trackRect.size.height))) * (objj_msgSend(self, "maxValue") - minValue) + minValue; + } + else + { + var knobWidth = (knobRect.size.width); + trackRect.origin.x += knobWidth / 2; + trackRect.size.width -= knobWidth; + var minValue = objj_msgSend(self, "minValue"); + return MAX(0.0, MIN(1.0, (aPoint.x - (trackRect.origin.x)) / (trackRect.size.width))) * (objj_msgSend(self, "maxValue") - minValue) + minValue; + } +} +}), new objj_method(sel_getUid("startTrackingAt:"), function $CPSlider__startTrackingAt_(self, _cmd, aPoint) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"), + knobRect = objj_msgSend(self, "knobRectForBounds:", { origin: { x:bounds.origin.x, y:bounds.origin.y }, size: { width:bounds.size.width, height:bounds.size.height } }); + if ((aPoint.x >= (knobRect.origin.x) && aPoint.y >= (knobRect.origin.y) && aPoint.x < (knobRect.origin.x + knobRect.size.width) && aPoint.y < (knobRect.origin.y + knobRect.size.height))) + _dragOffset = { width:(knobRect.origin.x + (knobRect.size.width) / 2.0) - aPoint.x, height:(knobRect.origin.y + (knobRect.size.height) / 2.0) - aPoint.y }; + else + { + var trackRect = objj_msgSend(self, "trackRectForBounds:", bounds); + if (trackRect && (aPoint.x >= (trackRect.origin.x) && aPoint.y >= (trackRect.origin.y) && aPoint.x < (trackRect.origin.x + trackRect.size.width) && aPoint.y < (trackRect.origin.y + trackRect.size.height))) + { + _dragOffset = { width:0.0, height:0.0 }; + objj_msgSend(self, "setObjectValue:", objj_msgSend(self, "_valueAtPoint:", aPoint)); + } + else + return NO; + } + objj_msgSend(self, "setHighlighted:", YES); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + return YES; +} +}), new objj_method(sel_getUid("continueTracking:at:"), function $CPSlider__continueTracking_at_(self, _cmd, lastPoint, aPoint) +{ with(self) +{ + objj_msgSend(self, "setObjectValue:", objj_msgSend(self, "_valueAtPoint:", { x:aPoint.x + _dragOffset.width, y:aPoint.y + _dragOffset.height })); + return YES; +} +}), new objj_method(sel_getUid("stopTracking:at:mouseIsUp:"), function $CPSlider__stopTracking_at_mouseIsUp_(self, _cmd, lastPoint, aPoint, mouseIsUp) +{ with(self) +{ + objj_msgSend(self, "setHighlighted:", NO); + if (objj_msgSend(_target, "respondsToSelector:", sel_getUid("sliderDidFinish:"))) + objj_msgSend(_target, "sliderDidFinish:", self); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("setContinuous:"), function $CPSlider__setContinuous_(self, _cmd, flag) +{ with(self) +{ + if (flag) + _sendActionOn |= CPLeftMouseDraggedMask; + else + _sendActionOn &= ~CPLeftMouseDraggedMask; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeClass"), function $CPSlider__themeClass(self, _cmd) +{ with(self) +{ + return "slider"; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPSlider__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [nil, { width:0.0, height:0.0 }, 0.0, nil], ["knob-color", "knob-size", "track-width", "track-color"]); +} +})]); +} +var CPSliderMinValueKey = "CPSliderMinValueKey", + CPSliderMaxValueKey = "CPSliderMaxValueKey", + CPSliderAltIncrValueKey = "CPSliderAltIncrValueKey"; +{ +var the_class = objj_getClass("CPSlider") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPSlider\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPSlider__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + _minValue = objj_msgSend(aCoder, "decodeDoubleForKey:", CPSliderMinValueKey); + _maxValue = objj_msgSend(aCoder, "decodeDoubleForKey:", CPSliderMaxValueKey); + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder); + if (self) + { + _altIncrementValue = objj_msgSend(aCoder, "decodeDoubleForKey:", CPSliderAltIncrValueKey); + objj_msgSend(self, "setContinuous:", YES); + objj_msgSend(self, "_recalculateIsVertical"); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPSlider__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeDouble:forKey:", _minValue, CPSliderMinValueKey); + objj_msgSend(aCoder, "encodeDouble:forKey:", _maxValue, CPSliderMaxValueKey); + objj_msgSend(aCoder, "encodeDouble:forKey:", _altIncrementValue, CPSliderAltIncrValueKey); +} +})]); +} +{ +var the_class = objj_getClass("CPSlider") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPSlider\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("value"), function $CPSlider__value(self, _cmd) +{ with(self) +{ + CPLog.warn("[CPSlider value] is deprecated, use doubleValue or objectValue instead."); + return objj_msgSend(self, "doubleValue"); +} +}), new objj_method(sel_getUid("setValue:"), function $CPSlider__setValue_(self, _cmd, aValue) +{ with(self) +{ + CPLog.warn("[CPSlider setValue:] is deprecated, use setDoubleValue: or setObjectValue: instead."); + objj_msgSend(self, "setObjectValue:", aValue); +} +})]); +} + +p;21;CPSliderColorPicker.ji;15;CPColorPicker.jc;17294; +{var the_class = objj_allocateClassPair(CPColorPicker, "CPSliderColorPicker"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_contentView"), new objj_ivar("_redSlider"), new objj_ivar("_greenSlider"), new objj_ivar("_blueSlider"), new objj_ivar("_hueSlider"), new objj_ivar("_saturationSlider"), new objj_ivar("_brightnessSlider"), new objj_ivar("_rgbLabel"), new objj_ivar("_hsbLabel"), new objj_ivar("_redLabel"), new objj_ivar("_greenLabel"), new objj_ivar("_blueLabel"), new objj_ivar("_hueLabel"), new objj_ivar("_saturationLabel"), new objj_ivar("_brightnessLabel"), new objj_ivar("_hexLabel"), new objj_ivar("_redValue"), new objj_ivar("_greenValue"), new objj_ivar("_blueValue"), new objj_ivar("_hueValue"), new objj_ivar("_saturationValue"), new objj_ivar("_brightnessValue"), new objj_ivar("_hexValue")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithPickerMask:colorPanel:"), function $CPSliderColorPicker__initWithPickerMask_colorPanel_(self, _cmd, mask, owningColorPanel) +{ with(self) +{ + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPColorPicker") }, "initWithPickerMask:colorPanel:", mask, owningColorPanel); +} +}), new objj_method(sel_getUid("initView"), function $CPSliderColorPicker__initView(self, _cmd) +{ with(self) +{ + aFrame = CPRectMake(0, 0, CPColorPickerViewWidth, CPColorPickerViewHeight); + _contentView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", aFrame); + objj_msgSend(_contentView, "setAutoresizingMask:", CPViewWidthSizable|CPViewHeightSizable); + _rgbLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 10, 100, 20)); + objj_msgSend(_rgbLabel, "setStringValue:", "Red, Green, Blue"); + objj_msgSend(_rgbLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _redLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 35, 15, 20)); + objj_msgSend(_redLabel, "setStringValue:", "R"); + objj_msgSend(_redLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _redSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CPRectMake(15, 35, aFrame.size.width - 70, 20)); + objj_msgSend(_redSlider, "setMaxValue:", 1.0); + objj_msgSend(_redSlider, "setMinValue:", 0.0); + objj_msgSend(_redSlider, "setTarget:", self); + objj_msgSend(_redSlider, "setAction:", sel_getUid("sliderChanged:")); + objj_msgSend(_redSlider, "setAutoresizingMask:", CPViewWidthSizable); + var updateFunction = function(aDOMEvent) + { + if(isNaN(this.value)) + return; + switch(this) + { + case _redValue: objj_msgSend(_redSlider, "setFloatValue:", MAX(MIN(ROUND(this.value), 255) / 255.0, 0)); + break; + case _greenValue: objj_msgSend(_greenSlider, "setFloatValue:", MAX(MIN(ROUND(this.value), 255) / 255.0, 0)); + break; + case _blueValue: objj_msgSend(_blueSlider, "setFloatValue:", MAX(MIN(ROUND(this.value), 255) / 255.0, 0)); + break; + case _hueValue: objj_msgSend(_hueSlider, "setFloatValue:", MAX(MIN(ROUND(this.value), 360), 0)); + break; + case _saturationValue: objj_msgSend(_saturationSlider, "setFloatValue:", MAX(MIN(ROUND(this.value), 100), 0)); + break; + case _brightnessValue: objj_msgSend(_brightnessSlider, "setFloatValue:", MAX(MIN(ROUND(this.value), 100), 0)); + break; + } + this.blur(); + }; + var keypressFunction = function(aDOMEvent) + { + aDOMEvent = aDOMEvent || window.event; + if (aDOMEvent.keyCode == 13) + { + updateFunction(aDOMEvent); + if(aDOMEvent.preventDefault) + aDOMEvent.preventDefault(); + else if(aDOMEvent.stopPropagation) + aDOMEvent.stopPropagation(); + } + } + var redValue = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(aFrame.size.width - 45, 35, 45, 20)); + objj_msgSend(redValue, "setAutoresizingMask:", CPViewMinXMargin); + _redValue = document.createElement("input"); + _redValue.style.width = "40px"; + _redValue.style.backgroundColor = "transparent"; + _redValue.style.border = "1px solid black"; + _redValue.style.color = "black"; + _redValue.style.position = "absolute"; + _redValue.style.top = "0px"; + _redValue.style.left = "0px"; + _redValue.onchange = updateFunction; + redValue._DOMElement.appendChild(_redValue); + objj_msgSend(_contentView, "addSubview:", redValue); + _greenLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 58, 15, 20)); + objj_msgSend(_greenLabel, "setStringValue:", "G"); + objj_msgSend(_greenLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _greenSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CPRectMake(15, 58, aFrame.size.width - 70, 20)); + objj_msgSend(_greenSlider, "setMaxValue:", 1.0); + objj_msgSend(_greenSlider, "setMinValue:", 0.0); + objj_msgSend(_greenSlider, "setTarget:", self); + objj_msgSend(_greenSlider, "setAction:", sel_getUid("sliderChanged:")); + objj_msgSend(_greenSlider, "setAutoresizingMask:", CPViewWidthSizable); + var greenValue = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(aFrame.size.width - 45, 58, 45, 20)); + objj_msgSend(greenValue, "setAutoresizingMask:", CPViewMinXMargin); + _greenValue = _redValue.cloneNode(false); + _greenValue.onchange = updateFunction; + greenValue._DOMElement.appendChild(_greenValue); + objj_msgSend(_contentView, "addSubview:", greenValue); + _blueLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 81, 15, 20)); + objj_msgSend(_blueLabel, "setStringValue:", "B"); + objj_msgSend(_blueLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _blueSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CPRectMake(15, 81, aFrame.size.width - 70, 20)); + objj_msgSend(_blueSlider, "setMaxValue:", 1.0); + objj_msgSend(_blueSlider, "setMinValue:", 0.0); + objj_msgSend(_blueSlider, "setTarget:", self); + objj_msgSend(_blueSlider, "setAction:", sel_getUid("sliderChanged:")); + objj_msgSend(_blueSlider, "setAutoresizingMask:", CPViewWidthSizable); + var blueValue = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(aFrame.size.width - 45, 81, 45, 20)); + objj_msgSend(blueValue, "setAutoresizingMask:", CPViewMinXMargin); + _blueValue = _redValue.cloneNode(false); + _blueValue.onchange = updateFunction; + blueValue._DOMElement.appendChild(_blueValue); + objj_msgSend(_contentView, "addSubview:", blueValue); + _hsbLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 120, 190, 20)); + objj_msgSend(_hsbLabel, "setStringValue:", "Hue, Saturation, Brightness"); + objj_msgSend(_hsbLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _hueLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 145, 15, 20)); + objj_msgSend(_hueLabel, "setStringValue:", "H"); + objj_msgSend(_hueLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _hueSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CPRectMake(15, 145, aFrame.size.width - 70, 20)); + objj_msgSend(_hueSlider, "setMaxValue:", 359.0); + objj_msgSend(_hueSlider, "setMinValue:", 0.0); + objj_msgSend(_hueSlider, "setTarget:", self); + objj_msgSend(_hueSlider, "setAction:", sel_getUid("sliderChanged:")); + objj_msgSend(_hueSlider, "setAutoresizingMask:", CPViewWidthSizable); + var hueValue = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(aFrame.size.width - 45, 145, 45, 20)); + objj_msgSend(hueValue, "setAutoresizingMask:", CPViewMinXMargin); + _hueValue = _redValue.cloneNode(false); + _hueValue.onchange = updateFunction; + hueValue._DOMElement.appendChild(_hueValue); + objj_msgSend(_contentView, "addSubview:", hueValue); + _saturationLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 168, 15, 20)); + objj_msgSend(_saturationLabel, "setStringValue:", "S"); + objj_msgSend(_saturationLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _saturationSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CPRectMake(15, 168, aFrame.size.width - 70, 20)); + objj_msgSend(_saturationSlider, "setMaxValue:", 100.0); + objj_msgSend(_saturationSlider, "setMinValue:", 0.0); + objj_msgSend(_saturationSlider, "setTarget:", self); + objj_msgSend(_saturationSlider, "setAction:", sel_getUid("sliderChanged:")); + objj_msgSend(_saturationSlider, "setAutoresizingMask:", CPViewWidthSizable); + var saturationValue = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(aFrame.size.width - 45, 168, 45, 20)); + objj_msgSend(saturationValue, "setAutoresizingMask:", CPViewMinXMargin); + _saturationValue = _redValue.cloneNode(false); + _saturationValue.onchange = updateFunction; + saturationValue._DOMElement.appendChild(_saturationValue); + objj_msgSend(_contentView, "addSubview:", saturationValue); + _brightnessLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 191, 15, 20)); + objj_msgSend(_brightnessLabel, "setStringValue:", "B"); + objj_msgSend(_brightnessLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _brightnessSlider = objj_msgSend(objj_msgSend(CPSlider, "alloc"), "initWithFrame:", CPRectMake(15, 191, aFrame.size.width - 70, 20)); + objj_msgSend(_brightnessSlider, "setMaxValue:", 100.0); + objj_msgSend(_brightnessSlider, "setMinValue:", 0.0); + objj_msgSend(_brightnessSlider, "setTarget:", self); + objj_msgSend(_brightnessSlider, "setAction:", sel_getUid("sliderChanged:")); + objj_msgSend(_brightnessSlider, "setAutoresizingMask:", CPViewWidthSizable); + var brightnessValue = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(aFrame.size.width - 45, 191, 45, 20)); + objj_msgSend(brightnessValue, "setAutoresizingMask:", CPViewMinXMargin); + _brightnessValue = _redValue.cloneNode(false); + _brightnessValue.onchange = updateFunction; + brightnessValue._DOMElement.appendChild(_brightnessValue); + objj_msgSend(_contentView, "addSubview:", brightnessValue); + _hexLabel = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMake(0, 230, 30, 20)); + objj_msgSend(_hexLabel, "setStringValue:", "Hex"); + objj_msgSend(_hexLabel, "setTextColor:", objj_msgSend(CPColor, "blackColor")); + _hexValue = _redValue.cloneNode(false); + _hexValue.style.top = "228px"; + _hexValue.style.width = "80px"; + _hexValue.style.left = "35px"; + _hexValue.onkeypress = function(aDOMEvent) + { + aDOMEvent = aDOMEvent || window.event; + if (aDOMEvent.keyCode == 13) + { + var newColor = objj_msgSend(CPColor, "colorWithHexString:", this.value); + if(newColor) + { + objj_msgSend(self, "setColor:", newColor); + objj_msgSend(objj_msgSend(self, "colorPanel"), "setColor:", newColor); + } + if(aDOMEvent.preventDefault) + aDOMEvent.preventDefault(); + else if(aDOMEvent.stopPropagation) + aDOMEvent.stopPropagation(); + this.blur(); + } + }; + _contentView._DOMElement.appendChild(_hexValue); + objj_msgSend(_contentView, "addSubview:", _rgbLabel); + objj_msgSend(_contentView, "addSubview:", _redLabel); + objj_msgSend(_contentView, "addSubview:", _greenLabel); + objj_msgSend(_contentView, "addSubview:", _blueLabel); + objj_msgSend(_contentView, "addSubview:", _redSlider); + objj_msgSend(_contentView, "addSubview:", _greenSlider); + objj_msgSend(_contentView, "addSubview:", _blueSlider); + objj_msgSend(_contentView, "addSubview:", _hsbLabel); + objj_msgSend(_contentView, "addSubview:", _hueLabel); + objj_msgSend(_contentView, "addSubview:", _saturationLabel); + objj_msgSend(_contentView, "addSubview:", _brightnessLabel); + objj_msgSend(_contentView, "addSubview:", _hueSlider); + objj_msgSend(_contentView, "addSubview:", _saturationSlider); + objj_msgSend(_contentView, "addSubview:", _brightnessSlider); + objj_msgSend(_contentView, "addSubview:", _hexLabel); +} +}), new objj_method(sel_getUid("provideNewView:"), function $CPSliderColorPicker__provideNewView_(self, _cmd, initialRequest) +{ with(self) +{ + if (initialRequest) + objj_msgSend(self, "initView"); + return _contentView; +} +}), new objj_method(sel_getUid("currentMode"), function $CPSliderColorPicker__currentMode(self, _cmd) +{ with(self) +{ + return CPSliderColorPickerMode; +} +}), new objj_method(sel_getUid("supportsMode:"), function $CPSliderColorPicker__supportsMode_(self, _cmd, mode) +{ with(self) +{ + return (mode == CPSliderColorPickerMode) ? YES : NO; +} +}), new objj_method(sel_getUid("sliderChanged:"), function $CPSliderColorPicker__sliderChanged_(self, _cmd, sender) +{ with(self) +{ + var newColor, + colorPanel = objj_msgSend(self, "colorPanel"), + alpha = objj_msgSend(colorPanel, "opacity"); + switch(sender) + { + case _hueSlider: + case _saturationSlider: + case _brightnessSlider: newColor = objj_msgSend(CPColor, "colorWithHue:saturation:brightness:alpha:", objj_msgSend(_hueSlider, "floatValue"), objj_msgSend(_saturationSlider, "floatValue"), objj_msgSend(_brightnessSlider, "floatValue"), alpha); + objj_msgSend(self, "updateRGBSliders:", newColor); + break; + case _redSlider: + case _greenSlider: + case _blueSlider: newColor = objj_msgSend(CPColor, "colorWithCalibratedRed:green:blue:alpha:", objj_msgSend(_redSlider, "floatValue"), objj_msgSend(_greenSlider, "floatValue"), objj_msgSend(_blueSlider, "floatValue"), alpha); + objj_msgSend(self, "updateHSBSliders:", newColor); + break; + } + objj_msgSend(self, "updateLabels"); + objj_msgSend(self, "updateHex:", newColor); + objj_msgSend(colorPanel, "setColor:", newColor); +} +}), new objj_method(sel_getUid("setColor:"), function $CPSliderColorPicker__setColor_(self, _cmd, aColor) +{ with(self) +{ + objj_msgSend(self, "updateRGBSliders:", aColor); + objj_msgSend(self, "updateHSBSliders:", aColor); + objj_msgSend(self, "updateHex:", aColor); + objj_msgSend(self, "updateLabels"); +} +}), new objj_method(sel_getUid("updateHSBSliders:"), function $CPSliderColorPicker__updateHSBSliders_(self, _cmd, aColor) +{ with(self) +{ + var hsb = objj_msgSend(aColor, "hsbComponents"); + objj_msgSend(_hueSlider, "setFloatValue:", hsb[0]); + objj_msgSend(_saturationSlider, "setFloatValue:", hsb[1]); + objj_msgSend(_brightnessSlider, "setFloatValue:", hsb[2]); +} +}), new objj_method(sel_getUid("updateHex:"), function $CPSliderColorPicker__updateHex_(self, _cmd, aColor) +{ with(self) +{ + _hexValue.value = objj_msgSend(aColor, "hexString"); +} +}), new objj_method(sel_getUid("updateRGBSliders:"), function $CPSliderColorPicker__updateRGBSliders_(self, _cmd, aColor) +{ with(self) +{ + var rgb = objj_msgSend(aColor, "components"); + objj_msgSend(_redSlider, "setFloatValue:", rgb[0]); + objj_msgSend(_greenSlider, "setFloatValue:", rgb[1]); + objj_msgSend(_blueSlider, "setFloatValue:", rgb[2]); +} +}), new objj_method(sel_getUid("updateLabels"), function $CPSliderColorPicker__updateLabels(self, _cmd) +{ with(self) +{ + _hueValue.value = ROUND(objj_msgSend(_hueSlider, "floatValue")); + _saturationValue.value = ROUND(objj_msgSend(_saturationSlider, "floatValue")); + _brightnessValue.value = ROUND(objj_msgSend(_brightnessSlider, "floatValue")); + _redValue.value = ROUND(objj_msgSend(_redSlider, "floatValue") * 255); + _greenValue.value = ROUND(objj_msgSend(_greenSlider, "floatValue") * 255); + _blueValue.value = ROUND(objj_msgSend(_blueSlider, "floatValue") * 255); +} +}), new objj_method(sel_getUid("provideNewButtonImage"), function $CPSliderColorPicker__provideNewButtonImage(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", CPColorPicker), "pathForResource:", "slider_button.png"), CGSizeMake(32, 32)); +} +}), new objj_method(sel_getUid("provideNewAlternateButtonImage"), function $CPSliderColorPicker__provideNewAlternateButtonImage(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(objj_msgSend(CPBundle, "bundleForClass:", CPColorPicker), "pathForResource:", "slider_button_h.png"), CGSizeMake(32, 32)); +} +})]); +} + +p;13;CPSplitView.ji;9;CPImage.ji;8;CPView.jc;22832; +CPSplitViewDidResizeSubviewsNotification = "CPSplitViewDidResizeSubviewsNotification"; +CPSplitViewWillResizeSubviewsNotification = "CPSplitViewWillResizeSubviewsNotification"; +var CPSplitViewHorizontalImage = nil, + CPSplitViewVerticalImage = nil; +{var the_class = objj_allocateClassPair(CPView, "CPSplitView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_delegate"), new objj_ivar("_isVertical"), new objj_ivar("_isPaneSplitter"), new objj_ivar("_currentDivider"), new objj_ivar("_initialOffset"), new objj_ivar("_originComponent"), new objj_ivar("_sizeComponent"), new objj_ivar("_DOMDividerElements"), new objj_ivar("_dividerImagePath"), new objj_ivar("_drawingDivider"), new objj_ivar("_needsResizeSubviews")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPSplitView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame)) + { + _currentDivider = CPNotFound; + _DOMDividerElements = []; + objj_msgSend(self, "_setVertical:", YES); + } + return self; +} +}), new objj_method(sel_getUid("dividerThickness"), function $CPSplitView__dividerThickness(self, _cmd) +{ with(self) +{ + return _isPaneSplitter ? 1.0 : 10.0; +} +}), new objj_method(sel_getUid("isVertical"), function $CPSplitView__isVertical(self, _cmd) +{ with(self) +{ + return _isVertical; +} +}), new objj_method(sel_getUid("setVertical:"), function $CPSplitView__setVertical_(self, _cmd, shouldBeVertical) +{ with(self) +{ + if (!objj_msgSend(self, "_setVertical:", shouldBeVertical)) + return; + var frame = objj_msgSend(self, "frame"), + dividerThickness = objj_msgSend(self, "dividerThickness"); + objj_msgSend(self, "_postNotificationWillResize"); + var eachSize = ROUND((frame.size[_sizeComponent] - dividerThickness * (_subviews.length - 1)) / _subviews.length), + index = 0, + count = _subviews.length; + if (objj_msgSend(self, "isVertical")) + for (; index < count; ++index) + objj_msgSend(_subviews[index], "setFrame:", CGRectMake(ROUND((eachSize + dividerThickness) * index), 0, eachSize, frame.size.height)); + else + for (; index < count; ++index) + objj_msgSend(_subviews[index], "setFrame:", CGRectMake(0, ROUND((eachSize + dividerThickness) * index), frame.size.width, eachSize)); + objj_msgSend(self, "setNeedsDisplay:", YES); + objj_msgSend(self, "_postNotificationDidResize"); +} +}), new objj_method(sel_getUid("_setVertical:"), function $CPSplitView___setVertical_(self, _cmd, shouldBeVertical) +{ with(self) +{ + var changed = (_isVertical != shouldBeVertical); + _isVertical = shouldBeVertical; + _originComponent = objj_msgSend(self, "isVertical") ? "x" : "y"; + _sizeComponent = objj_msgSend(self, "isVertical") ? "width" : "height"; + _dividerImagePath = objj_msgSend(self, "isVertical") ? objj_msgSend(CPSplitViewVerticalImage, "filename") : objj_msgSend(CPSplitViewHorizontalImage, "filename"); + return changed; +} +}), new objj_method(sel_getUid("isPaneSplitter"), function $CPSplitView__isPaneSplitter(self, _cmd) +{ with(self) +{ + return _isPaneSplitter; +} +}), new objj_method(sel_getUid("setIsPaneSplitter:"), function $CPSplitView__setIsPaneSplitter_(self, _cmd, shouldBePaneSplitter) +{ with(self) +{ + if (_isPaneSplitter == shouldBePaneSplitter) + return; + _isPaneSplitter = shouldBePaneSplitter; + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("didAddSubview:"), function $CPSplitView__didAddSubview_(self, _cmd, aSubview) +{ with(self) +{ + _needsResizeSubviews = YES; +} +}), new objj_method(sel_getUid("isSubviewCollapsed:"), function $CPSplitView__isSubviewCollapsed_(self, _cmd, subview) +{ with(self) +{ + return objj_msgSend(subview, "frame").size[_sizeComponent] < 1 ? YES : NO; +} +}), new objj_method(sel_getUid("rectOfDividerAtIndex:"), function $CPSplitView__rectOfDividerAtIndex_(self, _cmd, aDivider) +{ with(self) +{ + var frame = objj_msgSend(_subviews[aDivider], "frame"), + rect = CGRectMakeZero(); + rect.size = objj_msgSend(self, "frame").size; + rect.size[_sizeComponent] = objj_msgSend(self, "dividerThickness"); + rect.origin[_originComponent] = frame.origin[_originComponent] + frame.size[_sizeComponent]; + return rect; +} +}), new objj_method(sel_getUid("effectiveRectOfDividerAtIndex:"), function $CPSplitView__effectiveRectOfDividerAtIndex_(self, _cmd, aDivider) +{ with(self) +{ + var realRect = objj_msgSend(self, "rectOfDividerAtIndex:", aDivider); + var padding = 2; + realRect.size[_sizeComponent] += padding * 2; + realRect.origin[_originComponent] -= padding; + return realRect; +} +}), new objj_method(sel_getUid("drawRect:"), function $CPSplitView__drawRect_(self, _cmd, rect) +{ with(self) +{ + var count = objj_msgSend(_subviews, "count") - 1; + while ((count--) > 0) + { + _drawingDivider = count; + objj_msgSend(self, "drawDividerInRect:", objj_msgSend(self, "rectOfDividerAtIndex:", count)); + } +} +}), new objj_method(sel_getUid("drawDividerInRect:"), function $CPSplitView__drawDividerInRect_(self, _cmd, aRect) +{ with(self) +{ +} +}), new objj_method(sel_getUid("viewWillDraw"), function $CPSplitView__viewWillDraw(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "_adjustSubviewsWithCalculatedSize"); +} +}), new objj_method(sel_getUid("_adjustSubviewsWithCalculatedSize"), function $CPSplitView___adjustSubviewsWithCalculatedSize(self, _cmd) +{ with(self) +{ + if (!_needsResizeSubviews) + return; + _needsResizeSubviews = NO; + var subviews = objj_msgSend(self, "subviews"), + count = subviews.length, + oldSize = CGSizeMakeZero(); + if (objj_msgSend(self, "isVertical")) + { + oldSize.width += objj_msgSend(self, "dividerThickness") * (count - 1); + oldSize.height = CGRectGetHeight(objj_msgSend(self, "frame")); + } + else + { + oldSize.width = CGRectGetWidth(objj_msgSend(self, "frame")); + oldSize.height += objj_msgSend(self, "dividerThickness") * (count - 1); + } + while (count--) + oldSize[_sizeComponent] += objj_msgSend(subviews[count], "frame").size[_sizeComponent]; + objj_msgSend(self, "resizeSubviewsWithOldSize:", oldSize); +} +}), new objj_method(sel_getUid("cursorAtPoint:hitDividerAtIndex:"), function $CPSplitView__cursorAtPoint_hitDividerAtIndex_(self, _cmd, aPoint, anIndex) +{ with(self) +{ + var frame = objj_msgSend(_subviews[anIndex], "frame"), + startPosition = frame.origin[_originComponent] + frame.size[_sizeComponent], + effectiveRect = objj_msgSend(self, "effectiveRectOfDividerAtIndex:", anIndex), + additionalRect = null; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:"))) + effectiveRect = objj_msgSend(_delegate, "splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:", self, effectiveRect, effectiveRect, anIndex); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:additionalEffectiveRectOfDividerAtIndex:"))) + additionalRect = objj_msgSend(_delegate, "splitView:additionalEffectiveRectOfDividerAtIndex:", self, anIndex); + return CGRectContainsPoint(effectiveRect, aPoint) || (additionalRect && CGRectContainsPoint(additionalRect, aPoint)); +} +}), new objj_method(sel_getUid("hitTest:"), function $CPSplitView__hitTest_(self, _cmd, aPoint) +{ with(self) +{ + if (objj_msgSend(self, "isHidden") || !objj_msgSend(self, "hitTests") || !CGRectContainsPoint(objj_msgSend(self, "frame"), aPoint)) + return nil; + var point = objj_msgSend(self, "convertPoint:fromView:", aPoint, objj_msgSend(self, "superview")); + var count = objj_msgSend(_subviews, "count") - 1; + for (var i = 0; i < count; i++) + { + if (objj_msgSend(self, "cursorAtPoint:hitDividerAtIndex:", point, i)) + return self; + } + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "hitTest:", aPoint); +} +}), new objj_method(sel_getUid("trackDivider:"), function $CPSplitView__trackDivider_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"); + if (type == CPLeftMouseUp) + { + if (_currentDivider != CPNotFound) + { + _currentDivider = CPNotFound; + objj_msgSend(self, "_postNotificationDidResize"); + } + return; + } + if (type == CPLeftMouseDown) + { + var point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + _currentDivider = CPNotFound; + var count = objj_msgSend(_subviews, "count") - 1; + for (var i = 0; i < count; i++) + { + var frame = objj_msgSend(_subviews[i], "frame"), + startPosition = frame.origin[_originComponent] + frame.size[_sizeComponent]; + if (objj_msgSend(self, "cursorAtPoint:hitDividerAtIndex:", point, i)) + { + if (objj_msgSend(anEvent, "clickCount") == 2 && + objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:canCollapseSubview:")) && + objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:"))) + { + var minPosition = objj_msgSend(self, "minPossiblePositionOfDividerAtIndex:", i), + maxPosition = objj_msgSend(self, "maxPossiblePositionOfDividerAtIndex:", i); + if (objj_msgSend(_delegate, "splitView:canCollapseSubview:", self, _subviews[i]) && objj_msgSend(_delegate, "splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:", self, _subviews[i], i)) + { + if (objj_msgSend(self, "isSubviewCollapsed:", _subviews[i])) + objj_msgSend(self, "setPosition:ofDividerAtIndex:", (minPosition + (maxPosition - minPosition) / 2), i); + else + objj_msgSend(self, "setPosition:ofDividerAtIndex:", minPosition, i); + } + else if (objj_msgSend(_delegate, "splitView:canCollapseSubview:", self, _subviews[i+1]) && objj_msgSend(_delegate, "splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:", self, _subviews[i+1], i)) + { + if (objj_msgSend(self, "isSubviewCollapsed:", _subviews[i+1])) + objj_msgSend(self, "setPosition:ofDividerAtIndex:", (minPosition + (maxPosition - minPosition) / 2), i); + else + objj_msgSend(self, "setPosition:ofDividerAtIndex:", maxPosition, i); + } + } + else + { + _currentDivider = i; + _initialOffset = startPosition - point[_originComponent]; + objj_msgSend(self, "_postNotificationWillResize"); + } + } + } + } + else if (type == CPLeftMouseDragged && _currentDivider != CPNotFound) + { + var point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil); + objj_msgSend(self, "setPosition:ofDividerAtIndex:", (point[_originComponent] + _initialOffset), _currentDivider); + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackDivider:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPSplitView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "trackDivider:", anEvent); +} +}), new objj_method(sel_getUid("maxPossiblePositionOfDividerAtIndex:"), function $CPSplitView__maxPossiblePositionOfDividerAtIndex_(self, _cmd, dividerIndex) +{ with(self) +{ + var frame = objj_msgSend(_subviews[dividerIndex + 1], "frame"); + if (dividerIndex + 1 < objj_msgSend(_subviews, "count") - 1) + return frame.origin[_originComponent] + frame.size[_sizeComponent] - objj_msgSend(self, "dividerThickness"); + else + return objj_msgSend(self, "frame").size[_sizeComponent] - objj_msgSend(self, "dividerThickness"); +} +}), new objj_method(sel_getUid("minPossiblePositionOfDividerAtIndex:"), function $CPSplitView__minPossiblePositionOfDividerAtIndex_(self, _cmd, dividerIndex) +{ with(self) +{ + if (dividerIndex > 0) + { + var frame = objj_msgSend(_subviews[dividerIndex - 1], "frame"); + return frame.origin[_originComponent] + frame.size[_sizeComponent] + objj_msgSend(self, "dividerThickness"); + } + else + return 0; +} +}), new objj_method(sel_getUid("setPosition:ofDividerAtIndex:"), function $CPSplitView__setPosition_ofDividerAtIndex_(self, _cmd, position, dividerIndex) +{ with(self) +{ + objj_msgSend(self, "_adjustSubviewsWithCalculatedSize"); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:constrainSplitPosition:ofSubviewAt:"))) + position = objj_msgSend(_delegate, "splitView:constrainSplitPosition:ofSubviewAt:", self, position, dividerIndex); + var proposedMax = objj_msgSend(self, "maxPossiblePositionOfDividerAtIndex:", dividerIndex), + proposedMin = objj_msgSend(self, "minPossiblePositionOfDividerAtIndex:", dividerIndex), + actualMax = proposedMax, + actualMin = proposedMin; + if(objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:constrainMinCoordinate:ofSubviewAt:"))) + actualMin = objj_msgSend(_delegate, "splitView:constrainMinCoordinate:ofSubviewAt:", self, proposedMin, dividerIndex); + if(objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:constrainMaxCoordinate:ofSubviewAt:"))) + actualMax = objj_msgSend(_delegate, "splitView:constrainMaxCoordinate:ofSubviewAt:", self, proposedMax, dividerIndex); + var frame = objj_msgSend(self, "frame"), + viewA = _subviews[dividerIndex], + frameA = objj_msgSend(viewA, "frame"), + viewB = _subviews[dividerIndex + 1], + frameB = objj_msgSend(viewB, "frame"); + var realPosition = MAX(MIN(position, actualMax), actualMin); + if (position < proposedMin + (actualMin - proposedMin) / 2) + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:canCollapseSubview:"))) + if (objj_msgSend(_delegate, "splitView:canCollapseSubview:", self, viewA)) + realPosition = proposedMin; + frameA.size[_sizeComponent] = realPosition - frameA.origin[_originComponent]; + objj_msgSend(_subviews[dividerIndex], "setFrame:", frameA); + frameB.size[_sizeComponent] = frameB.origin[_originComponent] + frameB.size[_sizeComponent] - realPosition - objj_msgSend(self, "dividerThickness"); + frameB.origin[_originComponent] = realPosition + objj_msgSend(self, "dividerThickness"); + objj_msgSend(_subviews[dividerIndex + 1], "setFrame:", frameB); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPSplitView__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSend(self, "_adjustSubviewsWithCalculatedSize"); + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setFrameSize:", aSize); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $CPSplitView__resizeSubviewsWithOldSize_(self, _cmd, oldSize) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitView:resizeSubviewsWithOldSize:"))) + { + objj_msgSend(_delegate, "splitView:resizeSubviewsWithOldSize:", self, oldSize); + return; + } + objj_msgSend(self, "_postNotificationWillResize"); + var index = 0, + count = objj_msgSend(_subviews, "count"), + bounds = objj_msgSend(self, "bounds"), + dividerThickness = objj_msgSend(self, "dividerThickness"), + totalDividers = count - 1, + totalSizableSpace = 0, + nonSizableSpace = 0, + lastSizableIndex = -1, + totalSizablePanes = 0, + isVertical = objj_msgSend(self, "isVertical"); + for (index = 0; index < count; ++index) + { + var view = _subviews[index], + isSizable = isVertical ? objj_msgSend(view, "autoresizingMask") & CPViewWidthSizable : objj_msgSend(view, "autoresizingMask") & CPViewHeightSizable; + if (isSizable) + { + totalSizableSpace += objj_msgSend(view, "frame").size[_sizeComponent]; + lastSizableIndex = index; + totalSizablePanes++; + } + } + if (totalSizablePanes === count) + totalSizableSpace = 0; + var nonSizableSpace = totalSizableSpace ? bounds.size[_sizeComponent] - totalSizableSpace : 0, + ratio = (bounds.size[_sizeComponent] - totalDividers*dividerThickness - nonSizableSpace) / (oldSize[_sizeComponent]- totalDividers*dividerThickness - nonSizableSpace), + remainingFlexibleSpace = bounds.size[_sizeComponent] - oldSize[_sizeComponent]; + for (index = 0; index < count; ++index) + { + var view = _subviews[index], + viewFrame = CGRectMakeCopy(bounds), + isSizable = isVertical ? objj_msgSend(view, "autoresizingMask") & CPViewWidthSizable : objj_msgSend(view, "autoresizingMask") & CPViewHeightSizable; + if (index + 1 == count) + viewFrame.size[_sizeComponent] = bounds.size[_sizeComponent] - viewFrame.origin[_originComponent]; + else if (totalSizableSpace && isSizable && lastSizableIndex === index) + viewFrame.size[_sizeComponent] = MAX(0, ROUND(objj_msgSend(view, "frame").size[_sizeComponent] + remainingFlexibleSpace)) + else if (isSizable || !totalSizableSpace) + { + viewFrame.size[_sizeComponent] = MAX(0, ROUND(ratio * objj_msgSend(view, "frame").size[_sizeComponent])); + remainingFlexibleSpace -= (viewFrame.size[_sizeComponent] - objj_msgSend(view, "frame").size[_sizeComponent]); + } + else if (totalSizableSpace && !isSizable) + viewFrame.size[_sizeComponent] = objj_msgSend(view, "frame").size[_sizeComponent]; + else + alert("SHOULD NEVER GET HERE"); + bounds.origin[_originComponent] += viewFrame.size[_sizeComponent] + dividerThickness; + objj_msgSend(view, "setFrame:", viewFrame); + } + objj_msgSend(self, "_postNotificationDidResize"); +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPSplitView__setDelegate_(self, _cmd, delegate) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitViewDidResizeSubviews:"))) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "removeObserver:name:object:", _delegate, CPSplitViewDidResizeSubviewsNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitViewWillResizeSubviews:"))) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "removeObserver:name:object:", _delegate, CPSplitViewWillResizeSubviewsNotification, self); + _delegate = delegate; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitViewDidResizeSubviews:"))) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", _delegate, sel_getUid("splitViewDidResizeSubviews:"), CPSplitViewDidResizeSubviewsNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("splitViewWillResizeSubviews:"))) + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", _delegate, sel_getUid("splitViewWillResizeSubviews:"), CPSplitViewWillResizeSubviewsNotification, self); +} +}), new objj_method(sel_getUid("_postNotificationWillResize"), function $CPSplitView___postNotificationWillResize(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPSplitViewWillResizeSubviewsNotification, self); +} +}), new objj_method(sel_getUid("_postNotificationDidResize"), function $CPSplitView___postNotificationDidResize(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPSplitViewDidResizeSubviewsNotification, self); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPSplitView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPSplitView, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + CPSplitViewHorizontalImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPSplitView/CPSplitViewHorizontal.png"), CPSizeMake(5.0, 10.0)); + CPSplitViewVerticalImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPSplitView/CPSplitViewVertical.png"), CPSizeMake(10.0, 5.0)); +} +})]); +} +var CPSplitViewDelegateKey = "CPSplitViewDelegateKey", + CPSplitViewIsVerticalKey = "CPSplitViewIsVerticalKey", + CPSplitViewIsPaneSplitterKey = "CPSplitViewIsPaneSplitterKey"; +{ +var the_class = objj_getClass("CPSplitView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPSplitView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPSplitView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder); + if (self) + { + _currentDivider = CPNotFound; + _DOMDividerElements = []; + _delegate = objj_msgSend(aCoder, "decodeObjectForKey:", CPSplitViewDelegateKey);; + _isPaneSplitter = objj_msgSend(aCoder, "decodeBoolForKey:", CPSplitViewIsPaneSplitterKey); + objj_msgSend(self, "_setVertical:", objj_msgSend(aCoder, "decodeBoolForKey:", CPSplitViewIsVerticalKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPSplitView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _delegate, CPSplitViewDelegateKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _isVertical, CPSplitViewIsVerticalKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _isPaneSplitter, CPSplitViewIsPaneSplitterKey); +} +})]); +} + +p;17;CPStringDrawing.jI;21;Foundation/CPString.jc;982; +var CPStringReferenceElement = nil, + CPStringDefaultFont = nil; +{ +var the_class = objj_getClass("CPString") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPString\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("cssString"), function $CPString__cssString(self, _cmd) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("sizeWithFont:"), function $CPString__sizeWithFont_(self, _cmd, aFont) +{ with(self) +{ + return objj_msgSend(self, "sizeWithFont:inWidth:", aFont, NULL); +} +}), new objj_method(sel_getUid("sizeWithFont:inWidth:"), function $CPString__sizeWithFont_inWidth_(self, _cmd, aFont, aWidth) +{ with(self) +{ + return { width:0.0, height:0.0 }; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("_resetSize"), function $CPString___resetSize(self, _cmd) +{ with(self) +{ + CPStringReferenceElement = nil; +} +})]); +} + +p;15;CPTableColumn.jI;23;Foundation/Foundation.jc;10280; +CPTableColumnNoResizing = 0; +CPTableColumnAutoresizingMask = 1; +CPTableColumnUserResizingMask = 2; +{var the_class = objj_allocateClassPair(CPObject, "CPTableColumn"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_identifier"), new objj_ivar("_headerView"), new objj_ivar("_tableView"), new objj_ivar("_width"), new objj_ivar("_minWidth"), new objj_ivar("_maxWidth"), new objj_ivar("_resizingMask"), new objj_ivar("_dataView"), new objj_ivar("_dataViewData"), new objj_ivar("_dataViewForView"), new objj_ivar("_purgableInfosForDataView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithIdentifier:"), function $CPTableColumn__initWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + objj_msgSend(self, "_init"); + _identifier = anIdentifier; + _width = 40.0; + _minWidth = 8.0; + _maxWidth = 1000.0; + var dataView = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMakeZero()); + objj_msgSend(dataView, "setValue:forThemeAttribute:inState:", objj_msgSend(CPColor, "whiteColor"), "text-color", CPThemeStateHighlighted); + objj_msgSend(self, "setDataView:", dataView); + _headerView = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMakeZero()); + objj_msgSend(_headerView, "setBackgroundColor:", objj_msgSend(CPColor, "greenColor")); + } + return self; +} +}), new objj_method(sel_getUid("_init"), function $CPTableColumn___init(self, _cmd) +{ with(self) +{ + _dataViewData = {}; + _dataViewForView = {}; + _purgableInfosForDataView = {}; +} +}), new objj_method(sel_getUid("setIdentifier:"), function $CPTableColumn__setIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + _identifier = anIdentifier; +} +}), new objj_method(sel_getUid("identifier"), function $CPTableColumn__identifier(self, _cmd) +{ with(self) +{ + return _identifier; +} +}), new objj_method(sel_getUid("setTableView:"), function $CPTableColumn__setTableView_(self, _cmd, aTableView) +{ with(self) +{ + _tableView = aTableView; +} +}), new objj_method(sel_getUid("tableView"), function $CPTableColumn__tableView(self, _cmd) +{ with(self) +{ + return _tableView; +} +}), new objj_method(sel_getUid("setWidth:"), function $CPTableColumn__setWidth_(self, _cmd, aWidth) +{ with(self) +{ + _width = aWidth; +} +}), new objj_method(sel_getUid("width"), function $CPTableColumn__width(self, _cmd) +{ with(self) +{ + return _width; +} +}), new objj_method(sel_getUid("setMinWidth:"), function $CPTableColumn__setMinWidth_(self, _cmd, aWidth) +{ with(self) +{ + if (_width < (_minWidth = aWidth)) + objj_msgSend(self, "setWidth:", _minWidth); +} +}), new objj_method(sel_getUid("minWidth"), function $CPTableColumn__minWidth(self, _cmd) +{ with(self) +{ + return _minWidth; +} +}), new objj_method(sel_getUid("setMaxWidth:"), function $CPTableColumn__setMaxWidth_(self, _cmd, aWidth) +{ with(self) +{ + if (_width > (_maxmimumWidth = aWidth)) + objj_msgSend(self, "setWidth:", _maxWidth); +} +}), new objj_method(sel_getUid("setResizingMask:"), function $CPTableColumn__setResizingMask_(self, _cmd, aMask) +{ with(self) +{ + _resizingMask = aMask; +} +}), new objj_method(sel_getUid("resizingMask"), function $CPTableColumn__resizingMask(self, _cmd) +{ with(self) +{ + return _resizingMask; +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPTableColumn__sizeToFit(self, _cmd) +{ with(self) +{ + var width = CPRectGetWidth(objj_msgSend(_headerView, "frame")); + if (width < _minWidth) + objj_msgSend(self, "setMinWidth:", width); + else if (width > _maxWidth) + objj_msgSend(self, "setMaxWidth:", width) + if (_width != width) + objj_msgSend(self, "setWidth:", width); +} +}), new objj_method(sel_getUid("setEditable:"), function $CPTableColumn__setEditable_(self, _cmd, aFlag) +{ with(self) +{ + _isEditable = aFlag; +} +}), new objj_method(sel_getUid("isEditable"), function $CPTableColumn__isEditable(self, _cmd) +{ with(self) +{ + return _isEditable; +} +}), new objj_method(sel_getUid("setHeaderView:"), function $CPTableColumn__setHeaderView_(self, _cmd, aView) +{ with(self) +{ + _headerView = aView; +} +}), new objj_method(sel_getUid("headerView"), function $CPTableColumn__headerView(self, _cmd) +{ with(self) +{ + return _headerView; +} +}), new objj_method(sel_getUid("setDataCell:"), function $CPTableColumn__setDataCell_(self, _cmd, aView) +{ with(self) +{ + objj_msgSend(self, "setDataView:", aView); +} +}), new objj_method(sel_getUid("setDataView:"), function $CPTableColumn__setDataView_(self, _cmd, aView) +{ with(self) +{ + if (_dataView) + _dataViewData[objj_msgSend(_dataView, "hash")] = nil; + _dataView = aView; + _dataViewData[objj_msgSend(aView, "hash")] = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", aView); +} +}), new objj_method(sel_getUid("dataCell"), function $CPTableColumn__dataCell(self, _cmd) +{ with(self) +{ + return _dataView; +} +}), new objj_method(sel_getUid("dataView"), function $CPTableColumn__dataView(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "dataCell"); +} +}), new objj_method(sel_getUid("dataCellForRow:"), function $CPTableColumn__dataCellForRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return objj_msgSend(self, "dataView"); +} +}), new objj_method(sel_getUid("dataViewForRow:"), function $CPTableColumn__dataViewForRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return objj_msgSend(self, "dataCellForRow:", aRowIndex); +} +}), new objj_method(sel_getUid("_markView:inRow:asPurgable:"), function $CPTableColumn___markView_inRow_asPurgable_(self, _cmd, aView, aRow, isPurgable) +{ with(self) +{ + var viewHash = objj_msgSend(aView, "hash"), + dataViewHash = objj_msgSend(_dataViewForView[viewHash], "hash"); + if (!_purgableInfosForDataView[dataViewHash]) + { + if (!isPurgable) + return; + _purgableInfosForDataView[dataViewHash] = {}; + } + if (!isPurgable) { + if (_purgableInfosForDataView[dataViewHash][viewHash]) + CPLog.warn("removing unpurgable " + _purgableInfosForDataView[dataViewHash][viewHash]); + delete _purgableInfosForDataView[dataViewHash][viewHash]; + } + else + _purgableInfosForDataView[dataViewHash][viewHash] = { view:(aView), row:(aRow) }; +} +}), new objj_method(sel_getUid("_newDataViewForRow:avoidingRows:"), function $CPTableColumn___newDataViewForRow_avoidingRows_(self, _cmd, aRowIndex, rows) +{ with(self) +{ + var view = objj_msgSend(self, "dataViewForRow:", aRowIndex), + viewHash = objj_msgSend(view, "hash"), + purgableInfos = _purgableInfosForDataView[viewHash]; + if (purgableInfos) + { + for (var key in purgableInfos) + { + var info = purgableInfos[key]; + delete purgableInfos[key]; + return ((info).view); + } + } + if (!_dataViewData[viewHash]) + _dataViewData[viewHash] = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", view); + var newView = objj_msgSend(CPKeyedUnarchiver, "unarchiveObjectWithData:", _dataViewData[viewHash]); + _dataViewForView[objj_msgSend(newView, "hash")] = view; + CPLog.warn("creating cell: %s", newView); + return newView; +} +}), new objj_method(sel_getUid("_purge"), function $CPTableColumn___purge(self, _cmd) +{ with(self) +{ + for (var viewHash in _purgableInfosForDataView) + { + var purgableInfos = _purgableInfosForDataView[viewHash]; + for (var key in purgableInfos) + { + var view = ((purgableInfos[key]).view); + if (!view) + CPLog.info("key="+key+" view=" + view + " purgableInfos[key]="+purgableInfos[key]) + else if (view._superview) { + objj_msgSend(view, "setHidden:", YES); + } + } + } +} +})]); +} +var CPTableColumnIdentifierKey = "CPTableColumnIdentifierKey", + CPTableColumnHeaderViewKey = "CPTableColumnHeaderViewKey", + CPTableColumnDataViewKey = "CPTableColumnDataViewKey", + CPTableColumnWidthKey = "CPTableColumnWidthKey", + CPTableColumnMinWidthKey = "CPTableColumnMinWidthKey", + CPTableColumnMaxWidthKey = "CPTableColumnMaxWidthKey", + CPTableColumnResizingMaskKey = "CPTableColumnResizingMaskKey"; +{ +var the_class = objj_getClass("CPTableColumn") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTableColumn\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTableColumn__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(self, "_init"); + _identifier = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableColumnIdentifierKey); + objj_msgSend(self, "setHeaderView:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTableColumnHeaderViewKey)); + objj_msgSend(self, "setDataView:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTableColumnDataViewKey)); + _width = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableColumnWidthKey); + _minWidth = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableColumnMinWidthKey); + _maxWidth = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableColumnMaxWidthKey); + _resizingMask = objj_msgSend(aCoder, "decodeBoolForKey:", CPTableColumnResizingMaskKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTableColumn__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _identifier, CPTableColumnIdentifierKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _headerView, CPTableColumnHeaderViewKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _dataView, CPTableColumnDataViewKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _width, CPTableColumnWidthKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _minWidth, CPTableColumnMinWidthKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _maxWidth, CPTableColumnMaxWidthKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _resizingMask, CPTableColumnResizingMaskKey); +} +})]); +} + +p;19;CPTableHeaderView.ji;15;CPTableColumn.ji;13;CPTableView.ji;8;CPView.jc;3886; +{var the_class = objj_allocateClassPair(CPView, "CPTableHeaderView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_resizedColumn"), new objj_ivar("_draggedColumn"), new objj_ivar("_draggedDistance"), new objj_ivar("_tableView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("resizedColumn"), function $CPTableHeaderView__resizedColumn(self, _cmd) +{ with(self) +{ +return _resizedColumn; +} +}), +new objj_method(sel_getUid("draggedColumn"), function $CPTableHeaderView__draggedColumn(self, _cmd) +{ with(self) +{ +return _draggedColumn; +} +}), +new objj_method(sel_getUid("draggedDistance"), function $CPTableHeaderView__draggedDistance(self, _cmd) +{ with(self) +{ +return _draggedDistance; +} +}), +new objj_method(sel_getUid("tableView"), function $CPTableHeaderView__tableView(self, _cmd) +{ with(self) +{ +return _tableView; +} +}), +new objj_method(sel_getUid("setTableView:"), function $CPTableHeaderView__setTableView_(self, _cmd, newValue) +{ with(self) +{ +_tableView = newValue; +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPTableHeaderView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _resizedColumn = CPNotFound; + _draggedColumn = CPNotFound; + _draggedDistance = 0.0; + } + return self; +} +}), new objj_method(sel_getUid("columnAtPoint:"), function $CPTableHeaderView__columnAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + if (!CGRectContainsPoint(objj_msgSend(self, "bounds"), aPoint)) + return CPNotFound; + var index = 0, + count = objj_msgSend(objj_msgSend(_tableView, "tableColumns"), "count"), + tableSpacing = objj_msgSend(_tableView, "intercellSpacing"), + tableColumns = objj_msgSend(_tableView, "tableColumns"), + leftOffset = 0, + pointX = aPoint.x; + for (; index < count; index++) + { + var width = objj_msgSend(tableColumns[index], "width") + tableSpacing.width; + if (pointX >= leftOffset && pointX < leftOffset + width) + return index; + leftOffset += width; + } + return CPNotFound; +} +}), new objj_method(sel_getUid("headerRectOfColumn:"), function $CPTableHeaderView__headerRectOfColumn_(self, _cmd, aColumnIndex) +{ with(self) +{ + var tableColumns = objj_msgSend(_tableView, "tableColumns"), + tableSpacing = objj_msgSend(_tableView, "intercellSpacing"), + bounds = objj_msgSend(self, "bounds"); + if (aColumnIndex < 0 || aColumnIndex > objj_msgSend(tableColumns, "count")) + objj_msgSend(CPException, "raise:reason:", "invalid", "tried to get headerRectOfColumn: on invalid column"); + bounds.size.width = objj_msgSend(tableColumns[aColumnIndex], "width") + tableSpacing.width; + while (--aColumnIndex >= 0) + bounds.origin.x += objj_msgSend(tableColumns[aColumnIndex], "width") + tableSpacing.width; + return bounds; +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPTableHeaderView__layoutSubviews(self, _cmd) +{ with(self) +{ + var tableColumns = objj_msgSend(_tableView, "tableColumns"), + count = objj_msgSend(tableColumns, "count"), + columnRect = objj_msgSend(self, "bounds"), + spacing = objj_msgSend(_tableView, "intercellSpacing"); + for (i = 0; i < count; ++i) + { + var column = objj_msgSend(tableColumns, "objectAtIndex:", i), + headerView = objj_msgSend(column, "headerView"); + columnRect.size.width = objj_msgSend(column, "width") + spacing.width; + objj_msgSend(headerView, "setFrame:", columnRect); + columnRect.origin.x += objj_msgSend(column, "width") + spacing.width; + objj_msgSend(self, "addSubview:", headerView); + } +} +})]); +} + +p;13;CPTableView.ji;11;CPControl.ji;15;CPTableColumn.ji;9;CPColor.ji;13;CPTextField.jc;40301; +CPTableViewColumnDidMoveNotification = "CPTableViewColumnDidMoveNotification"; +CPTableViewColumnDidResizeNotification = "CPTableViewColumnDidResizeNotification"; +CPTableViewSelectionDidChangeNotification = "CPTableViewSelectionDidChangeNotification"; +CPTableViewSelectionIsChangingNotification = "CPTableViewSelectionIsChangingNotification"; +var _CPTableViewWillDisplayCellSelector = 1 << 0, + _CPTableViewShouldSelectRowSelector = 1 << 1, + _CPTableViewShouldSelectTableColumnSelector = 1 << 2, + _CPTableViewSelectionShouldChangeSelector = 1 << 3, + _CPTableViewShouldEditTableColumnSelector = 1 << 4, + _CPTableViewSelectionIndexesForProposedSelectionSelector = 1 << 5, + _CPTableViewHeightOfRowSelector = 1 << 6; +{var the_class = objj_allocateClassPair(CPControl, "CPTableView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_dataSource"), new objj_ivar("_delegate"), new objj_ivar("_tableColumns"), new objj_ivar("_selectedRowIndexes"), new objj_ivar("_rowHeight"), new objj_ivar("_intercellSpacing"), new objj_ivar("_allowsMultipleSelection"), new objj_ivar("_allowsEmptySelection"), new objj_ivar("_delegateSelectorsCache"), new objj_ivar("_numberOfRows"), new objj_ivar("_hasVariableHeightRows"), new objj_ivar("_columnHeight"), new objj_ivar("_rowHeights"), new objj_ivar("_rowMinYs"), new objj_ivar("_tableCells"), new objj_ivar("_tableColumnViews"), new objj_ivar("_dataViewCache"), new objj_ivar("_objectValueCache"), new objj_ivar("_visibleRows"), new objj_ivar("_visibleColumns"), new objj_ivar("_populatedRows"), new objj_ivar("_populatedColumns"), new objj_ivar("_previousSelectedRowIndexes"), new objj_ivar("_selectionStartRow"), new objj_ivar("_selectionModifier"), new objj_ivar("_currentlySelected"), new objj_ivar("_selectionViews"), new objj_ivar("_selectionViewsPool"), new objj_ivar("_scrollTimer")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPTableView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + objj_msgSend(self, "_init"); + } + return self; +} +}), new objj_method(sel_getUid("_init"), function $CPTableView___init(self, _cmd) +{ with(self) +{ + _tableColumns = []; + _selectedRowIndexes = objj_msgSend(CPIndexSet, "indexSet"); + _rowHeight = 17.0; + _intercellSpacing = CPSizeMake(3.0, 2.0); + _allowsMultipleSelection = YES; + _allowsEmptySelection = YES; + _tableCells = []; + _tableColumnViews = []; + _dataViewCache = {}; + _objectValueCache = []; + _visibleRows = CPMakeRange(0, 0); + _visibleColumns = CPMakeRange(0, 0); + _rowHeights = []; + _rowMinYs = []; +} +}), new objj_method(sel_getUid("_columnHeight"), function $CPTableView___columnHeight(self, _cmd) +{ with(self) +{ + return _columnHeight; +} +}), new objj_method(sel_getUid("newCellForRow:column:avoidingRows:"), function $CPTableView__newCellForRow_column_avoidingRows_(self, _cmd, aRowIndex, aColumnIndex, rows) +{ with(self) +{ + var dataView = objj_msgSend(_tableColumns[aColumnIndex], "_newDataViewForRow:avoidingRows:", aRowIndex, rows); + objj_msgSend(dataView, "setFrame:", CGRectMake(0.0, (_hasVariableHeightRows ? _rowMinYs[aRowIndex] : (aRowIndex * (_rowHeight + _intercellSpacing.height))), objj_msgSend(_tableColumns[aColumnIndex], "width"), (_hasVariableHeightRows ? _rowHeights[aRowIndex] : _rowHeight))); + if (objj_msgSend(dataView, "respondsToSelector:", sel_getUid("highlight:"))) + objj_msgSend(dataView, "highlight:", objj_msgSend(_selectedRowIndexes, "containsIndex:", aRowIndex)); + if (!_objectValueCache[aColumnIndex]) + _objectValueCache[aColumnIndex] = []; + if (_objectValueCache[aColumnIndex][aRowIndex] === undefined) + _objectValueCache[aColumnIndex][aRowIndex] = objj_msgSend(_dataSource, "tableView:objectValueForTableColumn:row:", self, _tableColumns[aColumnIndex], aRowIndex); + objj_msgSend(dataView, "setObjectValue:", _objectValueCache[aColumnIndex][aRowIndex]); + return dataView; +} +}), new objj_method(sel_getUid("clearCells"), function $CPTableView__clearCells(self, _cmd) +{ with(self) +{ + var columnEnd = CPMaxRange(_visibleColumns), + rowEnd = CPMaxRange(_visibleRows); + for (var column = _visibleColumns.location; column < columnEnd; column++) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column]; + for (var row = _visibleRows.location; row < rowEnd; row++) + { + var cell = tableColumnCells[row]; + if (cell) + { + tableColumnCells[row] = nil; + objj_msgSend(tableColumn, "_markView:inRow:asPurgable:", cell, row, YES); + } + else + { + CPLog.warn("Missing cell? " + row + "," + column); + } + } + } + _visibleColumns = CPMakeRange(0,0); + _visibleRows = CPMakeRange(0,0); +} +}), new objj_method(sel_getUid("loadTableCellsInRect:"), function $CPTableView__loadTableCellsInRect_(self, _cmd, aRect) +{ with(self) +{ + if (!_dataSource) + return; + var rowStart = MAX(0, objj_msgSend(self, "_rowAtY:", CGRectGetMinY(aRect)) - 1), + rowEnd = MIN(_numberOfRows, objj_msgSend(self, "_rowAtY:", CGRectGetMaxY(aRect)) + 1), + visibleRows = CPMakeRange(rowStart, rowEnd - rowStart), + columnStart = MAX(0, objj_msgSend(self, "_columnAtX:", CGRectGetMinX(aRect))), + columnEnd = MIN(_tableColumns.length, objj_msgSend(self, "_columnAtX:", CGRectGetMaxX(aRect)) + 1), + visibleColumns = CPMakeRange(columnStart, columnEnd - columnStart); + if (CPEqualRanges(_visibleRows, visibleRows) && CPEqualRanges(_visibleColumns, visibleColumns)) + return; + var unionVisibleRows = CPUnionRange(_visibleRows, visibleRows), + unionVisibleColumns = CPUnionRange(_visibleColumns, visibleColumns); + if (unionVisibleRows.length * unionVisibleColumns.length <= + (_visibleRows.length * _visibleColumns.length) + (visibleRows.length * visibleColumns.length)) + { + var cEnd = CPMaxRange(unionVisibleColumns), + rEnd = CPMaxRange(unionVisibleRows), + cell; + for (var column = unionVisibleColumns.location; column < cEnd; ++column) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column], + columnIsVisible = CPLocationInRange(column, visibleColumns), + newCells = []; + for (var row = unionVisibleRows.location; row < rEnd; ++row) + { + if (cell = tableColumnCells[row]) + { + if (!columnIsVisible || !CPLocationInRange(row, visibleRows)) + { + tableColumnCells[row] = nil; + objj_msgSend(tableColumn, "_markView:inRow:asPurgable:", cell, row, YES); + } + } + else + { + newCells.push(row); + } + } + while (newCells.length > 0) + { + var row = newCells.pop(); + tableColumnCells[row] = objj_msgSend(self, "newCellForRow:column:avoidingRows:", row, column, visibleRows); + if (!tableColumnCells[row]._superview) + objj_msgSend(_tableColumnViews[column], "addSubview:", tableColumnCells[row]); + else if (tableColumnCells[row]._isHidden) + objj_msgSend(tableColumnCells[row], "setHidden:", NO); + } + objj_msgSend(tableColumn, "_purge"); + } + } + else { + var cEnd = CPMaxRange(_visibleColumns), + rEnd = CPMaxRange(_visibleRows), + cell; + for (var column = _visibleColumns.location; column < cEnd; ++column) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column], + columnIsVisible = CPLocationInRange(column, visibleColumns); + for (var row = _visibleRows.location; row < rEnd; ++row) + { + if (cell = tableColumnCells[row]) + { + if (!columnIsVisible || !CPLocationInRange(row, visibleRows)) + { + tableColumnCells[row] = nil; + objj_msgSend(tableColumn, "_markView:inRow:asPurgable:", cell, row, YES); + } + } + } + } + var cEnd = CPMaxRange(visibleColumns), + rEnd = CPMaxRange(visibleRows); + for (var column = visibleColumns.location; column < cEnd; ++column) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column]; + for (var row = visibleRows.location; row < rEnd; ++row) + { + tableColumnCells[row] = objj_msgSend(self, "newCellForRow:column:avoidingRows:", row, column, visibleRows); + if (!tableColumnCells[row]._superview) + objj_msgSend(_tableColumnViews[column], "addSubview:", tableColumnCells[row]); + else if (tableColumnCells[row]._isHidden) + objj_msgSend(tableColumnCells[row], "setHidden:", NO); + } + objj_msgSend(tableColumn, "_purge"); + } + } + _visibleRows = visibleRows; + _visibleColumns = visibleColumns; +} +}), new objj_method(sel_getUid("setIntercellSpacing:"), function $CPTableView__setIntercellSpacing_(self, _cmd, aSize) +{ with(self) +{ + if (_intercellSpacing.width != aSize.width) + { + var i = 1, + delta = aSize.width - _intercellSpacing.width; + total = delta; + for (; i < _tableColumns.length; ++i, total += delta) + { + var origin = objj_msgSend(_tableColumnViews[i], "frame").origin; + objj_msgSend(_tableColumnViews[i], "setFrameOrigin:", CGPointMake(origin.x + total, origin.y)); + } + } + if (_intercellSpacing.height != aSize.height) + { + var i = 0; + for (; i < _tableColumns.length; ++i, total += delta) + { + objj_msgSend(_tableColumnViews[i], "setFrameSize:", CGSizeMake(objj_msgSend(_tableColumnViews[i], "width"), _numberOfRows * (_rowHeight + _intercellSpacing.height))); + var j = 1, + y = _rowHeight + _intercellSpacing.height; + for (; j < _numberOfRows; ++i, y += _rowHeight + _intercellSpacing.height) + { + if (!_tableCells[i][j]) + continue; + objj_msgSend(_tableCells[i][j], "setFrameOrigin:", CPPointMake(0.0, y)); + } + } + } + _intercellSpacing = CPSizeCreateCopy(aSize); +} +}), new objj_method(sel_getUid("intercellSpacing"), function $CPTableView__intercellSpacing(self, _cmd) +{ with(self) +{ + return _intercellSpacing; +} +}), new objj_method(sel_getUid("setRowHeight:"), function $CPTableView__setRowHeight_(self, _cmd, aRowHeight) +{ with(self) +{ + if (_rowHeight == aRowHeight) + return; + _rowHeight = aRowHeight; + if (_hasVariableHeightRows) + return; + for (var row = 0; row < _numberOfRows; ++row) + for (var column = 0; column < _tableColumns.length; ++column) + objj_msgSend(_tableCells[column][row], "setFrameOrigin:", CPPointMake(0.0, row * (_rowHeight + _intercellSpacing.height))); +} +}), new objj_method(sel_getUid("rowHeight"), function $CPTableView__rowHeight(self, _cmd) +{ with(self) +{ + return _rowHeight; +} +}), new objj_method(sel_getUid("addTableColumn:"), function $CPTableView__addTableColumn_(self, _cmd, aTableColumn) +{ with(self) +{ + var i = 0, + x = _tableColumns.length ? CPRectGetMaxX(objj_msgSend(self, "rectOfColumn:", _tableColumns.length - 1)) + _intercellSpacing.width : 0.0, + tableColumnView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(x, 0.0, objj_msgSend(aTableColumn, "width"), objj_msgSend(self, "_columnHeight"))), + tableColumnCells = []; + objj_msgSend(_tableColumns, "addObject:", aTableColumn); + objj_msgSend(_tableColumnViews, "addObject:", tableColumnView); + objj_msgSend(self, "addSubview:", tableColumnView); + objj_msgSend(_tableCells, "addObject:", tableColumnCells); + for (; i < _numberOfRows; ++i) + _tableCells[_tableColumns.length-1][i] = nil; +} +}), new objj_method(sel_getUid("removeTableColumn:"), function $CPTableView__removeTableColumn_(self, _cmd, aTableColumn) +{ with(self) +{ + var frame = objj_msgSend(self, "frame"), + width = objj_msgSend(aTableColumn, "width") + _intercellSpacing.width, + index = objj_msgSend(_tableColumns, "indexOfObjectIdenticalTo:", aTableColumn); + objj_msgSend(_tableColumnViews[i], "removeFromSuperview"); + objj_msgSend(_tableCells, "removeObjectAtIndex:", index); + objj_msgSend(_tableColumns, "removeObjectAtIndex:", index); + objj_msgSend(_tableColumnViews, "removeObjectAtIndex:", index); + for (; index < _tableColumns.length; ++ index) + objj_msgSend(_tableColumnViews[index], "setFrameOrigin:", CPPointMake(CPRectGetMinX(objj_msgSend(_tableColumnViews[index], "frame")) - width, 0.0)) + objj_msgSend(self, "setFrameSize:", CPSizeMake(CPRectGetWidth(frame) - width, CPRectGetHeight(frame))); +} +}), new objj_method(sel_getUid("moveColumn:toColumn:"), function $CPTableView__moveColumn_toColumn_(self, _cmd, fromIndex, toIndex) +{ with(self) +{ + if (fromIndex == toIndex) + return; +} +}), new objj_method(sel_getUid("tableColumns"), function $CPTableView__tableColumns(self, _cmd) +{ with(self) +{ + return _tableColumns; +} +}), new objj_method(sel_getUid("tableColumnWithIdentifier:"), function $CPTableView__tableColumnWithIdentifier_(self, _cmd, anObject) +{ with(self) +{ + for (var i = 0; i < _tableColumns.length; i++) + if (objj_msgSend(_tableColumns[i], "isEqual:", anObject)) + return _tableColumns[i]; + return nil; +} +}), new objj_method(sel_getUid("numberOfColumns"), function $CPTableView__numberOfColumns(self, _cmd) +{ with(self) +{ + return _tableColumns.length; +} +}), new objj_method(sel_getUid("numberOfRows"), function $CPTableView__numberOfRows(self, _cmd) +{ with(self) +{ + return _numberOfRows; +} +}), new objj_method(sel_getUid("tile"), function $CPTableView__tile(self, _cmd) +{ with(self) +{ + var HEIGHT = 10.0; +} +}), new objj_method(sel_getUid("setDataSource:"), function $CPTableView__setDataSource_(self, _cmd, aDataSource) +{ with(self) +{ + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("numberOfRowsInTableView:"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source doesn't support 'numberOfRowsInTableView:'"); + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("tableView:objectValueForTableColumn:row:"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source doesn't support 'tableView:objectValueForTableColumn:row:'"); + _dataSource = aDataSource; + objj_msgSend(self, "reloadData"); +} +}), new objj_method(sel_getUid("dataSource"), function $CPTableView__dataSource(self, _cmd) +{ with(self) +{ + return _dataSource; +} +}), new objj_method(sel_getUid("delegate"), function $CPTableView__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPTableView__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate === aDelegate) + return; + var notificationCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidMove:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewColumnDidMoveNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidResize:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewColumnDidResizeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionDidChange:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewSelectionDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionIsChanging:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewSelectionIsChangingNotification, self); + _delegate = aDelegate; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidMove:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewColumnDidMove:"), CPTableViewColumnDidMoveNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidResize:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewColumnDidResize:"), CPTableViewColumnDidResizeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionDidChange:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewSelectionDidChange:"), CPTableViewSelectionDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionIsChanging:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewSelectionIsChanging:"), CPTableViewSelectionIsChangingNotification, self); + _delegateSelectorsCache = 0; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:willDisplayCell:forTableColumn:row:"))) + _delegateSelectorsCache |= _CPTableViewWillDisplayCellSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldSelectRow:"))) + _delegateSelectorsCache |= _CPTableViewShouldSelectRowSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldSelectTableColumn:"))) + _delegateSelectorsCache |= _CPTableViewShouldSelectTableColumnSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("selectionShouldChangeInTableView:"))) + _delegateSelectorsCache |= _CPTableViewSelectionShouldChangeSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldEditTableColumn:row:"))) + _delegateSelectorsCache |= _CPTableViewShouldEditTableColumnSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:selectionIndexesForProposedSelection:"))) + _delegateSelectorsCache |= _CPTableViewSelectionIndexesForProposedSelectionSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:heightOfRow:"))) + { + _delegateSelectorsCache |= _CPTableViewHeightOfRowSelector; + _hasVariableHeightRows = YES; + } + else + _hasVariableHeightRows = NO; +} +}), new objj_method(sel_getUid("noteNumberOfRowsChanged"), function $CPTableView__noteNumberOfRowsChanged(self, _cmd) +{ with(self) +{ + var numberOfRows = objj_msgSend(_dataSource, "numberOfRowsInTableView:", self); + if (_numberOfRows != numberOfRows) + { + _numberOfRows = numberOfRows; + objj_msgSend(self, "_recalculateColumnHeight"); + } +} +}), new objj_method(sel_getUid("noteHeightOfRowsWithIndexesChanged:"), function $CPTableView__noteHeightOfRowsWithIndexesChanged_(self, _cmd, indexSet) +{ with(self) +{ + objj_msgSend(self, "_recalculateColumnHeight"); +} +}), new objj_method(sel_getUid("rectOfRow:"), function $CPTableView__rectOfRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return CPRectMake(0.0, (_hasVariableHeightRows ? _rowMinYs[aRowIndex] : (aRowIndex * (_rowHeight + _intercellSpacing.height))), CPRectGetWidth(objj_msgSend(self, "bounds")), (_hasVariableHeightRows ? _rowHeights[aRowIndex] : _rowHeight)); +} +}), new objj_method(sel_getUid("rectOfColumn:"), function $CPTableView__rectOfColumn_(self, _cmd, aColumnIndex) +{ with(self) +{ + return objj_msgSend(_tableColumnViews[aColumnIndex], "frame"); +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPTableView__sizeToFit(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_recalculateColumnHeight"), function $CPTableView___recalculateColumnHeight(self, _cmd) +{ with(self) +{ + var oldColumnHeight = _columnHeight; + if (_hasVariableHeightRows) + { + _rowMinYs[0] = 0; + for (var row = 0; row < _numberOfRows; row++) + { + _rowHeights[row] = objj_msgSend(_delegate, "tableView:heightOfRow:", self, row); + _rowMinYs[row+1] = _rowMinYs[row] + _rowHeights[row] + _intercellSpacing.height; + } + _columnHeight = _rowMinYs[_numberOfRows]; + } + else + _columnHeight = _numberOfRows * (_rowHeight + _intercellSpacing.height); + var count = _tableColumnViews.length; + while (count--) + objj_msgSend(_tableColumnViews[count], "setFrameSize:", CGSizeMake(objj_msgSend(_tableColumns[count], "width"), _columnHeight)); + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(objj_msgSend(self, "frame")), _columnHeight)); +} +}), new objj_method(sel_getUid("visibleRectInParent"), function $CPTableView__visibleRectInParent(self, _cmd) +{ with(self) +{ + var superview = objj_msgSend(self, "superview"); + if (!superview) + return objj_msgSend(self, "bounds"); + return objj_msgSend(self, "convertRect:fromView:", CGRectIntersection(objj_msgSend(superview, "bounds"), objj_msgSend(self, "frame")), superview); +} +}), new objj_method(sel_getUid("reloadData"), function $CPTableView__reloadData(self, _cmd) +{ with(self) +{ + var oldNumberOfRows = _numberOfRows; + _numberOfRows = objj_msgSend(_dataSource, "numberOfRowsInTableView:", self); + if (oldNumberOfRows != _numberOfRows) + { + objj_msgSend(self, "_recalculateColumnHeight"); + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(objj_msgSend(self, "frame")), objj_msgSend(self, "_columnHeight"))); + } + _objectValueCache = []; + objj_msgSend(self, "clearCells"); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPTableView__layoutSubviews(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "loadTableCellsInRect:", objj_msgSend(self, "visibleRectInParent")); +} +}), new objj_method(sel_getUid("displaySoon"), function $CPTableView__displaySoon(self, _cmd) +{ with(self) +{ + objj_msgSend(_scrollTimer, "invalidate"); + _scrollTimer = objj_msgSend(CPTimer, "scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:", 0.05, self, sel_getUid("displayNow"), nil, NO); +} +}), new objj_method(sel_getUid("displayNow"), function $CPTableView__displayNow(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("viewDidMoveToSuperview"), function $CPTableView__viewDidMoveToSuperview(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(objj_msgSend(self, "enclosingScrollView"), "contentView"), "setPostsBoundsChangedNotifications:", YES); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", self, sel_getUid("viewBoundsChanged:"), CPViewBoundsDidChangeNotification, objj_msgSend(objj_msgSend(self, "enclosingScrollView"), "contentView")); +} +}), new objj_method(sel_getUid("viewBoundsChanged:"), function $CPTableView__viewBoundsChanged_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "displayNow"); +} +}), new objj_method(sel_getUid("setAllowsMultipleSelection:"), function $CPTableView__setAllowsMultipleSelection_(self, _cmd, allowsMultipleSelection) +{ with(self) +{ + if (_allowsMultipleSelection === allowsMultipleSelection) + return; + _allowsMultipleSelection = allowsMultipleSelection; +} +}), new objj_method(sel_getUid("allowsMultipleSelection"), function $CPTableView__allowsMultipleSelection(self, _cmd) +{ with(self) +{ + return _allowsMultipleSelection; +} +}), new objj_method(sel_getUid("setAllowsEmptySelection:"), function $CPTableView__setAllowsEmptySelection_(self, _cmd, allowsEmptySelection) +{ with(self) +{ + if (_allowsEmptySelection === allowsEmptySelection) + return; + _allowsEmptySelection = allowsEmptySelection; +} +}), new objj_method(sel_getUid("allowsEmptySelection"), function $CPTableView__allowsEmptySelection(self, _cmd) +{ with(self) +{ + return _allowsEmptySelection; +} +}), new objj_method(sel_getUid("rowAtPoint:"), function $CPTableView__rowAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var index = objj_msgSend(self, "_rowAtY:", aPoint.y) + if (index >= 0 && index < _numberOfRows) + return index; + else + return CPNotFound; +} +}), new objj_method(sel_getUid("columnAtPoint:"), function $CPTableView__columnAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var index = objj_msgSend(self, "_columnAtX:", aPoint.x) + if (index >= 0 && index < _tableColumns.length) + return index; + else + return CPNotFound; +} +}), new objj_method(sel_getUid("_rowAtY:"), function $CPTableView___rowAtY_(self, _cmd, y) +{ with(self) +{ + if (_hasVariableHeightRows) + { + var a = 0, + b = _numberOfRows; + if (y < _rowMinYs[0]) + return -1; + if (y >= _rowMinYs[_rowMinYs.length-1]) + return _numberOfRows; + while (true) + { + var half = a + Math.floor((b - a) / 2); + if (y < _rowMinYs[half]) + b = half; + else if (half < _numberOfRows-1 && y >= _rowMinYs[half+1]) + a = half; + else + return half; + } + } + else + return FLOOR(y / (_rowHeight + _intercellSpacing.height)); +} +}), new objj_method(sel_getUid("_columnAtX:"), function $CPTableView___columnAtX_(self, _cmd, x) +{ with(self) +{ + var a = 0, + b = _tableColumns.length; + var last = objj_msgSend(_tableColumnViews[_tableColumns.length-1], "frame"); + if (x < objj_msgSend(_tableColumnViews[0], "frame").origin.x) + return -1; + if (x >= last.origin.x + last.size.width) + return _tableColumns.length; + while (true) + { + var half = a + Math.floor((b - a) / 2); + if (x < objj_msgSend(_tableColumnViews[half], "frame").origin.x) + b = half; + else if (half < _tableColumns.length-1 && x >= objj_msgSend(_tableColumnViews[half+1], "frame").origin.x) + a = half; + else + return half; + } +} +}), new objj_method(sel_getUid("selectRowIndexes:byExtendingSelection:"), function $CPTableView__selectRowIndexes_byExtendingSelection_(self, _cmd, indexes, extend) +{ with(self) +{ + if (extend) + _selectedRowIndexes = objj_msgSend(objj_msgSend(_selectedRowIndexes, "copy"), "addIndexes:", indexes); + else if (objj_msgSend(indexes, "count") > 0 || _allowsEmptySelection) + _selectedRowIndexes = objj_msgSend(indexes, "copy"); + objj_msgSend(self, "_drawSelection"); +} +}), new objj_method(sel_getUid("selectedRowIndexes"), function $CPTableView__selectedRowIndexes(self, _cmd) +{ with(self) +{ + return _selectedRowIndexes; +} +}), new objj_method(sel_getUid("numberOfSelectedRows"), function $CPTableView__numberOfSelectedRows(self, _cmd) +{ with(self) +{ + return objj_msgSend(_selectedRowIndexes, "count"); +} +}), new objj_method(sel_getUid("deselectAll:"), function $CPTableView__deselectAll_(self, _cmd, sender) +{ with(self) +{ + if (!_allowsEmptySelection || objj_msgSend(_selectedRowIndexes, "count") === 0 || + ((_delegateSelectorsCache & _CPTableViewSelectionShouldChangeSelector) && !objj_msgSend(_delegate, "selectionShouldChangeInTableView:", self))) + return; + objj_msgSend(self, "selectRowIndexes:byExtendingSelection:", objj_msgSend(CPIndexSet, "indexSet"), NO); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionDidChangeNotification, self, nil); +} +}), new objj_method(sel_getUid("editColumn:row:withEvent:select:"), function $CPTableView__editColumn_row_withEvent_select_(self, _cmd, columnIndex, rowIndex, theEvent, flag) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_updateSelectionWithMouseAtRow:"), function $CPTableView___updateSelectionWithMouseAtRow_(self, _cmd, aRow) +{ with(self) +{ + var newSelection; + if (_allowsMultipleSelection) + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndexesInRange:", CPMakeRange(MIN(aRow, _selectionStartRow), ABS(aRow-_selectionStartRow)+1)); + else if (aRow >= 0 && aRow < _numberOfRows) + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndex:", aRow); + else + newSelection = objj_msgSend(CPIndexSet, "indexSet"); + if (_allowsMultipleSelection && _selectionModifier & (CPCommandKeyMask | CPControlKeyMask | CPAlternateKeyMask)) + { + var intersection = objj_msgSend(newSelection, "copy"), + difference = objj_msgSend(newSelection, "copy"); + objj_msgSend(difference, "removeIndexes:", _previousSelectedRowIndexes); + objj_msgSend(intersection, "removeIndexes:", difference) + objj_msgSend(newSelection, "addIndexes:", _previousSelectedRowIndexes); + objj_msgSend(newSelection, "removeIndexes:", intersection); + } + if (!objj_msgSend(newSelection, "isEqualToIndexSet:", _selectedRowIndexes)) + { + if ((_delegateSelectorsCache & _CPTableViewSelectionShouldChangeSelector) && !objj_msgSend(_delegate, "selectionShouldChangeInTableView:", self)) + return; + if (_delegateSelectorsCache & _CPTableViewSelectionIndexesForProposedSelectionSelector) + newSelection = objj_msgSend(_delegate, "tableView:selectionIndexesForProposedSelection:", self, newSelection); + else if (_delegateSelectorsCache & _CPTableViewShouldSelectRowSelector) + { + var indexes = []; + objj_msgSend(newSelection, "getIndexes:maxCount:inIndexRange:", indexes, Number.MAX_VALUE, nil); + for (var i = 0; i < indexes.length; i++) + if (!objj_msgSend(_delegate, "tableView:shouldSelectRow:", self, indexes[i])) + objj_msgSend(newSelection, "removeIndex:", indexes[i]); + } + } + if (!_allowsEmptySelection && objj_msgSend(newSelection, "count") === 0) + return; + if (!objj_msgSend(newSelection, "isEqualToIndexSet:", _selectedRowIndexes)) + { + objj_msgSend(self, "selectRowIndexes:byExtendingSelection:", newSelection, NO); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionIsChangingNotification, self, nil); + } +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPTableView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "trackSelection:", anEvent); +} +}), new objj_method(sel_getUid("setDoubleAction:"), function $CPTableView__setDoubleAction_(self, _cmd, aSelector) +{ with(self) +{ + _doubleAction = aSelector; +} +}), new objj_method(sel_getUid("doubleAction"), function $CPTableView__doubleAction(self, _cmd) +{ with(self) +{ + return _doubleAction; +} +}), new objj_method(sel_getUid("clickedColumn"), function $CPTableView__clickedColumn(self, _cmd) +{ with(self) +{ + return _clickedColumn; +} +}), new objj_method(sel_getUid("clickedRow"), function $CPTableView__clickedRow(self, _cmd) +{ with(self) +{ + return _clickedRow; +} +}), new objj_method(sel_getUid("trackSelection:"), function $CPTableView__trackSelection_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"), + point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil), + currentRow = MAX(0, MIN(_numberOfRows-1, objj_msgSend(self, "_rowAtY:", point.y))); + if (type == CPLeftMouseUp) + { + _clickedRow = objj_msgSend(self, "rowAtPoint:", point); + _clickedColumn = objj_msgSend(self, "columnAtPoint:", point); + if (objj_msgSend(anEvent, "clickCount") === 2) + { + CPLog.warn("edit?!"); + objj_msgSend(self, "sendAction:to:", _doubleAction, _target); + } + else + { + if (!objj_msgSend(_previousSelectedRowIndexes, "isEqualToIndexSet:", _selectedRowIndexes)) + { + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionDidChangeNotification, self, nil); + } + objj_msgSend(self, "sendAction:to:", _action, _target); + } + return; + } + if (type == CPLeftMouseDown) + { + _previousSelectedRowIndexes = _selectedRowIndexes; + _selectionModifier = objj_msgSend(anEvent, "modifierFlags"); + if (_selectionModifier & CPShiftKeyMask) + _selectionStartRow = (ABS(objj_msgSend(_previousSelectedRowIndexes, "firstIndex") - currentRow) < ABS(objj_msgSend(_previousSelectedRowIndexes, "lastIndex") - currentRow)) ? + objj_msgSend(_previousSelectedRowIndexes, "firstIndex") : objj_msgSend(_previousSelectedRowIndexes, "lastIndex"); + else + _selectionStartRow = currentRow; + objj_msgSend(self, "_updateSelectionWithMouseAtRow:", currentRow); + } + else if (type == CPLeftMouseDragged) + { + objj_msgSend(self, "_updateSelectionWithMouseAtRow:", currentRow); + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackSelection:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("_drawSelection"), function $CPTableView___drawSelection(self, _cmd) +{ with(self) +{ + if (!_currentlySelected) { + _currentlySelected = objj_msgSend(CPIndexSet, "indexSet"); + _selectionViews = []; + _selectionViewsPool = []; + } + var removeSet = objj_msgSend(_currentlySelected, "copy"), + indexesToRemove = []; + objj_msgSend(removeSet, "removeIndexes:", _selectedRowIndexes); + objj_msgSend(removeSet, "getIndexes:maxCount:inIndexRange:", indexesToRemove, Number.MAX_VALUE, nil); + var addSet = objj_msgSend(_selectedRowIndexes, "copy"), + indexesToAdd = []; + objj_msgSend(addSet, "removeIndexes:", _currentlySelected); + objj_msgSend(addSet, "getIndexes:maxCount:inIndexRange:", indexesToAdd, Number.MAX_VALUE, nil); + for (var i = 0; i < indexesToRemove.length; i++) + { + var row = indexesToRemove[i]; + for (var column = 0; column < _tableColumns.length; column++) + if (objj_msgSend(_tableCells[column][row], "respondsToSelector:", sel_getUid("highlight:"))) + objj_msgSend(_tableCells[column][row], "highlight:", NO); + } + for (var i = 0; i < indexesToAdd.length; i++) + { + var row = indexesToAdd[i]; + for (var column = 0; column < _tableColumns.length; column++) + if (objj_msgSend(_tableCells[column][row], "respondsToSelector:", sel_getUid("highlight:"))) + objj_msgSend(_tableCells[column][row], "highlight:", YES); + } + for (var i = 0; i < indexesToAdd.length; i++) + { + var index = indexesToAdd[i], + view; + if (indexesToRemove.length > 0) + { + view = _selectionViews[indexesToRemove.pop()]; + } + else if (_selectionViewsPool.length > 0) + { + view = _selectionViewsPool.pop(); + objj_msgSend(self, "addSubview:positioned:relativeTo:", view, CPWindowBelow, nil); + } + else + { + view = objj_msgSend(objj_msgSend(CPView, "alloc"), "init"); + objj_msgSend(view, "setBackgroundColor:", objj_msgSend(CPColor, "alternateSelectedControlColor")); + objj_msgSend(self, "addSubview:positioned:relativeTo:", view, CPWindowBelow, nil); + } + _selectionViews[index] = view; + var frame = objj_msgSend(self, "rectOfRow:", index); + frame.size.height += _intercellSpacing.height - 1; + objj_msgSend(view, "setFrame:", frame); + } + for (var i = 0; i < indexesToRemove.length; i++) + { + var row = indexesToRemove[i], + view = _selectionViews[row]; + objj_msgSend(view, "removeFromSuperview"); + _selectionViewsPool.push(view); + } + _currentlySelected = objj_msgSend(_selectedRowIndexes, "copy"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPTableView__initialize(self, _cmd) +{ with(self) +{ +} +})]); +} +var CPTableViewDataSourceKey = "CPTableViewDataSourceKey", + CPTableViewDelegateKey = "CPTableViewDelegateKey", + CPTableViewHeaderViewKey = "CPTableViewHeaderViewKey", + CPTableViewTableColumnsKey = "CPTableViewTableColumnsKey", + CPTableViewRowHeightKey = "CPTableViewRowHeightKey", + CPTableViewIntercellSpacingKey = "CPTableViewIntercellSpacingKey", + CPTableViewMultipleSelectionKey = "CPTableViewMultipleSelectionKey", + CPTableViewEmptySelectionKey = "CPTableViewEmptySelectionKey"; +{ +var the_class = objj_getClass("CPTableView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTableView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTableView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder)) + { + objj_msgSend(self, "_init"); + _dataSource = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableViewDataSourceKey); + _delegate = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableViewDelegateKey); + _rowHeight = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableViewRowHeightKey); + _intercellSpacing = objj_msgSend(aCoder, "decodeSizeForKey:", CPTableViewIntercellSpacingKey); + _allowsMultipleSelection = objj_msgSend(aCoder, "decodeBoolForKey:", CPTableViewMultipleSelectionKey); + _allowsEmptySelection = objj_msgSend(aCoder, "decodeBoolForKey:", CPTableViewEmptySelectionKey); + var tableColumns = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableViewTableColumnsKey); + for (var i = 0; i < tableColumns.length; i++) + objj_msgSend(self, "addTableColumn:", tableColumns[i]); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTableView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _dataSource, CPTableViewDataSourceKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _delegate, CPTableViewDelegateKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _tableColumns, CPTableViewTableColumnsKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _rowHeight, CPTableViewRowHeightKey); + objj_msgSend(aCoder, "encodeSize:forKey:", _intercellSpacing, CPTableViewIntercellSpacingKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _allowsMultipleSelection, CPTableViewMultipleSelectionKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _allowsEmptySelection, CPTableViewEmptySelectionKey); +} +})]); +} +{ +var the_class = objj_getClass("CPColor") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPColor\"")); +var meta_class = the_class.isa;class_addMethods(meta_class, [new objj_method(sel_getUid("alternateSelectedControlColor"), function $CPColor__alternateSelectedControlColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.22, 0.46, 0.84, 1.0]); +} +}), new objj_method(sel_getUid("secondarySelectedControlColor"), function $CPColor__secondarySelectedControlColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.83, 0.83, 0.83, 1.0]); +} +})]); +} + +p;11;CPTabView.ji;13;CPImageView.ji;15;CPTabViewItem.ji;8;CPView.jc;26103; +CPTopTabsBezelBorder = 0; +CPNoTabsBezelBorder = 4; +CPNoTabsLineBorder = 5; +CPNoTabsNoBorder = 6; +var CPTabViewBezelBorderLeftImage = nil, + CPTabViewBackgroundCenterImage = nil, + CPTabViewBezelBorderRightImage = nil, + CPTabViewBezelBorderColor = nil, + CPTabViewBezelBorderBackgroundColor = nil; +var LEFT_INSET = 7.0, + RIGHT_INSET = 7.0; +var CPTabViewDidSelectTabViewItemSelector = 1, + CPTabViewShouldSelectTabViewItemSelector = 2, + CPTabViewWillSelectTabViewItemSelector = 4, + CPTabViewDidChangeNumberOfTabViewItemsSelector = 8; +{var the_class = objj_allocateClassPair(CPView, "CPTabView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_labelsView"), new objj_ivar("_backgroundView"), new objj_ivar("_separatorView"), new objj_ivar("_auxiliaryView"), new objj_ivar("_contentView"), new objj_ivar("_tabViewItems"), new objj_ivar("_selectedTabViewItem"), new objj_ivar("_tabViewType"), new objj_ivar("_delegate"), new objj_ivar("_delegateSelectors")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPTabView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _tabViewType = CPTopTabsBezelBorder; + _tabViewItems = []; + } + return self; +} +}), new objj_method(sel_getUid("viewDidMoveToWindow"), function $CPTabView__viewDidMoveToWindow(self, _cmd) +{ with(self) +{ + if (_tabViewType != CPTopTabsBezelBorder || _labelsView) + return; + objj_msgSend(self, "_createBezelBorder"); + objj_msgSend(self, "layoutSubviews"); +} +}), new objj_method(sel_getUid("_createBezelBorder"), function $CPTabView___createBezelBorder(self, _cmd) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"); + _labelsView = objj_msgSend(objj_msgSend(_CPTabLabelsView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, CGRectGetWidth(bounds), 0.0)); + objj_msgSend(_labelsView, "setTabView:", self); + objj_msgSend(_labelsView, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(self, "addSubview:", _labelsView); + _backgroundView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_backgroundView, "setBackgroundColor:", CPTabViewBezelBorderBackgroundColor); + objj_msgSend(_backgroundView, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + objj_msgSend(self, "addSubview:", _backgroundView); + _separatorView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_separatorView, "setBackgroundColor:", objj_msgSend(objj_msgSend(self, "class"), "bezelBorderColor")); + objj_msgSend(_separatorView, "setAutoresizingMask:", CPViewWidthSizable | CPViewMaxYMargin); + objj_msgSend(self, "addSubview:", _separatorView); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPTabView__layoutSubviews(self, _cmd) +{ with(self) +{ + if (_tabViewType == CPTopTabsBezelBorder) + { + var backgroundRect = objj_msgSend(self, "bounds"), + labelsViewHeight = objj_msgSend(_CPTabLabelsView, "height"); + backgroundRect.origin.y += labelsViewHeight; + backgroundRect.size.height -= labelsViewHeight; + objj_msgSend(_backgroundView, "setFrame:", backgroundRect); + var auxiliaryViewHeight = 5.0; + if (_auxiliaryView) + { + auxiliaryViewHeight = CGRectGetHeight(objj_msgSend(_auxiliaryView, "frame")); + objj_msgSend(_auxiliaryView, "setFrame:", CGRectMake(LEFT_INSET, labelsViewHeight, CGRectGetWidth(backgroundRect) - LEFT_INSET - RIGHT_INSET, auxiliaryViewHeight)); + } + objj_msgSend(_separatorView, "setFrame:", CGRectMake(LEFT_INSET, labelsViewHeight + auxiliaryViewHeight, CGRectGetWidth(backgroundRect) - LEFT_INSET - RIGHT_INSET, 1.0)); + } + objj_msgSend(_contentView, "setFrame:", objj_msgSend(self, "contentRect")); +} +}), new objj_method(sel_getUid("addTabViewItem:"), function $CPTabView__addTabViewItem_(self, _cmd, aTabViewItem) +{ with(self) +{ + objj_msgSend(self, "insertTabViewItem:atIndex:", aTabViewItem, objj_msgSend(_tabViewItems, "count")); +} +}), new objj_method(sel_getUid("insertTabViewItem:atIndex:"), function $CPTabView__insertTabViewItem_atIndex_(self, _cmd, aTabViewItem, anIndex) +{ with(self) +{ + if (!_labelsView && _tabViewType == CPTopTabsBezelBorder) + objj_msgSend(self, "_createBezelBorder"); + objj_msgSend(_tabViewItems, "insertObject:atIndex:", aTabViewItem, anIndex); + objj_msgSend(_labelsView, "tabView:didAddTabViewItem:", self, aTabViewItem); + if (objj_msgSend(_tabViewItems, "count") == 1) + objj_msgSend(self, "selectFirstTabViewItem:", self); + if (_delegateSelectors & CPTabViewDidChangeNumberOfTabViewItemsSelector) + objj_msgSend(_delegate, "tabViewDidChangeNumberOfTabViewItems:", self); +} +}), new objj_method(sel_getUid("removeTabViewItem:"), function $CPTabView__removeTabViewItem_(self, _cmd, aTabViewItem) +{ with(self) +{ + objj_msgSend(_tabViewItems, "removeObjectIdenticalTo:", aTabViewItem); + objj_msgSend(_labelsView, "tabView:didRemoveTabViewItem:", self, aTabViewItem); + if (_delegateSelectors & CPTabViewDidChangeNumberOfTabViewItemsSelector) + objj_msgSend(_delegate, "tabViewDidChangeNumberOfTabViewItems:", self); +} +}), new objj_method(sel_getUid("indexOfTabViewItem:"), function $CPTabView__indexOfTabViewItem_(self, _cmd, aTabViewItem) +{ with(self) +{ + return objj_msgSend(_tabViewItems, "indexOfObjectIdenticalTo:", aTabViewItem); +} +}), new objj_method(sel_getUid("indexOfTabViewItemWithIdentifier:"), function $CPTabView__indexOfTabViewItemWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + var index = 0, + count = objj_msgSend(_tabViewItems, "count"); + for (; index < count; ++index) + if (objj_msgSend(objj_msgSend(_tabViewItems[index], "identifier"), "isEqual:", anIdentifier)) + return index; + return index; +} +}), new objj_method(sel_getUid("numberOfTabViewItems"), function $CPTabView__numberOfTabViewItems(self, _cmd) +{ with(self) +{ + return objj_msgSend(_tabViewItems, "count"); +} +}), new objj_method(sel_getUid("tabViewItemAtIndex:"), function $CPTabView__tabViewItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return _tabViewItems[anIndex]; +} +}), new objj_method(sel_getUid("tabViewItems"), function $CPTabView__tabViewItems(self, _cmd) +{ with(self) +{ + return _tabViewItems; +} +}), new objj_method(sel_getUid("selectFirstTabViewItem:"), function $CPTabView__selectFirstTabViewItem_(self, _cmd, aSender) +{ with(self) +{ + var count = objj_msgSend(_tabViewItems, "count"); + if (count) + objj_msgSend(self, "selectTabViewItemAtIndex:", 0); +} +}), new objj_method(sel_getUid("selectLastTabViewItem:"), function $CPTabView__selectLastTabViewItem_(self, _cmd, aSender) +{ with(self) +{ + var count = objj_msgSend(_tabViewItems, "count"); + if (count) + objj_msgSend(self, "selectTabViewItemAtIndex:", count - 1); +} +}), new objj_method(sel_getUid("selectNextTabViewItem:"), function $CPTabView__selectNextTabViewItem_(self, _cmd, aSender) +{ with(self) +{ + if (!_selectedTabViewItem) + return; + var index = objj_msgSend(self, "indexOfTabViewItem:", _selectedTabViewItem), + count = objj_msgSend(_tabViewItems, "count"); + objj_msgSend(self, "selectTabViewItemAtIndex:", index + 1 % count); +} +}), new objj_method(sel_getUid("selectPreviousTabViewItem:"), function $CPTabView__selectPreviousTabViewItem_(self, _cmd, aSender) +{ with(self) +{ + if (!_selectedTabViewItem) + return; + var index = objj_msgSend(self, "indexOfTabViewItem:", _selectedTabViewItem), + count = objj_msgSend(_tabViewItems, "count"); + objj_msgSend(self, "selectTabViewItemAtIndex:", index == 0 ? count : index - 1); +} +}), new objj_method(sel_getUid("selectTabViewItem:"), function $CPTabView__selectTabViewItem_(self, _cmd, aTabViewItem) +{ with(self) +{ + if ((_delegateSelectors & CPTabViewShouldSelectTabViewItemSelector) && !objj_msgSend(_delegate, "tabView:shouldSelectTabViewItem:", self, aTabViewItem)) + return; + if (_delegateSelectors & CPTabViewWillSelectTabViewItemSelector) + objj_msgSend(_delegate, "tabView:willSelectTabViewItem:", self, aTabViewItem); + if (_selectedTabViewItem) + { + _selectedTabViewItem._tabState = CPBackgroundTab; + objj_msgSend(_labelsView, "tabView:didChangeStateOfTabViewItem:", self, _selectedTabViewItem); + objj_msgSend(_contentView, "removeFromSuperview"); + objj_msgSend(_auxiliaryView, "removeFromSuperview"); + } + _selectedTabViewItem = aTabViewItem; + _selectedTabViewItem._tabState = CPSelectedTab; + _contentView = objj_msgSend(_selectedTabViewItem, "view"); + objj_msgSend(_contentView, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + _auxiliaryView = objj_msgSend(_selectedTabViewItem, "auxiliaryView"); + objj_msgSend(_auxiliaryView, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(self, "addSubview:", _contentView); + if (_auxiliaryView) + objj_msgSend(self, "addSubview:", _auxiliaryView); + objj_msgSend(_labelsView, "tabView:didChangeStateOfTabViewItem:", self, _selectedTabViewItem); + objj_msgSend(self, "layoutSubviews"); + if (_delegateSelectors & CPTabViewDidSelectTabViewItemSelector) + objj_msgSend(_delegate, "tabView:didSelectTabViewItem:", self, aTabViewItem); +} +}), new objj_method(sel_getUid("selectTabViewItemAtIndex:"), function $CPTabView__selectTabViewItemAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + objj_msgSend(self, "selectTabViewItem:", _tabViewItems[anIndex]); +} +}), new objj_method(sel_getUid("selectedTabViewItem"), function $CPTabView__selectedTabViewItem(self, _cmd) +{ with(self) +{ + return _selectedTabViewItem; +} +}), new objj_method(sel_getUid("setTabViewType:"), function $CPTabView__setTabViewType_(self, _cmd, aTabViewType) +{ with(self) +{ + if (_tabViewType == aTabViewType) + return; + _tabViewType = aTabViewType; + if (_tabViewType == CPNoTabsBezelBorder || _tabViewType == CPNoTabsLineBorder || _tabViewType == CPNoTabsNoBorder) + objj_msgSend(_labelsView, "removeFromSuperview"); + else if (!objj_msgSend(_labelsView, "superview")) + objj_msgSend(self, "addSubview:", _labelsView); + if (_tabViewType == CPNoTabsLineBorder || _tabViewType == CPNoTabsNoBorder) + objj_msgSend(_backgroundView, "removeFromSuperview"); + else if (!objj_msgSend(_backgroundView, "superview")) + objj_msgSend(self, "addSubview:", _backgroundView); + objj_msgSend(self, "layoutSubviews"); +} +}), new objj_method(sel_getUid("tabViewType"), function $CPTabView__tabViewType(self, _cmd) +{ with(self) +{ + return _tabViewType; +} +}), new objj_method(sel_getUid("contentRect"), function $CPTabView__contentRect(self, _cmd) +{ with(self) +{ + var contentRect = CGRectMakeCopy(objj_msgSend(self, "bounds")); + if (_tabViewType == CPTopTabsBezelBorder) + { + var labelsViewHeight = objj_msgSend(_CPTabLabelsView, "height"), + auxiliaryViewHeight = _auxiliaryView ? CGRectGetHeight(objj_msgSend(_auxiliaryView, "frame")) : 5.0, + separatorViewHeight = 1.0; + contentRect.origin.y += labelsViewHeight + auxiliaryViewHeight + separatorViewHeight; + contentRect.size.height -= labelsViewHeight + auxiliaryViewHeight + separatorViewHeight * 2.0; + contentRect.origin.x += LEFT_INSET; + contentRect.size.width -= LEFT_INSET + RIGHT_INSET; + } + return contentRect; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPTabView__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate == aDelegate) + return; + _delegate = aDelegate; + _delegateSelectors = 0; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tabView:shouldSelectTabViewItem:"))) + _delegateSelectors |= CPTabViewShouldSelectTabViewItemSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tabView:willSelectTabViewItem:"))) + _delegateSelectors |= CPTabViewWillSelectTabViewItemSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tabView:didSelectTabViewItem:"))) + _delegateSelectors |= CPTabViewDidSelectTabViewItemSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tabViewDidChangeNumberOfTabViewItems:"))) + _delegateSelectors |= CPTabViewDidChangeNumberOfTabViewItemsSelector; +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPTabView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + var location = objj_msgSend(_labelsView, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil), + tabViewItem = objj_msgSend(_labelsView, "representedTabViewItemAtPoint:", location); + if (tabViewItem) + objj_msgSend(self, "selectTabViewItem:", tabViewItem); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPTabView__initialize(self, _cmd) +{ with(self) +{ + if (self != CPTabView) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self), + emptyImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initByReferencingFile:size:", "", CGSizeMake(7.0, 0.0)), + backgroundImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/CPTabViewBezelBackgroundCenter.png"), CGSizeMake(1.0, 1.0)), + bezelBorderLeftImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/CPTabViewBezelBorderLeft.png"), CGSizeMake(7.0, 1.0)), + bezerBorderImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/CPTabViewBezelBorder.png"), CGSizeMake(1.0, 1.0)), + bezelBorderRightImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/CPTabViewBezelBorderRight.png"), CGSizeMake(7.0, 1.0)); + CPTabViewBezelBorderBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + emptyImage, + emptyImage, + emptyImage, + bezelBorderLeftImage, + backgroundImage, + bezelBorderRightImage, + bezelBorderLeftImage, + bezerBorderImage, + bezelBorderRightImage + ])); + CPTabViewBezelBorderColor = objj_msgSend(CPColor, "colorWithPatternImage:", bezerBorderImage); +} +}), new objj_method(sel_getUid("bezelBorderColor"), function $CPTabView__bezelBorderColor(self, _cmd) +{ with(self) +{ + return CPTabViewBezelBorderColor; +} +})]); +} +var CPTabViewItemsKey = "CPTabViewItemsKey", + CPTabViewSelectedItemKey = "CPTabViewSelectedItemKey", + CPTabViewTypeKey = "CPTabViewTypeKey", + CPTabViewDelegateKey = "CPTabViewDelegateKey"; +{ +var the_class = objj_getClass("CPTabView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTabView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTabView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder)) + { + _tabViewType = objj_msgSend(aCoder, "decodeIntForKey:", CPTabViewTypeKey); + _tabViewItems = []; + objj_msgSend(self, "_createBezelBorder"); + var items = objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewItemsKey); + for (var i = 0; items && i < items.length; i++) + objj_msgSend(self, "insertTabViewItem:atIndex:", items[i], i); + var selected = objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewSelectedItemKey); + if (selected) + objj_msgSend(self, "selectTabViewItem:", selected); + objj_msgSend(self, "setDelegate:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewDelegateKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTabView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + var actualSubviews = _subviews; + _subviews = []; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + _subviews = actualSubviews; + objj_msgSend(aCoder, "encodeObject:forKey:", _tabViewItems, CPTabViewItemsKey);; + objj_msgSend(aCoder, "encodeObject:forKey:", _selectedTabViewItem, CPTabViewSelectedItemKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _tabViewType, CPTabViewTypeKey); + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _delegate, CPTabViewDelegateKey); +} +})]); +} +var _CPTabLabelsViewBackgroundColor = nil, + _CPTabLabelsViewInsideMargin = 10.0, + _CPTabLabelsViewOutsideMargin = 15.0; +{var the_class = objj_allocateClassPair(CPView, "_CPTabLabelsView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_tabView"), new objj_ivar("_tabLabels")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $_CPTabLabelsView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _tabLabels = []; + objj_msgSend(self, "setBackgroundColor:", _CPTabLabelsViewBackgroundColor); + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(aFrame), 26.0)); + } + return self; +} +}), new objj_method(sel_getUid("setTabView:"), function $_CPTabLabelsView__setTabView_(self, _cmd, aTabView) +{ with(self) +{ + _tabView = aTabView; +} +}), new objj_method(sel_getUid("tabView"), function $_CPTabLabelsView__tabView(self, _cmd) +{ with(self) +{ + return _tabView; +} +}), new objj_method(sel_getUid("tabView:didAddTabViewItem:"), function $_CPTabLabelsView__tabView_didAddTabViewItem_(self, _cmd, aTabView, aTabViewItem) +{ with(self) +{ + var label = objj_msgSend(objj_msgSend(_CPTabLabel, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(label, "setTabViewItem:", aTabViewItem); + _tabLabels.push(label); + objj_msgSend(self, "addSubview:", label); + objj_msgSend(self, "layoutSubviews"); +} +}), new objj_method(sel_getUid("tabView:didRemoveTabViewItem:"), function $_CPTabLabelsView__tabView_didRemoveTabViewItem_(self, _cmd, aTabView, aTabViewItem) +{ with(self) +{ + var index = objj_msgSend(aTabView, "indexOfTabViewItem:", aTabViewItem), + label = _tabLabels[index]; + objj_msgSend(_tabLabels, "removeObjectAtIndex:", index); + objj_msgSend(label, "removeFromSuperview"); + objj_msgSend(self, "layoutSubviews"); +} +}), new objj_method(sel_getUid("tabView:didChangeStateOfTabViewItem:"), function $_CPTabLabelsView__tabView_didChangeStateOfTabViewItem_(self, _cmd, aTabView, aTabViewItem) +{ with(self) +{ + objj_msgSend(_tabLabels[objj_msgSend(aTabView, "indexOfTabViewItem:", aTabViewItem)], "setTabState:", objj_msgSend(aTabViewItem, "tabState")); + } +}), new objj_method(sel_getUid("representedTabViewItemAtPoint:"), function $_CPTabLabelsView__representedTabViewItemAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var index = 0, + count = _tabLabels.length; + for (; index < count; ++index) + { + var label = _tabLabels[index]; + if (CGRectContainsPoint(objj_msgSend(label, "frame"), aPoint)) + return objj_msgSend(label, "tabViewItem"); + } + return nil; +} +}), new objj_method(sel_getUid("layoutSubviews"), function $_CPTabLabelsView__layoutSubviews(self, _cmd) +{ with(self) +{ + var index = 0, + count = _tabLabels.length, + width = ((objj_msgSend(self, "bounds").size.width) - (count - 1) * _CPTabLabelsViewInsideMargin - 2 * _CPTabLabelsViewOutsideMargin) / count, + x = _CPTabLabelsViewOutsideMargin; + for (; index < count; ++index) + { + var label = _tabLabels[index], + frame = { origin: { x:x, y:8.0 }, size: { width:width, height:18.0 } }; + objj_msgSend(label, "setFrame:", frame); + x = (frame.origin.x + frame.size.width) + _CPTabLabelsViewInsideMargin; + } +} +}), new objj_method(sel_getUid("setFrameSize:"), function $_CPTabLabelsView__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + if (CGSizeEqualToSize(objj_msgSend(self, "frame").size, aSize)) + return; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setFrameSize:", aSize); + objj_msgSend(self, "layoutSubviews"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPTabLabelsView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPTabLabelsView, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPTabLabelsViewBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPThreePartImage, "alloc"), "initWithImageSlices:isVertical:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelsViewLeft.png"), CGSizeMake(12.0, 26.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelsViewCenter.png"), CGSizeMake(1.0, 26.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelsViewRight.png"), CGSizeMake(12.0, 26.0)) + ], NO)); +} +}), new objj_method(sel_getUid("height"), function $_CPTabLabelsView__height(self, _cmd) +{ with(self) +{ + return 26.0; +} +})]); +} +var _CPTabLabelBackgroundColor = nil, + _CPTabLabelSelectedBackgroundColor = nil; +{var the_class = objj_allocateClassPair(CPView, "_CPTabLabel"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_tabViewItem"), new objj_ivar("_labelField")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $_CPTabLabel__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _labelField = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(_labelField, "setAlignment:", CPCenterTextAlignment); + objj_msgSend(_labelField, "setFrame:", CGRectMake(5.0, 0.0, CGRectGetWidth(aFrame) - 10.0, 20.0)); + objj_msgSend(_labelField, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_labelField, "setFont:", objj_msgSend(CPFont, "boldSystemFontOfSize:", 11.0)); + objj_msgSend(self, "addSubview:", _labelField); + objj_msgSend(self, "setTabState:", CPBackgroundTab); + } + return self; +} +}), new objj_method(sel_getUid("setTabState:"), function $_CPTabLabel__setTabState_(self, _cmd, aTabState) +{ with(self) +{ + objj_msgSend(self, "setBackgroundColor:", aTabState == CPSelectedTab ? _CPTabLabelSelectedBackgroundColor : _CPTabLabelBackgroundColor); +} +}), new objj_method(sel_getUid("setTabViewItem:"), function $_CPTabLabel__setTabViewItem_(self, _cmd, aTabViewItem) +{ with(self) +{ + _tabViewItem = aTabViewItem; + objj_msgSend(self, "update"); +} +}), new objj_method(sel_getUid("tabViewItem"), function $_CPTabLabel__tabViewItem(self, _cmd) +{ with(self) +{ + return _tabViewItem; +} +}), new objj_method(sel_getUid("update"), function $_CPTabLabel__update(self, _cmd) +{ with(self) +{ + objj_msgSend(_labelField, "setStringValue:", objj_msgSend(_tabViewItem, "label")); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPTabLabel__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPTabLabel, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPTabLabelBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPThreePartImage, "alloc"), "initWithImageSlices:isVertical:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelBackgroundLeft.png"), CGSizeMake(6.0, 18.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelBackgroundCenter.png"), CGSizeMake(1.0, 18.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelBackgroundRight.png"), CGSizeMake(6.0, 18.0)) + ], NO)); + _CPTabLabelSelectedBackgroundColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPThreePartImage, "alloc"), "initWithImageSlices:isVertical:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelSelectedLeft.png"), CGSizeMake(3.0, 18.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelSelectedCenter.png"), CGSizeMake(1.0, 18.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPTabView/_CPTabLabelSelectedRight.png"), CGSizeMake(3.0, 18.0)) + ], NO)); +} +})]); +} + +p;15;CPTabViewItem.jI;21;Foundation/CPObject.jI;15;AppKit/CPView.jc;3722; +CPSelectedTab = 0; +CPBackgroundTab = 1; +CPPressedTab = 2; +{var the_class = objj_allocateClassPair(CPObject, "CPTabViewItem"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_identifier"), new objj_ivar("_label"), new objj_ivar("_view"), new objj_ivar("_auxiliaryView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithIdentifier:"), function $CPTabViewItem__initWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _identifier = anIdentifier; + return self; +} +}), new objj_method(sel_getUid("setLabel:"), function $CPTabViewItem__setLabel_(self, _cmd, aLabel) +{ with(self) +{ + _label = aLabel; +} +}), new objj_method(sel_getUid("label"), function $CPTabViewItem__label(self, _cmd) +{ with(self) +{ + return _label; +} +}), new objj_method(sel_getUid("tabState"), function $CPTabViewItem__tabState(self, _cmd) +{ with(self) +{ + return _tabState; +} +}), new objj_method(sel_getUid("setIdentifier:"), function $CPTabViewItem__setIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + _identifier = anIdentifier; +} +}), new objj_method(sel_getUid("identifier"), function $CPTabViewItem__identifier(self, _cmd) +{ with(self) +{ + return _identifier; +} +}), new objj_method(sel_getUid("setView:"), function $CPTabViewItem__setView_(self, _cmd, aView) +{ with(self) +{ + _view = aView; +} +}), new objj_method(sel_getUid("view"), function $CPTabViewItem__view(self, _cmd) +{ with(self) +{ + return _view; +} +}), new objj_method(sel_getUid("setAuxiliaryView:"), function $CPTabViewItem__setAuxiliaryView_(self, _cmd, anAuxiliaryView) +{ with(self) +{ + _auxiliaryView = anAuxiliaryView; +} +}), new objj_method(sel_getUid("auxiliaryView"), function $CPTabViewItem__auxiliaryView(self, _cmd) +{ with(self) +{ + return _auxiliaryView; +} +}), new objj_method(sel_getUid("tabView"), function $CPTabViewItem__tabView(self, _cmd) +{ with(self) +{ + return _tabView; +} +})]); +} +var CPTabViewItemIdentifierKey = "CPTabViewItemIdentifierKey", + CPTabViewItemLabelKey = "CPTabViewItemLabelKey", + CPTabViewItemViewKey = "CPTabViewItemViewKey", + CPTabViewItemAuxViewKey = "CPTabViewItemAuxViewKey"; +{ +var the_class = objj_getClass("CPTabViewItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTabViewItem\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTabViewItem__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _identifier = objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewItemIdentifierKey); + _label = objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewItemLabelKey); + _view = objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewItemViewKey); + _auxiliaryView = objj_msgSend(aCoder, "decodeObjectForKey:", CPTabViewItemAuxViewKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTabViewItem__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _identifier, CPTabViewItemIdentifierKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _label, CPTabViewItemLabelKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _view, CPTabViewItemViewKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _auxiliaryView, CPTabViewItemAuxViewKey); +} +})]); +} + +p;13;CPTextField.ji;11;CPControl.ji;17;CPStringDrawing.ji;17;CPCompatibility.jc;21754; +CPLineBreakByWordWrapping = 0; +CPLineBreakByCharWrapping = 1; +CPLineBreakByClipping = 2; +CPLineBreakByTruncatingHead = 3; +CPLineBreakByTruncatingTail = 4; +CPLineBreakByTruncatingMiddle = 5; +CPTextFieldSquareBezel = 0; +CPTextFieldRoundedBezel = 1; +var CPSecureTextFieldCharacter = "\u2022"; +{ +var the_class = objj_getClass("CPString") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPString\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("string"), function $CPString__string(self, _cmd) +{ with(self) +{ + return self; +} +})]); +} +CPTextFieldStateRounded = CPThemeState("rounded"); +CPTextFieldStatePlaceholder = CPThemeState("placeholder"); +{var the_class = objj_allocateClassPair(CPControl, "CPTextField"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_isEditable"), new objj_ivar("_isSelectable"), new objj_ivar("_isSecure"), new objj_ivar("_drawsBackground"), new objj_ivar("_textFieldBackgroundColor"), new objj_ivar("_placeholderString"), new objj_ivar("_delegate"), new objj_ivar("_textDidChangeValue"), new objj_ivar("_bezelStyle"), new objj_ivar("_isBordered"), new objj_ivar("_controlSize")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPTextField__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + objj_msgSend(self, "setStringValue:", ""); + objj_msgSend(self, "setPlaceholderString:", ""); + _sendActionOn = CPKeyUpMask | CPKeyDownMask; + objj_msgSend(self, "setValue:forThemeAttribute:", CPLeftTextAlignment, "alignment"); + } + return self; +} +}), new objj_method(sel_getUid("setEditable:"), function $CPTextField__setEditable_(self, _cmd, shouldBeEditable) +{ with(self) +{ + _isEditable = shouldBeEditable; +} +}), new objj_method(sel_getUid("isEditable"), function $CPTextField__isEditable(self, _cmd) +{ with(self) +{ + return _isEditable; +} +}), new objj_method(sel_getUid("setSelectable:"), function $CPTextField__setSelectable_(self, _cmd, aFlag) +{ with(self) +{ + _isSelectable = aFlag; +} +}), new objj_method(sel_getUid("isSelectable"), function $CPTextField__isSelectable(self, _cmd) +{ with(self) +{ + return _isSelectable; +} +}), new objj_method(sel_getUid("setSecure:"), function $CPTextField__setSecure_(self, _cmd, aFlag) +{ with(self) +{ + _isSecure = aFlag; +} +}), new objj_method(sel_getUid("isSecure"), function $CPTextField__isSecure(self, _cmd) +{ with(self) +{ + return _isSecure; +} +}), new objj_method(sel_getUid("setBezeled:"), function $CPTextField__setBezeled_(self, _cmd, shouldBeBezeled) +{ with(self) +{ + if (shouldBeBezeled) + objj_msgSend(self, "setThemeState:", CPThemeStateBezeled); + else + objj_msgSend(self, "unsetThemeState:", CPThemeStateBezeled); +} +}), new objj_method(sel_getUid("isBezeled"), function $CPTextField__isBezeled(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "hasThemeState:", CPThemeStateBezeled); +} +}), new objj_method(sel_getUid("setBezelStyle:"), function $CPTextField__setBezelStyle_(self, _cmd, aBezelStyle) +{ with(self) +{ + var shouldBeRounded = aBezelStyle === CPTextFieldRoundedBezel; + if (shouldBeRounded) + objj_msgSend(self, "setThemeState:", CPTextFieldStateRounded); + else + objj_msgSend(self, "unsetThemeState:", CPTextFieldStateRounded); +} +}), new objj_method(sel_getUid("bezelStyle"), function $CPTextField__bezelStyle(self, _cmd) +{ with(self) +{ + if (objj_msgSend(self, "hasThemeState:", CPTextFieldStateRounded)) + return CPTextFieldRoundedBezel; + return CPTextFieldSquareBezel; +} +}), new objj_method(sel_getUid("setBordered:"), function $CPTextField__setBordered_(self, _cmd, shouldBeBordered) +{ with(self) +{ + if (shouldBeBordered) + objj_msgSend(self, "setThemeState:", CPThemeStateBordered); + else + objj_msgSend(self, "unsetThemeState:", CPThemeStateBordered); +} +}), new objj_method(sel_getUid("isBordered"), function $CPTextField__isBordered(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "hasThemeState:", CPThemeStateBordered); +} +}), new objj_method(sel_getUid("setDrawsBackground:"), function $CPTextField__setDrawsBackground_(self, _cmd, shouldDrawBackground) +{ with(self) +{ + if (_drawsBackground == shouldDrawBackground) + return; + _drawsBackground = shouldDrawBackground; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("drawsBackground"), function $CPTextField__drawsBackground(self, _cmd) +{ with(self) +{ + return _drawsBackground; +} +}), new objj_method(sel_getUid("setTextFieldBackgroundColor:"), function $CPTextField__setTextFieldBackgroundColor_(self, _cmd, aColor) +{ with(self) +{ + if (_textFieldBackgroundColor == aColor) + return; + _textFieldBackgroundColor = aColor; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("textFieldBackgroundColor"), function $CPTextField__textFieldBackgroundColor(self, _cmd) +{ with(self) +{ + return _textFieldBackgroundColor; +} +}), new objj_method(sel_getUid("acceptsFirstResponder"), function $CPTextField__acceptsFirstResponder(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "isEditable") && objj_msgSend(self, "isEnabled"); +} +}), new objj_method(sel_getUid("becomeFirstResponder"), function $CPTextField__becomeFirstResponder(self, _cmd) +{ with(self) +{ + if (CPTextFieldInputOwner && objj_msgSend(CPTextFieldInputOwner, "window") !== objj_msgSend(self, "window")) + objj_msgSend(objj_msgSend(CPTextFieldInputOwner, "window"), "makeFirstResponder:", nil); + objj_msgSend(self, "setThemeState:", CPThemeStateEditing); + objj_msgSend(self, "_updatePlaceholderState"); + objj_msgSend(self, "setNeedsLayout"); + return YES; +} +}), new objj_method(sel_getUid("resignFirstResponder"), function $CPTextField__resignFirstResponder(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "unsetThemeState:", CPThemeStateEditing); + objj_msgSend(self, "_updatePlaceholderState"); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "textDidEndEditing:", objj_msgSend(CPNotification, "notificationWithName:object:userInfo:", CPControlTextDidBeginEditingNotification, self, nil)); + return YES; +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPTextField__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (objj_msgSend(self, "isEditable") && objj_msgSend(self, "isEnabled")) + return objj_msgSend(objj_msgSend(self, "window"), "makeFirstResponder:", self); + else + return objj_msgSend(objj_msgSend(self, "nextResponder"), "mouseDown:", anEvent); +} +}), new objj_method(sel_getUid("objectValue"), function $CPTextField__objectValue(self, _cmd) +{ with(self) +{ + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "objectValue"); +} +}), new objj_method(sel_getUid("setObjectValue:"), function $CPTextField__setObjectValue_(self, _cmd, aValue) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setObjectValue:", aValue); + objj_msgSend(self, "_updatePlaceholderState"); +} +}), new objj_method(sel_getUid("_updatePlaceholderState"), function $CPTextField___updatePlaceholderState(self, _cmd) +{ with(self) +{ + var string = objj_msgSend(self, "stringValue"); + if ((!string || objj_msgSend(string, "length") === 0) && !objj_msgSend(self, "hasThemeState:", CPThemeStateEditing)) + objj_msgSend(self, "setThemeState:", CPTextFieldStatePlaceholder); + else + objj_msgSend(self, "unsetThemeState:", CPTextFieldStatePlaceholder); +} +}), new objj_method(sel_getUid("setPlaceholderString:"), function $CPTextField__setPlaceholderString_(self, _cmd, aStringValue) +{ with(self) +{ + if (_placeholderString === aStringValue) + return; + _placeholderString = aStringValue; + if (objj_msgSend(self, "hasThemeState:", CPTextFieldStatePlaceholder)) + { + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + } +} +}), new objj_method(sel_getUid("placeholderString"), function $CPTextField__placeholderString(self, _cmd) +{ with(self) +{ + return _placeholderString; +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPTextField__sizeToFit(self, _cmd) +{ with(self) +{ + var size = objj_msgSend((objj_msgSend(self, "stringValue") || " "), "sizeWithFont:", objj_msgSend(self, "currentValueForThemeAttribute:", "font")), + contentInset = objj_msgSend(self, "currentValueForThemeAttribute:", "content-inset"), + minSize = objj_msgSend(self, "currentValueForThemeAttribute:", "min-size"), + maxSize = objj_msgSend(self, "currentValueForThemeAttribute:", "max-size"); + size.width = MAX(size.width + contentInset.left + contentInset.right, minSize.width); + size.height = MAX(size.height + contentInset.top + contentInset.bottom, minSize.height); + if (maxSize.width >= 0.0) + size.width = MIN(size.width, maxSize.width); + if (maxSize.height >= 0.0) + size.height = MIN(size.height, maxSize.height); + if (objj_msgSend(self, "isEditable")) + size.width = CGRectGetWidth(objj_msgSend(self, "frame")); + objj_msgSend(self, "setFrameSize:", size); +} +}), new objj_method(sel_getUid("selectText:"), function $CPTextField__selectText_(self, _cmd, sender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPTextField__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_delegate) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPControlTextDidBeginEditingNotification, self); + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPControlTextDidChangeNotification, self); + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPControlTextDidEndEditingNotification, self); + } + _delegate = aDelegate; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("controlTextDidBeginEditing:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("controlTextDidBeginEditing:"), CPControlTextDidBeginEditingNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("controlTextDidChange:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("controlTextDidChange:"), CPControlTextDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("controlTextDidEndEditing:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("controlTextDidEndEditing:"), CPControlTextDidEndEditingNotification, self); +} +}), new objj_method(sel_getUid("delegate"), function $CPTextField__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("contentRectForBounds:"), function $CPTextField__contentRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + var contentInset = objj_msgSend(self, "currentValueForThemeAttribute:", "content-inset"); + if (!contentInset) + return bounds; + bounds.origin.x += contentInset.left; + bounds.origin.y += contentInset.top; + bounds.size.width -= contentInset.left + contentInset.right; + bounds.size.height -= contentInset.top + contentInset.bottom; + return bounds; +} +}), new objj_method(sel_getUid("bezelRectForBounds:"), function $CPTextField__bezelRectForBounds_(self, _cmd, bounds) +{ with(self) +{ + var bezelInset = objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-inset"); + if (((bezelInset).top === 0 && (bezelInset).right === 0 && (bezelInset).bottom === 0 && (bezelInset).left === 0)) + return bounds; + bounds.origin.x += bezelInset.left; + bounds.origin.y += bezelInset.top; + bounds.size.width -= bezelInset.left + bezelInset.right; + bounds.size.height -= bezelInset.top + bezelInset.bottom; + return bounds; +} +}), new objj_method(sel_getUid("rectForEphemeralSubviewNamed:"), function $CPTextField__rectForEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "bezel-view") + return objj_msgSend(self, "bezelRectForBounds:", objj_msgSend(self, "bounds")); + else if (aName === "content-view") + return objj_msgSend(self, "contentRectForBounds:", objj_msgSend(self, "bounds")); + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "rectForEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("createEphemeralSubviewNamed:"), function $CPTextField__createEphemeralSubviewNamed_(self, _cmd, aName) +{ with(self) +{ + if (aName === "bezel-view") + { + var view = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + objj_msgSend(view, "setHitTests:", NO); + return view; + } + else + { + var view = objj_msgSend(objj_msgSend(_CPImageAndTextView, "alloc"), "initWithFrame:", { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }); + return view; + } + return objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "createEphemeralSubviewNamed:", aName); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPTextField__layoutSubviews(self, _cmd) +{ with(self) +{ + var bezelView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "bezel-view", CPWindowBelow, "content-view"); + if (bezelView) + objj_msgSend(bezelView, "setBackgroundColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "bezel-color")); + var contentView = objj_msgSend(self, "layoutEphemeralSubviewNamed:positioned:relativeToEphemeralSubviewNamed:", "content-view", CPWindowAbove, "bezel-view"); + if (contentView) + { + objj_msgSend(contentView, "setHidden:", objj_msgSend(self, "hasThemeState:", CPThemeStateEditing)); + var string = ""; + if (objj_msgSend(self, "hasThemeState:", CPTextFieldStatePlaceholder)) + string = objj_msgSend(self, "placeholderString"); + else + { + string = objj_msgSend(self, "stringValue"); + if (objj_msgSend(self, "isSecure")) + string = secureStringForString(string); + } + objj_msgSend(contentView, "setText:", string); + objj_msgSend(contentView, "setTextColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "text-color")); + objj_msgSend(contentView, "setFont:", objj_msgSend(self, "currentValueForThemeAttribute:", "font")); + objj_msgSend(contentView, "setAlignment:", objj_msgSend(self, "currentValueForThemeAttribute:", "alignment")); + objj_msgSend(contentView, "setVerticalAlignment:", objj_msgSend(self, "currentValueForThemeAttribute:", "vertical-alignment")); + objj_msgSend(contentView, "setLineBreakMode:", objj_msgSend(self, "currentValueForThemeAttribute:", "line-break-mode")); + objj_msgSend(contentView, "setTextShadowColor:", objj_msgSend(self, "currentValueForThemeAttribute:", "text-shadow-color")); + objj_msgSend(contentView, "setTextShadowOffset:", objj_msgSend(self, "currentValueForThemeAttribute:", "text-shadow-offset")); + } +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("textFieldWithStringValue:placeholder:width:"), function $CPTextField__textFieldWithStringValue_placeholder_width_(self, _cmd, aStringValue, aPlaceholder, aWidth) +{ with(self) +{ + return objj_msgSend(self, "textFieldWithStringValue:placeholder:width:theme:", aStringValue, aPlaceholder, aWidth, objj_msgSend(CPTheme, "defaultTheme")); +} +}), new objj_method(sel_getUid("textFieldWithStringValue:placeholder:width:theme:"), function $CPTextField__textFieldWithStringValue_placeholder_width_theme_(self, _cmd, aStringValue, aPlaceholder, aWidth, aTheme) +{ with(self) +{ + var textField = objj_msgSend(objj_msgSend(self, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, aWidth, 29.0)); + objj_msgSend(textField, "setTheme:", aTheme); + objj_msgSend(textField, "setStringValue:", aStringValue); + objj_msgSend(textField, "setPlaceholderString:", aPlaceholder); + objj_msgSend(textField, "setBordered:", YES); + objj_msgSend(textField, "setBezeled:", YES); + objj_msgSend(textField, "setEditable:", YES); + objj_msgSend(textField, "sizeToFit"); + return textField; +} +}), new objj_method(sel_getUid("roundedTextFieldWithStringValue:placeholder:width:"), function $CPTextField__roundedTextFieldWithStringValue_placeholder_width_(self, _cmd, aStringValue, aPlaceholder, aWidth) +{ with(self) +{ + return objj_msgSend(self, "roundedTextFieldWithStringValue:placeholder:width:theme:", aStringValue, aPlaceholder, aWidth, objj_msgSend(CPTheme, "defaultTheme")); +} +}), new objj_method(sel_getUid("roundedTextFieldWithStringValue:placeholder:width:theme:"), function $CPTextField__roundedTextFieldWithStringValue_placeholder_width_theme_(self, _cmd, aStringValue, aPlaceholder, aWidth, aTheme) +{ with(self) +{ + var textField = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, aWidth, 29.0)); + objj_msgSend(textField, "setTheme:", aTheme); + objj_msgSend(textField, "setStringValue:", aStringValue); + objj_msgSend(textField, "setPlaceholderString:", aPlaceholder); + objj_msgSend(textField, "setBezelStyle:", CPTextFieldRoundedBezel); + objj_msgSend(textField, "setBordered:", YES); + objj_msgSend(textField, "setBezeled:", YES); + objj_msgSend(textField, "setEditable:", YES); + objj_msgSend(textField, "sizeToFit"); + return textField; +} +}), new objj_method(sel_getUid("labelWithTitle:"), function $CPTextField__labelWithTitle_(self, _cmd, aTitle) +{ with(self) +{ + return objj_msgSend(self, "labelWithTitle:theme:", aTitle, objj_msgSend(CPTheme, "defaultTheme")); +} +}), new objj_method(sel_getUid("labelWithTitle:theme:"), function $CPTextField__labelWithTitle_theme_(self, _cmd, aTitle, aTheme) +{ with(self) +{ + var textField = objj_msgSend(objj_msgSend(self, "alloc"), "init"); + objj_msgSend(textField, "setStringValue:", aTitle); + objj_msgSend(textField, "sizeToFit"); + return textField; +} +}), new objj_method(sel_getUid("themeClass"), function $CPTextField__themeClass(self, _cmd) +{ with(self) +{ + return "textfield"; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPTextField__themeAttributes(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [{ top:(0), right:(0), bottom:(0), left:(0) }, { top:(2.0), right:(2.0), bottom:(2.0), left:(2.0) }, nil], ["bezel-inset", "content-inset", "bezel-color"]); +} +})]); +} +var secureStringForString = function(aString) +{ + if (!aString) + return ""; + var secureString = "", + length = aString.length; + while (length--) + secureString += CPSecureTextFieldCharacter; + return secureString; +} +var CPTextFieldIsEditableKey = "CPTextFieldIsEditableKey", + CPTextFieldIsSelectableKey = "CPTextFieldIsSelectableKey", + CPTextFieldIsBorderedKey = "CPTextFieldIsBorderedKey", + CPTextFieldIsBezeledKey = "CPTextFieldIsBezeledKey", + CPTextFieldBezelStyleKey = "CPTextFieldBezelStyleKey", + CPTextFieldDrawsBackgroundKey = "CPTextFieldDrawsBackgroundKey", + CPTextFieldLineBreakModeKey = "CPTextFieldLineBreakModeKey", + CPTextFieldBackgroundColorKey = "CPTextFieldBackgroundColorKey", + CPTextFieldPlaceholderStringKey = "CPTextFieldPlaceholderStringKey"; +{ +var the_class = objj_getClass("CPTextField") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTextField\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTextField__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder); + if (self) + { + objj_msgSend(self, "setEditable:", objj_msgSend(aCoder, "decodeBoolForKey:", CPTextFieldIsEditableKey)); + objj_msgSend(self, "setSelectable:", objj_msgSend(aCoder, "decodeBoolForKey:", CPTextFieldIsSelectableKey)); + objj_msgSend(self, "setDrawsBackground:", objj_msgSend(aCoder, "decodeBoolForKey:", CPTextFieldDrawsBackgroundKey)); + objj_msgSend(self, "setTextFieldBackgroundColor:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTextFieldBackgroundColorKey)); + objj_msgSend(self, "setPlaceholderString:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTextFieldPlaceholderStringKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTextField__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeBool:forKey:", _isEditable, CPTextFieldIsEditableKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _isSelectable, CPTextFieldIsSelectableKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _drawsBackground, CPTextFieldDrawsBackgroundKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _textFieldBackgroundColor, CPTextFieldBackgroundColorKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _placeholderString, CPTextFieldPlaceholderStringKey); +} +})]); +} + +p;9;CPTheme.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;16932; +var CPThemesByName = { }, + CPThemeDefaultTheme = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPTheme"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_name"), new objj_ivar("_attributes")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithName:"), function $CPTheme__initWithName_(self, _cmd, aName) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _name = aName; + _attributes = objj_msgSend(CPDictionary, "dictionary"); + CPThemesByName[_name] = self; + } + return self; +} +}), new objj_method(sel_getUid("name"), function $CPTheme__name(self, _cmd) +{ with(self) +{ + return _name; +} +}), new objj_method(sel_getUid("_attributeWithName:forClass:"), function $CPTheme___attributeWithName_forClass_(self, _cmd, aName, aClass) +{ with(self) +{ + var attributes = objj_msgSend(_attributes, "objectForKey:", aClass); + if (!attributes) + return nil; + return objj_msgSend(attributes, "objectForKey:", aName); +} +}), new objj_method(sel_getUid("takeThemeFromObject:"), function $CPTheme__takeThemeFromObject_(self, _cmd, anObject) +{ with(self) +{ + var attributes = objj_msgSend(anObject, "_themeAttributeDictionary"), + attributeName = nil, + attributeNames = objj_msgSend(attributes, "keyEnumerator"), + objectThemeClass = objj_msgSend(objj_msgSend(anObject, "class"), "themeClass"); + while (attributeName = objj_msgSend(attributeNames, "nextObject")) + objj_msgSend(self, "_recordAttribute:forClass:", objj_msgSend(attributes, "objectForKey:", attributeName), objectThemeClass); +} +}), new objj_method(sel_getUid("_recordAttribute:forClass:"), function $CPTheme___recordAttribute_forClass_(self, _cmd, anAttribute, aClass) +{ with(self) +{ + if (!objj_msgSend(anAttribute, "hasValues")) + return; + var attributes = objj_msgSend(_attributes, "objectForKey:", aClass); + if (!attributes) + { + attributes = objj_msgSend(CPDictionary, "dictionary"); + objj_msgSend(_attributes, "setObject:forKey:", attributes, aClass); + } + var name = objj_msgSend(anAttribute, "name"), + existingAttribute = objj_msgSend(attributes, "objectForKey:", name); + if (existingAttribute) + objj_msgSend(attributes, "setObject:forKey:", objj_msgSend(existingAttribute, "attributeMergedWithAttribute:", anAttribute), name); + else + objj_msgSend(attributes, "setObject:forKey:", anAttribute, name); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("setDefaultTheme:"), function $CPTheme__setDefaultTheme_(self, _cmd, aTheme) +{ with(self) +{ + CPThemeDefaultTheme = aTheme; +} +}), new objj_method(sel_getUid("defaultTheme"), function $CPTheme__defaultTheme(self, _cmd) +{ with(self) +{ + return CPThemeDefaultTheme; +} +}), new objj_method(sel_getUid("themeNamed:"), function $CPTheme__themeNamed_(self, _cmd, aName) +{ with(self) +{ + return CPThemesByName[aName]; +} +})]); +} +var CPThemeNameKey = "CPThemeNameKey", + CPThemeAttributesKey = "CPThemeAttributesKey"; +{ +var the_class = objj_getClass("CPTheme") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTheme\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTheme__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _name = objj_msgSend(aCoder, "decodeObjectForKey:", CPThemeNameKey); + _attributes = objj_msgSend(aCoder, "decodeObjectForKey:", CPThemeAttributesKey); + CPThemesByName[_name] = self; + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTheme__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _name, CPThemeNameKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _attributes, CPThemeAttributesKey); +} +})]); +} +{var the_class = objj_allocateClassPair(CPKeyedUnarchiver, "_CPThemeKeyedUnarchiver"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_bundle")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initForReadingWithData:bundle:"), function $_CPThemeKeyedUnarchiver__initForReadingWithData_bundle_(self, _cmd, data, aBundle) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPKeyedUnarchiver") }, "initForReadingWithData:", data); + if (self) + _bundle = aBundle; + return self; +} +}), new objj_method(sel_getUid("bundle"), function $_CPThemeKeyedUnarchiver__bundle(self, _cmd) +{ with(self) +{ + return _bundle; +} +}), new objj_method(sel_getUid("awakenCustomResources"), function $_CPThemeKeyedUnarchiver__awakenCustomResources(self, _cmd) +{ with(self) +{ + return YES; +} +})]); +} +var CPThemeStates = {}, + CPThemeStateNames = {}, + CPThemeStateCount = 0; +CPThemeState= function(aStateName) +{ + var state = CPThemeStates[aStateName]; + if (state === undefined) + { + if (aStateName.indexOf('+') === -1) + state = 1 << CPThemeStateCount++; + else + { + var state = 0, + states = aStateName.split('+'), + count = states.length; + while (count--) + { + var stateName = states[count], + individualState = CPThemeStates[stateName]; + if (individualState === undefined) + { + individualState = 1 << CPThemeStateCount++; + CPThemeStates[stateName] = individualState; + CPThemeStateNames[individualState] = stateName; + } + state |= individualState; + } + } + CPThemeStates[aStateName] = state; + CPThemeStateNames[state] = aStateName; + } + return state; +} +CPThemeStateName= function(aState) +{ + var name = CPThemeStateNames[aState]; + if (name !== undefined) + return name; + if (!(aState & (aState - 1))) + return ""; + var state = 1, + name = ""; + for (; state < aState; state <<= 1) + if (aState & state) + name += (name.length === 0 ? '' : '+') + CPThemeStateNames[state]; + CPThemeStateNames[aState] = name; + return name; +} +CPThemeStateNames[0] = "normal"; +CPThemeStateNormal = CPThemeStates["normal"] = 0; +CPThemeStateDisabled = CPThemeState("disabled"); +CPThemeStateHighlighted = CPThemeState("highlighted"); +CPThemeStateSelected = CPThemeState("selected"); +CPThemeStateBezeled = CPThemeState("bezeled"); +CPThemeStateBordered = CPThemeState("bordered"); +CPThemeStateEditable = CPThemeState("editable"); +CPThemeStateEditing = CPThemeState("editing"); +CPThemeStateVertical = CPThemeState("vertical"); +CPThemeStateDefault = CPThemeState("default"); +CPThemeStateCircular = CPThemeState("circular"); +{var the_class = objj_allocateClassPair(CPObject, "_CPThemeAttribute"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_name"), new objj_ivar("_defaultValue"), new objj_ivar("_values"), new objj_ivar("_cache"), new objj_ivar("_parentAttribute")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithName:defaultValue:"), function $_CPThemeAttribute__initWithName_defaultValue_(self, _cmd, aName, aDefaultValue) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _cache = { }; + _name = aName; + _defaultValue = aDefaultValue; + _values = objj_msgSend(CPDictionary, "dictionary"); + } + return self; +} +}), new objj_method(sel_getUid("name"), function $_CPThemeAttribute__name(self, _cmd) +{ with(self) +{ + return _name; +} +}), new objj_method(sel_getUid("defaultValue"), function $_CPThemeAttribute__defaultValue(self, _cmd) +{ with(self) +{ + return _defaultValue; +} +}), new objj_method(sel_getUid("hasValues"), function $_CPThemeAttribute__hasValues(self, _cmd) +{ with(self) +{ + return objj_msgSend(_values, "count") > 0; +} +}), new objj_method(sel_getUid("isTrivial"), function $_CPThemeAttribute__isTrivial(self, _cmd) +{ with(self) +{ + return (objj_msgSend(_values, "count") === 1) && (Number(objj_msgSend(_values, "allKeys")[0]) === CPThemeStateNormal); +} +}), new objj_method(sel_getUid("setValue:"), function $_CPThemeAttribute__setValue_(self, _cmd, aValue) +{ with(self) +{ + _cache = {}; + if (aValue === undefined || aValue === nil) + _values = objj_msgSend(CPDictionary, "dictionary"); + else + _values = objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", aValue, String(CPThemeStateNormal)); +} +}), new objj_method(sel_getUid("setValue:forState:"), function $_CPThemeAttribute__setValue_forState_(self, _cmd, aValue, aState) +{ with(self) +{ + _cache = { }; + if ((aValue === undefined) || (aValue === nil)) + objj_msgSend(_values, "removeObjectForKey:", String(aState)); + else + objj_msgSend(_values, "setObject:forKey:", aValue, String(aState)); +} +}), new objj_method(sel_getUid("value"), function $_CPThemeAttribute__value(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "valueForState:", CPThemeStateNormal); +} +}), new objj_method(sel_getUid("valueForState:"), function $_CPThemeAttribute__valueForState_(self, _cmd, aState) +{ with(self) +{ + var value = _cache[aState]; + if (value !== undefined) + return value; + value = objj_msgSend(_values, "objectForKey:", String(aState)); + if ((value === undefined || value === nil) && aState !== CPThemeStateNormal) + { + if (aState & (aState - 1)) + { + var highestOneCount = 0, + states = objj_msgSend(_values, "allKeys"), + count = states.length; + while (count--) + { + var state = Number(states[count]); + if ((state & aState) === state) + { + var oneCount = cachedNumberOfOnes[state]; + if (oneCount === undefined) + oneCount = numberOfOnes(state); + if (oneCount > highestOneCount) + { + highestOneCount = oneCount; + value = objj_msgSend(_values, "objectForKey:", String(state)); + } + } + } + } + if (value === undefined || value === nil) + value = objj_msgSend(_values, "objectForKey:", String(CPThemeStateNormal)); + } + if (value === undefined || value === nil) + value = objj_msgSend(_parentAttribute, "valueForState:", aState); + if (value === undefined || value === nil) + value = _defaultValue; + _cache[aState] = value; + return value; +} +}), new objj_method(sel_getUid("setParentAttribute:"), function $_CPThemeAttribute__setParentAttribute_(self, _cmd, anAttribute) +{ with(self) +{ + if (_parentAttribute === anAttribute) + return; + _cache = { }; + _parentAttribute = anAttribute; +} +}), new objj_method(sel_getUid("attributeMergedWithAttribute:"), function $_CPThemeAttribute__attributeMergedWithAttribute_(self, _cmd, anAttribute) +{ with(self) +{ + var mergedAttribute = objj_msgSend(objj_msgSend(_CPThemeAttribute, "alloc"), "initWithName:defaultValue:", _name, _defaultValue); + mergedAttribute._values = objj_msgSend(_values, "copy"); + objj_msgSend(mergedAttribute._values, "addEntriesFromDictionary:", anAttribute._values); + return mergedAttribute; +} +})]); +} +{ +var the_class = objj_getClass("_CPThemeAttribute") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPThemeAttribute\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPThemeAttribute__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _cache = {}; + _name = objj_msgSend(aCoder, "decodeObjectForKey:", "name"); + _values = objj_msgSend(CPDictionary, "dictionary"); + if (objj_msgSend(aCoder, "containsValueForKey:", "value")) + { + var state = CPThemeStateNormal; + if (objj_msgSend(aCoder, "containsValueForKey:", "state")) + state = CPThemeState(objj_msgSend(aCoder, "decodeObjectForKey:", "state")); + objj_msgSend(_values, "setObject:forKey:", objj_msgSend(aCoder, "decodeObjectForKey:", "value"), state); + } + else + { + var encodedValues = objj_msgSend(aCoder, "decodeObjectForKey:", "values"), + keys = objj_msgSend(encodedValues, "allKeys"), + count = keys.length; + while (count--) + { + var key = keys[count]; + objj_msgSend(_values, "setObject:forKey:", objj_msgSend(encodedValues, "objectForKey:", key), CPThemeState(key)); + } + } + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPThemeAttribute__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _name, "name"); + var keys = objj_msgSend(_values, "allKeys"), + count = keys.length; + if (count === 1) + { + var onlyKey = keys[0]; + if (Number(onlyKey) !== CPThemeStateNormal) + objj_msgSend(aCoder, "encodeObject:forKey:", CPThemeStateName(Number(onlyKey)), "state"); + objj_msgSend(aCoder, "encodeObject:forKey:", objj_msgSend(_values, "objectForKey:", onlyKey), "value"); + } + else + { + var encodedValues = objj_msgSend(CPDictionary, "dictionary"); + while (count--) + { + var key = keys[count]; + objj_msgSend(encodedValues, "setObject:forKey:", objj_msgSend(_values, "objectForKey:", key), CPThemeStateName(Number(key))); + } + objj_msgSend(aCoder, "encodeObject:forKey:", encodedValues, "values"); + } +} +})]); +} +var cachedNumberOfOnes = [ 0 , 1 , 1 , 2 , 1 , 2 , 2 , + 3 , 1 , 2 , 2 , 3 , 2 , 3 , + 3 , 4 , 1 , 2 , 2 , 3 , 2 , + 3 , 3 , 4 , 2 , 3 , 3 , 4 , + 3 , 4 , 4 , 5 , 1 , 2 , 2 , + 3 , 2 , 3 , 3 , 4 , 2 , 3 , + 3 , 4 , 3 , 4 , 4 , 5 , 2 , + 3 , 3 , 4 , 3 , 4 , 4 , 5 , + 3 , 4 , 4 , 5 , 4 , 5 , 5 , + 6 ]; +var numberOfOnes = function(aNumber) +{ + var count = 0, + slot = aNumber; + while (aNumber) + { + ++count; + aNumber &= (aNumber - 1); + } + cachedNumberOfOnes[slot] = count; + return count; +} +numberOfOnes.displayName = "numberOfOnes"; +CPThemeAttributeEncode= function(aCoder, aThemeAttribute) +{ + var values = aThemeAttribute._values, + count = objj_msgSend(values, "count"), + key = "$a" + objj_msgSend(aThemeAttribute, "name"); + if (count === 1) + { + var state = objj_msgSend(values, "allKeys")[0]; + if (Number(state) === 0) + { + objj_msgSend(aCoder, "encodeObject:forKey:", objj_msgSend(values, "objectForKey:", state), key); + return YES; + } + } + if (count >= 1) + { + objj_msgSend(aCoder, "encodeObject:forKey:", aThemeAttribute, key); + return YES; + } + return NO; +} +CPThemeAttributeDecode= function(aCoder, anAttributeName, aDefaultValue, aTheme, aClass) +{ + var key = "$a" + anAttributeName; + if (!objj_msgSend(aCoder, "containsValueForKey:", key)) + var attribute = objj_msgSend(objj_msgSend(_CPThemeAttribute, "alloc"), "initWithName:defaultValue:", anAttributeName, aDefaultValue); + else + { + var attribute = objj_msgSend(aCoder, "decodeObjectForKey:", key); + if (!attribute.isa || !objj_msgSend(attribute, "isKindOfClass:", objj_msgSend(_CPThemeAttribute, "class"))) + { + var themeAttribute = objj_msgSend(objj_msgSend(_CPThemeAttribute, "alloc"), "initWithName:defaultValue:", anAttributeName, aDefaultValue); + objj_msgSend(themeAttribute, "setValue:", attribute); + attribute = themeAttribute; + } + } + if (aTheme && aClass) + objj_msgSend(attribute, "setParentAttribute:", objj_msgSend(aTheme, "_attributeWithName:forClass:", anAttributeName, aClass)); + return attribute; +} + +p;14;CPThemeBlend.jI;21;Foundation/CPObject.jI;16;AppKit/CPTheme.jI;29;AppKit/_CPCibCustomResource.jI;30;AppKit/_CPCibKeyedUnarchiver.jc;1992; +{var the_class = objj_allocateClassPair(CPObject, "CPThemeBlend"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_bundle"), new objj_ivar("_themes"), new objj_ivar("_loadDelegate")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("themes"), function $CPThemeBlend__themes(self, _cmd) +{ with(self) +{ +return _themes; +} +}), new objj_method(sel_getUid("initWithContentsOfURL:"), function $CPThemeBlend__initWithContentsOfURL_(self, _cmd, aURL) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _bundle = objj_msgSend(objj_msgSend(CPBundle, "alloc"), "initWithPath:", aURL + "/Info.plist"); + } + return self; +} +}), new objj_method(sel_getUid("loadWithDelegate:"), function $CPThemeBlend__loadWithDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _loadDelegate = aDelegate; + objj_msgSend(_bundle, "loadWithDelegate:", self); +} +}), new objj_method(sel_getUid("bundleDidFinishLoading:"), function $CPThemeBlend__bundleDidFinishLoading_(self, _cmd, aBundle) +{ with(self) +{ + var paths = objj_msgSend(_bundle, "objectForInfoDictionaryKey:", "CPBundleReplacedFiles"), + index = 0, + count = paths.length, + bundlePath = objj_msgSend(_bundle, "bundlePath"); + while (count--) + { + var path = paths[count]; + if (objj_msgSend(path, "pathExtension") === "keyedtheme") + { + var unarchiver = objj_msgSend(objj_msgSend(_CPThemeKeyedUnarchiver, "alloc"), "initForReadingWithData:bundle:", objj_msgSend(CPData, "dataWithString:", objj_files[bundlePath + '/' + path].contents), _bundle); + objj_msgSend(unarchiver, "decodeObjectForKey:", "root"); + objj_msgSend(unarchiver, "finishDecoding"); + } + } + objj_msgSend(_loadDelegate, "blendDidFinishLoading:", self); +} +})]); +} + +p;11;CPToolbar.jI;21;Foundation/CPObject.ji;15;CPPopUpButton.ji;15;CPToolbarItem.jc;25022; +CPToolbarDisplayModeDefault = 0; +CPToolbarDisplayModeIconAndLabel = 1; +CPToolbarDisplayModeIconOnly = 2; +CPToolbarDisplayModeLabelOnly = 3; +var CPToolbarsByIdentifier = nil; +var CPToolbarConfigurationsByIdentifier = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPToolbar"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_identifier"), new objj_ivar("_displayMode"), new objj_ivar("_showsBaselineSeparator"), new objj_ivar("_allowsUserCustomization"), new objj_ivar("_isVisible"), new objj_ivar("_delegate"), new objj_ivar("_itemIdentifiers"), new objj_ivar("_identifiedItems"), new objj_ivar("_defaultItems"), new objj_ivar("_allowedItems"), new objj_ivar("_selectableItems"), new objj_ivar("_items"), new objj_ivar("_itemsSortedByVisibilityPriority"), new objj_ivar("_toolbarView"), new objj_ivar("_window")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithIdentifier:"), function $CPToolbar__initWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _items = []; + _identifier = anIdentifier; + _isVisible = YES; + objj_msgSend(CPToolbar, "_addToolbar:forIdentifier:", self, _identifier); + } + return self; +} +}), new objj_method(sel_getUid("setDisplayMode:"), function $CPToolbar__setDisplayMode_(self, _cmd, aDisplayMode) +{ with(self) +{ +} +}), new objj_method(sel_getUid("identifier"), function $CPToolbar__identifier(self, _cmd) +{ with(self) +{ + return _identifier; +} +}), new objj_method(sel_getUid("delegate"), function $CPToolbar__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("isVisible"), function $CPToolbar__isVisible(self, _cmd) +{ with(self) +{ + return _isVisible; +} +}), new objj_method(sel_getUid("setVisible:"), function $CPToolbar__setVisible_(self, _cmd, aFlag) +{ with(self) +{ + if (_isVisible === aFlag) + return; + _isVisible = aFlag; + objj_msgSend(_window, "_noteToolbarChanged"); +} +}), new objj_method(sel_getUid("_window"), function $CPToolbar___window(self, _cmd) +{ with(self) +{ + return _window; +} +}), new objj_method(sel_getUid("_setWindow:"), function $CPToolbar___setWindow_(self, _cmd, aWindow) +{ with(self) +{ + _window = aWindow; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPToolbar__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate == aDelegate) + return; + _delegate = aDelegate; + objj_msgSend(self, "_reloadToolbarItems"); +} +}), new objj_method(sel_getUid("_loadConfiguration"), function $CPToolbar___loadConfiguration(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_toolbarView"), function $CPToolbar___toolbarView(self, _cmd) +{ with(self) +{ + if (!_toolbarView) + { + _toolbarView = objj_msgSend(objj_msgSend(_CPToolbarView, "alloc"), "initWithFrame:", CPRectMake(0.0, 0.0, 1200.0, 59.0)); + objj_msgSend(_toolbarView, "setToolbar:", self); + objj_msgSend(_toolbarView, "setAutoresizingMask:", CPViewWidthSizable); + objj_msgSend(_toolbarView, "reloadToolbarItems"); + } + return _toolbarView; +} +}), new objj_method(sel_getUid("_reloadToolbarItems"), function $CPToolbar___reloadToolbarItems(self, _cmd) +{ with(self) +{ + if (!_delegate) + return; + var count = objj_msgSend(_itemIdentifiers, "count"); + if (!count) + { + _itemIdentifiers = objj_msgSend(objj_msgSend(_delegate, "toolbarDefaultItemIdentifiers:", self), "mutableCopy"); + count = objj_msgSend(_itemIdentifiers, "count"); + } + _items = []; + var index = 0; + for (; index < count; ++index) + { + var identifier = _itemIdentifiers[index], + item = objj_msgSend(CPToolbarItem, "_standardItemWithItemIdentifier:", identifier); + if (!item) + item = objj_msgSend(_delegate, "toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:", self, identifier, YES); + item = objj_msgSend(item, "copy"); + if (item == nil) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, sprintf("_delegate %s returned nil toolbar item returned for identifier %s", _delegate, identifier)); + objj_msgSend(_items, "addObject:", item); + } + _itemsSortedByVisibilityPriority = objj_msgSend(_items, "sortedArrayUsingFunction:context:", _CPToolbarItemVisibilityPriorityCompare, NULL); + objj_msgSend(_toolbarView, "reloadToolbarItems"); +} +}), new objj_method(sel_getUid("items"), function $CPToolbar__items(self, _cmd) +{ with(self) +{ + return _items; +} +}), new objj_method(sel_getUid("visibleItems"), function $CPToolbar__visibleItems(self, _cmd) +{ with(self) +{ + return objj_msgSend(_toolbarView, "visibleItems"); +} +}), new objj_method(sel_getUid("itemsSortedByVisibilityPriority"), function $CPToolbar__itemsSortedByVisibilityPriority(self, _cmd) +{ with(self) +{ + return _itemsSortedByVisibilityPriority; +} +}), new objj_method(sel_getUid("_itemForItemIdentifier:willBeInsertedIntoToolbar:"), function $CPToolbar___itemForItemIdentifier_willBeInsertedIntoToolbar_(self, _cmd, identifier, toolbar) +{ with(self) +{ + var item = objj_msgSend(_identifiedItems, "objectForKey:", identifier); + if (!item) + { + item = objj_msgSend(CPToolbarItem, "_standardItemWithItemIdentifier:", identifier); + if (_delegate && !item) + { + item = objj_msgSend(objj_msgSend(_delegate, "toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:", self, identifier, toolbar), "copy"); + if (!item) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, sprintf("_delegate %s returned nil toolbar item returned for identifier %s", _delegate, identifier)); + } + objj_msgSend(_identifiedItems, "setObject:forKey:", item, identifier); + } + return item; +} +}), new objj_method(sel_getUid("_itemsWithIdentifiers:"), function $CPToolbar___itemsWithIdentifiers_(self, _cmd, identifiers) +{ with(self) +{ + var items = []; + for (var i = 0; i < identifiers.length; i++) + objj_msgSend(items, "addObject:", objj_msgSend(self, "_itemForItemIdentifier:willBeInsertedIntoToolbar:", identifiers[i], NO)); + return items; +} +}), new objj_method(sel_getUid("_defaultToolbarItems"), function $CPToolbar___defaultToolbarItems(self, _cmd) +{ with(self) +{ + if (!_defaultItems) + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("toolbarDefaultItemIdentifiers:"))) + _defaultItems = objj_msgSend(self, "_itemsWithIdentifiers:", objj_msgSend(_delegate, "toolbarDefaultItemIdentifiers:", self)); + return _defaultItems; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPToolbar__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPToolbar, "class")) + return; + CPToolbarsByIdentifier = objj_msgSend(CPDictionary, "dictionary"); + CPToolbarConfigurationsByIdentifier = objj_msgSend(CPDictionary, "dictionary"); +} +}), new objj_method(sel_getUid("_addToolbar:forIdentifier:"), function $CPToolbar___addToolbar_forIdentifier_(self, _cmd, toolbar, identifier) +{ with(self) +{ + var toolbarsSharingIdentifier = objj_msgSend(CPToolbarsByIdentifier, "objectForKey:", identifier); + if (!toolbarsSharingIdentifier) + { + toolbarsSharingIdentifier = [] + objj_msgSend(CPToolbarsByIdentifier, "setObject:forKey:", toolbarsSharingIdentifier, identifier); + } + objj_msgSend(toolbarsSharingIdentifier, "addObject:", toolbar); +} +})]); +} +var CPToolbarIdentifierKey = "CPToolbarIdentifierKey", + CPToolbarDisplayModeKey = "CPToolbarDisplayModeKey", + CPToolbarShowsBaselineSeparatorKey = "CPToolbarShowsBaselineSeparatorKey", + CPToolbarAllowsUserCustomizationKey = "CPToolbarAllowsUserCustomizationKey", + CPToolbarIsVisibleKey = "CPToolbarIsVisibleKey", + CPToolbarDelegateKey = "CPToolbarDelegateKey", + CPToolbarIdentifiedItemsKey = "CPToolbarIdentifiedItemsKey", + CPToolbarDefaultItemsKey = "CPToolbarDefaultItemsKey", + CPToolbarAllowedItemsKey = "CPToolbarAllowedItemsKey", + CPToolbarSelectableItemsKey = "CPToolbarSelectableItemsKey"; +{ +var the_class = objj_getClass("CPToolbar") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPToolbar\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPToolbar__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _identifier = objj_msgSend(aCoder, "decodeObjectForKey:", CPToolbarIdentifierKey); + _displayMode = objj_msgSend(aCoder, "decodeIntForKey:", CPToolbarDisplayModeKey); + _showsBaselineSeparator = objj_msgSend(aCoder, "decodeBoolForKey:", CPToolbarShowsBaselineSeparatorKey); + _allowsUserCustomization = objj_msgSend(aCoder, "decodeBoolForKey:", CPToolbarAllowsUserCustomizationKey); + _isVisible = objj_msgSend(aCoder, "decodeBoolForKey:", CPToolbarIsVisibleKey); + _identifiedItems = objj_msgSend(aCoder, "decodeObjectForKey:", CPToolbarIdentifiedItemsKey); + _defaultItems = objj_msgSend(aCoder, "decodeObjectForKey:", CPToolbarDefaultItemsKey); + _allowedItems = objj_msgSend(aCoder, "decodeObjectForKey:", CPToolbarAllowedItemsKey); + _selectableItems = objj_msgSend(aCoder, "decodeObjectForKey:", CPToolbarSelectableItemsKey); + _items = []; + objj_msgSend(CPToolbar, "_addToolbar:forIdentifier:", self, _identifier); + objj_msgSend(self, "setDelegate:", objj_msgSend(aCoder, "decodeObjectForKey:", CPToolbarDelegateKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPToolbar__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _identifier, CPToolbarIdentifierKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _displayMode, CPToolbarDisplayModeKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _showsBaselineSeparator, CPToolbarShowsBaselineSeparatorKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _allowsUserCustomization, CPToolbarAllowsUserCustomizationKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _isVisible, CPToolbarIsVisibleKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _identifiedItems, CPToolbarIdentifiedItemsKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _defaultItems, CPToolbarDefaultItemsKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _allowedItems, CPToolbarAllowedItemsKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _selectableItems, CPToolbarSelectableItemsKey); + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _delegate, CPToolbarDelegateKey); +} +})]); +} +var _CPToolbarViewBackgroundColor = nil, + _CPToolbarViewExtraItemsImage = nil, + _CPToolbarViewExtraItemsAlternateImage = nil; +var TOOLBAR_TOP_MARGIN = 5.0, + TOOLBAR_ITEM_MARGIN = 10.0, + TOOLBAR_EXTRA_ITEMS_WIDTH = 20.0; +var _CPToolbarItemInfoMake = function(anIndex, aView, aLabel, aMinWidth) +{ + return { index:anIndex, view:aView, label:aLabel, minWidth:aMinWidth }; +} +{var the_class = objj_allocateClassPair(CPView, "_CPToolbarView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_toolbar"), new objj_ivar("_flexibleWidthIndexes"), new objj_ivar("_visibleFlexibleWidthIndexes"), new objj_ivar("_itemInfos"), new objj_ivar("_visibleItems"), new objj_ivar("_invisibleItems"), new objj_ivar("_additionalItemsButton"), new objj_ivar("_labelColor"), new objj_ivar("_labelShadowColor"), new objj_ivar("_minWidth")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $_CPToolbarView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame); + if (self) + { + _minWidth = 0; + _labelColor = objj_msgSend(CPColor, "blackColor"); + _labelShadowColor = objj_msgSend(CPColor, "colorWithWhite:alpha:", 1.0, 0.75); + _additionalItemsButton = objj_msgSend(objj_msgSend(CPPopUpButton, "alloc"), "initWithFrame:pullsDown:", CGRectMake(0.0, 0.0, 10.0, 15.0), YES); + objj_msgSend(_additionalItemsButton, "setBordered:", NO); + objj_msgSend(_additionalItemsButton, "setImagePosition:", CPImageOnly); + objj_msgSend(objj_msgSend(_additionalItemsButton, "menu"), "setShowsStateColumn:", NO); + objj_msgSend(_additionalItemsButton, "setAlternateImage:", _CPToolbarViewExtraItemsAlternateImage); + } + return self; +} +}), new objj_method(sel_getUid("setToolbar:"), function $_CPToolbarView__setToolbar_(self, _cmd, aToolbar) +{ with(self) +{ + _toolbar = aToolbar; +} +}), new objj_method(sel_getUid("toolbar"), function $_CPToolbarView__toolbar(self, _cmd) +{ with(self) +{ + return _toolbar; +} +}), new objj_method(sel_getUid("setLabelColor:"), function $_CPToolbarView__setLabelColor_(self, _cmd, aColor) +{ with(self) +{ + if (_labelColor === aColor) + return; + _labelColor = aColor; + var items = objj_msgSend(_toolbar, "items"), + count = objj_msgSend(items, "count"); + while (count--) + objj_msgSend(objj_msgSend(self, "labelForItem:", items[count]), "setTextColor:", _labelColor); +} +}), new objj_method(sel_getUid("setLabelShadowColor:"), function $_CPToolbarView__setLabelShadowColor_(self, _cmd, aColor) +{ with(self) +{ + if (_labelShadowColor === aColor) + return; + _labelShadowColor = aColor; + var items = objj_msgSend(_toolbar, "items"), + count = objj_msgSend(items, "count"); + while (count--) + objj_msgSend(objj_msgSend(self, "labelForItem:", items[count]), "setTextShadowColor:", _labelShadowColor); +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $_CPToolbarView__resizeSubviewsWithOldSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSend(self, "layoutSubviews"); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $_CPToolbarView__layoutSubviews(self, _cmd) +{ with(self) +{ + var items = objj_msgSend(_toolbar, "items"), + width = CGRectGetWidth(objj_msgSend(self, "bounds")), + minWidth = _minWidth, + flexibleItemIndexes = objj_msgSend(CPIndexSet, "indexSet"), + invisibleItemsSortedByPriority = []; + _visibleItems = items; + if (width < minWidth) + { + width -= TOOLBAR_EXTRA_ITEMS_WIDTH; + _visibleItems = objj_msgSend(_visibleItems, "copy"); + var itemsSortedByVisibilityPriority = objj_msgSend(_toolbar, "itemsSortedByVisibilityPriority"), + count = itemsSortedByVisibilityPriority.length; + while (minWidth > width) + { + var item = itemsSortedByVisibilityPriority[count--]; + minWidth -= objj_msgSend(self, "minWidthForItem:", item) + TOOLBAR_ITEM_MARGIN; + objj_msgSend(_visibleItems, "removeObjectIdenticalTo:", item); + objj_msgSend(invisibleItemsSortedByPriority, "addObject:", item); + objj_msgSend(objj_msgSend(self, "viewForItem:", item), "setHidden:", YES); + objj_msgSend(objj_msgSend(self, "labelForItem:", item), "setHidden:", YES); + } + } + var index = _visibleItems.length, + height = 0.0; + while (index--) + { + var item = _visibleItems[index], + minSize = objj_msgSend(item, "minSize"), + view = objj_msgSend(self, "viewForItem:", item); + if (minSize.width != objj_msgSend(item, "maxSize").width) + objj_msgSend(flexibleItemIndexes, "addIndex:", index); + else + objj_msgSend(view, "setFrameSize:", CGSizeMake(objj_msgSend(item, "minSize").width, CGRectGetHeight(objj_msgSend(view, "frame")))); + objj_msgSend(view, "setHidden:", NO); + objj_msgSend(objj_msgSend(self, "labelForItem:", item), "setHidden:", NO); + if (height < minSize.height) + height = minSize.height; + } + var remainingSpace = width - minWidth, + proportionate = 0.0; + while (remainingSpace && objj_msgSend(flexibleItemIndexes, "count")) + { + proportionate += remainingSpace / objj_msgSend(flexibleItemIndexes, "count"); + remainingSpace = 0.0; + var index = CPNotFound; + while ((index = objj_msgSend(flexibleItemIndexes, "indexGreaterThanIndex:", index)) != CPNotFound) + { + var item = _visibleItems[index]; + view = objj_msgSend(self, "viewForItem:", item), + viewFrame = objj_msgSend(view, "frame"), + proposedWidth = objj_msgSend(item, "minSize").width + proportionate, + constrainedWidth = MIN(proposedWidth, objj_msgSend(item, "maxSize").width); + if (constrainedWidth < proposedWidth) + { + objj_msgSend(flexibleItemIndexes, "removeIndex:", index); + remainingSpace += proposedWidth - constrainedWidth; + } + objj_msgSend(view, "setFrameSize:", CGSizeMake(constrainedWidth, CGRectGetHeight(viewFrame))); + } + } + var count = _visibleItems.length, + x = TOOLBAR_ITEM_MARGIN, + fullHeightItems = []; + for (index = 0; index < count; ++index) + { + var item = _visibleItems[index], + view = objj_msgSend(self, "viewForItem:", item), + viewFrame = objj_msgSend(view, "frame"), + viewWidth = CGRectGetWidth(viewFrame), + label = objj_msgSend(self, "labelForItem:", item), + labelFrame = objj_msgSend(label, "frame"), + labelWidth = CGRectGetWidth(labelFrame), + itemWidth = MAX(objj_msgSend(self, "minWidthForItem:", item), viewWidth), + viewHeight = CGRectGetHeight(viewFrame); + objj_msgSend(view, "setFrame:", CGRectMake(x + (itemWidth - viewWidth) / 2.0, TOOLBAR_TOP_MARGIN + (height - viewHeight) / 2.0, viewWidth, viewHeight)); + objj_msgSend(label, "setFrameOrigin:", CGPointMake(x + (itemWidth - labelWidth) / 2.0, TOOLBAR_TOP_MARGIN + height + 2.0)); + x += itemWidth + TOOLBAR_ITEM_MARGIN; + if (objj_msgSend(item, "itemIdentifier") == CPToolbarSeparatorItemIdentifier) + fullHeightItems.push(item); + } + for (index = 0, count = fullHeightItems.length; index < count; ++index) + { + var view = objj_msgSend(self, "viewForItem:", fullHeightItems[index]), + viewHeight = 53.0; + objj_msgSend(view, "setFrame:", CGRectMake(CGRectGetMinX(objj_msgSend(view, "frame")), (59.0 - viewHeight) / 2.0, CGRectGetWidth(objj_msgSend(view, "frame")), viewHeight)); + } + if (objj_msgSend(invisibleItemsSortedByPriority, "count")) + { + var index = 0, + count = objj_msgSend(items, "count"); + _invisibleItems = []; + for (; index < count; ++index) + { + var item = items[index]; + if (objj_msgSend(invisibleItemsSortedByPriority, "indexOfObjectIdenticalTo:", item) != CPNotFound) + objj_msgSend(_invisibleItems, "addObject:", item); + } + objj_msgSend(_additionalItemsButton, "setFrameOrigin:", CGPointMake(width + 5.0, (CGRectGetHeight(objj_msgSend(self, "bounds")) - CGRectGetHeight(objj_msgSend(_additionalItemsButton, "frame"))) / 2.0)); + objj_msgSend(self, "addSubview:", _additionalItemsButton); + objj_msgSend(_additionalItemsButton, "removeAllItems"); + var index = 0, + count = objj_msgSend(_invisibleItems, "count"); + objj_msgSend(_additionalItemsButton, "addItemWithTitle:", "Additional Items"); + objj_msgSend(objj_msgSend(_additionalItemsButton, "itemArray")[0], "setImage:", _CPToolbarViewExtraItemsImage); + for (; index < count; ++index) + { + var item = _invisibleItems[index]; + objj_msgSend(_additionalItemsButton, "addItemWithTitle:", objj_msgSend(item, "label")); + var menuItem = objj_msgSend(_additionalItemsButton, "itemArray")[index + 1]; + objj_msgSend(menuItem, "setImage:", objj_msgSend(item, "image")); + objj_msgSend(menuItem, "setTarget:", objj_msgSend(item, "target")); + objj_msgSend(menuItem, "setAction:", objj_msgSend(item, "action")); + } + } + else + objj_msgSend(_additionalItemsButton, "removeFromSuperview"); +} +}), new objj_method(sel_getUid("viewForItem:"), function $_CPToolbarView__viewForItem_(self, _cmd, anItem) +{ with(self) +{ + var info = objj_msgSend(_itemInfos, "objectForKey:", objj_msgSend(anItem, "hash")); + if (!info) + return nil; + return info.view; +} +}), new objj_method(sel_getUid("labelForItem:"), function $_CPToolbarView__labelForItem_(self, _cmd, anItem) +{ with(self) +{ + var info = objj_msgSend(_itemInfos, "objectForKey:", objj_msgSend(anItem, "hash")); + if (!info) + return nil; + return info.label; +} +}), new objj_method(sel_getUid("minWidthForItem:"), function $_CPToolbarView__minWidthForItem_(self, _cmd, anItem) +{ with(self) +{ + var info = objj_msgSend(_itemInfos, "objectForKey:", objj_msgSend(anItem, "hash")); + if (!info) + return 0; + return info.minWidth; +} +}), new objj_method(sel_getUid("reloadToolbarItems"), function $_CPToolbarView__reloadToolbarItems(self, _cmd) +{ with(self) +{ + var subviews = objj_msgSend(self, "subviews"), + count = subviews.length; + while (count--) + objj_msgSend(subviews[count], "removeFromSuperview"); + var items = objj_msgSend(_toolbar, "items"), + index = 0; + count = items.length; + _itemInfos = objj_msgSend(CPDictionary, "dictionary"); + _minWidth = TOOLBAR_ITEM_MARGIN; + for (; index < count; ++index) + { + var item = items[index], + view = objj_msgSend(item, "view"); + if (!view) + { + view = objj_msgSend(objj_msgSend(CPButton, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, 32.0, 32.0)); + objj_msgSend(view, "setBordered:", NO); + objj_msgSend(view, "setImage:", objj_msgSend(item, "image")); + objj_msgSend(view, "setAlternateImage:", objj_msgSend(item, "alternateImage")); + objj_msgSend(view, "setTarget:", objj_msgSend(item, "target")); + objj_msgSend(view, "setAction:", objj_msgSend(item, "action")); + objj_msgSend(view, "setTag:", objj_msgSend(item, "tag")); + objj_msgSend(view, "setImagePosition:", CPImageOnly); + } + objj_msgSend(self, "addSubview:", view); + var label = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CGRectMakeZero()); + objj_msgSend(label, "setStringValue:", objj_msgSend(item, "label")); + objj_msgSend(label, "setFont:", objj_msgSend(CPFont, "systemFontOfSize:", 11.0)); + objj_msgSend(label, "setTextColor:", _labelColor); + objj_msgSend(label, "setTextShadowColor:", _labelShadowColor); + objj_msgSend(label, "setTextShadowOffset:", CGSizeMake(0, 1)); + objj_msgSend(label, "sizeToFit"); + objj_msgSend(label, "setTarget:", objj_msgSend(item, "target")); + objj_msgSend(label, "setAction:", objj_msgSend(item, "action")); + objj_msgSend(self, "addSubview:", label); + var minSize = objj_msgSend(item, "minSize"), + minWidth = MAX(minSize.width, CGRectGetWidth(objj_msgSend(label, "frame"))); + objj_msgSend(_itemInfos, "setObject:forKey:", _CPToolbarItemInfoMake(index, view, label, minWidth), objj_msgSend(item, "hash")); + _minWidth += minWidth + TOOLBAR_ITEM_MARGIN; + } + objj_msgSend(self, "layoutSubviews"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $_CPToolbarView__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(_CPToolbarView, "class")) + return; + var bundle = objj_msgSend(CPBundle, "bundleForClass:", self); + _CPToolbarViewExtraItemsImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPToolbarView/_CPToolbarViewExtraItemsImage.png"), CPSizeMake(10.0, 15.0)); + _CPToolbarViewExtraItemsAlternateImage = objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "_CPToolbarView/_CPToolbarViewExtraItemsAlternateImage.png"), CGSizeMake(10.0, 15.0)); +} +})]); +} +var _CPToolbarItemVisibilityPriorityCompare = function(lhs, rhs) +{ + var lhsVisibilityPriority = objj_msgSend(lhs, "visibilityPriority"), + rhsVisibilityPriority = objj_msgSend(rhs, "visibilityPriority"); + if (lhsVisibilityPriority == rhsVisibilityPriority) + return CPOrderedSame; + if (lhsVisibilityPriority > rhsVisibilityPriority) + return CPOrderedAscending; + return CPOrderedDescending; +} + +p;15;CPToolbarItem.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jI;16;AppKit/CPImage.jI;15;AppKit/CPView.jc;13150; +CPToolbarItemVisibilityPriorityStandard = 0; +CPToolbarItemVisibilityPriorityLow = -1000; +CPToolbarItemVisibilityPriorityHigh = 1000; +CPToolbarItemVisibilityPriorityUser = 2000; +CPToolbarSeparatorItemIdentifier = "CPToolbarSeparatorItemIdentifier"; +CPToolbarSpaceItemIdentifier = "CPToolbarSpaceItemIdentifier"; +CPToolbarFlexibleSpaceItemIdentifier = "CPToolbarFlexibleSpaceItemIdentifier"; +CPToolbarShowColorsItemIdentifier = "CPToolbarShowColorsItemIdentifier"; +CPToolbarShowFontsItemIdentifier = "CPToolbarShowFontsItemIdentifier"; +CPToolbarCustomizeToolbarItemIdentifier = "CPToolbarCustomizeToolbarItemIdentifier"; +CPToolbarPrintItemIdentifier = "CPToolbarPrintItemIdentifier"; +{var the_class = objj_allocateClassPair(CPObject, "CPToolbarItem"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_itemIdentifier"), new objj_ivar("_toolbar"), new objj_ivar("_label"), new objj_ivar("_paletteLabel"), new objj_ivar("_toolTip"), new objj_ivar("_tag"), new objj_ivar("_target"), new objj_ivar("_action"), new objj_ivar("_isEnabled"), new objj_ivar("_image"), new objj_ivar("_alternateImage"), new objj_ivar("_view"), new objj_ivar("_minSize"), new objj_ivar("_maxSize"), new objj_ivar("_visibilityPriority")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithItemIdentifier:"), function $CPToolbarItem__initWithItemIdentifier_(self, _cmd, anItemIdentifier) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _itemIdentifier = anItemIdentifier; + _tag = 0; + _isEnabled = YES; + _minSize = CGSizeMakeZero(); + _maxSize = CGSizeMakeZero(); + _visibilityPriority = CPToolbarItemVisibilityPriorityStandard; + } + return self; +} +}), new objj_method(sel_getUid("itemIdentifier"), function $CPToolbarItem__itemIdentifier(self, _cmd) +{ with(self) +{ + return _itemIdentifier; +} +}), new objj_method(sel_getUid("toolbar"), function $CPToolbarItem__toolbar(self, _cmd) +{ with(self) +{ + return _toolbar; +} +}), new objj_method(sel_getUid("label"), function $CPToolbarItem__label(self, _cmd) +{ with(self) +{ + return _label; +} +}), new objj_method(sel_getUid("setLabel:"), function $CPToolbarItem__setLabel_(self, _cmd, aLabel) +{ with(self) +{ + _label = aLabel; +} +}), new objj_method(sel_getUid("paletteLabel"), function $CPToolbarItem__paletteLabel(self, _cmd) +{ with(self) +{ + return _paletteLabel; +} +}), new objj_method(sel_getUid("setPaletteLabel:"), function $CPToolbarItem__setPaletteLabel_(self, _cmd, aPaletteLabel) +{ with(self) +{ + _paletteLabel = aPaletteLabel; +} +}), new objj_method(sel_getUid("toolTip"), function $CPToolbarItem__toolTip(self, _cmd) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("toolTip"))) + return objj_msgSend(_view, "toolTip"); + return _toolTip; +} +}), new objj_method(sel_getUid("setToolTip:"), function $CPToolbarItem__setToolTip_(self, _cmd, aToolTip) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setToolTip:"))) + objj_msgSend(view, "setToolTip:", aToolTip); + _toolTip = aToolTip; +} +}), new objj_method(sel_getUid("tag"), function $CPToolbarItem__tag(self, _cmd) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("tag"))) + return objj_msgSend(_view, "tag"); + return _tag; +} +}), new objj_method(sel_getUid("setTag:"), function $CPToolbarItem__setTag_(self, _cmd, aTag) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setTag:"))) + objj_msgSend(_view, "setTag:", aTag); + _tag = aTag; +} +}), new objj_method(sel_getUid("target"), function $CPToolbarItem__target(self, _cmd) +{ with(self) +{ + if (_view) + return objj_msgSend(_view, "respondsToSelector:", sel_getUid("target")) ? objj_msgSend(_view, "target") : nil; + return _target; +} +}), new objj_method(sel_getUid("setTarget:"), function $CPToolbarItem__setTarget_(self, _cmd, aTarget) +{ with(self) +{ + if (!_view) + _target = aTarget; + else if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setTarget:"))) + objj_msgSend(_view, "setTarget:", aTarget); +} +}), new objj_method(sel_getUid("action"), function $CPToolbarItem__action(self, _cmd) +{ with(self) +{ + if (_view) + return objj_msgSend(_view, "respondsToSelector:", sel_getUid("action")) ? objj_msgSend(_view, "action") : nil; + return _action; +} +}), new objj_method(sel_getUid("setAction:"), function $CPToolbarItem__setAction_(self, _cmd, anAction) +{ with(self) +{ + if (!_view) + _action = anAction; + else if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setAction:"))) + objj_msgSend(_view, "setAction:", anAction); +} +}), new objj_method(sel_getUid("isEnabled"), function $CPToolbarItem__isEnabled(self, _cmd) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("isEnabled"))) + return objj_msgSend(_view, "isEnabled"); + return _isEnabled; +} +}), new objj_method(sel_getUid("setEnabled:"), function $CPToolbarItem__setEnabled_(self, _cmd, shouldBeEnabled) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setEnabled:"))) + objj_msgSend(_view, "setEnabled:", shouldBeEnabled); + _isEnabled = shouldBeEnabled; +} +}), new objj_method(sel_getUid("image"), function $CPToolbarItem__image(self, _cmd) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("image"))) + return objj_msgSend(_view, "image"); + return _image; +} +}), new objj_method(sel_getUid("setImage:"), function $CPToolbarItem__setImage_(self, _cmd, anImage) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setImage:"))) + objj_msgSend(_view, "setImage:", anImage); + _image = anImage; + if (!_image) + return; + if (_minSize.width == 0 && _minSize.height == 0 && + _maxSize.width == 0 && _maxSize.height == 0) + { + var imageSize = objj_msgSend(_image, "size"); + if (imageSize.width > 0 || imageSize.height > 0) + { + objj_msgSend(self, "setMinSize:", imageSize); + objj_msgSend(self, "setMaxSize:", imageSize); + } + } +} +}), new objj_method(sel_getUid("setAlternateImage:"), function $CPToolbarItem__setAlternateImage_(self, _cmd, anImage) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("setAlternateImage:"))) + objj_msgSend(_view, "setAlternateImage:", anImage); + _alternateImage = anImage; +} +}), new objj_method(sel_getUid("alternateImage"), function $CPToolbarItem__alternateImage(self, _cmd) +{ with(self) +{ + if (objj_msgSend(_view, "respondsToSelector:", sel_getUid("alternateIamge"))) + return objj_msgSend(_view, "alternateImage"); + return _alternateImage; +} +}), new objj_method(sel_getUid("view"), function $CPToolbarItem__view(self, _cmd) +{ with(self) +{ + return _view; +} +}), new objj_method(sel_getUid("setView:"), function $CPToolbarItem__setView_(self, _cmd, aView) +{ with(self) +{ + if (_view == aView) + return; + _view = aView; + if (_view) + { + if (_tag !== 0 && objj_msgSend(_view, "respondsToSelector:", sel_getUid("setTag:"))) + objj_msgSend(_view, "setTag:", _tag); + _target = nil; + _action = nil; + } +} +}), new objj_method(sel_getUid("minSize"), function $CPToolbarItem__minSize(self, _cmd) +{ with(self) +{ + return _minSize; +} +}), new objj_method(sel_getUid("setMinSize:"), function $CPToolbarItem__setMinSize_(self, _cmd, aMinSize) +{ with(self) +{ + _minSize = CGSizeMakeCopy(aMinSize); + _maxSize = CGSizeMake(MAX(_minSize.width, _maxSize.width), MAX(_minSize.height, _maxSize.height)); +} +}), new objj_method(sel_getUid("maxSize"), function $CPToolbarItem__maxSize(self, _cmd) +{ with(self) +{ + return _maxSize; +} +}), new objj_method(sel_getUid("setMaxSize:"), function $CPToolbarItem__setMaxSize_(self, _cmd, aMaxSize) +{ with(self) +{ + _maxSize = CGSizeMakeCopy(aMaxSize); + _minSize = CGSizeMake(MIN(_minSize.width, _maxSize.width), MIN(_minSize.height, _maxSize.height)); +} +}), new objj_method(sel_getUid("visibilityPriority"), function $CPToolbarItem__visibilityPriority(self, _cmd) +{ with(self) +{ + return _visibilityPriority; +} +}), new objj_method(sel_getUid("setVisibilityPriority:"), function $CPToolbarItem__setVisibilityPriority_(self, _cmd, aVisibilityPriority) +{ with(self) +{ + _visibilityPriority = aVisibilityPriority; +} +})]); +} +{ +var the_class = objj_getClass("CPToolbarItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPToolbarItem\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("copy"), function $CPToolbarItem__copy(self, _cmd) +{ with(self) +{ + var copy = objj_msgSend(objj_msgSend(objj_msgSend(self, "class"), "alloc"), "initWithItemIdentifier:", _itemIdentifier); + if (_view) + objj_msgSend(copy, "setView:", objj_msgSend(CPKeyedUnarchiver, "unarchiveObjectWithData:", objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", _view))); + objj_msgSend(copy, "setLabel:", _label); + objj_msgSend(copy, "setPaletteLabel:", _paletteLabel); + objj_msgSend(copy, "setToolTip:", objj_msgSend(self, "toolTip")); + objj_msgSend(copy, "setTag:", objj_msgSend(self, "tag")); + objj_msgSend(copy, "setTarget:", objj_msgSend(self, "target")); + objj_msgSend(copy, "setAction:", objj_msgSend(self, "action")); + objj_msgSend(copy, "setEnabled:", objj_msgSend(self, "isEnabled")); + objj_msgSend(copy, "setImage:", objj_msgSend(self, "image")); + objj_msgSend(copy, "setAlternateImage:", objj_msgSend(self, "alternateImage")); + objj_msgSend(copy, "setMinSize:", _minSize); + objj_msgSend(copy, "setMaxSize:", _maxSize); + objj_msgSend(copy, "setVisibilityPriority:", _visibilityPriority); + return copy; +} +})]); +} +var _CPToolbarSeparatorItemView = nil, + _CPToolbarSpaceItemView = nil; +{ +var the_class = objj_getClass("CPToolbarItem") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPToolbarItem\"")); +var meta_class = the_class.isa;class_addMethods(meta_class, [new objj_method(sel_getUid("_separatorItemView"), function $CPToolbarItem___separatorItemView(self, _cmd) +{ with(self) +{ + if (!_CPToolbarSeparatorItemView) + { + _CPToolbarSeparatorItemView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(0.0, 0.0, 2.0, 32.0)); + sizes = {}; + sizes["CPToolbarItemSeparator"] = [CGSizeMake(2.0, 26.0), CGSizeMake(2.0, 1.0), CGSizeMake(2.0, 26.0)]; + objj_msgSend(_CPToolbarSeparatorItemView, "setBackgroundColor:", _CPControlThreePartImagePattern(YES, sizes, "CPToolbarItem", "Separator")); + } + return _CPToolbarSeparatorItemView; +} +}), new objj_method(sel_getUid("_spaceItemView"), function $CPToolbarItem___spaceItemView(self, _cmd) +{ with(self) +{ + if (!_CPToolbarSpaceItemView) + _CPToolbarSpaceItemView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMakeZero()); + return _CPToolbarSpaceItemView; +} +}), new objj_method(sel_getUid("_standardItemWithItemIdentifier:"), function $CPToolbarItem___standardItemWithItemIdentifier_(self, _cmd, anItemIdentifier) +{ with(self) +{ + var item = objj_msgSend(objj_msgSend(CPToolbarItem, "alloc"), "initWithItemIdentifier:", anItemIdentifier); + switch (anItemIdentifier) + { + case CPToolbarSeparatorItemIdentifier: objj_msgSend(item, "setView:", objj_msgSend(self, "_separatorItemView")); + objj_msgSend(item, "setMinSize:", CGSizeMake(2.0, 0.0)); + objj_msgSend(item, "setMaxSize:", CGSizeMake(2.0, 100000.0)); + return item; + case CPToolbarSpaceItemIdentifier: objj_msgSend(item, "setView:", objj_msgSend(self, "_spaceItemView")); + objj_msgSend(item, "setMinSize:", CGSizeMake(32.0, 32.0)); + objj_msgSend(item, "setMaxSize:", CGSizeMake(32.0, 32.0)); + return item; + case CPToolbarFlexibleSpaceItemIdentifier: objj_msgSend(item, "setView:", objj_msgSend(self, "_spaceItemView")); + objj_msgSend(item, "setMinSize:", CGSizeMake(32.0, 32.0)); + objj_msgSend(item, "setMaxSize:", CGSizeMake(10000.0, 32.0)); + return item; + case CPToolbarShowColorsItemIdentifier: return nil; + case CPToolbarShowFontsItemIdentifier: return nil; + case CPToolbarCustomizeToolbarItemIdentifier: return nil; + case CPToolbarPrintItemIdentifier: return nil; + } + return nil; +} +})]); +} + +p;8;CPView.jI;20;Foundation/CPArray.jI;26;Foundation/CPObjJRuntime.ji;19;CGAffineTransform.ji;12;CGGeometry.ji;9;CPColor.ji;20;CPDOMDisplayServer.ji;12;CPGeometry.ji;19;CPGraphicsContext.ji;13;CPResponder.ji;9;CPTheme.jc;55980; +CPViewNotSizable = 0; +CPViewMinXMargin = 1; +CPViewWidthSizable = 2; +CPViewMaxXMargin = 4; +CPViewMinYMargin = 8; +CPViewHeightSizable = 16; +CPViewMaxYMargin = 32; +CPViewBoundsDidChangeNotification = "CPViewBoundsDidChangeNotification"; +CPViewFrameDidChangeNotification = "CPViewFrameDidChangeNotification"; +var CachedNotificationCenter = nil, + CachedThemeAttributes = nil; +{var the_class = objj_allocateClassPair(CPResponder, "CPView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_window"), new objj_ivar("_superview"), new objj_ivar("_subviews"), new objj_ivar("_graphicsContext"), new objj_ivar("_tag"), new objj_ivar("_frame"), new objj_ivar("_bounds"), new objj_ivar("_boundsTransform"), new objj_ivar("_inverseBoundsTransform"), new objj_ivar("_registeredDraggedTypes"), new objj_ivar("_registeredDraggedTypesArray"), new objj_ivar("_isHidden"), new objj_ivar("_hitTests"), new objj_ivar("_postsFrameChangedNotifications"), new objj_ivar("_postsBoundsChangedNotifications"), new objj_ivar("_inhibitFrameAndBoundsChangedNotifications"), new objj_ivar("_displayHash"), new objj_ivar("_dirtyRect"), new objj_ivar("_opacity"), new objj_ivar("_backgroundColor"), new objj_ivar("_autoresizesSubviews"), new objj_ivar("_autoresizingMask"), new objj_ivar("_layer"), new objj_ivar("_wantsLayer"), new objj_ivar("_isInFullScreenMode"), new objj_ivar("_fullScreenModeState"), new objj_ivar("_needsLayout"), new objj_ivar("_ephemeralSubviews"), new objj_ivar("_theme"), new objj_ivar("_themeAttributes"), new objj_ivar("_themeState"), new objj_ivar("_nextKeyView"), new objj_ivar("_previousKeyView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPView__init(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "initWithFrame:", CGRectMakeZero()); +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "init"); + if (self) + { + var width = (aFrame.size.width), + height = (aFrame.size.height); + _subviews = []; + _registeredDraggedTypes = objj_msgSend(CPSet, "set"); + _registeredDraggedTypesArray = []; + _tag = -1; + _frame = { origin: { x:aFrame.origin.x, y:aFrame.origin.y }, size: { width:aFrame.size.width, height:aFrame.size.height } }; + _bounds = { origin: { x:0.0, y:0.0 }, size: { width:width, height:height } }; + _autoresizingMask = CPViewNotSizable; + _autoresizesSubviews = YES; + _opacity = 1.0; + _isHidden = NO; + _hitTests = YES; + _displayHash = objj_msgSend(self, "hash"); + _theme = objj_msgSend(CPTheme, "defaultTheme"); + _themeState = CPThemeStateNormal; + objj_msgSend(self, "_loadThemeAttributes"); + } + return self; +} +}), new objj_method(sel_getUid("superview"), function $CPView__superview(self, _cmd) +{ with(self) +{ + return _superview; +} +}), new objj_method(sel_getUid("subviews"), function $CPView__subviews(self, _cmd) +{ with(self) +{ + return _subviews; +} +}), new objj_method(sel_getUid("window"), function $CPView__window(self, _cmd) +{ with(self) +{ + return _window; +} +}), new objj_method(sel_getUid("addSubview:"), function $CPView__addSubview_(self, _cmd, aSubview) +{ with(self) +{ + objj_msgSend(self, "_insertSubview:atIndex:", aSubview, CPNotFound); +} +}), new objj_method(sel_getUid("addSubview:positioned:relativeTo:"), function $CPView__addSubview_positioned_relativeTo_(self, _cmd, aSubview, anOrderingMode, anotherView) +{ with(self) +{ + var index = anotherView ? objj_msgSend(_subviews, "indexOfObjectIdenticalTo:", anotherView) : CPNotFound; + if (index === CPNotFound) + index = (anOrderingMode === CPWindowAbove) ? objj_msgSend(_subviews, "count") : 0; + else if (anOrderingMode === CPWindowAbove) + ++index; + objj_msgSend(self, "_insertSubview:atIndex:", aSubview, index); +} +}), new objj_method(sel_getUid("_insertSubview:atIndex:"), function $CPView___insertSubview_atIndex_(self, _cmd, aSubview, anIndex) +{ with(self) +{ + var count = _subviews.length; + objj_msgSend(objj_msgSend(self, "window"), "_dirtyKeyViewLoop"); + if (aSubview._superview == self) + { + var index = objj_msgSend(_subviews, "indexOfObjectIdenticalTo:", aSubview); + if (index === anIndex || index === count - 1 && anIndex === count) + return; + objj_msgSend(_subviews, "removeObjectAtIndex:", index); + if (anIndex > index) + --anIndex; + --count; + } + else + { + objj_msgSend(aSubview, "removeFromSuperview"); + objj_msgSend(aSubview, "_setWindow:", _window); + objj_msgSend(aSubview, "viewWillMoveToSuperview:", self); + aSubview._superview = self; + } + if (anIndex === CPNotFound || anIndex >= count) + { + _subviews.push(aSubview); + } + else + { + _subviews.splice(anIndex, 0, aSubview); + } + objj_msgSend(aSubview, "setNextResponder:", self); + objj_msgSend(aSubview, "viewDidMoveToSuperview"); + objj_msgSend(self, "didAddSubview:", aSubview); +} +}), new objj_method(sel_getUid("didAddSubview:"), function $CPView__didAddSubview_(self, _cmd, aSubview) +{ with(self) +{ +} +}), new objj_method(sel_getUid("removeFromSuperview"), function $CPView__removeFromSuperview(self, _cmd) +{ with(self) +{ + if (!_superview) + return; + objj_msgSend(objj_msgSend(self, "window"), "_dirtyKeyViewLoop"); + objj_msgSend(_superview, "willRemoveSubview:", self); + objj_msgSend(objj_msgSend(_superview, "subviews"), "removeObject:", self); + _superview = nil; + objj_msgSend(self, "_setWindow:", nil); +} +}), new objj_method(sel_getUid("replaceSubview:with:"), function $CPView__replaceSubview_with_(self, _cmd, aSubview, aView) +{ with(self) +{ + if (aSubview._superview != self) + return; + var index = objj_msgSend(_subviews, "indexOfObjectIdenticalTo:", aSubview); + objj_msgSend(aSubview, "removeFromSuperview"); + objj_msgSend(self, "_insertSubview:atIndex:", aView, index); +} +}), new objj_method(sel_getUid("_setWindow:"), function $CPView___setWindow_(self, _cmd, aWindow) +{ with(self) +{ + if (_window === aWindow) + return; + objj_msgSend(objj_msgSend(self, "window"), "_dirtyKeyViewLoop"); + if (objj_msgSend(_window, "firstResponder") === self) + objj_msgSend(_window, "makeFirstResponder:", nil); + objj_msgSend(self, "viewWillMoveToWindow:", aWindow); + if (_registeredDraggedTypes) + { + objj_msgSend(_window, "_noteUnregisteredDraggedTypes:", _registeredDraggedTypes); + objj_msgSend(aWindow, "_noteRegisteredDraggedTypes:", _registeredDraggedTypes); + } + _window = aWindow; + var count = objj_msgSend(_subviews, "count"); + while (count--) + objj_msgSend(_subviews[count], "_setWindow:", aWindow); + objj_msgSend(self, "viewDidMoveToWindow"); + objj_msgSend(objj_msgSend(self, "window"), "_dirtyKeyViewLoop"); +} +}), new objj_method(sel_getUid("isDescendantOf:"), function $CPView__isDescendantOf_(self, _cmd, aView) +{ with(self) +{ + var view = self; + do + { + if (view == aView) + return YES; + } while(view = objj_msgSend(view, "superview")) + return NO; +} +}), new objj_method(sel_getUid("viewDidMoveToSuperview"), function $CPView__viewDidMoveToSuperview(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("viewDidMoveToWindow"), function $CPView__viewDidMoveToWindow(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("viewWillMoveToSuperview:"), function $CPView__viewWillMoveToSuperview_(self, _cmd, aView) +{ with(self) +{ +} +}), new objj_method(sel_getUid("viewWillMoveToWindow:"), function $CPView__viewWillMoveToWindow_(self, _cmd, aWindow) +{ with(self) +{ +} +}), new objj_method(sel_getUid("willRemoveSubview:"), function $CPView__willRemoveSubview_(self, _cmd, aView) +{ with(self) +{ +} +}), new objj_method(sel_getUid("enclosingMenuItem"), function $CPView__enclosingMenuItem(self, _cmd) +{ with(self) +{ + var view = self; + while (view && !objj_msgSend(view, "isKindOfClass:", objj_msgSend(_CPMenuItemView, "class"))) + view = objj_msgSend(view, "superview"); + if (view) + return view._menuItem; + return nil; +} +}), new objj_method(sel_getUid("setTag:"), function $CPView__setTag_(self, _cmd, aTag) +{ with(self) +{ + _tag = aTag; +} +}), new objj_method(sel_getUid("tag"), function $CPView__tag(self, _cmd) +{ with(self) +{ + return _tag; +} +}), new objj_method(sel_getUid("viewWithTag:"), function $CPView__viewWithTag_(self, _cmd, aTag) +{ with(self) +{ + if (objj_msgSend(self, "tag") === aTag) + return self; + var index = 0, + count = _subviews.length; + for (; index < count; ++index) + { + var view = objj_msgSend(_subviews[index], "viewWithTag:", aTag); + if (view) + return view; + } + return nil; +} +}), new objj_method(sel_getUid("isFlipped"), function $CPView__isFlipped(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("setFrame:"), function $CPView__setFrame_(self, _cmd, aFrame) +{ with(self) +{ + if (((_frame.origin.x == aFrame.origin.x && _frame.origin.y == aFrame.origin.y) && (_frame.size.width == aFrame.size.width && _frame.size.height == aFrame.size.height))) + return; + _inhibitFrameAndBoundsChangedNotifications = YES; + objj_msgSend(self, "setFrameOrigin:", aFrame.origin); + objj_msgSend(self, "setFrameSize:", aFrame.size); + _inhibitFrameAndBoundsChangedNotifications = NO; + if (_postsFrameChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewFrameDidChangeNotification, self); +} +}), new objj_method(sel_getUid("frame"), function $CPView__frame(self, _cmd) +{ with(self) +{ + return { origin: { x:_frame.origin.x, y:_frame.origin.y }, size: { width:_frame.size.width, height:_frame.size.height } }; +} +}), new objj_method(sel_getUid("setCenter:"), function $CPView__setCenter_(self, _cmd, aPoint) +{ with(self) +{ + objj_msgSend(self, "setFrameOrigin:", CGPointMake(aPoint.x - _frame.size.width / 2.0, aPoint.y - _frame.size.height / 2.0)); +} +}), new objj_method(sel_getUid("center"), function $CPView__center(self, _cmd) +{ with(self) +{ + return CGPointMake(_frame.size.width / 2.0 + _frame.origin.x, _frame.size.height / 2.0 + _frame.origin.y); +} +}), new objj_method(sel_getUid("setFrameOrigin:"), function $CPView__setFrameOrigin_(self, _cmd, aPoint) +{ with(self) +{ + var origin = _frame.origin; + if (!aPoint || (origin.x == aPoint.x && origin.y == aPoint.y)) + return; + origin.x = aPoint.x; + origin.y = aPoint.y; + if (_postsFrameChangedNotifications && !_inhibitFrameAndBoundsChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewFrameDidChangeNotification, self); +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPView__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + var size = _frame.size; + if (!aSize || (size.width == aSize.width && size.height == aSize.height)) + return; + var oldSize = { width:size.width, height:size.height }; + size.width = aSize.width; + size.height = aSize.height; + if (YES) + { + _bounds.size.width = aSize.width; + _bounds.size.height = aSize.height; + } + if (_layer) + objj_msgSend(_layer, "_owningViewBoundsChanged"); + if (_autoresizesSubviews) + objj_msgSend(self, "resizeSubviewsWithOldSize:", oldSize); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + if (_postsFrameChangedNotifications && !_inhibitFrameAndBoundsChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewFrameDidChangeNotification, self); +} +}), new objj_method(sel_getUid("setBounds:"), function $CPView__setBounds_(self, _cmd, bounds) +{ with(self) +{ + if (((_bounds.origin.x == bounds.origin.x && _bounds.origin.y == bounds.origin.y) && (_bounds.size.width == bounds.size.width && _bounds.size.height == bounds.size.height))) + return; + _inhibitFrameAndBoundsChangedNotifications = YES; + objj_msgSend(self, "setBoundsOrigin:", bounds.origin); + objj_msgSend(self, "setBoundsSize:", bounds.size); + _inhibitFrameAndBoundsChangedNotifications = NO; + if (_postsBoundsChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewBoundsDidChangeNotification, self); +} +}), new objj_method(sel_getUid("bounds"), function $CPView__bounds(self, _cmd) +{ with(self) +{ + return { origin: { x:_bounds.origin.x, y:_bounds.origin.y }, size: { width:_bounds.size.width, height:_bounds.size.height } }; +} +}), new objj_method(sel_getUid("setBoundsOrigin:"), function $CPView__setBoundsOrigin_(self, _cmd, aPoint) +{ with(self) +{ + var origin = _bounds.origin; + if ((origin.x == aPoint.x && origin.y == aPoint.y)) + return; + origin.x = aPoint.x; + origin.y = aPoint.y; + if (origin.x != 0 || origin.y != 0) + { + _boundsTransform = { a:1.0, b:0.0, c:0.0, d:1.0, tx:-origin.x, ty:-origin.y }; + _inverseBoundsTransform = CGAffineTransformInvert(_boundsTransform); + } + else + { + _boundsTransform = nil; + _inverseBoundsTransform = nil; + } + if (_postsBoundsChangedNotifications && !_inhibitFrameAndBoundsChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewBoundsDidChangeNotification, self); +} +}), new objj_method(sel_getUid("setBoundsSize:"), function $CPView__setBoundsSize_(self, _cmd, aSize) +{ with(self) +{ + var size = _bounds.size; + if ((size.width == aSize.width && size.height == aSize.height)) + return; + var frameSize = _frame.size; + if (!(size.width == frameSize.width && size.height == frameSize.height)) + { + var origin = _bounds.origin; + origin.x /= size.width / frameSize.width; + origin.y /= size.height / frameSize.height; + } + size.width = aSize.width; + size.height = aSize.height; + if (!(size.width == frameSize.width && size.height == frameSize.height)) + { + var origin = _bounds.origin; + origin.x *= size.width / frameSize.width; + origin.y *= size.height / frameSize.height; + } + if (_postsBoundsChangedNotifications && !_inhibitFrameAndBoundsChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewBoundsDidChangeNotification, self); +} +}), new objj_method(sel_getUid("resizeWithOldSuperviewSize:"), function $CPView__resizeWithOldSuperviewSize_(self, _cmd, aSize) +{ with(self) +{ + var mask = objj_msgSend(self, "autoresizingMask"); + if(mask == CPViewNotSizable) + return; + var frame = _superview._frame, + newFrame = { origin: { x:_frame.origin.x, y:_frame.origin.y }, size: { width:_frame.size.width, height:_frame.size.height } }, + dX = ((frame.size.width) - aSize.width) / + (((mask & CPViewMinXMargin) ? 1 : 0) + (mask & CPViewWidthSizable ? 1 : 0) + (mask & CPViewMaxXMargin ? 1 : 0)), + dY = ((frame.size.height) - aSize.height) / + ((mask & CPViewMinYMargin ? 1 : 0) + (mask & CPViewHeightSizable ? 1 : 0) + (mask & CPViewMaxYMargin ? 1 : 0)); + if (mask & CPViewMinXMargin) + newFrame.origin.x += dX; + if (mask & CPViewWidthSizable) + newFrame.size.width += dX; + if (mask & CPViewMinYMargin) + newFrame.origin.y += dY; + if (mask & CPViewHeightSizable) + newFrame.size.height += dY; + objj_msgSend(self, "setFrame:", newFrame); +} +}), new objj_method(sel_getUid("resizeSubviewsWithOldSize:"), function $CPView__resizeSubviewsWithOldSize_(self, _cmd, aSize) +{ with(self) +{ + var count = _subviews.length; + while (count--) + objj_msgSend(_subviews[count], "resizeWithOldSuperviewSize:", aSize); +} +}), new objj_method(sel_getUid("setAutoresizesSubviews:"), function $CPView__setAutoresizesSubviews_(self, _cmd, aFlag) +{ with(self) +{ + _autoresizesSubviews = !!aFlag; +} +}), new objj_method(sel_getUid("autoresizesSubviews"), function $CPView__autoresizesSubviews(self, _cmd) +{ with(self) +{ + return _autoresizesSubviews; +} +}), new objj_method(sel_getUid("setAutoresizingMask:"), function $CPView__setAutoresizingMask_(self, _cmd, aMask) +{ with(self) +{ + _autoresizingMask = aMask; +} +}), new objj_method(sel_getUid("autoresizingMask"), function $CPView__autoresizingMask(self, _cmd) +{ with(self) +{ + return _autoresizingMask; +} +}), new objj_method(sel_getUid("enterFullScreenMode"), function $CPView__enterFullScreenMode(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "enterFullScreenMode:withOptions:", nil, nil); +} +}), new objj_method(sel_getUid("enterFullScreenMode:withOptions:"), function $CPView__enterFullScreenMode_withOptions_(self, _cmd, aScreen, options) +{ with(self) +{ + _fullScreenModeState = _CPViewFullScreenModeStateMake(self); + var fullScreenWindow = objj_msgSend(objj_msgSend(CPWindow, "alloc"), "initWithContentRect:styleMask:", objj_msgSend(objj_msgSend(CPDOMWindowBridge, "sharedDOMWindowBridge"), "contentBounds"), CPBorderlessWindowMask); + objj_msgSend(fullScreenWindow, "setLevel:", CPScreenSaverWindowLevel); + objj_msgSend(fullScreenWindow, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + var contentView = objj_msgSend(fullScreenWindow, "contentView"); + objj_msgSend(contentView, "setBackgroundColor:", objj_msgSend(CPColor, "blackColor")); + objj_msgSend(contentView, "addSubview:", self); + objj_msgSend(self, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + objj_msgSend(self, "setFrame:", CGRectMakeCopy(objj_msgSend(contentView, "bounds"))); + objj_msgSend(fullScreenWindow, "makeKeyAndOrderFront:", self); + objj_msgSend(fullScreenWindow, "makeFirstResponder:", self); + _isInFullScreenMode = YES; + return YES; +} +}), new objj_method(sel_getUid("exitFullScreenMode"), function $CPView__exitFullScreenMode(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "exitFullScreenModeWithOptions:", nil); +} +}), new objj_method(sel_getUid("exitFullScreenModeWithOptions:"), function $CPView__exitFullScreenModeWithOptions_(self, _cmd, options) +{ with(self) +{ + if (!_isInFullScreenMode) + return; + _isInFullScreenMode = NO; + objj_msgSend(self, "setFrame:", _fullScreenModeState.frame); + objj_msgSend(self, "setAutoresizingMask:", _fullScreenModeState.autoresizingMask); + objj_msgSend(_fullScreenModeState.superview, "_insertSubview:atIndex:", self, _fullScreenModeState.index); + objj_msgSend(objj_msgSend(self, "window"), "orderOut:", self); +} +}), new objj_method(sel_getUid("isInFullScreenMode"), function $CPView__isInFullScreenMode(self, _cmd) +{ with(self) +{ + return _isInFullScreenMode; +} +}), new objj_method(sel_getUid("setHidden:"), function $CPView__setHidden_(self, _cmd, aFlag) +{ with(self) +{ + aFlag = !!aFlag; + if(_isHidden === aFlag) + return; + _isHidden = aFlag; + if (aFlag) + { + var view = objj_msgSend(_window, "firstResponder"); + if (objj_msgSend(view, "isKindOfClass:", objj_msgSend(CPView, "class"))) + { + do + { + if (self == view) + { + objj_msgSend(_window, "makeFirstResponder:", objj_msgSend(self, "nextValidKeyView")); + break; + } + } + while (view = objj_msgSend(view, "superview")); + } + } +} +}), new objj_method(sel_getUid("isHidden"), function $CPView__isHidden(self, _cmd) +{ with(self) +{ + return _isHidden; +} +}), new objj_method(sel_getUid("setAlphaValue:"), function $CPView__setAlphaValue_(self, _cmd, anAlphaValue) +{ with(self) +{ + if (_opacity == anAlphaValue) + return; + _opacity = anAlphaValue; +} +}), new objj_method(sel_getUid("alphaValue"), function $CPView__alphaValue(self, _cmd) +{ with(self) +{ + return _opacity; +} +}), new objj_method(sel_getUid("isHiddenOrHasHiddenAncestor"), function $CPView__isHiddenOrHasHiddenAncestor(self, _cmd) +{ with(self) +{ + var view = self; + while (view && !objj_msgSend(view, "isHidden")) + view = objj_msgSend(view, "superview"); + return view !== nil; +} +}), new objj_method(sel_getUid("acceptsFirstMouse:"), function $CPView__acceptsFirstMouse_(self, _cmd, anEvent) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("hitTests"), function $CPView__hitTests(self, _cmd) +{ with(self) +{ + return _hitTests; +} +}), new objj_method(sel_getUid("setHitTests:"), function $CPView__setHitTests_(self, _cmd, shouldHitTest) +{ with(self) +{ + _hitTests = !!shouldHitTest; +} +}), new objj_method(sel_getUid("hitTest:"), function $CPView__hitTest_(self, _cmd, aPoint) +{ with(self) +{ + if(_isHidden || !_hitTests || !CPRectContainsPoint(_frame, aPoint)) + return nil; + var view = nil, + i = _subviews.length, + adjustedPoint = { x:aPoint.x - (_frame.origin.x), y:aPoint.y - (_frame.origin.y) }; + if (_inverseBoundsTransform) + adjustedPoint = { x:adjustedPoint.x * _inverseBoundsTransform.a + adjustedPoint.y * _inverseBoundsTransform.c + _inverseBoundsTransform.tx, y:adjustedPoint.x * _inverseBoundsTransform.b + adjustedPoint.y * _inverseBoundsTransform.d + _inverseBoundsTransform.ty }; + while (i--) + if (view = objj_msgSend(_subviews[i], "hitTest:", adjustedPoint)) + return view; + return self; +} +}), new objj_method(sel_getUid("mouseDownCanMoveWindow"), function $CPView__mouseDownCanMoveWindow(self, _cmd) +{ with(self) +{ + return !objj_msgSend(self, "isOpaque"); +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + if (objj_msgSend(self, "mouseDownCanMoveWindow")) + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "mouseDown:", anEvent); +} +}), new objj_method(sel_getUid("setBackgroundColor:"), function $CPView__setBackgroundColor_(self, _cmd, aColor) +{ with(self) +{ + if (_backgroundColor == aColor) + return; + _backgroundColor = aColor; +} +}), new objj_method(sel_getUid("backgroundColor"), function $CPView__backgroundColor(self, _cmd) +{ with(self) +{ + return _backgroundColor; +} +}), new objj_method(sel_getUid("convertPoint:fromView:"), function $CPView__convertPoint_fromView_(self, _cmd, aPoint, aView) +{ with(self) +{ + return CGPointApplyAffineTransform(aPoint, _CPViewGetTransform(aView, self)); +} +}), new objj_method(sel_getUid("convertPoint:toView:"), function $CPView__convertPoint_toView_(self, _cmd, aPoint, aView) +{ with(self) +{ + return CGPointApplyAffineTransform(aPoint, _CPViewGetTransform(self, aView)); +} +}), new objj_method(sel_getUid("convertSize:fromView:"), function $CPView__convertSize_fromView_(self, _cmd, aSize, aView) +{ with(self) +{ + return CGSizeApplyAffineTransform(aSize, _CPViewGetTransform(aView, self)); +} +}), new objj_method(sel_getUid("convertSize:toView:"), function $CPView__convertSize_toView_(self, _cmd, aSize, aView) +{ with(self) +{ + return CGSizeApplyAffineTransform(aSize, _CPViewGetTransform(self, aView)); +} +}), new objj_method(sel_getUid("convertRect:fromView:"), function $CPView__convertRect_fromView_(self, _cmd, aRect, aView) +{ with(self) +{ + return CGRectApplyAffineTransform(aRect, _CPViewGetTransform(aView, self)); +} +}), new objj_method(sel_getUid("convertRect:toView:"), function $CPView__convertRect_toView_(self, _cmd, aRect, aView) +{ with(self) +{ + return CGRectApplyAffineTransform(aRect, _CPViewGetTransform(self, aView)); +} +}), new objj_method(sel_getUid("setPostsFrameChangedNotifications:"), function $CPView__setPostsFrameChangedNotifications_(self, _cmd, shouldPostFrameChangedNotifications) +{ with(self) +{ + shouldPostFrameChangedNotifications = !!shouldPostFrameChangedNotifications; + if (_postsFrameChangedNotifications === shouldPostFrameChangedNotifications) + return; + _postsFrameChangedNotifications = shouldPostFrameChangedNotifications; + if (_postsFrameChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewFrameDidChangeNotification, self); +} +}), new objj_method(sel_getUid("postsFrameChangedNotifications"), function $CPView__postsFrameChangedNotifications(self, _cmd) +{ with(self) +{ + return _postsFrameChangedNotifications; +} +}), new objj_method(sel_getUid("setPostsBoundsChangedNotifications:"), function $CPView__setPostsBoundsChangedNotifications_(self, _cmd, shouldPostBoundsChangedNotifications) +{ with(self) +{ + shouldPostBoundsChangedNotifications = !!shouldPostBoundsChangedNotifications; + if (_postsBoundsChangedNotifications === shouldPostBoundsChangedNotifications) + return; + _postsBoundsChangedNotifications = shouldPostBoundsChangedNotifications; + if (_postsBoundsChangedNotifications) + objj_msgSend(CachedNotificationCenter, "postNotificationName:object:", CPViewBoundsDidChangeNotification, self); +} +}), new objj_method(sel_getUid("postsBoundsChangedNotifications"), function $CPView__postsBoundsChangedNotifications(self, _cmd) +{ with(self) +{ + return _postsBoundsChangedNotifications; +} +}), new objj_method(sel_getUid("dragImage:at:offset:event:pasteboard:source:slideBack:"), function $CPView__dragImage_at_offset_event_pasteboard_source_slideBack_(self, _cmd, anImage, aLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack) +{ with(self) +{ + objj_msgSend(_window, "dragImage:at:offset:event:pasteboard:source:slideBack:", anImage, objj_msgSend(self, "convertPoint:toView:", aLocation, nil), mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack); +} +}), new objj_method(sel_getUid("dragView:at:offset:event:pasteboard:source:slideBack:"), function $CPView__dragView_at_offset_event_pasteboard_source_slideBack_(self, _cmd, aView, aLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack) +{ with(self) +{ + objj_msgSend(_window, "dragView:at:offset:event:pasteboard:source:slideBack:", aView, objj_msgSend(self, "convertPoint:toView:", aLocation, nil), mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack); +} +}), new objj_method(sel_getUid("registerForDraggedTypes:"), function $CPView__registerForDraggedTypes_(self, _cmd, pasteboardTypes) +{ with(self) +{ + if (!pasteboardTypes || !objj_msgSend(pasteboardTypes, "count")) + return; + var theWindow = objj_msgSend(self, "window"); + objj_msgSend(theWindow, "_noteUnregisteredDraggedTypes:", _registeredDraggedTypes); + objj_msgSend(_registeredDraggedTypes, "addObjectsFromArray:", pasteboardTypes) + objj_msgSend(theWindow, "_noteRegisteredDraggedTypes:", _registeredDraggedTypes); + _registeredDraggedTypesArray = nil; +} +}), new objj_method(sel_getUid("registeredDraggedTypes"), function $CPView__registeredDraggedTypes(self, _cmd) +{ with(self) +{ + if (!_registeredDraggedTypesArray) + _registeredDraggedTypesArray = objj_msgSend(_registeredDraggedTypes, "allObjects"); + return _registeredDraggedTypesArray; +} +}), new objj_method(sel_getUid("unregisterDraggedTypes"), function $CPView__unregisterDraggedTypes(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(self, "window"), "_noteUnregisteredDraggedTypes:", _registeredDraggedTypes); + _registeredDraggedTypes = objj_msgSend(CPSet, "set"); + _registeredDraggedTypesArray = []; +} +}), new objj_method(sel_getUid("drawRect:"), function $CPView__drawRect_(self, _cmd, aRect) +{ with(self) +{ +} +}), new objj_method(sel_getUid("setNeedsDisplay:"), function $CPView__setNeedsDisplay_(self, _cmd, aFlag) +{ with(self) +{ + if (aFlag) + objj_msgSend(self, "setNeedsDisplayInRect:", objj_msgSend(self, "bounds")); +} +}), new objj_method(sel_getUid("setNeedsDisplayInRect:"), function $CPView__setNeedsDisplayInRect_(self, _cmd, aRect) +{ with(self) +{ + if ((aRect.size.width <= 0.0 || aRect.size.height <= 0.0)) + return; + if (_dirtyRect && !(_dirtyRect.size.width <= 0.0 || _dirtyRect.size.height <= 0.0)) + _dirtyRect = CGRectUnion(aRect, _dirtyRect); + else + _dirtyRect = { origin: { x:aRect.origin.x, y:aRect.origin.y }, size: { width:aRect.size.width, height:aRect.size.height } }; +} +}), new objj_method(sel_getUid("needsDisplay"), function $CPView__needsDisplay(self, _cmd) +{ with(self) +{ + return _dirtyRect && !(_dirtyRect.size.width <= 0.0 || _dirtyRect.size.height <= 0.0); +} +}), new objj_method(sel_getUid("displayIfNeeded"), function $CPView__displayIfNeeded(self, _cmd) +{ with(self) +{ + if (objj_msgSend(self, "needsDisplay")) + objj_msgSend(self, "displayRect:", _dirtyRect); +} +}), new objj_method(sel_getUid("display"), function $CPView__display(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "displayRect:", objj_msgSend(self, "visibleRect")); +} +}), new objj_method(sel_getUid("displayIfNeededInRect:"), function $CPView__displayIfNeededInRect_(self, _cmd, aRect) +{ with(self) +{ + if (objj_msgSend(self, "needsDisplay")) + objj_msgSend(self, "displayRect:", aRect); +} +}), new objj_method(sel_getUid("displayRect:"), function $CPView__displayRect_(self, _cmd, aRect) +{ with(self) +{ + objj_msgSend(self, "viewWillDraw"); + objj_msgSend(self, "displayRectIgnoringOpacity:inContext:", aRect, nil); + _dirtyRect = NULL; +} +}), new objj_method(sel_getUid("displayRectIgnoringOpacity:inContext:"), function $CPView__displayRectIgnoringOpacity_inContext_(self, _cmd, aRect, aGraphicsContext) +{ with(self) +{ + objj_msgSend(self, "lockFocus"); + CGContextClearRect(objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"), aRect); + objj_msgSend(self, "drawRect:", aRect); + objj_msgSend(self, "unlockFocus"); +} +}), new objj_method(sel_getUid("viewWillDraw"), function $CPView__viewWillDraw(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("lockFocus"), function $CPView__lockFocus(self, _cmd) +{ with(self) +{ + if (!_graphicsContext) + { + var graphicsPort = CGBitmapGraphicsContextCreate(); + _DOMContentsElement = graphicsPort.DOMElement; + _DOMContentsElement.style.zIndex = -100; + _DOMContentsElement.style.overflow = "hidden"; + _DOMContentsElement.style.position = "absolute"; + _DOMContentsElement.style.visibility = "visible"; + _DOMContentsElement.width = ROUND((_frame.size.width)); + _DOMContentsElement.height = ROUND((_frame.size.height)); + _DOMContentsElement.style.top = "0px"; + _DOMContentsElement.style.left = "0px"; + _DOMContentsElement.style.width = ROUND((_frame.size.width)) + "px"; + _DOMContentsElement.style.height = ROUND((_frame.size.height)) + "px"; + if (_DOMContentsElement.CPDOMDisplayContext) _DOMContentsElement.CPDOMDisplayContext[0] = -1; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = 6; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMElement; CPDOMDisplayServerInstructions[CPDOMDisplayServerInstructionCount++] = _DOMContentsElement;; + _graphicsContext = objj_msgSend(CPGraphicsContext, "graphicsContextWithGraphicsPort:flipped:", graphicsPort, YES); + } + objj_msgSend(CPGraphicsContext, "setCurrentContext:", _graphicsContext); + CGContextSaveGState(objj_msgSend(_graphicsContext, "graphicsPort")); +} +}), new objj_method(sel_getUid("unlockFocus"), function $CPView__unlockFocus(self, _cmd) +{ with(self) +{ + CGContextRestoreGState(objj_msgSend(_graphicsContext, "graphicsPort")); + objj_msgSend(CPGraphicsContext, "setCurrentContext:", nil); +} +}), new objj_method(sel_getUid("setNeedsLayout"), function $CPView__setNeedsLayout(self, _cmd) +{ with(self) +{ + _needsLayout = YES; +} +}), new objj_method(sel_getUid("layoutIfNeeded"), function $CPView__layoutIfNeeded(self, _cmd) +{ with(self) +{ + if (_needsLayout) + { + _needsLayout = NO; + objj_msgSend(self, "layoutSubviews"); + } +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPView__layoutSubviews(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("isOpaque"), function $CPView__isOpaque(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("visibleRect"), function $CPView__visibleRect(self, _cmd) +{ with(self) +{ + if (!_superview) + return _bounds; + return CGRectIntersection(objj_msgSend(self, "convertRect:fromView:", objj_msgSend(_superview, "visibleRect"), _superview), _bounds); +} +}), new objj_method(sel_getUid("_enclosingClipView"), function $CPView___enclosingClipView(self, _cmd) +{ with(self) +{ + var superview = _superview, + clipViewClass = objj_msgSend(CPClipView, "class"); + while(superview && !objj_msgSend(superview, "isKindOfClass:", clipViewClass)) + superview = superview._superview; + return superview; +} +}), new objj_method(sel_getUid("scrollPoint:"), function $CPView__scrollPoint_(self, _cmd, aPoint) +{ with(self) +{ + var clipView = objj_msgSend(self, "_enclosingClipView"); + if (!clipView) + return; + objj_msgSend(clipView, "scrollToPoint:", objj_msgSend(self, "convertPoint:toView:", aPoint, clipView)); +} +}), new objj_method(sel_getUid("scrollRectToVisible:"), function $CPView__scrollRectToVisible_(self, _cmd, aRect) +{ with(self) +{ + var visibleRect = objj_msgSend(self, "visibleRect"); + aRect = CGRectIntersection(aRect, _bounds); + if ((aRect.size.width <= 0.0 || aRect.size.height <= 0.0) || CGRectContainsRect(visibleRect, aRect)) + return NO; + var enclosingClipView = objj_msgSend(self, "_enclosingClipView"); + if (!enclosingClipView) + return NO; + var scrollPoint = { x:visibleRect.origin.x, y:visibleRect.origin.y }; + if ((aRect.origin.x) <= (visibleRect.origin.x)) + scrollPoint.x = (aRect.origin.x); + else if ((aRect.origin.x + aRect.size.width) > (visibleRect.origin.x + visibleRect.size.width)) + scrollPoint.x += (aRect.origin.x + aRect.size.width) - (visibleRect.origin.x + visibleRect.size.width); + if ((aRect.origin.y) <= (visibleRect.origin.y)) + scrollPoint.y = CGRectGetMinY(aRect); + else if ((aRect.origin.y + aRect.size.height) > (visibleRect.origin.y + visibleRect.size.height)) + scrollPoint.y += (aRect.origin.y + aRect.size.height) - (visibleRect.origin.y + visibleRect.size.height); + objj_msgSend(enclosingClipView, "scrollToPoint:", CGPointMake(scrollPoint.x, scrollPoint.y)); + return YES; +} +}), new objj_method(sel_getUid("autoscroll:"), function $CPView__autoscroll_(self, _cmd, anEvent) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "superview"), "autoscroll:", anEvent); +} +}), new objj_method(sel_getUid("adjustScroll:"), function $CPView__adjustScroll_(self, _cmd, proposedVisibleRect) +{ with(self) +{ + return proposedVisibleRect; +} +}), new objj_method(sel_getUid("scrollRect:by:"), function $CPView__scrollRect_by_(self, _cmd, aRect, anAmount) +{ with(self) +{ +} +}), new objj_method(sel_getUid("enclosingScrollView"), function $CPView__enclosingScrollView(self, _cmd) +{ with(self) +{ + var superview = _superview, + scrollViewClass = objj_msgSend(CPScrollView, "class"); + while(superview && !objj_msgSend(superview, "isKindOfClass:", scrollViewClass)) + superview = superview._superview; + return superview; +} +}), new objj_method(sel_getUid("scrollClipView:toPoint:"), function $CPView__scrollClipView_toPoint_(self, _cmd, aClipView, aPoint) +{ with(self) +{ + objj_msgSend(aClipView, "scrollToPoint:", aPoint); +} +}), new objj_method(sel_getUid("reflectScrolledClipView:"), function $CPView__reflectScrolledClipView_(self, _cmd, aClipView) +{ with(self) +{ +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPView__initialize(self, _cmd) +{ with(self) +{ + if (self !== objj_msgSend(CPView, "class")) + return; + CachedNotificationCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); +} +})]); +} +{ +var the_class = objj_getClass("CPView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("canBecomeKeyView"), function $CPView__canBecomeKeyView(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "acceptsFirstResponder") && !objj_msgSend(self, "isHiddenOrHasHiddenAncestor"); +} +}), new objj_method(sel_getUid("nextKeyView"), function $CPView__nextKeyView(self, _cmd) +{ with(self) +{ + return _nextKeyView; +} +}), new objj_method(sel_getUid("nextValidKeyView"), function $CPView__nextValidKeyView(self, _cmd) +{ with(self) +{ + var result = objj_msgSend(self, "nextKeyView"); + while (result && !objj_msgSend(result, "canBecomeKeyView")) + result = objj_msgSend(result, "nextKeyView"); + return result; +} +}), new objj_method(sel_getUid("previousKeyView"), function $CPView__previousKeyView(self, _cmd) +{ with(self) +{ + return _previousKeyView; +} +}), new objj_method(sel_getUid("previousValidKeyView"), function $CPView__previousValidKeyView(self, _cmd) +{ with(self) +{ + var result = objj_msgSend(self, "previousKeyView"); + while (result && !objj_msgSend(result, "canBecomeKeyView")) + result = objj_msgSend(result, "previousKeyView"); + return result; +} +}), new objj_method(sel_getUid("_setPreviousKeyView:"), function $CPView___setPreviousKeyView_(self, _cmd, previous) +{ with(self) +{ + _previousKeyView = previous; +} +}), new objj_method(sel_getUid("setNextKeyView:"), function $CPView__setNextKeyView_(self, _cmd, next) +{ with(self) +{ + _nextKeyView = next; + objj_msgSend(_nextKeyView, "_setPreviousKeyView:", self); +} +})]); +} +{ +var the_class = objj_getClass("CPView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("setLayer:"), function $CPView__setLayer_(self, _cmd, aLayer) +{ with(self) +{ + if (_layer == aLayer) + return; + if (_layer) + { + _layer._owningView = nil; + } + _layer = aLayer; + if (_layer) + { + var bounds = CGRectMakeCopy(objj_msgSend(self, "bounds")); + objj_msgSend(_layer, "_setOwningView:", self); + } +} +}), new objj_method(sel_getUid("layer"), function $CPView__layer(self, _cmd) +{ with(self) +{ + return _layer; +} +}), new objj_method(sel_getUid("setWantsLayer:"), function $CPView__setWantsLayer_(self, _cmd, aFlag) +{ with(self) +{ + _wantsLayer = !!aFlag; +} +}), new objj_method(sel_getUid("wantsLayer"), function $CPView__wantsLayer(self, _cmd) +{ with(self) +{ + return _wantsLayer; +} +})]); +} +{ +var the_class = objj_getClass("CPView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("themeState"), function $CPView__themeState(self, _cmd) +{ with(self) +{ + return _themeState; +} +}), new objj_method(sel_getUid("hasThemeState:"), function $CPView__hasThemeState_(self, _cmd, aState) +{ with(self) +{ + return !!(_themeState & ((typeof aState === "string") ? CPThemeState(aState) : aState)); +} +}), new objj_method(sel_getUid("setThemeState:"), function $CPView__setThemeState_(self, _cmd, aState) +{ with(self) +{ + var newState = (typeof aState === "string") ? CPThemeState(aState) : aState; + if (_themeState & newState) + return NO; + _themeState |= newState; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + return YES; +} +}), new objj_method(sel_getUid("unsetThemeState:"), function $CPView__unsetThemeState_(self, _cmd, aState) +{ with(self) +{ + var newState = ((typeof aState === "string") ? CPThemeState(aState) : aState); + if (!(_themeState & newState)) + return NO; + _themeState &= ~newState; + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); + return YES; +} +}), new objj_method(sel_getUid("_loadThemeAttributes"), function $CPView___loadThemeAttributes(self, _cmd) +{ with(self) +{ + var theClass = objj_msgSend(self, "class"), + attributes = objj_msgSend(theClass, "_themeAttributes"), + count = attributes.length; + if (!count) + return; + var theme = objj_msgSend(self, "theme"), + themeClass = objj_msgSend(theClass, "themeClass"); + _themeAttributes = {}; + while (count--) + { + var attributeName = attributes[count--], + attribute = objj_msgSend(objj_msgSend(_CPThemeAttribute, "alloc"), "initWithName:defaultValue:", attributeName, attributes[count]); + objj_msgSend(attribute, "setParentAttribute:", objj_msgSend(theme, "_attributeWithName:forClass:", attributeName, themeClass)); + _themeAttributes[attributeName] = attribute; + } +} +}), new objj_method(sel_getUid("setTheme:"), function $CPView__setTheme_(self, _cmd, aTheme) +{ with(self) +{ + if (_theme === aTheme) + return; + _theme = aTheme; + objj_msgSend(self, "viewDidChangeTheme"); +} +}), new objj_method(sel_getUid("theme"), function $CPView__theme(self, _cmd) +{ with(self) +{ + return _theme; +} +}), new objj_method(sel_getUid("viewDidChangeTheme"), function $CPView__viewDidChangeTheme(self, _cmd) +{ with(self) +{ + if (!_themeAttributes) + return; + var theme = objj_msgSend(self, "theme"), + themeClass = objj_msgSend(objj_msgSend(self, "class"), "themeClass"); + for (var attributeName in _themeAttributes) + if (_themeAttributes.hasOwnProperty(attributeName)) + objj_msgSend(_themeAttributes[attributeName], "setParentAttribute:", objj_msgSend(theme, "_attributeWithName:forClass:", attributeName, themeClass)); + objj_msgSend(self, "setNeedsLayout"); + objj_msgSend(self, "setNeedsDisplay:", YES); +} +}), new objj_method(sel_getUid("_themeAttributeDictionary"), function $CPView___themeAttributeDictionary(self, _cmd) +{ with(self) +{ + var dictionary = objj_msgSend(CPDictionary, "dictionary"); + if (_themeAttributes) + { + var theme = objj_msgSend(self, "theme"); + for (var attributeName in _themeAttributes) + if (_themeAttributes.hasOwnProperty(attributeName)) + objj_msgSend(dictionary, "setObject:forKey:", _themeAttributes[attributeName], attributeName); + } + return dictionary; +} +}), new objj_method(sel_getUid("setValue:forThemeAttribute:inState:"), function $CPView__setValue_forThemeAttribute_inState_(self, _cmd, aValue, aName, aState) +{ with(self) +{ + if (!_themeAttributes || !_themeAttributes[aName]) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, objj_msgSend(self, "className") + " does not contain theme attribute '" + aName + "'"); + var currentValue = objj_msgSend(self, "currentValueForThemeAttribute:", aName); + objj_msgSend(_themeAttributes[aName], "setValue:forState:", aValue, aState); + if (objj_msgSend(self, "currentValueForThemeAttribute:", aName) === currentValue) + return; + objj_msgSend(self, "setNeedsDisplay:", YES); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("setValue:forThemeAttribute:"), function $CPView__setValue_forThemeAttribute_(self, _cmd, aValue, aName) +{ with(self) +{ + if (!_themeAttributes || !_themeAttributes[aName]) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, objj_msgSend(self, "className") + " does not contain theme attribute '" + aName + "'"); + var currentValue = objj_msgSend(self, "currentValueForThemeAttribute:", aName); + objj_msgSend(_themeAttributes[aName], "setValue:", aValue); + if (objj_msgSend(self, "currentValueForThemeAttribute:", aName) === currentValue) + return; + objj_msgSend(self, "setNeedsDisplay:", YES); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("valueForThemeAttribute:inState:"), function $CPView__valueForThemeAttribute_inState_(self, _cmd, aName, aState) +{ with(self) +{ + if (!_themeAttributes || !_themeAttributes[aName]) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, objj_msgSend(self, "className") + " does not contain theme attribute '" + aName + "'"); + return objj_msgSend(_themeAttributes[aName], "valueForState:", aState); +} +}), new objj_method(sel_getUid("valueForThemeAttribute:"), function $CPView__valueForThemeAttribute_(self, _cmd, aName) +{ with(self) +{ + if (!_themeAttributes || !_themeAttributes[aName]) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, objj_msgSend(self, "className") + " does not contain theme attribute '" + aName + "'"); + return objj_msgSend(_themeAttributes[aName], "value"); +} +}), new objj_method(sel_getUid("currentValueForThemeAttribute:"), function $CPView__currentValueForThemeAttribute_(self, _cmd, aName) +{ with(self) +{ + if (!_themeAttributes || !_themeAttributes[aName]) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, objj_msgSend(self, "className") + " does not contain theme attribute '" + aName + "'"); + return objj_msgSend(_themeAttributes[aName], "valueForState:", _themeState); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("themeClass"), function $CPView__themeClass(self, _cmd) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("themeAttributes"), function $CPView__themeAttributes(self, _cmd) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("_themeAttributes"), function $CPView___themeAttributes(self, _cmd) +{ with(self) +{ + if (!CachedThemeAttributes) + CachedThemeAttributes = {}; + var theClass = objj_msgSend(self, "class"), + CPViewClass = objj_msgSend(CPView, "class"), + attributes = []; + for (; theClass && theClass !== CPViewClass; theClass = objj_msgSend(theClass, "superclass")) + { + var cachedAttributes = CachedThemeAttributes[class_getName(theClass)]; + if (cachedAttributes) + { + attributes = attributes.length ? attributes.concat(cachedAttributes) : attributes; + CachedThemeAttributes[objj_msgSend(self, "className")] = attributes; + break; + } + var attributeDictionary = objj_msgSend(theClass, "themeAttributes"); + if (!attributeDictionary) + continue; + var attributeKeys = objj_msgSend(attributeDictionary, "allKeys"), + attributeCount = attributeKeys.length; + while (attributeCount--) + { + var attributeName = attributeKeys[attributeCount]; + attributes.push(objj_msgSend(attributeDictionary, "objectForKey:", attributeName)); + attributes.push(attributeName); + } + } + return attributes; +} +})]); +} +var CPViewAutoresizingMaskKey = "CPViewAutoresizingMask", + CPViewAutoresizesSubviewsKey = "CPViewAutoresizesSubviews", + CPViewBackgroundColorKey = "CPViewBackgroundColor", + CPViewBoundsKey = "CPViewBoundsKey", + CPViewFrameKey = "CPViewFrameKey", + CPViewHitTestsKey = "CPViewHitTestsKey", + CPViewIsHiddenKey = "CPViewIsHiddenKey", + CPViewOpacityKey = "CPViewOpacityKey", + CPViewSubviewsKey = "CPViewSubviewsKey", + CPViewSuperviewKey = "CPViewSuperviewKey", + CPViewTagKey = "CPViewTagKey", + CPViewThemeStateKey = "CPViewThemeStateKey", + CPViewWindowKey = "CPViewWindowKey", + CPViewNextKeyViewKey = "CPViewNextKeyViewKey", + CPViewPreviousKeyViewKey = "CPViewPreviousKeyViewKey"; +{ +var the_class = objj_getClass("CPView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + _frame = objj_msgSend(aCoder, "decodeRectForKey:", CPViewFrameKey); + _bounds = objj_msgSend(aCoder, "decodeRectForKey:", CPViewBoundsKey); + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "initWithCoder:", aCoder); + if (self) + { + _tag = objj_msgSend(aCoder, "containsValueForKey:", CPViewTagKey) ? objj_msgSend(aCoder, "decodeIntForKey:", CPViewTagKey) : -1; + _window = objj_msgSend(aCoder, "decodeObjectForKey:", CPViewWindowKey); + _subviews = objj_msgSend(aCoder, "decodeObjectForKey:", CPViewSubviewsKey) || []; + _superview = objj_msgSend(aCoder, "decodeObjectForKey:", CPViewSuperviewKey); + _registeredDraggedTypes = objj_msgSend(CPSet, "set"); + _registeredDraggedTypesArray = []; + _autoresizingMask = objj_msgSend(aCoder, "decodeIntForKey:", CPViewAutoresizingMaskKey) || CPViewNotSizable; + _autoresizesSubviews = !objj_msgSend(aCoder, "containsValueForKey:", CPViewAutoresizesSubviewsKey) || objj_msgSend(aCoder, "decodeBoolForKey:", CPViewAutoresizesSubviewsKey); + _hitTests = !objj_msgSend(aCoder, "containsValueForKey:", CPViewHitTestsKey) || objj_msgSend(aCoder, "decodeObjectForKey:", CPViewHitTestsKey); + _displayHash = objj_msgSend(self, "hash"); + if (objj_msgSend(aCoder, "containsValueForKey:", CPViewIsHiddenKey)) + objj_msgSend(self, "setHidden:", objj_msgSend(aCoder, "decodeBoolForKey:", CPViewIsHiddenKey)); + else + _isHidden = NO; + if (objj_msgSend(aCoder, "containsValueForKey:", CPViewOpacityKey)) + objj_msgSend(self, "setAlphaValue:", objj_msgSend(aCoder, "decodeIntForKey:", CPViewOpacityKey)); + else + _opacity = 1.0; + objj_msgSend(self, "setBackgroundColor:", objj_msgSend(aCoder, "decodeObjectForKey:", CPViewBackgroundColorKey)); + _theme = objj_msgSend(CPTheme, "defaultTheme"); + _themeState = CPThemeState(objj_msgSend(aCoder, "decodeIntForKey:", CPViewThemeStateKey)); + _themeAttributes = {}; + var theClass = objj_msgSend(self, "class"), + themeClass = objj_msgSend(theClass, "themeClass"), + attributes = objj_msgSend(theClass, "_themeAttributes"), + count = attributes.length; + while (count--) + { + var attributeName = attributes[count--]; + _themeAttributes[attributeName] = CPThemeAttributeDecode(aCoder, attributeName, attributes[count], _theme, themeClass); + } + objj_msgSend(self, "setNeedsDisplay:", YES); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "encodeWithCoder:", aCoder); + if (_tag !== -1) + objj_msgSend(aCoder, "encodeInt:forKey:", _tag, CPViewTagKey); + objj_msgSend(aCoder, "encodeRect:forKey:", _frame, CPViewFrameKey); + objj_msgSend(aCoder, "encodeRect:forKey:", _bounds, CPViewBoundsKey); + if (_window !== nil) + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _window, CPViewWindowKey); + if (_subviews.length > 0) + objj_msgSend(aCoder, "encodeObject:forKey:", _subviews, CPViewSubviewsKey); + if (_superview !== nil) + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", _superview, CPViewSuperviewKey); + if (_autoresizingMask !== CPViewNotSizable) + objj_msgSend(aCoder, "encodeInt:forKey:", _autoresizingMask, CPViewAutoresizingMaskKey); + if (!_autoresizesSubviews) + objj_msgSend(aCoder, "encodeBool:forKey:", _autoresizesSubviews, CPViewAutoresizesSubviewsKey); + if (_backgroundColor !== nil) + objj_msgSend(aCoder, "encodeObject:forKey:", _backgroundColor, CPViewBackgroundColorKey); + if (_hitTests !== YES) + objj_msgSend(aCoder, "encodeBool:forKey:", _hitTests, CPViewHitTestsKey); + if (_opacity !== 1.0) + objj_msgSend(aCoder, "encodeFloat:forKey:", _opacity, CPViewOpacityKey); + if (_isHidden) + objj_msgSend(aCoder, "encodeBool:forKey:", _isHidden, CPViewIsHiddenKey); + var nextKeyView = objj_msgSend(self, "nextKeyView"); + if (nextKeyView !== nil) + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", nextKeyView, CPViewNextKeyViewKey); + var previousKeyView = objj_msgSend(self, "previousKeyView"); + if (previousKeyView !== nil) + objj_msgSend(aCoder, "encodeConditionalObject:forKey:", previousKeyView, CPViewPreviousKeyViewKey); + objj_msgSend(aCoder, "encodeInt:forKey:", CPThemeStateName(_themeState), CPViewThemeStateKey); + for (var attributeName in _themeAttributes) + if (_themeAttributes.hasOwnProperty(attributeName)) + CPThemeAttributeEncode(aCoder, _themeAttributes[attributeName]); +} +})]); +} +var _CPViewFullScreenModeStateMake = function(aView) +{ + var superview = aView._superview; + return { autoresizingMask:aView._autoresizingMask, frame:CGRectMakeCopy(aView._frame), index:(superview ? objj_msgSend(superview._subviews, "indexOfObjectIdenticalTo:", aView) : 0), superview:superview }; +} +var _CPViewGetTransform = function( fromView, toView) +{ + var transform = CGAffineTransformMakeIdentity(), + sameWindow = YES, + fromWindow = nil, + toWindow = nil; + if (fromView) + { + var view = fromView; + while (view && view != toView) + { + var frame = view._frame; + transform.tx += (frame.origin.x); + transform.ty += (frame.origin.y); + if (view._boundsTransform) + { + var tx = transform.tx * view._boundsTransform.a + transform.ty * view._boundsTransform.c + view._boundsTransform.tx;transform.ty = transform.tx * view._boundsTransform.b + transform.ty * view._boundsTransform.d + view._boundsTransform.ty;transform.tx = tx;var a = transform.a * view._boundsTransform.a + transform.b * view._boundsTransform.c, b = transform.a * view._boundsTransform.b + transform.b * view._boundsTransform.d, c = transform.c * view._boundsTransform.a + transform.d * view._boundsTransform.c;transform.d = transform.c * view._boundsTransform.b + transform.d * view._boundsTransform.d;transform.a = a;transform.b = b;transform.c = c;; + } + view = view._superview; + } + if (view === toView) + return transform; + else if (fromView && toView) + { + fromWindow = objj_msgSend(fromView, "window"); + toWindow = objj_msgSend(toView, "window"); + if (fromWindow && toWindow && fromWindow !== toWindow) + { + sameWindow = NO; + var frame = objj_msgSend(fromWindow, "frame"); + transform.tx += (frame.origin.x); + transform.ty += (frame.origin.y); + } + } + } + var view = toView; + while (view) + { + var frame = view._frame; + transform.tx -= (frame.origin.x); + transform.ty -= (frame.origin.y); + if (view._boundsTransform) + { + var tx = transform.tx * view._inverseBoundsTransform.a + transform.ty * view._inverseBoundsTransform.c + view._inverseBoundsTransform.tx;transform.ty = transform.tx * view._inverseBoundsTransform.b + transform.ty * view._inverseBoundsTransform.d + view._inverseBoundsTransform.ty;transform.tx = tx;var a = transform.a * view._inverseBoundsTransform.a + transform.b * view._inverseBoundsTransform.c, b = transform.a * view._inverseBoundsTransform.b + transform.b * view._inverseBoundsTransform.d, c = transform.c * view._inverseBoundsTransform.a + transform.d * view._inverseBoundsTransform.c;transform.d = transform.c * view._inverseBoundsTransform.b + transform.d * view._inverseBoundsTransform.d;transform.a = a;transform.b = b;transform.c = c;; + } + view = view._superview; + } + if (!sameWindow) + { + var frame = objj_msgSend(toWindow, "frame"); + transform.tx -= (frame.origin.x); + transform.ty -= (frame.origin.y); + } + return transform; +} + +p;11;CPWebView.jI;15;AppKit/CPView.jc;17440; +CPWebViewProgressStartedNotification = "CPWebViewProgressStartedNotification"; +CPWebViewProgressFinishedNotification = "CPWebViewProgressFinishedNotification"; +CPWebViewScrollAppKit = 1; +CPWebViewScrollNative = 2; +{var the_class = objj_allocateClassPair(CPView, "CPWebView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_scrollView"), new objj_ivar("_frameView"), new objj_ivar("_iframe"), new objj_ivar("_mainFrameURL"), new objj_ivar("_backwardStack"), new objj_ivar("_forwardStack"), new objj_ivar("_ignoreLoadStart"), new objj_ivar("_ignoreLoadEnd"), new objj_ivar("_downloadDelegate"), new objj_ivar("_frameLoadDelegate"), new objj_ivar("_policyDelegate"), new objj_ivar("_resourceLoadDelegate"), new objj_ivar("_UIDelegate"), new objj_ivar("_wso"), new objj_ivar("_url"), new objj_ivar("_html"), new objj_ivar("_loadCallback"), new objj_ivar("_scrollMode"), new objj_ivar("_scrollSize")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:frameName:groupName:"), function $CPWebView__initWithFrame_frameName_groupName_(self, _cmd, frameRect, frameName, groupName) +{ with(self) +{ + if (self = objj_msgSend(self, "initWithFrame:", frameRect)) + { + _iframe.name = frameName; + } + return self +} +}), new objj_method(sel_getUid("initWithFrame:"), function $CPWebView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithFrame:", aFrame)) + { + _mainFrameURL = nil; + _backwardStack = []; + _forwardStack = []; + _scrollMode = CPWebViewScrollNative; + objj_msgSend(self, "_initDOMWithFrame:", aFrame); + } + return self; +} +}), new objj_method(sel_getUid("_initDOMWithFrame:"), function $CPWebView___initDOMWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + _ignoreLoadStart = YES; + _ignoreLoadEnd = YES; + _iframe = document.createElement("iframe"); + _iframe.name = "iframe_" + Math.floor(Math.random()*10000); + _iframe.style.width = "100%"; + _iframe.style.height = "100%"; + _iframe.style.borderWidth = "0px"; + objj_msgSend(self, "setDrawsBackground:", YES); + _loadCallback = function() { + if (!_ignoreLoadStart) + { + objj_msgSend(self, "_startedLoading"); + if (_mainFrameURL) + objj_msgSend(_backwardStack, "addObject:", _mainFrameURL); + _mainFrameURL = _iframe.src; + _mainFrameURL = _iframe.src; + objj_msgSend(_forwardStack, "removeAllObjects"); + } + else + _ignoreLoadStart = NO; + if (!_ignoreLoadEnd) + { + objj_msgSend(self, "_finishedLoading"); + } + else + _ignoreLoadEnd = NO; + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + } + if (_iframe.addEventListener) + _iframe.addEventListener("load", _loadCallback, false); + else if (_iframe.attachEvent) + _iframe.attachEvent("onload", _loadCallback); + _frameView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", objj_msgSend(self, "bounds")); + _scrollView = objj_msgSend(objj_msgSend(CPScrollView, "alloc"), "initWithFrame:", objj_msgSend(self, "bounds")); + objj_msgSend(_scrollView, "setAutoresizingMask:", CPViewWidthSizable|CPViewHeightSizable); + objj_msgSend(_scrollView, "setDocumentView:", _frameView); + _frameView._DOMElement.appendChild(_iframe); + objj_msgSend(self, "_setScrollMode:", _scrollMode); + objj_msgSend(self, "addSubview:", _scrollView); +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPWebView__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "setFrameSize:", aSize); + objj_msgSend(self, "_resizeWebFrame"); +} +}), new objj_method(sel_getUid("_resizeWebFrame"), function $CPWebView___resizeWebFrame(self, _cmd) +{ with(self) +{ + if (_scrollMode === CPWebViewScrollAppKit) + { + if (_scrollSize) + { + objj_msgSend(_frameView, "setFrameSize:", _scrollSize); + } + else + { + objj_msgSend(_frameView, "setFrameSize:", objj_msgSend(_scrollView, "bounds").size); + var win = null; + try { win = objj_msgSend(self, "DOMWindow"); } catch (e) {} + if (win && win.document) + { + var width = win.document.body.scrollWidth, + height = win.document.body.scrollHeight; + _iframe.setAttribute("width", width); + _iframe.setAttribute("height", height); + objj_msgSend(_frameView, "setFrameSize:", CGSizeMake(width, height)); + } + else + { + CPLog.warn("using default size 800*1600"); + objj_msgSend(_frameView, "setFrameSize:", CGSizeMake(800, 1600)); + } + } + } +} +}), new objj_method(sel_getUid("setScrollMode:"), function $CPWebView__setScrollMode_(self, _cmd, aScrollMode) +{ with(self) +{ + if (_scrollMode == aScrollMode) + return; + objj_msgSend(self, "_setScrollMode:", aScrollMode); +} +}), new objj_method(sel_getUid("_setScrollMode:"), function $CPWebView___setScrollMode_(self, _cmd, aScrollMode) +{ with(self) +{ + _scrollMode = aScrollMode; + _ignoreLoadStart = YES; + _ignoreLoadEnd = YES; + var parent = _iframe.parentNode; + parent.removeChild(_iframe); + if (_scrollMode === CPWebViewScrollAppKit) + { + objj_msgSend(_scrollView, "setHasHorizontalScroller:", YES); + objj_msgSend(_scrollView, "setHasVerticalScroller:", YES); + _iframe.setAttribute("scrolling", "no"); + } + else + { + objj_msgSend(_scrollView, "setHasHorizontalScroller:", NO); + objj_msgSend(_scrollView, "setHasVerticalScroller:", NO); + _iframe.setAttribute("scrolling", "auto"); + objj_msgSend(_frameView, "setFrameSize:", objj_msgSend(_scrollView, "bounds").size); + } + parent.appendChild(_iframe); +} +}), new objj_method(sel_getUid("loadHTMLString:"), function $CPWebView__loadHTMLString_(self, _cmd, aString) +{ with(self) +{ + objj_msgSend(self, "loadHTMLString:baseURL:", aString, nil); +} +}), new objj_method(sel_getUid("loadHTMLString:baseURL:"), function $CPWebView__loadHTMLString_baseURL_(self, _cmd, aString, URL) +{ with(self) +{ + objj_msgSend(self, "_setScrollMode:", CPWebViewScrollAppKit); + objj_msgSend(self, "_startedLoading"); + _ignoreLoadStart = YES; + _ignoreLoadEnd = NO; + _url = null; + _html = aString; + objj_msgSend(self, "_load"); +} +}), new objj_method(sel_getUid("_loadMainFrameURL"), function $CPWebView___loadMainFrameURL(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "_setScrollMode:", CPWebViewScrollNative); + objj_msgSend(self, "_startedLoading"); + _ignoreLoadStart = YES; + _ignoreLoadEnd = NO; + _url = _mainFrameURL; + _html = null; + objj_msgSend(self, "_load"); +} +}), new objj_method(sel_getUid("_load"), function $CPWebView___load(self, _cmd) +{ with(self) +{ + if (_url) + { + _iframe.src = _url; + } + else if (_html) + { + _iframe.src = ""; + window.setTimeout(function() { + var win = objj_msgSend(self, "DOMWindow"); + win.document.write(_html); + window.setTimeout(_loadCallback, 1); + }, 0); + } +} +}), new objj_method(sel_getUid("_startedLoading"), function $CPWebView___startedLoading(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPWebViewProgressStartedNotification, self); + if (objj_msgSend(_frameLoadDelegate, "respondsToSelector:", sel_getUid("webView:didStartProvisionalLoadForFrame:"))) + objj_msgSend(_frameLoadDelegate, "webView:didStartProvisionalLoadForFrame:", self, nil); +} +}), new objj_method(sel_getUid("_finishedLoading"), function $CPWebView___finishedLoading(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "_resizeWebFrame"); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPWebViewProgressFinishedNotification, self); + if (objj_msgSend(_frameLoadDelegate, "respondsToSelector:", sel_getUid("webView:didFinishLoadForFrame:"))) + objj_msgSend(_frameLoadDelegate, "webView:didFinishLoadForFrame:", self, nil); +} +}), new objj_method(sel_getUid("mainFrameURL"), function $CPWebView__mainFrameURL(self, _cmd) +{ with(self) +{ + return _mainFrameURL; +} +}), new objj_method(sel_getUid("setMainFrameURL:"), function $CPWebView__setMainFrameURL_(self, _cmd, URLString) +{ with(self) +{ + if (_mainFrameURL) + objj_msgSend(_backwardStack, "addObject:", _mainFrameURL); + _mainFrameURL = URLString; + objj_msgSend(_forwardStack, "removeAllObjects"); + objj_msgSend(self, "_loadMainFrameURL"); +} +}), new objj_method(sel_getUid("goBack"), function $CPWebView__goBack(self, _cmd) +{ with(self) +{ + if (_backwardStack.length > 0) + { + if (_mainFrameURL) + objj_msgSend(_forwardStack, "addObject:", _mainFrameURL); + _mainFrameURL = objj_msgSend(_backwardStack, "lastObject"); + objj_msgSend(_backwardStack, "removeLastObject"); + objj_msgSend(self, "_loadMainFrameURL"); + return YES; + } + return NO; +} +}), new objj_method(sel_getUid("goForward"), function $CPWebView__goForward(self, _cmd) +{ with(self) +{ + if (_forwardStack.length > 0) + { + if (_mainFrameURL) + objj_msgSend(_backwardStack, "addObject:", _mainFrameURL); + _mainFrameURL = objj_msgSend(_forwardStack, "lastObject"); + objj_msgSend(_forwardStack, "removeLastObject"); + objj_msgSend(self, "_loadMainFrameURL"); + return YES; + } + return NO; +} +}), new objj_method(sel_getUid("canGoBack"), function $CPWebView__canGoBack(self, _cmd) +{ with(self) +{ + return (_backwardStack.length > 0); +} +}), new objj_method(sel_getUid("canGoForward"), function $CPWebView__canGoForward(self, _cmd) +{ with(self) +{ + return (_forwardStack.length > 0); +} +}), new objj_method(sel_getUid("backForwardList"), function $CPWebView__backForwardList(self, _cmd) +{ with(self) +{ + return { back: _backwardStack, forward: _forwardStack }; +} +}), new objj_method(sel_getUid("close"), function $CPWebView__close(self, _cmd) +{ with(self) +{ + _iframe.parentNode.removeChild(_iframe); +} +}), new objj_method(sel_getUid("DOMWindow"), function $CPWebView__DOMWindow(self, _cmd) +{ with(self) +{ + return (_iframe.contentDocument && _iframe.contentDocument.defaultView) || _iframe.contentWindow; +} +}), new objj_method(sel_getUid("windowScriptObject"), function $CPWebView__windowScriptObject(self, _cmd) +{ with(self) +{ + var win = objj_msgSend(self, "DOMWindow"); + if (!_wso || win != objj_msgSend(_wso, "window")) + { + if (win) + _wso = objj_msgSend(objj_msgSend(CPWebScriptObject, "alloc"), "initWithWindow:", win); + else + _wso = nil; + } + return _wso; +} +}), new objj_method(sel_getUid("stringByEvaluatingJavaScriptFromString:"), function $CPWebView__stringByEvaluatingJavaScriptFromString_(self, _cmd, script) +{ with(self) +{ + var result = objj_msgSend(self, "objectByEvaluatingJavaScriptFromString:", script); + return result ? String(result) : nil; +} +}), new objj_method(sel_getUid("objectByEvaluatingJavaScriptFromString:"), function $CPWebView__objectByEvaluatingJavaScriptFromString_(self, _cmd, script) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "windowScriptObject"), "evaluateWebScript:", script); +} +}), new objj_method(sel_getUid("computedStyleForElement:pseudoElement:"), function $CPWebView__computedStyleForElement_pseudoElement_(self, _cmd, element, pseudoElement) +{ with(self) +{ + var win = objj_msgSend(objj_msgSend(self, "windowScriptObject"), "window"); + if (win) + { + return win.document.defaultView.getComputedStyle(element, pseudoElement); + } + return nil; +} +}), new objj_method(sel_getUid("drawsBackground"), function $CPWebView__drawsBackground(self, _cmd) +{ with(self) +{ + return _iframe.style.backgroundColor != ""; +} +}), new objj_method(sel_getUid("setDrawsBackground:"), function $CPWebView__setDrawsBackground_(self, _cmd, drawsBackround) +{ with(self) +{ + _iframe.style.backgroundColor = drawsBackround ? "white" : ""; +} +}), new objj_method(sel_getUid("takeStringURLFrom:"), function $CPWebView__takeStringURLFrom_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "setMainFrameURL:", objj_msgSend(sender, "stringValue")); +} +}), new objj_method(sel_getUid("goBack:"), function $CPWebView__goBack_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "goBack"); +} +}), new objj_method(sel_getUid("goForward:"), function $CPWebView__goForward_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "goForward"); +} +}), new objj_method(sel_getUid("stopLoading:"), function $CPWebView__stopLoading_(self, _cmd, sender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("reload:"), function $CPWebView__reload_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "_loadMainFrameURL"); +} +}), new objj_method(sel_getUid("print:"), function $CPWebView__print_(self, _cmd, sender) +{ with(self) +{ + try + { + objj_msgSend(self, "DOMWindow").print(); + } + catch (e) + { + alert('Please click the webpage and select "Print" from the "File" menu'); + } +} +}), new objj_method(sel_getUid("downloadDelegate"), function $CPWebView__downloadDelegate(self, _cmd) +{ with(self) +{ + return _downloadDelegate; +} +}), new objj_method(sel_getUid("setDownloadDelegate:"), function $CPWebView__setDownloadDelegate_(self, _cmd, anObject) +{ with(self) +{ + _downloadDelegate = anObject; +} +}), new objj_method(sel_getUid("frameLoadDelegate"), function $CPWebView__frameLoadDelegate(self, _cmd) +{ with(self) +{ + return _frameLoadDelegate; +} +}), new objj_method(sel_getUid("setFrameLoadDelegate:"), function $CPWebView__setFrameLoadDelegate_(self, _cmd, anObject) +{ with(self) +{ + _frameLoadDelegate = anObject; +} +}), new objj_method(sel_getUid("policyDelegate"), function $CPWebView__policyDelegate(self, _cmd) +{ with(self) +{ + return _policyDelegate; +} +}), new objj_method(sel_getUid("setPolicyDelegate:"), function $CPWebView__setPolicyDelegate_(self, _cmd, anObject) +{ with(self) +{ + _policyDelegate = anObject; +} +}), new objj_method(sel_getUid("resourceLoadDelegate"), function $CPWebView__resourceLoadDelegate(self, _cmd) +{ with(self) +{ + return _resourceLoadDelegate; +} +}), new objj_method(sel_getUid("setResourceLoadDelegate:"), function $CPWebView__setResourceLoadDelegate_(self, _cmd, anObject) +{ with(self) +{ + _resourceLoadDelegate = anObject; +} +}), new objj_method(sel_getUid("UIDelegate"), function $CPWebView__UIDelegate(self, _cmd) +{ with(self) +{ + return _UIDelegate; +} +}), new objj_method(sel_getUid("setUIDelegate:"), function $CPWebView__setUIDelegate_(self, _cmd, anObject) +{ with(self) +{ + _UIDelegate = anObject; +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPWebScriptObject"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_window")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithWindow:"), function $CPWebScriptObject__initWithWindow_(self, _cmd, aWindow) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init")) + { + _window = aWindow; + } + return self; +} +}), new objj_method(sel_getUid("callWebScriptMethod:withArguments:"), function $CPWebScriptObject__callWebScriptMethod_withArguments_(self, _cmd, methodName, args) +{ with(self) +{ + if (typeof _window[methodName] == "function") + { + try { + return _window[methodName].apply(args); + } catch (e) { + } + } + return undefined; +} +}), new objj_method(sel_getUid("evaluateWebScript:"), function $CPWebScriptObject__evaluateWebScript_(self, _cmd, script) +{ with(self) +{ + try { + return _window.eval(script); + } catch (e) { + } + return undefined; +} +}), new objj_method(sel_getUid("window"), function $CPWebScriptObject__window(self, _cmd) +{ with(self) +{ + return _window; +} +})]); +} +{ +var the_class = objj_getClass("CPWebView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPWebView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPWebView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "initWithCoder:", aCoder); + if (self) + { + _mainFrameURL = nil; + _backwardStack = []; + _forwardStack = []; + _scrollMode = CPWebViewScrollNative; + objj_msgSend(self, "setBackgroundColor:", objj_msgSend(CPColor, "whiteColor")); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPWebView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + var actualSubviews = _subviews; + _subviews = []; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "encodeWithCoder:", aCoder); + _subviews = actualSubviews; +} +})]); +} + +p;10;CPWindow.jI;25;Foundation/CPCountedSet.jI;33;Foundation/CPNotificationCenter.jI;26;Foundation/CPUndoManager.ji;12;CGGeometry.ji;13;CPAnimation.ji;13;CPResponder.jc;53820; +CPBorderlessWindowMask = 0; +CPTitledWindowMask = 1 << 0; +CPClosableWindowMask = 1 << 1; +CPMiniaturizableWindowMask = 1 << 2; +CPResizableWindowMask = 1 << 3; +CPTexturedBackgroundWindowMask = 1 << 8; +CPBorderlessBridgeWindowMask = 1 << 20; +CPHUDBackgroundWindowMask = 1 << 21; +CPWindowNotSizable = 0; +CPWindowMinXMargin = 1; +CPWindowWidthSizable = 2; +CPWindowMaxXMargin = 4; +CPWindowMinYMargin = 8; +CPWindowHeightSizable = 16; +CPWindowMaxYMargin = 32; +CPBackgroundWindowLevel = -1; +CPNormalWindowLevel = 4; +CPFloatingWindowLevel = 5; +CPSubmenuWindowLevel = 6; +CPTornOffMenuWindowLevel = 6; +CPMainMenuWindowLevel = 8; +CPStatusWindowLevel = 9; +CPModalPanelWindowLevel = 10; +CPPopUpMenuWindowLevel = 11; +CPDraggingWindowLevel = 12; +CPScreenSaverWindowLevel = 13; +CPWindowOut = 0; +CPWindowAbove = 1; +CPWindowBelow = 2; +CPWindowWillCloseNotification = "CPWindowWillCloseNotification"; +CPWindowDidBecomeMainNotification = "CPWindowDidBecomeMainNotification"; +CPWindowDidResignMainNotification = "CPWindowDidResignMainNotification"; +CPWindowDidMoveNotification = "CPWindowDidMoveNotification"; +var SHADOW_MARGIN_LEFT = 20.0, + SHADOW_MARGIN_RIGHT = 19.0, + SHADOW_MARGIN_TOP = 10.0, + SHADOW_MARGIN_BOTTOM = 10.0, + SHADOW_DISTANCE = 5.0, + _CPWindowShadowColor = nil; +var CPWindowSaveImage = nil, + CPWindowSavingImage = nil; +{var the_class = objj_allocateClassPair(CPResponder, "CPWindow"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_windowNumber"), new objj_ivar("_styleMask"), new objj_ivar("_frame"), new objj_ivar("_level"), new objj_ivar("_isVisible"), new objj_ivar("_isAnimating"), new objj_ivar("_hasShadow"), new objj_ivar("_isMovableByWindowBackground"), new objj_ivar("_isDocumentEdited"), new objj_ivar("_isDocumentSaving"), new objj_ivar("_shadowView"), new objj_ivar("_windowView"), new objj_ivar("_contentView"), new objj_ivar("_toolbarView"), new objj_ivar("_mouseOverView"), new objj_ivar("_leftMouseDownView"), new objj_ivar("_rightMouseDownView"), new objj_ivar("_toolbar"), new objj_ivar("_firstResponder"), new objj_ivar("_initialFirstResponder"), new objj_ivar("_delegate"), new objj_ivar("_title"), new objj_ivar("_acceptsMouseMovedEvents"), new objj_ivar("_ignoresMouseEvents"), new objj_ivar("_windowController"), new objj_ivar("_minSize"), new objj_ivar("_maxSize"), new objj_ivar("_undoManager"), new objj_ivar("_representedURL"), new objj_ivar("_registeredDraggedTypes"), new objj_ivar("_registeredDraggedTypesArray"), new objj_ivar("_inclusiveRegisteredDraggedTypes"), new objj_ivar("_defaultButton"), new objj_ivar("_defaultButtonEnabled"), new objj_ivar("_autorecalculatesKeyViewLoop"), new objj_ivar("_keyViewLoopIsDirty"), new objj_ivar("_bridge"), new objj_ivar("_autoresizingMask"), new objj_ivar("_delegateRespondsToWindowWillReturnUndoManagerSelector"), new objj_ivar("_isFullBridge"), new objj_ivar("_fullBridgeSession")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithContentRect:styleMask:"), function $CPWindow__initWithContentRect_styleMask_(self, _cmd, aContentRect, aStyleMask) +{ with(self) +{ + return objj_msgSend(self, "initWithContentRect:styleMask:bridge:", aContentRect, aStyleMask, nil); +} +}), new objj_method(sel_getUid("initWithContentRect:styleMask:bridge:"), function $CPWindow__initWithContentRect_styleMask_bridge_(self, _cmd, aContentRect, aStyleMask, aBridge) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "init"); + if (self) + { + _isFullBridge = NO; + _registeredDraggedTypes = objj_msgSend(CPSet, "set"); + _registeredDraggedTypesArray = []; + _windowNumber = objj_msgSend(CPApp._windows, "count"); + CPApp._windows[_windowNumber] = self; + _styleMask = aStyleMask; + _level = CPNormalWindowLevel; + _minSize = CGSizeMake(0.0, 0.0); + _maxSize = CGSizeMake(1000000.0, 1000000.0); + var windowViewClass = objj_msgSend(objj_msgSend(self, "class"), "_windowViewClassForStyleMask:", aStyleMask); + _frame = objj_msgSend(windowViewClass, "frameRectForContentRect:", aContentRect); + _windowView = objj_msgSend(objj_msgSend(windowViewClass, "alloc"), "initWithFrame:styleMask:", CGRectMake(0.0, 0.0, CGRectGetWidth(_frame), CGRectGetHeight(_frame)), aStyleMask); + objj_msgSend(_windowView, "_setWindow:", self); + objj_msgSend(_windowView, "setNextResponder:", self); + objj_msgSend(self, "setMovableByWindowBackground:", aStyleMask & CPHUDBackgroundWindowMask); + objj_msgSend(self, "setContentView:", objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMakeZero())); + _firstResponder = self; + objj_msgSend(self, "setBridge:", aBridge); + objj_msgSend(self, "setNextResponder:", CPApp); + objj_msgSend(self, "setHasShadow:", aStyleMask !== CPBorderlessWindowMask); + if (aStyleMask & CPBorderlessBridgeWindowMask) + objj_msgSend(self, "setFullBridge:", YES); + _defaultButtonEnabled = YES; + _keyViewLoopIsDirty = YES; + } + return self; +} +}), new objj_method(sel_getUid("awakeFromCib"), function $CPWindow__awakeFromCib(self, _cmd) +{ with(self) +{ + if (_initialFirstResponder) + objj_msgSend(self, "makeFirstResponder:", _initialFirstResponder); + _keyViewLoopIsDirty = !objj_msgSend(self, "_hasKeyViewLoop"); +} +}), new objj_method(sel_getUid("_setWindowView:"), function $CPWindow___setWindowView_(self, _cmd, aWindowView) +{ with(self) +{ + if (_windowView === aWindowView) + return; + var oldWindowView = _windowView; + _windowView = aWindowView; +} +}), new objj_method(sel_getUid("setFullBridge:"), function $CPWindow__setFullBridge_(self, _cmd, shouldBeFullBridge) +{ with(self) +{ + shouldBeFullBridge = !!shouldBeFullBridge; + if (_isFullBridge === shouldBeFullBridge) + return; + _isFullBridge = shouldBeFullBridge; + if (_isFullBridge) + { + _fullBridgeSession = _CPWindowFullBridgeSessionMake(_windowView, objj_msgSend(self, "contentRectForFrameRect:", objj_msgSend(self, "frame")), objj_msgSend(self, "hasShadow"), objj_msgSend(self, "level")); + var fullBridgeWindowViewClass = objj_msgSend(objj_msgSend(self, "class"), "_windowViewClassForFullBridgeStyleMask:", _styleMask), + windowView = objj_msgSend(objj_msgSend(fullBridgeWindowViewClass, "alloc"), "initWithFrame:styleMask:", CGRectMakeZero(), _styleMask); + objj_msgSend(self, "_setWindowView:", windowView); + objj_msgSend(self, "setLevel:", CPBackgroundWindowLevel); + objj_msgSend(self, "setHasShadow:", NO); + objj_msgSend(self, "setAutoresizingMask:", CPWindowWidthSizable | CPWindowHeightSizable); + objj_msgSend(self, "setFrame:", objj_msgSend(_bridge, "visibleFrame")); + } + else + { + var windowView = _fullBridgeSession.windowView; + objj_msgSend(self, "_setWindowView:", windowView); + objj_msgSend(self, "setLevel:", _fullBridgeSession.level); + objj_msgSend(self, "setHasShadow:", _fullBridgeSession.hasShadow); + objj_msgSend(self, "setAutoresizingMask:", CPWindowNotSizable); + objj_msgSend(self, "setFrame:", objj_msgSend(windowView, "frameRectForContentRect:", _fullBridgeSession.contentRect)); + } +} +}), new objj_method(sel_getUid("isFullBridge"), function $CPWindow__isFullBridge(self, _cmd) +{ with(self) +{ + return _isFullBridge; +} +}), new objj_method(sel_getUid("styleMask"), function $CPWindow__styleMask(self, _cmd) +{ with(self) +{ + return _styleMask; +} +}), new objj_method(sel_getUid("contentRectForFrameRect:"), function $CPWindow__contentRectForFrameRect_(self, _cmd, aFrame) +{ with(self) +{ + return objj_msgSend(_windowView, "contentRectForFrameRect:", aFrame); +} +}), new objj_method(sel_getUid("frameRectForContentRect:"), function $CPWindow__frameRectForContentRect_(self, _cmd, aContentRect) +{ with(self) +{ + return objj_msgSend(_windowView, "frameRectForContentRect:", aContentRect); +} +}), new objj_method(sel_getUid("frame"), function $CPWindow__frame(self, _cmd) +{ with(self) +{ + return { origin: { x:_frame.origin.x, y:_frame.origin.y }, size: { width:_frame.size.width, height:_frame.size.height } }; +} +}), new objj_method(sel_getUid("setFrame:display:animate:"), function $CPWindow__setFrame_display_animate_(self, _cmd, aFrame, shouldDisplay, shouldAnimate) +{ with(self) +{ + if (shouldAnimate) + { + var animation = objj_msgSend(objj_msgSend(_CPWindowFrameAnimation, "alloc"), "initWithWindow:targetFrame:", self, aFrame); + objj_msgSend(animation, "startAnimation"); + } + else + { + objj_msgSend(self, "setFrameOrigin:", aFrame.origin); + objj_msgSend(self, "setFrameSize:", aFrame.size); + } +} +}), new objj_method(sel_getUid("setFrame:"), function $CPWindow__setFrame_(self, _cmd, aFrame) +{ with(self) +{ + objj_msgSend(self, "setFrame:display:animate:", aFrame, YES, NO); +} +}), new objj_method(sel_getUid("setFrameOrigin:"), function $CPWindow__setFrameOrigin_(self, _cmd, anOrigin) +{ with(self) +{ + var origin = _frame.origin; + if ((origin.x == anOrigin.x && origin.y == anOrigin.y)) + return; + origin.x = anOrigin.x; + origin.y = anOrigin.y; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPWindowDidMoveNotification, self); +} +}), new objj_method(sel_getUid("setFrameSize:"), function $CPWindow__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + aSize = { width:MIN(MAX(aSize.width, _minSize.width), _maxSize.width), height:MIN(MAX(aSize.height, _minSize.height), _maxSize.height) }; + if ((_frame.size.width == aSize.width && _frame.size.height == aSize.height)) + return; + _frame.size = aSize; + objj_msgSend(_windowView, "setFrameSize:", aSize); + if (_hasShadow) + objj_msgSend(_shadowView, "setFrameSize:", { width:SHADOW_MARGIN_LEFT + aSize.width + SHADOW_MARGIN_RIGHT, height:SHADOW_MARGIN_BOTTOM + aSize.height + SHADOW_MARGIN_TOP + SHADOW_DISTANCE }); + if (!_isAnimating && objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowDidResize:"))) + objj_msgSend(_delegate, "windowDidResize:", self); +} +}), new objj_method(sel_getUid("orderFront:"), function $CPWindow__orderFront_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(_bridge, "order:window:relativeTo:", CPWindowAbove, self, nil); +} +}), new objj_method(sel_getUid("orderBack:"), function $CPWindow__orderBack_(self, _cmd, aSender) +{ with(self) +{ +} +}), new objj_method(sel_getUid("orderOut:"), function $CPWindow__orderOut_(self, _cmd, aSender) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowWillClose:"))) + objj_msgSend(_delegate, "windowWillClose:", self); + objj_msgSend(_bridge, "order:window:relativeTo:", CPWindowOut, self, nil); + if (objj_msgSend(CPApp, "keyWindow") == self) + { + objj_msgSend(self, "resignKeyWindow"); + CPApp._keyWindow = nil; + } +} +}), new objj_method(sel_getUid("orderWindow:relativeTo:"), function $CPWindow__orderWindow_relativeTo_(self, _cmd, aPlace, otherWindowNumber) +{ with(self) +{ + objj_msgSend(_bridge, "order:window:relativeTo:", aPlace, self, CPApp._windows[otherWindowNumber]); +} +}), new objj_method(sel_getUid("setLevel:"), function $CPWindow__setLevel_(self, _cmd, aLevel) +{ with(self) +{ + _level = aLevel; +} +}), new objj_method(sel_getUid("level"), function $CPWindow__level(self, _cmd) +{ with(self) +{ + return _level; +} +}), new objj_method(sel_getUid("isVisible"), function $CPWindow__isVisible(self, _cmd) +{ with(self) +{ + return _isVisible; +} +}), new objj_method(sel_getUid("showsResizeIndicator"), function $CPWindow__showsResizeIndicator(self, _cmd) +{ with(self) +{ + return objj_msgSend(_windowView, "showsResizeIndicator"); +} +}), new objj_method(sel_getUid("setShowsResizeIndicator:"), function $CPWindow__setShowsResizeIndicator_(self, _cmd, shouldShowResizeIndicator) +{ with(self) +{ + objj_msgSend(_windowView, "setShowsResizeIndicator:", shouldShowResizeIndicator); +} +}), new objj_method(sel_getUid("resizeIndicatorOffset"), function $CPWindow__resizeIndicatorOffset(self, _cmd) +{ with(self) +{ + return objj_msgSend(_windowView, "resizeIndicatorOffset"); +} +}), new objj_method(sel_getUid("setResizeIndicatorOffset:"), function $CPWindow__setResizeIndicatorOffset_(self, _cmd, anOffset) +{ with(self) +{ + objj_msgSend(_windowView, "setResizeIndicatorOffset:", anOffset); +} +}), new objj_method(sel_getUid("setContentView:"), function $CPWindow__setContentView_(self, _cmd, aView) +{ with(self) +{ + if (_contentView) + objj_msgSend(_contentView, "removeFromSuperview"); + var bounds = CGRectMake(0.0, 0.0, CGRectGetWidth(_frame), CGRectGetHeight(_frame)); + _contentView = aView; + objj_msgSend(_contentView, "setFrame:", objj_msgSend(self, "contentRectForFrameRect:", bounds)); + objj_msgSend(_contentView, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + objj_msgSend(_windowView, "addSubview:", _contentView); +} +}), new objj_method(sel_getUid("contentView"), function $CPWindow__contentView(self, _cmd) +{ with(self) +{ + return _contentView; +} +}), new objj_method(sel_getUid("setBackgroundColor:"), function $CPWindow__setBackgroundColor_(self, _cmd, aColor) +{ with(self) +{ + objj_msgSend(_windowView, "setBackgroundColor:", aColor); +} +}), new objj_method(sel_getUid("backgroundColor"), function $CPWindow__backgroundColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(_windowView, "backgroundColor"); +} +}), new objj_method(sel_getUid("setMinSize:"), function $CPWindow__setMinSize_(self, _cmd, aSize) +{ with(self) +{ + if (CGSizeEqualToSize(_minSize, aSize)) + return; + _minSize = CGSizeCreateCopy(aSize); + var size = CGSizeMakeCopy(objj_msgSend(self, "frame").size), + needsFrameChange = NO; + if (size.width < _minSize.width) + { + size.width = _minSize.width; + needsFrameChange = YES; + } + if (size.height < _minSize.height) + { + size.height = _minSize.height; + needsFrameChange = YES; + } + if (needsFrameChange) + objj_msgSend(self, "setFrameSize:", size); +} +}), new objj_method(sel_getUid("minSize"), function $CPWindow__minSize(self, _cmd) +{ with(self) +{ + return _minSize; +} +}), new objj_method(sel_getUid("setMaxSize:"), function $CPWindow__setMaxSize_(self, _cmd, aSize) +{ with(self) +{ + if (CGSizeEqualToSize(_maxSize, aSize)) + return; + _maxSize = CGSizeCreateCopy(aSize); + var size = CGSizeMakeCopy(objj_msgSend(self, "frame").size), + needsFrameChange = NO; + if (size.width > _maxSize.width) + { + size.width = _maxSize.width; + needsFrameChange = YES; + } + if (size.height > _maxSize.height) + { + size.height = _maxSize.height; + needsFrameChange = YES; + } + if (needsFrameChange) + objj_msgSend(self, "setFrameSize:", size); +} +}), new objj_method(sel_getUid("maxSize"), function $CPWindow__maxSize(self, _cmd) +{ with(self) +{ + return _maxSize; +} +}), new objj_method(sel_getUid("hasShadow"), function $CPWindow__hasShadow(self, _cmd) +{ with(self) +{ + return _hasShadow; +} +}), new objj_method(sel_getUid("setHasShadow:"), function $CPWindow__setHasShadow_(self, _cmd, shouldHaveShadow) +{ with(self) +{ + if (_hasShadow === shouldHaveShadow) + return; + _hasShadow = shouldHaveShadow; + if (_hasShadow) + { + var bounds = objj_msgSend(_windowView, "bounds"); + _shadowView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CGRectMake(-SHADOW_MARGIN_LEFT, -SHADOW_MARGIN_TOP + SHADOW_DISTANCE, + SHADOW_MARGIN_LEFT + CGRectGetWidth(bounds) + SHADOW_MARGIN_RIGHT, SHADOW_MARGIN_TOP + CGRectGetHeight(bounds) + SHADOW_MARGIN_BOTTOM)); + if (!_CPWindowShadowColor) + { + var bundle = objj_msgSend(CPBundle, "bundleForClass:", objj_msgSend(CPWindow, "class")); + _CPWindowShadowColor = objj_msgSend(CPColor, "colorWithPatternImage:", objj_msgSend(objj_msgSend(CPNinePartImage, "alloc"), "initWithImageSlices:", + [ + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow0.png"), CGSizeMake(20.0, 19.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow1.png"), CGSizeMake(1.0, 19.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow2.png"), CGSizeMake(19.0, 19.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow3.png"), CGSizeMake(20.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow4.png"), CGSizeMake(1.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow5.png"), CGSizeMake(19.0, 1.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow6.png"), CGSizeMake(20.0, 18.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow7.png"), CGSizeMake(1.0, 18.0)), + objj_msgSend(objj_msgSend(CPImage, "alloc"), "initWithContentsOfFile:size:", objj_msgSend(bundle, "pathForResource:", "CPWindow/CPWindowShadow8.png"), CGSizeMake(19.0, 18.0)) + ])); + } + objj_msgSend(_shadowView, "setBackgroundColor:", _CPWindowShadowColor); + objj_msgSend(_shadowView, "setAutoresizingMask:", CPViewWidthSizable | CPViewHeightSizable); + } + else if (_shadowView) + { + _shadowView = nil; + } +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPWindow__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; + _delegateRespondsToWindowWillReturnUndoManagerSelector = objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowWillReturnUndoManager:")); + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowDidBecomeMain:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("windowDidBecomeMain:"), CPWindowDidBecomeMainNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowDidResignMain:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("windowDidResignMain:"), CPWindowDidResignMainNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowDidMove:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("windowDidMove:"), CPWindowDidMoveNotification, self); +} +}), new objj_method(sel_getUid("delegate"), function $CPWindow__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("setWindowController:"), function $CPWindow__setWindowController_(self, _cmd, aWindowController) +{ with(self) +{ + _windowController = aWindowController; +} +}), new objj_method(sel_getUid("windowController"), function $CPWindow__windowController(self, _cmd) +{ with(self) +{ + return _windowController; +} +}), new objj_method(sel_getUid("doCommandBySelector:"), function $CPWindow__doCommandBySelector_(self, _cmd, aSelector) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", aSelector)) + objj_msgSend(_delegate, "performSelector:", aSelector); + else + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPResponder") }, "doCommandBySelector:", aSelector); +} +}), new objj_method(sel_getUid("acceptsFirstResponder"), function $CPWindow__acceptsFirstResponder(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("makeFirstResponder:"), function $CPWindow__makeFirstResponder_(self, _cmd, aResponder) +{ with(self) +{ + if (_firstResponder == aResponder) + return YES; + if(!objj_msgSend(_firstResponder, "resignFirstResponder")) + return NO; + if(!aResponder || !objj_msgSend(aResponder, "acceptsFirstResponder") || !objj_msgSend(aResponder, "becomeFirstResponder")) + { + _firstResponder = self; + return NO; + } + _firstResponder = aResponder; + return YES; +} +}), new objj_method(sel_getUid("firstResponder"), function $CPWindow__firstResponder(self, _cmd) +{ with(self) +{ + return _firstResponder; +} +}), new objj_method(sel_getUid("acceptsMouseMovedEvents"), function $CPWindow__acceptsMouseMovedEvents(self, _cmd) +{ with(self) +{ + return _acceptsMouseMovedEvents; +} +}), new objj_method(sel_getUid("setAcceptsMouseMovedEvents:"), function $CPWindow__setAcceptsMouseMovedEvents_(self, _cmd, shouldAcceptMouseMovedEvents) +{ with(self) +{ + _acceptsMouseMovedEvents = shouldAcceptMouseMovedEvents; +} +}), new objj_method(sel_getUid("ignoresMouseEvents"), function $CPWindow__ignoresMouseEvents(self, _cmd) +{ with(self) +{ + return _ignoresMouseEvents; +} +}), new objj_method(sel_getUid("setIgnoresMouseEvents:"), function $CPWindow__setIgnoresMouseEvents_(self, _cmd, shouldIgnoreMouseEvents) +{ with(self) +{ + _ignoresMouseEvents = shouldIgnoreMouseEvents; +} +}), new objj_method(sel_getUid("title"), function $CPWindow__title(self, _cmd) +{ with(self) +{ + return _title; +} +}), new objj_method(sel_getUid("setTitle:"), function $CPWindow__setTitle_(self, _cmd, aTitle) +{ with(self) +{ + _title = aTitle; + objj_msgSend(_windowView, "setTitle:", aTitle); + objj_msgSend(self, "_synchronizeMenuBarTitleWithWindowTitle"); +} +}), new objj_method(sel_getUid("setTitleWithRepresentedFilename:"), function $CPWindow__setTitleWithRepresentedFilename_(self, _cmd, aFilePath) +{ with(self) +{ + objj_msgSend(self, "setRepresentedFilename:", aFilePath); + objj_msgSend(self, "setTitle:", objj_msgSend(aFilePath, "lastPathComponent")); +} +}), new objj_method(sel_getUid("setRepresentedFilename:"), function $CPWindow__setRepresentedFilename_(self, _cmd, aFilePath) +{ with(self) +{ + objj_msgSend(self, "setRepresentedURL:", aFilePath); +} +}), new objj_method(sel_getUid("representedFilename"), function $CPWindow__representedFilename(self, _cmd) +{ with(self) +{ + return _representedURL; +} +}), new objj_method(sel_getUid("setRepresentedURL:"), function $CPWindow__setRepresentedURL_(self, _cmd, aURL) +{ with(self) +{ + _representedURL = aURL; +} +}), new objj_method(sel_getUid("representedURL"), function $CPWindow__representedURL(self, _cmd) +{ with(self) +{ + return _representedURL; +} +}), new objj_method(sel_getUid("setMovableByWindowBackground:"), function $CPWindow__setMovableByWindowBackground_(self, _cmd, shouldBeMovableByWindowBackground) +{ with(self) +{ + _isMovableByWindowBackground = shouldBeMovableByWindowBackground; +} +}), new objj_method(sel_getUid("isMovableByWindowBackground"), function $CPWindow__isMovableByWindowBackground(self, _cmd) +{ with(self) +{ + return _isMovableByWindowBackground; +} +}), new objj_method(sel_getUid("center"), function $CPWindow__center(self, _cmd) +{ with(self) +{ + var size = objj_msgSend(self, "frame").size, + bridgeSize = objj_msgSend(_bridge, "contentBounds").size; + objj_msgSend(self, "setFrameOrigin:", CGPointMake((bridgeSize.width - size.width) / 2.0, (bridgeSize.height - size.height) / 2.0)); +} +}), new objj_method(sel_getUid("sendEvent:"), function $CPWindow__sendEvent_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"), + point = objj_msgSend(anEvent, "locationInWindow"); + switch (type) + { + case CPKeyUp: return objj_msgSend(objj_msgSend(self, "firstResponder"), "keyUp:", anEvent); + case CPKeyDown: return objj_msgSend(objj_msgSend(self, "firstResponder"), "keyDown:", anEvent); + case CPScrollWheel: return objj_msgSend(objj_msgSend(_windowView, "hitTest:", point), "scrollWheel:", anEvent); + case CPLeftMouseUp: if (!_leftMouseDownView) + return objj_msgSend(objj_msgSend(_windowView, "hitTest:", point), "mouseUp:", anEvent); + objj_msgSend(_leftMouseDownView, "mouseUp:", anEvent) + _leftMouseDownView = nil; + return; + case CPLeftMouseDown: _leftMouseDownView = objj_msgSend(_windowView, "hitTest:", point); + if (_leftMouseDownView != _firstResponder && objj_msgSend(_leftMouseDownView, "acceptsFirstResponder")) + objj_msgSend(self, "makeFirstResponder:", _leftMouseDownView); + var theWindow = objj_msgSend(anEvent, "window"); + if (objj_msgSend(theWindow, "isKeyWindow") || objj_msgSend(theWindow, "becomesKeyOnlyIfNeeded")) + return objj_msgSend(_leftMouseDownView, "mouseDown:", anEvent); + else + { + objj_msgSend(self, "makeKeyAndOrderFront:", self); + if (objj_msgSend(_leftMouseDownView, "acceptsFirstMouse:", anEvent)) + return objj_msgSend(_leftMouseDownView, "mouseDown:", anEvent) + } + break; + case CPLeftMouseDragged: if (!_leftMouseDownView) + return objj_msgSend(objj_msgSend(_windowView, "hitTest:", point), "mouseDragged:", anEvent); + return objj_msgSend(_leftMouseDownView, "mouseDragged:", anEvent); + case CPRightMouseUp: return objj_msgSend(_rightMouseDownView, "mouseUp:", anEvent); + case CPRightMouseDown: _rightMouseDownView = objj_msgSend(_windowView, "hitTest:", point); + return objj_msgSend(_rightMouseDownView, "mouseDown:", anEvent); + case CPRightMouseDragged: return objj_msgSend(_rightMouseDownView, "mouseDragged:", anEvent); + case CPMouseMoved: if (!_acceptsMouseMovedEvents) + return; + var hitTestView = objj_msgSend(_windowView, "hitTest:", point); + if (hitTestView != _mouseOverView) + { + if (_mouseOverView) + objj_msgSend(_mouseOverView, "mouseExited:", objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", CPMouseExited, point, objj_msgSend(anEvent, "modifierFlags"), objj_msgSend(anEvent, "timestamp"), _windowNumber, nil, -1, 1, 0)); + if (hitTestView) + objj_msgSend(hitTestView, "mouseEntered:", objj_msgSend(CPEvent, "mouseEventWithType:location:modifierFlags:timestamp:windowNumber:context:eventNumber:clickCount:pressure:", CPMouseEntered, point, objj_msgSend(anEvent, "modifierFlags"), objj_msgSend(anEvent, "timestamp"), _windowNumber, nil, -1, 1, 0)); + _mouseOverView = hitTestView; + } + objj_msgSend(_mouseOverView, "mouseMoved:", anEvent); + } +} +}), new objj_method(sel_getUid("windowNumber"), function $CPWindow__windowNumber(self, _cmd) +{ with(self) +{ + return _windowNumber; +} +}), new objj_method(sel_getUid("becomeKeyWindow"), function $CPWindow__becomeKeyWindow(self, _cmd) +{ with(self) +{ + if (_firstResponder != self && objj_msgSend(_firstResponder, "respondsToSelector:", sel_getUid("becomeKeyWindow"))) + objj_msgSend(_firstResponder, "becomeKeyWindow"); +} +}), new objj_method(sel_getUid("canBecomeKeyWindow"), function $CPWindow__canBecomeKeyWindow(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("isKeyWindow"), function $CPWindow__isKeyWindow(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPApp, "keyWindow") == self; +} +}), new objj_method(sel_getUid("makeKeyAndOrderFront:"), function $CPWindow__makeKeyAndOrderFront_(self, _cmd, aSender) +{ with(self) +{ + objj_msgSend(self, "orderFront:", self); + objj_msgSend(self, "makeKeyWindow"); + objj_msgSend(self, "makeMainWindow"); +} +}), new objj_method(sel_getUid("makeKeyWindow"), function $CPWindow__makeKeyWindow(self, _cmd) +{ with(self) +{ + if (!objj_msgSend(self, "canBecomeKeyWindow")) + return; + objj_msgSend(CPApp._keyWindow, "resignKeyWindow"); + CPApp._keyWindow = self; + objj_msgSend(self, "becomeKeyWindow"); +} +}), new objj_method(sel_getUid("resignKeyWindow"), function $CPWindow__resignKeyWindow(self, _cmd) +{ with(self) +{ + if (_firstResponder != self && objj_msgSend(_firstResponder, "respondsToSelector:", sel_getUid("resignKeyWindow"))) + objj_msgSend(_firstResponder, "resignKeyWindow"); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowDidResignKey:"))) + objj_msgSend(_delegate, "windowDidResignKey:", self); +} +}), new objj_method(sel_getUid("dragImage:at:offset:event:pasteboard:source:slideBack:"), function $CPWindow__dragImage_at_offset_event_pasteboard_source_slideBack_(self, _cmd, anImage, imageLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPDragServer, "sharedDragServer"), "dragImage:fromWindow:at:offset:event:pasteboard:source:slideBack:", anImage, self, objj_msgSend(self, "convertBaseToBridge:", imageLocation), mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack); +} +}), new objj_method(sel_getUid("_noteRegisteredDraggedTypes:"), function $CPWindow___noteRegisteredDraggedTypes_(self, _cmd, pasteboardTypes) +{ with(self) +{ + if (!pasteboardTypes) + return; + if (!_inclusiveRegisteredDraggedTypes) + _inclusiveRegisteredDraggedTypes = objj_msgSend(CPCountedSet, "set"); + objj_msgSend(_inclusiveRegisteredDraggedTypes, "unionSet:", pasteboardTypes); +} +}), new objj_method(sel_getUid("_noteUnregisteredDraggedTypes:"), function $CPWindow___noteUnregisteredDraggedTypes_(self, _cmd, pasteboardTypes) +{ with(self) +{ + if (!pasteboardTypes) + return; + objj_msgSend(_inclusiveRegisteredDraggedTypes, "minusSet:", pasteboardTypes) + if (objj_msgSend(_inclusiveRegisteredDraggedTypes, "count") === 0) + _inclusiveRegisteredDraggedTypes = nil; +} +}), new objj_method(sel_getUid("dragView:at:offset:event:pasteboard:source:slideBack:"), function $CPWindow__dragView_at_offset_event_pasteboard_source_slideBack_(self, _cmd, aView, imageLocation, mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPDragServer, "sharedDragServer"), "dragView:fromWindow:at:offset:event:pasteboard:source:slideBack:", aView, self, objj_msgSend(self, "convertBaseToBridge:", imageLocation), mouseOffset, anEvent, aPasteboard, aSourceObject, slideBack); +} +}), new objj_method(sel_getUid("registerForDraggedTypes:"), function $CPWindow__registerForDraggedTypes_(self, _cmd, pasteboardTypes) +{ with(self) +{ + if (!pasteboardTypes) + return; + objj_msgSend(self, "_noteUnregisteredDraggedTypes:", _registeredDraggedTypes); + objj_msgSend(_registeredDraggedTypes, "addObjectsFromArray:", pasteboardTypes) + objj_msgSend(self, "_noteRegisteredDraggedTypes:", _registeredDraggedTypes); + _registeredDraggedTypesArray = nil; +} +}), new objj_method(sel_getUid("registeredDraggedTypes"), function $CPWindow__registeredDraggedTypes(self, _cmd) +{ with(self) +{ + if (!_registeredDraggedTypesArray) + _registeredDraggedTypesArray = objj_msgSend(_registeredDraggedTypes, "allObjects") + return _registeredDraggedTypesArray; +} +}), new objj_method(sel_getUid("unregisterDraggedTypes"), function $CPWindow__unregisterDraggedTypes(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "_noteUnregisteredDraggedTypes:", _registeredDraggedTypes); + _registeredDraggedTypes = objj_msgSend(CPSet, "set"); + _registeredDraggedTypesArray = []; +} +}), new objj_method(sel_getUid("setDocumentEdited:"), function $CPWindow__setDocumentEdited_(self, _cmd, isDocumentEdited) +{ with(self) +{ + if (_isDocumentEdited == isDocumentEdited) + return; + _isDocumentEdited = isDocumentEdited; + objj_msgSend(CPMenu, "_setMenuBarIconImageAlphaValue:", _isDocumentEdited ? 0.5 : 1.0); +} +}), new objj_method(sel_getUid("isDocumentEdited"), function $CPWindow__isDocumentEdited(self, _cmd) +{ with(self) +{ + return _isDocumentEdited; +} +}), new objj_method(sel_getUid("setDocumentSaving:"), function $CPWindow__setDocumentSaving_(self, _cmd, isDocumentSaving) +{ with(self) +{ + if (_isDocumentSaving == isDocumentSaving) + return; + _isDocumentSaving = isDocumentSaving; + objj_msgSend(self, "_synchronizeSaveMenuWithDocumentSaving"); + objj_msgSend(_windowView, "windowDidChangeDocumentSaving"); +} +}), new objj_method(sel_getUid("isDocumentSaving"), function $CPWindow__isDocumentSaving(self, _cmd) +{ with(self) +{ + return _isDocumentSaving; +} +}), new objj_method(sel_getUid("_synchronizeSaveMenuWithDocumentSaving"), function $CPWindow___synchronizeSaveMenuWithDocumentSaving(self, _cmd) +{ with(self) +{ + if (!objj_msgSend(self, "isMainWindow")) + return; + var mainMenu = objj_msgSend(CPApp, "mainMenu"), + index = objj_msgSend(mainMenu, "indexOfItemWithTitle:", _isDocumentSaving ? "Save" : "Saving..."); + if (index == CPNotFound) + return; + var item = objj_msgSend(mainMenu, "itemAtIndex:", index); + if (_isDocumentSaving) + { + CPWindowSaveImage = objj_msgSend(item, "image"); + objj_msgSend(item, "setTitle:", "Saving..."); + objj_msgSend(item, "setImage:", CPWindowSavingImage); + objj_msgSend(item, "setEnabled:", NO); + } + else + { + objj_msgSend(item, "setTitle:", "Save"); + objj_msgSend(item, "setImage:", CPWindowSaveImage); + objj_msgSend(item, "setEnabled:", YES); + } +} +}), new objj_method(sel_getUid("performClose:"), function $CPWindow__performClose_(self, _cmd, aSender) +{ with(self) +{ + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("windowShouldClose:"))) + { + if (!objj_msgSend(_delegate, "windowShouldClose:", self)) + return; + } + else if (objj_msgSend(self, "respondsToSelector:", sel_getUid("windowShouldClose:")) && !objj_msgSend(self, "windowShouldClose:", self)) + return; + objj_msgSend(self, "close"); +} +}), new objj_method(sel_getUid("close"), function $CPWindow__close(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPWindowWillCloseNotification, self); + objj_msgSend(self, "orderOut:", nil); +} +}), new objj_method(sel_getUid("isMainWindow"), function $CPWindow__isMainWindow(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPApp, "mainWindow") == self; +} +}), new objj_method(sel_getUid("canBecomeMainWindow"), function $CPWindow__canBecomeMainWindow(self, _cmd) +{ with(self) +{ + if (objj_msgSend(self, "isVisible")) + return YES; + return NO; +} +}), new objj_method(sel_getUid("makeMainWindow"), function $CPWindow__makeMainWindow(self, _cmd) +{ with(self) +{ + if (!objj_msgSend(self, "canBecomeMainWindow")) + return; + objj_msgSend(CPApp._mainWindow, "resignMainWindow"); + CPApp._mainWindow = self; + objj_msgSend(self, "becomeMainWindow"); +} +}), new objj_method(sel_getUid("becomeMainWindow"), function $CPWindow__becomeMainWindow(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "_synchronizeMenuBarTitleWithWindowTitle"); + objj_msgSend(self, "_synchronizeSaveMenuWithDocumentSaving"); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPWindowDidBecomeMainNotification, self); +} +}), new objj_method(sel_getUid("resignMainWindow"), function $CPWindow__resignMainWindow(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPWindowDidResignMainNotification, self); +} +}), new objj_method(sel_getUid("toolbar"), function $CPWindow__toolbar(self, _cmd) +{ with(self) +{ + return _toolbar; +} +}), new objj_method(sel_getUid("setToolbar:"), function $CPWindow__setToolbar_(self, _cmd, aToolbar) +{ with(self) +{ + if (_toolbar === aToolbar) + return; + objj_msgSend(objj_msgSend(aToolbar, "_window"), "setToolbar:", nil); + objj_msgSend(_toolbar, "_setWindow:", nil); + _toolbar = aToolbar; + objj_msgSend(_toolbar, "_setWindow:", self); + objj_msgSend(self, "_noteToolbarChanged"); +} +}), new objj_method(sel_getUid("toggleToolbarShown:"), function $CPWindow__toggleToolbarShown_(self, _cmd, aSender) +{ with(self) +{ + var toolbar = objj_msgSend(self, "toolbar"); + objj_msgSend(toolbar, "setVisible:", !objj_msgSend(toolbar, "isVisible")); +} +}), new objj_method(sel_getUid("_noteToolbarChanged"), function $CPWindow___noteToolbarChanged(self, _cmd) +{ with(self) +{ + var frame = CGRectMakeCopy(objj_msgSend(self, "frame")), + newFrame; + objj_msgSend(_windowView, "noteToolbarChanged"); + if (_isFullBridge) + newFrame = objj_msgSend(_bridge, "visibleFrame"); + else + { + newFrame = CGRectMakeCopy(objj_msgSend(self, "frame")); + newFrame.origin = frame.origin; + } + objj_msgSend(self, "setFrame:", newFrame); +} +}), new objj_method(sel_getUid("_setAttachedSheetFrameOrigin"), function $CPWindow___setAttachedSheetFrameOrigin(self, _cmd) +{ with(self) +{ + var contentRect = objj_msgSend(objj_msgSend(self, "contentView"), "frame"), + sheetFrame = CGRectMakeCopy(objj_msgSend(_attachedSheet, "frame")); + sheetFrame.origin.y = CGRectGetMinY(_frame) + CGRectGetMinY(contentRect); + sheetFrame.origin.x = CGRectGetMinX(_frame) + FLOOR((CGRectGetWidth(_frame) - CGRectGetWidth(sheetFrame)) / 2.0); + objj_msgSend(_attachedSheet, "setFrameOrigin:", sheetFrame.origin); +} +}), new objj_method(sel_getUid("_animateAttachedSheet"), function $CPWindow___animateAttachedSheet(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_attachSheet:modalDelegate:didEndSelector:contextInfo:"), function $CPWindow___attachSheet_modalDelegate_didEndSelector_contextInfo_(self, _cmd, aSheet, aModalDelegate, aDidEndSelector, aContextInfo) +{ with(self) +{ + _attachedSheet = aSheet; + aSheet._isSheet = YES; + objj_msgSend(self, "_setAttachedSheetFrameOrigin"); + objj_msgSend(_bridge, "order:window:relativeTo:", CPWindowAbove, aSheet, self); +} +}), new objj_method(sel_getUid("attachedSheet"), function $CPWindow__attachedSheet(self, _cmd) +{ with(self) +{ + return _attachedSheet; +} +}), new objj_method(sel_getUid("isSheet"), function $CPWindow__isSheet(self, _cmd) +{ with(self) +{ + return _isSheet; +} +}), new objj_method(sel_getUid("becomesKeyOnlyIfNeeded"), function $CPWindow__becomesKeyOnlyIfNeeded(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("worksWhenModal"), function $CPWindow__worksWhenModal(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("keyDown:"), function $CPWindow__keyDown_(self, _cmd, event) +{ with(self) +{ + if (!objj_msgSend(self, "performKeyEquivalent:", event)) + objj_msgSend(self, "interpretKeyEvents:", [event]); +} +}), new objj_method(sel_getUid("insertNewline:"), function $CPWindow__insertNewline_(self, _cmd, sender) +{ with(self) +{ + if (_defaultButton && _defaultButtonEnabled) + objj_msgSend(_defaultButton, "performClick:", nil); +} +}), new objj_method(sel_getUid("insertTab:"), function $CPWindow__insertTab_(self, _cmd, sender) +{ with(self) +{ + objj_msgSend(self, "selectNextKeyView:", nil); +} +}), new objj_method(sel_getUid("_dirtyKeyViewLoop"), function $CPWindow___dirtyKeyViewLoop(self, _cmd) +{ with(self) +{ + if (_autorecalculatesKeyViewLoop) + _keyViewLoopIsDirty = YES; +} +}), new objj_method(sel_getUid("_hasKeyViewLoop"), function $CPWindow___hasKeyViewLoop(self, _cmd) +{ with(self) +{ + var subviews = []; + objj_msgSend(self, "_appendSubviewsOf:toArray:", _contentView, subviews); + for (var i = 0, count = objj_msgSend(subviews, "count"); i objj_msgSend(self, "maxWidth")) + objj_msgSend(self, "setMaxWidth:", width) + + if (_width !== width) + objj_msgSend(self, "setWidth:", width); +} +}), new objj_method(sel_getUid("setHeaderView:"), function $NEWCPTableColumn__setHeaderView_(self, _cmd, aView) +{ with(self) +{ + if (!aView) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "Attempt to set nil header view on " + objj_msgSend(self, "description")); + + _headerView = aView; +} +}), new objj_method(sel_getUid("headerView"), function $NEWCPTableColumn__headerView(self, _cmd) +{ with(self) +{ + return _headerView; +} +}), new objj_method(sel_getUid("setDataView:"), function $NEWCPTableColumn__setDataView_(self, _cmd, aView) +{ with(self) +{ + if (_dataView === aView) + return; + + if (_dataView) + _dataViewData[objj_msgSend(_dataView, "UID")] = nil; + + _dataView = aView; + _dataViewData[objj_msgSend(aView, "UID")] = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", aView); +} +}), new objj_method(sel_getUid("dataView"), function $NEWCPTableColumn__dataView(self, _cmd) +{ with(self) +{ + return _dataView; +} +}), new objj_method(sel_getUid("dataViewForRow:"), function $NEWCPTableColumn__dataViewForRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return objj_msgSend(self, "dataView"); +} +}), new objj_method(sel_getUid("_newDataViewForRow:"), function $NEWCPTableColumn___newDataViewForRow_(self, _cmd, aRowIndex) +{ with(self) +{ + var dataView = objj_msgSend(self, "dataViewForRow:", aRowIndex), + dataViewUID = objj_msgSend(dataView, "UID"); +var x = objj_msgSend(self, "tableView")._cachedDataViews[dataViewUID]; +if (x && x.length) +return x.pop(); + if (!_dataViewData[dataViewUID]) + _dataViewData[dataViewUID] = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", dataView); + var newDataView = objj_msgSend(CPKeyedUnarchiver, "unarchiveObjectWithData:", _dataViewData[dataViewUID]); +newDataView.identifier = dataViewUID; + return newDataView; +} +}), new objj_method(sel_getUid("setIdentifier:"), function $NEWCPTableColumn__setIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + _identifier = anIdentifier; +} +}), new objj_method(sel_getUid("identifier"), function $NEWCPTableColumn__identifier(self, _cmd) +{ with(self) +{ + return _identifier; +} +}), new objj_method(sel_getUid("setEditable:"), function $NEWCPTableColumn__setEditable_(self, _cmd, shouldBeEditable) +{ with(self) +{ + _isEditable = shouldBeEditable; +} +}), new objj_method(sel_getUid("isEditable"), function $NEWCPTableColumn__isEditable(self, _cmd) +{ with(self) +{ + return _isEditable; +} +}), new objj_method(sel_getUid("setSortDescriptorPrototype:"), function $NEWCPTableColumn__setSortDescriptorPrototype_(self, _cmd, aSortDescriptor) +{ with(self) +{ + _sortDescriptorPrototype = aSortDescriptor; +} +}), new objj_method(sel_getUid("sortDescriptorPrototype"), function $NEWCPTableColumn__sortDescriptorPrototype(self, _cmd) +{ with(self) +{ + return _sortDescriptorPrototype; +} +}), new objj_method(sel_getUid("setHidden:"), function $NEWCPTableColumn__setHidden_(self, _cmd, shouldBeHidden) +{ with(self) +{ + _isHidden = shouldBeHidden; +} +}), new objj_method(sel_getUid("isHidden"), function $NEWCPTableColumn__isHidden(self, _cmd) +{ with(self) +{ + return _isHidden; +} +}), new objj_method(sel_getUid("setHeaderToolTip:"), function $NEWCPTableColumn__setHeaderToolTip_(self, _cmd, aToolTip) +{ with(self) +{ + _headerToolTip = aToolTip; +} +}), new objj_method(sel_getUid("headerToolTip"), function $NEWCPTableColumn__headerToolTip(self, _cmd) +{ with(self) +{ + return _headerToolTip; +} +})]); +} +{ +var the_class = objj_getClass("NEWCPTableColumn") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"NEWCPTableColumn\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("setHeaderCell:"), function $NEWCPTableColumn__setHeaderCell_(self, _cmd, aView) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "setHeaderCell: is not supported. -setHeaderCell:aView instead."); +} +}), new objj_method(sel_getUid("headerCell"), function $NEWCPTableColumn__headerCell(self, _cmd) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "headCell is not supported. -headerView instead."); +} +}), new objj_method(sel_getUid("setDataCell:"), function $NEWCPTableColumn__setDataCell_(self, _cmd, aView) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "setDataCell: is not supported. Use -setHeaderCell:aView instead."); +} +}), new objj_method(sel_getUid("dataCell"), function $NEWCPTableColumn__dataCell(self, _cmd) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "dataCell is not supported. Use -dataCell instead."); +} +}), new objj_method(sel_getUid("dataCellForRow:"), function $NEWCPTableColumn__dataCellForRow_(self, _cmd, row) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "dataCellForRow: is not supported. Use -dataViewForRow:row instead."); +} +})]); +} + +p;16;NEWCPTableView.jI;20;Foundation/CPArray.ji;11;CPControl.ji;15;CPTableColumn.ji;15;_CPCornerView.ji;12;CPScroller.jc;45445; + + + +var CPTableViewDataSource_tableView_setObjectValue_forTableColumn_row_ = 1 << 2, + + CPTableViewDataSource_tableView_acceptDrop_row_dropOperation_ = 1 << 3, + CPTableViewDataSource_tableView_namesOfPromisedFilesDroppedAtDestination_forDraggedRowsWithIndexes_ = 1 << 4, + CPTableViewDataSource_tableView_validateDrop_proposedRow_proposedDropOperation_ = 1 << 5, + CPTableViewDataSource_tableView_writeRowsWithIndexes_toPasteboard_ = 1 << 6, + + CPTableViewDataSource_tableView_sortDescriptorsDidChange_ = 1 << 7; + +var CPTableViewDelegate_selectionShouldChangeInTableView_ = 1 << 0, + CPTableViewDelegate_tableView_dataViewForTableColumn_row_ = 1 << 1, + CPTableViewDelegate_tableView_didClickTableColumn_ = 1 << 2, + CPTableViewDelegate_tableView_didDragTableColumn_ = 1 << 3, + CPTableViewDelegate_tableView_heightOfRow_ = 1 << 4, + CPTableViewDelegate_tableView_isGroupRow_ = 1 << 5, + CPTableViewDelegate_tableView_mouseDownInHeaderOfTableColumn_ = 1 << 6, + CPTableViewDelegate_tableView_nextTypeSelectMatchFromRow_toRow_forString_ = 1 << 7, + CPTableViewDelegate_tableView_selectionIndexesForProposedSelection_ = 1 << 8, + CPTableViewDelegate_tableView_shouldEditTableColumn_row_ = 1 << 9, + CPTableViewDelegate_tableView_shouldSelectRow_ = 1 << 10, + CPTableViewDelegate_tableView_shouldSelectTableColumn_ = 1 << 11, + CPTableViewDelegate_tableView_shouldShowViewExpansionForTableColumn_row_ = 1 << 12, + CPTableViewDelegate_tableView_shouldTrackView_forTableColumn_row_ = 1 << 13, + CPTableViewDelegate_tableView_shouldTypeSelectForEvent_withCurrentSearchString_ = 1 << 14, + CPTableViewDelegate_tableView_toolTipForView_rect_tableColumn_row_mouseLocation_ = 1 << 15, + CPTableViewDelegate_tableView_typeSelectStringForTableColumn_row_ = 1 << 16, + CPTableViewDelegate_tableView_willDisplayView_forTableColumn_row_ = 1 << 17, + CPTableViewDelegate_tableViewSelectionDidChange_ = 1 << 18, + CPTableViewDelegate_tableViewSelectionIsChanging_ = 1 << 19; +{var the_class = objj_allocateClassPair(CPView, "_CPTableDrawView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_tableView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithTableView:"), function $_CPTableDrawView__initWithTableView_(self, _cmd, aTableView) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPView") }, "init"); + if (self) + _tableView = aTableView; + return self; +} +}), new objj_method(sel_getUid("drawRect:"), function $_CPTableDrawView__drawRect_(self, _cmd, aRect) +{ with(self) +{ + var frame = objj_msgSend(self, "frame"), + context = objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"); + CGContextTranslateCTM(context, -(frame.origin.x), -(frame.origin.y)); + objj_msgSend(_tableView, "_drawRect:", aRect); +} +})]); +} +{var the_class = objj_allocateClassPair(CPControl, "NEWCPTableView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_dataSource"), new objj_ivar("_implementedDataSourceMethods"), new objj_ivar("_delegate"), new objj_ivar("_implementedDelegateMethods"), new objj_ivar("_tableColumns"), new objj_ivar("_tableColumnRanges"), new objj_ivar("_dirtyTableColumnRangeIndex"), new objj_ivar("_numberOfHiddenColumns"), new objj_ivar("_objectValues"), new objj_ivar("_exposedRows"), new objj_ivar("_exposedColumns"), new objj_ivar("_dataViewsForTableColumns"), new objj_ivar("_cachedDataViews"), new objj_ivar("_allowsColumnReordering"), new objj_ivar("_allowsColumnResizing"), new objj_ivar("_allowsMultipleSelection"), new objj_ivar("_allowsEmptySelection"), new objj_ivar("_intercellSpacing"), new objj_ivar("_rowHeight"), new objj_ivar("_usesAlternatingRowBackgroundColors"), new objj_ivar("_selectionHighlightMask"), new objj_ivar("_currentHighlightedTableColumn"), new objj_ivar("_numberOfRows"), new objj_ivar("_headerView"), new objj_ivar("_cornerView"), new objj_ivar("_selectedColumnIndexes"), new objj_ivar("_selectedRowIndexes"), new objj_ivar("_selectionStartRow"), new objj_ivar("_tableDrawView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $NEWCPTableView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + _allowsColumnReordering = YES; + _allowsColumnResizing = YES; + _allowsMultipleSelection = NO; + _allowsEmptySelection = YES; + _allowsColumnSelection = NO; + _tableViewFlags = 0; + _tableColumns = []; + _tableColumnRanges = []; + _dirtyTableColumnRangeIndex = CPNotFound; + _numberOfHiddenColumns = 0; + _objectValues = { }; + _dataViewsForTableColumns = { }; + _dataViews= []; + _numberOfRows = 0; + _exposedRows = objj_msgSend(CPIndexSet, "indexSet"); + _exposedColumns = objj_msgSend(CPIndexSet, "indexSet"); + _cachedDataViews = { }; + _intercellSpacing = { width:0.0, height:0.0 }; + _rowHeight = 24.0; + _headerView = objj_msgSend(objj_msgSend(CPTableHeaderView, "alloc"), "initWithFrame:", CGRectMake(0, 0, objj_msgSend(self, "bounds").size.width, _rowHeight)); + objj_msgSend(_headerView, "setTableView:", self); + _cornerView = objj_msgSend(objj_msgSend(_CPCornerView, "alloc"), "initWithFrame:", CGRectMake(0, 0, objj_msgSend(CPScroller, "scrollerWidth"), CGRectGetHeight(objj_msgSend(_headerView, "frame")))); + _selectedColumnIndexes = objj_msgSend(CPIndexSet, "indexSet"); + _selectedRowIndexes = objj_msgSend(CPIndexSet, "indexSet"); + _tableDrawView = objj_msgSend(objj_msgSend(_CPTableDrawView, "alloc"), "initWithTableView:", self); + objj_msgSend(_tableDrawView, "setBackgroundColor:", objj_msgSend(CPColor, "yellowColor")); + objj_msgSend(self, "addSubview:", _tableDrawView); + } + return self; +} +}), new objj_method(sel_getUid("setDataSource:"), function $NEWCPTableView__setDataSource_(self, _cmd, aDataSource) +{ with(self) +{ + if (_dataSource === aDataSource) + return; + _dataSource = aDataSource; + _implementedDataSourceMethods = 0; + if (!_dataSource) + return; + if (!objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("numberOfRowsInTableView:"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, objj_msgSend(aDataSource, "description") + " does not implement numberOfRowsInTableView:."); + if (!objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("tableView:objectValueForTableColumn:row:"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, objj_msgSend(aDataSource, "description") + " does not implement tableView:objectValueForTableColumn:row:"); + if (objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("tableView:setObjectValue:forTableColumn:row:"))) + _implementedDataSourceMethods |= CPTableViewDataSource_tableView_setObjectValue_forTableColumn_row_; + if (objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("tableView:setObjectValue:forTableColumn:row:"))) + _implementedDataSourceMethods |= CPTableViewDataSource_tableView_acceptDrop_row_dropOperation_; + if (objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("tableView:namesOfPromisedFilesDroppedAtDestination:forDraggedRowsWithIndexes:"))) + _implementedDataSourceMethods |= CPTableViewDataSource_tableView_namesOfPromisedFilesDroppedAtDestination_forDraggedRowsWithIndexes_; + if (objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("tableView:validateDrop:proposedRow:proposedDropOperation:"))) + _implementedDataSourceMethods |= CPTableViewDataSource_tableView_validateDrop_proposedRow_proposedDropOperation_; + if (objj_msgSend(_dataSource, "respondsToSelector:", sel_getUid("tableView:writeRowsWithIndexes:toPasteboard:"))) + _implementedDataSourceMethods |= CPTableViewDataSource_tableView_writeRowsWithIndexes_toPasteboard_; + objj_msgSend(self, "reloadData"); +} +}), new objj_method(sel_getUid("dataSource"), function $NEWCPTableView__dataSource(self, _cmd) +{ with(self) +{ + return _dataSource; +} +}), new objj_method(sel_getUid("reloadData"), function $NEWCPTableView__reloadData(self, _cmd) +{ with(self) +{ + if (!_dataSource) + return; + _objectValues = { }; + objj_msgSend(self, "noteNumberOfRowsChanged"); +objj_msgSend(self, "_sizeToParent"); + objj_msgSend(self, "layoutSubviews"); +} +}), new objj_method(sel_getUid("setDoubleAction:"), function $NEWCPTableView__setDoubleAction_(self, _cmd, anAction) +{ with(self) +{ + _doubleAction = anAction; +} +}), new objj_method(sel_getUid("doubleAction"), function $NEWCPTableView__doubleAction(self, _cmd) +{ with(self) +{ + return _doubleAction; +} +}), new objj_method(sel_getUid("setAllowsColumnReordering:"), function $NEWCPTableView__setAllowsColumnReordering_(self, _cmd, shouldAllowColumnReordering) +{ with(self) +{ + _allowsColumnReordering = !!shouldAllowColumnReordering; +} +}), new objj_method(sel_getUid("allowsColumnReordering"), function $NEWCPTableView__allowsColumnReordering(self, _cmd) +{ with(self) +{ + return _allowsColumnReordering; +} +}), new objj_method(sel_getUid("setAllowsColumnResizing:"), function $NEWCPTableView__setAllowsColumnResizing_(self, _cmd, shouldAllowColumnResizing) +{ with(self) +{ + _allowsColumnResizing = !!shouldAllowColumnResizing; +} +}), new objj_method(sel_getUid("allowsColumnResizing"), function $NEWCPTableView__allowsColumnResizing(self, _cmd) +{ with(self) +{ + return _allowsColumnResizing; +} +}), new objj_method(sel_getUid("setAllowsMultipleSelection:"), function $NEWCPTableView__setAllowsMultipleSelection_(self, _cmd, shouldAllowMultipleSelection) +{ with(self) +{ + _allowsMultipleSelection = !!shouldAllowMultipleSelection; +} +}), new objj_method(sel_getUid("allowsMultipleSelection"), function $NEWCPTableView__allowsMultipleSelection(self, _cmd) +{ with(self) +{ + return _allowsMultipleSelection; +} +}), new objj_method(sel_getUid("setAllowsEmptySelection:"), function $NEWCPTableView__setAllowsEmptySelection_(self, _cmd, shouldAllowEmptySelection) +{ with(self) +{ + _allowsEmptySelection = !!shouldAllowEmptySelection; +} +}), new objj_method(sel_getUid("allowsEmptySelection"), function $NEWCPTableView__allowsEmptySelection(self, _cmd) +{ with(self) +{ + return _allowsEmptySelection; +} +}), new objj_method(sel_getUid("setAllowsColumnSelection:"), function $NEWCPTableView__setAllowsColumnSelection_(self, _cmd, shouldAllowColumnSelection) +{ with(self) +{ + _allowsColumnSelection = !!shouldAllowColumnSelection; +} +}), new objj_method(sel_getUid("allowsColumnSelection"), function $NEWCPTableView__allowsColumnSelection(self, _cmd) +{ with(self) +{ + return _allowsColumnSelection; +} +}), new objj_method(sel_getUid("setIntercellSpacing:"), function $NEWCPTableView__setIntercellSpacing_(self, _cmd, aSize) +{ with(self) +{ + if ((_intercellSpacing.width == aSize.width && _intercellSpacing.height == aSize.height)) + return; + _intercellSpacing = { width:aSize.width, height:aSize.height }; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("setThemeState:"), function $NEWCPTableView__setThemeState_(self, _cmd, astae) +{ with(self) +{ +} +}), new objj_method(sel_getUid("intercellSpacing"), function $NEWCPTableView__intercellSpacing(self, _cmd) +{ with(self) +{ + return { width:_intercellSpacing.width, height:_intercellSpacing.height }; +} +}), new objj_method(sel_getUid("setRowHeight:"), function $NEWCPTableView__setRowHeight_(self, _cmd, aRowHeight) +{ with(self) +{ + aRowHeight = +aRowHeight; + if (_rowHeight === aRowHeight) + return; + _rowHeight = aRowHeight; + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("rowHeight"), function $NEWCPTableView__rowHeight(self, _cmd) +{ with(self) +{ + return _rowHeight; +} +}), new objj_method(sel_getUid("addTableColumn:"), function $NEWCPTableView__addTableColumn_(self, _cmd, aTableColumn) +{ with(self) +{ + objj_msgSend(_tableColumns, "addObject:", aTableColumn); + objj_msgSend(aTableColumn, "setTableView:", self); + if (_dirtyTableColumnRangeIndex < 0) + _dirtyTableColumnRangeIndex = (_tableColumns.length) - 1; + else + _dirtyTableColumnRangeIndex = MIN((_tableColumns.length) - 1, _dirtyTableColumnRangeIndex); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("removeTableColumn:"), function $NEWCPTableView__removeTableColumn_(self, _cmd, aTableColumn) +{ with(self) +{ + if (objj_msgSend(aTableColumn, "tableView") !== self) + return; + var index = objj_msgSend(_tableColumns, "indeOfObjectIdenticalTo:", aTableColumn); + if (index === CPNotFound) + return; + objj_msgSend(aTableColumn, "setTableView:", nil); + objj_msgSend(_tableColumns, "removeObjectAtIndex:", index); + var tableColumnUID = objj_msgSend(aTableColumn, "UID"); + if (_objectValues[tableColumnUID]) + _objectValues[tableColumnUID] = nil; + if (_dirtyTableColumnRangeIndex < 0) + _dirtyTableColumnRangeIndex = index; + else + _dirtyTableColumnRangeIndex = MIN(index, _dirtyTableColumnRangeIndex); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("moveColumn:toColumn:"), function $NEWCPTableView__moveColumn_toColumn_(self, _cmd, fromIndex, toIndex) +{ with(self) +{ + fromIndex = +fromIndex; + toIndex = +toIndex; + if (fromIndex === toIndex) + return; + if (_dirtyTableColumnRangeIndex < 0) + _dirtyTableColumnRangeIndex = MIN(fromIndex, toIndex); + else + _dirtyTableColumnRangeIndex = MIN(fromIndex, toIndex, _dirtyTableColumnRangeIndex); + if (toIndex > fromIndex) + --toIndex; + var tableColumn = _tableColumns[fromIndex]; + objj_msgSend(_tableColumns, "removeObjectAtIndex:", fromIndex); + objj_msgSend(_tableColumns, "insertObject:atIndex:", tableColumn, toIndex); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("tableColumns"), function $NEWCPTableView__tableColumns(self, _cmd) +{ with(self) +{ + return _tableColumns; +} +}), new objj_method(sel_getUid("columnWithIdentifier:"), function $NEWCPTableView__columnWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + var index = 0, + count = (_tableColumns.length); + for (; index < count; ++index) + if (objj_msgSend(_tableColumns, "identifier") === anIdentifier) + return index; + return CPNotFound; +} +}), new objj_method(sel_getUid("tableColumnWithIdentifier:"), function $NEWCPTableView__tableColumnWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + var index = objj_msgSend(self, "columnWithIdentifier:", anIdentifier); + if (index === CPNotFound) + return nil; + return _tableColumns[index]; +} +}), new objj_method(sel_getUid("selectColumnIndexes:byExtendingSelection:"), function $NEWCPTableView__selectColumnIndexes_byExtendingSelection_(self, _cmd, columns, shouldExtendSelection) +{ with(self) +{ + _selectedRowIndexes = objj_msgSend(CPIndexSet, "indexSet"); + if (shouldExtendSelection) + objj_msgSend(_selectedColumnIndexes, "addIndexes:", columns); + else + _selectedColumnIndexes = objj_msgSend(columns, "copy"); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("selectRowIndexes:byExtendingSelection:"), function $NEWCPTableView__selectRowIndexes_byExtendingSelection_(self, _cmd, rows, shouldExtendSelection) +{ with(self) +{ + _selectedColumnIndexes = objj_msgSend(CPIndexSet, "indexSet"); + if (shouldExtendSelection) + objj_msgSend(_selectedRowIndexes, "addIndexes:", rows); + else + _selectedRowIndexes = objj_msgSend(rows, "copy"); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("selectedColumnIndexes"), function $NEWCPTableView__selectedColumnIndexes(self, _cmd) +{ with(self) +{ + return _selectedColumnIndexes; +} +}), new objj_method(sel_getUid("selectedRowIndexes"), function $NEWCPTableView__selectedRowIndexes(self, _cmd) +{ with(self) +{ + return _selectedRowIndexes; +} +}), new objj_method(sel_getUid("deselectColumn:"), function $NEWCPTableView__deselectColumn_(self, _cmd, aColumn) +{ with(self) +{ + objj_msgSend(_selectedColumnIndexes, "removeIndex:", aColumn); +} +}), new objj_method(sel_getUid("deselectRow:"), function $NEWCPTableView__deselectRow_(self, _cmd, aRow) +{ with(self) +{ + objj_msgSend(_selectedRowIndexes, "removeIndex:", aRow); +} +}), new objj_method(sel_getUid("numberOfSelectedColumns"), function $NEWCPTableView__numberOfSelectedColumns(self, _cmd) +{ with(self) +{ + return objj_msgSend(_selectedColumnIndexes, "count"); +} +}), new objj_method(sel_getUid("numberOfSelectedRows"), function $NEWCPTableView__numberOfSelectedRows(self, _cmd) +{ with(self) +{ + return objj_msgSend(_selectedRowIndexes, "count"); +} +}), new objj_method(sel_getUid("isColumnSelected:"), function $NEWCPTableView__isColumnSelected_(self, _cmd, aColumn) +{ with(self) +{ + return objj_msgSend(_selectedColumnIndexes, "containsIndex:", aColumn); +} +}), new objj_method(sel_getUid("isRowSelected:"), function $NEWCPTableView__isRowSelected_(self, _cmd, aRow) +{ with(self) +{ + return objj_msgSend(_selectedRowIndexes, "containsIndex:", aRow); +} +}), new objj_method(sel_getUid("numberOfColumns"), function $NEWCPTableView__numberOfColumns(self, _cmd) +{ with(self) +{ + return (_tableColumns.length); +} +}), new objj_method(sel_getUid("numberOfRows"), function $NEWCPTableView__numberOfRows(self, _cmd) +{ with(self) +{ + if (!_dataSource) + return 0; + return objj_msgSend(_dataSource, "numberOfRowsInTableView:", self); +} +}), new objj_method(sel_getUid("cornerView"), function $NEWCPTableView__cornerView(self, _cmd) +{ with(self) +{ + return _cornerView; +} +}), new objj_method(sel_getUid("setCornerView:"), function $NEWCPTableView__setCornerView_(self, _cmd, aView) +{ with(self) +{ + _cornerView = aView; +} +}), new objj_method(sel_getUid("headerView"), function $NEWCPTableView__headerView(self, _cmd) +{ with(self) +{ + return _headerView; +} +}), new objj_method(sel_getUid("setHeaderView:"), function $NEWCPTableView__setHeaderView_(self, _cmd, aHeaderView) +{ with(self) +{ + _headerView = aHeaderView; + objj_msgSend(_headerView, "setTableView:", self); +} +}), new objj_method(sel_getUid("_recalculateTableColumnRanges"), function $NEWCPTableView___recalculateTableColumnRanges(self, _cmd) +{ with(self) +{ + if (_dirtyTableColumnRangeIndex < 0) + return; + var index = _dirtyTableColumnRangeIndex, + count = (_tableColumns.length), + x = index === 0 ? 0.0 : CPMaxRange(_tableColumnRanges[index - 1]); + for (; index < count; ++index) + { + var tableColumn = _tableColumns[index]; + if (objj_msgSend(tableColumn, "isHidden")) + _tableColumnRanges[index] = CPMakeRange(x, 0.0); + else + { + var width = objj_msgSend(_tableColumns[index], "width"); + _tableColumnRanges[index] = CPMakeRange(x, width); + x += width; + } + } + _tableColumnRanges.length = count; + _dirtyTableColumnRangeIndex = CPNotFound; +} +}), new objj_method(sel_getUid("rectOfColumn:"), function $NEWCPTableView__rectOfColumn_(self, _cmd, aColumnIndex) +{ with(self) +{ + aColumnIndex = +aColumnIndex; + if (aColumnIndex < 0 || aColumnIndex >= (_tableColumns.length)) + return { origin: { x:0.0, y:0.0 }, size: { width:0.0, height:0.0 } }; + if (_dirtyTableColumnRangeIndex !== CPNotFound) + objj_msgSend(self, "_recalculateTableColumnRanges"); + var range = _tableColumnRanges[aColumnIndex]; + return { origin: { x:range.location, y:0.0 }, size: { width:range.length, height:CGRectGetHeight(objj_msgSend(self, "bounds")) } }; +} +}), new objj_method(sel_getUid("rectOfRow:"), function $NEWCPTableView__rectOfRow_(self, _cmd, aRowIndex) +{ with(self) +{ + if (NO) + return NULL; + return { origin: { x:0.0, y:(aRowIndex * (_rowHeight + _intercellSpacing.height)) }, size: { width:(objj_msgSend(self, "bounds").size.width), height:_rowHeight } }; +} +}), new objj_method(sel_getUid("rowsInRect:"), function $NEWCPTableView__rowsInRect_(self, _cmd, aRect) +{ with(self) +{ + var bounds = nil, + firstRow = objj_msgSend(self, "rowAtPoint:", aRect.origin), + lastRow = objj_msgSend(self, "rowAtPoint:", { x:0.0, y:(aRect.origin.y + aRect.size.height) }); + if (firstRow < 0) + { + bounds = objj_msgSend(self, "bounds"); + if ((aRect.origin.y) < (bounds.origin.y)) + firstRow = 0; + else + firstRow = _numberOfRows - 1; + } + if (lastRow < 0) + { + if (!bounds) + bounds = objj_msgSend(self, "bounds"); + if ((aRect.origin.y + aRect.size.height) < (bounds.origin.y)) + lastRow = 0; + else + lastRow = _numberOfRows - 1; + } + return CPMakeRange(firstRow, lastRow - firstRow + 1); +} +}), new objj_method(sel_getUid("columnIndexesInRect:"), function $NEWCPTableView__columnIndexesInRect_(self, _cmd, aRect) +{ with(self) +{ + var column = MAX(0, objj_msgSend(self, "columnAtPoint:", { x:aRect.origin.x, y:0.0 })), + lastColumn = objj_msgSend(self, "columnAtPoint:", { x:(aRect.origin.x + aRect.size.width), y:0.0 }); + if (lastColumn === CPNotFound) + lastColumn = (_tableColumns.length) - 1; + if (_numberOfHiddenColumns <= 0) + return objj_msgSend(CPIndexSet, "indexSetWithIndexesInRange:", CPMakeRange(column, lastColumn - column + 1)); + var indexSet = objj_msgSend(CPIndexSet, "indexSet"); + for (; column <= lastColumn; ++column) + { + var tableColumn = _tableColumns[column]; + if (!objj_msgSend(tableColumn, "isHidden")) + objj_msgSend(indexSet, "addIndex:", column); + } + return indexSet; +} +}), new objj_method(sel_getUid("columnAtPoint:"), function $NEWCPTableView__columnAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var bounds = objj_msgSend(self, "bounds"); + if (!(aPoint.x >= (bounds.origin.x) && aPoint.y >= (bounds.origin.y) && aPoint.x < (bounds.origin.x + bounds.size.width) && aPoint.y < (bounds.origin.y + bounds.size.height))) + return CPNotFound; + if (_dirtyTableColumnRangeIndex !== CPNotFound) + objj_msgSend(self, "_recalculateTableColumnRanges"); + var x = aPoint.x, + low = 0, + high = _tableColumnRanges.length - 1; + while (low <= high) + { + var middle = FLOOR(low + (high - low) / 2), + range = _tableColumnRanges[middle]; + if (x < range.location) + high = middle - 1; + else if (x >= CPMaxRange(range)) + low = middle + 1; + else + { + var numberOfColumns = _tableColumnRanges.length; + while (middle < numberOfColumns && objj_msgSend(_tableColumns[middle], "isHidden")) + ++middle; + if (middle < numberOfColumns) + return middle; + return CPNotFound; + } + } + return CPNotFound; +} +}), new objj_method(sel_getUid("rowAtPoint:"), function $NEWCPTableView__rowAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var y = aPoint.y; + if (NO) + { + } + return FLOOR(y / (_rowHeight + _intercellSpacing.height)); +} +}), new objj_method(sel_getUid("frameOfDataViewAtColumn:row:"), function $NEWCPTableView__frameOfDataViewAtColumn_row_(self, _cmd, aColumnIndex, aRowIndex) +{ with(self) +{ + var tableColumnRange = _tableColumns[aColumnIndex], + rectOfRow = objj_msgSend(self, "rectOfRow:", aRowIndex); + return { origin: { x:tableColumnRange.location, y:(rectOfRow.origin.y) }, size: { width:tableColumnRange.length, height:(rectOfRow.size.height) } }; +} +}), new objj_method(sel_getUid("sizeLastColumnToFit"), function $NEWCPTableView__sizeLastColumnToFit(self, _cmd) +{ with(self) +{ + var superview = objj_msgSend(self, "superview"); + if (!superview) + return; + var superviewSize = objj_msgSend(superview, "bounds").size; + if (_dirtyTableColumnRangeIndex !== CPNotFound) + objj_msgSend(self, "_recalculateTableColumnRanges"); + var count = (_tableColumns.length); + while (count-- && objj_msgSend(_tableColumns[count], "isHidden")) ; + if (count >= 0) + { + var difference = superviewSize.width - CPMaxRange(_tableColumnRanges[count]), + tableColumn = _tableColumns[count]; + objj_msgSend(tableColumn, "setWidth:", MAX(0.0, objj_msgSend(tableColumn, "width") + difference)); + } + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("noteNumberOfRowsChanged"), function $NEWCPTableView__noteNumberOfRowsChanged(self, _cmd) +{ with(self) +{ + _numberOfRows = objj_msgSend(_dataSource, "numberOfRowsInTableView:", self); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("_sizeToParent"), function $NEWCPTableView___sizeToParent(self, _cmd) +{ with(self) +{ + var superviewSize = objj_msgSend(objj_msgSend(self, "superview"), "bounds").size; + if (_dirtyTableColumnRangeIndex !== CPNotFound) + objj_msgSend(self, "_recalculateTableColumnRanges"); + if (_tableColumnRanges.length > 0) + var naturalWidth = CPMaxRange(objj_msgSend(_tableColumnRanges, "lastObject")); + else + var naturalWidth = 0.0; + objj_msgSend(self, "setFrameSize:", { width:MAX(superviewSize.width, naturalWidth), height:MAX(superviewSize.height, (_rowHeight + _intercellSpacing.height) * _numberOfRows) }); +} +}), new objj_method(sel_getUid("setDelegate:"), function $NEWCPTableView__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate === aDelegate) + return; + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (_delegate) + { + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidMove:"))) + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPTableViewColumnDidMoveNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidResize:"))) + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPTableViewColumnDidResizeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionDidChange:"))) + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPTableViewSelectionDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionIsChanging:"))) + objj_msgSend(defaultCenter, "removeObserver:name:object:", _delegate, CPTableViewSelectionIsChangingNotification, self); + } + _delegate = aDelegate; + _implementedDelegateMethods = 0; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("selectionShouldChangeInTableView:"))) + _implementedDelegateMethods |= CPTableViewDelegate_selectionShouldChangeInTableView_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:dataViewForTableColumn:row:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_dataViewForTableColumn_row_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:didClickTableColumn:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_didClickTableColumn_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:didDragTableColumn:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_didDragTableColumn_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:heightOfRow:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_heightOfRow_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:isGroupRow:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_isGroupRow_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:mouseDownInHeaderOfTableColumn:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_mouseDownInHeaderOfTableColumn_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:nextTypeSelectMatchFromRow:toRow:forString:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_nextTypeSelectMatchFromRow_toRow_forString_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:selectionIndexesForProposedSelection:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_selectionIndexesForProposedSelection_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldEditTableColumn:row:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_shouldEditTableColumn_row_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldSelectRow:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_shouldSelectRow_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldSelectTableColumn:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_shouldSelectTableColumn_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldShowViewExpansionForTableColumn:row:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_shouldShowViewExpansionForTableColumn_row_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldTrackView:forTableColumn:row:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_shouldTrackView_forTableColumn_row_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldTypeSelectForEvent:withCurrentSearchString:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_shouldTypeSelectForEvent_withCurrentSearchString_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:toolTipForView:rect:tableColumn:row:mouseLocation:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_toolTipForView_rect_tableColumn_row_mouseLocation_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:typeSelectStringForTableColumn:row:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_typeSelectStringForTableColumn_row_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:willDisplayView:forTableColumn:row:"))) + _implementedDelegateMethods |= CPTableViewDelegate_tableView_willDisplayView_forTableColumn_row_; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidMove:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewColumnDidMove:"), CPTableViewColumnDidMoveNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidResize:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewColumnDidMove:"), CPTableViewColumnDidResizeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionDidChange:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewSelectionDidChange:"), CPTableViewSelectionDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionIsChanging:"))) + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewSelectionIsChanging:"), CPTableViewSelectionIsChangingNotification, self); +} +}), new objj_method(sel_getUid("delegate"), function $NEWCPTableView__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("_objectValueForTableColumn:row:"), function $NEWCPTableView___objectValueForTableColumn_row_(self, _cmd, aTableColumn, aRowIndex) +{ with(self) +{ + var tableColumnUID = objj_msgSend(aTableColumn, "UID"), + tableColumnObjectValues = _objectValues[tableColumnUID]; + if (!tableColumnObjectValues) + { + tableColumnObjectValues = []; + _objectValues[tableColumnUID] = tableColumnObjectValues; + } + var objectValue = tableColumnObjectValues[aRowIndex]; + if (objectValue === undefined) + { + objectValue = objj_msgSend(_dataSource, "tableView:objectValueForTableColumn:row:", self, aTableColumn, aRowIndex); + tableColumnObjectValues[aRowIndex] = objectValue; + } + return objectValue; +} +}), new objj_method(sel_getUid("_exposedRect"), function $NEWCPTableView___exposedRect(self, _cmd) +{ with(self) +{ + var superview = objj_msgSend(self, "superview"); + if (!objj_msgSend(superview, "isKindOfClass:", objj_msgSend(CPClipView, "class"))) + return objj_msgSend(self, "bounds"); + return objj_msgSend(self, "convertRect:fromView:", CGRectIntersection(objj_msgSend(superview, "bounds"), objj_msgSend(self, "frame")), superview); +} +}), new objj_method(sel_getUid("load"), function $NEWCPTableView__load(self, _cmd) +{ with(self) +{ + if (!_dataSource) + { + return; + } + if (window.console && window.console.profile) + console.profile("cell-load"); + var exposedRect = objj_msgSend(self, "_exposedRect"), + exposedRows = objj_msgSend(CPIndexSet, "indexSetWithIndexesInRange:", objj_msgSend(self, "rowsInRect:", exposedRect)), + exposedColumns = objj_msgSend(self, "columnIndexesInRect:", exposedRect), + obscuredRows = objj_msgSend(_exposedRows, "copy"), + obscuredColumns = objj_msgSend(_exposedColumns, "copy"); + objj_msgSend(obscuredRows, "removeIndexes:", exposedRows); + objj_msgSend(obscuredColumns, "removeIndexes:", exposedColumns); + var newlyExposedRows = objj_msgSend(exposedRows, "copy"), + newlyExposedColumns = objj_msgSend(exposedColumns, "copy"); + objj_msgSend(newlyExposedRows, "removeIndexes:", _exposedRows); + objj_msgSend(newlyExposedColumns, "removeIndexes:", _exposedColumns); + var previouslyExposedRows = objj_msgSend(exposedRows, "copy"), + previouslyExposedColumns = objj_msgSend(exposedColumns, "copy"); + objj_msgSend(previouslyExposedRows, "removeIndexes:", newlyExposedRows); + objj_msgSend(previouslyExposedColumns, "removeIndexes:", newlyExposedColumns); + objj_msgSend(self, "_unloadDataViewsInRows:columns:", previouslyExposedRows, obscuredColumns); + objj_msgSend(self, "_unloadDataViewsInRows:columns:", obscuredRows, previouslyExposedColumns); + objj_msgSend(self, "_unloadDataViewsInRows:columns:", obscuredRows, obscuredColumns); + objj_msgSend(self, "_loadDataViewsInRows:columns:", previouslyExposedRows, newlyExposedColumns); + objj_msgSend(self, "_loadDataViewsInRows:columns:", newlyExposedRows, previouslyExposedColumns); + objj_msgSend(self, "_loadDataViewsInRows:columns:", newlyExposedRows, newlyExposedColumns); + _exposedRows = exposedRows; + _exposedColumns = exposedColumns; + objj_msgSend(_tableDrawView, "setFrame:", exposedRect); + objj_msgSend(_tableDrawView, "display"); + if (window.console && window.console.profile) + console.profileEnd("cell-load"); +} +}), new objj_method(sel_getUid("_unloadDataViewsInRows:columns:"), function $NEWCPTableView___unloadDataViewsInRows_columns_(self, _cmd, rows, columns) +{ with(self) +{ + if (!objj_msgSend(rows, "count") || !objj_msgSend(columns, "count")) + return; + var rowArray = [], + columnArray = []; + objj_msgSend(rows, "getIndexes:maxCount:inIndexRange:", rowArray, -1, nil); + objj_msgSend(columns, "getIndexes:maxCount:inIndexRange:", columnArray, -1, nil); + var columnIndex = 0, + columnsCount = columnArray.length; + for (; columnIndex < columnsCount; ++columnIndex) + { + var column = columnArray[columnIndex], + tableColumn = _tableColumns[column], + tableColumnUID = objj_msgSend(tableColumn, "UID"); + var rowIndex = 0, + rowsCount = rowArray.length; + for (; rowIndex < rowsCount; ++rowIndex) + { + var row = rowArray[rowIndex], + dataView = _dataViewsForTableColumns[tableColumnUID][row]; + _dataViewsForTableColumns[tableColumnUID][row] = nil; +if (!_cachedDataViews[dataView.identifier]) +_cachedDataViews[dataView.identifier] = [dataView]; +else +_cachedDataViews[dataView.identifier].push(dataView); + } + } +} +}), new objj_method(sel_getUid("_loadDataViewsInRows:columns:"), function $NEWCPTableView___loadDataViewsInRows_columns_(self, _cmd, rows, columns) +{ with(self) +{ + if (!objj_msgSend(rows, "count") || !objj_msgSend(columns, "count")) + return; + var rowArray = [], + rowRects = [], + columnArray = []; + objj_msgSend(rows, "getIndexes:maxCount:inIndexRange:", rowArray, -1, nil); + objj_msgSend(columns, "getIndexes:maxCount:inIndexRange:", columnArray, -1, nil); + var columnIndex = 0, + columnsCount = columnArray.length; + for (; columnIndex < columnsCount; ++columnIndex) + { + var column = columnArray[columnIndex], + tableColumn = _tableColumns[column], + tableColumnUID = objj_msgSend(tableColumn, "UID"), + tableColumnRange = _tableColumnRanges[column]; + if (!_dataViewsForTableColumns[tableColumnUID]) + _dataViewsForTableColumns[tableColumnUID] = []; + var rowIndex = 0, + rowsCount = rowArray.length; + for (; rowIndex < rowsCount; ++rowIndex) + { + var row = rowArray[rowIndex], + dataView = objj_msgSend(tableColumn, "_newDataViewForRow:", row), + rectOfRow = rowRects[row]; + if (!rectOfRow) + rectOfRow = rowRects[row] = objj_msgSend(self, "rectOfRow:", row); + objj_msgSend(dataView, "setFrame:", { origin: { x:tableColumnRange.location, y:(rectOfRow.origin.y) }, size: { width:tableColumnRange.length, height:(rectOfRow.size.height) } }); + objj_msgSend(dataView, "setObjectValue:", objj_msgSend(self, "_objectValueForTableColumn:row:", tableColumn, row)); + if (objj_msgSend(dataView, "superview") !== self) + objj_msgSend(self, "addSubview:", dataView); + _dataViewsForTableColumns[tableColumnUID][row] = dataView; + } + } +} +}), new objj_method(sel_getUid("setFrameSize:"), function $NEWCPTableView__setFrameSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "setFrameSize:", aSize); + objj_msgSend(_headerView, "setFrameSize:", CGSizeMake(aSize.width, objj_msgSend(_headerView, "frame").size.height)); +} +}), new objj_method(sel_getUid("_drawRect:"), function $NEWCPTableView___drawRect_(self, _cmd, aRect) +{ with(self) +{ + objj_msgSend(self, "highlightSelectionInClipRect:", objj_msgSend(self, "_exposedRect")); +} +}), new objj_method(sel_getUid("highlightSelectionInClipRect:"), function $NEWCPTableView__highlightSelectionInClipRect_(self, _cmd, aRect) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPColor, "greenColor"), "set"); + var context = objj_msgSend(objj_msgSend(CPGraphicsContext, "currentContext"), "graphicsPort"); + if (objj_msgSend(_selectedRowIndexes, "count") >= 1) + { + var exposedRows = objj_msgSend(CPIndexSet, "indexSetWithIndexesInRange:", objj_msgSend(self, "rowsInRect:", aRect)), + exposedRange = CPMakeRange(objj_msgSend(exposedRows, "firstIndex"), objj_msgSend(exposedRows, "lastIndex") - objj_msgSend(exposedRows, "firstIndex") + 1), + rowArray = []; + objj_msgSend(_selectedRowIndexes, "getIndexes:maxCount:inIndexRange:", rowArray, -1, exposedRange); + var rowArrayIndex = 0, + rowArrayCount = rowArray.length; + for (; rowArrayIndex < rowArrayCount; ++rowArrayIndex) + CGContextFillRect(context, objj_msgSend(self, "rectOfRow:", rowArray[rowArrayIndex])); + } + else + { + } +} +}), new objj_method(sel_getUid("layoutSubviews"), function $NEWCPTableView__layoutSubviews(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "load"); +} +}), new objj_method(sel_getUid("viewWillMoveToSuperview:"), function $NEWCPTableView__viewWillMoveToSuperview_(self, _cmd, aView) +{ with(self) +{ + var superview = objj_msgSend(self, "superview"), + defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (superview) + { + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPViewFrameDidChangeNotification, superview); + objj_msgSend(defaultCenter, "removeObserver:name:object:", self, CPViewBoundsDidChangeNotification, superview); + } + if (aView) + { + objj_msgSend(aView, "setPostsFrameChangedNotifications:", YES); + objj_msgSend(aView, "setPostsBoundsChangedNotifications:", YES); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("superviewFrameChanged:"), CPViewFrameDidChangeNotification, aView); + objj_msgSend(defaultCenter, "addObserver:selector:name:object:", self, sel_getUid("superviewBoundsChanged:"), CPViewBoundsDidChangeNotification, aView); + } +} +}), new objj_method(sel_getUid("superviewBoundsChanged:"), function $NEWCPTableView__superviewBoundsChanged_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("superviewFrameChanged:"), function $NEWCPTableView__superviewFrameChanged_(self, _cmd, aNotification) +{ with(self) +{ +} +}), new objj_method(sel_getUid("startTrackingAt:"), function $NEWCPTableView__startTrackingAt_(self, _cmd, aPoint) +{ with(self) +{ + var row = objj_msgSend(self, "rowAtPoint:", aPoint); + if (objj_msgSend(self, "mouseDownFlags") & CPShiftKeyMask) + _selectionAnchor = (ABS(objj_msgSend(_selectedRowIndexes, "firstIndex") - row) < ABS(objj_msgSend(_selectedRowIndexes, "lastIndex") - row)) ? + objj_msgSend(_selectedRowIndexes, "firstIndex") : objj_msgSend(_selectedRowIndexes, "lastIndex"); + else + _selectionAnchor = row; + objj_msgSend(self, "_updateSelectionWithMouseAtRow:", row); + return YES; +} +}), new objj_method(sel_getUid("continueTracking:at:"), function $NEWCPTableView__continueTracking_at_(self, _cmd, lastPoint, aPoint) +{ with(self) +{ + objj_msgSend(self, "_updateSelectionWithMouseAtRow:", objj_msgSend(self, "rowAtPoint:", aPoint)); + return YES; +} +}), new objj_method(sel_getUid("stopTracking:at:mouseIsUp:"), function $NEWCPTableView__stopTracking_at_mouseIsUp_(self, _cmd, lastPoint, aPoint, mouseIsUp) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_updateSelectionWithMouseAtRow:"), function $NEWCPTableView___updateSelectionWithMouseAtRow_(self, _cmd, aRow) +{ with(self) +{ + if (objj_msgSend(self, "mouseDownFlags") & (CPCommandKeyMask | CPControlKeyMask | CPAlternateKeyMask)) + { + if (objj_msgSend(_selectedRowIndexes, "containsIndex:", aRow)) + { + newSelection = objj_msgSend(_selectedRowIndexes, "copy"); + objj_msgSend(newSelection, "removeIndex:", aRow); + } + else if (_allowsMultipleSelection) + { + newSelection = objj_msgSend(_selectedRowIndexes, "copy"); + objj_msgSend(newSelection, "addIndex:", aRow); + } + else + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndex:", aRow); + } + else if (_allowsMultipleSelection) + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndexesInRange:", CPMakeRange(MIN(aRow, _selectionStartRow), ABS(aRow - _selectionStartRow) + 1)); + else if (aRow >= 0 && aRow < _numberOfRows) + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndex:", aRow); + else + newSelection = objj_msgSend(CPIndexSet, "indexSet"); + if (objj_msgSend(newSelection, "isEqualToIndexSet:", _selectedRowIndexes)) + return; + if (_implementedDelegateMethods & CPTableViewDelegate_selectionShouldChangeInTableView_ && + !objj_msgSend(_delegate, "selectionShouldChangeInTableView:", self)) + return; + if (_implementedDelegateMethods & CPTableViewDelegate_tableView_selectionIndexesForProposedSelection_) + newSelection = objj_msgSend(_delegate, "tableView:selectionIndexesForProposedSelection:", self, newSelection); + if (_implementedDelegateMethods & CPTableViewDelegate_tableView_shouldSelectRow_) + { + var indexArray = []; + objj_msgSend(newSelection, "getIndexes:maxCount:inIndexRange:", indexArray, -1, nil); + var indexCount = indexArray.length; + while (indexCount--) + { + var index = indexArray[indexCount]; + if (!objj_msgSend(_delegate, "tableView:shouldSelectRow:", self, index)) + objj_msgSend(newSelection, "removeIndex:", index); + } + } + if (!_allowsEmptySelection && objj_msgSend(newSelection, "count") === 0) + return; + if (objj_msgSend(newSelection, "isEqualToIndexSet:", _selectedRowIndexes)) + return; + objj_msgSend(self, "selectRowIndexes:byExtendingSelection:", newSelection, NO); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionIsChangingNotification, self, nil); +} +})]); +} + +p;18;OLDCPTableColumn.jI;23;Foundation/Foundation.jc;10254; +CPTableColumnNoResizing = 0; +CPTableColumnAutoresizingMask = 1; +CPTableColumnUserResizingMask = 2; +{var the_class = objj_allocateClassPair(CPObject, "CPTableColumn"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_identifier"), new objj_ivar("_headerView"), new objj_ivar("_tableView"), new objj_ivar("_width"), new objj_ivar("_minWidth"), new objj_ivar("_maxWidth"), new objj_ivar("_resizingMask"), new objj_ivar("_dataView"), new objj_ivar("_dataViewData"), new objj_ivar("_dataViewForView"), new objj_ivar("_purgableInfosForDataView")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithIdentifier:"), function $CPTableColumn__initWithIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + objj_msgSend(self, "_init"); + _identifier = anIdentifier; + _width = 40.0; + _minWidth = 8.0; + _maxWidth = 1000.0; + var dataView = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMakeZero()); + objj_msgSend(dataView, "setValue:forThemeAttribute:inState:", objj_msgSend(CPColor, "whiteColor"), "text-color", CPThemeStateHighlighted); + objj_msgSend(self, "setDataView:", dataView); + _headerView = objj_msgSend(objj_msgSend(CPTextField, "alloc"), "initWithFrame:", CPRectMakeZero()); + objj_msgSend(_headerView, "setBackgroundColor:", objj_msgSend(CPColor, "greenColor")); + } + return self; +} +}), new objj_method(sel_getUid("_init"), function $CPTableColumn___init(self, _cmd) +{ with(self) +{ + _dataViewData = {}; + _dataViewForView = {}; + _purgableInfosForDataView = {}; +} +}), new objj_method(sel_getUid("setIdentifier:"), function $CPTableColumn__setIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + _identifier = anIdentifier; +} +}), new objj_method(sel_getUid("identifier"), function $CPTableColumn__identifier(self, _cmd) +{ with(self) +{ + return _identifier; +} +}), new objj_method(sel_getUid("setTableView:"), function $CPTableColumn__setTableView_(self, _cmd, aTableView) +{ with(self) +{ + _tableView = aTableView; +} +}), new objj_method(sel_getUid("tableView"), function $CPTableColumn__tableView(self, _cmd) +{ with(self) +{ + return _tableView; +} +}), new objj_method(sel_getUid("setWidth:"), function $CPTableColumn__setWidth_(self, _cmd, aWidth) +{ with(self) +{ + _width = aWidth; +} +}), new objj_method(sel_getUid("width"), function $CPTableColumn__width(self, _cmd) +{ with(self) +{ + return _width; +} +}), new objj_method(sel_getUid("setMinWidth:"), function $CPTableColumn__setMinWidth_(self, _cmd, aWidth) +{ with(self) +{ + if (_width < (_minWidth = aWidth)) + objj_msgSend(self, "setWidth:", _minWidth); +} +}), new objj_method(sel_getUid("minWidth"), function $CPTableColumn__minWidth(self, _cmd) +{ with(self) +{ + return _minWidth; +} +}), new objj_method(sel_getUid("setMaxWidth:"), function $CPTableColumn__setMaxWidth_(self, _cmd, aWidth) +{ with(self) +{ + if (_width > (_maxmimumWidth = aWidth)) + objj_msgSend(self, "setWidth:", _maxWidth); +} +}), new objj_method(sel_getUid("setResizingMask:"), function $CPTableColumn__setResizingMask_(self, _cmd, aMask) +{ with(self) +{ + _resizingMask = aMask; +} +}), new objj_method(sel_getUid("resizingMask"), function $CPTableColumn__resizingMask(self, _cmd) +{ with(self) +{ + return _resizingMask; +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPTableColumn__sizeToFit(self, _cmd) +{ with(self) +{ + var width = CPRectGetWidth(objj_msgSend(_headerView, "frame")); + if (width < _minWidth) + objj_msgSend(self, "setMinWidth:", width); + else if (width > _maxWidth) + objj_msgSend(self, "setMaxWidth:", width) + if (_width != width) + objj_msgSend(self, "setWidth:", width); +} +}), new objj_method(sel_getUid("setEditable:"), function $CPTableColumn__setEditable_(self, _cmd, aFlag) +{ with(self) +{ + _isEditable = aFlag; +} +}), new objj_method(sel_getUid("isEditable"), function $CPTableColumn__isEditable(self, _cmd) +{ with(self) +{ + return _isEditable; +} +}), new objj_method(sel_getUid("setHeaderView:"), function $CPTableColumn__setHeaderView_(self, _cmd, aView) +{ with(self) +{ + _headerView = aView; +} +}), new objj_method(sel_getUid("headerView"), function $CPTableColumn__headerView(self, _cmd) +{ with(self) +{ + return _headerView; +} +}), new objj_method(sel_getUid("setDataCell:"), function $CPTableColumn__setDataCell_(self, _cmd, aView) +{ with(self) +{ + objj_msgSend(self, "setDataView:", aView); +} +}), new objj_method(sel_getUid("setDataView:"), function $CPTableColumn__setDataView_(self, _cmd, aView) +{ with(self) +{ + if (_dataView) + _dataViewData[objj_msgSend(_dataView, "UID")] = nil; + _dataView = aView; + _dataViewData[objj_msgSend(aView, "UID")] = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", aView); +} +}), new objj_method(sel_getUid("dataCell"), function $CPTableColumn__dataCell(self, _cmd) +{ with(self) +{ + return _dataView; +} +}), new objj_method(sel_getUid("dataView"), function $CPTableColumn__dataView(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "dataCell"); +} +}), new objj_method(sel_getUid("dataCellForRow:"), function $CPTableColumn__dataCellForRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return objj_msgSend(self, "dataView"); +} +}), new objj_method(sel_getUid("dataViewForRow:"), function $CPTableColumn__dataViewForRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return objj_msgSend(self, "dataCellForRow:", aRowIndex); +} +}), new objj_method(sel_getUid("_markView:inRow:asPurgable:"), function $CPTableColumn___markView_inRow_asPurgable_(self, _cmd, aView, aRow, isPurgable) +{ with(self) +{ + var viewUID = objj_msgSend(aView, "UID"), + dataViewUID = objj_msgSend(_dataViewForView[viewUID], "UID"); + if (!_purgableInfosForDataView[dataViewUID]) + { + if (!isPurgable) + return; + _purgableInfosForDataView[dataViewUID] = {}; + } + if (!isPurgable) { + if (_purgableInfosForDataView[dataViewUID][viewUID]) + CPLog.warn("removing unpurgable " + _purgableInfosForDataView[dataViewUID][viewUID]); + delete _purgableInfosForDataView[dataViewUID][viewUID]; + } + else + _purgableInfosForDataView[dataViewUID][viewUID] = { view:(aView), row:(aRow) }; +} +}), new objj_method(sel_getUid("_newDataViewForRow:avoidingRows:"), function $CPTableColumn___newDataViewForRow_avoidingRows_(self, _cmd, aRowIndex, rows) +{ with(self) +{ + var view = objj_msgSend(self, "dataViewForRow:", aRowIndex), + viewUID = objj_msgSend(view, "UID"), + purgableInfos = _purgableInfosForDataView[viewUID]; + if (purgableInfos) + { + for (var key in purgableInfos) + { + var info = purgableInfos[key]; + delete purgableInfos[key]; + return ((info).view); + } + } + if (!_dataViewData[viewUID]) + _dataViewData[viewUID] = objj_msgSend(CPKeyedArchiver, "archivedDataWithRootObject:", view); + var newView = objj_msgSend(CPKeyedUnarchiver, "unarchiveObjectWithData:", _dataViewData[viewUID]); + _dataViewForView[objj_msgSend(newView, "UID")] = view; + CPLog.warn("creating cell: %s", newView); + return newView; +} +}), new objj_method(sel_getUid("_purge"), function $CPTableColumn___purge(self, _cmd) +{ with(self) +{ + for (var viewUID in _purgableInfosForDataView) + { + var purgableInfos = _purgableInfosForDataView[viewUID]; + for (var key in purgableInfos) + { + var view = ((purgableInfos[key]).view); + if (!view) + CPLog.info("key="+key+" view=" + view + " purgableInfos[key]="+purgableInfos[key]) + else if (view._superview) { + objj_msgSend(view, "setHidden:", YES); + } + } + } +} +})]); +} +var CPTableColumnIdentifierKey = "CPTableColumnIdentifierKey", + CPTableColumnHeaderViewKey = "CPTableColumnHeaderViewKey", + CPTableColumnDataViewKey = "CPTableColumnDataViewKey", + CPTableColumnWidthKey = "CPTableColumnWidthKey", + CPTableColumnMinWidthKey = "CPTableColumnMinWidthKey", + CPTableColumnMaxWidthKey = "CPTableColumnMaxWidthKey", + CPTableColumnResizingMaskKey = "CPTableColumnResizingMaskKey"; +{ +var the_class = objj_getClass("CPTableColumn") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTableColumn\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTableColumn__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(self, "_init"); + _identifier = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableColumnIdentifierKey); + objj_msgSend(self, "setHeaderView:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTableColumnHeaderViewKey)); + objj_msgSend(self, "setDataView:", objj_msgSend(aCoder, "decodeObjectForKey:", CPTableColumnDataViewKey)); + _width = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableColumnWidthKey); + _minWidth = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableColumnMinWidthKey); + _maxWidth = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableColumnMaxWidthKey); + _resizingMask = objj_msgSend(aCoder, "decodeBoolForKey:", CPTableColumnResizingMaskKey); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTableColumn__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _identifier, CPTableColumnIdentifierKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _headerView, CPTableColumnHeaderViewKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _dataView, CPTableColumnDataViewKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _width, CPTableColumnWidthKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _minWidth, CPTableColumnMinWidthKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _maxWidth, CPTableColumnMaxWidthKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _resizingMask, CPTableColumnResizingMaskKey); +} +})]); +} + +p;16;OLDCPTableView.ji;11;CPControl.ji;15;CPTableColumn.ji;9;CPColor.ji;13;CPTextField.jc;40333; +CPTableViewColumnDidMoveNotification = "CPTableViewColumnDidMoveNotification"; +CPTableViewColumnDidResizeNotification = "CPTableViewColumnDidResizeNotification"; +CPTableViewSelectionDidChangeNotification = "CPTableViewSelectionDidChangeNotification"; +CPTableViewSelectionIsChangingNotification = "CPTableViewSelectionIsChangingNotification"; +var _CPTableViewWillDisplayCellSelector = 1 << 0, + _CPTableViewShouldSelectRowSelector = 1 << 1, + _CPTableViewShouldSelectTableColumnSelector = 1 << 2, + _CPTableViewSelectionShouldChangeSelector = 1 << 3, + _CPTableViewShouldEditTableColumnSelector = 1 << 4, + _CPTableViewSelectionIndexesForProposedSelectionSelector = 1 << 5, + _CPTableViewHeightOfRowSelector = 1 << 6; +{var the_class = objj_allocateClassPair(CPControl, "CPTableView"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_dataSource"), new objj_ivar("_delegate"), new objj_ivar("_tableColumns"), new objj_ivar("_selectedRowIndexes"), new objj_ivar("_rowHeight"), new objj_ivar("_intercellSpacing"), new objj_ivar("_allowsMultipleSelection"), new objj_ivar("_allowsEmptySelection"), new objj_ivar("_doubleAction"), new objj_ivar("_delegateSelectorsCache"), new objj_ivar("_numberOfRows"), new objj_ivar("_hasVariableHeightRows"), new objj_ivar("_columnHeight"), new objj_ivar("_rowHeights"), new objj_ivar("_rowMinYs"), new objj_ivar("_tableCells"), new objj_ivar("_tableColumnViews"), new objj_ivar("_dataViewCache"), new objj_ivar("_objectValueCache"), new objj_ivar("_visibleRows"), new objj_ivar("_visibleColumns"), new objj_ivar("_populatedRows"), new objj_ivar("_populatedColumns"), new objj_ivar("_previousSelectedRowIndexes"), new objj_ivar("_selectionStartRow"), new objj_ivar("_selectionModifier"), new objj_ivar("_currentlySelected"), new objj_ivar("_selectionViews"), new objj_ivar("_selectionViewsPool"), new objj_ivar("_scrollTimer")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFrame:"), function $CPTableView__initWithFrame_(self, _cmd, aFrame) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithFrame:", aFrame); + if (self) + { + objj_msgSend(self, "_init"); + } + return self; +} +}), new objj_method(sel_getUid("_init"), function $CPTableView___init(self, _cmd) +{ with(self) +{ + _tableColumns = []; + _selectedRowIndexes = objj_msgSend(CPIndexSet, "indexSet"); + _rowHeight = 17.0; + _intercellSpacing = CPSizeMake(3.0, 2.0); + _allowsMultipleSelection = YES; + _allowsEmptySelection = YES; + _tableCells = []; + _tableColumnViews = []; + _dataViewCache = {}; + _objectValueCache = []; + _visibleRows = CPMakeRange(0, 0); + _visibleColumns = CPMakeRange(0, 0); + _rowHeights = []; + _rowMinYs = []; +} +}), new objj_method(sel_getUid("_columnHeight"), function $CPTableView___columnHeight(self, _cmd) +{ with(self) +{ + return _columnHeight; +} +}), new objj_method(sel_getUid("newCellForRow:column:avoidingRows:"), function $CPTableView__newCellForRow_column_avoidingRows_(self, _cmd, aRowIndex, aColumnIndex, rows) +{ with(self) +{ + var dataView = objj_msgSend(_tableColumns[aColumnIndex], "_newDataViewForRow:avoidingRows:", aRowIndex, rows); + objj_msgSend(dataView, "setFrame:", CGRectMake(0.0, (_hasVariableHeightRows ? _rowMinYs[aRowIndex] : (aRowIndex * (_rowHeight + _intercellSpacing.height))), objj_msgSend(_tableColumns[aColumnIndex], "width"), (_hasVariableHeightRows ? _rowHeights[aRowIndex] : _rowHeight))); + if (objj_msgSend(dataView, "respondsToSelector:", sel_getUid("highlight:"))) + objj_msgSend(dataView, "highlight:", objj_msgSend(_selectedRowIndexes, "containsIndex:", aRowIndex)); + if (!_objectValueCache[aColumnIndex]) + _objectValueCache[aColumnIndex] = []; + if (_objectValueCache[aColumnIndex][aRowIndex] === undefined) + _objectValueCache[aColumnIndex][aRowIndex] = objj_msgSend(_dataSource, "tableView:objectValueForTableColumn:row:", self, _tableColumns[aColumnIndex], aRowIndex); + objj_msgSend(dataView, "setObjectValue:", _objectValueCache[aColumnIndex][aRowIndex]); + return dataView; +} +}), new objj_method(sel_getUid("clearCells"), function $CPTableView__clearCells(self, _cmd) +{ with(self) +{ + var columnEnd = CPMaxRange(_visibleColumns), + rowEnd = CPMaxRange(_visibleRows); + for (var column = _visibleColumns.location; column < columnEnd; column++) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column]; + for (var row = _visibleRows.location; row < rowEnd; row++) + { + var cell = tableColumnCells[row]; + if (cell) + { + tableColumnCells[row] = nil; + objj_msgSend(tableColumn, "_markView:inRow:asPurgable:", cell, row, YES); + } + else + { + CPLog.warn("Missing cell? " + row + "," + column); + } + } + } + _visibleColumns = CPMakeRange(0,0); + _visibleRows = CPMakeRange(0,0); +} +}), new objj_method(sel_getUid("loadTableCellsInRect:"), function $CPTableView__loadTableCellsInRect_(self, _cmd, aRect) +{ with(self) +{ + if (!_dataSource) + return; + var rowStart = MAX(0, objj_msgSend(self, "_rowAtY:", CGRectGetMinY(aRect)) - 1), + rowEnd = MIN(_numberOfRows, objj_msgSend(self, "_rowAtY:", CGRectGetMaxY(aRect)) + 1), + visibleRows = CPMakeRange(rowStart, rowEnd - rowStart), + columnStart = MAX(0, objj_msgSend(self, "_columnAtX:", CGRectGetMinX(aRect))), + columnEnd = MIN(_tableColumns.length, objj_msgSend(self, "_columnAtX:", CGRectGetMaxX(aRect)) + 1), + visibleColumns = CPMakeRange(columnStart, columnEnd - columnStart); + if (CPEqualRanges(_visibleRows, visibleRows) && CPEqualRanges(_visibleColumns, visibleColumns)) + return; + var unionVisibleRows = CPUnionRange(_visibleRows, visibleRows), + unionVisibleColumns = CPUnionRange(_visibleColumns, visibleColumns); + if (unionVisibleRows.length * unionVisibleColumns.length <= + (_visibleRows.length * _visibleColumns.length) + (visibleRows.length * visibleColumns.length)) + { + var cEnd = CPMaxRange(unionVisibleColumns), + rEnd = CPMaxRange(unionVisibleRows), + cell; + for (var column = unionVisibleColumns.location; column < cEnd; ++column) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column], + columnIsVisible = CPLocationInRange(column, visibleColumns), + newCells = []; + for (var row = unionVisibleRows.location; row < rEnd; ++row) + { + if (cell = tableColumnCells[row]) + { + if (!columnIsVisible || !CPLocationInRange(row, visibleRows)) + { + tableColumnCells[row] = nil; + objj_msgSend(tableColumn, "_markView:inRow:asPurgable:", cell, row, YES); + } + } + else + { + newCells.push(row); + } + } + while (newCells.length > 0) + { + var row = newCells.pop(); + tableColumnCells[row] = objj_msgSend(self, "newCellForRow:column:avoidingRows:", row, column, visibleRows); + if (!tableColumnCells[row]._superview) + objj_msgSend(_tableColumnViews[column], "addSubview:", tableColumnCells[row]); + else if (tableColumnCells[row]._isHidden) + objj_msgSend(tableColumnCells[row], "setHidden:", NO); + } + objj_msgSend(tableColumn, "_purge"); + } + } + else { + var cEnd = CPMaxRange(_visibleColumns), + rEnd = CPMaxRange(_visibleRows), + cell; + for (var column = _visibleColumns.location; column < cEnd; ++column) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column], + columnIsVisible = CPLocationInRange(column, visibleColumns); + for (var row = _visibleRows.location; row < rEnd; ++row) + { + if (cell = tableColumnCells[row]) + { + if (!columnIsVisible || !CPLocationInRange(row, visibleRows)) + { + tableColumnCells[row] = nil; + objj_msgSend(tableColumn, "_markView:inRow:asPurgable:", cell, row, YES); + } + } + } + } + var cEnd = CPMaxRange(visibleColumns), + rEnd = CPMaxRange(visibleRows); + for (var column = visibleColumns.location; column < cEnd; ++column) + { + var tableColumn = _tableColumns[column], + tableColumnCells = _tableCells[column]; + for (var row = visibleRows.location; row < rEnd; ++row) + { + tableColumnCells[row] = objj_msgSend(self, "newCellForRow:column:avoidingRows:", row, column, visibleRows); + if (!tableColumnCells[row]._superview) + objj_msgSend(_tableColumnViews[column], "addSubview:", tableColumnCells[row]); + else if (tableColumnCells[row]._isHidden) + objj_msgSend(tableColumnCells[row], "setHidden:", NO); + } + objj_msgSend(tableColumn, "_purge"); + } + } + _visibleRows = visibleRows; + _visibleColumns = visibleColumns; +} +}), new objj_method(sel_getUid("setIntercellSpacing:"), function $CPTableView__setIntercellSpacing_(self, _cmd, aSize) +{ with(self) +{ + if (_intercellSpacing.width != aSize.width) + { + var i = 1, + delta = aSize.width - _intercellSpacing.width; + total = delta; + for (; i < _tableColumns.length; ++i, total += delta) + { + var origin = objj_msgSend(_tableColumnViews[i], "frame").origin; + objj_msgSend(_tableColumnViews[i], "setFrameOrigin:", CGPointMake(origin.x + total, origin.y)); + } + } + if (_intercellSpacing.height != aSize.height) + { + var i = 0; + for (; i < _tableColumns.length; ++i, total += delta) + { + objj_msgSend(_tableColumnViews[i], "setFrameSize:", CGSizeMake(objj_msgSend(_tableColumnViews[i], "width"), _numberOfRows * (_rowHeight + _intercellSpacing.height))); + var j = 1, + y = _rowHeight + _intercellSpacing.height; + for (; j < _numberOfRows; ++i, y += _rowHeight + _intercellSpacing.height) + { + if (!_tableCells[i][j]) + continue; + objj_msgSend(_tableCells[i][j], "setFrameOrigin:", CPPointMake(0.0, y)); + } + } + } + _intercellSpacing = CPSizeCreateCopy(aSize); +} +}), new objj_method(sel_getUid("intercellSpacing"), function $CPTableView__intercellSpacing(self, _cmd) +{ with(self) +{ + return _intercellSpacing; +} +}), new objj_method(sel_getUid("setRowHeight:"), function $CPTableView__setRowHeight_(self, _cmd, aRowHeight) +{ with(self) +{ + if (_rowHeight == aRowHeight) + return; + _rowHeight = aRowHeight; + if (_hasVariableHeightRows) + return; + for (var row = 0; row < _numberOfRows; ++row) + for (var column = 0; column < _tableColumns.length; ++column) + objj_msgSend(_tableCells[column][row], "setFrameOrigin:", CPPointMake(0.0, row * (_rowHeight + _intercellSpacing.height))); +} +}), new objj_method(sel_getUid("rowHeight"), function $CPTableView__rowHeight(self, _cmd) +{ with(self) +{ + return _rowHeight; +} +}), new objj_method(sel_getUid("addTableColumn:"), function $CPTableView__addTableColumn_(self, _cmd, aTableColumn) +{ with(self) +{ + var i = 0, + x = _tableColumns.length ? CPRectGetMaxX(objj_msgSend(self, "rectOfColumn:", _tableColumns.length - 1)) + _intercellSpacing.width : 0.0, + tableColumnView = objj_msgSend(objj_msgSend(CPView, "alloc"), "initWithFrame:", CPRectMake(x, 0.0, objj_msgSend(aTableColumn, "width"), objj_msgSend(self, "_columnHeight"))), + tableColumnCells = []; + objj_msgSend(_tableColumns, "addObject:", aTableColumn); + objj_msgSend(_tableColumnViews, "addObject:", tableColumnView); + objj_msgSend(self, "addSubview:", tableColumnView); + objj_msgSend(_tableCells, "addObject:", tableColumnCells); + for (; i < _numberOfRows; ++i) + _tableCells[_tableColumns.length-1][i] = nil; +} +}), new objj_method(sel_getUid("removeTableColumn:"), function $CPTableView__removeTableColumn_(self, _cmd, aTableColumn) +{ with(self) +{ + var frame = objj_msgSend(self, "frame"), + width = objj_msgSend(aTableColumn, "width") + _intercellSpacing.width, + index = objj_msgSend(_tableColumns, "indexOfObjectIdenticalTo:", aTableColumn); + objj_msgSend(_tableColumnViews[i], "removeFromSuperview"); + objj_msgSend(_tableCells, "removeObjectAtIndex:", index); + objj_msgSend(_tableColumns, "removeObjectAtIndex:", index); + objj_msgSend(_tableColumnViews, "removeObjectAtIndex:", index); + for (; index < _tableColumns.length; ++ index) + objj_msgSend(_tableColumnViews[index], "setFrameOrigin:", CPPointMake(CPRectGetMinX(objj_msgSend(_tableColumnViews[index], "frame")) - width, 0.0)) + objj_msgSend(self, "setFrameSize:", CPSizeMake(CPRectGetWidth(frame) - width, CPRectGetHeight(frame))); +} +}), new objj_method(sel_getUid("moveColumn:toColumn:"), function $CPTableView__moveColumn_toColumn_(self, _cmd, fromIndex, toIndex) +{ with(self) +{ + if (fromIndex == toIndex) + return; +} +}), new objj_method(sel_getUid("tableColumns"), function $CPTableView__tableColumns(self, _cmd) +{ with(self) +{ + return _tableColumns; +} +}), new objj_method(sel_getUid("tableColumnWithIdentifier:"), function $CPTableView__tableColumnWithIdentifier_(self, _cmd, anObject) +{ with(self) +{ + for (var i = 0; i < _tableColumns.length; i++) + if (objj_msgSend(_tableColumns[i], "isEqual:", anObject)) + return _tableColumns[i]; + return nil; +} +}), new objj_method(sel_getUid("numberOfColumns"), function $CPTableView__numberOfColumns(self, _cmd) +{ with(self) +{ + return _tableColumns.length; +} +}), new objj_method(sel_getUid("numberOfRows"), function $CPTableView__numberOfRows(self, _cmd) +{ with(self) +{ + return _numberOfRows; +} +}), new objj_method(sel_getUid("tile"), function $CPTableView__tile(self, _cmd) +{ with(self) +{ + var HEIGHT = 10.0; +} +}), new objj_method(sel_getUid("setDataSource:"), function $CPTableView__setDataSource_(self, _cmd, aDataSource) +{ with(self) +{ + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("numberOfRowsInTableView:"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source doesn't support 'numberOfRowsInTableView:'"); + if (!objj_msgSend(aDataSource, "respondsToSelector:", sel_getUid("tableView:objectValueForTableColumn:row:"))) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "Data source doesn't support 'tableView:objectValueForTableColumn:row:'"); + _dataSource = aDataSource; + objj_msgSend(self, "reloadData"); +} +}), new objj_method(sel_getUid("dataSource"), function $CPTableView__dataSource(self, _cmd) +{ with(self) +{ + return _dataSource; +} +}), new objj_method(sel_getUid("delegate"), function $CPTableView__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPTableView__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + if (_delegate === aDelegate) + return; + var notificationCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidMove:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewColumnDidMoveNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidResize:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewColumnDidResizeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionDidChange:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewSelectionDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionIsChanging:"))) + objj_msgSend(notificationCenter, "removeObserver:name:object:", _delegate, CPTableViewSelectionIsChangingNotification, self); + _delegate = aDelegate; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidMove:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewColumnDidMove:"), CPTableViewColumnDidMoveNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewColumnDidResize:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewColumnDidResize:"), CPTableViewColumnDidResizeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionDidChange:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewSelectionDidChange:"), CPTableViewSelectionDidChangeNotification, self); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableViewSelectionIsChanging:"))) + objj_msgSend(notificationCenter, "addObserver:selector:name:object:", _delegate, sel_getUid("tableViewSelectionIsChanging:"), CPTableViewSelectionIsChangingNotification, self); + _delegateSelectorsCache = 0; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:willDisplayCell:forTableColumn:row:"))) + _delegateSelectorsCache |= _CPTableViewWillDisplayCellSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldSelectRow:"))) + _delegateSelectorsCache |= _CPTableViewShouldSelectRowSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldSelectTableColumn:"))) + _delegateSelectorsCache |= _CPTableViewShouldSelectTableColumnSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("selectionShouldChangeInTableView:"))) + _delegateSelectorsCache |= _CPTableViewSelectionShouldChangeSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:shouldEditTableColumn:row:"))) + _delegateSelectorsCache |= _CPTableViewShouldEditTableColumnSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:selectionIndexesForProposedSelection:"))) + _delegateSelectorsCache |= _CPTableViewSelectionIndexesForProposedSelectionSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("tableView:heightOfRow:"))) + { + _delegateSelectorsCache |= _CPTableViewHeightOfRowSelector; + _hasVariableHeightRows = YES; + } + else + _hasVariableHeightRows = NO; +} +}), new objj_method(sel_getUid("noteNumberOfRowsChanged"), function $CPTableView__noteNumberOfRowsChanged(self, _cmd) +{ with(self) +{ + var numberOfRows = objj_msgSend(_dataSource, "numberOfRowsInTableView:", self); + if (_numberOfRows != numberOfRows) + { + _numberOfRows = numberOfRows; + objj_msgSend(self, "_recalculateColumnHeight"); + } +} +}), new objj_method(sel_getUid("noteHeightOfRowsWithIndexesChanged:"), function $CPTableView__noteHeightOfRowsWithIndexesChanged_(self, _cmd, indexSet) +{ with(self) +{ + objj_msgSend(self, "_recalculateColumnHeight"); +} +}), new objj_method(sel_getUid("rectOfRow:"), function $CPTableView__rectOfRow_(self, _cmd, aRowIndex) +{ with(self) +{ + return CPRectMake(0.0, (_hasVariableHeightRows ? _rowMinYs[aRowIndex] : (aRowIndex * (_rowHeight + _intercellSpacing.height))), CPRectGetWidth(objj_msgSend(self, "bounds")), (_hasVariableHeightRows ? _rowHeights[aRowIndex] : _rowHeight)); +} +}), new objj_method(sel_getUid("rectOfColumn:"), function $CPTableView__rectOfColumn_(self, _cmd, aColumnIndex) +{ with(self) +{ + return objj_msgSend(_tableColumnViews[aColumnIndex], "frame"); +} +}), new objj_method(sel_getUid("sizeToFit"), function $CPTableView__sizeToFit(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_recalculateColumnHeight"), function $CPTableView___recalculateColumnHeight(self, _cmd) +{ with(self) +{ + var oldColumnHeight = _columnHeight; + if (_hasVariableHeightRows) + { + _rowMinYs[0] = 0; + for (var row = 0; row < _numberOfRows; row++) + { + _rowHeights[row] = objj_msgSend(_delegate, "tableView:heightOfRow:", self, row); + _rowMinYs[row+1] = _rowMinYs[row] + _rowHeights[row] + _intercellSpacing.height; + } + _columnHeight = _rowMinYs[_numberOfRows]; + } + else + _columnHeight = _numberOfRows * (_rowHeight + _intercellSpacing.height); + var count = _tableColumnViews.length; + while (count--) + objj_msgSend(_tableColumnViews[count], "setFrameSize:", CGSizeMake(objj_msgSend(_tableColumns[count], "width"), _columnHeight)); + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(objj_msgSend(self, "frame")), _columnHeight)); +} +}), new objj_method(sel_getUid("visibleRectInParent"), function $CPTableView__visibleRectInParent(self, _cmd) +{ with(self) +{ + var superview = objj_msgSend(self, "superview"); + if (!superview) + return objj_msgSend(self, "bounds"); + return objj_msgSend(self, "convertRect:fromView:", CGRectIntersection(objj_msgSend(superview, "bounds"), objj_msgSend(self, "frame")), superview); +} +}), new objj_method(sel_getUid("reloadData"), function $CPTableView__reloadData(self, _cmd) +{ with(self) +{ + var oldNumberOfRows = _numberOfRows; + _numberOfRows = objj_msgSend(_dataSource, "numberOfRowsInTableView:", self); + if (oldNumberOfRows != _numberOfRows) + { + objj_msgSend(self, "_recalculateColumnHeight"); + objj_msgSend(self, "setFrameSize:", CGSizeMake(CGRectGetWidth(objj_msgSend(self, "frame")), objj_msgSend(self, "_columnHeight"))); + } + _objectValueCache = []; + objj_msgSend(self, "clearCells"); + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("layoutSubviews"), function $CPTableView__layoutSubviews(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "loadTableCellsInRect:", objj_msgSend(self, "visibleRectInParent")); +} +}), new objj_method(sel_getUid("displaySoon"), function $CPTableView__displaySoon(self, _cmd) +{ with(self) +{ + objj_msgSend(_scrollTimer, "invalidate"); + _scrollTimer = objj_msgSend(CPTimer, "scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:", 0.05, self, sel_getUid("displayNow"), nil, NO); +} +}), new objj_method(sel_getUid("displayNow"), function $CPTableView__displayNow(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "setNeedsLayout"); +} +}), new objj_method(sel_getUid("viewDidMoveToSuperview"), function $CPTableView__viewDidMoveToSuperview(self, _cmd) +{ with(self) +{ + objj_msgSend(objj_msgSend(objj_msgSend(self, "enclosingScrollView"), "contentView"), "setPostsBoundsChangedNotifications:", YES); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "addObserver:selector:name:object:", self, sel_getUid("viewBoundsChanged:"), CPViewBoundsDidChangeNotification, objj_msgSend(objj_msgSend(self, "enclosingScrollView"), "contentView")); +} +}), new objj_method(sel_getUid("viewBoundsChanged:"), function $CPTableView__viewBoundsChanged_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(self, "displayNow"); +} +}), new objj_method(sel_getUid("setAllowsMultipleSelection:"), function $CPTableView__setAllowsMultipleSelection_(self, _cmd, allowsMultipleSelection) +{ with(self) +{ + if (_allowsMultipleSelection === allowsMultipleSelection) + return; + _allowsMultipleSelection = allowsMultipleSelection; +} +}), new objj_method(sel_getUid("allowsMultipleSelection"), function $CPTableView__allowsMultipleSelection(self, _cmd) +{ with(self) +{ + return _allowsMultipleSelection; +} +}), new objj_method(sel_getUid("setAllowsEmptySelection:"), function $CPTableView__setAllowsEmptySelection_(self, _cmd, allowsEmptySelection) +{ with(self) +{ + if (_allowsEmptySelection === allowsEmptySelection) + return; + _allowsEmptySelection = allowsEmptySelection; +} +}), new objj_method(sel_getUid("allowsEmptySelection"), function $CPTableView__allowsEmptySelection(self, _cmd) +{ with(self) +{ + return _allowsEmptySelection; +} +}), new objj_method(sel_getUid("rowAtPoint:"), function $CPTableView__rowAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var index = objj_msgSend(self, "_rowAtY:", aPoint.y) + if (index >= 0 && index < _numberOfRows) + return index; + else + return CPNotFound; +} +}), new objj_method(sel_getUid("columnAtPoint:"), function $CPTableView__columnAtPoint_(self, _cmd, aPoint) +{ with(self) +{ + var index = objj_msgSend(self, "_columnAtX:", aPoint.x) + if (index >= 0 && index < _tableColumns.length) + return index; + else + return CPNotFound; +} +}), new objj_method(sel_getUid("_rowAtY:"), function $CPTableView___rowAtY_(self, _cmd, y) +{ with(self) +{ + if (_hasVariableHeightRows) + { + var a = 0, + b = _numberOfRows; + if (y < _rowMinYs[0]) + return -1; + if (y >= _rowMinYs[_rowMinYs.length-1]) + return _numberOfRows; + while (true) + { + var half = a + Math.floor((b - a) / 2); + if (y < _rowMinYs[half]) + b = half; + else if (half < _numberOfRows-1 && y >= _rowMinYs[half+1]) + a = half; + else + return half; + } + } + else + return FLOOR(y / (_rowHeight + _intercellSpacing.height)); +} +}), new objj_method(sel_getUid("_columnAtX:"), function $CPTableView___columnAtX_(self, _cmd, x) +{ with(self) +{ + var a = 0, + b = _tableColumns.length; + var last = objj_msgSend(_tableColumnViews[_tableColumns.length-1], "frame"); + if (x < objj_msgSend(_tableColumnViews[0], "frame").origin.x) + return -1; + if (x >= last.origin.x + last.size.width) + return _tableColumns.length; + while (true) + { + var half = a + Math.floor((b - a) / 2); + if (x < objj_msgSend(_tableColumnViews[half], "frame").origin.x) + b = half; + else if (half < _tableColumns.length-1 && x >= objj_msgSend(_tableColumnViews[half+1], "frame").origin.x) + a = half; + else + return half; + } +} +}), new objj_method(sel_getUid("selectRowIndexes:byExtendingSelection:"), function $CPTableView__selectRowIndexes_byExtendingSelection_(self, _cmd, indexes, extend) +{ with(self) +{ + if (extend) + _selectedRowIndexes = objj_msgSend(objj_msgSend(_selectedRowIndexes, "copy"), "addIndexes:", indexes); + else if (objj_msgSend(indexes, "count") > 0 || _allowsEmptySelection) + _selectedRowIndexes = objj_msgSend(indexes, "copy"); + objj_msgSend(self, "_drawSelection"); +} +}), new objj_method(sel_getUid("selectedRowIndexes"), function $CPTableView__selectedRowIndexes(self, _cmd) +{ with(self) +{ + return _selectedRowIndexes; +} +}), new objj_method(sel_getUid("numberOfSelectedRows"), function $CPTableView__numberOfSelectedRows(self, _cmd) +{ with(self) +{ + return objj_msgSend(_selectedRowIndexes, "count"); +} +}), new objj_method(sel_getUid("deselectAll:"), function $CPTableView__deselectAll_(self, _cmd, sender) +{ with(self) +{ + if (!_allowsEmptySelection || objj_msgSend(_selectedRowIndexes, "count") === 0 || + ((_delegateSelectorsCache & _CPTableViewSelectionShouldChangeSelector) && !objj_msgSend(_delegate, "selectionShouldChangeInTableView:", self))) + return; + objj_msgSend(self, "selectRowIndexes:byExtendingSelection:", objj_msgSend(CPIndexSet, "indexSet"), NO); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionDidChangeNotification, self, nil); +} +}), new objj_method(sel_getUid("editColumn:row:withEvent:select:"), function $CPTableView__editColumn_row_withEvent_select_(self, _cmd, columnIndex, rowIndex, theEvent, flag) +{ with(self) +{ +} +}), new objj_method(sel_getUid("_updateSelectionWithMouseAtRow:"), function $CPTableView___updateSelectionWithMouseAtRow_(self, _cmd, aRow) +{ with(self) +{ + var newSelection; + if (_allowsMultipleSelection) + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndexesInRange:", CPMakeRange(MIN(aRow, _selectionStartRow), ABS(aRow-_selectionStartRow)+1)); + else if (aRow >= 0 && aRow < _numberOfRows) + newSelection = objj_msgSend(CPIndexSet, "indexSetWithIndex:", aRow); + else + newSelection = objj_msgSend(CPIndexSet, "indexSet"); + if (_allowsMultipleSelection && _selectionModifier & (CPCommandKeyMask | CPControlKeyMask | CPAlternateKeyMask)) + { + var intersection = objj_msgSend(newSelection, "copy"), + difference = objj_msgSend(newSelection, "copy"); + objj_msgSend(difference, "removeIndexes:", _previousSelectedRowIndexes); + objj_msgSend(intersection, "removeIndexes:", difference) + objj_msgSend(newSelection, "addIndexes:", _previousSelectedRowIndexes); + objj_msgSend(newSelection, "removeIndexes:", intersection); + } + if (!objj_msgSend(newSelection, "isEqualToIndexSet:", _selectedRowIndexes)) + { + if ((_delegateSelectorsCache & _CPTableViewSelectionShouldChangeSelector) && !objj_msgSend(_delegate, "selectionShouldChangeInTableView:", self)) + return; + if (_delegateSelectorsCache & _CPTableViewSelectionIndexesForProposedSelectionSelector) + newSelection = objj_msgSend(_delegate, "tableView:selectionIndexesForProposedSelection:", self, newSelection); + else if (_delegateSelectorsCache & _CPTableViewShouldSelectRowSelector) + { + var indexes = []; + objj_msgSend(newSelection, "getIndexes:maxCount:inIndexRange:", indexes, Number.MAX_VALUE, nil); + for (var i = 0; i < indexes.length; i++) + if (!objj_msgSend(_delegate, "tableView:shouldSelectRow:", self, indexes[i])) + objj_msgSend(newSelection, "removeIndex:", indexes[i]); + } + } + if (!_allowsEmptySelection && objj_msgSend(newSelection, "count") === 0) + return; + if (!objj_msgSend(newSelection, "isEqualToIndexSet:", _selectedRowIndexes)) + { + objj_msgSend(self, "selectRowIndexes:byExtendingSelection:", newSelection, NO); + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionIsChangingNotification, self, nil); + } +} +}), new objj_method(sel_getUid("mouseDown:"), function $CPTableView__mouseDown_(self, _cmd, anEvent) +{ with(self) +{ + objj_msgSend(self, "trackSelection:", anEvent); +} +}), new objj_method(sel_getUid("setDoubleAction:"), function $CPTableView__setDoubleAction_(self, _cmd, aSelector) +{ with(self) +{ + _doubleAction = aSelector; +} +}), new objj_method(sel_getUid("doubleAction"), function $CPTableView__doubleAction(self, _cmd) +{ with(self) +{ + return _doubleAction; +} +}), new objj_method(sel_getUid("clickedColumn"), function $CPTableView__clickedColumn(self, _cmd) +{ with(self) +{ + return _clickedColumn; +} +}), new objj_method(sel_getUid("clickedRow"), function $CPTableView__clickedRow(self, _cmd) +{ with(self) +{ + return _clickedRow; +} +}), new objj_method(sel_getUid("trackSelection:"), function $CPTableView__trackSelection_(self, _cmd, anEvent) +{ with(self) +{ + var type = objj_msgSend(anEvent, "type"), + point = objj_msgSend(self, "convertPoint:fromView:", objj_msgSend(anEvent, "locationInWindow"), nil), + currentRow = MAX(0, MIN(_numberOfRows-1, objj_msgSend(self, "_rowAtY:", point.y))); + if (type == CPLeftMouseUp) + { + _clickedRow = objj_msgSend(self, "rowAtPoint:", point); + _clickedColumn = objj_msgSend(self, "columnAtPoint:", point); + if (objj_msgSend(anEvent, "clickCount") === 2) + { + CPLog.warn("edit?!"); + objj_msgSend(self, "sendAction:to:", _doubleAction, _target); + } + else + { + if (!objj_msgSend(_previousSelectedRowIndexes, "isEqualToIndexSet:", _selectedRowIndexes)) + { + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:userInfo:", CPTableViewSelectionDidChangeNotification, self, nil); + } + objj_msgSend(self, "sendAction:to:", _action, _target); + } + return; + } + if (type == CPLeftMouseDown) + { + _previousSelectedRowIndexes = _selectedRowIndexes; + _selectionModifier = objj_msgSend(anEvent, "modifierFlags"); + if (_selectionModifier & CPShiftKeyMask) + _selectionStartRow = (ABS(objj_msgSend(_previousSelectedRowIndexes, "firstIndex") - currentRow) < ABS(objj_msgSend(_previousSelectedRowIndexes, "lastIndex") - currentRow)) ? + objj_msgSend(_previousSelectedRowIndexes, "firstIndex") : objj_msgSend(_previousSelectedRowIndexes, "lastIndex"); + else + _selectionStartRow = currentRow; + objj_msgSend(self, "_updateSelectionWithMouseAtRow:", currentRow); + } + else if (type == CPLeftMouseDragged) + { + objj_msgSend(self, "_updateSelectionWithMouseAtRow:", currentRow); + } + objj_msgSend(CPApp, "setTarget:selector:forNextEventMatchingMask:untilDate:inMode:dequeue:", self, sel_getUid("trackSelection:"), CPLeftMouseDraggedMask | CPLeftMouseUpMask, nil, nil, YES); +} +}), new objj_method(sel_getUid("_drawSelection"), function $CPTableView___drawSelection(self, _cmd) +{ with(self) +{ + if (!_currentlySelected) { + _currentlySelected = objj_msgSend(CPIndexSet, "indexSet"); + _selectionViews = []; + _selectionViewsPool = []; + } + var removeSet = objj_msgSend(_currentlySelected, "copy"), + indexesToRemove = []; + objj_msgSend(removeSet, "removeIndexes:", _selectedRowIndexes); + objj_msgSend(removeSet, "getIndexes:maxCount:inIndexRange:", indexesToRemove, Number.MAX_VALUE, nil); + var addSet = objj_msgSend(_selectedRowIndexes, "copy"), + indexesToAdd = []; + objj_msgSend(addSet, "removeIndexes:", _currentlySelected); + objj_msgSend(addSet, "getIndexes:maxCount:inIndexRange:", indexesToAdd, Number.MAX_VALUE, nil); + for (var i = 0; i < indexesToRemove.length; i++) + { + var row = indexesToRemove[i]; + for (var column = 0; column < _tableColumns.length; column++) + if (objj_msgSend(_tableCells[column][row], "respondsToSelector:", sel_getUid("highlight:"))) + objj_msgSend(_tableCells[column][row], "highlight:", NO); + } + for (var i = 0; i < indexesToAdd.length; i++) + { + var row = indexesToAdd[i]; + for (var column = 0; column < _tableColumns.length; column++) + if (objj_msgSend(_tableCells[column][row], "respondsToSelector:", sel_getUid("highlight:"))) + objj_msgSend(_tableCells[column][row], "highlight:", YES); + } + for (var i = 0; i < indexesToAdd.length; i++) + { + var index = indexesToAdd[i], + view; + if (indexesToRemove.length > 0) + { + view = _selectionViews[indexesToRemove.pop()]; + } + else if (_selectionViewsPool.length > 0) + { + view = _selectionViewsPool.pop(); + objj_msgSend(self, "addSubview:positioned:relativeTo:", view, CPWindowBelow, nil); + } + else + { + view = objj_msgSend(objj_msgSend(CPView, "alloc"), "init"); + objj_msgSend(view, "setBackgroundColor:", objj_msgSend(CPColor, "alternateSelectedControlColor")); + objj_msgSend(self, "addSubview:positioned:relativeTo:", view, CPWindowBelow, nil); + } + _selectionViews[index] = view; + var frame = objj_msgSend(self, "rectOfRow:", index); + frame.size.height += _intercellSpacing.height - 1; + objj_msgSend(view, "setFrame:", frame); + } + for (var i = 0; i < indexesToRemove.length; i++) + { + var row = indexesToRemove[i], + view = _selectionViews[row]; + objj_msgSend(view, "removeFromSuperview"); + _selectionViewsPool.push(view); + } + _currentlySelected = objj_msgSend(_selectedRowIndexes, "copy"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPTableView__initialize(self, _cmd) +{ with(self) +{ +} +})]); +} +var CPTableViewDataSourceKey = "CPTableViewDataSourceKey", + CPTableViewDelegateKey = "CPTableViewDelegateKey", + CPTableViewHeaderViewKey = "CPTableViewHeaderViewKey", + CPTableViewTableColumnsKey = "CPTableViewTableColumnsKey", + CPTableViewRowHeightKey = "CPTableViewRowHeightKey", + CPTableViewIntercellSpacingKey = "CPTableViewIntercellSpacingKey", + CPTableViewMultipleSelectionKey = "CPTableViewMultipleSelectionKey", + CPTableViewEmptySelectionKey = "CPTableViewEmptySelectionKey"; +{ +var the_class = objj_getClass("CPTableView") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPTableView\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPTableView__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "initWithCoder:", aCoder)) + { + objj_msgSend(self, "_init"); + _dataSource = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableViewDataSourceKey); + _delegate = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableViewDelegateKey); + _rowHeight = objj_msgSend(aCoder, "decodeFloatForKey:", CPTableViewRowHeightKey); + _intercellSpacing = objj_msgSend(aCoder, "decodeSizeForKey:", CPTableViewIntercellSpacingKey); + _allowsMultipleSelection = objj_msgSend(aCoder, "decodeBoolForKey:", CPTableViewMultipleSelectionKey); + _allowsEmptySelection = objj_msgSend(aCoder, "decodeBoolForKey:", CPTableViewEmptySelectionKey); + var tableColumns = objj_msgSend(aCoder, "decodeObjectForKey:", CPTableViewTableColumnsKey); + for (var i = 0; i < tableColumns.length; i++) + objj_msgSend(self, "addTableColumn:", tableColumns[i]); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPTableView__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPControl") }, "encodeWithCoder:", aCoder); + objj_msgSend(aCoder, "encodeObject:forKey:", _dataSource, CPTableViewDataSourceKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _delegate, CPTableViewDelegateKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _tableColumns, CPTableViewTableColumnsKey); + objj_msgSend(aCoder, "encodeFloat:forKey:", _rowHeight, CPTableViewRowHeightKey); + objj_msgSend(aCoder, "encodeSize:forKey:", _intercellSpacing, CPTableViewIntercellSpacingKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _allowsMultipleSelection, CPTableViewMultipleSelectionKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _allowsEmptySelection, CPTableViewEmptySelectionKey); +} +})]); +} +{ +var the_class = objj_getClass("CPColor") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPColor\"")); +var meta_class = the_class.isa;class_addMethods(meta_class, [new objj_method(sel_getUid("alternateSelectedControlColor"), function $CPColor__alternateSelectedControlColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.22, 0.46, 0.84, 1.0]); +} +}), new objj_method(sel_getUid("secondarySelectedControlColor"), function $CPColor__secondarySelectedControlColor(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPColor, "alloc"), "_initWithRGBA:", [0.83, 0.83, 0.83, 1.0]); +} +})]); +} + diff --git a/src/main/webapp/Frameworks/Debug/Foundation/Info.plist b/src/main/webapp/Frameworks/Debug/Foundation/Info.plist new file mode 100644 index 0000000..d989e51 --- /dev/null +++ b/src/main/webapp/Frameworks/Debug/Foundation/Info.plist @@ -0,0 +1,64 @@ + + + + + CPBundleExecutable + Foundation.sj + CPBundleIdentifier + com.280n.Foundation + CPBundleInfoDictionaryVersion + 6.0 + CPBundleName + Foundation + CPBundlePackageType + FMWK + CPBundlePlatforms + + objj + + CPBundleReplacedFiles + + CPArray+KVO.j + CPArray.j + CPAttributedString.j + CPBundle.j + CPCoder.j + CPCountedSet.j + CPData.j + CPDate.j + CPDictionary.j + CPEnumerator.j + CPException.j + CPIndexSet.j + CPInvocation.j + CPJSONPConnection.j + CPKeyedArchiver.j + CPKeyedUnarchiver.j + CPKeyValueCoding.j + CPKeyValueObserving.j + CPLog.j + CPNotification.j + CPNotificationCenter.j + CPNull.j + CPNumber.j + CPObject.j + CPObjJRuntime.j + CPPropertyListSerialization.j + CPRange.j + CPRunLoop.j + CPSet.j + CPSortDescriptor.j + CPString.j + CPTimer.j + CPUndoManager.j + CPURLConnection.j + CPURLRequest.j + CPURLResponse.j + CPUserSessionManager.j + CPValue.j + Foundation.j + + CPBundleVersion + 0.7.1 + + diff --git a/src/main/webapp/Frameworks/Debug/Foundation/Resources/log.css b/src/main/webapp/Frameworks/Debug/Foundation/Resources/log.css new file mode 100644 index 0000000..8a4ed37 --- /dev/null +++ b/src/main/webapp/Frameworks/Debug/Foundation/Resources/log.css @@ -0,0 +1,72 @@ +body { + font: 10px Monaco, Courier, "Courier New", monospace, mono; + padding-top: 15px; +} + +div > .fatal, div > .error, div > .warn, div > .info, div > .debug, div > .trace { + display: none; + overflow: hidden; + white-space: pre; + padding: 0px 5px 0px 5px; + margin-top: 2px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div[wrap="yes"] > div { + white-space: normal; +} + +.fatal { background-color: #ffb2b3; } +.error { background-color: #ffe2b2; } +.warn { background-color: #fdffb2; } +.info { background-color: #e4ffb2; } +.debug { background-color: #a0e5a0; } +.trace { background-color: #99b9ff; } + +.enfatal .fatal, .enerror .error, .enwarn .warn, .eninfo .info, .endebug .debug, .entrace .trace { display: block; } + +div#header { + background-color: rgba(240,240,240,0.82); + position: fixed; + top: 0px; + left: 0px; + width: 100%; + border-bottom: 1px solid rgba(0,0,0,0.33); + text-align: center; + /*opacity: 0.2;*/ +} +/* +div#header:hover { + opacity: 1.0; +} +*/ +ul#enablers { + display: inline-block; + margin: 1px 15px 0 15px; + padding: 2px 0 2px 0; +} + +ul#enablers li { + display: inline; + padding: 0px 5px 0px 5px; + margin-left: 4px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +[enabled="no"] { + opacity: 0.25; +} + +ul#options { + display: inline-block; + margin: 0 15px 0px 15px; + padding: 0 0px; +} + +ul#options li { + margin: 0 0 0 0; + padding: 0 0 0 0; + display: inline; +} \ No newline at end of file diff --git a/src/main/webapp/Frameworks/Debug/Foundation/objj.platform/Foundation.sj b/src/main/webapp/Frameworks/Debug/Foundation/objj.platform/Foundation.sj new file mode 100644 index 0000000..b5020c6 --- /dev/null +++ b/src/main/webapp/Frameworks/Debug/Foundation/objj.platform/Foundation.sj @@ -0,0 +1,7343 @@ +@STATIC;1.0;p;13;CPArray+KVO.ji;9;CPArray.jc;15620; +{ +var the_class = objj_getClass("CPObject") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPObject\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("mutableArrayValueForKey:"), function $CPObject__mutableArrayValueForKey_(self, _cmd, aKey) +{ with(self) +{ + return objj_msgSend(objj_msgSend(_CPKVCArray, "alloc"), "initWithKey:forProxyObject:", aKey, self); +} +}), new objj_method(sel_getUid("mutableArrayValueForKeyPath:"), function $CPObject__mutableArrayValueForKeyPath_(self, _cmd, aKeyPath) +{ with(self) +{ + var dotIndex = aKeyPath.indexOf("."); + if (dotIndex < 0) + return objj_msgSend(self, "mutableArrayValueForKey:", aKeyPath); + var firstPart = aKeyPath.substring(0, dotIndex), + lastPart = aKeyPath.substring(dotIndex+1); + return objj_msgSend(objj_msgSend(self, "valueForKeyPath:", firstPart), "valueForKeyPath:", lastPart); +} +})]); +} +{var the_class = objj_allocateClassPair(CPArray, "_CPKVCArray"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_proxyObject"), new objj_ivar("_key"), new objj_ivar("_insertSEL"), new objj_ivar("_insert"), new objj_ivar("_removeSEL"), new objj_ivar("_remove"), new objj_ivar("_replaceSEL"), new objj_ivar("_replace"), new objj_ivar("_insertManySEL"), new objj_ivar("_insertMany"), new objj_ivar("_removeManySEL"), new objj_ivar("_removeMany"), new objj_ivar("_replaceManySEL"), new objj_ivar("_replaceMany"), new objj_ivar("_objectAtIndexSEL"), new objj_ivar("_objectAtIndex"), new objj_ivar("_countSEL"), new objj_ivar("_count"), new objj_ivar("_accessSEL"), new objj_ivar("_access"), new objj_ivar("_setSEL"), new objj_ivar("_set")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithKey:forProxyObject:"), function $_CPKVCArray__initWithKey_forProxyObject_(self, _cmd, aKey, anObject) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPArray") }, "init"); + _key = aKey; + _proxyObject = anObject; + var capitalizedKey = _key.charAt(0).toUpperCase() + _key.substring(1); + _insertSEL = sel_getName("insertObject:in"+capitalizedKey+"AtIndex:"); + if (objj_msgSend(_proxyObject, "respondsToSelector:", _insertSEL)) + _insert = objj_msgSend(_proxyObject, "methodForSelector:", _insertSEL); + _removeSEL = sel_getName("removeObjectFrom"+capitalizedKey+"AtIndex:"); + if (objj_msgSend(_proxyObject, "respondsToSelector:", _removeSEL)) + _remove = objj_msgSend(_proxyObject, "methodForSelector:", _removeSEL); + _replaceSEL = sel_getName("replaceObjectFrom"+capitalizedKey+"AtIndex:withObject:"); + if (objj_msgSend(_proxyObject, "respondsToSelector:", _replaceSEL)) + _replace = objj_msgSend(_proxyObject, "methodForSelector:", _replaceSEL); + _insertManySEL = sel_getName("insertObjects:in"+capitalizedKey+"AtIndexes:"); + if (objj_msgSend(_proxyObject, "respondsToSelector:", _insertManySEL)) + _insert = objj_msgSend(_proxyObject, "methodForSelector:", _insertManySEL); + _removeManySEL = sel_getName("removeObjectsFrom"+capitalizedKey+"AtIndexes:"); + if (objj_msgSend(_proxyObject, "respondsToSelector:", _removeManySEL)) + _remove = objj_msgSend(_proxyObject, "methodForSelector:", _removeManySEL); + _replaceManySEL = sel_getName("replaceObjectsFrom"+capitalizedKey+"AtIndexes:withObjects:"); + if (objj_msgSend(_proxyObject, "respondsToSelector:", _replaceManySEL)) + _replace = objj_msgSend(_proxyObject, "methodForSelector:", _replaceManySEL); + _objectAtIndexSEL = sel_getName("objectIn"+capitalizedKey+"AtIndex:"); + if (objj_msgSend(_proxyObject, "respondsToSelector:", _objectAtIndexSEL)) + _objectAtIndex = objj_msgSend(_proxyObject, "methodForSelector:", _objectAtIndexSEL); + _countSEL = sel_getName("countOf"+capitalizedKey); + if (objj_msgSend(_proxyObject, "respondsToSelector:", _countSEL)) + _count = objj_msgSend(_proxyObject, "methodForSelector:", _countSEL); + _accessSEL = sel_getName(_key); + if (objj_msgSend(_proxyObject, "respondsToSelector:", _accessSEL)) + _access = objj_msgSend(_proxyObject, "methodForSelector:", _accessSEL); + _setSEL = sel_getName("set"+capitalizedKey+":"); + if (objj_msgSend(_proxyObject, "respondsToSelector:", _setSEL)) + _set = objj_msgSend(_proxyObject, "methodForSelector:", _setSEL); + return self; +} +}), new objj_method(sel_getUid("copy"), function $_CPKVCArray__copy(self, _cmd) +{ with(self) +{ + var theCopy = [], + count = objj_msgSend(self, "count"); + for (var i=0; i 0) + min = item; + } + return min; +} +kvoOperators["count"] = countOperator= function(self, _cmd, param) +{ + return objj_msgSend(self, "count"); +} +kvoOperators["sum"] = sumOperator= function(self, _cmd, param) +{ + var objects = objj_msgSend(self, "valueForKeyPath:", param), + index = objj_msgSend(objects, "count"), + sum = 0.0; + while(index--) + sum += objj_msgSend(objects[index], "doubleValue"); + return sum; +} +{ +var the_class = objj_getClass("CPArray") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPArray\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("addObserver:toObjectsAtIndexes:forKeyPath:options:context:"), function $CPArray__addObserver_toObjectsAtIndexes_forKeyPath_options_context_(self, _cmd, anObserver, indexes, aKeyPath, options, context) +{ with(self) +{ + var index = objj_msgSend(indexes, "firstIndex"); + while (index >= 0) + { + objj_msgSend(self[index], "addObserver:forKeyPath:options:context:", anObserver, aKeyPath, options, context); + index = objj_msgSend(indexes, "indexGreaterThanIndex:", index); + } +} +}), new objj_method(sel_getUid("removeObserver:fromObjectsAtIndexes:forKeyPath:"), function $CPArray__removeObserver_fromObjectsAtIndexes_forKeyPath_(self, _cmd, anObserver, indexes, aKeyPath) +{ with(self) +{ + var index = objj_msgSend(indexes, "firstIndex"); + while (index >= 0) + { + objj_msgSend(self[index], "removeObserver:forKeyPath:", anObserver, aKeyPath); + index = objj_msgSend(indexes, "indexGreaterThanIndex:", index); + } +} +}), new objj_method(sel_getUid("addObserver:forKeyPath:options:context:"), function $CPArray__addObserver_forKeyPath_options_context_(self, _cmd, observer, aKeyPath, options, context) +{ with(self) +{ + if (objj_msgSend(isa, "instanceMethodForSelector:", _cmd) === objj_msgSend(CPArray, "instanceMethodForSelector:", _cmd)) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "Unsupported method on CPArray"); + else + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPArray").super_class }, "addObserver:forKeyPath:options:context:", observer, aKeyPath, options, context); +} +}), new objj_method(sel_getUid("removeObserver:forKeyPath:"), function $CPArray__removeObserver_forKeyPath_(self, _cmd, observer, aKeyPath) +{ with(self) +{ + if (objj_msgSend(isa, "instanceMethodForSelector:", _cmd) === objj_msgSend(CPArray, "instanceMethodForSelector:", _cmd)) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "Unsupported method on CPArray"); + else + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPArray").super_class }, "removeObserver:forKeyPath:", observer, aKeyPath); +} +})]); +} + +p;9;CPArray.ji;10;CPObject.ji;9;CPRange.ji;14;CPEnumerator.ji;18;CPSortDescriptor.ji;13;CPException.jc;25446; +{var the_class = objj_allocateClassPair(CPEnumerator, "_CPArrayEnumerator"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_array"), new objj_ivar("_index")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithArray:"), function $_CPArrayEnumerator__initWithArray_(self, _cmd, anArray) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPEnumerator") }, "init"); + if (self) + { + _array = anArray; + _index = -1; + } + return self; +} +}), new objj_method(sel_getUid("nextObject"), function $_CPArrayEnumerator__nextObject(self, _cmd) +{ with(self) +{ + if (++_index >= objj_msgSend(_array, "count")) + return nil; + return objj_msgSend(_array, "objectAtIndex:", _index); +} +})]); +} +{var the_class = objj_allocateClassPair(CPEnumerator, "_CPReverseArrayEnumerator"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_array"), new objj_ivar("_index")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithArray:"), function $_CPReverseArrayEnumerator__initWithArray_(self, _cmd, anArray) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPEnumerator") }, "init"); + if (self) + { + _array = anArray; + _index = objj_msgSend(_array, "count"); + } + return self; +} +}), new objj_method(sel_getUid("nextObject"), function $_CPReverseArrayEnumerator__nextObject(self, _cmd) +{ with(self) +{ + if (--_index < 0) + return nil; + return objj_msgSend(_array, "objectAtIndex:", _index); +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPArray"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPArray__init(self, _cmd) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("initWithArray:"), function $CPArray__initWithArray_(self, _cmd, anArray) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + objj_msgSend(self, "setArray:", anArray); + return self; +} +}), new objj_method(sel_getUid("initWithArray:copyItems:"), function $CPArray__initWithArray_copyItems_(self, _cmd, anArray, copyItems) +{ with(self) +{ + if (!copyItems) + return objj_msgSend(self, "initWithArray:", anArray); + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + var index = 0, + count = objj_msgSend(anArray, "count"); + for(; index < count; ++i) + { + if (anArray[i].isa) + self[i] = objj_msgSend(anArray, "copy"); + else + self[i] = anArray; + } + } + return self; +} +}), new objj_method(sel_getUid("initWithObjects:"), function $CPArray__initWithObjects_(self, _cmd, anArray) +{ with(self) +{ + var i = 2, + argument; + for(; i < arguments.length && (argument = arguments[i]) != nil; ++i) + push(argument); + return self; +} +}), new objj_method(sel_getUid("initWithObjects:count:"), function $CPArray__initWithObjects_count_(self, _cmd, objects, aCount) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + var index = 0; + for(; index < aCount; ++index) + push(objects[index]); + } + return self; +} +}), new objj_method(sel_getUid("containsObject:"), function $CPArray__containsObject_(self, _cmd, anObject) +{ with(self) +{ + return objj_msgSend(self, "indexOfObject:", anObject) != CPNotFound; +} +}), new objj_method(sel_getUid("count"), function $CPArray__count(self, _cmd) +{ with(self) +{ + return length; +} +}), new objj_method(sel_getUid("indexOfObject:"), function $CPArray__indexOfObject_(self, _cmd, anObject) +{ with(self) +{ + if (anObject === nil) + return CPNotFound; + var i = 0, + count = length; + if (anObject.isa) + { + for(; i < count; ++i) + if(objj_msgSend(self[i], "isEqual:", anObject)) + return i; + } + else if (self.indexOf) + return indexOf(anObject); + else + for(; i < count; ++i) + if(self[i] == anObject) + return i; + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfObject:inRange:"), function $CPArray__indexOfObject_inRange_(self, _cmd, anObject, aRange) +{ with(self) +{ + if (anObject === nil) + return CPNotFound; + var i = aRange.location, + count = MIN(CPMaxRange(aRange), length); + if (anObject.isa) + { + for(; i < count; ++i) + if(objj_msgSend(self[i], "isEqual:", anObject)) + return i; + } + else + for(; i < count; ++i) + if(self[i] == anObject) + return i; + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfObjectIdenticalTo:"), function $CPArray__indexOfObjectIdenticalTo_(self, _cmd, anObject) +{ with(self) +{ + if (anObject === nil) + return CPNotFound; + if (self.indexOf) + return indexOf(anObject); + else + { + var index = 0, + count = length; + for(; index < count; ++index) + if(self[index] == anObject) + return index; + } + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfObjectIdenticalTo:inRange:"), function $CPArray__indexOfObjectIdenticalTo_inRange_(self, _cmd, anObject, aRange) +{ with(self) +{ + if (anObject === nil) + return CPNotFound; + if (self.indexOf) + { + var index = indexOf(anObject, aRange.location); + if (CPLocationInRange(index, aRange)) + return index; + } + else + { + var index = aRange.location, + count = MIN(CPMaxRange(aRange), length); + for(; index < count; ++index) + if(self[index] == anObject) + return index; + } + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfObject:sortedBySelector:"), function $CPArray__indexOfObject_sortedBySelector_(self, _cmd, anObject, aSelector) +{ with(self) +{ + return objj_msgSend(self, "indexOfObject:sortedByFunction:", anObject, function(lhs, rhs) { objj_msgSend(lhs, aSelector, rhs); }); +} +}), new objj_method(sel_getUid("indexOfObject:sortedByFunction:"), function $CPArray__indexOfObject_sortedByFunction_(self, _cmd, anObject, aFunction) +{ with(self) +{ + return objj_msgSend(self, "indexOfObject:sortedByFunction:context:", anObject, aFunction, nil); +} +}), new objj_method(sel_getUid("indexOfObject:sortedByFunction:context:"), function $CPArray__indexOfObject_sortedByFunction_context_(self, _cmd, anObject, aFunction, aContext) +{ with(self) +{ + if (!aFunction || anObject === undefined) + return CPNotFound; + var mid, c, first = 0, last = length - 1; + while (first <= last) + { + mid = FLOOR((first + last) / 2); + c = aFunction(anObject, self[mid], aContext); + if (c > 0) + first = mid + 1; + else if (c < 0) + last = mid - 1; + else + { + while (mid < length - 1 && aFunction(anObject, self[mid+1], aContext) == CPOrderedSame) + mid++; + return mid; + } + } + return CPNotFound; +} +}), new objj_method(sel_getUid("indexOfObject:sortedByDescriptors:"), function $CPArray__indexOfObject_sortedByDescriptors_(self, _cmd, anObject, descriptors) +{ with(self) +{ + objj_msgSend(self, "indexOfObject:sortedByFunction:", anObject, function(lhs, rhs) + { + var i = 0, + count = objj_msgSend(descriptors, "count"), + result = CPOrderedSame; + while (i < count) + if((result = objj_msgSend(descriptors[i++], "compareObject:withObject:", lhs, rhs)) != CPOrderedSame) + return result; + return result; + }); +} +}), new objj_method(sel_getUid("lastObject"), function $CPArray__lastObject(self, _cmd) +{ with(self) +{ + var count = objj_msgSend(self, "count"); + if (!count) return nil; + return self[count - 1]; +} +}), new objj_method(sel_getUid("objectAtIndex:"), function $CPArray__objectAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return self[anIndex]; +} +}), new objj_method(sel_getUid("objectsAtIndexes:"), function $CPArray__objectsAtIndexes_(self, _cmd, indexes) +{ with(self) +{ + var index = objj_msgSend(indexes, "firstIndex"), + objects = []; + while(index != CPNotFound) + { + objj_msgSend(objects, "addObject:", self[index]); + index = objj_msgSend(indexes, "indexGreaterThanIndex:", index); + } + return objects; +} +}), new objj_method(sel_getUid("objectEnumerator"), function $CPArray__objectEnumerator(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(_CPArrayEnumerator, "alloc"), "initWithArray:", self); +} +}), new objj_method(sel_getUid("reverseObjectEnumerator"), function $CPArray__reverseObjectEnumerator(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(_CPReverseArrayEnumerator, "alloc"), "initWithArray:", self); +} +}), new objj_method(sel_getUid("makeObjectsPerformSelector:"), function $CPArray__makeObjectsPerformSelector_(self, _cmd, aSelector) +{ with(self) +{ + if (!aSelector) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "makeObjectsPerformSelector: 'aSelector' can't be nil"); + var index = 0, + count = length; + for(; index < count; ++index) + objj_msgSend(self[index], aSelector); +} +}), new objj_method(sel_getUid("makeObjectsPerformSelector:withObject:"), function $CPArray__makeObjectsPerformSelector_withObject_(self, _cmd, aSelector, anObject) +{ with(self) +{ + if (!aSelector) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "makeObjectsPerformSelector:withObject 'aSelector' can't be nil"); + var index = 0, + count = length; + for(; index < count; ++index) + objj_msgSend(self[index], aSelector, anObject); +} +}), new objj_method(sel_getUid("firstObjectCommonWithArray:"), function $CPArray__firstObjectCommonWithArray_(self, _cmd, anArray) +{ with(self) +{ + if (!objj_msgSend(anArray, "count") || !objj_msgSend(self, "count")) + return nil; + var i = 0, + count = objj_msgSend(self, "count"); + for(; i < count; ++i) + if(objj_msgSend(anArray, "containsObject:", self[i])) + return self[i]; + return nil; +} +}), new objj_method(sel_getUid("isEqualToArray:"), function $CPArray__isEqualToArray_(self, _cmd, anArray) +{ with(self) +{ + if (self === anArray) + return YES; + if(length != anArray.length) + return NO; + var index = 0, + count = objj_msgSend(self, "count"); + for(; index < count; ++index) + { + var lhs = self[index], + rhs = anArray[index]; + if (lhs !== rhs && (!lhs.isa || !rhs.isa || !objj_msgSend(lhs, "isEqual:", rhs))) + return NO; + } + return YES; +} +}), new objj_method(sel_getUid("isEqual:"), function $CPArray__isEqual_(self, _cmd, anObject) +{ with(self) +{ + if (self === anObject) + return YES; + if(!objj_msgSend(anObject, "isKindOfClass:", objj_msgSend(CPArray, "class"))) + return NO; + return objj_msgSend(self, "isEqualToArray:", anObject); +} +}), new objj_method(sel_getUid("arrayByAddingObject:"), function $CPArray__arrayByAddingObject_(self, _cmd, anObject) +{ with(self) +{ + if (anObject === nil || anObject === undefined) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "arrayByAddingObject: object can't be nil"); + var array = objj_msgSend(self, "copy"); + array.push(anObject); + return array; +} +}), new objj_method(sel_getUid("arrayByAddingObjectsFromArray:"), function $CPArray__arrayByAddingObjectsFromArray_(self, _cmd, anArray) +{ with(self) +{ + return slice(0).concat(anArray); +} +}), new objj_method(sel_getUid("subarrayWithRange:"), function $CPArray__subarrayWithRange_(self, _cmd, aRange) +{ with(self) +{ + if (aRange.location < 0 || CPMaxRange(aRange) > length) + objj_msgSend(CPException, "raise:reason:", CPRangeException, "subarrayWithRange: aRange out of bounds"); + return slice(aRange.location, CPMaxRange(aRange)); +} +}), new objj_method(sel_getUid("sortedArrayUsingDescriptors:"), function $CPArray__sortedArrayUsingDescriptors_(self, _cmd, descriptors) +{ with(self) +{ + var sorted = objj_msgSend(self, "copy"); + objj_msgSend(sorted, "sortUsingDescriptors:", descriptors); + return sorted; +} +}), new objj_method(sel_getUid("sortedArrayUsingFunction:"), function $CPArray__sortedArrayUsingFunction_(self, _cmd, aFunction) +{ with(self) +{ + return objj_msgSend(self, "sortedArrayUsingFunction:context:", aFunction, nil); +} +}), new objj_method(sel_getUid("sortedArrayUsingFunction:context:"), function $CPArray__sortedArrayUsingFunction_context_(self, _cmd, aFunction, aContext) +{ with(self) +{ + var sorted = objj_msgSend(self, "copy"); + objj_msgSend(sorted, "sortUsingFunction:context:", aFunction, aContext); + return sorted; +} +}), new objj_method(sel_getUid("sortedArrayUsingSelector:"), function $CPArray__sortedArrayUsingSelector_(self, _cmd, aSelector) +{ with(self) +{ + var sorted = objj_msgSend(self, "copy") + objj_msgSend(sorted, "sortUsingSelector:", aSelector); + return sorted; +} +}), new objj_method(sel_getUid("componentsJoinedByString:"), function $CPArray__componentsJoinedByString_(self, _cmd, aString) +{ with(self) +{ + return join(aString); +} +}), new objj_method(sel_getUid("description"), function $CPArray__description(self, _cmd) +{ with(self) +{ + var index = 0, + count = objj_msgSend(self, "count"), + description = '('; + for(; index < count; ++index) + { + var object = self[index]; + if (object && object.isa) + description += objj_msgSend(object, "description"); + else + description += object; + if (index !== count - 1) + description += ", "; + } + return description + ')'; +} +}), new objj_method(sel_getUid("pathsMatchingExtensions:"), function $CPArray__pathsMatchingExtensions_(self, _cmd, filterTypes) +{ with(self) +{ + var index = 0, + count = objj_msgSend(self, "count"), + array = []; + for(; index < count; ++index) + if (self[index].isa && objj_msgSend(self[index], "isKindOfClass:", objj_msgSend(CPString, "class")) && objj_msgSend(filterTypes, "containsObject:", objj_msgSend(self[index], "pathExtension"))) + array.push(self[index]); + return array; +} +}), new objj_method(sel_getUid("setValue:forKey:"), function $CPArray__setValue_forKey_(self, _cmd, aValue, aKey) +{ with(self) +{ + var i = 0, + count = objj_msgSend(self, "count"); + for(; i < count; ++i) + objj_msgSend(self[i], "setValue:forKey:", aValue, aKey); +} +}), new objj_method(sel_getUid("valueForKey:"), function $CPArray__valueForKey_(self, _cmd, aKey) +{ with(self) +{ + var i = 0, + count = objj_msgSend(self, "count"), + array = []; + for(; i < count; ++i) + array.push(objj_msgSend(self[i], "valueForKey:", aKey)); + return array; +} +}), new objj_method(sel_getUid("copy"), function $CPArray__copy(self, _cmd) +{ with(self) +{ + return slice(0); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("alloc"), function $CPArray__alloc(self, _cmd) +{ with(self) +{ + return []; +} +}), new objj_method(sel_getUid("array"), function $CPArray__array(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "init"); +} +}), new objj_method(sel_getUid("arrayWithArray:"), function $CPArray__arrayWithArray_(self, _cmd, anArray) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithArray:", anArray); +} +}), new objj_method(sel_getUid("arrayWithObject:"), function $CPArray__arrayWithObject_(self, _cmd, anObject) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithObjects:", anObject); +} +}), new objj_method(sel_getUid("arrayWithObjects:"), function $CPArray__arrayWithObjects_(self, _cmd, anObject) +{ with(self) +{ + var i = 2, + array = objj_msgSend(objj_msgSend(self, "alloc"), "init"), + argument; + for(; i < arguments.length && (argument = arguments[i]) != nil; ++i) + array.push(argument); + return array; +} +}), new objj_method(sel_getUid("arrayWithObjects:count:"), function $CPArray__arrayWithObjects_count_(self, _cmd, objects, aCount) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithObjects:count:", objects, aCount); +} +})]); +} +{ +var the_class = objj_getClass("CPArray") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPArray\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCapacity:"), function $CPArray__initWithCapacity_(self, _cmd, aCapacity) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("addObject:"), function $CPArray__addObject_(self, _cmd, anObject) +{ with(self) +{ + push(anObject); +} +}), new objj_method(sel_getUid("addObjectsFromArray:"), function $CPArray__addObjectsFromArray_(self, _cmd, anArray) +{ with(self) +{ + splice.apply(self, [length, 0].concat(anArray)); +} +}), new objj_method(sel_getUid("insertObject:atIndex:"), function $CPArray__insertObject_atIndex_(self, _cmd, anObject, anIndex) +{ with(self) +{ + splice(anIndex, 0, anObject); +} +}), new objj_method(sel_getUid("insertObjects:atIndexes:"), function $CPArray__insertObjects_atIndexes_(self, _cmd, objects, indexes) +{ with(self) +{ + var indexesCount = objj_msgSend(indexes, "count"), + objectsCount = objj_msgSend(objects, "count"); + if(indexesCount !== objectsCount) + objj_msgSend(CPException, "raise:reason:", CPRangeException, "the counts of the passed-in array (" + objectsCount + ") and index set (" + indexesCount + ") must be identical."); + var lastIndex = objj_msgSend(indexes, "lastIndex"); + if(lastIndex >= objj_msgSend(self, "count") + indexesCount) + objj_msgSend(CPException, "raise:reason:", CPRangeException, "the last index (" + lastIndex + ") must be less than the sum of the original count (" + objj_msgSend(self, "count") + ") and the insertion count (" + indexesCount + ")."); + var index = 0, + currentIndex = objj_msgSend(indexes, "firstIndex"); + for (; index < objectsCount; ++index, currentIndex = objj_msgSend(indexes, "indexGreaterThanIndex:", currentIndex)) + objj_msgSend(self, "insertObject:atIndex:", objects[index], currentIndex); +} +}), new objj_method(sel_getUid("replaceObjectAtIndex:withObject:"), function $CPArray__replaceObjectAtIndex_withObject_(self, _cmd, anIndex, anObject) +{ with(self) +{ + self[anIndex] = anObject; +} +}), new objj_method(sel_getUid("replaceObjectsAtIndexes:withObjects:"), function $CPArray__replaceObjectsAtIndexes_withObjects_(self, _cmd, anIndexSet, objects) +{ with(self) +{ + var i = 0, + index = objj_msgSend(anIndexSet, "firstIndex"); + while(index != CPNotFound) + { + objj_msgSend(self, "replaceObjectAtIndex:withObject:", index, objects[i++]); + index = objj_msgSend(anIndexSet, "indexGreaterThanIndex:", index); + } +} +}), new objj_method(sel_getUid("replaceObjectsInRange:withObjectsFromArray:range:"), function $CPArray__replaceObjectsInRange_withObjectsFromArray_range_(self, _cmd, aRange, anArray, otherRange) +{ with(self) +{ + if (!otherRange.location && otherRange.length == objj_msgSend(anArray, "count")) + objj_msgSend(self, "replaceObjectsInRange:withObjectsFromArray:", aRange, anArray); + else + splice.apply(self, [aRange.location, aRange.length].concat(objj_msgSend(anArray, "subarrayWithRange:", otherRange))); +} +}), new objj_method(sel_getUid("replaceObjectsInRange:withObjectsFromArray:"), function $CPArray__replaceObjectsInRange_withObjectsFromArray_(self, _cmd, aRange, anArray) +{ with(self) +{ + splice.apply(self, [aRange.location, aRange.length].concat(anArray)); +} +}), new objj_method(sel_getUid("setArray:"), function $CPArray__setArray_(self, _cmd, anArray) +{ with(self) +{ + if(self == anArray) return; + splice.apply(self, [0, length].concat(anArray)); +} +}), new objj_method(sel_getUid("removeAllObjects"), function $CPArray__removeAllObjects(self, _cmd) +{ with(self) +{ + splice(0, length); +} +}), new objj_method(sel_getUid("removeLastObject"), function $CPArray__removeLastObject(self, _cmd) +{ with(self) +{ + pop(); +} +}), new objj_method(sel_getUid("removeObject:"), function $CPArray__removeObject_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "removeObject:inRange:", anObject, CPMakeRange(0, length)); +} +}), new objj_method(sel_getUid("removeObject:inRange:"), function $CPArray__removeObject_inRange_(self, _cmd, anObject, aRange) +{ with(self) +{ + var index; + while ((index = objj_msgSend(self, "indexOfObject:inRange:", anObject, aRange)) != CPNotFound) + { + objj_msgSend(self, "removeObjectAtIndex:", index); + aRange = CPIntersectionRange(CPMakeRange(index, length - index), aRange); + } +} +}), new objj_method(sel_getUid("removeObjectAtIndex:"), function $CPArray__removeObjectAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + splice(anIndex, 1); +} +}), new objj_method(sel_getUid("removeObjectsAtIndexes:"), function $CPArray__removeObjectsAtIndexes_(self, _cmd, anIndexSet) +{ with(self) +{ + var index = objj_msgSend(anIndexSet, "lastIndex"); + while (index != CPNotFound) + { + objj_msgSend(self, "removeObjectAtIndex:", index); + index = objj_msgSend(anIndexSet, "indexLessThanIndex:", index); + } +} +}), new objj_method(sel_getUid("removeObjectIdenticalTo:"), function $CPArray__removeObjectIdenticalTo_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "removeObjectIdenticalTo:inRange:", anObject, CPMakeRange(0, length)); +} +}), new objj_method(sel_getUid("removeObjectIdenticalTo:inRange:"), function $CPArray__removeObjectIdenticalTo_inRange_(self, _cmd, anObject, aRange) +{ with(self) +{ + var index; + while ((index = objj_msgSend(self, "indexOfObjectIdenticalTo:inRange:", anObject, aRange)) != CPNotFound) + { + objj_msgSend(self, "removeObjectAtIndex:", index); + aRange = CPIntersectionRange(CPMakeRange(index, length - index), aRange); + } +} +}), new objj_method(sel_getUid("removeObjectsInArray:"), function $CPArray__removeObjectsInArray_(self, _cmd, anArray) +{ with(self) +{ + var index = 0, + count = objj_msgSend(anArray, "count"); + for (; index < count; ++index) + objj_msgSend(self, "removeObject:", anArray[index]); +} +}), new objj_method(sel_getUid("removeObjectsInRange:"), function $CPArray__removeObjectsInRange_(self, _cmd, aRange) +{ with(self) +{ + splice(aRange.location, aRange.length); +} +}), new objj_method(sel_getUid("exchangeObjectAtIndex:withObjectAtIndex:"), function $CPArray__exchangeObjectAtIndex_withObjectAtIndex_(self, _cmd, anIndex, otherIndex) +{ with(self) +{ + var temporary = self[anIndex]; + self[anIndex] = self[otherIndex]; + self[otherIndex] = temporary; +} +}), new objj_method(sel_getUid("sortUsingDescriptors:"), function $CPArray__sortUsingDescriptors_(self, _cmd, descriptors) +{ with(self) +{ + sort(function(lhs, rhs) + { + var i = 0, + count = objj_msgSend(descriptors, "count"), + result = CPOrderedSame; + while(i < count) + if((result = objj_msgSend(descriptors[i++], "compareObject:withObject:", lhs, rhs)) != CPOrderedSame) + return result; + return result; + }); +} +}), new objj_method(sel_getUid("sortUsingFunction:context:"), function $CPArray__sortUsingFunction_context_(self, _cmd, aFunction, aContext) +{ with(self) +{ + sort(function(lhs, rhs) { return aFunction(lhs, rhs, aContext); }); +} +}), new objj_method(sel_getUid("sortUsingSelector:"), function $CPArray__sortUsingSelector_(self, _cmd, aSelector) +{ with(self) +{ + sort(function(lhs, rhs) { return objj_msgSend(lhs, aSelector, rhs); }); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("arrayWithCapacity:"), function $CPArray__arrayWithCapacity_(self, _cmd, aCapacity) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithCapacity:", aCapacity); +} +})]); +} +{ +var the_class = objj_getClass("CPArray") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPArray\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPArray__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + return objj_msgSend(aCoder, "decodeObjectForKey:", "CP.objects"); +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPArray__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "_encodeArrayOfObjects:forKey:", self, "CP.objects"); +} +})]); +} +{var the_class = objj_allocateClassPair(CPArray, "CPMutableArray"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +} +Array.prototype.isa = CPArray; +objj_msgSend(CPArray, "initialize"); + +p;20;CPAttributedString.ji;10;CPObject.ji;10;CPString.ji;14;CPDictionary.ji;9;CPRange.jc;19869; +{var the_class = objj_allocateClassPair(CPObject, "CPAttributedString"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_string"), new objj_ivar("_rangeEntries")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithString:"), function $CPAttributedString__initWithString_(self, _cmd, aString) +{ with(self) +{ + return objj_msgSend(self, "initWithString:attributes:", aString, nil); +} +}), new objj_method(sel_getUid("initWithAttributedString:"), function $CPAttributedString__initWithAttributedString_(self, _cmd, aString) +{ with(self) +{ + var string = objj_msgSend(self, "initWithString:attributes:", "", nil); + objj_msgSend(string, "setAttributedString:", aString); + return string; +} +}), new objj_method(sel_getUid("initWithString:attributes:"), function $CPAttributedString__initWithString_attributes_(self, _cmd, aString, attributes) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (!attributes) + attributes = objj_msgSend(CPDictionary, "dictionary"); + _string = ""+aString; + _rangeEntries = [makeRangeEntry(CPMakeRange(0, _string.length), attributes)]; + return self; +} +}), new objj_method(sel_getUid("string"), function $CPAttributedString__string(self, _cmd) +{ with(self) +{ + return _string; +} +}), new objj_method(sel_getUid("mutableString"), function $CPAttributedString__mutableString(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "string"); +} +}), new objj_method(sel_getUid("length"), function $CPAttributedString__length(self, _cmd) +{ with(self) +{ + return _string.length; +} +}), new objj_method(sel_getUid("_indexOfEntryWithIndex:"), function $CPAttributedString___indexOfEntryWithIndex_(self, _cmd, anIndex) +{ with(self) +{ + if (anIndex < 0 || anIndex > _string.length || anIndex === undefined) + return CPNotFound; + var sortFunction = function(index, entry) + { + if (CPLocationInRange(index, entry.range)) + return CPOrderedSame; + else if (CPMaxRange(entry.range) <= index) + return CPOrderedDescending; + else + return CPOrderedAscending; + } + return objj_msgSend(_rangeEntries, "indexOfObject:sortedByFunction:", anIndex, sortFunction); +} +}), new objj_method(sel_getUid("attributesAtIndex:effectiveRange:"), function $CPAttributedString__attributesAtIndex_effectiveRange_(self, _cmd, anIndex, aRange) +{ with(self) +{ + var entryIndex = objj_msgSend(self, "_indexOfEntryWithIndex:", anIndex); + if (entryIndex == CPNotFound) + return nil; + var matchingRange = _rangeEntries[entryIndex]; + if (aRange) + { + aRange.location = matchingRange.range.location; + aRange.length = matchingRange.range.length; + } + return matchingRange.attributes; +} +}), new objj_method(sel_getUid("attributesAtIndex:longestEffectiveRange:inRange:"), function $CPAttributedString__attributesAtIndex_longestEffectiveRange_inRange_(self, _cmd, anIndex, aRange, rangeLimit) +{ with(self) +{ + var startingEntryIndex = objj_msgSend(self, "_indexOfEntryWithIndex:", anIndex); + if (startingEntryIndex == CPNotFound) + return nil; + if (!aRange) + return _rangeEntries[startingEntryIndex].attributes; + if (CPRangeInRange(_rangeEntries[startingEntryIndex].range, rangeLimit)) + { + aRange.location = rangeLimit.location; + aRange.length = rangeLimit.length; + return _rangeEntries[startingEntryIndex].attributes; + } + var nextRangeIndex = startingEntryIndex - 1, + currentEntry = _rangeEntries[startingEntryIndex], + comparisonDict = currentEntry.attributes; + while (nextRangeIndex >= 0) + { + var nextEntry = _rangeEntries[nextRangeIndex]; + if (CPMaxRange(nextEntry.range) > rangeLimit.location && objj_msgSend(nextEntry.attributes, "isEqualToDictionary:", comparisonDict)) + { + currentEntry = nextEntry; + nextRangeIndex--; + } + else + break; + } + aRange.location = MAX(currentEntry.range.location, rangeLimit.location); + currentEntry = _rangeEntries[startingEntryIndex]; + nextRangeIndex = startingEntryIndex + 1; + while (nextRangeIndex < _rangeEntries.length) + { + var nextEntry = _rangeEntries[nextRangeIndex]; + if (nextEntry.range.location < CPMaxRange(rangeLimit) && objj_msgSend(nextEntry.attributes, "isEqualToDictionary:", comparisonDict)) + { + currentEntry = nextEntry; + nextRangeIndex++; + } + else + break; + } + aRange.length = MIN(CPMaxRange(currentEntry.range), CPMaxRange(rangeLimit)) - aRange.location; + return comparisonDict; +} +}), new objj_method(sel_getUid("attribute:atIndex:effectiveRange:"), function $CPAttributedString__attribute_atIndex_effectiveRange_(self, _cmd, attribute, index, aRange) +{ with(self) +{ + if (!attribute) + { + if (aRange) + { + aRange.location = 0; + aRange.length = _string.length; + } + return nil; + } + return objj_msgSend(objj_msgSend(self, "attributesAtIndex:effectiveRange:", index, aRange), "valueForKey:", attribute); +} +}), new objj_method(sel_getUid("attribute:atIndex:longestEffectiveRange:inRange:"), function $CPAttributedString__attribute_atIndex_longestEffectiveRange_inRange_(self, _cmd, attribute, anIndex, aRange, rangeLimit) +{ with(self) +{ + var startingEntryIndex = objj_msgSend(self, "_indexOfEntryWithIndex:", anIndex); + if (startingEntryIndex == CPNotFound || !attribute) + return nil; + if (!aRange) + return objj_msgSend(_rangeEntries[startingEntryIndex].attributes, "objectForKey:", attribute); + if (CPRangeInRange(_rangeEntries[startingEntryIndex].range, rangeLimit)) + { + aRange.location = rangeLimit.location; + aRange.length = rangeLimit.length; + return objj_msgSend(_rangeEntries[startingEntryIndex].attributes, "objectForKey:", attribute); + } + var nextRangeIndex = startingEntryIndex - 1, + currentEntry = _rangeEntries[startingEntryIndex], + comparisonAttribute = objj_msgSend(currentEntry.attributes, "objectForKey:", attribute); + while (nextRangeIndex >= 0) + { + var nextEntry = _rangeEntries[nextRangeIndex]; + if (CPMaxRange(nextEntry.range) > rangeLimit.location && isEqual(comparisonAttribute, objj_msgSend(nextEntry.attributes, "objectForKey:", attribute))) + { + currentEntry = nextEntry; + nextRangeIndex--; + } + else + break; + } + aRange.location = MAX(currentEntry.range.location, rangeLimit.location); + currentEntry = _rangeEntries[startingEntryIndex]; + nextRangeIndex = startingEntryIndex + 1; + while (nextRangeIndex < _rangeEntries.length) + { + var nextEntry = _rangeEntries[nextRangeIndex]; + if (nextEntry.range.location < CPMaxRange(rangeLimit) && isEqual(comparisonAttribute, objj_msgSend(nextEntry.attributes, "objectForKey:", attribute))) + { + currentEntry = nextEntry; + nextRangeIndex++; + } + else + break; + } + aRange.length = MIN(CPMaxRange(currentEntry.range), CPMaxRange(rangeLimit)) - aRange.location; + return comparisonAttribute; +} +}), new objj_method(sel_getUid("isEqualToAttributedString:"), function $CPAttributedString__isEqualToAttributedString_(self, _cmd, aString) +{ with(self) +{ + if(!aString) + return NO; + if(_string != objj_msgSend(aString, "string")) + return NO; + var myRange = CPMakeRange(), + comparisonRange = CPMakeRange(), + myAttributes = objj_msgSend(self, "attributesAtIndex:effectiveRange:", 0, myRange), + comparisonAttributes = objj_msgSend(aString, "attributesAtIndex:effectiveRange:", 0, comparisonRange), + length = _string.length; + while (CPMaxRange(CPUnionRange(myRange, comparisonRange)) < length) + { + if (CPIntersectionRange(myRange, comparisonRange).length > 0 && !objj_msgSend(myAttributes, "isEqualToDictionary:", comparisonAttributes)) + return NO; + if (CPMaxRange(myRange) < CPMaxRange(comparisonRange)) + myAttributes = objj_msgSend(self, "attributesAtIndex:effectiveRange:", CPMaxRange(myRange), myRange); + else + comparisonAttributes = objj_msgSend(aString, "attributesAtIndex:effectiveRange:", CPMaxRange(comparisonRange), comparisonRange); + } + return YES; +} +}), new objj_method(sel_getUid("isEqual:"), function $CPAttributedString__isEqual_(self, _cmd, anObject) +{ with(self) +{ + if (anObject == self) + return YES; + if (objj_msgSend(anObject, "isKindOfClass:", objj_msgSend(self, "class"))) + return objj_msgSend(self, "isEqualToAttributedString:", anObject); + return NO; +} +}), new objj_method(sel_getUid("attributedSubstringFromRange:"), function $CPAttributedString__attributedSubstringFromRange_(self, _cmd, aRange) +{ with(self) +{ + if (!aRange || CPMaxRange(aRange) > _string.length || aRange.location < 0) + objj_msgSend(CPException, "raise:reason:", CPRangeException, "tried to get attributedSubstring for an invalid range: "+(aRange?CPStringFromRange(aRange):"nil")); + var newString = objj_msgSend(objj_msgSend(CPAttributedString, "alloc"), "initWithString:", _string.substring(aRange.location, CPMaxRange(aRange))), + entryIndex = objj_msgSend(self, "_indexOfEntryWithIndex:", aRange.location), + currentRangeEntry = _rangeEntries[entryIndex], + lastIndex = CPMaxRange(aRange); + newString._rangeEntries = []; + while (currentRangeEntry && CPMaxRange(currentRangeEntry.range) < lastIndex) + { + var newEntry = copyRangeEntry(currentRangeEntry); + newEntry.range.location -= aRange.location; + if (newEntry.range.location < 0) + { + newEntry.range.length += newEntry.range.location; + newEntry.range.location = 0; + } + newString._rangeEntries.push(newEntry); + currentRangeEntry = _rangeEntries[++entryIndex]; + } + if (currentRangeEntry) + { + var newRangeEntry = copyRangeEntry(currentRangeEntry); + newRangeEntry.range.length = CPMaxRange(aRange) - newRangeEntry.range.location; + newRangeEntry.range.location -= aRange.location; + if (newRangeEntry.range.location < 0) + { + newRangeEntry.range.length += newRangeEntry.range.location; + newRangeEntry.range.location = 0; + } + newString._rangeEntries.push(newRangeEntry); + } + return newString; +} +}), new objj_method(sel_getUid("replaceCharactersInRange:withString:"), function $CPAttributedString__replaceCharactersInRange_withString_(self, _cmd, aRange, aString) +{ with(self) +{ + objj_msgSend(self, "beginEditing"); + if (!aString) + aString = ""; + var startingIndex = objj_msgSend(self, "_indexOfEntryWithIndex:", aRange.location), + startingRangeEntry = _rangeEntries[startingIndex], + endingIndex = objj_msgSend(self, "_indexOfEntryWithIndex:", MAX(CPMaxRange(aRange)-1, 0)), + endingRangeEntry = _rangeEntries[endingIndex], + additionalLength = aString.length - aRange.length; + _string = _string.substring(0, aRange.location) + aString + _string.substring(CPMaxRange(aRange)); + if (startingIndex == endingIndex) + startingRangeEntry.range.length += additionalLength; + else + { + endingRangeEntry.range.length = CPMaxRange(endingRangeEntry.range) - CPMaxRange(aRange); + endingRangeEntry.range.location = CPMaxRange(aRange); + startingRangeEntry.range.length = CPMaxRange(aRange) - startingRangeEntry.range.location; + _rangeEntries.splice(startingIndex, endingIndex - startingIndex); + } + endingIndex = startingIndex + 1; + while(endingIndex < _rangeEntries.length) + _rangeEntries[endingIndex++].range.location+=additionalLength; + objj_msgSend(self, "endEditing"); +} +}), new objj_method(sel_getUid("deleteCharactersInRange:"), function $CPAttributedString__deleteCharactersInRange_(self, _cmd, aRange) +{ with(self) +{ + objj_msgSend(self, "replaceCharactersInRange:withString:", aRange, nil); +} +}), new objj_method(sel_getUid("setAttributes:range:"), function $CPAttributedString__setAttributes_range_(self, _cmd, aDictionary, aRange) +{ with(self) +{ + objj_msgSend(self, "beginEditing"); + var startingEntryIndex = objj_msgSend(self, "_indexOfRangeEntryForIndex:splitOnMaxIndex:", aRange.location, YES), + endingEntryIndex = objj_msgSend(self, "_indexOfRangeEntryForIndex:splitOnMaxIndex:", CPMaxRange(aRange), YES), + current = startingEntryIndex; + if (endingEntryIndex == CPNotFound) + endingEntryIndex = _rangeEntries.length; + while (current < endingEntryIndex) + _rangeEntries[current++].attributes = objj_msgSend(aDictionary, "copy"); + objj_msgSend(self, "_coalesceRangeEntriesFromIndex:toIndex:", startingEntryIndex, endingEntryIndex); + objj_msgSend(self, "endEditing"); +} +}), new objj_method(sel_getUid("addAttributes:range:"), function $CPAttributedString__addAttributes_range_(self, _cmd, aDictionary, aRange) +{ with(self) +{ + objj_msgSend(self, "beginEditing"); + var startingEntryIndex = objj_msgSend(self, "_indexOfRangeEntryForIndex:splitOnMaxIndex:", aRange.location, YES), + endingEntryIndex = objj_msgSend(self, "_indexOfRangeEntryForIndex:splitOnMaxIndex:", CPMaxRange(aRange), YES), + current = startingEntryIndex; + if (endingEntryIndex == CPNotFound) + endingEntryIndex = _rangeEntries.length; + while (current < endingEntryIndex) + { + var keys = objj_msgSend(aDictionary, "allKeys"), + count = objj_msgSend(keys, "count"); + while (count--) + objj_msgSend(_rangeEntries[current].attributes, "setObject:forKey:", objj_msgSend(aDictionary, "objectForKey:", keys[count]), keys[count]); + current++; + } + objj_msgSend(self, "_coalesceRangeEntriesFromIndex:toIndex:", startingEntryIndex, endingEntryIndex); + objj_msgSend(self, "endEditing"); +} +}), new objj_method(sel_getUid("addAttribute:value:range:"), function $CPAttributedString__addAttribute_value_range_(self, _cmd, anAttribute, aValue, aRange) +{ with(self) +{ + objj_msgSend(self, "addAttributes:range:", objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", aValue, anAttribute), aRange); +} +}), new objj_method(sel_getUid("removeAttribute:range:"), function $CPAttributedString__removeAttribute_range_(self, _cmd, anAttribute, aRange) +{ with(self) +{ + objj_msgSend(self, "addAttribute:value:range:", anAttribute, nil, aRange); +} +}), new objj_method(sel_getUid("appendAttributedString:"), function $CPAttributedString__appendAttributedString_(self, _cmd, aString) +{ with(self) +{ + objj_msgSend(self, "insertAttributedString:atIndex:", aString, _string.length); +} +}), new objj_method(sel_getUid("insertAttributedString:atIndex:"), function $CPAttributedString__insertAttributedString_atIndex_(self, _cmd, aString, anIndex) +{ with(self) +{ + objj_msgSend(self, "beginEditing"); + if (anIndex < 0 || anIndex > objj_msgSend(self, "length")) + objj_msgSend(CPException, "raise:reason:", CPRangeException, "tried to insert attributed string at an invalid index: "+anIndex); + var entryIndexOfNextEntry = objj_msgSend(self, "_indexOfRangeEntryForIndex:splitOnMaxIndex:", anIndex, YES), + otherRangeEntries = aString._rangeEntries, + length = objj_msgSend(aString, "length"); + if (entryIndexOfNextEntry == CPNotFound) + entryIndexOfNextEntry = _rangeEntries.length; + _string = _string.substring(0, anIndex) + aString._string + _string.substring(anIndex); + var current = entryIndexOfNextEntry; + while (current < _rangeEntries.length) + _rangeEntries[current++].range.location += length; + var newRangeEntryCount = otherRangeEntries.length, + index = 0; + while (index < newRangeEntryCount) + { + var entryCopy = copyRangeEntry(otherRangeEntries[index++]); + entryCopy.range.location += anIndex; + _rangeEntries.splice(entryIndexOfNextEntry-1+index, 0, entryCopy); + } + objj_msgSend(self, "endEditing"); +} +}), new objj_method(sel_getUid("replaceCharactersInRange:withAttributedString:"), function $CPAttributedString__replaceCharactersInRange_withAttributedString_(self, _cmd, aRange, aString) +{ with(self) +{ + objj_msgSend(self, "beginEditing"); + objj_msgSend(self, "deleteCharactersInRange:", aRange); + objj_msgSend(self, "insertAttributedString:atIndex:", aString, aRange.location); + objj_msgSend(self, "endEditing"); +} +}), new objj_method(sel_getUid("setAttributedString:"), function $CPAttributedString__setAttributedString_(self, _cmd, aString) +{ with(self) +{ + objj_msgSend(self, "beginEditing"); + _string = aString._string; + _rangeEntries = []; + for (var i=0, count = aString._rangeEntries.length; i= _rangeEntries.length) + end = _rangeEntries.length -1; + while (current < end) + { + var a = _rangeEntries[current], + b = _rangeEntries[current+1]; + if (objj_msgSend(a.attributes, "isEqualToDictionary:", b.attributes)) + { + a.range.length = CPMaxRange(b.range) - a.range.location; + _rangeEntries.splice(current+1, 1); + end--; + } + else + current++; + } +} +}), new objj_method(sel_getUid("beginEditing"), function $CPAttributedString__beginEditing(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("endEditing"), function $CPAttributedString__endEditing(self, _cmd) +{ with(self) +{ +} +})]); +} +{var the_class = objj_allocateClassPair(CPAttributedString, "CPMutableAttributedString"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +} +var isEqual = isEqual= function(a, b) +{ + if (a == b) + return YES; + if (objj_msgSend(a, "respondsToSelector:", sel_getUid("isEqual:")) && objj_msgSend(a, "isEqual:", b)) + return YES; + return NO; +} +var makeRangeEntry = makeRangeEntry= function( aRange, attributes) +{ + return {range:aRange, attributes:objj_msgSend(attributes, "copy")}; +} +var copyRangeEntry = copyRangeEntry= function( aRangeEntry) +{ + return makeRangeEntry(CPCopyRange(aRangeEntry.range), objj_msgSend(aRangeEntry.attributes, "copy")); +} +var splitRangeEntry = splitRangeEntryAtIndex= function( aRangeEntry, anIndex) +{ + var newRangeEntry = copyRangeEntry(aRangeEntry), + cachedIndex = CPMaxRange(aRangeEntry.range); + aRangeEntry.range.length = anIndex - aRangeEntry.range.location; + newRangeEntry.range.location = anIndex; + newRangeEntry.range.length = cachedIndex - anIndex; + newRangeEntry.attributes = objj_msgSend(newRangeEntry.attributes, "copy"); + return [aRangeEntry, newRangeEntry]; +} + +p;10;CPBundle.ji;10;CPObject.ji;14;CPDictionary.ji;14;CPURLRequest.jc;5166; +{var the_class = objj_allocateClassPair(CPObject, "CPBundle"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithPath:"), function $CPBundle__initWithPath_(self, _cmd, aPath) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + path = aPath; + objj_setBundleForPath(path, self); + } + return self; +} +}), new objj_method(sel_getUid("classNamed:"), function $CPBundle__classNamed_(self, _cmd, aString) +{ with(self) +{ +} +}), new objj_method(sel_getUid("bundlePath"), function $CPBundle__bundlePath(self, _cmd) +{ with(self) +{ + return objj_msgSend(path, "stringByDeletingLastPathComponent"); +} +}), new objj_method(sel_getUid("resourcePath"), function $CPBundle__resourcePath(self, _cmd) +{ with(self) +{ + var resourcePath = objj_msgSend(self, "bundlePath"); + if (resourcePath.length) + resourcePath += '/'; + return resourcePath + "Resources"; +} +}), new objj_method(sel_getUid("principalClass"), function $CPBundle__principalClass(self, _cmd) +{ with(self) +{ + var className = objj_msgSend(self, "objectForInfoDictionaryKey:", "CPPrincipalClass"); + return className ? CPClassFromString(className) : Nil; +} +}), new objj_method(sel_getUid("pathForResource:"), function $CPBundle__pathForResource_(self, _cmd, aFilename) +{ with(self) +{ + return objj_msgSend(self, "resourcePath") + '/' + aFilename; +} +}), new objj_method(sel_getUid("infoDictionary"), function $CPBundle__infoDictionary(self, _cmd) +{ with(self) +{ + return info; +} +}), new objj_method(sel_getUid("objectForInfoDictionaryKey:"), function $CPBundle__objectForInfoDictionaryKey_(self, _cmd, aKey) +{ with(self) +{ + return objj_msgSend(info, "objectForKey:", aKey); +} +}), new objj_method(sel_getUid("loadWithDelegate:"), function $CPBundle__loadWithDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + self._delegate = aDelegate; + self._infoConnection = objj_msgSend(CPURLConnection, "connectionWithRequest:delegate:", objj_msgSend(CPURLRequest, "requestWithURL:", objj_msgSend(self, "bundlePath") + "/Info.plist"), self); +} +}), new objj_method(sel_getUid("connection:didReceiveData:"), function $CPBundle__connection_didReceiveData_(self, _cmd, aConnection, data) +{ with(self) +{ + if (aConnection === self._infoConnection) + { + info = CPPropertyListCreateFromData(objj_msgSend(CPData, "dataWithString:", data)); + var platform = '/', + platforms = objj_msgSend(self, "objectForInfoDictionaryKey:", "CPBundlePlatforms"); + if (platforms) + { + platform = objj_msgSend(platforms, "firstObjectCommonWithArray:", OBJJ_PLATFORMS); + platform = platform ? '/' + platform + ".platform/" : '/'; + } + objj_msgSend(CPURLConnection, "connectionWithRequest:delegate:", objj_msgSend(CPURLRequest, "requestWithURL:", objj_msgSend(self, "bundlePath") + platform + objj_msgSend(self, "objectForInfoDictionaryKey:", "CPBundleExecutable")), self); + } + else + { + objj_decompile(objj_msgSend(data, "string"), self); + var context = new objj_context(); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("bundleDidFinishLoading:"))) + context.didCompleteCallback = function() { objj_msgSend(_delegate, "bundleDidFinishLoading:", self); }; + var files = objj_msgSend(self, "objectForInfoDictionaryKey:", "CPBundleReplacedFiles"), + count = files.length, + bundlePath = objj_msgSend(self, "bundlePath"); + while (count--) + { + var fileName = files[count]; + if (fileName.indexOf(".j") === fileName.length - 2) + context.pushFragment(fragment_create_file(bundlePath + '/' + fileName, new objj_bundle(""), YES, NULL)); + } + if (context.fragments.length) + context.evaluate(); + else + objj_msgSend(_delegate, "bundleDidFinishLoading:", self); + } +} +}), new objj_method(sel_getUid("connection:didFailWithError:"), function $CPBundle__connection_didFailWithError_(self, _cmd, aConnection, anError) +{ with(self) +{ + alert("Couldnot find bundle:" + anError) +} +}), new objj_method(sel_getUid("connectionDidFinishLoading:"), function $CPBundle__connectionDidFinishLoading_(self, _cmd, aConnection) +{ with(self) +{ +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("alloc"), function $CPBundle__alloc(self, _cmd) +{ with(self) +{ + return new objj_bundle; +} +}), new objj_method(sel_getUid("bundleWithPath:"), function $CPBundle__bundleWithPath_(self, _cmd, aPath) +{ with(self) +{ + return objj_getBundleWithPath(aPath); +} +}), new objj_method(sel_getUid("bundleForClass:"), function $CPBundle__bundleForClass_(self, _cmd, aClass) +{ with(self) +{ + return objj_bundleForClass(aClass); +} +}), new objj_method(sel_getUid("mainBundle"), function $CPBundle__mainBundle(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPBundle, "bundleWithPath:", "Info.plist"); +} +})]); +} +objj_bundle.prototype.isa = CPBundle; + +p;9;CPCoder.ji;10;CPObject.ji;13;CPException.jc;2598; +{var the_class = objj_allocateClassPair(CPObject, "CPCoder"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("allowsKeyedCoding"), function $CPCoder__allowsKeyedCoding(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("encodeValueOfObjCType:at:"), function $CPCoder__encodeValueOfObjCType_at_(self, _cmd, aType, anObject) +{ with(self) +{ + CPInvalidAbstractInvocation(); +} +}), new objj_method(sel_getUid("encodeDataObject:"), function $CPCoder__encodeDataObject_(self, _cmd, aData) +{ with(self) +{ + CPInvalidAbstractInvocation(); +} +}), new objj_method(sel_getUid("encodeObject:"), function $CPCoder__encodeObject_(self, _cmd, anObject) +{ with(self) +{ +} +}), new objj_method(sel_getUid("encodePoint:"), function $CPCoder__encodePoint_(self, _cmd, aPoint) +{ with(self) +{ + objj_msgSend(self, "encodeNumber:", aPoint.x); + objj_msgSend(self, "encodeNumber:", aPoint.y); +} +}), new objj_method(sel_getUid("encodeRect:"), function $CPCoder__encodeRect_(self, _cmd, aRect) +{ with(self) +{ + objj_msgSend(self, "encodePoint:", aRect.origin); + objj_msgSend(self, "encodeSize:", aRect.size); +} +}), new objj_method(sel_getUid("encodeSize:"), function $CPCoder__encodeSize_(self, _cmd, aSize) +{ with(self) +{ + objj_msgSend(self, "encodeNumber:", aSize.width); + objj_msgSend(self, "encodeNumber:", aSize.height); +} +}), new objj_method(sel_getUid("encodePropertyList:"), function $CPCoder__encodePropertyList_(self, _cmd, aPropertyList) +{ with(self) +{ +} +}), new objj_method(sel_getUid("encodeRootObject:"), function $CPCoder__encodeRootObject_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "encodeObject:", anObject); +} +}), new objj_method(sel_getUid("encodeBycopyObject:"), function $CPCoder__encodeBycopyObject_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "encodeObject:", object); +} +}), new objj_method(sel_getUid("encodeConditionalObject:"), function $CPCoder__encodeConditionalObject_(self, _cmd, anObject) +{ with(self) +{ + objj_msgSend(self, "encodeObject:", object); +} +})]); +} +{ +var the_class = objj_getClass("CPObject") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPObject\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("awakeAfterUsingCoder:"), function $CPObject__awakeAfterUsingCoder_(self, _cmd, aDecoder) +{ with(self) +{ + return self; +} +})]); +} + +p;14;CPCountedSet.ji;7;CPSet.jc;1792; + + + + +{var the_class = objj_allocateClassPair(CPMutableSet, "CPCountedSet"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_counts")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("addObject:"), function $CPCountedSet__addObject_(self, _cmd, anObject) +{ with(self) +{ + if (!_counts) + _counts = {}; + + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPMutableSet") }, "addObject:", anObject); + + var hash = objj_msgSend(anObject, "hash"); + + if (_counts[hash] === undefined) + _counts[hash] = 1; + else + ++_counts[hash]; +} +}), new objj_method(sel_getUid("removeObject:"), function $CPCountedSet__removeObject_(self, _cmd, anObject) +{ with(self) +{ + if (!_counts) + return; + + var hash = objj_msgSend(anObject, "hash"); + + if (_counts[hash] === undefined) + return; + + else + { + --_counts[hash]; + + if (_counts[hash] === 0) + { + delete _counts[hash]; + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPMutableSet") }, "removeObject:", anObject); + } + } +} +}), new objj_method(sel_getUid("removeAllObjects"), function $CPCountedSet__removeAllObjects(self, _cmd) +{ with(self) +{ + objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPMutableSet") }, "removeAllObjects"); + _counts = {}; +} +}), new objj_method(sel_getUid("countForObject:"), function $CPCountedSet__countForObject_(self, _cmd, anObject) +{ with(self) +{ + if (!_counts) + _counts = {}; + + var hash = objj_msgSend(anObject, "hash"); + + if (_counts[hash] === undefined) + return 0; + + return _counts[hash]; +} +})]); +} + +p;8;CPData.ji;10;CPObject.ji;10;CPString.jc;2933; +{var the_class = objj_allocateClassPair(CPObject, "CPData"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_plistObject")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithString:"), function $CPData__initWithString_(self, _cmd, aString) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + string = aString; + return self; +} +}), new objj_method(sel_getUid("initWithPlistObject:"), function $CPData__initWithPlistObject_(self, _cmd, aPlistObject) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _plistObject = aPlistObject; + return self; +} +}), new objj_method(sel_getUid("length"), function $CPData__length(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "string"), "length"); +} +}), new objj_method(sel_getUid("description"), function $CPData__description(self, _cmd) +{ with(self) +{ + return string; +} +}), new objj_method(sel_getUid("string"), function $CPData__string(self, _cmd) +{ with(self) +{ + if (!string && _plistObject) + string = objj_msgSend(objj_msgSend(CPPropertyListSerialization, "dataFromPropertyList:format:errorDescription:", _plistObject, CPPropertyList280NorthFormat_v1_0, NULL), "string"); + return string; +} +}), new objj_method(sel_getUid("setString:"), function $CPData__setString_(self, _cmd, aString) +{ with(self) +{ + string = aString; + _plistObject = nil; +} +}), new objj_method(sel_getUid("plistObject"), function $CPData__plistObject(self, _cmd) +{ with(self) +{ + if (string && !_plistObject) + _plistObject = objj_msgSend(CPPropertyListSerialization, "propertyListFromData:format:errorDescription:", self, 0, NULL); + return _plistObject; +} +}), new objj_method(sel_getUid("setPlistObject:"), function $CPData__setPlistObject_(self, _cmd, aPlistObject) +{ with(self) +{ + string = nil; + _plistObject = aPlistObject; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("alloc"), function $CPData__alloc(self, _cmd) +{ with(self) +{ + return new objj_data(); +} +}), new objj_method(sel_getUid("data"), function $CPData__data(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithPlistObject:", nil); +} +}), new objj_method(sel_getUid("dataWithString:"), function $CPData__dataWithString_(self, _cmd, aString) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithString:", aString); +} +}), new objj_method(sel_getUid("dataWithPlistObject:"), function $CPData__dataWithPlistObject_(self, _cmd, aPlistObject) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithPlistObject:", aPlistObject); +} +})]); +} +objj_data.prototype.isa = CPData; + +p;8;CPDate.ji;10;CPObject.ji;10;CPString.jc;4765; +var CPDateReferenceDate = new Date(Date.UTC(2001,1,1,0,0,0,0)); +{var the_class = objj_allocateClassPair(CPObject, "CPDate"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithTimeIntervalSinceNow:"), function $CPDate__initWithTimeIntervalSinceNow_(self, _cmd, seconds) +{ with(self) +{ + self = new Date((new Date()).getTime() + seconds * 1000); + return self; +} +}), new objj_method(sel_getUid("initWithTimeIntervalSince1970:"), function $CPDate__initWithTimeIntervalSince1970_(self, _cmd, seconds) +{ with(self) +{ + self = new Date(seconds * 1000); + return self; +} +}), new objj_method(sel_getUid("initWithTimeIntervalSinceReferenceDate:"), function $CPDate__initWithTimeIntervalSinceReferenceDate_(self, _cmd, seconds) +{ with(self) +{ + self = objj_msgSend(self, "initWithTimeInterval:sinceDate:", seconds, CPDateReferenceDate); + return self; +} +}), new objj_method(sel_getUid("initWithTimeInterval:sinceDate:"), function $CPDate__initWithTimeInterval_sinceDate_(self, _cmd, seconds, refDate) +{ with(self) +{ + self = new Date(refDate.getTime() + seconds * 1000); + return self; +} +}), new objj_method(sel_getUid("initWithString:"), function $CPDate__initWithString_(self, _cmd, description) +{ with(self) +{ + self = new Date(description); + return self; +} +}), new objj_method(sel_getUid("timeIntervalSinceDate:"), function $CPDate__timeIntervalSinceDate_(self, _cmd, anotherDate) +{ with(self) +{ + return (self.getTime() - anotherDate.getTime()) / 1000.0; +} +}), new objj_method(sel_getUid("timeIntervalSinceNow"), function $CPDate__timeIntervalSinceNow(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "timeIntervalSinceDate:", objj_msgSend(CPDate, "date")); +} +}), new objj_method(sel_getUid("timeIntervalSince1970"), function $CPDate__timeIntervalSince1970(self, _cmd) +{ with(self) +{ + return self.getTime() / 1000.0; +} +}), new objj_method(sel_getUid("timeIntervalSinceReferenceDate"), function $CPDate__timeIntervalSinceReferenceDate(self, _cmd) +{ with(self) +{ + return (self.getTime() - CPDateReferenceDate.getTime()) / 1000.0; +} +}), new objj_method(sel_getUid("isEqualToDate:"), function $CPDate__isEqualToDate_(self, _cmd, anotherDate) +{ with(self) +{ + return !(self < anotherDate || self > anotherDate); +} +}), new objj_method(sel_getUid("compare:"), function $CPDate__compare_(self, _cmd, anotherDate) +{ with(self) +{ + return (self > anotherDate) ? CPOrderedDescending : ((self < anotherDate) ? CPOrderedAscending : CPOrderedSame); +} +}), new objj_method(sel_getUid("earlierDate:"), function $CPDate__earlierDate_(self, _cmd, anotherDate) +{ with(self) +{ + return (self < anotherDate) ? self : anotherDate; +} +}), new objj_method(sel_getUid("laterDate:"), function $CPDate__laterDate_(self, _cmd, anotherDate) +{ with(self) +{ + return (self > anotherDate) ? self : anotherDate; +} +}), new objj_method(sel_getUid("description"), function $CPDate__description(self, _cmd) +{ with(self) +{ + return self.toString(); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("alloc"), function $CPDate__alloc(self, _cmd) +{ with(self) +{ + return new Date; +} +}), new objj_method(sel_getUid("date"), function $CPDate__date(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "init"); +} +}), new objj_method(sel_getUid("dateWithTimeIntervalSinceNow:"), function $CPDate__dateWithTimeIntervalSinceNow_(self, _cmd, seconds) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPDate, "alloc"), "initWithTimeIntervalSinceNow:", seconds); +} +}), new objj_method(sel_getUid("dateWithTimeIntervalSince1970:"), function $CPDate__dateWithTimeIntervalSince1970_(self, _cmd, seconds) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPDate, "alloc"), "initWithTimeIntervalSince1970:", seconds); +} +}), new objj_method(sel_getUid("dateWithTimeIntervalSinceReferenceDate:"), function $CPDate__dateWithTimeIntervalSinceReferenceDate_(self, _cmd, seconds) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPDate, "alloc"), "initWithTimeIntervalSinceReferenceDate:", seconds); +} +}), new objj_method(sel_getUid("distantPast"), function $CPDate__distantPast(self, _cmd) +{ with(self) +{ + return new Date(-10000,1,1,0,0,0,0); +} +}), new objj_method(sel_getUid("distantFuture"), function $CPDate__distantFuture(self, _cmd) +{ with(self) +{ + return new Date(10000,1,1,0,0,0,0); +} +}), new objj_method(sel_getUid("timeIntervalSinceReferenceDate"), function $CPDate__timeIntervalSinceReferenceDate(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPDate, "date"), "timeIntervalSinceReferenceDate"); +} +})]); +} +Date.prototype.isa = CPDate; + +p;14;CPDictionary.ji;10;CPObject.ji;14;CPEnumerator.ji;13;CPException.jc;10057; +{var the_class = objj_allocateClassPair(CPEnumerator, "_CPDictionaryValueEnumerator"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_keyEnumerator"), new objj_ivar("_dictionary")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithDictionary:"), function $_CPDictionaryValueEnumerator__initWithDictionary_(self, _cmd, aDictionary) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPEnumerator") }, "init"); + if (self) + { + _keyEnumerator = objj_msgSend(aDictionary, "keyEnumerator"); + _dictionary = aDictionary; + } + return self; +} +}), new objj_method(sel_getUid("nextObject"), function $_CPDictionaryValueEnumerator__nextObject(self, _cmd) +{ with(self) +{ + var key = objj_msgSend(_keyEnumerator, "nextObject"); + if (!key) + return nil; + return objj_msgSend(_dictionary, "objectForKey:", key); +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPDictionary"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithDictionary:"), function $CPDictionary__initWithDictionary_(self, _cmd, aDictionary) +{ with(self) +{ + var key = "", + dictionary = objj_msgSend(objj_msgSend(CPDictionary, "alloc"), "init"); + for (key in aDictionary._buckets) + objj_msgSend(dictionary, "setObject:forKey:", objj_msgSend(aDictionary, "objectForKey:", key), key); + return dictionary; +} +}), new objj_method(sel_getUid("initWithObjects:forKeys:"), function $CPDictionary__initWithObjects_forKeys_(self, _cmd, objects, keyArray) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (objj_msgSend(objects, "count") != objj_msgSend(keyArray, "count")) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "Counts are different.("+objj_msgSend(objects, "count")+"!="+objj_msgSend(keyArray, "count")+")"); + if (self) + { + var i = objj_msgSend(keyArray, "count"); + while (i--) + objj_msgSend(self, "setObject:forKey:", objects[i], keyArray[i]); + } + return self; +} +}), new objj_method(sel_getUid("initWithObjectsAndKeys:"), function $CPDictionary__initWithObjectsAndKeys_(self, _cmd, firstObject) +{ with(self) +{ + var argCount = arguments.length; + if (argCount % 2 !== 0) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "Key-value count is mismatched. (" + argCount + " arguments passed)"); + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + var index = 2; + for(; index < argCount; index += 2) + { + var value = arguments[index]; + if (value === nil) + break; + objj_msgSend(self, "setObject:forKey:", value, arguments[index + 1]); + } + } + return self; +} +}), new objj_method(sel_getUid("copy"), function $CPDictionary__copy(self, _cmd) +{ with(self) +{ + return objj_msgSend(CPDictionary, "dictionaryWithDictionary:", self); +} +}), new objj_method(sel_getUid("count"), function $CPDictionary__count(self, _cmd) +{ with(self) +{ + return count; +} +}), new objj_method(sel_getUid("allKeys"), function $CPDictionary__allKeys(self, _cmd) +{ with(self) +{ + return _keys; +} +}), new objj_method(sel_getUid("allValues"), function $CPDictionary__allValues(self, _cmd) +{ with(self) +{ + var index = _keys.length, + values = []; + while (index--) + values.push(dictionary_getValue(self, [_keys[index]])); + return values; +} +}), new objj_method(sel_getUid("keyEnumerator"), function $CPDictionary__keyEnumerator(self, _cmd) +{ with(self) +{ + return objj_msgSend(_keys, "objectEnumerator"); +} +}), new objj_method(sel_getUid("objectEnumerator"), function $CPDictionary__objectEnumerator(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(_CPDictionaryValueEnumerator, "alloc"), "initWithDictionary:", self); +} +}), new objj_method(sel_getUid("isEqualToDictionary:"), function $CPDictionary__isEqualToDictionary_(self, _cmd, aDictionary) +{ with(self) +{ + if (count !== objj_msgSend(aDictionary, "count")) + return NO; + var index = count; + while (index--) + { + var currentKey = _keys[index], + lhsObject = _buckets[currentKey], + rhsObject = aDictionary._buckets[currentKey]; + if (lhsObject === rhsObject) + continue; + if (lhsObject.isa && rhsObject.isa && objj_msgSend(lhsObject, "respondsToSelector:", sel_getUid("isEqual:")) && objj_msgSend(lhsObject, "isEqual:", rhsObject)) + continue; + return NO; + } + return YES; +} +}), new objj_method(sel_getUid("objectForKey:"), function $CPDictionary__objectForKey_(self, _cmd, aKey) +{ with(self) +{ + var object = _buckets[aKey]; + return (object === undefined) ? nil : object; +} +}), new objj_method(sel_getUid("removeAllObjects"), function $CPDictionary__removeAllObjects(self, _cmd) +{ with(self) +{ + _keys = []; + count = 0; + _buckets = {}; +} +}), new objj_method(sel_getUid("removeObjectForKey:"), function $CPDictionary__removeObjectForKey_(self, _cmd, aKey) +{ with(self) +{ + dictionary_removeValue(self, aKey); +} +}), new objj_method(sel_getUid("removeObjectsForKeys:"), function $CPDictionary__removeObjectsForKeys_(self, _cmd, allKeys) +{ with(self) +{ + var index = allKeys.length; + while (index--) + dictionary_removeValue(self, allKeys[index]); +} +}), new objj_method(sel_getUid("setObject:forKey:"), function $CPDictionary__setObject_forKey_(self, _cmd, anObject, aKey) +{ with(self) +{ + dictionary_setValue(self, aKey, anObject); +} +}), new objj_method(sel_getUid("addEntriesFromDictionary:"), function $CPDictionary__addEntriesFromDictionary_(self, _cmd, aDictionary) +{ with(self) +{ + if (!aDictionary) + return; + var keys = objj_msgSend(aDictionary, "allKeys"), + index = objj_msgSend(keys, "count"); + while (index--) + { + var key = keys[index]; + objj_msgSend(self, "setObject:forKey:", objj_msgSend(aDictionary, "objectForKey:", key), key); + } +} +}), new objj_method(sel_getUid("description"), function $CPDictionary__description(self, _cmd) +{ with(self) +{ + var description = "CPDictionary {\n"; + var i = _keys.length; + while (i--) + { + description += _keys[i] + ":"; + var object = _buckets[_keys[i]]; + if (object && object.isa) + description += objj_msgSend(object, "description"); + else + description += object; + description += "\n"; + } + description += "}"; + return description; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("alloc"), function $CPDictionary__alloc(self, _cmd) +{ with(self) +{ + return new objj_dictionary(); +} +}), new objj_method(sel_getUid("dictionary"), function $CPDictionary__dictionary(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "init"); +} +}), new objj_method(sel_getUid("dictionaryWithDictionary:"), function $CPDictionary__dictionaryWithDictionary_(self, _cmd, aDictionary) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithDictionary:", aDictionary); +} +}), new objj_method(sel_getUid("dictionaryWithObject:forKey:"), function $CPDictionary__dictionaryWithObject_forKey_(self, _cmd, anObject, aKey) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithObjects:forKeys:", [anObject], [aKey]); +} +}), new objj_method(sel_getUid("dictionaryWithObjects:forKeys:"), function $CPDictionary__dictionaryWithObjects_forKeys_(self, _cmd, objects, keys) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithObjects:forKeys:", objects, keys); +} +}), new objj_method(sel_getUid("dictionaryWithJSObject:"), function $CPDictionary__dictionaryWithJSObject_(self, _cmd, object) +{ with(self) +{ + return objj_msgSend(self, "dictionaryWithJSObject:recursively:", object, NO); +} +}), new objj_method(sel_getUid("dictionaryWithJSObject:recursively:"), function $CPDictionary__dictionaryWithJSObject_recursively_(self, _cmd, object, recursively) +{ with(self) +{ + var dictionary = objj_msgSend(objj_msgSend(self, "alloc"), "init"); + for (var key in object) + { + var value = object[key]; + if (recursively && value.constructor === Object) + value = objj_msgSend(CPDictionary, "dictionaryWithJSObject:recursively:", value, YES); + objj_msgSend(dictionary, "setObject:forKey:", value, key); + } + return dictionary; +} +}), new objj_method(sel_getUid("dictionaryWithObjectsAndKeys:"), function $CPDictionary__dictionaryWithObjectsAndKeys_(self, _cmd, firstObject) +{ with(self) +{ + arguments[0] = objj_msgSend(self, "alloc"); + arguments[1] = sel_getUid("initWithObjectsAndKeys:"); + return objj_msgSend.apply(this, arguments); +} +})]); +} +{ +var the_class = objj_getClass("CPDictionary") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPDictionary\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPDictionary__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + return objj_msgSend(aCoder, "_decodeDictionaryOfObjectsForKey:", "CP.objects"); +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPDictionary__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "_encodeDictionaryOfObjects:forKey:", self, "CP.objects"); +} +})]); +} +{var the_class = objj_allocateClassPair(CPDictionary, "CPMutableDictionary"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +} +objj_dictionary.prototype.isa = CPDictionary; + +p;14;CPEnumerator.ji;10;CPObject.jc;500; +{var the_class = objj_allocateClassPair(CPObject, "CPEnumerator"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("nextObject"), function $CPEnumerator__nextObject(self, _cmd) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("allObjects"), function $CPEnumerator__allObjects(self, _cmd) +{ with(self) +{ + return []; +} +})]); +} + +p;13;CPException.ji;9;CPCoder.ji;10;CPObject.ji;10;CPString.jc;4340; +CPInvalidArgumentException = "CPInvalidArgumentException"; +CPUnsupportedMethodException = "CPUnsupportedMethodException"; +CPRangeException = "CPRangeException"; +CPInternalInconsistencyException = "CPInternalInconsistencyException"; +{var the_class = objj_allocateClassPair(CPObject, "CPException"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithName:reason:userInfo:"), function $CPException__initWithName_reason_userInfo_(self, _cmd, aName, aReason, aUserInfo) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + name = aName; + reason = aReason; + userInfo = aUserInfo; + } + return self; +} +}), new objj_method(sel_getUid("name"), function $CPException__name(self, _cmd) +{ with(self) +{ + return name; +} +}), new objj_method(sel_getUid("reason"), function $CPException__reason(self, _cmd) +{ with(self) +{ + return reason; +} +}), new objj_method(sel_getUid("userInfo"), function $CPException__userInfo(self, _cmd) +{ with(self) +{ + return userInfo; +} +}), new objj_method(sel_getUid("description"), function $CPException__description(self, _cmd) +{ with(self) +{ + return reason; +} +}), new objj_method(sel_getUid("raise"), function $CPException__raise(self, _cmd) +{ with(self) +{ + objj_exception_throw(self); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("alloc"), function $CPException__alloc(self, _cmd) +{ with(self) +{ + return new objj_exception(); +} +}), new objj_method(sel_getUid("raise:reason:"), function $CPException__raise_reason_(self, _cmd, aName, aReason) +{ with(self) +{ + objj_msgSend(objj_msgSend(self, "exceptionWithName:reason:userInfo:", aName, aReason, nil), "raise"); +} +}), new objj_method(sel_getUid("exceptionWithName:reason:userInfo:"), function $CPException__exceptionWithName_reason_userInfo_(self, _cmd, aName, aReason, aUserInfo) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithName:reason:userInfo:", aName, aReason, aUserInfo); +} +})]); +} +{ +var the_class = objj_getClass("CPException") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPException\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("copy"), function $CPException__copy(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "class"), "exceptionWithName:reason:userInfo:", name, reason, userInfo); +} +})]); +} +var CPExceptionNameKey = "CPExceptionNameKey", + CPExceptionReasonKey = "CPExceptionReasonKey", + CPExceptionUserInfoKey = "CPExceptionUserInfoKey"; +{ +var the_class = objj_getClass("CPException") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPException\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPException__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + name = objj_msgSend(aCoder, "decodeObjectForKey:", CPExceptionNameKey); + reason = objj_msgSend(aCoder, "decodeObjectForKey:", CPExceptionReasonKey); + userInfo = objj_msgSend(aCoder, "decodeObjectForKey:", CPExceptionUserInfoKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPException__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", name, CPExceptionNameKey); + objj_msgSend(aCoder, "encodeObject:forKey:", reason, CPExceptionReasonKey); + objj_msgSend(aCoder, "encodeObject:forKey:", userInfo, CPExceptionUserInfoKey); +} +})]); +} +objj_exception.prototype.isa = CPException; +objj_msgSend(CPException, "initialize"); +_CPRaiseInvalidAbstractInvocation= function(anObject, aSelector) +{ + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "*** -" + sel_getName(aSelector) + " cannot be sent to an abstract object of class " + objj_msgSend(anObject, "className") + ": Create a concrete instance!"); +} + +p;12;CPIndexSet.ji;9;CPRange.ji;10;CPObject.jc;18435; +{var the_class = objj_allocateClassPair(CPObject, "CPIndexSet"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_count"), new objj_ivar("_cachedRangeIndex"), new objj_ivar("_ranges")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPIndexSet__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _count = 0; + _ranges = []; + _cachedRangeIndex = 0; + } + return self; +} +}), new objj_method(sel_getUid("initWithIndex:"), function $CPIndexSet__initWithIndex_(self, _cmd, anIndex) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _count = 1; + _ranges = objj_msgSend(CPArray, "arrayWithObject:", CPMakeRange(anIndex, 1)); + _cachedRangeIndex = 0; + } + return self; +} +}), new objj_method(sel_getUid("initWithIndexesInRange:"), function $CPIndexSet__initWithIndexesInRange_(self, _cmd, aRange) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _count = aRange.length; + _ranges = objj_msgSend(CPArray, "arrayWithObject:", aRange); + _cachedRangeIndex = 0; + } + return self; +} +}), new objj_method(sel_getUid("initWithIndexSet:"), function $CPIndexSet__initWithIndexSet_(self, _cmd, anIndexSet) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _count = objj_msgSend(anIndexSet, "count"); + _ranges = []; + _cachedRangeIndex = 0; + var index = 0, + count = anIndexSet._ranges.length; + for (; index < count; ++index) + _ranges.push(CPCopyRange(anIndexSet._ranges[index])); + } + return self; +} +}), new objj_method(sel_getUid("isEqualToIndexSet:"), function $CPIndexSet__isEqualToIndexSet_(self, _cmd, anIndexSet) +{ with(self) +{ + if (self == anIndexSet) + return YES; + var i = 0, + count = _ranges.length; + otherRanges = anIndexSet._ranges; + if (count != otherRanges.length || _count != objj_msgSend(anIndexSet, "count")) + return NO; + for (; i < count; ++i) + if (!CPEqualRanges(_ranges[i], otherRanges[i])) + return NO; + return YES; +} +}), new objj_method(sel_getUid("containsIndex:"), function $CPIndexSet__containsIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(self, "containsIndexesInRange:", CPMakeRange(anIndex, 1)); +} +}), new objj_method(sel_getUid("containsIndexesInRange:"), function $CPIndexSet__containsIndexesInRange_(self, _cmd, aRange) +{ with(self) +{ + if(!_count) + return NO; + var i = SOERangeIndex(self, aRange.location), + lower = aRange.location, + upper = CPMaxRange(aRange), + count = _ranges.length; + for(;i < count && _ranges[i].location < upper; ++i) + if (_ranges[i].location <= lower && CPMaxRange(_ranges[i]) >= upper) + { + _cachedRangeIndex = i; + return YES; + } + _cachedRangeIndex = i; + return NO; +} +}), new objj_method(sel_getUid("containsIndexes:"), function $CPIndexSet__containsIndexes_(self, _cmd, anIndexSet) +{ with(self) +{ + if(!objj_msgSend(anIndexSet, "count")) + return YES; + if(!_count) + return NO; + var i = 0, + count = _ranges.length; + for(; i < count; ++i) + if (!objj_msgSend(anIndexSet, "containsIndexesInRange:", _ranges[i])) + return NO; + return YES; +} +}), new objj_method(sel_getUid("intersectsIndexesInRange:"), function $CPIndexSet__intersectsIndexesInRange_(self, _cmd, aRange) +{ with(self) +{ + if(!_count) + return NO; + var i = SOERangeIndex(self, aRange.location), + count = _ranges.length, + upper = CPMaxRange(aRange); + for (; i < count && _ranges[i].location < upper; ++i) + if(CPIntersectionRange(aRange, _ranges[i]).length) + return YES; + return NO; +} +}), new objj_method(sel_getUid("count"), function $CPIndexSet__count(self, _cmd) +{ with(self) +{ + return _count; +} +}), new objj_method(sel_getUid("firstIndex"), function $CPIndexSet__firstIndex(self, _cmd) +{ with(self) +{ + return _count ? _ranges[0].location : CPNotFound; +} +}), new objj_method(sel_getUid("lastIndex"), function $CPIndexSet__lastIndex(self, _cmd) +{ with(self) +{ + return _count ? CPMaxRange(_ranges[_ranges.length - 1]) - 1 : CPNotFound; +} +}), new objj_method(sel_getUid("indexGreaterThanIndex:"), function $CPIndexSet__indexGreaterThanIndex_(self, _cmd, anIndex) +{ with(self) +{ + if(!_count) + return CPNotFound; + var i = SOERangeIndex(self, anIndex++), + count = _ranges.length; + for(; i < count && anIndex >= CPMaxRange(_ranges[i]); ++i) ; + if (i == count) + return CPNotFound; + _cachedRangeIndex = i; + if (anIndex < _ranges[i].location) + return _ranges[i].location; + return anIndex; +} +}), new objj_method(sel_getUid("indexLessThanIndex:"), function $CPIndexSet__indexLessThanIndex_(self, _cmd, anIndex) +{ with(self) +{ + if (!_count) + return CPNotFound; + var i = GOERangeIndex(self, anIndex--); + for (; i >= 0 && anIndex < _ranges[i].location; --i) ; + if(i < 0) + return CPNotFound; + _cachedRangeIndex = i; + if (CPLocationInRange(anIndex, _ranges[i])) + return anIndex; + if (CPMaxRange(_ranges[i]) - 1 < anIndex) + return CPMaxRange(_ranges[i]) - 1; + return CPNotFound; +} +}), new objj_method(sel_getUid("indexGreaterThanOrEqualToIndex:"), function $CPIndexSet__indexGreaterThanOrEqualToIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(self, "indexGreaterThanIndex:", anIndex - 1); +} +}), new objj_method(sel_getUid("indexLessThanOrEqualToIndex:"), function $CPIndexSet__indexLessThanOrEqualToIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(self, "indexLessThanIndex:", anIndex + 1); +} +}), new objj_method(sel_getUid("getIndexes:maxCount:inIndexRange:"), function $CPIndexSet__getIndexes_maxCount_inIndexRange_(self, _cmd, anArray, aMaxCount, aRangePointer) +{ with(self) +{ + if (!_count || aMaxCount <= 0 || aRangePointer && !aRangePointer.length) + return 0; + var i = SOERangeIndex(self, aRangePointer? aRangePointer.location : 0), + total = 0, + count = _ranges.length; + for (; i < count; ++i) + { + var intersection = aRangePointer ? CPIntersectionRange(_ranges[i], aRangePointer) : _ranges[i], + index = intersection.location, + maximum = CPMaxRange(intersection); + for (; index < maximum; ++index) + { + anArray[total++] = index; + if (total == aMaxCount) + { + if (aRangePointer) + { + var upper = CPMaxRange(aRangePointer); + aRangePointer.location = index + 1; + aRangePointer.length = upper - index - 1; + } + return aMaxCount; + } + } + } + if (aRangePointer) + { + aRangePointer.location = CPNotFound; + aRangePointer.length = 0; + } + return total; +} +}), new objj_method(sel_getUid("description"), function $CPIndexSet__description(self, _cmd) +{ with(self) +{ + var desc = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "description") + " "; + if (_count) + { + desc += "[number of indexes: " + _count + " (in " + _ranges.length + " ranges), indexes: ("; + for (i = 0; i < _ranges.length; i++) + { + desc += _ranges[i].location; + if (_ranges[i].length > 1) desc += "-" + (CPMaxRange(_ranges[i])-1) + ":"+_ranges[i].length+":"; + if (i+1 < _ranges.length) desc += " "; + } + desc += ")]"; + } + else + desc += "(no indexes)"; + return desc; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("indexSet"), function $CPIndexSet__indexSet(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "init"); +} +}), new objj_method(sel_getUid("indexSetWithIndex:"), function $CPIndexSet__indexSetWithIndex_(self, _cmd, anIndex) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithIndex:", anIndex); +} +}), new objj_method(sel_getUid("indexSetWithIndexesInRange:"), function $CPIndexSet__indexSetWithIndexesInRange_(self, _cmd, aRange) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithIndexesInRange:", aRange); +} +})]); +} +{ +var the_class = objj_getClass("CPIndexSet") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPIndexSet\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("addIndex:"), function $CPIndexSet__addIndex_(self, _cmd, anIndex) +{ with(self) +{ + objj_msgSend(self, "addIndexesInRange:", CPMakeRange(anIndex, 1)); +} +}), new objj_method(sel_getUid("addIndexes:"), function $CPIndexSet__addIndexes_(self, _cmd, anIndexSet) +{ with(self) +{ + var i = 0, + ranges = anIndexSet._ranges, + count = ranges.length; + for(; i < count; ++i) + objj_msgSend(self, "addIndexesInRange:", ranges[i]); +} +}), new objj_method(sel_getUid("addIndexesInRange:"), function $CPIndexSet__addIndexesInRange_(self, _cmd, aRange) +{ with(self) +{ + if (_ranges.length == 0) + { + _count = aRange.length; + return objj_msgSend(_ranges, "addObject:", CPCopyRange(aRange)); + } + var i = SOERangeIndex(self, aRange.location), + count = _ranges.length, + padded = CPMakeRange(aRange.location - 1, aRange.length + 2), + maximum = CPMaxRange(aRange); + if (count && CPMaxRange(_ranges[count - 1]) < aRange.location) + objj_msgSend(_ranges, "addObject:", CPCopyRange(aRange)); + else + for (; i < count; ++i) + { + if (maximum < _ranges[i].location) + { + _count += aRange.length; + if (i < _cachedRangeIndex) ++_cachedRangeIndex; + return objj_msgSend(_ranges, "insertObject:atIndex:", CPCopyRange(aRange), i); + } + if (CPIntersectionRange(_ranges[i], padded).length) + { + var union = CPUnionRange(_ranges[i], aRange); + if (union.length == _ranges[i].length) + return; + ++union.length; + var j = i; + for(; j < count; ++j) + if(CPIntersectionRange(union, _ranges[j]).length) + _count -= _ranges[j].length; + else + break; + --union.length; + _ranges[i] = union; + if (j - i - 1 > 0) + { + var remove = CPMakeRange(i + 1, j - i - 1); + _ranges[i] = CPUnionRange(_ranges[i], _ranges[j - 1]); + objj_msgSend(_ranges, "removeObjectsInRange:", remove); + if (_cachedRangeIndex >= CPMaxRange(remove)) _cachedRangedIndex -= remove.length; + else if (CPLocationInRange(_cachedRangeIndex, remove)) _cachedRangeIndex = i; + } + _count += _ranges[i].length; + return; + } + } + _count += aRange.length; +} +}), new objj_method(sel_getUid("removeIndex:"), function $CPIndexSet__removeIndex_(self, _cmd, anIndex) +{ with(self) +{ + objj_msgSend(self, "removeIndexesInRange:", CPMakeRange(anIndex, 1)); +} +}), new objj_method(sel_getUid("removeIndexes:"), function $CPIndexSet__removeIndexes_(self, _cmd, anIndexSet) +{ with(self) +{ + var i = 0, + ranges = anIndexSet._ranges, + count = ranges.length; + for(; i < count; ++i) + objj_msgSend(self, "removeIndexesInRange:", ranges[i]); +} +}), new objj_method(sel_getUid("removeAllIndexes"), function $CPIndexSet__removeAllIndexes(self, _cmd) +{ with(self) +{ + _ranges = []; + _count = 0; + _cachedRangeIndex = 0; +} +}), new objj_method(sel_getUid("removeIndexesInRange:"), function $CPIndexSet__removeIndexesInRange_(self, _cmd, aRange) +{ with(self) +{ + var i = SOERangeIndex(self, aRange.location), + count = _ranges.length, + maximum = CPMaxRange(aRange), + removal = CPMakeRange(CPNotFound, 0); + for (; i < count; ++i) + { + var range = _ranges[i]; + if (maximum < range.location) + break; + var intersection = CPIntersectionRange(range, aRange); + if (!intersection.length) + continue; + else if (intersection.length == range.length) + { + if (removal.location == CPNotFound) + removal = CPMakeRange(i, 1); + else + ++removal.length; + } + else if (intersection.location > range.location && CPMaxRange(intersection) < CPMaxRange(range)) + { + var insert = CPMakeRange(CPMaxRange(intersection), CPMaxRange(range) - CPMaxRange(intersection)); + range.length = intersection.location - range.location; + _count -= intersection.length; + return objj_msgSend(_ranges, "insertObject:atIndex:", insert, i + 1); + } + else + { + range.length -= intersection.length; + if (intersection.location <= range.location) + range.location += intersection.length; + } + _count -= intersection.length; + } + if (removal.length) + objj_msgSend(_ranges, "removeObjectsInRange:", removal); +} +}), new objj_method(sel_getUid("shiftIndexesStartingAtIndex:by:"), function $CPIndexSet__shiftIndexesStartingAtIndex_by_(self, _cmd, anIndex, aDelta) +{ with(self) +{ + if (!_count || aDelta == 0) + return; + var i = _ranges.length - 1, + shifted = CPMakeRange(CPNotFound, 0); + for(; i >= 0; --i) + { + var range = _ranges[i], + maximum = CPMaxRange(range); + if (anIndex > maximum) + break; + if (anIndex > range.location && anIndex < maximum) + { + shifted = CPMakeRange(anIndex + aDelta, maximum - anIndex); + range.length = anIndex - range.location; + if (aDelta > 0) + objj_msgSend(_ranges, "insertObject:atIndex:", shifted, i + 1); + else if (shifted.location < 0) + { + shifted.length = CPMaxRange(shifted); + shifted.location = 0; + } + break; + } + if ((range.location += aDelta) < 0) + { + range.length = CPMaxRange(range); + range.location = 0; + } + } + if (aDelta < 0) + { + var j = i + 1, + count = _ranges.length, + shifts = []; + for (; j < count; ++j) + objj_msgSend(shifts, "addObject:", _ranges[j]); + if ((j = i + 1) < count) + { + objj_msgSend(_ranges, "removeObjectsInRange:", CPMakeRange(j, count - j)); + for (j = 0, count = shifts.length; j < count; ++j) + objj_msgSend(self, "addIndexesInRange:", shifts[j]); + } + if (shifted.location != CPNotFound) + objj_msgSend(self, "addIndexesInRange:", shifted); + } +} +})]); +} +var CPIndexSetCountKey = "CPIndexSetCountKey", + CPIndexSetCachedRangeIndexKey = "CPIndexSetCachedRangeIndexKey", + CPIndexSetRangeStringsKey = "CPIndexSetRangeStringsKey"; +{ +var the_class = objj_getClass("CPIndexSet") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPIndexSet\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPIndexSet__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _count = objj_msgSend(aCoder, "decodeIntForKey:", CPIndexSetCountKey); + _cachedRangeIndex = objj_msgSend(aCoder, "decodeIntForKey:", CPIndexSetCachedRangeIndexKey); + _ranges = []; + var rangeStrings = objj_msgSend(aCoder, "decodeObjectForKey:", CPIndexSetRangeStringsKey), + index = 0, + count = rangeStrings.length; + for (; index < count; ++index) + _ranges.push(CPRangeFromString(rangeStrings[index])); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPIndexSet__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeInt:forKey:", _count, CPIndexSetCountKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _cachedRangeIndex, CPIndexSetCachedRangeIndexKey); + var index = 0, + count = _ranges.length, + rangeStrings = []; + for (; index < count; ++index) + rangeStrings[index] = CPStringFromRange(_ranges[index]); + objj_msgSend(aCoder, "encodeObject:forKey:", rangeStrings, CPIndexSetRangeStringsKey); +} +})]); +} +{ +var the_class = objj_getClass("CPIndexSet") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPIndexSet\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("copy"), function $CPIndexSet__copy(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(objj_msgSend(self, "class"), "alloc"), "initWithIndexSet:", self); +} +}), new objj_method(sel_getUid("mutableCopy"), function $CPIndexSet__mutableCopy(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(objj_msgSend(self, "class"), "alloc"), "initWithIndexSet:", self); +} +})]); +} +{var the_class = objj_allocateClassPair(CPIndexSet, "CPMutableIndexSet"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +} +var SOERangeIndex = function(anIndexSet, anIndex) +{ + var ranges = anIndexSet._ranges, + cachedRangeIndex = 0; + if(cachedRangeIndex < ranges.length && anIndex >= ranges[cachedRangeIndex].location) + return cachedRangeIndex; + return 0; +} +var GOERangeIndex = function(anIndexSet, anIndex) +{ + var ranges = anIndexSet._ranges, + cachedRangeIndex = anIndexSet._ranges.length; + if(cachedRangeIndex < ranges.length && anIndex <= ranges[cachedRangeIndex].location) + return cachedRangeIndex; + return ranges.length - 1; +} + +p;14;CPInvocation.ji;10;CPObject.ji;13;CPException.jc;3770; +{var the_class = objj_allocateClassPair(CPObject, "CPInvocation"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_returnValue"), new objj_ivar("_arguments"), new objj_ivar("_methodSignature")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithMethodSignature:"), function $CPInvocation__initWithMethodSignature_(self, _cmd, aMethodSignature) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _arguments = []; + _methodSignature = aMethodSignature; + } + return self; +} +}), new objj_method(sel_getUid("setSelector:"), function $CPInvocation__setSelector_(self, _cmd, aSelector) +{ with(self) +{ + _arguments[1] = aSelector; +} +}), new objj_method(sel_getUid("selector"), function $CPInvocation__selector(self, _cmd) +{ with(self) +{ + return _arguments[1]; +} +}), new objj_method(sel_getUid("setTarget:"), function $CPInvocation__setTarget_(self, _cmd, aTarget) +{ with(self) +{ + _arguments[0] = aTarget; +} +}), new objj_method(sel_getUid("target"), function $CPInvocation__target(self, _cmd) +{ with(self) +{ + return _arguments[0]; +} +}), new objj_method(sel_getUid("setArgument:atIndex:"), function $CPInvocation__setArgument_atIndex_(self, _cmd, anArgument, anIndex) +{ with(self) +{ + _arguments[anIndex] = anArgument; +} +}), new objj_method(sel_getUid("argumentAtIndex:"), function $CPInvocation__argumentAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return _arguments[anIndex]; +} +}), new objj_method(sel_getUid("setReturnValue:"), function $CPInvocation__setReturnValue_(self, _cmd, aReturnValue) +{ with(self) +{ + _returnValue = aReturnValue; +} +}), new objj_method(sel_getUid("returnValue"), function $CPInvocation__returnValue(self, _cmd) +{ with(self) +{ + return _returnValue; +} +}), new objj_method(sel_getUid("invoke"), function $CPInvocation__invoke(self, _cmd) +{ with(self) +{ + _returnValue = objj_msgSend.apply(objj_msgSend, _arguments); +} +}), new objj_method(sel_getUid("invokeWithTarget:"), function $CPInvocation__invokeWithTarget_(self, _cmd, aTarget) +{ with(self) +{ + _arguments[0] = aTarget; + _returnValue = objj_msgSend.apply(objj_msgSend, _arguments); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("invocationWithMethodSignature:"), function $CPInvocation__invocationWithMethodSignature_(self, _cmd, aMethodSignature) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithMethodSignature:", aMethodSignature); +} +})]); +} +var CPInvocationArguments = "CPInvocationArguments", + CPInvocationReturnValue = "CPInvocationReturnValue"; +{ +var the_class = objj_getClass("CPInvocation") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPInvocation\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPInvocation__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _returnValue = objj_msgSend(aCoder, "decodeObjectForKey:", CPInvocationReturnValue); + _arguments = objj_msgSend(aCoder, "decodeObjectForKey:", CPInvocationArguments); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPInvocation__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _returnValue, CPInvocationReturnValue); + objj_msgSend(aCoder, "encodeObject:forKey:", _arguments, CPInvocationArguments); +} +})]); +} + +p;19;CPJSONPConnection.jI;21;Foundation/CPObject.jc;3725; +CPJSONPConnectionCallbacks = {}; +{var the_class = objj_allocateClassPair(CPObject, "CPJSONPConnection"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_request"), new objj_ivar("_delegate"), new objj_ivar("_callbackParameter"), new objj_ivar("_scriptTag")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithRequest:callback:delegate:"), function $CPJSONPConnection__initWithRequest_callback_delegate_(self, _cmd, aRequest, aString, aDelegate) +{ with(self) +{ + return objj_msgSend(self, "initWithRequest:callback:delegate:startImmediately:", aRequest, aString, aDelegate, NO); +} +}), new objj_method(sel_getUid("initWithRequest:callback:delegate:startImmediately:"), function $CPJSONPConnection__initWithRequest_callback_delegate_startImmediately_(self, _cmd, aRequest, aString, aDelegate, shouldStartImmediately) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + _request = aRequest; + _delegate = aDelegate; + _callbackParameter = aString; + CPJSONPConnectionCallbacks["callback"+objj_msgSend(self, "hash")] = function(data) + { + objj_msgSend(_delegate, "connection:didReceiveData:", self, data); + objj_msgSend(self, "removeScriptTag"); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); + }; + if(shouldStartImmediately) + objj_msgSend(self, "start"); + return self; +} +}), new objj_method(sel_getUid("start"), function $CPJSONPConnection__start(self, _cmd) +{ with(self) +{ + try + { + var head = document.getElementsByTagName("head").item(0); + var source = objj_msgSend(_request, "URL"); + source += (source.indexOf('?') < 0) ? "?" : "&"; + source += _callbackParameter+"=CPJSONPConnectionCallbacks.callback"+objj_msgSend(self, "hash"); + _scriptTag = document.createElement("script"); + _scriptTag.setAttribute("type", "text/javascript"); + _scriptTag.setAttribute("charset", "utf-8"); + _scriptTag.setAttribute("src", source); + head.appendChild(_scriptTag); + } + catch (exception) + { + objj_msgSend(_delegate, "connection:didFailWithError:", self, exception); + objj_msgSend(self, "removeScriptTag"); + } +} +}), new objj_method(sel_getUid("removeScriptTag"), function $CPJSONPConnection__removeScriptTag(self, _cmd) +{ with(self) +{ + var head = document.getElementsByTagName("head").item(0); + if(_scriptTag.parentNode == head) + head.removeChild(_scriptTag); + CPJSONPConnectionCallbacks["callback"+objj_msgSend(self, "hash")] = nil; + delete CPJSONPConnectionCallbacks["callback"+objj_msgSend(self, "hash")]; +} +}), new objj_method(sel_getUid("cancel"), function $CPJSONPConnection__cancel(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "removeScriptTag"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("sendRequest:callback:delegate:"), function $CPJSONPConnection__sendRequest_callback_delegate_(self, _cmd, aRequest, callbackParameter, aDelegate) +{ with(self) +{ + return objj_msgSend(self, "connectionWithRequest:callback:delegate:", aRequest, callbackParameter, aDelegate); +} +}), new objj_method(sel_getUid("connectionWithRequest:callback:delegate:"), function $CPJSONPConnection__connectionWithRequest_callback_delegate_(self, _cmd, aRequest, callbackParameter, aDelegate) +{ with(self) +{ + return objj_msgSend(objj_msgSend(objj_msgSend(self, "class"), "alloc"), "initWithRequest:callback:delegate:startImmediately:", aRequest, callbackParameter, aDelegate, YES);; +} +})]); +} + +p;17;CPKeyedArchiver.ji;8;CPData.ji;9;CPCoder.ji;9;CPArray.ji;10;CPString.ji;10;CPNumber.ji;14;CPDictionary.ji;9;CPValue.jc;16071; +var CPArchiverReplacementClassNames = nil; +var _CPKeyedArchiverDidEncodeObjectSelector = 1, + _CPKeyedArchiverWillEncodeObjectSelector = 2, + _CPKeyedArchiverWillReplaceObjectWithObjectSelector = 4, + _CPKeyedArchiverDidFinishSelector = 8, + _CPKeyedArchiverWillFinishSelector = 16; +var _CPKeyedArchiverNullString = "$null", + _CPKeyedArchiverNullReference = nil, + _CPKeyedArchiverUIDKey = "CP$UID", + _CPKeyedArchiverTopKey = "$top", + _CPKeyedArchiverObjectsKey = "$objects", + _CPKeyedArchiverArchiverKey = "$archiver", + _CPKeyedArchiverVersionKey = "$version", + _CPKeyedArchiverClassNameKey = "$classname", + _CPKeyedArchiverClassesKey = "$classes", + _CPKeyedArchiverClassKey = "$class"; +var _CPKeyedArchiverStringClass = Nil, + _CPKeyedArchiverNumberClass = Nil; +{var the_class = objj_allocateClassPair(CPValue, "_CPKeyedArchiverValue"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +} +{var the_class = objj_allocateClassPair(CPCoder, "CPKeyedArchiver"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_delegate"), new objj_ivar("_delegateSelectors"), new objj_ivar("_data"), new objj_ivar("_objects"), new objj_ivar("_UIDs"), new objj_ivar("_conditionalUIDs"), new objj_ivar("_replacementObjects"), new objj_ivar("_replacementClassNames"), new objj_ivar("_plistObject"), new objj_ivar("_plistObjects"), new objj_ivar("_outputFormat")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initForWritingWithMutableData:"), function $CPKeyedArchiver__initForWritingWithMutableData_(self, _cmd, data) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPCoder") }, "init"); + if (self) + { + _data = data; + _objects = []; + _UIDs = objj_msgSend(CPDictionary, "dictionary"); + _conditionalUIDs = objj_msgSend(CPDictionary, "dictionary"); + _replacementObjects = objj_msgSend(CPDictionary, "dictionary"); + _data = data; + _plistObject = objj_msgSend(CPDictionary, "dictionary"); + _plistObjects = objj_msgSend(CPArray, "arrayWithObject:", _CPKeyedArchiverNullString); + } + return self; +} +}), new objj_method(sel_getUid("finishEncoding"), function $CPKeyedArchiver__finishEncoding(self, _cmd) +{ with(self) +{ + if (_delegate && _delegateSelectors & _CPKeyedArchiverWillFinishSelector) + objj_msgSend(_delegate, "archiverWillFinish:", self); + var i = 0, + topObject = _plistObject, + classes = []; + for (; i < _objects.length; ++i) + { + var object = _objects[i], + theClass = objj_msgSend(object, "classForKeyedArchiver"); + _plistObject = _plistObjects[objj_msgSend(_UIDs, "objectForKey:", objj_msgSend(object, "hash"))]; + objj_msgSend(object, "encodeWithCoder:", self); + if (_delegate && _delegateSelectors & _CPKeyedArchiverDidEncodeObjectSelector) + objj_msgSend(_delegate, "archiver:didEncodeObject:", self, object); + } + _plistObject = objj_msgSend(CPDictionary, "dictionary"); + objj_msgSend(_plistObject, "setObject:forKey:", topObject, _CPKeyedArchiverTopKey); + objj_msgSend(_plistObject, "setObject:forKey:", _plistObjects, _CPKeyedArchiverObjectsKey); + objj_msgSend(_plistObject, "setObject:forKey:", objj_msgSend(self, "className"), _CPKeyedArchiverArchiverKey); + objj_msgSend(_plistObject, "setObject:forKey:", "100000", _CPKeyedArchiverVersionKey); + objj_msgSend(_data, "setPlistObject:", _plistObject); + if (_delegate && _delegateSelectors & _CPKeyedArchiverDidFinishSelector) + objj_msgSend(_delegate, "archiverDidFinish:", self); +} +}), new objj_method(sel_getUid("outputFormat"), function $CPKeyedArchiver__outputFormat(self, _cmd) +{ with(self) +{ + return _outputFormat; +} +}), new objj_method(sel_getUid("setOutputFormat:"), function $CPKeyedArchiver__setOutputFormat_(self, _cmd, aPropertyListFormat) +{ with(self) +{ + _outputFormat = aPropertyListFormat; +} +}), new objj_method(sel_getUid("encodeBool:forKey:"), function $CPKeyedArchiver__encodeBool_forKey_(self, _cmd, aBOOL, aKey) +{ with(self) +{ + objj_msgSend(_plistObject, "setObject:forKey:", _CPKeyedArchiverEncodeObject(self, aBOOL, NO), aKey); +} +}), new objj_method(sel_getUid("encodeDouble:forKey:"), function $CPKeyedArchiver__encodeDouble_forKey_(self, _cmd, aDouble, aKey) +{ with(self) +{ + objj_msgSend(_plistObject, "setObject:forKey:", _CPKeyedArchiverEncodeObject(self, aDouble, NO), aKey); +} +}), new objj_method(sel_getUid("encodeFloat:forKey:"), function $CPKeyedArchiver__encodeFloat_forKey_(self, _cmd, aFloat, aKey) +{ with(self) +{ + objj_msgSend(_plistObject, "setObject:forKey:", _CPKeyedArchiverEncodeObject(self, aFloat, NO), aKey); +} +}), new objj_method(sel_getUid("encodeInt:forKey:"), function $CPKeyedArchiver__encodeInt_forKey_(self, _cmd, anInt, aKey) +{ with(self) +{ + objj_msgSend(_plistObject, "setObject:forKey:", _CPKeyedArchiverEncodeObject(self, anInt, NO), aKey); +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPKeyedArchiver__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("archiver:didEncodeObject:"))) + _delegateSelectors |= _CPKeyedArchiverDidEncodeObjectSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("archiver:willEncodeObject:"))) + _delegateSelectors |= _CPKeyedArchiverWillEncodeObjectSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("archiver:willReplaceObject:withObject:"))) + _delegateSelectors |= _CPKeyedArchiverWillReplaceObjectWithObjectSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("archiver:didFinishEncoding:"))) + _delegateSelectors |= _CPKeyedArchiverDidFinishEncodingSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("archiver:willFinishEncoding:"))) + _delegateSelectors |= _CPKeyedArchiverWillFinishEncodingSelector; +} +}), new objj_method(sel_getUid("delegate"), function $CPKeyedArchiver__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("encodePoint:forKey:"), function $CPKeyedArchiver__encodePoint_forKey_(self, _cmd, aPoint, aKey) +{ with(self) +{ + objj_msgSend(_plistObject, "setObject:forKey:", _CPKeyedArchiverEncodeObject(self, CPStringFromPoint(aPoint), NO), aKey); +} +}), new objj_method(sel_getUid("encodeRect:forKey:"), function $CPKeyedArchiver__encodeRect_forKey_(self, _cmd, aRect, aKey) +{ with(self) +{ + objj_msgSend(_plistObject, "setObject:forKey:", _CPKeyedArchiverEncodeObject(self, CPStringFromRect(aRect), NO), aKey); +} +}), new objj_method(sel_getUid("encodeSize:forKey:"), function $CPKeyedArchiver__encodeSize_forKey_(self, _cmd, aSize, aKey) +{ with(self) +{ + objj_msgSend(_plistObject, "setObject:forKey:", _CPKeyedArchiverEncodeObject(self, CPStringFromSize(aSize), NO), aKey); +} +}), new objj_method(sel_getUid("encodeConditionalObject:forKey:"), function $CPKeyedArchiver__encodeConditionalObject_forKey_(self, _cmd, anObject, aKey) +{ with(self) +{ + objj_msgSend(_plistObject, "setObject:forKey:", _CPKeyedArchiverEncodeObject(self, anObject, YES), aKey); +} +}), new objj_method(sel_getUid("encodeNumber:forKey:"), function $CPKeyedArchiver__encodeNumber_forKey_(self, _cmd, aNumber, aKey) +{ with(self) +{ + objj_msgSend(_plistObject, "setObject:forKey:", _CPKeyedArchiverEncodeObject(self, aNumber, NO), aKey); +} +}), new objj_method(sel_getUid("encodeObject:forKey:"), function $CPKeyedArchiver__encodeObject_forKey_(self, _cmd, anObject, aKey) +{ with(self) +{ + objj_msgSend(_plistObject, "setObject:forKey:", _CPKeyedArchiverEncodeObject(self, anObject, NO), aKey); +} +}), new objj_method(sel_getUid("_encodeArrayOfObjects:forKey:"), function $CPKeyedArchiver___encodeArrayOfObjects_forKey_(self, _cmd, objects, aKey) +{ with(self) +{ + var i = 0, + count = objects.length, + references = objj_msgSend(CPArray, "arrayWithCapacity:", count); + for (; i < count; ++i) + objj_msgSend(references, "addObject:", _CPKeyedArchiverEncodeObject(self, objects[i], NO)); + objj_msgSend(_plistObject, "setObject:forKey:", references, aKey); +} +}), new objj_method(sel_getUid("_encodeDictionaryOfObjects:forKey:"), function $CPKeyedArchiver___encodeDictionaryOfObjects_forKey_(self, _cmd, aDictionary, aKey) +{ with(self) +{ + var key, + keys = objj_msgSend(aDictionary, "keyEnumerator"), + references = objj_msgSend(CPDictionary, "dictionary"); + while (key = objj_msgSend(keys, "nextObject")) + objj_msgSend(references, "setObject:forKey:", _CPKeyedArchiverEncodeObject(self, objj_msgSend(aDictionary, "objectForKey:", key), NO), key); + objj_msgSend(_plistObject, "setObject:forKey:", references, aKey); +} +}), new objj_method(sel_getUid("setClassName:forClass:"), function $CPKeyedArchiver__setClassName_forClass_(self, _cmd, aClassName, aClass) +{ with(self) +{ + if (!_replacementClassNames) + _replacementClassNames = objj_msgSend(CPDictionary, "dictionary"); + objj_msgSend(_replacementClassNames, "setObject:forKey:", aClassName, CPStringFromClass(aClass)); +} +}), new objj_method(sel_getUid("classNameForClass:"), function $CPKeyedArchiver__classNameForClass_(self, _cmd, aClass) +{ with(self) +{ + if (!_replacementClassNames) + return aClass.name; + var className = objj_msgSend(_replacementClassNames, "objectForKey:", CPStringFromClass(aClassName)); + return className ? className : aClass.name; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPKeyedArchiver__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPKeyedArchiver, "class")) + return; + _CPKeyedArchiverStringClass = objj_msgSend(CPString, "class"); + _CPKeyedArchiverNumberClass = objj_msgSend(CPNumber, "class"); + _CPKeyedArchiverNullReference = objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", 0, _CPKeyedArchiverUIDKey); +} +}), new objj_method(sel_getUid("allowsKeyedCoding"), function $CPKeyedArchiver__allowsKeyedCoding(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("archivedDataWithRootObject:"), function $CPKeyedArchiver__archivedDataWithRootObject_(self, _cmd, anObject) +{ with(self) +{ + var data = objj_msgSend(CPData, "dataWithPlistObject:", nil), + archiver = objj_msgSend(objj_msgSend(self, "alloc"), "initForWritingWithMutableData:", data); + objj_msgSend(archiver, "encodeObject:forKey:", anObject, "root"); + objj_msgSend(archiver, "finishEncoding"); + return data; +} +}), new objj_method(sel_getUid("setClassName:forClass:"), function $CPKeyedArchiver__setClassName_forClass_(self, _cmd, aClassName, aClass) +{ with(self) +{ + if (!CPArchiverReplacementClassNames) + CPArchiverReplacementClassNames = objj_msgSend(CPDictionary, "dictionary"); + objj_msgSend(CPArchiverReplacementClassNames, "setObject:forKey:", aClassName, CPStringFromClass(aClass)); +} +}), new objj_method(sel_getUid("classNameForClass:"), function $CPKeyedArchiver__classNameForClass_(self, _cmd, aClass) +{ with(self) +{ + if (!CPArchiverReplacementClassNames) + return aClass.name; + var className = objj_msgSend(CPArchiverReplacementClassNames, "objectForKey:", CPStringFromClass(aClassName)); + return className ? className : aClass.name; +} +})]); +} +var _CPKeyedArchiverEncodeObject = function(self, anObject, isConditional) +{ + if (anObject !== nil && !anObject.isa) + anObject = objj_msgSend(_CPKeyedArchiverValue, "valueWithJSObject:", anObject); + var hash = objj_msgSend(anObject, "hash"), + object = objj_msgSend(self._replacementObjects, "objectForKey:", hash); + if (object === nil) + { + object = objj_msgSend(anObject, "replacementObjectForKeyedArchiver:", self); + if (self._delegate) + { + if (object !== anObject && self._delegateSelectors & _CPKeyedArchiverWillReplaceObjectWithObjectSelector) + objj_msgSend(self._delegate, "archiver:willReplaceObject:withObject:", self, anObject, object); + if (self._delegateSelectors & _CPKeyedArchiverWillEncodeObjectSelector) + { + anObject = objj_msgSend(self._delegate, "archiver:willEncodeObject:", self, object); + if (anObject !== object && self._delegateSelectors & _CPKeyedArchiverWillReplaceObjectWithObjectSelector) + objj_msgSend(self._delegate, "archiver:willReplaceObject:withObject:", self, object, anObject); + object = anObject; + } + } + objj_msgSend(self._replacementObjects, "setObject:forKey:", object, hash); + } + if (object === nil) + return _CPKeyedArchiverNullReference; + var UID = objj_msgSend(self._UIDs, "objectForKey:", hash = objj_msgSend(object, "hash")); + if (UID === nil) + { + if (isConditional) + { + if ((UID = objj_msgSend(self._conditionalUIDs, "objectForKey:", hash)) === nil) + { + objj_msgSend(self._conditionalUIDs, "setObject:forKey:", UID = objj_msgSend(self._plistObjects, "count"), hash); + objj_msgSend(self._plistObjects, "addObject:", _CPKeyedArchiverNullString); + } + } + else + { + var theClass = objj_msgSend(object, "classForKeyedArchiver"), + plistObject = nil; + if ((theClass === _CPKeyedArchiverStringClass) || (theClass === _CPKeyedArchiverNumberClass)) + plistObject = object; + else + { + plistObject = objj_msgSend(CPDictionary, "dictionary"); + objj_msgSend(self._objects, "addObject:", object); + var className = objj_msgSend(self, "classNameForClass:", theClass); + if (!className) + className = objj_msgSend(objj_msgSend(self, "class"), "classNameForClass:", theClass); + if (!className) + className = theClass.name; + else + theClass = window[className]; + var classUID = objj_msgSend(self._UIDs, "objectForKey:", className); + if (!classUID) + { + var plistClass = objj_msgSend(CPDictionary, "dictionary"), + hierarchy = []; + objj_msgSend(plistClass, "setObject:forKey:", className, _CPKeyedArchiverClassNameKey); + do + { + objj_msgSend(hierarchy, "addObject:", CPStringFromClass(theClass)); + } while (theClass = objj_msgSend(theClass, "superclass")); + objj_msgSend(plistClass, "setObject:forKey:", hierarchy, _CPKeyedArchiverClassesKey); + classUID = objj_msgSend(self._plistObjects, "count"); + objj_msgSend(self._plistObjects, "addObject:", plistClass); + objj_msgSend(self._UIDs, "setObject:forKey:", classUID, className); + } + objj_msgSend(plistObject, "setObject:forKey:", objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", classUID, _CPKeyedArchiverUIDKey), _CPKeyedArchiverClassKey); + } + UID = objj_msgSend(self._conditionalUIDs, "objectForKey:", hash); + if (UID !== nil) + { + objj_msgSend(self._UIDs, "setObject:forKey:", UID, hash); + objj_msgSend(self._plistObjects, "replaceObjectAtIndex:withObject:", UID, plistObject); + } + else + { + objj_msgSend(self._UIDs, "setObject:forKey:", UID = objj_msgSend(self._plistObjects, "count"), hash); + objj_msgSend(self._plistObjects, "addObject:", plistObject); + } + } + } + return objj_msgSend(CPDictionary, "dictionaryWithObject:forKey:", UID, _CPKeyedArchiverUIDKey); +} + +p;19;CPKeyedUnarchiver.ji;8;CPNull.ji;9;CPCoder.jc;12998; +var _CPKeyedUnarchiverCannotDecodeObjectOfClassNameOriginalClassesSelector = 1, + _CPKeyedUnarchiverDidDecodeObjectSelector = 1 << 1, + _CPKeyedUnarchiverWillReplaceObjectWithObjectSelector = 1 << 2, + _CPKeyedUnarchiverWillFinishSelector = 1 << 3, + _CPKeyedUnarchiverDidFinishSelector = 1 << 4; +var _CPKeyedArchiverNullString = "$null" + _CPKeyedArchiverUIDKey = "CP$UID", + _CPKeyedArchiverTopKey = "$top", + _CPKeyedArchiverObjectsKey = "$objects", + _CPKeyedArchiverArchiverKey = "$archiver", + _CPKeyedArchiverVersionKey = "$version", + _CPKeyedArchiverClassNameKey = "$classname", + _CPKeyedArchiverClassesKey = "$classes", + _CPKeyedArchiverClassKey = "$class"; +var _CPKeyedUnarchiverArrayClass = Nil, + _CPKeyedUnarchiverStringClass = Nil, + _CPKeyedUnarchiverDictionaryClass = Nil, + _CPKeyedUnarchiverNumberClass = Nil, + _CPKeyedUnarchiverDataClass = Nil, + _CPKeyedUnarchiverArchiverValueClass = Nil; +{var the_class = objj_allocateClassPair(CPCoder, "CPKeyedUnarchiver"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_delegate"), new objj_ivar("_delegateSelectors"), new objj_ivar("_data"), new objj_ivar("_replacementClasses"), new objj_ivar("_objects"), new objj_ivar("_archive"), new objj_ivar("_plistObject"), new objj_ivar("_plistObjects")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initForReadingWithData:"), function $CPKeyedUnarchiver__initForReadingWithData_(self, _cmd, data) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPCoder") }, "init"); + if (self) + { + _archive = objj_msgSend(data, "plistObject"); + _objects = objj_msgSend(CPArray, "arrayWithObject:", objj_msgSend(CPNull, "null")); + _plistObject = objj_msgSend(_archive, "objectForKey:", _CPKeyedArchiverTopKey); + _plistObjects = objj_msgSend(_archive, "objectForKey:", _CPKeyedArchiverObjectsKey); + _replacementClasses = objj_msgSend(CPDictionary, "dictionary"); + } + return self; +} +}), new objj_method(sel_getUid("containsValueForKey:"), function $CPKeyedUnarchiver__containsValueForKey_(self, _cmd, aKey) +{ with(self) +{ + return objj_msgSend(_plistObject, "objectForKey:", aKey) != nil; +} +}), new objj_method(sel_getUid("_decodeDictionaryOfObjectsForKey:"), function $CPKeyedUnarchiver___decodeDictionaryOfObjectsForKey_(self, _cmd, aKey) +{ with(self) +{ + var object = objj_msgSend(_plistObject, "objectForKey:", aKey); + if (objj_msgSend(object, "isKindOfClass:", _CPKeyedUnarchiverDictionaryClass)) + { + var key, + keys = objj_msgSend(object, "keyEnumerator"), + dictionary = objj_msgSend(CPDictionary, "dictionary"); + while (key = objj_msgSend(keys, "nextObject")) + objj_msgSend(dictionary, "setObject:forKey:", _CPKeyedUnarchiverDecodeObjectAtIndex(self, objj_msgSend(objj_msgSend(object, "objectForKey:", key), "objectForKey:", _CPKeyedArchiverUIDKey)), key); + return dictionary; + } + return nil; +} +}), new objj_method(sel_getUid("decodeBoolForKey:"), function $CPKeyedUnarchiver__decodeBoolForKey_(self, _cmd, aKey) +{ with(self) +{ + return objj_msgSend(self, "decodeObjectForKey:", aKey); +} +}), new objj_method(sel_getUid("decodeFloatForKey:"), function $CPKeyedUnarchiver__decodeFloatForKey_(self, _cmd, aKey) +{ with(self) +{ + return objj_msgSend(self, "decodeObjectForKey:", aKey); +} +}), new objj_method(sel_getUid("decodeDoubleForKey:"), function $CPKeyedUnarchiver__decodeDoubleForKey_(self, _cmd, aKey) +{ with(self) +{ + return objj_msgSend(self, "decodeObjectForKey:", aKey); +} +}), new objj_method(sel_getUid("decodeIntForKey:"), function $CPKeyedUnarchiver__decodeIntForKey_(self, _cmd, aKey) +{ with(self) +{ + return objj_msgSend(self, "decodeObjectForKey:", aKey); +} +}), new objj_method(sel_getUid("decodePointForKey:"), function $CPKeyedUnarchiver__decodePointForKey_(self, _cmd, aKey) +{ with(self) +{ + var object = objj_msgSend(self, "decodeObjectForKey:", aKey); + if(object) + return CPPointFromString(object); + else + return CPPointMake(0.0, 0.0); +} +}), new objj_method(sel_getUid("decodeRectForKey:"), function $CPKeyedUnarchiver__decodeRectForKey_(self, _cmd, aKey) +{ with(self) +{ + var object = objj_msgSend(self, "decodeObjectForKey:", aKey); + if(object) + return CPRectFromString(object); + else + return CPRectMakeZero(); +} +}), new objj_method(sel_getUid("decodeSizeForKey:"), function $CPKeyedUnarchiver__decodeSizeForKey_(self, _cmd, aKey) +{ with(self) +{ + var object = objj_msgSend(self, "decodeObjectForKey:", aKey); + if(object) + return CPSizeFromString(object); + else + return CPSizeMake(0.0, 0.0); +} +}), new objj_method(sel_getUid("decodeObjectForKey:"), function $CPKeyedUnarchiver__decodeObjectForKey_(self, _cmd, aKey) +{ with(self) +{ + var object = objj_msgSend(_plistObject, "objectForKey:", aKey); + if (objj_msgSend(object, "isKindOfClass:", _CPKeyedUnarchiverDictionaryClass)) + return _CPKeyedUnarchiverDecodeObjectAtIndex(self, objj_msgSend(object, "objectForKey:", _CPKeyedArchiverUIDKey)); + else if (objj_msgSend(object, "isKindOfClass:", _CPKeyedUnarchiverNumberClass) || objj_msgSend(object, "isKindOfClass:", _CPKeyedUnarchiverDataClass)) + return object; + else if (objj_msgSend(object, "isKindOfClass:", _CPKeyedUnarchiverArrayClass)) + { + var index = 0, + count = object.length, + array = []; + for (; index < count; ++index) + array[index] = _CPKeyedUnarchiverDecodeObjectAtIndex(self, objj_msgSend(object[index], "objectForKey:", _CPKeyedArchiverUIDKey)); + return array; + } + return nil; +} +}), new objj_method(sel_getUid("decodeBytesForKey:"), function $CPKeyedUnarchiver__decodeBytesForKey_(self, _cmd, aKey) +{ with(self) +{ + var data = objj_msgSend(self, "decodeObjectForKey:", aKey); + if (objj_msgSend(data, "isKindOfClass:", objj_msgSend(CPData, "class"))) + return data.bytes; + return nil; +} +}), new objj_method(sel_getUid("finishDecoding"), function $CPKeyedUnarchiver__finishDecoding(self, _cmd) +{ with(self) +{ + if (_delegateSelectors & _CPKeyedUnarchiverWillFinishSelector) + objj_msgSend(_delegate, "unarchiverWillFinish:", self); + if (_delegateSelectors & _CPKeyedUnarchiverDidFinishSelector) + objj_msgSend(_delegate, "unarchiverDidFinish:", self); +} +}), new objj_method(sel_getUid("delegate"), function $CPKeyedUnarchiver__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("setDelegate:"), function $CPKeyedUnarchiver__setDelegate_(self, _cmd, aDelegate) +{ with(self) +{ + _delegate = aDelegate; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("unarchiver:cannotDecodeObjectOfClassName:originalClasses:"))) + _delegateSelectors |= _CPKeyedUnarchiverCannotDecodeObjectOfClassNameOriginalClassesSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("unarchiver:didDecodeObject:"))) + _delegateSelectors |= _CPKeyedUnarchiverDidDecodeObjectSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("unarchiver:willReplaceObject:withObject:"))) + _delegateSelectors |= _CPKeyedUnarchiverWillReplaceObjectWithObjectSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("unarchiverWillFinish:"))) + _delegateSelectors |= _CPKeyedUnarchiverWilFinishSelector; + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("unarchiverDidFinish:"))) + _delegateSelectors |= _CPKeyedUnarchiverDidFinishSelector; +} +}), new objj_method(sel_getUid("setClass:forClassName:"), function $CPKeyedUnarchiver__setClass_forClassName_(self, _cmd, aClass, aClassName) +{ with(self) +{ + objj_msgSend(_replacementClasses, "setObject:forKey:", aClass, aClassName); +} +}), new objj_method(sel_getUid("classForClassName:"), function $CPKeyedUnarchiver__classForClassName_(self, _cmd, aClassName) +{ with(self) +{ + return objj_msgSend(_replacementClasses, "objectForKey:", aClassName); +} +}), new objj_method(sel_getUid("allowsKeyedCoding"), function $CPKeyedUnarchiver__allowsKeyedCoding(self, _cmd) +{ with(self) +{ + return YES; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPKeyedUnarchiver__initialize(self, _cmd) +{ with(self) +{ + if (self !== objj_msgSend(CPKeyedUnarchiver, "class")) + return; + _CPKeyedUnarchiverArrayClass = objj_msgSend(CPArray, "class"); + _CPKeyedUnarchiverStringClass = objj_msgSend(CPString, "class"); + _CPKeyedUnarchiverDictionaryClass = objj_msgSend(CPDictionary, "class"); + _CPKeyedUnarchiverNumberClass = objj_msgSend(CPNumber, "class"); + _CPKeyedUnarchiverDataClass = objj_msgSend(CPData, "class"); + _CPKeyedUnarchiverArchiverValueClass = objj_msgSend(_CPKeyedArchiverValue, "class"); +} +}), new objj_method(sel_getUid("unarchiveObjectWithData:"), function $CPKeyedUnarchiver__unarchiveObjectWithData_(self, _cmd, data) +{ with(self) +{ + var unarchiver = objj_msgSend(objj_msgSend(self, "alloc"), "initForReadingWithData:", data), + object = objj_msgSend(unarchiver, "decodeObjectForKey:", "root"); + objj_msgSend(unarchiver, "finishDecoding"); + return object; +} +}), new objj_method(sel_getUid("unarchiveObjectWithFile:"), function $CPKeyedUnarchiver__unarchiveObjectWithFile_(self, _cmd, aFilePath) +{ with(self) +{ +} +}), new objj_method(sel_getUid("unarchiveObjectWithFile:asynchronously:"), function $CPKeyedUnarchiver__unarchiveObjectWithFile_asynchronously_(self, _cmd, aFilePath, aFlag) +{ with(self) +{ +} +})]); +} +var _CPKeyedUnarchiverDecodeObjectAtIndex = function(self, anIndex) +{ + var object = self._objects[anIndex]; + if (object) + if (object == self._objects[0]) + return nil; + else + return object; + var object, + plistObject = self._plistObjects[anIndex]; + if (objj_msgSend(plistObject, "isKindOfClass:", _CPKeyedUnarchiverDictionaryClass)) + { + var plistClass = self._plistObjects[objj_msgSend(objj_msgSend(plistObject, "objectForKey:", _CPKeyedArchiverClassKey), "objectForKey:", _CPKeyedArchiverUIDKey)], + className = objj_msgSend(plistClass, "objectForKey:", _CPKeyedArchiverClassNameKey), + classes = objj_msgSend(plistClass, "objectForKey:", _CPKeyedArchiverClassesKey), + theClass = objj_msgSend(self, "classForClassName:", className); + if (!theClass) + theClass = CPClassFromString(className); + var savedPlistObject = self._plistObject; + self._plistObject = plistObject; + object = objj_msgSend(theClass, "allocWithCoder:", self); + self._objects[anIndex] = object; + var processedObject = objj_msgSend(object, "initWithCoder:", self); + self._plistObject = savedPlistObject; + if (processedObject != object) + { + if (self._delegateSelectors & _CPKeyedUnarchiverWillReplaceObjectWithObjectSelector) + objj_msgSend(self._delegate, "unarchiver:willReplaceObject:withObject:", self, object, processedObject); + object = processedObject; + self._objects[anIndex] = processedObject; + } + processedObject = objj_msgSend(object, "awakeAfterUsingCoder:", self); + if (processedObject != object) + { + if (self._delegateSelectors & _CPKeyedUnarchiverWillReplaceObjectWithObjectSelector) + objj_msgSend(self._delegate, "unarchiver:willReplaceObject:withObject:", self, object, processedObject); + object = processedObject; + self._objects[anIndex] = processedObject; + } + if (self._delegate) + { + if (self._delegateSelectors & _CPKeyedUnarchiverDidDecodeObjectSelector) + processedObject = objj_msgSend(self._delegate, "unarchiver:didDecodeObject:", self, object); + if (processedObject != object) + { + if (self._delegateSelectors & _CPKeyedUnarchiverWillReplaceObjectWithObjectSelector) + objj_msgSend(self._delegate, "unarchiver:willReplaceObject:withObject:", self, object, processedObject); + object = processedObject; + self._objects[anIndex] = processedObject; + } + } + } + else + { + self._objects[anIndex] = object = plistObject; + if (objj_msgSend(object, "class") == _CPKeyedUnarchiverStringClass) + { + if (object == _CPKeyedArchiverNullString) + { + self._objects[anIndex] = self._objects[0]; + return nil; + } + else + self._objects[anIndex] = object = plistObject; + } + } + if (objj_msgSend(object, "isMemberOfClass:", _CPKeyedUnarchiverArchiverValueClass)) + object = objj_msgSend(object, "JSObject"); + return object; +} + +p;18;CPKeyValueCoding.ji;9;CPArray.ji;10;CPObject.ji;14;CPDictionary.jc;8592; +var CPObjectAccessorsForClass = nil, + CPObjectModifiersForClass = nil; +CPUndefinedKeyException = "CPUndefinedKeyException"; +CPTargetObjectUserInfoKey = "CPTargetObjectUserInfoKey"; +CPUnknownUserInfoKey = "CPUnknownUserInfoKey"; +{ +var the_class = objj_getClass("CPObject") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPObject\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("_ivarForKey:"), function $CPObject___ivarForKey_(self, _cmd, aKey) +{ with(self) +{ + var ivar = '_' + aKey; + if (typeof self[ivar] != "undefined") + return ivar; + var isKey = "is" + aKey.charAt(0).toUpperCase() + aKey.substr(1); + ivar = '_' + isKey; + if (typeof self[ivar] != "undefined") + return ivar; + ivar = aKey; + if (typeof self[ivar] != "undefined") + return ivar; + ivar = isKey; + if (typeof self[ivar] != "undefined") + return ivar; + return nil; +} +}), new objj_method(sel_getUid("valueForKey:"), function $CPObject__valueForKey_(self, _cmd, aKey) +{ with(self) +{ + var theClass = objj_msgSend(self, "class"), + selector = objj_msgSend(theClass, "_accessorForKey:", aKey); + if (selector) + return objj_msgSend(self, selector); + if(objj_msgSend(theClass, "accessInstanceVariablesDirectly")) + { + var ivar = objj_msgSend(self, "_ivarForKey:", aKey); + if (ivar) + return self[ivar]; + } + return objj_msgSend(self, "valueForUndefinedKey:", aKey); +} +}), new objj_method(sel_getUid("valueForKeyPath:"), function $CPObject__valueForKeyPath_(self, _cmd, aKeyPath) +{ with(self) +{ + var keys = aKeyPath.split("."), + index = 0, + count = keys.length, + value = self; + for(; index < count; ++index) + value = objj_msgSend(value, "valueForKey:", keys[index]); + return value; +} +}), new objj_method(sel_getUid("dictionaryWithValuesForKeys:"), function $CPObject__dictionaryWithValuesForKeys_(self, _cmd, keys) +{ with(self) +{ + var index = 0, + count = keys.length, + dictionary = objj_msgSend(CPDictionary, "dictionary"); + for (; index < count; ++index) + { + var key = keys[index], + value = objj_msgSend(self, "valueForKey:", key); + if (value === nil) + objj_msgSend(dictionary, "setObject:forKey:", objj_msgSend(CPNull, "null"), key); + else + objj_msgSend(dictionary, "setObject:forKey:", value, key); + } + return dictionary; +} +}), new objj_method(sel_getUid("valueForUndefinedKey:"), function $CPObject__valueForUndefinedKey_(self, _cmd, aKey) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPException, "exceptionWithName:reason:userInfo:", CPUndefinedKeyException, objj_msgSend(self, "description") + " is not key value coding-compliant for the key " + aKey, objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [self, aKey], [CPTargetObjectUserInfoKey, CPUnknownUserInfoKey])), "raise"); +} +}), new objj_method(sel_getUid("setValue:forKeyPath:"), function $CPObject__setValue_forKeyPath_(self, _cmd, aValue, aKeyPath) +{ with(self) +{ + if (!aKeyPath) aKeyPath = "self"; + var i = 0, + keys = aKeyPath.split("."), + count = keys.length - 1, + owner = self; + for(; i < count; ++i) + owner = objj_msgSend(owner, "valueForKey:", keys[i]); + objj_msgSend(owner, "setValue:forKey:", aValue, keys[i]); +} +}), new objj_method(sel_getUid("setValue:forKey:"), function $CPObject__setValue_forKey_(self, _cmd, aValue, aKey) +{ with(self) +{ + var theClass = objj_msgSend(self, "class"), + selector = objj_msgSend(theClass, "_modifierForKey:", aKey); + if (selector) + return objj_msgSend(self, selector, aValue); + if(objj_msgSend(theClass, "accessInstanceVariablesDirectly")) + { + var ivar = objj_msgSend(self, "_ivarForKey:", aKey); + if (ivar) + { + objj_msgSend(self, "willChangeValueForKey:", aKey); + self[ivar] = aValue; + objj_msgSend(self, "didChangeValueForKey:", aKey); + return; + } + } + objj_msgSend(self, "setValue:forUndefinedKey:", aValue, aKey); +} +}), new objj_method(sel_getUid("setValue:forUndefinedKey:"), function $CPObject__setValue_forUndefinedKey_(self, _cmd, aValue, aKey) +{ with(self) +{ + objj_msgSend(objj_msgSend(CPException, "exceptionWithName:reason:userInfo:", CPUndefinedKeyException, objj_msgSend(self, "description") + " is not key value coding-compliant for the key " + aKey, objj_msgSend(CPDictionary, "dictionaryWithObjects:forKeys:", [self, aKey], [CPTargetObjectUserInfoKey, CPUnknownUserInfoKey])), "raise"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("accessInstanceVariablesDirectly"), function $CPObject__accessInstanceVariablesDirectly(self, _cmd) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("_accessorForKey:"), function $CPObject___accessorForKey_(self, _cmd, aKey) +{ with(self) +{ + if (!CPObjectAccessorsForClass) + CPObjectAccessorsForClass = objj_msgSend(CPDictionary, "dictionary"); + var hash = objj_msgSend(isa, "hash"), + selector = nil, + accessors = objj_msgSend(CPObjectAccessorsForClass, "objectForKey:", hash); + if (accessors) + { + selector = objj_msgSend(accessors, "objectForKey:", aKey); + if (selector) + return selector === objj_msgSend(CPNull, "null") ? nil : selector; + } + else + { + accessors = objj_msgSend(CPDictionary, "dictionary"); + objj_msgSend(CPObjectAccessorsForClass, "setObject:forKey:", accessors, hash); + } + var capitalizedKey = aKey.charAt(0).toUpperCase() + aKey.substr(1); + if (objj_msgSend(self, "instancesRespondToSelector:", selector = CPSelectorFromString("get" + capitalizedKey)) || + objj_msgSend(self, "instancesRespondToSelector:", selector = CPSelectorFromString(aKey)) || + objj_msgSend(self, "instancesRespondToSelector:", selector = CPSelectorFromString("is" + capitalizedKey)) || + objj_msgSend(self, "instancesRespondToSelector:", selector = CPSelectorFromString("_get" + capitalizedKey)) || + objj_msgSend(self, "instancesRespondToSelector:", selector = CPSelectorFromString("_" + aKey)) || + objj_msgSend(self, "instancesRespondToSelector:", selector = CPSelectorFromString("_is" + capitalizedKey))) + { + objj_msgSend(accessors, "setObject:forKey:", selector, aKey); + return selector; + } + objj_msgSend(accessors, "setObject:forKey:", objj_msgSend(CPNull, "null"), aKey); + return nil; +} +}), new objj_method(sel_getUid("_modifierForKey:"), function $CPObject___modifierForKey_(self, _cmd, aKey) +{ with(self) +{ + if (!CPObjectModifiersForClass) + CPObjectModifiersForClass = objj_msgSend(CPDictionary, "dictionary"); + var hash = objj_msgSend(isa, "hash"), + selector = nil, + modifiers = objj_msgSend(CPObjectModifiersForClass, "objectForKey:", hash); + if (modifiers) + { + selector = objj_msgSend(modifiers, "objectForKey:", aKey); + if (selector) + return selector === objj_msgSend(CPNull, "null") ? nil : selector; + } + else + { + modifiers = objj_msgSend(CPDictionary, "dictionary"); + objj_msgSend(CPObjectModifiersForClass, "setObject:forKey:", modifiers, hash); + } + if (selector) + return selector === objj_msgSend(CPNull, "null") ? nil : selector; + var capitalizedKey = aKey.charAt(0).toUpperCase() + aKey.substr(1) + ':'; + if (objj_msgSend(self, "instancesRespondToSelector:", selector = CPSelectorFromString("set" + capitalizedKey)) || + objj_msgSend(self, "instancesRespondToSelector:", selector = CPSelectorFromString("_set" + capitalizedKey))) + { + objj_msgSend(modifiers, "setObject:forKey:", selector, aKey); + return selector; + } + objj_msgSend(modifiers, "setObject:forKey:", objj_msgSend(CPNull, "null"), aKey); + return nil; +} +})]); +} +{ +var the_class = objj_getClass("CPDictionary") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPDictionary\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("valueForKey:"), function $CPDictionary__valueForKey_(self, _cmd, aKey) +{ with(self) +{ + return objj_msgSend(self, "objectForKey:", aKey); +} +}), new objj_method(sel_getUid("setValue:forKey:"), function $CPDictionary__setValue_forKey_(self, _cmd, aValue, aKey) +{ with(self) +{ + objj_msgSend(self, "setObject:forKey:", aValue, aKey); +} +})]); +} +i;13;CPArray+KVO.jp;21;CPKeyValueObserving.ji;9;CPArray.ji;14;CPDictionary.ji;13;CPException.ji;10;CPObject.ji;7;CPSet.jc;21303; +{ +var the_class = objj_getClass("CPObject") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPObject\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("willChangeValueForKey:"), function $CPObject__willChangeValueForKey_(self, _cmd, aKey) +{ with(self) +{ +} +}), new objj_method(sel_getUid("didChangeValueForKey:"), function $CPObject__didChangeValueForKey_(self, _cmd, aKey) +{ with(self) +{ +} +}), new objj_method(sel_getUid("willChange:valuesAtIndexes:forKey:"), function $CPObject__willChange_valuesAtIndexes_forKey_(self, _cmd, change, indexes, key) +{ with(self) +{ +} +}), new objj_method(sel_getUid("didChange:valuesAtIndexes:forKey:"), function $CPObject__didChange_valuesAtIndexes_forKey_(self, _cmd, change, indexes, key) +{ with(self) +{ +} +}), new objj_method(sel_getUid("addObserver:forKeyPath:options:context:"), function $CPObject__addObserver_forKeyPath_options_context_(self, _cmd, anObserver, aPath, options, aContext) +{ with(self) +{ + if (!anObserver || !aPath) + return; + objj_msgSend(objj_msgSend(_CPKVOProxy, "proxyForObject:", self), "_addObserver:forKeyPath:options:context:", anObserver, aPath, options, aContext); +} +}), new objj_method(sel_getUid("removeObserver:forKeyPath:"), function $CPObject__removeObserver_forKeyPath_(self, _cmd, anObserver, aPath) +{ with(self) +{ + if (!anObserver || !aPath) + return; + objj_msgSend(objj_msgSend(KVOProxyMap, "objectForKey:", objj_msgSend(self, "hash")), "_removeObserver:forKeyPath:", anObserver, aPath); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("automaticallyNotifiesObserversForKey:"), function $CPObject__automaticallyNotifiesObserversForKey_(self, _cmd, aKey) +{ with(self) +{ + return YES; +} +}), new objj_method(sel_getUid("keyPathsForValuesAffectingValueForKey:"), function $CPObject__keyPathsForValuesAffectingValueForKey_(self, _cmd, aKey) +{ with(self) +{ + var capitalizedKey = aKey.charAt(0).toUpperCase()+aKey.substring(1); + selector = "keyPathsForValuesAffectingValueFor"+capitalizedKey; + if (objj_msgSend(objj_msgSend(self, "class"), "respondsToSelector:", selector)) + return objj_msgSend(objj_msgSend(self, "class"), selector); + return objj_msgSend(CPSet, "set"); +} +})]); +} +CPKeyValueObservingOptionNew = 1 << 0; +CPKeyValueObservingOptionOld = 1 << 1; +CPKeyValueObservingOptionInitial = 1 << 2; +CPKeyValueObservingOptionPrior = 1 << 3; +CPKeyValueChangeKindKey = "CPKeyValueChangeKindKey"; +CPKeyValueChangeNewKey = "CPKeyValueChangeNewKey"; +CPKeyValueChangeOldKey = "CPKeyValueChangeOldKey"; +CPKeyValueChangeIndexesKey = "CPKeyValueChangeIndexesKey"; +CPKeyValueChangeNotificationIsPriorKey = "CPKeyValueChangeNotificationIsPriorKey"; +CPKeyValueChangeSetting = 1; +CPKeyValueChangeInsertion = 2; +CPKeyValueChangeRemoval = 3; +CPKeyValueChangeReplacement = 4; +var kvoNewAndOld = CPKeyValueObservingOptionNew|CPKeyValueObservingOptionOld; +var KVOProxyMap = objj_msgSend(CPDictionary, "dictionary"), + DependentKeysMap = objj_msgSend(CPDictionary, "dictionary"); +{var the_class = objj_allocateClassPair(CPObject, "_CPKVOProxy"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_targetObject"), new objj_ivar("_nativeClass"), new objj_ivar("_changesForKey"), new objj_ivar("_observersForKey"), new objj_ivar("_replacedKeys")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithTarget:"), function $_CPKVOProxy__initWithTarget_(self, _cmd, aTarget) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + _targetObject = aTarget; + _nativeClass = objj_msgSend(aTarget, "class"); + _observersForKey = objj_msgSend(CPDictionary, "dictionary"); + _changesForKey = objj_msgSend(CPDictionary, "dictionary"); + _replacedKeys = objj_msgSend(CPSet, "set"); + return self; +} +}), new objj_method(sel_getUid("_replaceClass"), function $_CPKVOProxy___replaceClass(self, _cmd) +{ with(self) +{ + var currentClass = _nativeClass, + kvoClassName = "$KVO_"+class_getName(_nativeClass), + existingKVOClass = objj_lookUpClass(kvoClassName); + if (existingKVOClass) + { + _targetObject.isa = existingKVOClass; + return; + } + var kvoClass = objj_allocateClassPair(currentClass, kvoClassName); + objj_registerClassPair(kvoClass); + _class_initialize(kvoClass); + var methodList = _CPKVOModelSubclass.method_list, + count = methodList.length; + for (var i=0; i 1) ? sprintf.apply(null, parameters) : String(parameters[0]); + if (_CPLogRegistrations[aLevel]) + for (var i = 0; i < _CPLogRegistrations[aLevel].length; i++) + _CPLogRegistrations[aLevel][i](message, aLevel, aTitle); +} +CPLog= function() { _CPLogDispatch(arguments); } +for (var i = 0; i < CPLogLevels.length; i++) + CPLog[CPLogLevels[i]] = (function(level) { return function() { _CPLogDispatch(arguments, level); }; })(CPLogLevels[i]); +ANSI_ESC = String.fromCharCode(0x1B); +ANSI_CSI = ANSI_ESC + '['; +ANSI_TEXT_PROP = 'm'; +ANSI_RESET = '0'; +ANSI_BOLD = '1'; +ANSI_FAINT = '2'; +ANSI_NORMAL = '22'; +ANSI_ITALIC = '3'; +ANSI_UNDER = '4'; +ANSI_UNDER_DBL = '21'; +ANSI_UNDER_OFF = '24'; +ANSI_BLINK = '5'; +ANSI_BLINK_FAST = '6'; +ANSI_BLINK_OFF = '25'; +ANSI_REVERSE = '7'; +ANSI_POSITIVE = '27'; +ANSI_CONCEAL = '8'; +ANSI_REVEAL = '28'; +ANSI_FG = '3'; +ANSI_BG = '4'; +ANSI_FG_INTENSE = '9'; +ANSI_BG_INTENSE = '10'; +ANSI_BLACK = '0'; +ANSI_RED = '1'; +ANSI_GREEN = '2'; +ANSI_YELLOW = '3'; +ANSI_BLUE = '4'; +ANSI_MAGENTA = '5'; +ANSI_CYAN = '6'; +ANSI_WHITE = '7'; +var colorCodeMap = { + "black" : ANSI_BLACK, + "red" : ANSI_RED, + "green" : ANSI_GREEN, + "yellow" : ANSI_YELLOW, + "blue" : ANSI_BLUE, + "magenta" : ANSI_MAGENTA, + "cyan" : ANSI_CYAN, + "white" : ANSI_WHITE +} +ANSIControlCode = function(code, parameters) +{ + if (parameters == undefined) + parameters = ""; + else if (typeof(parameters) == 'object' && (parameters instanceof Array)) + parameters = parameters.join(';'); + return ANSI_CSI + String(parameters) + String(code); +} +ANSITextApplyProperties = function(string, properties) +{ + return ANSIControlCode(ANSI_TEXT_PROP, properties) + String(string) + ANSIControlCode(ANSI_TEXT_PROP); +} +ANSITextColorize = function(string, color) +{ + if (colorCodeMap[color] == undefined) + return string; + return ANSITextApplyProperties(string, ANSI_FG + colorCodeMap[color]); +} +var levelColorMap = { + "fatal": "red", + "error": "red", + "warn" : "yellow", + "info" : "green", + "debug": "cyan", + "trace": "blue" +} +CPLogPrint= function(aString, aLevel, aTitle) +{ + if (typeof print != "undefined") + { + if (aLevel == "fatal" || aLevel == "error" || aLevel == "warn") + var message = ANSITextColorize(_CPFormatLogMessage(aString, aLevel, aTitle), levelColorMap[aLevel]); + else + var message = _CPFormatLogMessage(aString, ANSITextColorize(aLevel, levelColorMap[aLevel]), aTitle); + print(message); + } +} +CPLogAlert= function(aString, aLevel, aTitle) +{ + if (typeof alert != "undefined" && !window.CPLogDisable) + { + var message = _CPFormatLogMessage(aString, aLevel, aTitle); + window.CPLogDisable = !confirm(message + "\n\n(Click cancel to stop log alerts)"); + } +} +CPLogConsole= function(aString, aLevel, aTitle) +{ + if (typeof console != "undefined") + { + var message = _CPFormatLogMessage(aString, aLevel, aTitle); + var logger = { + "fatal": "error", + "error": "error", + "warn": "warn", + "info": "info", + "debug": "debug", + "trace": "debug" + }[aLevel]; + if (logger && console[logger]) + console[logger](message); + else if (console.log) + console.log(message); + } +} +var CPLogWindow = null; +CPLogPopup = function(aString, aLevel, aTitle) +{ + try { + if (window.CPLogDisable || window.open == undefined) + return; + if (!CPLogWindow || !CPLogWindow.document) + { + CPLogWindow = window.open("", "_blank", "width=600,height=400,status=no,resizable=yes,scrollbars=yes"); + if (!CPLogWindow) { + window.CPLogDisable = !confirm(aString + "\n\n(Disable pop-up blocking for CPLog window; Click cancel to stop log alerts)"); + return; + } + _CPLogInitPopup(CPLogWindow); + } + var logDiv = CPLogWindow.document.createElement("div"); + logDiv.setAttribute("class", aLevel || "fatal"); + var message = _CPFormatLogMessage(aString, null, aTitle); + logDiv.appendChild(CPLogWindow.document.createTextNode(message)); + CPLogWindow.log.appendChild(logDiv); + if (CPLogWindow.focusEnabled.checked) + CPLogWindow.focus(); + if (CPLogWindow.blockEnabled.checked) + CPLogWindow.blockEnabled.checked = CPLogWindow.confirm(message+"\nContinue blocking?"); + if (CPLogWindow.scrollEnabled.checked) + CPLogWindow.scrollToBottom(); + } catch(e) { + } +} +var _CPLogInitPopup = function(logWindow) +{ + var doc = logWindow.document; + doc.writeln(""); + doc.title = CPLogDefaultTitle + " Run Log"; + var head = doc.getElementsByTagName("head")[0]; + var body = doc.getElementsByTagName("body")[0]; + var base = window.location.protocol + "//" + window.location.host + window.location.pathname; + base = base.substring(0,base.lastIndexOf("/")+1); + var link = doc.createElement("link"); + link.setAttribute("type", "text/css"); + link.setAttribute("rel", "stylesheet"); + link.setAttribute("href", base+"Frameworks/Foundation/Resources/log.css"); + link.setAttribute("media", "screen"); + head.appendChild(link); + var div = doc.createElement("div"); + div.setAttribute("id", "header"); + body.appendChild(div); + var ul = doc.createElement("ul"); + ul.setAttribute("id", "enablers"); + div.appendChild(ul); + for (var i = 0; i < CPLogLevels.length; i++) { + var li = doc.createElement("li"); + li.setAttribute("id", "en"+CPLogLevels[i]); + li.setAttribute("class", CPLogLevels[i]); + li.setAttribute("onclick", "toggle(this);"); + li.setAttribute("enabled", "yes"); + li.appendChild(doc.createTextNode(CPLogLevels[i])); + ul.appendChild(li); + } + var ul = doc.createElement("ul"); + ul.setAttribute("id", "options"); + div.appendChild(ul); + var options = {"focus":["Focus",false], "block":["Block",false], "wrap":["Wrap",false], "scroll":["Scroll",true], "close":["Close",true]}; + for (o in options) { + var li = doc.createElement("li"); + ul.appendChild(li); + logWindow[o+"Enabled"] = doc.createElement("input"); + logWindow[o+"Enabled"].setAttribute("id", o); + logWindow[o+"Enabled"].setAttribute("type", "checkbox"); + if (options[o][1]) + logWindow[o+"Enabled"].setAttribute("checked", "checked"); + li.appendChild(logWindow[o+"Enabled"]); + var label = doc.createElement("label"); + label.setAttribute("for", o); + label.appendChild(doc.createTextNode(options[o][0])); + li.appendChild(label); + } + logWindow.log = doc.createElement("div"); + logWindow.log.setAttribute("class", "enerror endebug enwarn eninfo enfatal entrace"); + body.appendChild(logWindow.log); + logWindow.toggle = function(elem) { + var enabled = (elem.getAttribute("enabled") == "yes") ? "no" : "yes"; + elem.setAttribute("enabled", enabled); + if (enabled == "yes") + logWindow.log.className += " " + elem.id + else + logWindow.log.className = logWindow.log.className.replace(new RegExp("[\\s]*"+elem.id, "g"), ""); + } + logWindow.scrollToBottom = function() { + logWindow.scrollTo(0, body.offsetHeight); + } + logWindow.wrapEnabled.addEventListener("click", function() { + logWindow.log.setAttribute("wrap", logWindow.wrapEnabled.checked ? "yes" : "no"); + }, false); + logWindow.addEventListener("keydown", function(e) { + var e = e || logWindow.event; + if (e.keyCode == 75 && (e.ctrlKey || e.metaKey)) { + while (logWindow.log.firstChild) { + logWindow.log.removeChild(logWindow.log.firstChild); + } + e.preventDefault(); + } + }, "false"); + window.addEventListener("unload", function() { + if (logWindow && logWindow.closeEnabled && logWindow.closeEnabled.checked) { + window.CPLogDisable = true; + logWindow.close(); + } + }, false); + logWindow.addEventListener("unload", function() { + if (!window.CPLogDisable) { + window.CPLogDisable = !confirm("Click cancel to stop logging"); + } + }, false); +} + +p;16;CPNotification.ji;10;CPObject.ji;13;CPException.jc;2045; +{var the_class = objj_allocateClassPair(CPObject, "CPNotification"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_name"), new objj_ivar("_object"), new objj_ivar("_userInfo")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPNotification__init(self, _cmd) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPUnsupportedMethodException, "CPNotification's init method should not be used"); +} +}), new objj_method(sel_getUid("initWithName:object:userInfo:"), function $CPNotification__initWithName_object_userInfo_(self, _cmd, aNotificationName, anObject, aUserInfo) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _name = aNotificationName; + _object = anObject; + _userInfo = aUserInfo; + } + return self; +} +}), new objj_method(sel_getUid("name"), function $CPNotification__name(self, _cmd) +{ with(self) +{ + return _name; +} +}), new objj_method(sel_getUid("object"), function $CPNotification__object(self, _cmd) +{ with(self) +{ + return _object; +} +}), new objj_method(sel_getUid("userInfo"), function $CPNotification__userInfo(self, _cmd) +{ with(self) +{ + return _userInfo; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("notificationWithName:object:userInfo:"), function $CPNotification__notificationWithName_object_userInfo_(self, _cmd, aNotificationName, anObject, aUserInfo) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithName:object:userInfo:", aNotificationName, anObject, aUserInfo); +} +}), new objj_method(sel_getUid("notificationWithName:object:"), function $CPNotification__notificationWithName_object_(self, _cmd, aNotificationName, anObject) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithName:object:userInfo:", aNotificationName, anObject, nil); +} +})]); +} + +p;22;CPNotificationCenter.ji;9;CPArray.ji;14;CPDictionary.ji;16;CPNotification.ji;13;CPException.jc;10027; +var CPNotificationDefaultCenter = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPNotificationCenter"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_namedRegistries"), new objj_ivar("_unnamedRegistry")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPNotificationCenter__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _namedRegistries = objj_msgSend(CPDictionary, "dictionary"); + _unnamedRegistry = objj_msgSend(objj_msgSend(_CPNotificationRegistry, "alloc"), "init"); + } + return self; +} +}), new objj_method(sel_getUid("addObserver:selector:name:object:"), function $CPNotificationCenter__addObserver_selector_name_object_(self, _cmd, anObserver, aSelector, aNotificationName, anObject) +{ with(self) +{ + var registry, + observer = objj_msgSend(objj_msgSend(_CPNotificationObserver, "alloc"), "initWithObserver:selector:", anObserver, aSelector); + if (aNotificationName == nil) + registry = _unnamedRegistry; + else if (!(registry = objj_msgSend(_namedRegistries, "objectForKey:", aNotificationName))) + { + registry = objj_msgSend(objj_msgSend(_CPNotificationRegistry, "alloc"), "init"); + objj_msgSend(_namedRegistries, "setObject:forKey:", registry, aNotificationName); + } + objj_msgSend(registry, "addObserver:object:", observer, anObject); +} +}), new objj_method(sel_getUid("removeObserver:"), function $CPNotificationCenter__removeObserver_(self, _cmd, anObserver) +{ with(self) +{ + var name = nil, + names = objj_msgSend(_namedRegistries, "keyEnumerator"); + while (name = objj_msgSend(names, "nextObject")) + objj_msgSend(objj_msgSend(_namedRegistries, "objectForKey:", name), "removeObserver:object:", anObserver, nil); + objj_msgSend(_unnamedRegistry, "removeObserver:object:", anObserver, nil); +} +}), new objj_method(sel_getUid("removeObserver:name:object:"), function $CPNotificationCenter__removeObserver_name_object_(self, _cmd, anObserver, aNotificationName, anObject) +{ with(self) +{ + if (aNotificationName == nil) + { + var name = nil, + names = objj_msgSend(_namedRegistries, "keyEnumerator"); + while (name = objj_msgSend(names, "nextObject")) + objj_msgSend(objj_msgSend(_namedRegistries, "objectForKey:", name), "removeObserver:object:", anObserver, anObject); + objj_msgSend(_unnamedRegistry, "removeObserver:object:", anObserver, anObject); + } + else + objj_msgSend(objj_msgSend(_namedRegistries, "objectForKey:", aNotificationName), "removeObserver:object:", anObserver, anObject); +} +}), new objj_method(sel_getUid("postNotification:"), function $CPNotificationCenter__postNotification_(self, _cmd, aNotification) +{ with(self) +{ + if (!aNotification) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "postNotification: does not except 'nil' notifications"); + _CPNotificationCenterPostNotification(self, aNotification); +} +}), new objj_method(sel_getUid("postNotificationName:object:userInfo:"), function $CPNotificationCenter__postNotificationName_object_userInfo_(self, _cmd, aNotificationName, anObject, aUserInfo) +{ with(self) +{ + _CPNotificationCenterPostNotification(self, objj_msgSend(objj_msgSend(CPNotification, "alloc"), "initWithName:object:userInfo:", aNotificationName, anObject, aUserInfo)); +} +}), new objj_method(sel_getUid("postNotificationName:object:"), function $CPNotificationCenter__postNotificationName_object_(self, _cmd, aNotificationName, anObject) +{ with(self) +{ + _CPNotificationCenterPostNotification(self, objj_msgSend(objj_msgSend(CPNotification, "alloc"), "initWithName:object:userInfo:", aNotificationName, anObject, nil)); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("defaultCenter"), function $CPNotificationCenter__defaultCenter(self, _cmd) +{ with(self) +{ + if (!CPNotificationDefaultCenter) + CPNotificationDefaultCenter = objj_msgSend(objj_msgSend(CPNotificationCenter, "alloc"), "init"); + return CPNotificationDefaultCenter; +} +})]); +} +var _CPNotificationCenterPostNotification = function( self, aNotification) +{ + objj_msgSend(self._unnamedRegistry, "postNotification:", aNotification); + objj_msgSend(objj_msgSend(self._namedRegistries, "objectForKey:", objj_msgSend(aNotification, "name")), "postNotification:", aNotification); +} +{var the_class = objj_allocateClassPair(CPObject, "_CPNotificationRegistry"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_objectObservers"), new objj_ivar("_observerRemoval"), new objj_ivar("_postingObservers")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $_CPNotificationRegistry__init(self, _cmd) +{ with(self) +{ + if (self) + _objectObservers = objj_msgSend(CPDictionary, "dictionary"); + return self; +} +}), new objj_method(sel_getUid("addObserver:object:"), function $_CPNotificationRegistry__addObserver_object_(self, _cmd, anObserver, anObject) +{ with(self) +{ + if (!anObject) + anObject = objj_msgSend(CPNull, "null"); + var observers = objj_msgSend(_objectObservers, "objectForKey:", objj_msgSend(anObject, "hash")); + if (!observers) + { + observers = []; + objj_msgSend(_objectObservers, "setObject:forKey:", observers, objj_msgSend(anObject, "hash")); + } + if (observers == _postingObservers) + _postingObservers = objj_msgSend(observers, "copy"); + observers.push(anObserver); +} +}), new objj_method(sel_getUid("removeObserver:object:"), function $_CPNotificationRegistry__removeObserver_object_(self, _cmd, anObserver, anObject) +{ with(self) +{ + var removedKeys = []; + if (anObject == nil) + { + var key = nil, + keys = objj_msgSend(_objectObservers, "keyEnumerator"); + while (key = objj_msgSend(keys, "nextObject")) + { + var observers = objj_msgSend(_objectObservers, "objectForKey:", key), + count = observers ? observers.length : 0; + while (count--) + if (objj_msgSend(observers[count], "observer") == anObserver) + { + _observerRemoval = YES; + if (observers == _postingObservers) + _postingObservers = objj_msgSend(observers, "copy"); + observers.splice(count, 1); + } + if (!observers || observers.length == 0) + removedKeys.push(key); + } + } + else + { + var key = objj_msgSend(anObject, "hash"), + observers = objj_msgSend(_objectObservers, "objectForKey:", key); + count = observers ? observers.length : 0; + while (count--) + if (objj_msgSend(observers[count], "observer") == anObserver) + { + _observerRemoval = YES; + if (observers == _postingObservers) + _postingObservers = objj_msgSend(observers, "copy"); + observers.splice(count, 1) + } + if (!observers || observers.length == 0) + removedKeys.push(key); + } + var count = removedKeys.length; + while (count--) + objj_msgSend(_objectObservers, "removeObjectForKey:", removedKeys[count]); +} +}), new objj_method(sel_getUid("postNotification:"), function $_CPNotificationRegistry__postNotification_(self, _cmd, aNotification) +{ with(self) +{ + var object = objj_msgSend(aNotification, "object"); + if (object != nil && (_postingObservers = objj_msgSend(_objectObservers, "objectForKey:", objj_msgSend(object, "hash")))) + { + var observers = _postingObservers, + count = observers.length; + _observerRemoval = NO; + while (count--) + { + var observer = _postingObservers[count]; + if (!_observerRemoval || objj_msgSend(observers, "indexOfObjectIdenticalTo:", observer) != CPNotFound) + objj_msgSend(observer, "postNotification:", aNotification); + } + } + _postingObservers = objj_msgSend(_objectObservers, "objectForKey:", objj_msgSend(objj_msgSend(CPNull, "null"), "hash")); + if (!_postingObservers) + return; + var observers = _postingObservers, + count = observers.length; + _observerRemoval = NO; + while (count--) + { + var observer = _postingObservers[count]; + if (!_observerRemoval || objj_msgSend(observers, "indexOfObjectIdenticalTo:", observer) != CPNotFound) + objj_msgSend(observer, "postNotification:", aNotification); + } + _postingObservers = nil; +} +}), new objj_method(sel_getUid("count"), function $_CPNotificationRegistry__count(self, _cmd) +{ with(self) +{ + return objj_msgSend(_objectObservers, "count"); +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "_CPNotificationObserver"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_observer"), new objj_ivar("_selector")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithObserver:selector:"), function $_CPNotificationObserver__initWithObserver_selector_(self, _cmd, anObserver, aSelector) +{ with(self) +{ + if (self) + { + _observer = anObserver; + _selector = aSelector; + } + return self; +} +}), new objj_method(sel_getUid("observer"), function $_CPNotificationObserver__observer(self, _cmd) +{ with(self) +{ + return _observer; +} +}), new objj_method(sel_getUid("postNotification:"), function $_CPNotificationObserver__postNotification_(self, _cmd, aNotification) +{ with(self) +{ + objj_msgSend(_observer, "performSelector:withObject:", _selector, aNotification); +} +})]); +} + +p;8;CPNull.ji;10;CPObject.jc;500; +var CPNullSharedNull = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPNull"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(meta_class, [new objj_method(sel_getUid("null"), function $CPNull__null(self, _cmd) +{ with(self) +{ + if (!CPNullSharedNull) + CPNullSharedNull = objj_msgSend(objj_msgSend(CPNull, "alloc"), "init"); + return CPNullSharedNull; +} +})]); +} + +p;10;CPNumber.ji;10;CPObject.ji;15;CPObjJRuntime.jc;8497; +var __placeholder = new Number(), + _CPNumberHashes = { }; +{var the_class = objj_allocateClassPair(CPObject, "CPNumber"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithBool:"), function $CPNumber__initWithBool_(self, _cmd, aBoolean) +{ with(self) +{ + return aBoolean; +} +}), new objj_method(sel_getUid("initWithChar:"), function $CPNumber__initWithChar_(self, _cmd, aChar) +{ with(self) +{ + if (aChar.charCodeAt) + return aChar.charCodeAt(0); + return aChar; +} +}), new objj_method(sel_getUid("initWithDouble:"), function $CPNumber__initWithDouble_(self, _cmd, aDouble) +{ with(self) +{ + return aDouble; +} +}), new objj_method(sel_getUid("initWithFloat:"), function $CPNumber__initWithFloat_(self, _cmd, aFloat) +{ with(self) +{ + return aFloat; +} +}), new objj_method(sel_getUid("initWithInt:"), function $CPNumber__initWithInt_(self, _cmd, anInt) +{ with(self) +{ + return anInt; +} +}), new objj_method(sel_getUid("initWithLong:"), function $CPNumber__initWithLong_(self, _cmd, aLong) +{ with(self) +{ + return aLong; +} +}), new objj_method(sel_getUid("initWithLongLong:"), function $CPNumber__initWithLongLong_(self, _cmd, aLongLong) +{ with(self) +{ + return aLongLong; +} +}), new objj_method(sel_getUid("initWithShort:"), function $CPNumber__initWithShort_(self, _cmd, aShort) +{ with(self) +{ + return aShort; +} +}), new objj_method(sel_getUid("initWithUnsignedChar:"), function $CPNumber__initWithUnsignedChar_(self, _cmd, aChar) +{ with(self) +{ + if (aChar.charCodeAt) + return aChar.charCodeAt(0); + return aChar; +} +}), new objj_method(sel_getUid("initWithUnsignedInt:"), function $CPNumber__initWithUnsignedInt_(self, _cmd, anUnsignedInt) +{ with(self) +{ + return anUnsignedInt; +} +}), new objj_method(sel_getUid("initWithUnsignedLong:"), function $CPNumber__initWithUnsignedLong_(self, _cmd, anUnsignedLong) +{ with(self) +{ + return anUnsignedLong; +} +}), new objj_method(sel_getUid("initWithUnsignedShort:"), function $CPNumber__initWithUnsignedShort_(self, _cmd, anUnsignedShort) +{ with(self) +{ + return anUnsignedShort; +} +}), new objj_method(sel_getUid("UID"), function $CPNumber__UID(self, _cmd) +{ with(self) +{ + if (!_CPNumberHashes[self]) + _CPNumberHashes[self] = _objj_generateObjectHash(); + return _CPNumberHashes[self]; +} +}), new objj_method(sel_getUid("boolValue"), function $CPNumber__boolValue(self, _cmd) +{ with(self) +{ + return self ? true : false; +} +}), new objj_method(sel_getUid("charValue"), function $CPNumber__charValue(self, _cmd) +{ with(self) +{ + return String.fromCharCode(self); +} +}), new objj_method(sel_getUid("decimalValue"), function $CPNumber__decimalValue(self, _cmd) +{ with(self) +{ + objj_throw_exception("decimalValue: NOT YET IMPLEMENTED"); +} +}), new objj_method(sel_getUid("descriptionWithLocale:"), function $CPNumber__descriptionWithLocale_(self, _cmd, aDictionary) +{ with(self) +{ + if (!aDictionary) return toString(); + objj_throw_exception("descriptionWithLocale: NOT YET IMPLEMENTED"); +} +}), new objj_method(sel_getUid("description"), function $CPNumber__description(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "descriptionWithLocale:", nil); +} +}), new objj_method(sel_getUid("doubleValue"), function $CPNumber__doubleValue(self, _cmd) +{ with(self) +{ + if (typeof self == "boolean") return self ? 1 : 0; + return self; +} +}), new objj_method(sel_getUid("floatValue"), function $CPNumber__floatValue(self, _cmd) +{ with(self) +{ + if (typeof self == "boolean") return self ? 1 : 0; + return self; +} +}), new objj_method(sel_getUid("intValue"), function $CPNumber__intValue(self, _cmd) +{ with(self) +{ + if (typeof self == "boolean") return self ? 1 : 0; + return self; +} +}), new objj_method(sel_getUid("longLongValue"), function $CPNumber__longLongValue(self, _cmd) +{ with(self) +{ + if (typeof self == "boolean") return self ? 1 : 0; + return self; +} +}), new objj_method(sel_getUid("longValue"), function $CPNumber__longValue(self, _cmd) +{ with(self) +{ + if (typeof self == "boolean") return self ? 1 : 0; + return self; +} +}), new objj_method(sel_getUid("shortValue"), function $CPNumber__shortValue(self, _cmd) +{ with(self) +{ + if (typeof self == "boolean") return self ? 1 : 0; + return self; +} +}), new objj_method(sel_getUid("stringValue"), function $CPNumber__stringValue(self, _cmd) +{ with(self) +{ + return toString(); +} +}), new objj_method(sel_getUid("unsignedCharValue"), function $CPNumber__unsignedCharValue(self, _cmd) +{ with(self) +{ + return String.fromCharCode(self); +} +}), new objj_method(sel_getUid("unsignedIntValue"), function $CPNumber__unsignedIntValue(self, _cmd) +{ with(self) +{ + if (typeof self == "boolean") return self ? 1 : 0; + return self; +} +}), new objj_method(sel_getUid("unsignedLongValue"), function $CPNumber__unsignedLongValue(self, _cmd) +{ with(self) +{ + if (typeof self == "boolean") return self ? 1 : 0; + return self; +} +}), new objj_method(sel_getUid("unsignedShortValue"), function $CPNumber__unsignedShortValue(self, _cmd) +{ with(self) +{ + if (typeof self == "boolean") return self ? 1 : 0; + return self; +} +}), new objj_method(sel_getUid("compare:"), function $CPNumber__compare_(self, _cmd, aNumber) +{ with(self) +{ + if (self > aNumber) return CPOrderedDescending; + else if (self < aNumber) return CPOrderedAscending; + return CPOrderedSame; +} +}), new objj_method(sel_getUid("isEqualToNumber:"), function $CPNumber__isEqualToNumber_(self, _cmd, aNumber) +{ with(self) +{ + return self == aNumber; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("alloc"), function $CPNumber__alloc(self, _cmd) +{ with(self) +{ + return __placeholder; +} +}), new objj_method(sel_getUid("numberWithBool:"), function $CPNumber__numberWithBool_(self, _cmd, aBoolean) +{ with(self) +{ + return aBoolean; +} +}), new objj_method(sel_getUid("numberWithChar:"), function $CPNumber__numberWithChar_(self, _cmd, aChar) +{ with(self) +{ + if (aChar.charCodeAt) + return aChar.charCodeAt(0); + return aChar; +} +}), new objj_method(sel_getUid("numberWithDouble:"), function $CPNumber__numberWithDouble_(self, _cmd, aDouble) +{ with(self) +{ + return aDouble; +} +}), new objj_method(sel_getUid("numberWithFloat:"), function $CPNumber__numberWithFloat_(self, _cmd, aFloat) +{ with(self) +{ + return aFloat; +} +}), new objj_method(sel_getUid("numberWithInt:"), function $CPNumber__numberWithInt_(self, _cmd, anInt) +{ with(self) +{ + return anInt; +} +}), new objj_method(sel_getUid("numberWithLong:"), function $CPNumber__numberWithLong_(self, _cmd, aLong) +{ with(self) +{ + return aLong; +} +}), new objj_method(sel_getUid("numberWithLongLong:"), function $CPNumber__numberWithLongLong_(self, _cmd, aLongLong) +{ with(self) +{ + return aLongLong; +} +}), new objj_method(sel_getUid("numberWithShort:"), function $CPNumber__numberWithShort_(self, _cmd, aShort) +{ with(self) +{ + return aShort; +} +}), new objj_method(sel_getUid("numberWithUnsignedChar:"), function $CPNumber__numberWithUnsignedChar_(self, _cmd, aChar) +{ with(self) +{ + if (aChar.charCodeAt) + return aChar.charCodeAt(0); + return aChar; +} +}), new objj_method(sel_getUid("numberWithUnsignedInt:"), function $CPNumber__numberWithUnsignedInt_(self, _cmd, anUnsignedInt) +{ with(self) +{ + return anUnsignedInt; +} +}), new objj_method(sel_getUid("numberWithUnsignedLong:"), function $CPNumber__numberWithUnsignedLong_(self, _cmd, anUnsignedLong) +{ with(self) +{ + return anUnsignedLong; +} +}), new objj_method(sel_getUid("numberWithUnsignedShort:"), function $CPNumber__numberWithUnsignedShort_(self, _cmd, anUnsignedShort) +{ with(self) +{ + return anUnsignedShort; +} +})]); +} +{ +var the_class = objj_getClass("CPNumber") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPNumber\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPNumber__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + return objj_msgSend(aCoder, "decodeNumber"); +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPNumber__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeNumber:forKey:", self, "self"); +} +})]); +} +Number.prototype.isa = CPNumber; +Boolean.prototype.isa = CPNumber; +objj_msgSend(CPNumber, "initialize"); + +p;10;CPObject.jc;9139;{var the_class = objj_allocateClassPair(Nil, "CPObject"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("isa")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPObject__init(self, _cmd) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("copy"), function $CPObject__copy(self, _cmd) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("mutableCopy"), function $CPObject__mutableCopy(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "copy"); +} +}), new objj_method(sel_getUid("dealloc"), function $CPObject__dealloc(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("class"), function $CPObject__class(self, _cmd) +{ with(self) +{ + return isa; +} +}), new objj_method(sel_getUid("isKindOfClass:"), function $CPObject__isKindOfClass_(self, _cmd, aClass) +{ with(self) +{ + return objj_msgSend(isa, "isSubclassOfClass:", aClass); +} +}), new objj_method(sel_getUid("isMemberOfClass:"), function $CPObject__isMemberOfClass_(self, _cmd, aClass) +{ with(self) +{ + return self.isa === aClass; +} +}), new objj_method(sel_getUid("isProxy"), function $CPObject__isProxy(self, _cmd) +{ with(self) +{ + return NO; +} +}), new objj_method(sel_getUid("respondsToSelector:"), function $CPObject__respondsToSelector_(self, _cmd, aSelector) +{ with(self) +{ + return !!class_getInstanceMethod(isa, aSelector); +} +}), new objj_method(sel_getUid("methodForSelector:"), function $CPObject__methodForSelector_(self, _cmd, aSelector) +{ with(self) +{ + return class_getMethodImplementation(isa, aSelector); +} +}), new objj_method(sel_getUid("methodSignatureForSelector:"), function $CPObject__methodSignatureForSelector_(self, _cmd, aSelector) +{ with(self) +{ + return nil; +} +}), new objj_method(sel_getUid("description"), function $CPObject__description(self, _cmd) +{ with(self) +{ + return "<" + isa.name + " 0x" + objj_msgSend(CPString, "stringWithHash:", objj_msgSend(self, "hash")) + ">"; +} +}), new objj_method(sel_getUid("performSelector:"), function $CPObject__performSelector_(self, _cmd, aSelector) +{ with(self) +{ + return objj_msgSend(self, aSelector); +} +}), new objj_method(sel_getUid("performSelector:withObject:"), function $CPObject__performSelector_withObject_(self, _cmd, aSelector, anObject) +{ with(self) +{ + return objj_msgSend(self, aSelector, anObject); +} +}), new objj_method(sel_getUid("performSelector:withObject:withObject:"), function $CPObject__performSelector_withObject_withObject_(self, _cmd, aSelector, anObject, anotherObject) +{ with(self) +{ + return objj_msgSend(self, aSelector, anObject, anotherObject); +} +}), new objj_method(sel_getUid("forwardInvocation:"), function $CPObject__forwardInvocation_(self, _cmd, anInvocation) +{ with(self) +{ + objj_msgSend(self, "doesNotRecognizeSelector:", objj_msgSend(anInvocation, "selector")); +} +}), new objj_method(sel_getUid("forward::"), function $CPObject__forward__(self, _cmd, aSelector, args) +{ with(self) +{ + var signature = objj_msgSend(self, "methodSignatureForSelector:", aSelector); + if (signature) + { + invocation = objj_msgSend(CPInvocation, "invocationWithMethodSignature:", signature); + objj_msgSend(invocation, "setTarget:", self); + objj_msgSend(invocation, "setSelector:", aSelector); + var index = 2, + count = args.length; + for (; index < count; ++index) + objj_msgSend(invocation, "setArgument:atIndex:", args[index], index); + objj_msgSend(self, "forwardInvocation:", invocation); + return objj_msgSend(invocation, "returnValue"); + } + objj_msgSend(self, "doesNotRecognizeSelector:", aSelector); +} +}), new objj_method(sel_getUid("doesNotRecognizeSelector:"), function $CPObject__doesNotRecognizeSelector_(self, _cmd, aSelector) +{ with(self) +{ + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, + (class_isMetaClass(isa) ? "+" : "-") + " [" + objj_msgSend(self, "className") + " " + aSelector + "] unrecognized selector sent to " + + (class_isMetaClass(isa) ? "class" : "instance") + " 0x" + objj_msgSend(CPString, "stringWithHash:", objj_msgSend(self, "hash"))); +} +}), new objj_method(sel_getUid("awakeAfterUsingCoder:"), function $CPObject__awakeAfterUsingCoder_(self, _cmd, aCoder) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("classForKeyedArchiver"), function $CPObject__classForKeyedArchiver(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "classForCoder"); +} +}), new objj_method(sel_getUid("classForCoder"), function $CPObject__classForCoder(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "class"); +} +}), new objj_method(sel_getUid("replacementObjectForArchiver:"), function $CPObject__replacementObjectForArchiver_(self, _cmd, anArchiver) +{ with(self) +{ + return objj_msgSend(self, "replacementObjectForCoder:", anArchiver); +} +}), new objj_method(sel_getUid("replacementObjectForKeyedArchiver:"), function $CPObject__replacementObjectForKeyedArchiver_(self, _cmd, anArchiver) +{ with(self) +{ + return objj_msgSend(self, "replacementObjectForCoder:", anArchiver); +} +}), new objj_method(sel_getUid("replacementObjectForCoder:"), function $CPObject__replacementObjectForCoder_(self, _cmd, aCoder) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("className"), function $CPObject__className(self, _cmd) +{ with(self) +{ + return isa.name; +} +}), new objj_method(sel_getUid("autorelease"), function $CPObject__autorelease(self, _cmd) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("hash"), function $CPObject__hash(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "UID"); +} +}), new objj_method(sel_getUid("UID"), function $CPObject__UID(self, _cmd) +{ with(self) +{ + if (typeof self.__address === "undefined") + self.__address = _objj_generateObjectHash(); + return __address; +} +}), new objj_method(sel_getUid("isEqual:"), function $CPObject__isEqual_(self, _cmd, anObject) +{ with(self) +{ + return self === anObject || objj_msgSend(self, "hash") === objj_msgSend(anObject, "hash"); +} +}), new objj_method(sel_getUid("retain"), function $CPObject__retain(self, _cmd) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("release"), function $CPObject__release(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("self"), function $CPObject__self(self, _cmd) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("superclass"), function $CPObject__superclass(self, _cmd) +{ with(self) +{ + return isa.super_class; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("load"), function $CPObject__load(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("initialize"), function $CPObject__initialize(self, _cmd) +{ with(self) +{ +} +}), new objj_method(sel_getUid("new"), function $CPObject__new(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "init"); +} +}), new objj_method(sel_getUid("alloc"), function $CPObject__alloc(self, _cmd) +{ with(self) +{ + return class_createInstance(self); +} +}), new objj_method(sel_getUid("allocWithCoder:"), function $CPObject__allocWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + return objj_msgSend(self, "alloc"); +} +}), new objj_method(sel_getUid("class"), function $CPObject__class(self, _cmd) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("superclass"), function $CPObject__superclass(self, _cmd) +{ with(self) +{ + return super_class; +} +}), new objj_method(sel_getUid("isSubclassOfClass:"), function $CPObject__isSubclassOfClass_(self, _cmd, aClass) +{ with(self) +{ + var theClass = self; + for(; theClass; theClass = theClass.super_class) + if(theClass === aClass) + return YES; + return NO; +} +}), new objj_method(sel_getUid("isKindOfClass:"), function $CPObject__isKindOfClass_(self, _cmd, aClass) +{ with(self) +{ + return objj_msgSend(self, "isSubclassOfClass:", aClass); +} +}), new objj_method(sel_getUid("isMemberOfClass:"), function $CPObject__isMemberOfClass_(self, _cmd, aClass) +{ with(self) +{ + return self === aClass; +} +}), new objj_method(sel_getUid("instancesRespondToSelector:"), function $CPObject__instancesRespondToSelector_(self, _cmd, aSelector) +{ with(self) +{ + return !!class_getInstanceMethod(self, aSelector); +} +}), new objj_method(sel_getUid("instanceMethodForSelector:"), function $CPObject__instanceMethodForSelector_(self, _cmd, aSelector) +{ with(self) +{ + return class_getMethodImplementation(self, aSelector); +} +}), new objj_method(sel_getUid("setVersion:"), function $CPObject__setVersion_(self, _cmd, aVersion) +{ with(self) +{ + version = aVersion; + return self; +} +}), new objj_method(sel_getUid("version"), function $CPObject__version(self, _cmd) +{ with(self) +{ + return version; +} +})]); +} +objj_object.prototype.toString = function() +{ + if (this.isa && class_getInstanceMethod(this.isa, "description") != NULL) + return objj_msgSend(this, "description") + else + return String(this) + " (-description not implemented)"; +} + +p;15;CPObjJRuntime.ji;7;CPLog.jc;467; +CPStringFromSelector= function(aSelector) +{ + return sel_getName(aSelector); +} +CPSelectorFromString= function(aSelectorName) +{ + return sel_registerName(aSelectorName); +} +CPClassFromString= function(aClassName) +{ + return objj_getClass(aClassName); +} +CPStringFromClass= function(aClass) +{ + return class_getName(aClass); +} +CPOrderedAscending = -1; +CPOrderedSame = 0; +CPOrderedDescending = 1; +CPNotFound = -1; +MIN = Math.min; +MAX = Math.max; +ABS = Math.abs; + +p;29;CPPropertyListSerialization.ji;10;CPObject.jc;1089; +CPPropertyListOpenStepFormat = kCFPropertyListOpenStepFormat; +CPPropertyListXMLFormat_v1_0 = kCFPropertyListXMLFormat_v1_0; +CPPropertyListBinaryFormat_v1_0 = kCFPropertyListBinaryFormat_v1_0; +CPPropertyList280NorthFormat_v1_0 = kCFPropertyList280NorthFormat_v1_0; +{var the_class = objj_allocateClassPair(CPObject, "CPPropertyListSerialization"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(meta_class, [new objj_method(sel_getUid("dataFromPropertyList:format:errorDescription:"), function $CPPropertyListSerialization__dataFromPropertyList_format_errorDescription_(self, _cmd, aPlist, aFormat, anErrorString) +{ with(self) +{ + return CPPropertyListCreateData(aPlist, aFormat); +} +}), new objj_method(sel_getUid("propertyListFromData:format:errorDescription:"), function $CPPropertyListSerialization__propertyListFromData_format_errorDescription_(self, _cmd, data, aFormat, errorString) +{ with(self) +{ + return CPPropertyListCreateFromData(data, aFormat); +} +})]); +} + +p;9;CPRange.jc;1714;CPMakeRange= function(location, length) +{ + return { location: location, length: length }; +} +CPCopyRange= function(aRange) +{ + return { location: aRange.location, length: aRange.length }; +} +CPMakeRangeCopy= function(aRange) +{ + return { location:aRange.location, length:aRange.length }; +} +CPEmptyRange= function(aRange) +{ + return aRange.length === 0; +} +CPMaxRange= function(aRange) +{ + return aRange.location + aRange.length; +} +CPEqualRanges= function(lhsRange, rhsRange) +{ + return ((lhsRange.location === rhsRange.location) && (lhsRange.length === rhsRange.length)); +} +CPLocationInRange= function(aLocation, aRange) +{ + return (aLocation >= aRange.location) && (aLocation < CPMaxRange(aRange)); +} +CPUnionRange= function(lhsRange, rhsRange) +{ + var location = MIN(lhsRange.location, rhsRange.location); + return CPMakeRange(location, MAX(CPMaxRange(lhsRange), CPMaxRange(rhsRange)) - location); +} +CPIntersectionRange= function(lhsRange, rhsRange) +{ + if(CPMaxRange(lhsRange) < rhsRange.location || CPMaxRange(rhsRange) < lhsRange.location) + return CPMakeRange(0, 0); + var location = MAX(lhsRange.location, rhsRange.location); + return CPMakeRange(location, MIN(CPMaxRange(lhsRange), CPMaxRange(rhsRange)) - location); +} +CPRangeInRange= function(lhsRange, rhsRange) +{ + return (lhsRange.location <= rhsRange.location && CPMaxRange(lhsRange) >= CPMaxRange(rhsRange)); +} +CPStringFromRange= function(aRange) +{ + return "{" + aRange.location + ", " + aRange.length + "}"; +} +CPRangeFromString= function(aString) +{ + var comma = aString.indexOf(','); + return { location:parseInt(aString.substr(1, comma - 1)), length:parseInt(aString.substring(comma + 1, aString.length)) }; +} + +p;11;CPRunLoop.ji;10;CPObject.ji;9;CPArray.ji;10;CPString.jc;9636; +CPDefaultRunLoopMode = "CPDefaultRunLoopMode"; +_CPRunLoopPerformCompare= function(lhs, rhs) +{ + return objj_msgSend(rhs, "order") - objj_msgSend(lhs, "order"); +} +var _CPRunLoopPerformPool = [], + _CPRunLoopPerformPoolCapacity = 5; +{var the_class = objj_allocateClassPair(CPObject, "_CPRunLoopPerform"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_target"), new objj_ivar("_selector"), new objj_ivar("_argument"), new objj_ivar("_order"), new objj_ivar("_runLoopModes"), new objj_ivar("_isValid")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithSelector:target:argument:order:modes:"), function $_CPRunLoopPerform__initWithSelector_target_argument_order_modes_(self, _cmd, aSelector, aTarget, anArgument, anOrder, modes) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _selector = aSelector; + _target = aTarget; + _argument = anArgument; + _order = anOrder; + _runLoopModes = modes; + _isValid = YES; + } + return self; +} +}), new objj_method(sel_getUid("selector"), function $_CPRunLoopPerform__selector(self, _cmd) +{ with(self) +{ + return _selector; +} +}), new objj_method(sel_getUid("target"), function $_CPRunLoopPerform__target(self, _cmd) +{ with(self) +{ + return _target; +} +}), new objj_method(sel_getUid("argument"), function $_CPRunLoopPerform__argument(self, _cmd) +{ with(self) +{ + return _argument; +} +}), new objj_method(sel_getUid("order"), function $_CPRunLoopPerform__order(self, _cmd) +{ with(self) +{ + return _order; +} +}), new objj_method(sel_getUid("fireInMode:"), function $_CPRunLoopPerform__fireInMode_(self, _cmd, aRunLoopMode) +{ with(self) +{ + if (!_isValid) + return YES; + if (objj_msgSend(_runLoopModes, "containsObject:", aRunLoopMode)) + { + objj_msgSend(_target, "performSelector:withObject:", _selector, _argument); + return YES; + } + return NO; +} +}), new objj_method(sel_getUid("invalidate"), function $_CPRunLoopPerform__invalidate(self, _cmd) +{ with(self) +{ + _isValid = NO; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("_poolPerform:"), function $_CPRunLoopPerform___poolPerform_(self, _cmd, aPerform) +{ with(self) +{ + if (!aPerform || _CPRunLoopPerformPool.length >= _CPRunLoopPerformPoolCapacity) + return; + _CPRunLoopPerformPool.push(aPerform); +} +}), new objj_method(sel_getUid("performWithSelector:target:argument:order:modes:"), function $_CPRunLoopPerform__performWithSelector_target_argument_order_modes_(self, _cmd, aSelector, aTarget, anArgument, anOrder, modes) +{ with(self) +{ + if (_CPRunLoopPerformPool.length) + { + var perform = _CPRunLoopPerformPool.pop(); + perform._target = aTarget; + perform._selector = aSelector; + perform._argument = anArgument; + perform._order = anOrder; + perform._runLoopModes = modes; + perform._isValid = YES; + return perform; + } + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithSelector:target:argument:order:modes:", aSelector, aTarget, anArgument, anOrder, modes); +} +})]); +} +var CPRunLoopLastNativeRunLoop = 0; +{var the_class = objj_allocateClassPair(CPObject, "CPRunLoop"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_runLoopLock"), new objj_ivar("_timersForModes"), new objj_ivar("_nativeTimersForModes"), new objj_ivar("_nextTimerFireDatesForModes"), new objj_ivar("_didAddTimer"), new objj_ivar("_effectiveDate"), new objj_ivar("_orderedPerforms")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPRunLoop__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _orderedPerforms = []; + _timersForModes = {}; + _nativeTimersForModes = {}; + _nextTimerFireDatesForModes = {}; + } + return self; +} +}), new objj_method(sel_getUid("performSelector:target:argument:order:modes:"), function $CPRunLoop__performSelector_target_argument_order_modes_(self, _cmd, aSelector, aTarget, anArgument, anOrder, modes) +{ with(self) +{ + var perform = objj_msgSend(_CPRunLoopPerform, "performWithSelector:target:argument:order:modes:", aSelector, aTarget, anArgument, anOrder, modes), + count = _orderedPerforms.length; + while (count--) + if (anOrder < objj_msgSend(_orderedPerforms[count], "order")) + break; + _orderedPerforms.splice(count + 1, 0, perform); +} +}), new objj_method(sel_getUid("cancelPerformSelector:target:argument:"), function $CPRunLoop__cancelPerformSelector_target_argument_(self, _cmd, aSelector, aTarget, anArgument) +{ with(self) +{ + var count = _orderedPerforms.length; + while (count--) + { + var perform = _orderedPerforms[count]; + if (objj_msgSend(perform, "selector") === aSelector && objj_msgSend(perform, "target") == aTarget && objj_msgSend(perform, "argument") == anArgument) + objj_msgSend(_orderedPerforms[count], "invalidate"); + } +} +}), new objj_method(sel_getUid("performSelectors"), function $CPRunLoop__performSelectors(self, _cmd) +{ with(self) +{ + objj_msgSend(self, "limitDateForMode:", CPDefaultRunLoopMode); +} +}), new objj_method(sel_getUid("addTimer:forMode:"), function $CPRunLoop__addTimer_forMode_(self, _cmd, aTimer, aMode) +{ with(self) +{ + if (_timersForModes[aMode]) + _timersForModes[aMode].push(aTimer); + else + _timersForModes[aMode] = [aTimer]; + _didAddTimer = YES; + if (!aTimer._lastNativeRunLoopsForModes) + aTimer._lastNativeRunLoopsForModes = {}; + aTimer._lastNativeRunLoopsForModes[aMode] = CPRunLoopLastNativeRunLoop; +} +}), new objj_method(sel_getUid("limitDateForMode:"), function $CPRunLoop__limitDateForMode_(self, _cmd, aMode) +{ with(self) +{ + if (_runLoopLock) + return; + _runLoopLock = YES; + var now = _effectiveDate ? objj_msgSend(_effectiveDate, "laterDate:", objj_msgSend(CPDate, "date")) : objj_msgSend(CPDate, "date"), + nextFireDate = nil, + nextTimerFireDate = _nextTimerFireDatesForModes[aMode]; + if (_didAddTimer || nextTimerFireDate && nextTimerFireDate <= now) + { + _didAddTimer = NO; + if (_nativeTimersForModes[aMode] !== nil) + { + window.clearNativeTimeout(_nativeTimersForModes[aMode]); + _nativeTimersForModes[aMode] = nil; + } + var timers = _timersForModes[aMode], + index = timers.length; + _timersForModes[aMode] = nil; + while (index--) + { + var timer = timers[index]; + if (timer._lastNativeRunLoopsForModes[aMode] < CPRunLoopLastNativeRunLoop && timer._isValid && timer._fireDate <= now) + objj_msgSend(timer, "fire"); + if (timer._isValid) + nextFireDate = (nextFireDate === nil) ? timer._fireDate : objj_msgSend(nextFireDate, "earlierDate:", timer._fireDate); + else + { + timer._lastNativeRunLoopsForModes[aMode] = 0; + timers.splice(index, 1); + } + } + var newTimers = _timersForModes[aMode]; + if (newTimers && newTimers.length) + { + index = newTimers.length; + while (index--) + { + var timer = newTimers[index]; + if (objj_msgSend(timer, "isValid")) + nextFireDate = (nextFireDate === nil) ? timer._fireDate : objj_msgSend(nextFireDate, "earlierDate:", timer._fireDate); + else + newTimers.splice(index, 1); + } + _timersForModes[aMode] = newTimers.concat(timers); + } + else + _timersForModes[aMode] = timers; + _nextTimerFireDatesForModes[aMode] = nextFireDate; + if (_nextTimerFireDatesForModes[aMode] !== nil) + _nativeTimersForModes[aMode] = window.setNativeTimeout(function() { _effectiveDate = nextFireDate; _nativeTimersForModes[aMode] = nil; ++CPRunLoopLastNativeRunLoop; objj_msgSend(self, "limitDateForMode:", aMode); _effectiveDate = nil; }, MAX(0, objj_msgSend(nextFireDate, "timeIntervalSinceNow") * 1000)); + } + var performs = _orderedPerforms, + index = performs.length; + _orderedPerforms = []; + while (index--) + { + var perform = performs[index]; + if (objj_msgSend(perform, "fireInMode:", CPDefaultRunLoopMode)) + { + objj_msgSend(_CPRunLoopPerform, "_poolPerform:", perform); + performs.splice(index, 1); + } + } + if (_orderedPerforms.length) + { + _orderedPerforms = _orderedPerforms.concat(performs); + _orderedPerforms.sort(_CPRunLoopPerformCompare); + } + else + _orderedPerforms = performs; + _runLoopLock = NO; + return nextFireDate; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("initialize"), function $CPRunLoop__initialize(self, _cmd) +{ with(self) +{ + if (self != objj_msgSend(CPRunLoop, "class")) + return; + CPMainRunLoop = objj_msgSend(objj_msgSend(CPRunLoop, "alloc"), "init"); +} +}), new objj_method(sel_getUid("currentRunLoop"), function $CPRunLoop__currentRunLoop(self, _cmd) +{ with(self) +{ + return CPMainRunLoop; +} +}), new objj_method(sel_getUid("mainRunLoop"), function $CPRunLoop__mainRunLoop(self, _cmd) +{ with(self) +{ + return CPMainRunLoop; +} +})]); +} + +p;7;CPSet.ji;10;CPObject.ji;9;CPArray.ji;10;CPNumber.ji;14;CPEnumerator.jc;10411; +{var the_class = objj_allocateClassPair(CPObject, "CPSet"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_contents"), new objj_ivar("_count")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPSet__init(self, _cmd) +{ with(self) +{ + if (self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init")) + { + _count = 0; + _contents = {}; + } + return self; +} +}), new objj_method(sel_getUid("initWithArray:"), function $CPSet__initWithArray_(self, _cmd, anArray) +{ with(self) +{ + if (self = objj_msgSend(self, "init")) + { + var count = anArray.length; + while (count--) + objj_msgSend(self, "addObject:", anArray[count]); + } + return self; +} +}), new objj_method(sel_getUid("initWithObjects:count:"), function $CPSet__initWithObjects_count_(self, _cmd, objects, count) +{ with(self) +{ + return objj_msgSend(self, "initWithArray:", objects.splice(0, count)); +} +}), new objj_method(sel_getUid("initWithObjects:"), function $CPSet__initWithObjects_(self, _cmd, anObject) +{ with(self) +{ + if (self = objj_msgSend(self, "init")) + { + var argLength = arguments.length, + i = 2; + for(; i < argLength && (argument = arguments[i]) != nil; ++i) + objj_msgSend(self, "addObject:", argument); + } + return self; +} +}), new objj_method(sel_getUid("initWithSet:"), function $CPSet__initWithSet_(self, _cmd, aSet) +{ with(self) +{ + return objj_msgSend(self, "initWithSet:copyItems:", aSet, NO); +} +}), new objj_method(sel_getUid("initWithSet:copyItems:"), function $CPSet__initWithSet_copyItems_(self, _cmd, aSet, shouldCopyItems) +{ with(self) +{ + self = objj_msgSend(self, "init"); + if (!aSet) + return self; + var contents = aSet._contents; + for (var property in contents) + { + if (contents.hasOwnProperty(property)) + { + if (shouldCopyItems) + objj_msgSend(self, "addObject:", objj_msgSend(contents[property], "copy")); + else + objj_msgSend(self, "addObject:", contents[property]); + } + } + return self; +} +}), new objj_method(sel_getUid("allObjects"), function $CPSet__allObjects(self, _cmd) +{ with(self) +{ + var array = []; + for (var property in _contents) + { + if (_contents.hasOwnProperty(property)) + array.push(_contents[property]); + } + return array; +} +}), new objj_method(sel_getUid("anyObject"), function $CPSet__anyObject(self, _cmd) +{ with(self) +{ + for (var property in _contents) + { + if (_contents.hasOwnProperty(property)) + return _contents[property]; + } + return nil; +} +}), new objj_method(sel_getUid("containsObject:"), function $CPSet__containsObject_(self, _cmd, anObject) +{ with(self) +{ + if (_contents[objj_msgSend(anObject, "hash")] && objj_msgSend(_contents[objj_msgSend(anObject, "hash")], "isEqual:", anObject)) + return YES; + return NO; +} +}), new objj_method(sel_getUid("count"), function $CPSet__count(self, _cmd) +{ with(self) +{ + return _count; +} +}), new objj_method(sel_getUid("intersectsSet:"), function $CPSet__intersectsSet_(self, _cmd, set) +{ with(self) +{ + var items = objj_msgSend(set, "allObjects"); + for (var i = items.length; i > 0; i--) + { + if (objj_msgSend(self, "containsObject:", items[i])) + return YES; + } + return NO; +} +}), new objj_method(sel_getUid("isEqualToSet:"), function $CPSet__isEqualToSet_(self, _cmd, set) +{ with(self) +{ + return self === set || (objj_msgSend(self, "count") === objj_msgSend(set, "count") && objj_msgSend(set, "isSubsetOfSet:", self)); +} +}), new objj_method(sel_getUid("isSubsetOfSet:"), function $CPSet__isSubsetOfSet_(self, _cmd, set) +{ with(self) +{ + var items = objj_msgSend(self, "allObjects"); + for (var i = 0; i < items.length; i++) + { + if (!objj_msgSend(set, "containsObject:", items[i])) + return NO; + } + return YES; +} +}), new objj_method(sel_getUid("makeObjectsPerformSelector:"), function $CPSet__makeObjectsPerformSelector_(self, _cmd, aSelector) +{ with(self) +{ + objj_msgSend(self, "makeObjectsPerformSelector:withObject:", aSelector, nil); +} +}), new objj_method(sel_getUid("makeObjectsPerformSelector:withObject:"), function $CPSet__makeObjectsPerformSelector_withObject_(self, _cmd, aSelector, argument) +{ with(self) +{ + var items = objj_msgSend(self, "allObjects"); + for (var i = 0; i < items.length; i++) + { + objj_msgSend(items[i], "performSelector:withObject:", aSelector, argument); + } +} +}), new objj_method(sel_getUid("member:"), function $CPSet__member_(self, _cmd, object) +{ with(self) +{ + if (objj_msgSend(self, "containsObject:", object)) + return object; + return nil; +} +}), new objj_method(sel_getUid("objectEnumerator"), function $CPSet__objectEnumerator(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "allObjects"), "objectEnumerator"); +} +}), new objj_method(sel_getUid("initWithCapacity:"), function $CPSet__initWithCapacity_(self, _cmd, numItems) +{ with(self) +{ + self = objj_msgSend(self, "init"); + return self; +} +}), new objj_method(sel_getUid("setSet:"), function $CPSet__setSet_(self, _cmd, set) +{ with(self) +{ + objj_msgSend(self, "removeAllObjects"); + objj_msgSend(self, "addObjectsFromArray:", objj_msgSend(set, "allObjects")); +} +}), new objj_method(sel_getUid("addObject:"), function $CPSet__addObject_(self, _cmd, anObject) +{ with(self) +{ + _contents[objj_msgSend(anObject, "hash")] = anObject; + _count++; +} +}), new objj_method(sel_getUid("addObjectsFromArray:"), function $CPSet__addObjectsFromArray_(self, _cmd, array) +{ with(self) +{ + for (var i = 0, count = array.length; i < count; i++) + { + objj_msgSend(self, "addObject:", array[i]); + } +} +}), new objj_method(sel_getUid("removeObject:"), function $CPSet__removeObject_(self, _cmd, anObject) +{ with(self) +{ + if (objj_msgSend(self, "containsObject:", anObject)) + { + delete _contents[objj_msgSend(anObject, "hash")]; + _count--; + } +} +}), new objj_method(sel_getUid("removeAllObjects"), function $CPSet__removeAllObjects(self, _cmd) +{ with(self) +{ + _contents = {}; + _count = 0; +} +}), new objj_method(sel_getUid("intersectSet:"), function $CPSet__intersectSet_(self, _cmd, set) +{ with(self) +{ + var items = objj_msgSend(self, "allObjects"); + for (var i = 0, count = items.length; i < count; i++) + { + if (!objj_msgSend(set, "containsObject:", items[i])) + objj_msgSend(self, "removeObject:", items[i]); + } +} +}), new objj_method(sel_getUid("minusSet:"), function $CPSet__minusSet_(self, _cmd, set) +{ with(self) +{ + var items = objj_msgSend(set, "allObjects"); + for (var i = 0; i < items.length; i++) + { + if (objj_msgSend(self, "containsObject:", items[i])) + objj_msgSend(self, "removeObject:", items[i]); + } +} +}), new objj_method(sel_getUid("unionSet:"), function $CPSet__unionSet_(self, _cmd, set) +{ with(self) +{ + var items = objj_msgSend(set, "allObjects"); + for (var i = 0, count = items.length; i < count; i++) + { + objj_msgSend(self, "addObject:", items[i]); + } +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("set"), function $CPSet__set(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "init"); +} +}), new objj_method(sel_getUid("setWithArray:"), function $CPSet__setWithArray_(self, _cmd, array) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithArray:", array); +} +}), new objj_method(sel_getUid("setWithObject:"), function $CPSet__setWithObject_(self, _cmd, anObject) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithArray:", [anObject]); +} +}), new objj_method(sel_getUid("setWithObjects:count:"), function $CPSet__setWithObjects_count_(self, _cmd, objects, count) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithObjects:count:", objects, count); +} +}), new objj_method(sel_getUid("setWithObjects:"), function $CPSet__setWithObjects_(self, _cmd, anObject) +{ with(self) +{ + var set = objj_msgSend(objj_msgSend(self, "alloc"), "init"), + argLength = arguments.length, + i = 2; + for(; i < argLength && ((argument = arguments[i]) !== nil); ++i) + objj_msgSend(set, "addObject:", argument); + return set; +} +}), new objj_method(sel_getUid("setWithSet:"), function $CPSet__setWithSet_(self, _cmd, set) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithSet:", set); +} +}), new objj_method(sel_getUid("setWithCapacity:"), function $CPSet__setWithCapacity_(self, _cmd, numItems) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithCapacity:", numItems); +} +})]); +} +{ +var the_class = objj_getClass("CPSet") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPSet\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("copy"), function $CPSet__copy(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPSet, "alloc"), "initWithSet:", self); +} +}), new objj_method(sel_getUid("mutableCopy"), function $CPSet__mutableCopy(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "copy"); +} +})]); +} +var CPSetObjectsKey = "CPSetObjectsKey"; +{ +var the_class = objj_getClass("CPSet") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPSet\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPSet__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + return objj_msgSend(self, "initWithArray:", objj_msgSend(aCoder, "decodeObjectForKey:", CPSetObjectsKey)); +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPSet__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", objj_msgSend(self, "allObjects"), CPSetObjectsKey); +} +})]); +} +{var the_class = objj_allocateClassPair(CPSet, "CPMutableSet"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +} + +p;18;CPSortDescriptor.ji;10;CPObject.ji;15;CPObjJRuntime.jc;2123; +CPOrderedAscending = -1; +CPOrderedSame = 0; +CPOrderedDescending = 1; +{var the_class = objj_allocateClassPair(CPObject, "CPSortDescriptor"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_key"), new objj_ivar("_selector"), new objj_ivar("_ascending")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithKey:ascending:"), function $CPSortDescriptor__initWithKey_ascending_(self, _cmd, aKey, isAscending) +{ with(self) +{ + return objj_msgSend(self, "initWithKey:ascending:selector:", aKey, isAscending, sel_getUid("compare:")); +} +}), new objj_method(sel_getUid("initWithKey:ascending:selector:"), function $CPSortDescriptor__initWithKey_ascending_selector_(self, _cmd, aKey, isAscending, aSelector) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _key = aKey; + _ascending = isAscending; + _selector = aSelector; + } + return self; +} +}), new objj_method(sel_getUid("ascending"), function $CPSortDescriptor__ascending(self, _cmd) +{ with(self) +{ + return _ascending; +} +}), new objj_method(sel_getUid("key"), function $CPSortDescriptor__key(self, _cmd) +{ with(self) +{ + return _key; +} +}), new objj_method(sel_getUid("selector"), function $CPSortDescriptor__selector(self, _cmd) +{ with(self) +{ + return _selector; +} +}), new objj_method(sel_getUid("compareObject:withObject:"), function $CPSortDescriptor__compareObject_withObject_(self, _cmd, lhsObject, rhsObject) +{ with(self) +{ + return (_ascending ? 1 : -1) * objj_msgSend(objj_msgSend(lhsObject, "valueForKey:", _key), "performSelector:withObject:", _selector, objj_msgSend(rhsObject, "valueForKey:", _key)); +} +}), new objj_method(sel_getUid("reversedSortDescriptor"), function $CPSortDescriptor__reversedSortDescriptor(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(objj_msgSend(self, "class"), "alloc"), "initWithKey:ascending:selector:", _key, !_ascending, _selector); +} +})]); +} + +p;10;CPString.ji;10;CPObject.ji;13;CPException.ji;18;CPSortDescriptor.ji;9;CPValue.jc;12737; +CPCaseInsensitiveSearch = 1; +CPLiteralSearch = 2; +CPBackwardsSearch = 4; +CPAnchoredSearch = 8; +CPNumericSearch = 64; +var CPStringHashes = new objj_dictionary(); +{var the_class = objj_allocateClassPair(CPObject, "CPString"), +meta_class = the_class.isa;objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithString:"), function $CPString__initWithString_(self, _cmd, aString) +{ with(self) +{ + return String(aString); +} +}), new objj_method(sel_getUid("initWithFormat:"), function $CPString__initWithFormat_(self, _cmd, format) +{ with(self) +{ + if (!format) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "initWithFormat: the format can't be 'nil'"); + self = sprintf.apply(this, Array.prototype.slice.call(arguments, 2)); + return self; +} +}), new objj_method(sel_getUid("description"), function $CPString__description(self, _cmd) +{ with(self) +{ + return self; +} +}), new objj_method(sel_getUid("length"), function $CPString__length(self, _cmd) +{ with(self) +{ + return length; +} +}), new objj_method(sel_getUid("characterAtIndex:"), function $CPString__characterAtIndex_(self, _cmd, anIndex) +{ with(self) +{ + return charAt(anIndex); +} +}), new objj_method(sel_getUid("stringByAppendingFormat:"), function $CPString__stringByAppendingFormat_(self, _cmd, format) +{ with(self) +{ + if (!format) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "initWithFormat: the format can't be 'nil'"); + return self + sprintf.apply(this, Array.prototype.slice.call(arguments, 2)); +} +}), new objj_method(sel_getUid("stringByAppendingString:"), function $CPString__stringByAppendingString_(self, _cmd, aString) +{ with(self) +{ + return self + aString; +} +}), new objj_method(sel_getUid("stringByPaddingToLength:withString:startingAtIndex:"), function $CPString__stringByPaddingToLength_withString_startingAtIndex_(self, _cmd, aLength, aString, anIndex) +{ with(self) +{ + if (length == aLength) + return self; + if (aLength < length) + return substr(0, aLength); + var string = self, + substring = aString.substring(anIndex), + difference = aLength - length; + while ((difference -= substring.length) >= 0) + string += substring; + if (-difference < substring.length) + string += substring.substring(0, -difference); + return string; +} +}), new objj_method(sel_getUid("componentsSeparatedByString:"), function $CPString__componentsSeparatedByString_(self, _cmd, aString) +{ with(self) +{ + return split(aString); +} +}), new objj_method(sel_getUid("substringFromIndex:"), function $CPString__substringFromIndex_(self, _cmd, anIndex) +{ with(self) +{ + return substr(anIndex); +} +}), new objj_method(sel_getUid("substringWithRange:"), function $CPString__substringWithRange_(self, _cmd, aRange) +{ with(self) +{ + return substr(aRange.location, aRange.length); +} +}), new objj_method(sel_getUid("substringToIndex:"), function $CPString__substringToIndex_(self, _cmd, anIndex) +{ with(self) +{ + return substring(0, anIndex); +} +}), new objj_method(sel_getUid("rangeOfString:"), function $CPString__rangeOfString_(self, _cmd, aString) +{ with(self) +{ + return objj_msgSend(self, "rangeOfString:options:", aString, 0); +} +}), new objj_method(sel_getUid("rangeOfString:options:"), function $CPString__rangeOfString_options_(self, _cmd, aString, aMask) +{ with(self) +{ + return objj_msgSend(self, "rangeOfString:options:range:", aString, aMask, nil); +} +}), new objj_method(sel_getUid("rangeOfString:options:range:"), function $CPString__rangeOfString_options_range_(self, _cmd, aString, aMask, aRange) +{ with(self) +{ + var string = (aRange == nil) ? self : objj_msgSend(self, "substringWithRange:", aRange), + location = CPNotFound; + if (aMask & CPCaseInsensitiveSearch) + { + string = string.toLowerCase(); + aString = aString.toLowerCase(); + } + if (aMask & CPBackwardsSearch) + location = string.lastIndexOf(aString, aMask & CPAnchoredSearch ? length - aString.length : 0); + else if (aMask & CPAnchoredSearch) + location = string.substr(0, aString.length).indexOf(aString) != CPNotFound ? 0 : CPNotFound; + else + location = string.indexOf(aString); + return CPMakeRange(location, location == CPNotFound ? 0 : aString.length); +} +}), new objj_method(sel_getUid("stringByReplacingOccurrencesOfString:withString:"), function $CPString__stringByReplacingOccurrencesOfString_withString_(self, _cmd, target, replacement) +{ with(self) +{ + return self.replace(new RegExp(target, "g"), replacement); +} +}), new objj_method(sel_getUid("stringByReplacingOccurrencesOfString:withString:options:range:"), function $CPString__stringByReplacingOccurrencesOfString_withString_options_range_(self, _cmd, target, replacement, options, searchRange) +{ with(self) +{ + var start = substring(0, searchRange.location), + stringSegmentToSearch = substr(searchRange.location, searchRange.length), + end = substring(searchRange.location + searchRange.length, self.length), + regExp; + if (options & CPCaseInsensitiveSearch) + regExp = new RegExp(target, "gi"); + else + regExp = new RegExp(target, "g"); + return start + '' + stringSegmentToSearch.replace(regExp, replacement) + '' + end; +} +}), new objj_method(sel_getUid("stringByReplacingCharactersInRange:withString:"), function $CPString__stringByReplacingCharactersInRange_withString_(self, _cmd, range, replacement) +{ with(self) +{ + return '' + substring(0, range.location) + replacement + substring(range.location + range.length, self.length); +} +}), new objj_method(sel_getUid("compare:"), function $CPString__compare_(self, _cmd, aString) +{ with(self) +{ + return objj_msgSend(self, "compare:options:", aString, nil); +} +}), new objj_method(sel_getUid("caseInsensitiveCompare:"), function $CPString__caseInsensitiveCompare_(self, _cmd, aString) +{ with(self) +{ + return objj_msgSend(self, "compare:options:", aString, CPCaseInsensitiveSearch); +} +}), new objj_method(sel_getUid("compare:options:"), function $CPString__compare_options_(self, _cmd, aString, aMask) +{ with(self) +{ + var lhs = self, + rhs = aString; + if (aMask & CPCaseInsensitiveSearch) + { + lhs = lhs.toLowerCase(); + rhs = rhs.toLowerCase(); + } + if (lhs < rhs) + return CPOrderedAscending; + else if (lhs > rhs) + return CPOrderedDescending; + return CPOrderedSame; +} +}), new objj_method(sel_getUid("compare:options:range:"), function $CPString__compare_options_range_(self, _cmd, aString, aMask, range) +{ with(self) +{ + var lhs = objj_msgSend(self, "substringWithRange:", range), + rhs = aString; + return objj_msgSend(lhs, "compare:options:", rhs, aMask); +} +}), new objj_method(sel_getUid("hasPrefix:"), function $CPString__hasPrefix_(self, _cmd, aString) +{ with(self) +{ + return aString && aString != "" && indexOf(aString) == 0; +} +}), new objj_method(sel_getUid("hasSuffix:"), function $CPString__hasSuffix_(self, _cmd, aString) +{ with(self) +{ + return aString && aString != "" && lastIndexOf(aString) == (length - aString.length); +} +}), new objj_method(sel_getUid("isEqualToString:"), function $CPString__isEqualToString_(self, _cmd, aString) +{ with(self) +{ + return self == aString; +} +}), new objj_method(sel_getUid("UID"), function $CPString__UID(self, _cmd) +{ with(self) +{ + var hash = dictionary_getValue(CPStringHashes, self); + if (!hash) + { + hash = _objj_generateObjectHash(); + dictionary_setValue(CPStringHashes, self, hash); + } + return hash; +} +}), new objj_method(sel_getUid("capitalizedString"), function $CPString__capitalizedString(self, _cmd) +{ with(self) +{ + var parts = self.split(/\b/g); + for (var i = 0; i < parts.length; i++) + { + if (i == 0 || (/\s$/).test(parts[i-1])) + parts[i] = parts[i].substring(0, 1).toUpperCase() + parts[i].substring(1).toLowerCase(); + else + parts[i] = parts[i].toLowerCase(); + } + return parts.join(""); +} +}), new objj_method(sel_getUid("lowercaseString"), function $CPString__lowercaseString(self, _cmd) +{ with(self) +{ + return toLowerCase(); +} +}), new objj_method(sel_getUid("uppercaseString"), function $CPString__uppercaseString(self, _cmd) +{ with(self) +{ + return toUpperCase(); +} +}), new objj_method(sel_getUid("doubleValue"), function $CPString__doubleValue(self, _cmd) +{ with(self) +{ + return parseFloat(self, 10); +} +}), new objj_method(sel_getUid("boolValue"), function $CPString__boolValue(self, _cmd) +{ with(self) +{ + var replaceRegExp = new RegExp("^\\s*[\\+,\\-]*0*"); + return RegExp("^[Y,y,t,T,1-9]").test(self.replace(replaceRegExp, '')); +} +}), new objj_method(sel_getUid("floatValue"), function $CPString__floatValue(self, _cmd) +{ with(self) +{ + return parseFloat(self, 10); +} +}), new objj_method(sel_getUid("intValue"), function $CPString__intValue(self, _cmd) +{ with(self) +{ + return parseInt(self, 10); +} +}), new objj_method(sel_getUid("pathComponents"), function $CPString__pathComponents(self, _cmd) +{ with(self) +{ + var result = split('/'); + if (result[0] === "") + result[0] = "/"; + if (result[result.length - 1] === "") + result.pop(); + return result; +} +}), new objj_method(sel_getUid("pathExtension"), function $CPString__pathExtension(self, _cmd) +{ with(self) +{ + return substr(lastIndexOf('.') + 1); +} +}), new objj_method(sel_getUid("lastPathComponent"), function $CPString__lastPathComponent(self, _cmd) +{ with(self) +{ + var components = objj_msgSend(self, "pathComponents"); + return components[components.length -1]; +} +}), new objj_method(sel_getUid("stringByDeletingLastPathComponent"), function $CPString__stringByDeletingLastPathComponent(self, _cmd) +{ with(self) +{ + var path = self, + start = length - 1; + while (path.charAt(start) === '/') + start--; + path = path.substr(0, path.lastIndexOf('/', start)); + if (path === "" && charAt(0) === '/') + return '/'; + return path; +} +}), new objj_method(sel_getUid("stringByStandardizingPath"), function $CPString__stringByStandardizingPath(self, _cmd) +{ with(self) +{ + return objj_standardize_path(self); +} +}), new objj_method(sel_getUid("copy"), function $CPString__copy(self, _cmd) +{ with(self) +{ + return new String(self); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("alloc"), function $CPString__alloc(self, _cmd) +{ with(self) +{ + return new String; +} +}), new objj_method(sel_getUid("string"), function $CPString__string(self, _cmd) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "init"); +} +}), new objj_method(sel_getUid("stringWithHash:"), function $CPString__stringWithHash_(self, _cmd, aHash) +{ with(self) +{ + var hashString = parseInt(aHash, 10).toString(16); + return "000000".substring(0, MAX(6-hashString.length, 0)) + hashString; +} +}), new objj_method(sel_getUid("stringWithString:"), function $CPString__stringWithString_(self, _cmd, aString) +{ with(self) +{ + if (!aString) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "stringWithString: the string can't be 'nil'"); + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithString:", aString); +} +}), new objj_method(sel_getUid("stringWithFormat:"), function $CPString__stringWithFormat_(self, _cmd, format) +{ with(self) +{ + if (!format) + objj_msgSend(CPException, "raise:reason:", CPInvalidArgumentException, "initWithFormat: the format can't be 'nil'"); + return sprintf.apply(this, Array.prototype.slice.call(arguments, 2)); +} +})]); +} +{ +var the_class = objj_getClass("CPString") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPString\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("objectFromJSON"), function $CPString__objectFromJSON(self, _cmd) +{ with(self) +{ + return JSON.parse(self); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("JSONFromObject:"), function $CPString__JSONFromObject_(self, _cmd, anObject) +{ with(self) +{ + return JSON.stringify(anObject); +} +})]); +} +{ +var the_class = objj_getClass("CPString") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPString\"")); +var meta_class = the_class.isa;class_addMethods(meta_class, [new objj_method(sel_getUid("UUID"), function $CPString__UUID(self, _cmd) +{ with(self) +{ + var g = ""; + for(var i = 0; i < 32; i++) + g += FLOOR(RAND() * 0xF).toString(0xF); + return g; +} +})]); +} +String.prototype.isa = CPString; + +p;9;CPTimer.ji;10;CPObject.ji;14;CPInvocation.ji;8;CPDate.ji;11;CPRunLoop.jc;7723; +{var the_class = objj_allocateClassPair(CPObject, "CPTimer"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_timeInterval"), new objj_ivar("_invocation"), new objj_ivar("_callback"), new objj_ivar("_repeats"), new objj_ivar("_isValid"), new objj_ivar("_fireDate"), new objj_ivar("_userInfo")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithFireDate:interval:invocation:repeats:"), function $CPTimer__initWithFireDate_interval_invocation_repeats_(self, _cmd, aDate, seconds, anInvocation, shouldRepeat) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _timeInterval = seconds; + _invocation = anInvocation; + _repeats = shouldRepeat; + _isValid = YES; + _fireDate = aDate; + } + return self; +} +}), new objj_method(sel_getUid("initWithFireDate:interval:target:selector:userInfo:repeats:"), function $CPTimer__initWithFireDate_interval_target_selector_userInfo_repeats_(self, _cmd, aDate, seconds, aTarget, aSelector, userInfo, shouldRepeat) +{ with(self) +{ + var invocation = objj_msgSend(CPInvocation, "invocationWithMethodSignature:", 1); + objj_msgSend(invocation, "setTarget:", aTarget); + objj_msgSend(invocation, "setSelector:", aSelector); + objj_msgSend(invocation, "setArgument:atIndex:", self, 2); + self = objj_msgSend(self, "initWithFireDate:interval:invocation:repeats:", aDate, seconds, invocation, shouldRepeat); + if (self) + _userInfo = userInfo; + return self; +} +}), new objj_method(sel_getUid("initWithFireDate:interval:callback:repeats:"), function $CPTimer__initWithFireDate_interval_callback_repeats_(self, _cmd, aDate, seconds, aFunction, shouldRepeat) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _timeInterval = seconds; + _callback = aFunction; + _repeats = shouldRepeat; + _isValid = YES; + _fireDate = aDate; + } + return self; +} +}), new objj_method(sel_getUid("timeInterval"), function $CPTimer__timeInterval(self, _cmd) +{ with(self) +{ + return _timeInterval; +} +}), new objj_method(sel_getUid("fireDate"), function $CPTimer__fireDate(self, _cmd) +{ with(self) +{ + return _fireDate; +} +}), new objj_method(sel_getUid("setFireDate:"), function $CPTimer__setFireDate_(self, _cmd, aDate) +{ with(self) +{ + _fireDate = aDate; +} +}), new objj_method(sel_getUid("fire"), function $CPTimer__fire(self, _cmd) +{ with(self) +{ + if (!_isValid) + return; + if (_callback) + _callback(); + else + objj_msgSend(_invocation, "invoke"); + if (!_isValid) + return; + if (_repeats) + _fireDate = objj_msgSend(CPDate, "dateWithTimeIntervalSinceNow:", _timeInterval); + else + objj_msgSend(self, "invalidate"); +} +}), new objj_method(sel_getUid("isValid"), function $CPTimer__isValid(self, _cmd) +{ with(self) +{ + return _isValid; +} +}), new objj_method(sel_getUid("invalidate"), function $CPTimer__invalidate(self, _cmd) +{ with(self) +{ + _isValid = NO; + _userInfo = nil; + _invocation = nil; + _callback = nil; +} +}), new objj_method(sel_getUid("userInfo"), function $CPTimer__userInfo(self, _cmd) +{ with(self) +{ + return _userInfo; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("scheduledTimerWithTimeInterval:invocation:repeats:"), function $CPTimer__scheduledTimerWithTimeInterval_invocation_repeats_(self, _cmd, seconds, anInvocation, shouldRepeat) +{ with(self) +{ + var timer = objj_msgSend(objj_msgSend(self, "alloc"), "initWithFireDate:interval:invocation:repeats:", objj_msgSend(CPDate, "dateWithTimeIntervalSinceNow:", seconds), seconds, anInvocation, shouldRepeat); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "addTimer:forMode:", timer, CPDefaultRunLoopMode); + return timer; +} +}), new objj_method(sel_getUid("scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:"), function $CPTimer__scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_(self, _cmd, seconds, aTarget, aSelector, userInfo, shouldRepeat) +{ with(self) +{ + var timer = objj_msgSend(objj_msgSend(self, "alloc"), "initWithFireDate:interval:target:selector:userInfo:repeats:", objj_msgSend(CPDate, "dateWithTimeIntervalSinceNow:", seconds), seconds, aTarget, aSelector, userInfo, shouldRepeat) + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "addTimer:forMode:", timer, CPDefaultRunLoopMode); + return timer; +} +}), new objj_method(sel_getUid("scheduledTimerWithTimeInterval:callback:repeats:"), function $CPTimer__scheduledTimerWithTimeInterval_callback_repeats_(self, _cmd, seconds, aFunction, shouldRepeat) +{ with(self) +{ + var timer = objj_msgSend(objj_msgSend(self, "alloc"), "initWithFireDate:interval:callback:repeats:", objj_msgSend(CPDate, "dateWithTimeIntervalSinceNow:", seconds), seconds, aFunction, shouldRepeat); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "addTimer:forMode:", timer, CPDefaultRunLoopMode); + return timer; +} +}), new objj_method(sel_getUid("timerWithTimeInterval:invocation:repeats:"), function $CPTimer__timerWithTimeInterval_invocation_repeats_(self, _cmd, seconds, anInvocation, shouldRepeat) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithFireDate:interval:invocation:repeats:", nil, seconds, anInvocation, shouldRepeat); +} +}), new objj_method(sel_getUid("timerWithTimeInterval:target:selector:userInfo:repeats:"), function $CPTimer__timerWithTimeInterval_target_selector_userInfo_repeats_(self, _cmd, seconds, aTarget, aSelector, userInfo, shouldRepeat) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithFireDate:interval:target:selector:userInfo:repeats:", nil, seconds, aTarget, aSelector, userInfo, shouldRepeat); +} +}), new objj_method(sel_getUid("timerWithTimeInterval:callback:repeats:"), function $CPTimer__timerWithTimeInterval_callback_repeats_(self, _cmd, seconds, aFunction, shouldRepeat) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithFireDate:interval:callback:repeats:", nil, seconds, aFunction, shouldRepeat); +} +})]); +} +var CPTimersTimeoutID = 1000, + CPTimersForTimeoutIDs = {}; +var _CPTimerBridgeTimer = function(codeOrFunction, aDelay, shouldRepeat, functionArgs) +{ + var timeoutID = CPTimersTimeoutID++, + theFunction = nil; + if (typeof codeOrFunction === "string") + 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; } + } + CPTimersForTimeoutIDs[timeoutID] = objj_msgSend(CPTimer, "scheduledTimerWithTimeInterval:callback:repeats:", aDelay / 1000, theFunction, shouldRepeat); + return timeoutID; +} +window.setTimeout = function(codeOrFunction, aDelay) +{ + return _CPTimerBridgeTimer(codeOrFunction, aDelay, NO, Array.prototype.slice.apply(arguments, [2])); +} +window.clearTimeout = function(aTimeoutID) +{ + var timer = CPTimersForTimeoutIDs[aTimeoutID]; + if (timer) + objj_msgSend(timer, "invalidate"); + CPTimersForTimeoutIDs[aTimeoutID] = nil; +} +window.setInterval = function(codeOrFunction, aDelay, functionArgs) +{ + return _CPTimerBridgeTimer(codeOrFunction, aDelay, YES, Array.prototype.slice.apply(arguments, [2])); +} +window.clearInterval = function(aTimeoutID) +{ + window.clearTimeout(aTimeoutID); +} + +p;15;CPUndoManager.ji;10;CPObject.ji;14;CPInvocation.jc;18634; +var CPUndoManagerNormal = 0, + CPUndoManagerUndoing = 1, + CPUndoManagerRedoing = 2; +CPUndoManagerCheckpointNotification = "CPUndoManagerCheckpointNotification"; +CPUndoManagerDidOpenUndoGroupNotification = "CPUndoManagerDidOpenUndoGroupNotification"; +CPUndoManagerDidRedoChangeNotification = "CPUndoManagerDidRedoChangeNotification"; +CPUndoManagerDidUndoChangeNotification = "CPUndoManagerDidUndoChangeNotification"; +CPUndoManagerWillCloseUndoGroupNotification = "CPUndoManagerWillCloseUndoGroupNotification"; +CPUndoManagerWillRedoChangeNotification = "CPUndoManagerWillRedoChangeNotification"; +CPUndoManagerWillUndoChangeNotification = "CPUndoManagerWillUndoChangeNotification"; +CPUndoCloseGroupingRunLoopOrdering = 350000; +var _CPUndoGroupingPool = [], + _CPUndoGroupingPoolCapacity = 5; +{var the_class = objj_allocateClassPair(CPObject, "_CPUndoGrouping"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_parent"), new objj_ivar("_invocations")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithParent:"), function $_CPUndoGrouping__initWithParent_(self, _cmd, anUndoGrouping) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _parent = anUndoGrouping; + _invocations = []; + } + return self; +} +}), new objj_method(sel_getUid("parent"), function $_CPUndoGrouping__parent(self, _cmd) +{ with(self) +{ + return _parent; +} +}), new objj_method(sel_getUid("addInvocation:"), function $_CPUndoGrouping__addInvocation_(self, _cmd, anInvocation) +{ with(self) +{ + _invocations.push(anInvocation); +} +}), new objj_method(sel_getUid("addInvocationsFromArray:"), function $_CPUndoGrouping__addInvocationsFromArray_(self, _cmd, invocations) +{ with(self) +{ + objj_msgSend(_invocations, "addObjectsFromArray:", invocations); +} +}), new objj_method(sel_getUid("removeInvocationsWithTarget:"), function $_CPUndoGrouping__removeInvocationsWithTarget_(self, _cmd, aTarget) +{ with(self) +{ + var index = _invocations.length; + while (index--) + if (objj_msgSend(_invocations[index], "target") == aTarget) + _invocations.splice(index, 1); +} +}), new objj_method(sel_getUid("invocations"), function $_CPUndoGrouping__invocations(self, _cmd) +{ with(self) +{ + return _invocations; +} +}), new objj_method(sel_getUid("invoke"), function $_CPUndoGrouping__invoke(self, _cmd) +{ with(self) +{ + var index = _invocations.length; + while (index--) + objj_msgSend(_invocations[index], "invoke"); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("_poolUndoGrouping:"), function $_CPUndoGrouping___poolUndoGrouping_(self, _cmd, anUndoGrouping) +{ with(self) +{ + if (!anUndoGrouping || _CPUndoGroupingPool.length >= _CPUndoGroupingPoolCapacity) + return; + _CPUndoGroupingPool.push(anUndoGrouping); +} +}), new objj_method(sel_getUid("undoGroupingWithParent:"), function $_CPUndoGrouping__undoGroupingWithParent_(self, _cmd, anUndoGrouping) +{ with(self) +{ + if (_CPUndoGroupingPool.length) + { + var grouping = _CPUndoGroupingPool.pop(); + grouping._parent = anUndoGrouping; + if (grouping._invocations.length) + grouping._invocations = []; + return grouping; + } + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithParent:", anUndoGrouping); +} +})]); +} +var _CPUndoGroupingParentKey = "_CPUndoGroupingParentKey", + _CPUndoGroupingInvocationsKey = "_CPUndoGroupingInvocationsKey"; +{ +var the_class = objj_getClass("_CPUndoGrouping") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"_CPUndoGrouping\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $_CPUndoGrouping__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _parent = objj_msgSend(aCoder, "decodeObjectForKey:", _CPUndoGroupingParentKey); + _invocations = objj_msgSend(aCoder, "decodeObjectForKey:", _CPUndoGroupingInvocationsKey); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $_CPUndoGrouping__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _parent, _CPUndoGroupingParentKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _invocations, _CPUndoGroupingInvocationsKey); +} +})]); +} +{var the_class = objj_allocateClassPair(CPObject, "CPUndoManager"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_redoStack"), new objj_ivar("_undoStack"), new objj_ivar("_groupsByEvent"), new objj_ivar("_disableCount"), new objj_ivar("_levelsOfUndo"), new objj_ivar("_currentGrouping"), new objj_ivar("_state"), new objj_ivar("_actionName"), new objj_ivar("_preparedTarget"), new objj_ivar("_runLoopModes"), new objj_ivar("_registeredWithRunLoop")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPUndoManager__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _redoStack = []; + _undoStack = []; + _state = CPUndoManagerNormal; + objj_msgSend(self, "setRunLoopModes:", [CPDefaultRunLoopMode]); + objj_msgSend(self, "setGroupsByEvent:", YES); + _performRegistered = NO; + } + return self; +} +}), new objj_method(sel_getUid("registerUndoWithTarget:selector:object:"), function $CPUndoManager__registerUndoWithTarget_selector_object_(self, _cmd, aTarget, aSelector, anObject) +{ with(self) +{ + if (!_currentGrouping) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "No undo group is currently open"); + if (_disableCount > 0) + return; + var invocation = objj_msgSend(CPInvocation, "invocationWithMethodSignature:", nil); + objj_msgSend(invocation, "setTarget:", aTarget); + objj_msgSend(invocation, "setSelector:", aSelector); + objj_msgSend(invocation, "setArgument:atIndex:", anObject, 2); + objj_msgSend(_currentGrouping, "addInvocation:", invocation); + if (_state == CPUndoManagerNormal) + objj_msgSend(_redoStack, "removeAllObjects"); +} +}), new objj_method(sel_getUid("prepareWithInvocationTarget:"), function $CPUndoManager__prepareWithInvocationTarget_(self, _cmd, aTarget) +{ with(self) +{ + _preparedTarget = aTarget; + return self; +} +}), new objj_method(sel_getUid("methodSignatureForSelector:"), function $CPUndoManager__methodSignatureForSelector_(self, _cmd, aSelector) +{ with(self) +{ + if (objj_msgSend(_preparedTarget, "respondsToSelector:", aSelector)) + return 1; + return nil; +} +}), new objj_method(sel_getUid("forwardInvocation:"), function $CPUndoManager__forwardInvocation_(self, _cmd, anInvocation) +{ with(self) +{ + if (_disableCount > 0) + return; + objj_msgSend(anInvocation, "setTarget:", _preparedTarget); + objj_msgSend(_currentGrouping, "addInvocation:", anInvocation); + if (_state == CPUndoManagerNormal) + objj_msgSend(_redoStack, "removeAllObjects"); + _preparedTarget = nil; +} +}), new objj_method(sel_getUid("canRedo"), function $CPUndoManager__canRedo(self, _cmd) +{ with(self) +{ + return _redoStack.length > 0; +} +}), new objj_method(sel_getUid("canUndo"), function $CPUndoManager__canUndo(self, _cmd) +{ with(self) +{ + if (_undoStack.length > 0) + return YES; + return objj_msgSend(_currentGrouping, "actions").length > 0; +} +}), new objj_method(sel_getUid("undo"), function $CPUndoManager__undo(self, _cmd) +{ with(self) +{ + if (objj_msgSend(self, "groupingLevel") == 1) + objj_msgSend(self, "endUndoGrouping"); + objj_msgSend(self, "undoNestedGroup"); +} +}), new objj_method(sel_getUid("undoNestedGroup"), function $CPUndoManager__undoNestedGroup(self, _cmd) +{ with(self) +{ + if (_undoStack.length == 0) + return; + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + objj_msgSend(defaultCenter, "postNotificationName:object:", CPUndoManagerWillUndoChangeNotification, self); + var undoGrouping = _undoStack.pop(); + _state = CPUndoManagerUndoing; + objj_msgSend(self, "beginUndoGrouping"); + objj_msgSend(undoGrouping, "invoke"); + objj_msgSend(self, "endUndoGrouping"); + objj_msgSend(_CPUndoGrouping, "_poolUndoGrouping:", undoGrouping); + _state = CPUndoManagerNormal; + objj_msgSend(defaultCenter, "postNotificationName:object:", CPUndoManagerDidUndoChangeNotification, self); +} +}), new objj_method(sel_getUid("redo"), function $CPUndoManager__redo(self, _cmd) +{ with(self) +{ + if (_redoStack.length == 0) + return; + var defaultCenter = objj_msgSend(CPNotificationCenter, "defaultCenter"); + objj_msgSend(defaultCenter, "postNotificationName:object:", CPUndoManagerWillRedoChangeNotification, self); + var oldUndoGrouping = _currentGrouping, + undoGrouping = _redoStack.pop(); + _currentGrouping = nil; + _state = CPUndoManagerRedoing; + objj_msgSend(self, "beginUndoGrouping"); + objj_msgSend(undoGrouping, "invoke"); + objj_msgSend(self, "endUndoGrouping"); + objj_msgSend(_CPUndoGrouping, "_poolUndoGrouping:", undoGrouping); + _currentGrouping = oldUndoGrouping; + _state = CPUndoManagerNormal; + objj_msgSend(defaultCenter, "postNotificationName:object:", CPUndoManagerDidRedoChangeNotification, self); +} +}), new objj_method(sel_getUid("beginUndoGrouping"), function $CPUndoManager__beginUndoGrouping(self, _cmd) +{ with(self) +{ + _currentGrouping = objj_msgSend(_CPUndoGrouping, "undoGroupingWithParent:", _currentGrouping); +} +}), new objj_method(sel_getUid("endUndoGrouping"), function $CPUndoManager__endUndoGrouping(self, _cmd) +{ with(self) +{ + if (!_currentGrouping) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "endUndoGrouping. No undo group is currently open."); + var parent = objj_msgSend(_currentGrouping, "parent"); + if (!parent && objj_msgSend(_currentGrouping, "invocations").length > 0) + { + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPUndoManagerWillCloseUndoGroupNotification, self); + var stack = _state == CPUndoManagerUndoing ? _redoStack : _undoStack; + stack.push(_currentGrouping); + if (_levelsOfUndo > 0 && stack.length > _levelsOfUndo) + stack.splice(0, 1); + } + else + { + objj_msgSend(parent, "addInvocationsFromArray:", objj_msgSend(_currentGrouping, "invocations")); + objj_msgSend(_CPUndoGrouping, "_poolUndoGrouping:", _currentGrouping); + } + _currentGrouping = parent; +} +}), new objj_method(sel_getUid("enableUndoRegistration"), function $CPUndoManager__enableUndoRegistration(self, _cmd) +{ with(self) +{ + if (_disableCount <= 0) + objj_msgSend(CPException, "raise:reason:", CPInternalInconsistencyException, "enableUndoRegistration. There are no disable messages in effect right now."); + _disableCount--; +} +}), new objj_method(sel_getUid("groupsByEvent"), function $CPUndoManager__groupsByEvent(self, _cmd) +{ with(self) +{ + return _groupsByEvent; +} +}), new objj_method(sel_getUid("setGroupsByEvent:"), function $CPUndoManager__setGroupsByEvent_(self, _cmd, aFlag) +{ with(self) +{ + if (_groupsByEvent == aFlag) + return; + _groupsByEvent = aFlag; + if (_groupsByEvent) + { + objj_msgSend(self, "_registerWithRunLoop"); + if (!_currentGrouping) + objj_msgSend(self, "beginUndoGrouping"); + } + else + objj_msgSend(self, "_unregisterWithRunLoop"); +} +}), new objj_method(sel_getUid("groupingLevel"), function $CPUndoManager__groupingLevel(self, _cmd) +{ with(self) +{ + var grouping = _currentGrouping, + level = _currentGrouping != nil; + while (grouping = objj_msgSend(grouping, "parent")) + ++level; + return level; +} +}), new objj_method(sel_getUid("disableUndoRegistration"), function $CPUndoManager__disableUndoRegistration(self, _cmd) +{ with(self) +{ + ++_disableCount; +} +}), new objj_method(sel_getUid("isUndoRegistrationEnabled"), function $CPUndoManager__isUndoRegistrationEnabled(self, _cmd) +{ with(self) +{ + return _disableCount == 0; +} +}), new objj_method(sel_getUid("isUndoing"), function $CPUndoManager__isUndoing(self, _cmd) +{ with(self) +{ + return _state == CPUndoManagerUndoing; +} +}), new objj_method(sel_getUid("isRedoing"), function $CPUndoManager__isRedoing(self, _cmd) +{ with(self) +{ + return _state == CPUndoManagerRedoing; +} +}), new objj_method(sel_getUid("removeAllActions"), function $CPUndoManager__removeAllActions(self, _cmd) +{ with(self) +{ + _redoStack = []; + _undoStack = []; + _disableCount = 0; +} +}), new objj_method(sel_getUid("removeAllActionsWithTarget:"), function $CPUndoManager__removeAllActionsWithTarget_(self, _cmd, aTarget) +{ with(self) +{ + objj_msgSend(_currentGrouping, "removeInvocationsWithTarget:", aTarget); + var index = _redoStack.length; + while (index--) + { + var grouping = _redoStack[index]; + objj_msgSend(grouping, "removeInvocationsWithTarget:", aTarget); + if (!objj_msgSend(grouping, "invocations").length) + _redoStack.splice(index, 1); + } + index = _undoStack.length; + while (index--) + { + var grouping = _undoStack[index]; + objj_msgSend(grouping, "removeInvocationsWithTarget:", aTarget); + if (!objj_msgSend(grouping, "invocations").length) + _undoStack.splice(index, 1); + } +} +}), new objj_method(sel_getUid("setActionName:"), function $CPUndoManager__setActionName_(self, _cmd, anActionName) +{ with(self) +{ + _actionName = anActionName; +} +}), new objj_method(sel_getUid("redoActionName"), function $CPUndoManager__redoActionName(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "canRedo") ? _actionName : nil; +} +}), new objj_method(sel_getUid("undoActionName"), function $CPUndoManager__undoActionName(self, _cmd) +{ with(self) +{ + return objj_msgSend(self, "canUndo") ? _actionName : nil; +} +}), new objj_method(sel_getUid("runLoopModes"), function $CPUndoManager__runLoopModes(self, _cmd) +{ with(self) +{ + return _runLoopModes; +} +}), new objj_method(sel_getUid("setRunLoopModes:"), function $CPUndoManager__setRunLoopModes_(self, _cmd, modes) +{ with(self) +{ + _runLoopModes = modes; + objj_msgSend(self, "_unregisterWithRunLoop"); + if (_groupsByEvent) + objj_msgSend(self, "_registerWithRunLoop"); +} +}), new objj_method(sel_getUid("beginUndoGroupingForEvent"), function $CPUndoManager__beginUndoGroupingForEvent(self, _cmd) +{ with(self) +{ + if (!_groupsByEvent) + return; + if (_currentGrouping != nil) + objj_msgSend(self, "endUndoGrouping"); + objj_msgSend(self, "beginUndoGrouping"); + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "performSelector:target:argument:order:modes:", sel_getUid("beginUndoGroupingForEvent"), self, nil, CPUndoCloseGroupingRunLoopOrdering, _runLoopModes); +} +}), new objj_method(sel_getUid("_registerWithRunLoop"), function $CPUndoManager___registerWithRunLoop(self, _cmd) +{ with(self) +{ + if (_registeredWithRunLoop) + return; + _registeredWithRunLoop = YES; + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "performSelector:target:argument:order:modes:", sel_getUid("beginUndoGroupingForEvent"), self, nil, CPUndoCloseGroupingRunLoopOrdering, _runLoopModes); +} +}), new objj_method(sel_getUid("_unregisterWithRunLoop"), function $CPUndoManager___unregisterWithRunLoop(self, _cmd) +{ with(self) +{ + if (!_registeredWithRunLoop) + return; + _registeredWithRunLoop = NO; + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "cancelPerformSelector:target:argument:", sel_getUid("beginUndoGroupingForEvent"), self, nil); +} +})]); +} +var CPUndoManagerRedoStackKey = "CPUndoManagerRedoStackKey", + CPUndoManagerUndoStackKey = "CPUndoManagerUndoStackKey"; + CPUndoManagerLevelsOfUndoKey = "CPUndoManagerLevelsOfUndoKey"; + CPUndoManagerActionNameKey = "CPUndoManagerActionNameKey"; + CPUndoManagerCurrentGroupingKey = "CPUndoManagerCurrentGroupingKey"; + CPUndoManagerRunLoopModesKey = "CPUndoManagerRunLoopModesKey"; + CPUndoManagerGroupsByEventKey = "CPUndoManagerGroupsByEventKey"; +{ +var the_class = objj_getClass("CPUndoManager") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPUndoManager\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPUndoManager__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _redoStack = objj_msgSend(aCoder, "decodeObjectForKey:", CPUndoManagerRedoStackKey); + _undoStack = objj_msgSend(aCoder, "decodeObjectForKey:", CPUndoManagerUndoStackKey); + _levelsOfUndo = objj_msgSend(aCoder, "decodeObjectForKey:", CPUndoManagerLevelsOfUndoKey); + _actionName = objj_msgSend(aCoder, "decodeObjectForKey:", CPUndoManagerActionNameKey); + _currentGrouping = objj_msgSend(aCoder, "decodeObjectForKey:", CPUndoManagerCurrentGroupingKey); + _state = CPUndoManagerNormal; + objj_msgSend(self, "setRunLoopModes:", objj_msgSend(aCoder, "decodeObjectForKey:", CPUndoManagerRunLoopModesKey)); + objj_msgSend(self, "setGroupsByEvent:", objj_msgSend(aCoder, "decodeBoolForKey:", CPUndoManagerGroupsByEventKey)); + } + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPUndoManager__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", _redoStack, CPUndoManagerRedoStackKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _undoStack, CPUndoManagerUndoStackKey); + objj_msgSend(aCoder, "encodeInt:forKey:", _levelsOfUndo, CPUndoManagerLevelsOfUndoKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _actionName, CPUndoManagerActionNameKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _currentGrouping, CPUndoManagerCurrentGroupingKey); + objj_msgSend(aCoder, "encodeObject:forKey:", _runLoopModes, CPUndoManagerRunLoopModesKey); + objj_msgSend(aCoder, "encodeBool:forKey:", _groupsByEvent, CPUndoManagerGroupsByEventKey); +} +})]); +} + +p;17;CPURLConnection.ji;10;CPObject.ji;11;CPRunLoop.ji;14;CPURLRequest.ji;15;CPURLResponse.jc;6650; +var XMLHTTPRequestUninitialized = 0, + XMLHTTPRequestLoading = 1, + XMLHTTPRequestLoaded = 2, + XMLHTTPRequestInteractive = 3, + XMLHTTPRequestComplete = 4; +var CPURLConnectionDelegate = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPURLConnection"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_request"), new objj_ivar("_delegate"), new objj_ivar("_isCanceled"), new objj_ivar("_isLocalFileConnection"), new objj_ivar("_XMLHTTPRequest")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithRequest:delegate:startImmediately:"), function $CPURLConnection__initWithRequest_delegate_startImmediately_(self, _cmd, aRequest, aDelegate, shouldStartImmediately) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _request = aRequest; + _delegate = aDelegate; + _isCanceled = NO; + var path = objj_msgSend(_request, "URL"); + _isLocalFileConnection = path.indexOf("file:") === 0 || + ((path.indexOf("http:") !== 0 || path.indexOf("https:") !== 0) && + window.location && + (window.location.protocol === "file:" || window.location.protocol === "app:")); + _XMLHTTPRequest = objj_request_xmlhttp(); + if (shouldStartImmediately) + objj_msgSend(self, "start"); + } + return self; +} +}), new objj_method(sel_getUid("initWithRequest:delegate:"), function $CPURLConnection__initWithRequest_delegate_(self, _cmd, aRequest, aDelegate) +{ with(self) +{ + return objj_msgSend(self, "initWithRequest:delegate:startImmediately:", aRequest, aDelegate, YES); +} +}), new objj_method(sel_getUid("delegate"), function $CPURLConnection__delegate(self, _cmd) +{ with(self) +{ + return _delegate; +} +}), new objj_method(sel_getUid("start"), function $CPURLConnection__start(self, _cmd) +{ with(self) +{ + _isCanceled = NO; + try + { + _XMLHTTPRequest.open(objj_msgSend(_request, "HTTPMethod"), objj_msgSend(_request, "URL"), YES); + _XMLHTTPRequest.onreadystatechange = function() { objj_msgSend(self, "_readyStateDidChange"); } + var fields = objj_msgSend(_request, "allHTTPHeaderFields"), + key = nil, + keys = objj_msgSend(fields, "keyEnumerator"); + while (key = objj_msgSend(keys, "nextObject")) + _XMLHTTPRequest.setRequestHeader(key, objj_msgSend(fields, "objectForKey:", key)); + _XMLHTTPRequest.send(objj_msgSend(_request, "HTTPBody")); + } + catch (anException) + { + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("connection:didFailWithError:"))) + objj_msgSend(_delegate, "connection:didFailWithError:", self, anException); + } +} +}), new objj_method(sel_getUid("cancel"), function $CPURLConnection__cancel(self, _cmd) +{ with(self) +{ + _isCanceled = YES; + try + { + _XMLHTTPRequest.abort(); + } + catch (anException) + { + } +} +}), new objj_method(sel_getUid("isLocalFileConnection"), function $CPURLConnection__isLocalFileConnection(self, _cmd) +{ with(self) +{ + return _isLocalFileConnection; +} +}), new objj_method(sel_getUid("_readyStateDidChange"), function $CPURLConnection___readyStateDidChange(self, _cmd) +{ with(self) +{ + if (_XMLHTTPRequest.readyState == XMLHTTPRequestComplete) + { + var statusCode = _XMLHTTPRequest.status, + URL = objj_msgSend(_request, "URL"); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("connection:didReceiveResponse:"))) + { + if (_isLocalFileConnection) + objj_msgSend(_delegate, "connection:didReceiveResponse:", self, objj_msgSend(objj_msgSend(CPURLResponse, "alloc"), "initWithURL:", URL)); + else + { + var response = objj_msgSend(objj_msgSend(CPHTTPURLResponse, "alloc"), "initWithURL:", URL); + objj_msgSend(response, "_setStatusCode:", statusCode); + objj_msgSend(_delegate, "connection:didReceiveResponse:", self, response); + } + } + if (!_isCanceled) + { + if (statusCode == 401 && objj_msgSend(CPURLConnectionDelegate, "respondsToSelector:", sel_getUid("connectionDidReceiveAuthenticationChallenge:"))) + objj_msgSend(CPURLConnectionDelegate, "connectionDidReceiveAuthenticationChallenge:", self); + else + { + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("connection:didReceiveData:"))) + objj_msgSend(_delegate, "connection:didReceiveData:", self, _XMLHTTPRequest.responseText); + if (objj_msgSend(_delegate, "respondsToSelector:", sel_getUid("connectionDidFinishLoading:"))) + objj_msgSend(_delegate, "connectionDidFinishLoading:", self); + } + } + } + objj_msgSend(objj_msgSend(CPRunLoop, "currentRunLoop"), "limitDateForMode:", CPDefaultRunLoopMode); +} +}), new objj_method(sel_getUid("_XMLHTTPRequest"), function $CPURLConnection___XMLHTTPRequest(self, _cmd) +{ with(self) +{ + return _XMLHTTPRequest; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("setClassDelegate:"), function $CPURLConnection__setClassDelegate_(self, _cmd, delegate) +{ with(self) +{ + CPURLConnectionDelegate = delegate; +} +}), new objj_method(sel_getUid("sendSynchronousRequest:returningResponse:error:"), function $CPURLConnection__sendSynchronousRequest_returningResponse_error_(self, _cmd, aRequest, aURLResponse, anError) +{ with(self) +{ + try + { + var request = objj_request_xmlhttp(); + request.open(objj_msgSend(aRequest, "HTTPMethod"), objj_msgSend(aRequest, "URL"), NO); + var fields = objj_msgSend(aRequest, "allHTTPHeaderFields"), + key = nil, + keys = objj_msgSend(fields, "keyEnumerator"); + while (key = objj_msgSend(keys, "nextObject")) + request.setRequestHeader(key, objj_msgSend(fields, "objectForKey:", key)); + request.send(objj_msgSend(aRequest, "HTTPBody")); + return objj_msgSend(CPData, "dataWithString:", request.responseText); + } + catch (anException) + { + } + return nil; +} +}), new objj_method(sel_getUid("connectionWithRequest:delegate:"), function $CPURLConnection__connectionWithRequest_delegate_(self, _cmd, aRequest, aDelegate) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithRequest:delegate:", aRequest, aDelegate); +} +})]); +} + +p;14;CPURLRequest.ji;10;CPObject.jc;2769; +{var the_class = objj_allocateClassPair(CPObject, "CPURLRequest"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_URL"), new objj_ivar("_HTTPBody"), new objj_ivar("_HTTPMethod"), new objj_ivar("_HTTPHeaderFields")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithURL:"), function $CPURLRequest__initWithURL_(self, _cmd, aURL) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + { + _URL = aURL; + _HTTPBody = ""; + _HTTPMethod = "GET"; + _HTTPHeaderFields = objj_msgSend(CPDictionary, "dictionary"); + objj_msgSend(self, "setValue:forHTTPHeaderField:", "Thu, 1 Jan 1970 00:00:00 GMT", "If-Modified-Since"); + objj_msgSend(self, "setValue:forHTTPHeaderField:", "no-cache", "Cache-Control"); + objj_msgSend(self, "setValue:forHTTPHeaderField:", "XMLHttpRequest", "X-Requested-With"); + } + return self; +} +}), new objj_method(sel_getUid("URL"), function $CPURLRequest__URL(self, _cmd) +{ with(self) +{ + return _URL; +} +}), new objj_method(sel_getUid("setURL:"), function $CPURLRequest__setURL_(self, _cmd, aURL) +{ with(self) +{ + _URL = aURL; +} +}), new objj_method(sel_getUid("setHTTPBody:"), function $CPURLRequest__setHTTPBody_(self, _cmd, anHTTPBody) +{ with(self) +{ + _HTTPBody = anHTTPBody; +} +}), new objj_method(sel_getUid("HTTPBody"), function $CPURLRequest__HTTPBody(self, _cmd) +{ with(self) +{ + return _HTTPBody; +} +}), new objj_method(sel_getUid("setHTTPMethod:"), function $CPURLRequest__setHTTPMethod_(self, _cmd, anHTTPMethod) +{ with(self) +{ + _HTTPMethod = anHTTPMethod; +} +}), new objj_method(sel_getUid("HTTPMethod"), function $CPURLRequest__HTTPMethod(self, _cmd) +{ with(self) +{ + return _HTTPMethod; +} +}), new objj_method(sel_getUid("allHTTPHeaderFields"), function $CPURLRequest__allHTTPHeaderFields(self, _cmd) +{ with(self) +{ + return _HTTPHeaderFields; +} +}), new objj_method(sel_getUid("valueForHTTPHeaderField:"), function $CPURLRequest__valueForHTTPHeaderField_(self, _cmd, aField) +{ with(self) +{ + return objj_msgSend(_HTTPHeaderFields, "objectForKey:", aField); +} +}), new objj_method(sel_getUid("setValue:forHTTPHeaderField:"), function $CPURLRequest__setValue_forHTTPHeaderField_(self, _cmd, aValue, aField) +{ with(self) +{ + objj_msgSend(_HTTPHeaderFields, "setObject:forKey:", aValue, aField); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("requestWithURL:"), function $CPURLRequest__requestWithURL_(self, _cmd, aURL) +{ with(self) +{ + return objj_msgSend(objj_msgSend(CPURLRequest, "alloc"), "initWithURL:", aURL); +} +})]); +} + +p;15;CPURLResponse.ji;10;CPObject.jc;1309; +{var the_class = objj_allocateClassPair(CPObject, "CPURLResponse"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_URL")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithURL:"), function $CPURLResponse__initWithURL_(self, _cmd, aURL) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _URL = aURL; + return self; +} +}), new objj_method(sel_getUid("URL"), function $CPURLResponse__URL(self, _cmd) +{ with(self) +{ + return _URL; +} +})]); +} +{var the_class = objj_allocateClassPair(CPURLResponse, "CPHTTPURLResponse"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_statusCode")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("_setStatusCode:"), function $CPHTTPURLResponse___setStatusCode_(self, _cmd, aStatusCode) +{ with(self) +{ + _statusCode = aStatusCode; +} +}), new objj_method(sel_getUid("statusCode"), function $CPHTTPURLResponse__statusCode(self, _cmd) +{ with(self) +{ + return _statusCode; +} +})]); +} + +p;22;CPUserSessionManager.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;2478; +CPUserSessionUndeterminedStatus = 0; +CPUserSessionLoggedInStatus = 1; +CPUserSessionLoggedOutStatus = 2; +CPUserSessionManagerStatusDidChangeNotification = "CPUserSessionManagerStatusDidChangeNotification"; +CPUserSessionManagerUserIdentifierDidChangeNotification = "CPUserSessionManagerUserIdentifierDidChangeNotification"; +var CPDefaultUserSessionManager = nil; +{var the_class = objj_allocateClassPair(CPObject, "CPUserSessionManager"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_status"), new objj_ivar("_userIdentifier")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("init"), function $CPUserSessionManager__init(self, _cmd) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _status = CPUserSessionUndeterminedStatus; + return self; +} +}), new objj_method(sel_getUid("status"), function $CPUserSessionManager__status(self, _cmd) +{ with(self) +{ + return _status; +} +}), new objj_method(sel_getUid("setStatus:"), function $CPUserSessionManager__setStatus_(self, _cmd, aStatus) +{ with(self) +{ + if (_status == aStatus) + return; + _status = aStatus; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPUserSessionManagerStatusDidChangeNotification, self); + if (_status != CPUserSessionLoggedInStatus) + objj_msgSend(self, "setUserIdentifier:", nil); +} +}), new objj_method(sel_getUid("userIdentifier"), function $CPUserSessionManager__userIdentifier(self, _cmd) +{ with(self) +{ + return _userIdentifier; +} +}), new objj_method(sel_getUid("setUserIdentifier:"), function $CPUserSessionManager__setUserIdentifier_(self, _cmd, anIdentifier) +{ with(self) +{ + if (_userIdentifier == anIdentifier) + return; + _userIdentifier = anIdentifier; + objj_msgSend(objj_msgSend(CPNotificationCenter, "defaultCenter"), "postNotificationName:object:", CPUserSessionManagerUserIdentifierDidChangeNotification, self); +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("defaultManager"), function $CPUserSessionManager__defaultManager(self, _cmd) +{ with(self) +{ + if (!CPDefaultUserSessionManager) + CPDefaultUserSessionManager = objj_msgSend(objj_msgSend(CPUserSessionManager, "alloc"), "init"); + return CPDefaultUserSessionManager; +} +})]); +} + +p;9;CPValue.ji;10;CPObject.ji;9;CPCoder.jc;2179; +{var the_class = objj_allocateClassPair(CPObject, "CPValue"), +meta_class = the_class.isa;class_addIvars(the_class, [new objj_ivar("_JSObject")]); +objj_registerClassPair(the_class); +objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(the_class, [new objj_method(sel_getUid("initWithJSObject:"), function $CPValue__initWithJSObject_(self, _cmd, aJSObject) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _JSObject = aJSObject; + return self; +} +}), new objj_method(sel_getUid("JSObject"), function $CPValue__JSObject(self, _cmd) +{ with(self) +{ + return _JSObject; +} +})]); +class_addMethods(meta_class, [new objj_method(sel_getUid("valueWithJSObject:"), function $CPValue__valueWithJSObject_(self, _cmd, aJSObject) +{ with(self) +{ + return objj_msgSend(objj_msgSend(self, "alloc"), "initWithJSObject:", aJSObject); +} +})]); +} +var CPValueValueKey = "CPValueValueKey"; +{ +var the_class = objj_getClass("CPValue") +if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, "*** Could not find definition for class \"CPValue\"")); +var meta_class = the_class.isa;class_addMethods(the_class, [new objj_method(sel_getUid("initWithCoder:"), function $CPValue__initWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + self = objj_msgSendSuper({ receiver:self, super_class:objj_getClass("CPObject") }, "init"); + if (self) + _JSObject = JSON.parse(objj_msgSend(aCoder, "decodeObjectForKey:", CPValueValueKey)); + return self; +} +}), new objj_method(sel_getUid("encodeWithCoder:"), function $CPValue__encodeWithCoder_(self, _cmd, aCoder) +{ with(self) +{ + objj_msgSend(aCoder, "encodeObject:forKey:", JSON.stringify(_JSObject), CPValueValueKey); +} +})]); +} +CPJSObjectCreateJSON= function(aJSObject) +{ + CPLog.warn("CPJSObjectCreateJSON deprecated, use JSON.stringify() or CPString's objectFromJSON"); + return JSON.stringify(aJSObject); +} +CPJSObjectCreateWithJSON= function(aString) +{ + CPLog.warn("CPJSObjectCreateWithJSON deprecated, use JSON.parse() or CPString's JSONFromObject"); + return JSON.parse(aString); +} + +p;12;Foundation.ji;9;CPArray.ji;10;CPBundle.ji;9;CPCoder.ji;8;CPData.ji;8;CPDate.ji;14;CPDictionary.ji;14;CPEnumerator.ji;13;CPException.ji;12;CPIndexSet.ji;14;CPInvocation.ji;19;CPJSONPConnection.ji;17;CPKeyedArchiver.ji;19;CPKeyedUnarchiver.ji;18;CPKeyValueCoding.ji;21;CPKeyValueObserving.ji;7;CPLog.ji;16;CPNotification.ji;22;CPNotificationCenter.ji;8;CPNull.ji;10;CPNumber.ji;10;CPObject.ji;15;CPObjJRuntime.ji;29;CPPropertyListSerialization.ji;9;CPRange.ji;11;CPRunLoop.ji;7;CPSet.ji;18;CPSortDescriptor.ji;10;CPString.ji;9;CPTimer.ji;15;CPUndoManager.ji;17;CPURLConnection.ji;14;CPURLRequest.ji;15;CPURLResponse.ji;22;CPUserSessionManager.ji;9;CPValue.j \ No newline at end of file diff --git a/src/main/webapp/Frameworks/Debug/Objective-J/LICENSE b/src/main/webapp/Frameworks/Debug/Objective-J/LICENSE new file mode 100644 index 0000000..9ef3d70 --- /dev/null +++ b/src/main/webapp/Frameworks/Debug/Objective-J/LICENSE @@ -0,0 +1,503 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + diff --git a/src/main/webapp/Frameworks/Debug/Objective-J/Objective-J.js b/src/main/webapp/Frameworks/Debug/Objective-J/Objective-J.js new file mode 100644 index 0000000..d0f800b --- /dev/null +++ b/src/main/webapp/Frameworks/Debug/Objective-J/Objective-J.js @@ -0,0 +1,2607 @@ +/* + * Objective-J.js + * Objective-J + * + * Created by Francisco Tolmasky. + * Copyright 2008, 280 North, Inc. + * + * 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 + */ + +var NO = false, + YES = true, + nil = null, + Nil = null, + NULL = null, + ABS = Math.abs, + ASIN = Math.asin, + ACOS = Math.acos, + ATAN = Math.atan, + ATAN2 = Math.atan2, + SIN = Math.sin, + COS = Math.cos, + TAN = Math.tan, + EXP = Math.exp, + POW = Math.pow, + CEIL = Math.ceil, + FLOOR = Math.floor, + ROUND = Math.round, + MIN = Math.min, + MAX = Math.max, + RAND = Math.random, + SQRT = Math.sqrt, + E = Math.E, + LN2 = Math.LN2, + LN10 = Math.LN10, + LOG2E = Math.LOG2E, + LOG10E = Math.LOG10E, + PI = Math.PI, + PI2 = Math.PI * 2.0, + PI_2 = Math.PI / 2.0, + SQRT1_2 = Math.SQRT1_2, + SQRT2 = Math.SQRT2; +window.setNativeTimeout = window.setTimeout; +window.clearNativeTimeout = window.clearTimeout; +window.setNativeInterval = window.setInterval; +window.clearNativeInterval = window.clearInterval; +var objj_continue_alerting = NO; +function objj_alert(aString) +{ + if (!objj_continue_alerting) + return; + objj_continue_alerting = confirm(aString + "\n\nClick cancel to prevent further alerts."); +} +function objj_fprintf(stream, string) +{ + stream(string); +} +function objj_printf(string) +{ + objj_fprintf(alert, string); +} +if (window.console && window.console.warn) + var warning_stream = function(aString) { window.console.warn(aString); } +else + var warning_stream = function(){}; +var _sprintfFormatRegex = new RegExp("([^%]+|%[\\+\\-\\ \\#0]*[0-9\\*]*(.[0-9\\*]+)?[hlL]?[cbBdieEfgGosuxXpn%@])", "g"); +var _sprintfTagRegex = new RegExp("(%)([\\+\\-\\ \\#0]*)([0-9\\*]*)((.[0-9\\*]+)?)([hlL]?)([cbBdieEfgGosuxXpn%@])"); +function sprintf(format) +{ + var format = arguments[0], + tokens = format.match(_sprintfFormatRegex), + index = 0, + result = "", + arg = 1; + for (var i = 0; i < tokens.length; i++) + { + var t = tokens[i]; + if (format.substring(index, index + t.length) != t) + { + return result; + } + index += t.length; + if (t.charAt(0) != "%") + { + result += t; + } + else + { + var subtokens = t.match(_sprintfTagRegex); + if (subtokens.length != 8 || subtokens[0] != t) + { + return result; + } + var percentSign = subtokens[1], + flags = subtokens[2], + widthString = subtokens[3], + precisionString = subtokens[4], + length = subtokens[6], + specifier = subtokens[7]; + var width = null; + if (widthString == "*") + width = arguments[arg++]; + else if (widthString != "") + width = Number(widthString); + var precision = null; + if (precisionString == ".*") + precision = arguments[arg++]; + else if (precisionString != "") + precision = Number(precisionString.substring(1)); + var leftJustify = (flags.indexOf("-") >= 0); + var padZeros = (flags.indexOf("0") >= 0); + var subresult = ""; + if (RegExp("[bBdiufeExXo]").test(specifier)) + { + var num = Number(arguments[arg++]); + var sign = ""; + if (num < 0) + { + sign = "-"; + } + else + { + if (flags.indexOf("+") >= 0) + sign = "+"; + else if (flags.indexOf(" ") >= 0) + sign = " "; + } + if (specifier == "d" || specifier == "i" || specifier == "u") + { + var number = String(Math.abs(Math.floor(num))); + subresult = _sprintf_justify(sign, "", number, "", width, leftJustify, padZeros) + } + if (specifier == "f") + { + var number = String((precision != null) ? Math.abs(num).toFixed(precision) : Math.abs(num)); + var suffix = (flags.indexOf("#") >= 0 && number.indexOf(".") < 0) ? "." : ""; + subresult = _sprintf_justify(sign, "", number, suffix, width, leftJustify, padZeros); + } + if (specifier == "e" || specifier == "E") + { + var number = String(Math.abs(num).toExponential(precision != null ? precision : 21)); + var suffix = (flags.indexOf("#") >= 0 && number.indexOf(".") < 0) ? "." : ""; + subresult = _sprintf_justify(sign, "", number, suffix, width, leftJustify, padZeros); + } + if (specifier == "x" || specifier == "X") + { + var number = String(Math.abs(num).toString(16)); + var prefix = (flags.indexOf("#") >= 0 && num != 0) ? "0x" : ""; + subresult = _sprintf_justify(sign, prefix, number, "", width, leftJustify, padZeros); + } + if (specifier == "b" || specifier == "B") + { + var number = String(Math.abs(num).toString(2)); + var prefix = (flags.indexOf("#") >= 0 && num != 0) ? "0b" : ""; + subresult = _sprintf_justify(sign, prefix, number, "", width, leftJustify, padZeros); + } + if (specifier == "o") + { + var number = String(Math.abs(num).toString(8)); + var prefix = (flags.indexOf("#") >= 0 && num != 0) ? "0" : ""; + subresult = _sprintf_justify(sign, prefix, number, "", width, leftJustify, padZeros); + } + if (RegExp("[A-Z]").test(specifier)) + subresult = subresult.toUpperCase(); + else + subresult = subresult.toLowerCase(); + } + else + { + var subresult = ""; + if (specifier == "%") + subresult = "%"; + else if (specifier == "c") + subresult = String(arguments[arg++]).charAt(0); + else if (specifier == "s" || specifier == "@") + subresult = String(arguments[arg++]); + else if (specifier == "p" || specifier == "n") + { + arg++; + subresult = ""; + } + subresult = _sprintf_justify("", "", subresult, "", width, leftJustify, false); + } + result += subresult; + } + } + return result; +} +var _sprintf_justify = function(sign, prefix, string, suffix, width, leftJustify, padZeros) +{ + var length = (sign.length + prefix.length + string.length + suffix.length); + if (leftJustify) + { + return sign + prefix + string + suffix + _sprintf_pad(width - length, " "); + } + else + { + if (padZeros) + return sign + prefix + _sprintf_pad(width - length, "0") + string + suffix; + else + return _sprintf_pad(width - length, " ") + sign + prefix + string + suffix; + } +} +var _sprintf_pad = function(n, ch) +{ + var result = ""; + for (var i = 0; i < n; i++) + result += ch; + return result; +} +var base64_map_to = [ + "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z", + "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", + "0","1","2","3","4","5","6","7","8","9","+","/","="], + base64_map_from = []; +for (var i = 0; i < base64_map_to.length; i++) + base64_map_from[base64_map_to[i].charCodeAt(0)] = i; +function base64_decode_to_array(input, strip) +{ + if (strip) + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + var pad = (input[input.length-1] == "=" ? 1 : 0) + (input[input.length-2] == "=" ? 1 : 0), + length = input.length, + output = []; + var i = 0; + while (i < length) + { + var bits = (base64_map_from[input.charCodeAt(i++)] << 18) | + (base64_map_from[input.charCodeAt(i++)] << 12) | + (base64_map_from[input.charCodeAt(i++)] << 6) | + (base64_map_from[input.charCodeAt(i++)]); + output.push((bits & 0xFF0000) >> 16); + output.push((bits & 0xFF00) >> 8); + output.push(bits & 0xFF); + } + if (pad > 0) + return output.slice(0, -1 * pad); + return output; +} +function base64_encode_array(input) +{ + var pad = (3 - (input.length % 3)) % 3, + length = input.length + pad, + output = []; + if (pad > 0) input.push(0); + if (pad > 1) input.push(0); + var i = 0; + while (i < length) + { + var bits = (input[i++] << 16) | + (input[i++] << 8) | + (input[i++]); + output.push(base64_map_to[(bits & 0xFC0000) >> 18]); + output.push(base64_map_to[(bits & 0x3F000) >> 12]); + output.push(base64_map_to[(bits & 0xFC0) >> 6]); + output.push(base64_map_to[bits & 0x3F]); + } + if (pad > 0) + { + output[output.length-1] = "="; + input.pop(); + } + if (pad > 1) + { + output[output.length-2] = "="; + input.pop(); + } + return output.join(""); +} +function base64_decode_to_string(input, strip) +{ + return bytes_to_string(base64_decode_to_array(input, strip)); +} +function bytes_to_string(bytes) +{ + return String.fromCharCode.apply(null, bytes); +} +function base64_encode_string(input) +{ + var temp = []; + for (var i = 0; i < input.length; i++) + temp.push(input.charCodeAt(i)); + return base64_encode_array(temp); +} +if (!this.JSON) { + JSON = {}; +} +(function () { + function f(n) { + return n < 10 ? '0' + n : n; + } + if (typeof Date.prototype.toJSON !== 'function') { + Date.prototype.toJSON = function (key) { + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + function quote(string) { + escapable.lastIndex = 0; + return escapable.test(string) ? + '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : + '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : + '"' + string + '"'; + } + function str(key, holder) { + var i, + k, + v, + length, + mind = gap, + partial, + value = holder[key]; + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + switch (typeof value) { + case 'string': + return quote(value); + case 'number': + return isFinite(value) ? String(value) : 'null'; + case 'boolean': + case 'null': + return String(value); + case 'object': + if (!value) { + return 'null'; + } + gap += indent; + partial = []; + if (Object.prototype.toString.apply(value) === '[object Array]') { + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + v = partial.length === 0 ? '[]' : + gap ? '[\n' + gap + + partial.join(',\n' + gap) + '\n' + + mind + ']' : + '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + k = rep[i]; + if (typeof k === 'string') { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + v = partial.length === 0 ? '{}' : + gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + var i; + gap = ''; + indent = ''; + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + } else if (typeof space === 'string') { + indent = space; + } + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + return str('', {'': value}); + }; + } + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + var j; + function walk(holder, key) { + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + if (/^[\],:{}\s]*$/. +test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@'). +replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'). +replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + j = eval('(' + text + ')'); + return typeof reviver === 'function' ? + walk({'': j}, '') : j; + } + throw new SyntaxError('JSON.parse'); + }; + } +}()); +var CLS_CLASS = 0x1, + CLS_META = 0x2, + CLS_INITIALIZED = 0x4, + CLS_INITIALIZING = 0x8; +function objj_ivar( aName, aType) +{ + this.name = aName; + this.type = aType; +} +function objj_method( aName, anImplementation, types) +{ + this.name = aName; + this.method_imp = anImplementation; + this.types = types; +} +function objj_class() +{ + this.isa = NULL; + this.super_class = NULL; + this.sub_classes = []; + this.name = NULL; + this.info = 0; + this.ivars = []; + this.method_list = []; + this.method_hash = {}; + this.method_store = function() { }; + this.method_dtable = this.method_store.prototype; + this.allocator = function() { }; + this.__address = -1; +} +function objj_object() +{ + this.isa = NULL; + this.__address = -1; +} +var OBJECT_COUNT = 0; +function _objj_generateObjectHash() +{ + return OBJECT_COUNT++; +} +function class_getName( aClass) +{ + if (aClass == Nil) + return ""; + return aClass.name; +} +function class_isMetaClass( aClass) +{ + if (!aClass) + return NO; + return ((aClass.info & (CLS_META))); +} +function class_getSuperclass( aClass) +{ + if (aClass == Nil) + return Nil; + return aClass.super_class; +} +function class_setSuperclass( aClass, aSuperClass) +{ +} +function class_isMetaClass( aClass) +{ + return ((aClass.info & (CLS_META))); +} +function class_addIvar( aClass, aName, aType) +{ + var thePrototype = aClass.allocator.prototype; + if (typeof thePrototype[aName] != "undefined") + return NO; + aClass.ivars.push(new objj_ivar(aName, aType)); + thePrototype[aName] = NULL; + return YES; +} +function class_addIvars( aClass, ivars) +{ + var index = 0, + count = ivars.length, + thePrototype = aClass.allocator.prototype; + for (; index < count; ++index) + { + var ivar = ivars[index], + name = ivar.name; + if (typeof thePrototype[name] === "undefined") + { + aClass.ivars.push(ivar); + thePrototype[name] = NULL; + } + } +} +function class_copyIvarList( aClass) +{ + return aClass.ivars.slice(0); +} +function class_addMethod( aClass, aName, anImplementation, aType) +{ + if (aClass.method_hash[aName]) + return NO; + var method = new objj_method(aName, anImplementation, aType); + aClass.method_list.push(method); + aClass.method_dtable[aName] = method; + method.method_imp.displayName = (((aClass.info & (CLS_META))) ? '+' : '-') + " [" + class_getName(aClass) + ' ' + method_getName(method) + ']'; + if (!((aClass.info & (CLS_META))) && (((aClass.info & (CLS_META))) ? aClass : aClass.isa).isa === (((aClass.info & (CLS_META))) ? aClass : aClass.isa)) + class_addMethod((((aClass.info & (CLS_META))) ? aClass : aClass.isa), method); + return YES; +} +function class_addMethods( aClass, methods) +{ + var index = 0, + count = methods.length, + method_list = aClass.method_list, + method_dtable = aClass.method_dtable; + for (; index < count; ++index) + { + var method = methods[index]; + if (aClass.method_hash[method.name]) + continue; + method_list.push(method); + method_dtable[method.name] = method; + method.method_imp.displayName = (((aClass.info & (CLS_META))) ? '+' : '-') + " [" + class_getName(aClass) + ' ' + method_getName(method) + ']'; + } + if (!((aClass.info & (CLS_META))) && (((aClass.info & (CLS_META))) ? aClass : aClass.isa).isa === (((aClass.info & (CLS_META))) ? aClass : aClass.isa)) + class_addMethods((((aClass.info & (CLS_META))) ? aClass : aClass.isa), methods); +} +function class_getInstanceMethod( aClass, aSelector) +{ + if (!aClass || !aSelector) + return NULL; + var method = aClass.method_dtable[aSelector]; + return method ? method : NULL; +} +function class_getClassMethod( aClass, aSelector) +{ + if (!aClass || !aSelector) + return NULL; + var method = (((aClass.info & (CLS_META))) ? aClass : aClass.isa).method_dtable[aSelector]; + return method ? method : NULL; +} +function class_copyMethodList( aClass) +{ + return aClass.method_list.slice(0); +} +function class_replaceMethod( aClass, aSelector, aMethodImplementation) +{ + if (!aClass || !aSelector) + return NULL; + var method = aClass.method_dtable[aSelector], + method_imp = NULL; + if (method) + method_imp = method.method_imp; + method.method_imp = aMethodImplementation; + return method_imp; +} +var _class_initialize = function( aClass) +{ + var meta = (((aClass.info & (CLS_META))) ? aClass : aClass.isa); + if ((aClass.info & (CLS_META))) + aClass = objj_getClass(aClass.name); + if (aClass.super_class && !((((aClass.super_class.info & (CLS_META))) ? aClass.super_class : aClass.super_class.isa).info & (CLS_INITIALIZED))) + _class_initialize(aClass.super_class); + if (!(meta.info & (CLS_INITIALIZED)) && !(meta.info & (CLS_INITIALIZING))) + { + meta.info = (meta.info | (CLS_INITIALIZING)) & ~(0); + objj_msgSend(aClass, "initialize"); + meta.info = (meta.info | (CLS_INITIALIZED)) & ~(CLS_INITIALIZING); + } +} +var _objj_forward = new objj_method("forward", function(self, _cmd) +{ + return objj_msgSend(self, "forward::", _cmd, arguments); +}); +function class_getMethodImplementation( aClass, aSelector) +{ + if (!((((aClass.info & (CLS_META))) ? aClass : aClass.isa).info & (CLS_INITIALIZED))) _class_initialize(aClass); var method = aClass.method_dtable[aSelector]; if (!method) method = _objj_forward; var implementation = method.method_imp;; + return implementation; +} +var GLOBAL_NAMESPACE = window, + REGISTERED_CLASSES = {}; +function objj_allocateClassPair( superclass, aName) +{ + var classObject = new objj_class(), + metaClassObject = new objj_class(), + rootClassObject = classObject; + if (superclass) + { + rootClassObject = superclass; + while (rootClassObject.superclass) + rootClassObject = rootClassObject.superclass; + classObject.allocator.prototype = new superclass.allocator; + classObject.method_store.prototype = new superclass.method_store; + classObject.method_dtable = classObject.method_store.prototype; + metaClassObject.method_store.prototype = new superclass.isa.method_store; + metaClassObject.method_dtable = metaClassObject.method_store.prototype; + classObject.super_class = superclass; + metaClassObject.super_class = superclass.isa; + } + else + classObject.allocator.prototype = new objj_object(); + classObject.isa = metaClassObject; + classObject.name = aName; + classObject.info = CLS_CLASS; + classObject.__address = (OBJECT_COUNT++); + metaClassObject.isa = rootClassObject.isa; + metaClassObject.name = aName; + metaClassObject.info = CLS_META; + metaClassObject.__address = (OBJECT_COUNT++); + return classObject; +} +function objj_registerClassPair( aClass) +{ + GLOBAL_NAMESPACE[aClass.name] = aClass; + REGISTERED_CLASSES[aClass.name] = aClass; +} +function class_createInstance( aClass) +{ + if (!aClass) + objj_exception_throw(new objj_exception(OBJJNilClassException, "*** Attempting to create object with Nil class.")); + var object = new aClass.allocator; + object.__address = (OBJECT_COUNT++); + object.isa = aClass; + return object; +} +var prototype_bug = function() { } +prototype_bug.prototype.member = false; +with (new prototype_bug()) + member = true; +if (new prototype_bug().member) +{ +var fast_class_createInstance = class_createInstance; +class_createInstance = function( aClass) +{ + var object = fast_class_createInstance(aClass); + if (object) + { + var theClass = object.isa, + actualClass = theClass; + while (theClass) + { + var ivars = theClass.ivars; + count = ivars.length; + while (count--) + object[ivars[count].name] = NULL; + theClass = theClass.super_class; + } + object.isa = actualClass; + } + return object; +} +} +function object_getClassName( anObject) +{ + if (!anObject) + return ""; + var theClass = anObject.isa; + return theClass ? class_getName(theClass) : ""; +} +function objj_lookUpClass( aName) +{ + var theClass = REGISTERED_CLASSES[aName]; + return theClass ? theClass : Nil; +} +function objj_getClass( aName) +{ + var theClass = REGISTERED_CLASSES[aName]; + if (!theClass) + { + } + return theClass ? theClass : Nil; +} +function objj_getMetaClass( aName) +{ + var theClass = objj_getClass(aName); + return (((theClass.info & (CLS_META))) ? theClass : theClass.isa); +} +function ivar_getName(anIvar) +{ + return anIvar.name; +} +function ivar_getTypeEncoding(anIvar) +{ + return anIvar.type; +} +function objj_msgSend( aReceiver, aSelector) +{ + if (aReceiver == nil) + return nil; + if (!((((aReceiver.isa.info & (CLS_META))) ? aReceiver.isa : aReceiver.isa.isa).info & (CLS_INITIALIZED))) _class_initialize(aReceiver.isa); var method = aReceiver.isa.method_dtable[aSelector]; if (!method) method = _objj_forward; var implementation = method.method_imp;; + switch(arguments.length) + { + case 2: return implementation(aReceiver, aSelector); + case 3: return implementation(aReceiver, aSelector, arguments[2]); + case 4: return implementation(aReceiver, aSelector, arguments[2], arguments[3]); + } + return implementation.apply(aReceiver, arguments); +} +function objj_msgSendSuper( aSuper, aSelector) +{ + var super_class = aSuper.super_class; + arguments[0] = aSuper.receiver; + if (!((((super_class.info & (CLS_META))) ? super_class : super_class.isa).info & (CLS_INITIALIZED))) _class_initialize(super_class); var method = super_class.method_dtable[aSelector]; if (!method) method = _objj_forward; var implementation = method.method_imp;; + return implementation.apply(aSuper.receiver, arguments); +} +function method_getName( aMethod) +{ + return aMethod.name; +} +function method_getImplementation( aMethod) +{ + return aMethod.method_imp; +} +function method_setImplementation( aMethod, anImplementation) +{ + var oldImplementation = aMethod.method_imp; + aMethod.method_imp = anImplementation; + return oldImplementation; +} +function method_exchangeImplementations( lhs, rhs) +{ + var lhs_imp = method_getImplementation(lhs), + rhs_imp = method_getImplementation(rhs); + method_setImplementation(lhs, rhs_imp); + method_setImplementation(rhs, lhs_imp); +} +function sel_getName(aSelector) +{ + return aSelector ? aSelector : ""; +} +function sel_getUid( aName) +{ + return aName; +} +function sel_isEqual( lhs, rhs) +{ + return lhs === rhs; +} +function sel_registerName(aName) +{ + return aName; +} +function objj_dictionary() +{ + this._keys = []; + this.count = 0; + this._buckets = {}; + this.__address = (OBJECT_COUNT++); +} +function dictionary_containsKey(aDictionary, aKey) +{ + return aDictionary._buckets[aKey] != NULL; +} +function dictionary_getCount(aDictionary) +{ + return aDictionary.count; +} +function dictionary_getValue(aDictionary, aKey) +{ + return aDictionary._buckets[aKey]; +} +function dictionary_setValue(aDictionary, aKey, aValue) +{ + if (aDictionary._buckets[aKey] == NULL) + { + aDictionary._keys.push(aKey); + ++aDictionary.count; + } + if ((aDictionary._buckets[aKey] = aValue) == NULL) + --aDictionary.count; +} +function dictionary_removeValue(aDictionary, aKey) +{ + if (aDictionary._buckets[aKey] == NULL) + return; + --aDictionary.count; + if (aDictionary._keys.indexOf) + aDictionary._keys.splice(aDictionary._keys.indexOf(aKey), 1); + else + { + var keys = aDictionary._keys, + index = 0, + count = keys.length; + for (; index < count; ++index) + if (keys[index] == aKey) + { + keys.splice(index, 1); + break; + } + } + delete aDictionary._buckets[aKey]; +} +function dictionary_replaceValue(aDictionary, aKey, aValue) +{ + if (aDictionary[aKey] == NULL) + return; +} +function dictionary_description(aDictionary) +{ + var str = "{ "; + for ( x in aDictionary._buckets) + str += x + ":" + aDictionary._buckets[x] + ","; + str += " }"; + return str; +} +var kCFPropertyListOpenStepFormat = 1, + kCFPropertyListXMLFormat_v1_0 = 100, + kCFPropertyListBinaryFormat_v1_0 = 200, + kCFPropertyList280NorthFormat_v1_0 = -1000; +var OBJJPlistParseException = "OBJJPlistParseException", + OBJJPlistSerializeException = "OBJJPlistSerializeException"; +var kCFPropertyList280NorthMagicNumber = "280NPLIST"; +function objj_data() +{ + this.string = ""; + this._plistObject = NULL; + this.bytes = NULL; + this.base64 = NULL; +} +var objj_markedStream = function(aString) +{ + var index = aString.indexOf(';'); + this._magicNumber = aString.substr(0, index); + this._location = aString.indexOf(';', ++index); + this._version = aString.substring(index, this._location++); + this._string = aString; +} +objj_markedStream.prototype.magicNumber = function() +{ + return this._magicNumber; +} +objj_markedStream.prototype.version = function() +{ + return this._version; +} +objj_markedStream.prototype.getMarker = function() +{ + var string = this._string, + location = this._location; + if (location >= string.length) + return NULL; + var next = string.indexOf(';', location); + if (next < 0) + return NULL; + var marker = string.substring(location, next); + this._location = next + 1; + return marker; +} +objj_markedStream.prototype.getString = function() +{ + var string = this._string, + location = this._location; + if (location >= string.length) + return NULL; + var next = string.indexOf(';', location); + if (next < 0) + return NULL; + var size = parseInt(string.substring(location, next)), + text = string.substr(next + 1, size); + this._location = next + 1 + size; + return text; +} +function CPPropertyListCreateData(aPlistObject, aFormat) +{ + if (aFormat == kCFPropertyListXMLFormat_v1_0) + return CPPropertyListCreateXMLData(aPlistObject); + if (aFormat == kCFPropertyList280NorthFormat_v1_0) + return CPPropertyListCreate280NorthData(aPlistObject); + return NULL; +} +function CPPropertyListCreateFromData(aData, aFormat) +{ + if (!aFormat) + { + if (aData instanceof objj_data) + { + var string = aData.string ? aData.string : objj_msgSend(aData, "string"); + if (string.substr(0, kCFPropertyList280NorthMagicNumber.length) == kCFPropertyList280NorthMagicNumber) + aFormat = kCFPropertyList280NorthFormat_v1_0; + else + aFormat = kCFPropertyListXMLFormat_v1_0; + } + else + aFormat = kCFPropertyListXMLFormat_v1_0; + } + if (aFormat == kCFPropertyListXMLFormat_v1_0) + return CPPropertyListCreateFromXMLData(aData); + if (aFormat == kCFPropertyList280NorthFormat_v1_0) + return CPPropertyListCreateFrom280NorthData(aData); + return NULL; +} +var _CPPropertyListSerializeObject = function(aPlist, serializers) +{ + var type = typeof aPlist, + valueOf = aPlist.valueOf(), + typeValueOf = typeof valueOf; + if (type != typeValueOf) + { + type = typeValueOf; + aPlist = valueOf; + } + if (type == "string") + return serializers["string"](aPlist, serializers); + else if (aPlist === true || aPlist === false) + return serializers["boolean"](aPlist, serializers); + else if (type == "number") + { + var integer = FLOOR(aPlist); + if (integer == aPlist) + return serializers["integer"](aPlist, serializers); + else + return serializers["real"](aPlist, serializers); + } + else if (aPlist.slice) + return serializers["array"](aPlist, serializers); + else + return serializers["dictionary"](aPlist, serializers); +} +var XML_XML = "xml", + XML_DOCUMENT = "#document", + PLIST_PLIST = "plist", + PLIST_KEY = "key", + PLIST_DICTIONARY = "dict", + PLIST_ARRAY = "array", + PLIST_STRING = "string", + PLIST_BOOLEAN_TRUE = "true", + PLIST_BOOLEAN_FALSE = "false", + PLIST_NUMBER_REAL = "real", + PLIST_NUMBER_INTEGER = "integer", + PLIST_DATA = "data"; +var _plist_traverseNextNode = function(anXMLNode, stayWithin, stack) +{ + var node = anXMLNode; + node = (node.firstChild); if (node != NULL && ((node.nodeType) == 8 || (node.nodeType) == 3)) while ((node = (node.nextSibling)) && ((node.nodeType) == 8 || (node.nodeType) == 3)) ;; + if (node) + return node; + if ((String(anXMLNode.nodeName)) == PLIST_ARRAY || (String(anXMLNode.nodeName)) == PLIST_DICTIONARY) + stack.pop(); + else + { + if (node == stayWithin) + return NULL; + node = anXMLNode; + while ((node = (node.nextSibling)) && ((node.nodeType) == 8 || (node.nodeType) == 3)) ;; + if (node) + return node; + } + node = anXMLNode; + while (node) + { + var next = node; + while ((next = (next.nextSibling)) && ((next.nodeType) == 8 || (next.nodeType) == 3)) ;; + if (next) + return next; + var node = (node.parentNode); + if (stayWithin && node == stayWithin) + return NULL; + stack.pop(); + } + return NULL; +} +function CPPropertyListCreateFromXMLData(XMLNodeOrData) +{ + var XMLNode = XMLNodeOrData; + if (XMLNode.string) + { + if (window.ActiveXObject) + { + XMLNode = new ActiveXObject("Microsoft.XMLDOM"); + XMLNode.loadXML(XMLNodeOrData.string.substr(XMLNodeOrData.string.indexOf(".dtd\">") + 6)); + } + else + XMLNode = (new DOMParser().parseFromString(XMLNodeOrData.string, "text/xml").documentElement); + } + while (((String(XMLNode.nodeName)) == XML_DOCUMENT) || ((String(XMLNode.nodeName)) == XML_XML)) + XMLNode = (XMLNode.firstChild); if (XMLNode != NULL && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) while ((XMLNode = (XMLNode.nextSibling)) && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) ;; + if (((XMLNode.nodeType) == 10)) + while ((XMLNode = (XMLNode.nextSibling)) && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) ;; + if (!((String(XMLNode.nodeName)) == PLIST_PLIST)) + return NULL; + var key = "", + object = NULL, + plistObject = NULL, + plistNode = XMLNode, + containers = [], + currentContainer = NULL; + while (XMLNode = _plist_traverseNextNode(XMLNode, plistNode, containers)) + { + var count = containers.length; + if (count) + currentContainer = containers[count - 1]; + if ((String(XMLNode.nodeName)) == PLIST_KEY) + { + key = ((String((XMLNode.firstChild).nodeValue))); + while ((XMLNode = (XMLNode.nextSibling)) && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) ;; + } + switch (String((String(XMLNode.nodeName)))) + { + case PLIST_ARRAY: object = [] + containers.push(object); + break; + case PLIST_DICTIONARY: object = new objj_dictionary(); + containers.push(object); + break; + case PLIST_NUMBER_REAL: object = parseFloat(((String((XMLNode.firstChild).nodeValue)))); + break; + case PLIST_NUMBER_INTEGER: object = parseInt(((String((XMLNode.firstChild).nodeValue)))); + break; + case PLIST_STRING: object = _decodeHTMLComponent((XMLNode.firstChild) ? ((String((XMLNode.firstChild).nodeValue))) : ""); + break; + case PLIST_BOOLEAN_TRUE: object = true; + break; + case PLIST_BOOLEAN_FALSE: object = false; + break; + case PLIST_DATA: object = new objj_data(); + object.bytes = (XMLNode.firstChild) ? base64_decode_to_array(((String((XMLNode.firstChild).nodeValue))), true) : []; + break; + default: objj_exception_throw(new objj_exception(OBJJPlistParseException, "*** " + (String(XMLNode.nodeName)) + " tag not recognized in Plist.")); + } + if (!plistObject) + plistObject = object; + else if (currentContainer) + if (currentContainer.slice) + currentContainer.push(object); + else + { if ((currentContainer)._buckets[key] == NULL) { (currentContainer)._keys.push(key); ++(currentContainer).count; } if (((currentContainer)._buckets[key] = object) == NULL) --(currentContainer).count;}; + } + return plistObject; +} +function CPPropertyListCreateXMLData(aPlist) +{ + var data = new objj_data(); + data.string = ""; + data.string += ""; + data.string += ""; + data.string += ""; + _CPPropertyListAppendXMLData(data, aPlist, ""); + data.string += ""; + return data; +} +var _CPArrayAppendXMLData = function(XMLData, anArray) +{ + var i = 0, + count = anArray.length; + XMLData.string += ""; + for (; i < count; ++i) + _CPPropertyListAppendXMLData(XMLData, anArray[i]); + XMLData.string += ""; +} +var _CPDictionaryAppendXMLData = function(XMLData, aDictionary) +{ + var keys = aDictionary._keys, + i = 0, + count = keys.length; + XMLData.string += ""; + for (; i < count; ++i) + { + XMLData.string += "" + keys[i] + ""; + _CPPropertyListAppendXMLData(XMLData, ((aDictionary)._buckets[keys[i]])); + } + XMLData.string += ""; +} +var _encodeHTMLComponent = function(aString) +{ + return aString.replace('<', "<").replace('>', ">").replace('\"', """).replace('\'', "'").replace('&', "&"); +} +var _decodeHTMLComponent = function(aString) +{ + return aString.replace("<", '<').replace(">", '>').replace(""", '\"').replace("'", '\'').replace("&", '&'); +} +var _CPPropertyListAppendXMLData = function(XMLData, aPlist) +{ + var type = typeof aPlist, + valueOf = aPlist.valueOf(), + typeValueOf = typeof valueOf; + if (type != typeValueOf) + { + type = typeValueOf; + aPlist = valueOf; + } + if (type == "string") + XMLData.string += "" + _encodeHTMLComponent(aPlist) + ""; + else if (aPlist === true) + XMLData.string += ""; + else if (aPlist === false) + XMLData.string += ""; + else if (type == "number") + { + var integer = FLOOR(aPlist); + if (integer == aPlist) + XMLData.string += "" + aPlist + ""; + else + XMLData.string += "" + aPlist + ""; + } + else if (aPlist.slice) + _CPArrayAppendXMLData(XMLData, aPlist); + else if (aPlist._keys) + _CPDictionaryAppendXMLData(XMLData, aPlist); + else + objj_exception_throw(new objj_exception(OBJJPlistSerializeException, "*** unknown plist ("+aPlist+") type: " + type)); +} +var ARRAY_MARKER = "A", + DICTIONARY_MARKER = "D", + FLOAT_MARKER = "f", + INTEGER_MARKER = "d", + STRING_MARKER = "S", + TRUE_MARKER = "T", + FALSE_MARKER = "F", + KEY_MARKER = "K", + END_MARKER = "E"; +function CPPropertyListCreateFrom280NorthData(aData) +{ + var stream = new objj_markedStream(aData.string), + marker = NULL, + key = "", + object = NULL, + plistObject = NULL, + containers = [], + currentContainer = NULL; + while (marker = stream.getMarker()) + { + if (marker === END_MARKER) + { + containers.pop(); + continue; + } + var count = containers.length; + if (count) + currentContainer = containers[count - 1]; + if (marker === KEY_MARKER) + { + key = stream.getString(); + marker = stream.getMarker(); + } + switch (marker) + { + case ARRAY_MARKER: object = [] + containers.push(object); + break; + case DICTIONARY_MARKER: object = new objj_dictionary(); + containers.push(object); + break; + case FLOAT_MARKER: object = parseFloat(stream.getString()); + break; + case INTEGER_MARKER: object = parseInt(stream.getString()); + break; + case STRING_MARKER: object = stream.getString(); + break; + case TRUE_MARKER: object = true; + break; + case FALSE_MARKER: object = false; + break; + default: objj_exception_throw(new objj_exception(OBJJPlistParseException, "*** " + marker + " marker not recognized in Plist.")); + } + if (!plistObject) + plistObject = object; + else if (currentContainer) + if (currentContainer.slice) + currentContainer.push(object); + else + { if ((currentContainer)._buckets[key] == NULL) { (currentContainer)._keys.push(key); ++(currentContainer).count; } if (((currentContainer)._buckets[key] = object) == NULL) --(currentContainer).count;}; + } + return plistObject; +} +function CPPropertyListCreate280NorthData(aPlist) +{ + var data = new objj_data(); + data.string = kCFPropertyList280NorthMagicNumber + ";1.0;" + _CPPropertyListSerializeObject(aPlist, _CPPropertyList280NorthSerializers); + return data; +} +var _CPPropertyList280NorthSerializers = {}; +_CPPropertyList280NorthSerializers["string"] = function(aString) +{ + return STRING_MARKER + ';' + aString.length + ';' + aString; +} +_CPPropertyList280NorthSerializers["boolean"] = function(aBoolean) +{ + return (aBoolean ? TRUE_MARKER : FALSE_MARKER) + ';'; +} +_CPPropertyList280NorthSerializers["integer"] = function(anInteger) +{ + var string = "" + anInteger; + return INTEGER_MARKER + ';' + string.length + ';' + string; +} +_CPPropertyList280NorthSerializers["real"] = function(aFloat) +{ + var string = "" + aFloat; + return FLOAT_MARKER + ';' + string.length + ';' + string; +} +_CPPropertyList280NorthSerializers["array"] = function(anArray, serializers) +{ + var index = 0, + count = anArray.length, + string = ARRAY_MARKER + ';'; + for (; index < count; ++index) + string += _CPPropertyListSerializeObject(anArray[index], serializers); + return string + END_MARKER + ';'; +} +_CPPropertyList280NorthSerializers["dictionary"] = function(aDictionary, serializers) +{ + var keys = aDictionary._keys, + index = 0, + count = keys.length, + string = DICTIONARY_MARKER +';'; + for (; index < count; ++index) + { + var key = keys[index]; + string += KEY_MARKER + ';' + key.length + ';' + key; + string += _CPPropertyListSerializeObject(((aDictionary)._buckets[key]), serializers); + } + return string + END_MARKER + ';'; +} +var OBJJ_PLATFORMS = ["browser", "objj"]; +var OBJJFileNotFoundException = "OBJJFileNotFoundException", + OBJJExecutableNotFoundException = "OBJJExecutableNotFoundException"; +var objj_files = { }, + objj_bundles = { }, + objj_bundlesForClass = { }, + objj_searches = { }; +var OBJJ_NO_FILE = {}; +if (typeof OBJJ_INCLUDE_PATHS === "undefined") + OBJJ_INCLUDE_PATHS = ["Frameworks", "SomethingElse"]; +var OBJJ_BASE_URI = ""; +if (window.opera) { +var DOMBaseElement = document.getElementsByTagName("base")[0]; +if (DOMBaseElement) + OBJJ_BASE_URI = (DOMBaseElement.getAttribute('href')).substr(0, (DOMBaseElement.getAttribute('href')).lastIndexOf('/') + 1); +} +function objj_file() +{ + this.path = NULL; + this.bundle = NULL; + this.included = NO; + this.contents = NULL; + this.fragments = NULL; +} +function objj_bundle() +{ + this.path = NULL; + this.info = NULL; + this.__address = (OBJECT_COUNT++); +} +function objj_getBundleWithPath(aPath) +{ + return objj_bundles[aPath]; +} +function objj_setBundleForPath(aPath, aBundle) +{ + objj_bundles[aPath] = aBundle; +} +function objj_bundleForClass(aClass) +{ + return objj_bundlesForClass[aClass.name]; +} +function objj_addClassForBundle(aClass, aBundle) +{ + objj_bundlesForClass[aClass.name] = aBundle; +} +function objj_request_file(aFilePath, shouldSearchLocally, aCallback) +{ + new objj_search(aFilePath, shouldSearchLocally, aCallback).attemptNextSearchPath(); +} +var objj_search = function(aFilePath, shouldSearchLocally, aCallback) +{ + this.filePath = aFilePath; + this.bundle = NULL; + this.bundleObservers = []; + this.searchPath = NULL; + this.searchedPaths = []; + this.includePathsIndex = shouldSearchLocally ? -1 : 0; + this.searchRequest = NULL; + this.didCompleteCallback = aCallback; +} +objj_search.prototype.nextSearchPath = function() +{ + var path = objj_standardize_path((this.includePathsIndex == -1 ? "" : OBJJ_INCLUDE_PATHS[this.includePathsIndex] + '/') + this.filePath); + ++this.includePathsIndex; + return path; +} +objj_search.prototype.attemptNextSearchPath = function() +{ + var searchPath = this.nextSearchPath(), + file = objj_files[searchPath]; + objj_alert("Will attempt to find " + this.filePath + " at " + searchPath); + if (file) + { + objj_alert("The file request at " + this.filePath + " has already been downloaded at " + searchPath); + if (this.didCompleteCallback) + this.didCompleteCallback(file); + return; + } + var existingSearch = objj_searches[searchPath]; + if (existingSearch) + { + if (this.didCompleteCallback) + existingSearch.didCompleteCallback = this.didCompleteCallback; + return; + } + this.searchedPaths.push(this.searchPath = searchPath); + var infoPath = objj_standardize_path((searchPath).substr(0, (searchPath).lastIndexOf('/') + 1) + "Info.plist"), + bundle = objj_bundles[infoPath]; + if (bundle) + { + this.bundle = bundle; + this.request(searchPath, this.didReceiveSearchResponse); + } + else + { + var existingBundleSearch = objj_searches[infoPath]; + if (existingBundleSearch) + { + --this.includePathsIndex; + this.searchedPaths.pop(); + if (this.searchedPaths.length) + this.searchPath = this.searchedPaths[this.searchedPaths.length - 1]; + else + this.searchPath = NULL; + existingBundleSearch.bundleObservers.push(this); + return; + } + else + { + this.bundleObservers.push(this); + this.request(infoPath, this.didReceiveBundleResponse); + if (!this.searchReplaced) + this.searchRequest = this.request(searchPath, this.didReceiveSearchResponse); + } + } +} +if (window.ActiveXObject) { +objj_search.responseCallbackLock = NO; +objj_search.responseCallbackQueue = []; +objj_search.removeResponseCallbackForFilePath = function(aFilePath) +{ + var queue = objj_search.responseCallbackQueue, + index = queue.length; + while (index--) + if (queue[index][3] == aFilePath) + { + queue.splice(index, 1); + return; + } +} +objj_search.serializeResponseCallback = function(aMethod, aSearch, aResponse, aFilePath) +{ + var queue = objj_search.responseCallbackQueue; + queue.push([aMethod, aSearch, aResponse, aFilePath]); + if (objj_search.responseCallbackLock) + return; + objj_search.responseCallbackLock = YES; + while (queue.length) + { + var callback = queue[0]; + queue.splice(0, 1); + callback[0].apply(callback[1], [callback[2]]); + } + objj_search.responseCallbackLock = NO; +} +} +objj_search.prototype.request = function(aFilePath, aMethod) +{ + var search = this, + isPlist = aFilePath.substr(aFilePath.length - 6, 6) == ".plist", + request = objj_request_xmlhttp(), + response = objj_response_xmlhttp(); + response.filePath = aFilePath; + request.onreadystatechange = function() + { + if (request.readyState == 4) + { + if (response.success = (request.status != 404 && request.responseText && request.responseText.length) ? YES : NO) + { + if (window.files_total) + { + if (!window.files_loaded) + window.files_loaded = 0; + window.files_loaded += request.responseText.length; + if (window.update_progress) + window.update_progress(window.files_loaded / window.files_total); + } + if (isPlist) + response.xml = objj_standardize_xml(request); + else + response.text = request.responseText; + } + if (window.ActiveXObject) + objj_search.serializeResponseCallback(aMethod, search, response, aFilePath); + else + aMethod.apply(search, [response]); + } + } + objj_searches[aFilePath] = this; + if (request.overrideMimeType && isPlist) + request.overrideMimeType('text/xml'); + if (window.opera && aFilePath.charAt(0) != '/') + aFilePath = OBJJ_BASE_URI + aFilePath; + try + { + request.open("GET", aFilePath, YES); + request.send(""); + } + catch (anException) + { + response.success = NO; + if (window.ActiveXObject) + objj_search.serializeResponseCallback(aMethod, search, response, aFilePath); + else + aMethod.apply(search, [response]); + } + return request; +} +objj_search.prototype.didReceiveSearchResponse = function(aResponse) +{ + if (!this.bundle) + { + this.cachedSearchResponse = aResponse; + return; + } + if (aResponse.success) + { + file = new objj_file(); + file.path = aResponse.filePath; + file.bundle = this.bundle + file.contents = aResponse.text; + this.complete(file); + } + else if (this.includePathsIndex < OBJJ_INCLUDE_PATHS.length) + { + this.bundle = NULL; + this.attemptNextSearchPath(); + } + else + objj_exception_throw(new objj_exception(OBJJFileNotFoundException, "*** Could not locate file named \"" + this.filePath + "\" in search paths.")); +} +objj_search.prototype.didReceiveBundleResponse = function(aResponse) +{ + var bundle = new objj_bundle(); + bundle.path = aResponse.filePath; + if (aResponse.success) + bundle.info = CPPropertyListCreateFromXMLData(aResponse.xml); + else + bundle.info = new objj_dictionary(); + objj_bundles[aResponse.filePath] = bundle; + var executablePath = ((bundle.info)._buckets["CPBundleExecutable"]); + if (executablePath) + { + var platform = NULL, + platforms = ((bundle.info)._buckets["CPBundlePlatforms"]), + index = 0, + count = OBJJ_PLATFORMS.length, + innerCount = platforms.length; + for(; index < count; ++index) + { + var innerIndex = 0, + currentPlatform = OBJJ_PLATFORMS[index]; + for (; innerIndex < innerCount; ++innerIndex) + if(currentPlatform === platforms[innerIndex]) + { + platform = currentPlatform; + break; + } + } + executablePath = platform + ".platform/" + executablePath; + this.request((aResponse.filePath).substr(0, (aResponse.filePath).lastIndexOf('/') + 1) + executablePath, this.didReceiveExecutableResponse); + var directory = (aResponse.filePath).substr(0, (aResponse.filePath).lastIndexOf('/') + 1), + replacedFiles = ((bundle.info)._buckets["CPBundleReplacedFiles"]), + index = 0, + count = replacedFiles.length; + for (; index < count; ++index) + { + objj_searches[directory + replacedFiles[index]] = this; + if (directory + replacedFiles[index] == this.searchPath) + { + this.searchReplaced = YES; + if (!this.cachedSearchResponse && this.searchRequest) + this.searchRequest.abort(); + if (window.ActiveXObject) + objj_search.removeResponseCallbackForFilePath(this.searchPath); + } + } + } + this.bundle = bundle; + var observers = this.bundleObservers, + index = 0, + count = observers.length; + for(; index < count; ++index) + { + var observer = observers[index]; + if (observer != this) + observer.attemptNextSearchPath(); + else if (this.cachedSearchResponse && !this.searchReplaced) + this.didReceiveSearchResponse(this.cachedSearchResponse); + } + this.bundleObservers = []; +} +objj_search.prototype.didReceiveExecutableResponse = function(aResponse) +{ + if (!aResponse.success) + objj_exception_throw(new objj_exception(OBJJExecutableNotFoundException, "*** The specified executable could not be located at \"" + this.filePath + "\".")); + var files = objj_decompile(aResponse.text, this.bundle), + index = 0, + count = files.length, + length = this.filePath.length; + for (; index < count; ++index) + { + var file = files[index], + path = file.path; + if (this.filePath == path.substr(path.length - length)) + this.complete(file); + else + objj_files[path] = file; + } +} +objj_search.prototype.complete = function(aFile) +{ + var index = 0, + count = this.searchedPaths.length; + for (; index < count; ++index) + { + objj_files[this.searchedPaths[index]] = aFile; + } + if (this.didCompleteCallback) + this.didCompleteCallback(aFile); +} +function objj_standardize_path(aPath) +{ + if (aPath.indexOf("/./") != -1 && aPath.indexOf("//") != -1 && aPath.indexOf("/../") != -1) + return aPath; + var index = 0, + components = aPath.split('/'); + for(;index < components.length; ++index) + if(components[index] == "..") + { + components.splice(index - 1, 2); + index -= 2; + } + else if(index != 0 && !components[index].length || components[index] == '.' || components[index] == "..") + components.splice(index--, 1); + return components.join('/'); +} +if (window.ActiveXObject) { +var objj_standardize_xml = function(aRequest) +{ + var XMLData = new ActiveXObject("Microsoft.XMLDOM"); + XMLData.loadXML(aRequest.responseText.substr(aRequest.responseText.indexOf(".dtd\">") + 6)); + return XMLData; +} +} else { +var objj_standardize_xml = function(aRequest) +{ + return aRequest.responseXML; +} +} +function objj_response_xmlhttp() +{ + return new Object; +} +if (window.XMLHttpRequest) { +var objj_request_xmlhttp = function() +{ + return new XMLHttpRequest(); +} +} else if (window.ActiveXObject) { +var MSXML_XMLHTTP_OBJECTS = [ "Microsoft.XMLHTTP", "Msxml2.XMLHTTP", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP.6.0" ], + index = MSXML_XMLHTTP_OBJECTS.length; +while (index--) +{ + try + { + new ActiveXObject(MSXML_XMLHTTP_OBJECTS[index]); + break; + } + catch (anException) + { + } +} +var MSXML_XMLHTTP = MSXML_XMLHTTP_OBJECTS[index]; +delete index; +delete MSXML_XMLHTTP_OBJECTS; +var objj_request_xmlhttp = function() +{ + return new ActiveXObject(MSXML_XMLHTTP); +} +} +var OBJJUnrecognizedFormatException = "OBJJUnrecognizedFormatException"; +var STATIC_MAGIC_NUMBER = "@STATIC", + MARKER_PATH = "p", + MARKER_CODE = "c", + MARKER_BUNDLE = "b", + MARKER_TEXT = "t", + MARKER_IMPORT_STD = 'I', + MARKER_IMPORT_LOCAL = 'i'; +var STATIC_EXTENSION = "sj"; +function objj_decompile(aString, bundle) +{ + var stream = new objj_markedStream(aString); + if (stream.magicNumber() != STATIC_MAGIC_NUMBER) + objj_exception_throw(new objj_exception(OBJJUnrecognizedFormatException, "*** Could not recognize executable code format.")); + if (stream.version() != 1.0) + objj_exception_throw(new objj_exception(OBJJUnrecognizedFormatException, "*** Could not recognize executable code format.")); + var file = NULL, + files = [], + marker; + while (marker = stream.getMarker()) + { + var text = stream.getString(); + switch (marker) + { + case MARKER_PATH: if (file && file.contents && file.path === file.bundle.path) + file.bundle.info = CPPropertyListCreateWithData({string:file.contents}); + file = new objj_file(); + file.path = (bundle.path).substr(0, (bundle.path).lastIndexOf('/') + 1) + text; + file.bundle = bundle; + file.fragments = []; + files.push(file); + objj_files[file.path] = file; + break; + case MARKER_BUNDLE: var bundlePath = (bundle.path).substr(0, (bundle.path).lastIndexOf('/') + 1) + '/' + text; + file.bundle = objj_getBundleWithPath(bundlePath); + if (!file.bundle) + { + file.bundle = new objj_bundle(); + file.bundle.path = bundlePath; + objj_setBundleForPath(file.bundle, bundlePath); + } + break; + case MARKER_TEXT: file.contents = text; + break; + case MARKER_CODE: file.fragments.push(fragment_create_code(text, bundle, file)); + break; + case MARKER_IMPORT_STD: file.fragments.push(fragment_create_file(text, bundle, NO, file)); + break; + case MARKER_IMPORT_LOCAL: file.fragments.push(fragment_create_file(text, bundle, YES, file)); + break; + } + } + if (file && file.contents && file.path === file.bundle.path) + file.bundle.info = CPPropertyListCreateWithData({string:file.contents}); + return files; +} +var OBJJ_EXCEPTION_OUTPUT_STREAM = NULL; +function objj_exception(aName, aReason, aUserInfo) +{ + this.name = aName; + this.reason = aReason; + this.userInfo = aUserInfo; + this.__address = (OBJECT_COUNT++); +} +objj_exception.prototype.toString = function() +{ + return this.reason; +} +function objj_exception_throw(anException) +{ + throw anException; +} +function objj_exception_report(anException, aSourceFile) +{ + objj_fprintf(OBJJ_EXCEPTION_OUTPUT_STREAM, aSourceFile.path + "\n" + anException); + throw anException; +} +function objj_exception_setOutputStream(aStream) +{ + OBJJ_EXCEPTION_OUTPUT_STREAM = aStream; +} +objj_exception_setOutputStream(function(aString) { }); +var OBJJ_PREPROCESSOR_DEBUG_SYMBOLS = 1 << 0; +function objj_preprocess( aString, aBundle, aSourceFile, flags) +{ + try + { + return new objj_preprocessor(aString.replace(/^#[^\n]+\n/, "\n"), aSourceFile, aBundle, flags).fragments(); + } + catch (anException) + { + objj_exception_report(anException, aSourceFile); + } + return []; +} +var OBJJParseException = "OBJJParseException", + OBJJClassNotFoundException = "OBJJClassNotFoundException"; +var TOKEN_ACCESSORS = "accessors", + TOKEN_CLASS = "class", + TOKEN_END = "end", + TOKEN_FUNCTION = "function", + TOKEN_IMPLEMENTATION = "implementation", + TOKEN_IMPORT = "import", + TOKEN_NEW = "new", + TOKEN_SELECTOR = "selector", + TOKEN_SUPER = "super", + TOKEN_EQUAL = '=', + TOKEN_PLUS = '+', + TOKEN_MINUS = '-', + TOKEN_COLON = ':', + TOKEN_COMMA = ',', + TOKEN_PERIOD = '.', + TOKEN_ASTERISK = '*', + TOKEN_SEMICOLON = ';', + TOKEN_LESS_THAN = '<', + TOKEN_OPEN_BRACE = '{', + TOKEN_CLOSE_BRACE = '}', + TOKEN_GREATER_THAN = '>', + TOKEN_OPEN_BRACKET = '[', + TOKEN_DOUBLE_QUOTE = '"', + TOKEN_PREPROCESSOR = '@', + TOKEN_CLOSE_BRACKET = ']', + TOKEN_QUESTION_MARK = '?', + TOKEN_OPEN_PARENTHESIS = '(', + TOKEN_CLOSE_PARENTHESIS = ')', + TOKEN_WHITESPACE = /^(?:(?:\s+$)|(?:\/(?:\/|\*)))/, + TOKEN_NUMBER = /^[+-]?\d+(([.]\d+)*([eE][+-]?\d+))?$/, + TOKEN_IDENTIFIER = /^[a-zA-Z_$](\w|$)*$/; +var SUPER_CLASSES = new objj_dictionary(); +var OBJJ_CURRENT_BUNDLE = NULL; +var objj_lexer = function(aString) +{ + this._index = -1; + this._tokens = (aString + '\n').match(/\/\/.*(\r|\n)?|\/\*(?:.|\n|\r)*?\*\/|\w+\b|[+-]?\d+(([.]\d+)*([eE][+-]?\d+))?|"[^"\\]*(\\[\s\S][^"\\]*)*"|'[^'\\]*(\\[\s\S][^'\\]*)*'|\s+|./g); + this._context = []; + return this; +} +objj_lexer.prototype.push = function() +{ + this._context.push(this._index); +} +objj_lexer.prototype.pop = function() +{ + this._index = this._context.pop(); +} +objj_lexer.prototype.peak = function(shouldSkipWhitespace) +{ + if (shouldSkipWhitespace) + { + this.push(); + var token = this.skip_whitespace(); + this.pop(); + return token; + } + return this._tokens[this._index + 1]; +} +objj_lexer.prototype.next = function() +{ + return this._tokens[++this._index]; +} +objj_lexer.prototype.previous = function() +{ + return this._tokens[--this._index]; +} +objj_lexer.prototype.last = function() +{ + if (this._index < 0) + return NULL; + return this._tokens[this._index - 1]; +} +objj_lexer.prototype.skip_whitespace= function(shouldMoveBackwards) +{ + var token; + if (shouldMoveBackwards) + while((token = this.previous()) && TOKEN_WHITESPACE.test(token)) ; + else + while((token = this.next()) && TOKEN_WHITESPACE.test(token)) ; + return token; +} +var objj_stringBuffer = function() +{ + this.atoms = []; +} +objj_stringBuffer.prototype.toString = function() +{ + return this.atoms.join(""); +} +objj_stringBuffer.prototype.clear = function() +{ + this.atoms = []; +} +objj_stringBuffer.prototype.isEmpty = function() +{ + return (this.atoms.length === 0); +} +var objj_preprocessor = function(aString, aSourceFile, aBundle, flags) +{ + this._currentClass = ""; + this._currentSuperClass = ""; + this._file = aSourceFile; + this._fragments = []; + this._preprocessed = new objj_stringBuffer(); + this._tokens = new objj_lexer(aString); + this._flags = flags; + this._bundle = aBundle; + this.preprocess(this._tokens, this._preprocessed); + this.fragment(); +} +objj_preprocessor.prototype.fragments = function() +{ + return this._fragments; +} +objj_preprocessor.prototype.accessors = function(tokens) +{ + var token = tokens.skip_whitespace(), + attributes = {}; + if (token != TOKEN_OPEN_PARENTHESIS) + { + tokens.previous(); + return attributes; + } + while ((token = tokens.skip_whitespace()) != TOKEN_CLOSE_PARENTHESIS) + { + var name = token, + value = true; + if (!/^\w+$/.test(name)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** @property attribute name not valid.")); + if ((token = tokens.skip_whitespace()) == TOKEN_EQUAL) + { + value = tokens.skip_whitespace(); + if (!/^\w+$/.test(value)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** @property attribute value not valid.")); + if (name == "setter") + { + if ((token = tokens.next()) != TOKEN_COLON) + objj_exception_throw(new objj_exception(OBJJParseException, "*** @property setter attribute requires argument with \":\" at end of selector name.")); + value += ":"; + } + token = tokens.skip_whitespace(); + } + attributes[name] = value; + if (token == TOKEN_CLOSE_PARENTHESIS) + break; + if (token != TOKEN_COMMA) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected ',' or ')' in @property attribute list.")); + } + return attributes; +} +objj_preprocessor.prototype.brackets = function( tokens, aStringBuffer) +{ + var tuples = []; + while (this.preprocess(tokens, NULL, NULL, NULL, tuples[tuples.length] = [])) ; + if (tuples[0].length === 1) + { + aStringBuffer.atoms[aStringBuffer.atoms.length] = '['; + aStringBuffer.atoms[aStringBuffer.atoms.length] = tuples[0][0]; + aStringBuffer.atoms[aStringBuffer.atoms.length] = ']'; + } + else + { + var selector = new objj_stringBuffer(); + if (tuples[0][0].atoms[0] == TOKEN_SUPER) + { + aStringBuffer.atoms[aStringBuffer.atoms.length] = "objj_msgSendSuper("; + aStringBuffer.atoms[aStringBuffer.atoms.length] = "{ receiver:self, super_class:" + this._currentSuperClass + " }"; + } + else + { + aStringBuffer.atoms[aStringBuffer.atoms.length] = "objj_msgSend("; + aStringBuffer.atoms[aStringBuffer.atoms.length] = tuples[0][0]; + } + selector.atoms[selector.atoms.length] = tuples[0][1]; + var index = 1, + count = tuples.length, + marg_list = new objj_stringBuffer(); + for(; index < count; ++index) + { + var pair = tuples[index]; + selector.atoms[selector.atoms.length] = pair[1] + marg_list.atoms[marg_list.atoms.length] = ", " + pair[0]; + } + aStringBuffer.atoms[aStringBuffer.atoms.length] = ", \""; + aStringBuffer.atoms[aStringBuffer.atoms.length] = selector; + aStringBuffer.atoms[aStringBuffer.atoms.length] = '\"'; + aStringBuffer.atoms[aStringBuffer.atoms.length] = marg_list; + aStringBuffer.atoms[aStringBuffer.atoms.length] = ')'; + } +} +objj_preprocessor.prototype.directive = function(tokens, aStringBuffer, allowedDirectivesFlags) +{ + var buffer = aStringBuffer ? aStringBuffer : new objj_stringBuffer(), + token = tokens.next(); + if (token.charAt(0) == TOKEN_DOUBLE_QUOTE) + buffer.atoms[buffer.atoms.length] = token; + else if (token == TOKEN_CLASS) + { + tokens.skip_whitespace(); + return; + } + else if (token == TOKEN_IMPLEMENTATION) + this.implementation(tokens, buffer); + else if (token == TOKEN_IMPORT) + this._import(tokens); + else if (token == TOKEN_SELECTOR) + this.selector(tokens, buffer); + else if (token == TOKEN_ACCESSORS) + return this.accessors(tokens); + if (!aStringBuffer) + return buffer; +} +objj_preprocessor.prototype.fragment = function() +{ + var preprocessed = this._preprocessed.toString(); + if ((/[^\s]/).test(preprocessed)) + this._fragments.push(fragment_create_code(preprocessed, this._bundle, this._file)); + this._preprocessed.clear(); +} +objj_preprocessor.prototype.implementation = function(tokens, aStringBuffer) +{ + var buffer = aStringBuffer, + token = "", + category = NO, + class_name = tokens.skip_whitespace(), + superclass_name = "Nil", + instance_methods = new objj_stringBuffer(), + class_methods = new objj_stringBuffer(); + if (!(/^\w/).test(class_name)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected class name, found \"" + class_name + "\".")); + this._currentSuperClass = NULL; + this._currentClass = class_name; + if((token = tokens.skip_whitespace()) == TOKEN_OPEN_PARENTHESIS) + { + token = tokens.skip_whitespace(); + if (token == TOKEN_CLOSE_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Can't Have Empty Category Name for class \"" + class_name + "\".")); + if (tokens.skip_whitespace() != TOKEN_CLOSE_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Improper Category Definition for class \"" + class_name + "\".")); + buffer.atoms[buffer.atoms.length] = "{\nvar the_class = objj_getClass(\"" + class_name + "\")\n"; + buffer.atoms[buffer.atoms.length] = "if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, \"*** Could not find definition for class \\\"" + class_name + "\\\"\"));\n"; + buffer.atoms[buffer.atoms.length] = "var meta_class = the_class.isa;"; + var superclass_name = ((SUPER_CLASSES)._buckets[class_name]); + if (!superclass_name) + this._currentSuperClass = "objj_getClass(\"" + class_name + "\").super_class"; + else + this._currentSuperClass = "objj_getClass(\"" + superclass_name + "\")"; + } + else + { + if(token == TOKEN_COLON) + { + token = tokens.skip_whitespace(); + if (!TOKEN_IDENTIFIER.test(token)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected class name, found \"" + token + "\".")); + superclass_name = token; + this._currentSuperClass = "objj_getClass(\"" + superclass_name + "\")"; + { if ((SUPER_CLASSES)._buckets[class_name] == NULL) { (SUPER_CLASSES)._keys.push(class_name); ++(SUPER_CLASSES).count; } if (((SUPER_CLASSES)._buckets[class_name] = superclass_name) == NULL) --(SUPER_CLASSES).count;}; + token = tokens.skip_whitespace(); + } + buffer.atoms[buffer.atoms.length] = "{var the_class = objj_allocateClassPair(" + superclass_name + ", \"" + class_name + "\"),\nmeta_class = the_class.isa;"; + if (token == TOKEN_OPEN_BRACE) + { + var ivar_count = 0, + declaration = [], + attributes, + accessors = {}; + while((token = tokens.skip_whitespace()) && token != TOKEN_CLOSE_BRACE) + { + if (token == TOKEN_PREPROCESSOR) + attributes = this.directive(tokens); + else if (token == TOKEN_SEMICOLON) + { + if (ivar_count++ == 0) + buffer.atoms[buffer.atoms.length] = "class_addIvars(the_class, ["; + else + buffer.atoms[buffer.atoms.length] = ", "; + var name = declaration[declaration.length - 1]; + buffer.atoms[buffer.atoms.length] = "new objj_ivar(\"" + name + "\")"; + declaration = []; + if (attributes) + { + accessors[name] = attributes; + attributes = NULL; + } + } + else + declaration.push(token); + } + if (declaration.length) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected ';' in ivar declaration, found '}'.")); + if (ivar_count) + buffer.atoms[buffer.atoms.length] = "]);\n"; + if (!token) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected '}'")); + for (ivar_name in accessors) + { + var accessor = accessors[ivar_name], + property = accessor["property"] || ivar_name; + var getterName = accessor["getter"] || property, + getterCode = "(id)" + getterName + "\n{\nreturn " + ivar_name + ";\n}"; + if (instance_methods.atoms.length !== 0) + instance_methods.atoms[instance_methods.atoms.length] = ",\n"; + instance_methods.atoms[instance_methods.atoms.length] = this.method(new objj_lexer(getterCode)); + if (accessor["readonly"]) + continue; + var setterName = accessor["setter"]; + if (!setterName) + { + var start = property.charAt(0) == '_' ? 1 : 0; + setterName = (start ? "_" : "") + "set" + property.substr(start, 1).toUpperCase() + property.substring(start + 1) + ":"; + } + var setterCode = "(void)" + setterName + "(id)newValue\n{\n"; + if (accessor["copy"]) + setterCode += "if (" + ivar_name + " !== newValue)\n" + ivar_name + " = [newValue copy];\n}"; + else + setterCode += ivar_name + " = newValue;\n}"; + if (instance_methods.atoms.length !== 0) + instance_methods.atoms[instance_methods.atoms.length] = ",\n"; + instance_methods.atoms[instance_methods.atoms.length] = this.method(new objj_lexer(setterCode)); + } + } + else + tokens.previous(); + buffer.atoms[buffer.atoms.length] = "objj_registerClassPair(the_class);\n"; + buffer.atoms[buffer.atoms.length] = "objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path));\n"; + } + while ((token = tokens.skip_whitespace())) + { + if (token == TOKEN_PLUS) + { + if (class_methods.atoms.length !== 0) + class_methods.atoms[class_methods.atoms.length] = ", "; + class_methods.atoms[class_methods.atoms.length] = this.method(tokens); + } + else if (token == TOKEN_MINUS) + { + if (instance_methods.atoms.length !== 0) + instance_methods.atoms[instance_methods.atoms.length] = ", "; + instance_methods.atoms[instance_methods.atoms.length] = this.method(tokens); + } + else if (token == TOKEN_PREPROCESSOR) + { + if ((token = tokens.next()) == TOKEN_END) + break; + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected \"@end\", found \"@" + token + "\".")); + } + } + if (instance_methods.atoms.length !== 0) + { + buffer.atoms[buffer.atoms.length] = "class_addMethods(the_class, ["; + buffer.atoms[buffer.atoms.length] = instance_methods; + buffer.atoms[buffer.atoms.length] = "]);\n"; + } + if (class_methods.atoms.length !== 0) + { + buffer.atoms[buffer.atoms.length] = "class_addMethods(meta_class, ["; + buffer.atoms[buffer.atoms.length] = class_methods; + buffer.atoms[buffer.atoms.length] = "]);\n"; + } + buffer.atoms[buffer.atoms.length] = '}'; +} +objj_preprocessor.prototype._import = function(tokens) +{ + this.fragment(); + var path = "", + token = tokens.skip_whitespace(), + isLocal = (token != TOKEN_LESS_THAN); + if (token == TOKEN_LESS_THAN) + { + while((token = tokens.next()) && token != TOKEN_GREATER_THAN) + path += token; + if(!token) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Unterminated import statement.")); + } + else if (token.charAt(0) == TOKEN_DOUBLE_QUOTE) + path = token.substr(1, token.length - 2); + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expecting '<' or '\"', found \"" + token + "\".")); + this._fragments.push(fragment_create_file(path, NULL, isLocal, this._file)); +} +objj_preprocessor.prototype.method = function(tokens) +{ + var buffer = new objj_stringBuffer(), + token, + selector = "", + parameters = []; + while((token = tokens.skip_whitespace()) && token != TOKEN_OPEN_BRACE) + { + if (token == TOKEN_COLON) + { + selector += token; + token = tokens.skip_whitespace(); + if (token == TOKEN_OPEN_PARENTHESIS) + { + while((token = tokens.skip_whitespace()) && token != TOKEN_CLOSE_PARENTHESIS) ; + token = tokens.skip_whitespace(); + } + parameters[parameters.length] = token; + } + else if (token == TOKEN_OPEN_PARENTHESIS) + while((token = tokens.skip_whitespace()) && token != TOKEN_CLOSE_PARENTHESIS) ; + else if (token == TOKEN_COMMA) + { + if ((token = tokens.skip_whitespace()) != TOKEN_PERIOD || tokens.next() != TOKEN_PERIOD || tokens.next() != TOKEN_PERIOD) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Argument list expected after ','.")); + } + else + selector += token; + } + var index = 0, + count = parameters.length; + buffer.atoms[buffer.atoms.length] = "new objj_method(sel_getUid(\""; + buffer.atoms[buffer.atoms.length] = selector; + buffer.atoms[buffer.atoms.length] = "\"), function"; + if (this._flags & OBJJ_PREPROCESSOR_DEBUG_SYMBOLS) + buffer.atoms[buffer.atoms.length] = " $" + this._currentClass + "__" + selector.replace(/:/g, "_"); + buffer.atoms[buffer.atoms.length] = "(self, _cmd"; + for(; index < count; ++index) + { + buffer.atoms[buffer.atoms.length] = ", "; + buffer.atoms[buffer.atoms.length] = parameters[index]; + } + buffer.atoms[buffer.atoms.length] = ")\n{ with(self)\n{"; + buffer.atoms[buffer.atoms.length] = this.preprocess(tokens, NULL, TOKEN_CLOSE_BRACE, TOKEN_OPEN_BRACE); + buffer.atoms[buffer.atoms.length] = "}\n})"; + return buffer; +} +objj_preprocessor.prototype.preprocess = function(tokens, aStringBuffer, terminator, instigator, tuple) +{ + var buffer = aStringBuffer ? aStringBuffer : new objj_stringBuffer(), + count = 0, + token = ""; + if (tuple) + { + tuple[0] = buffer; + var bracket = false, + closures = [0, 0, 0]; + } + while ((token = tokens.next()) && ((token != terminator) || count)) + { + if (tuple) + { + if (token === TOKEN_QUESTION_MARK) + ++closures[2]; + else if (token === TOKEN_OPEN_BRACE) + ++closures[0]; + else if (token === TOKEN_CLOSE_BRACE) + --closures[0]; + else if (token === TOKEN_OPEN_PARENTHESIS) + ++closures[1]; + else if (token === TOKEN_CLOSE_PARENTHESIS) + --closures[1]; + else if ((token === TOKEN_COLON && closures[2]-- === 0 || + (bracket = (token === TOKEN_CLOSE_BRACKET))) && + closures[0] === 0 && closures[1] === 0) + { + tokens.push(); + var label = bracket ? tokens.skip_whitespace(true) : tokens.previous(), + isEmptyLabel = TOKEN_WHITESPACE.test(label); + if (isEmptyLabel || TOKEN_IDENTIFIER.test(label) && TOKEN_WHITESPACE.test(tokens.previous())) + { + tokens.push(); + var last = tokens.skip_whitespace(true), + operatorCheck = true, + isDoubleOperator = false; + if (last === '+' || last === '-'){ + if (tokens.previous() !== last) + operatorCheck = false; + else + { + last = tokens.skip_whitespace(true); + isDoubleOperator = true; + }} + tokens.pop(); + tokens.pop(); + if (operatorCheck && ( + (!isDoubleOperator && (last === TOKEN_CLOSE_BRACE)) || + last === TOKEN_CLOSE_PARENTHESIS || last === TOKEN_CLOSE_BRACKET || + last === TOKEN_PERIOD || TOKEN_NUMBER.test(last) || + last.charAt(last.length - 1) === '\"' || last.charAt(last.length - 1) === '\'' || + TOKEN_IDENTIFIER.test(last) && !/^(new|return|case|var)$/.test(last))) + { + if (isEmptyLabel) + tuple[1] = ':'; + else + { + tuple[1] = label; + if (!bracket) + tuple[1] += ':'; + var count = buffer.atoms.length; + while (buffer.atoms[count--] !== label) ; + buffer.atoms.length = count; + } + return !bracket; + } + if (bracket) + return NO; + } + tokens.pop(); + if (bracket) + return NO; + } + closures[2] = MAX(closures[2], 0); + } + if (instigator) + { + if (token == instigator) + ++count; + else if (token == terminator) + --count; + } + if(token == TOKEN_IMPORT) + { + objj_fprintf(warning_stream, this._file.path + ": import keyword is deprecated, use @import instead."); + this._import(tokens); + } + else if (token === TOKEN_FUNCTION) + { + var accumulator = ""; + while((token = tokens.next()) && token != TOKEN_OPEN_PARENTHESIS && !(/^\w/).test(token)) + accumulator += token; + if (token === TOKEN_OPEN_PARENTHESIS) + { + buffer.atoms[buffer.atoms.length] = "function" + accumulator + '('; + if (tuple) + ++closures[1]; + } + else + { + buffer.atoms[buffer.atoms.length] = token + "= function"; + } + } + else if (token == TOKEN_PREPROCESSOR) + this.directive(tokens, buffer); + else if (token == TOKEN_OPEN_BRACKET) + this.brackets(tokens, buffer); + else + buffer.atoms[buffer.atoms.length] = token; + } + if (tuple) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected ']' - Unterminated message send or array.")); + if (!aStringBuffer) + return buffer; +} +objj_preprocessor.prototype.selector = function(tokens, aStringBuffer) +{ + var buffer = aStringBuffer ? aStringBuffer : new objj_stringBuffer(); + buffer.atoms[buffer.atoms.length] = "sel_getUid(\""; + if (tokens.skip_whitespace() != TOKEN_OPEN_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected '('")); + var selector = tokens.skip_whitespace(); + if (selector == TOKEN_CLOSE_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Unexpected ')', can't have empty @selector()")); + aStringBuffer.atoms[aStringBuffer.atoms.length] = selector; + var token, + starting = true; + while ((token = tokens.next()) && token != TOKEN_CLOSE_PARENTHESIS) + { + if (starting && /^\d+$/.test(token) || !(/^(\w|$|\:)/.test(token))) + { + if (!(/\S/).test(token)) + if (tokens.skip_whitespace() == TOKEN_CLOSE_PARENTHESIS) + break; + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Unexpected whitespace in @selector().")); + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Illegal character '" + token + "' in @selector().")); + } + buffer.atoms[buffer.atoms.length] = token; + starting = (token == TOKEN_COLON); + } + buffer.atoms[buffer.atoms.length] = "\")"; + if (!aStringBuffer) + return buffer; +} +var objj_included_files = { }; +var FRAGMENT_CODE = 1, + FRAGMENT_FILE = 1 << 2, + FRAGMENT_LOCAL = 1 << 3; +function objj_fragment() +{ + this.info = NULL; + this.type = 0; + this.context = NULL; + this.bundle = NULL; + this.file = NULL; +} +function objj_context() +{ + this.fragments = []; + this.scheduled = NO; + this.blocked = NO; +} +objj_fragment.prototype.toMarkedString = function() +{ + return (this.type & FRAGMENT_FILE) ? ((this.type & FRAGMENT_LOCAL) ? MARKER_IMPORT_LOCAL : MARKER_IMPORT_STD) + ';' + this.info.length + ';' + this.info : + MARKER_CODE + ';' + this.info.length + ';' + this.info; +} +function fragment_create_code(aCode, aBundle, aFile) +{ + var fragment = new objj_fragment(); + fragment.type = (FRAGMENT_CODE); + fragment.info = (aCode); + fragment.bundle = aBundle; + fragment.file = aFile; + return fragment; +} +function fragment_create_file(aPath, aBundle, isLocal, aFile) +{ + var fragment = new objj_fragment(); + fragment.type = (FRAGMENT_FILE | (FRAGMENT_LOCAL * isLocal)); + fragment.info = aPath; + fragment.bundle = aBundle; + fragment.file = aFile; + return fragment; +} +objj_context.prototype.evaluate = function() +{ + this.scheduled = NO; + if (this.blocked) + return this.schedule(); + var sleep = NO, + start = new Date(), + fragments = this.fragments; + while (!sleep && fragments.length) + { + var fragment = fragments.pop(); + if ((fragment.type & FRAGMENT_FILE)) + sleep = fragment_evaluate_file(fragment); + else + sleep = fragment_evaluate_code(fragment); + sleep = sleep || ((new Date() - start) > 3000); + } + if (sleep) + this.schedule(); + else if (this.didCompleteCallback) + this.didCompleteCallback(this); +} +objj_context.prototype.schedule = function() +{ + if (this.scheduled) + return; + this.scheduled = YES; + var context = this; + window.setNativeTimeout(function () { context.evaluate(); }, 0); +} +objj_context.prototype.pushFragment = function(aFragment) +{ + aFragment.context = this; + this.fragments.push(aFragment); +} +function fragment_evaluate_code(aFragment) +{ + var compiled; + OBJJ_CURRENT_BUNDLE = aFragment.bundle; + try + { + compiled = new Function(aFragment.info); + compiled.displayName = aFragment.file.path; + } + catch(anException) + { + objj_exception_report(anException, aFragment.file); + } + try + { + compiled(); + } + catch(anException) + { + objj_exception_report(anException, aFragment.file); + } + return NO; +} +function fragment_evaluate_file(aFragment) +{ + var context = aFragment.context, + requiresSleep = YES; + context.blocked = YES; + objj_request_file(aFragment.info, (aFragment.type & FRAGMENT_LOCAL), function(aFile) + { + requiresSleep = NO; + context.blocked = NO; + if (aFile == OBJJ_NO_FILE) + objj_alert("uh oh!"); + if (objj_included_files[aFile.path]) + return; + objj_included_files[aFile.path] = YES; + if (!aFile.fragments) + aFile.fragments = objj_preprocess(aFile.contents, aFile.bundle, aFile, OBJJ_PREPROCESSOR_DEBUG_SYMBOLS); + var fragments = aFile.fragments, + count = fragments.length, + directory = aFile.path.substr(0, aFile.path.lastIndexOf('/') + 1); + while (count--) + { + var fragment = fragments[count]; + if ((fragment.type & FRAGMENT_FILE)) + { + if ((fragment.type & FRAGMENT_LOCAL)) + fragment.info = directory + fragment.info; + objj_request_file(fragment.info, (fragment.type & FRAGMENT_LOCAL), NULL); + } + context.pushFragment(fragment); + } + }); + return requiresSleep; +} +function objj_import( pathOrPaths, isLocal, didCompleteCallback) +{ + var context = new objj_context(), + paths = pathOrPaths; + if (typeof paths === "string") + paths = [paths]; + var index = 0, + count = paths.length; + for (; index < count; ++index) + context.pushFragment(fragment_create_file(paths[index], new objj_bundle(""), isLocal, NULL)); + context.didCompleteCallback = didCompleteCallback; + context.evaluate(); +} +function objj_backtrace_format(aReceiver, aSelector) +{ + return "[<" + (((aReceiver.info & (CLS_META))) ? aReceiver : aReceiver.isa).name + " " + (typeof sprintf == "function" ? sprintf("%#08x", aReceiver.__address) : aReceiver.__address.toString(16)) + "> " + aSelector + "]"; +} +function objj_msgSend_Backtrace( aReceiver, aSelector) +{ + if (aReceiver == nil) + return nil; + objj_debug_backtrace.push(objj_backtrace_format(aReceiver, aSelector)); + try + { + var result = class_getMethodImplementation(aReceiver.isa, aSelector).apply(aReceiver, arguments); + } + catch (anException) + { + CPLog.error("Exception " + anException + " in " + objj_backtrace_format(aReceiver, aSelector)); + objj_debug_print_backtrace(); + } + objj_debug_backtrace.pop(); + return result; +} +function objj_msgSendSuper_Backtrace( aSuper, aSelector) +{ + objj_debug_backtrace.push(objj_backtrace_format(aSuper.receiver, aSelector)); + var super_class = aSuper.super_class; + arguments[0] = aSuper.receiver; + try + { + var result = class_getMethodImplementation(super_class, aSelector).apply(aSuper.receiver, arguments); + } + catch (anException) + { + CPLog.error("Exception " + anException + " in " + objj_backtrace_format(aSuper.receiver, aSelector)); + objj_debug_print_backtrace(); + } + objj_debug_backtrace.pop(); + return result; +} +function objj_msgSend_Profile( aReceiver, aSelector) +{ + if (aReceiver == nil) + return nil; + var profileRecord = { + parent : objj_debug_profile, + receiver : (((aReceiver.info & (CLS_META))) ? aReceiver : aReceiver.isa).name, + selector : aSelector, + calls : [] + } + objj_debug_profile.calls.push(profileRecord); + objj_debug_profile = profileRecord; + profileRecord.start = new Date(); + var result = class_getMethodImplementation(aReceiver.isa, aSelector).apply(aReceiver, arguments); + profileRecord.end = new Date(); + objj_debug_profile = profileRecord.parent; + return result; +} +function objj_msgSendSuper_Profile( aSuper, aSelector) +{ + var profileRecord = { + parent : objj_debug_profile, + receiver : (((aReceiver.info & (CLS_META))) ? aReceiver : aReceiver.isa).name, + selector : aSelector, + calls : [] + } + objj_debug_profile.calls.push(profileRecord); + objj_debug_profile = profileRecord; + profileRecord.start = new Date(); + var super_class = aSuper.super_class; + arguments[0] = aSuper.receiver; + var result = class_getMethodImplementation(super_class, aSelector).apply(aSuper.receiver, arguments); + profileRecord.end = new Date(); + objj_debug_profile = profileRecord.parent; + return result; +} +var objj_msgSend_Standard = objj_msgSend, + objj_msgSendSuper_Standard = objj_msgSendSuper; +var objj_debug_backtrace; +function objj_backtrace_set_enabled(enabled) +{ + if (enabled) + { + objj_debug_backtrace = []; + objj_msgSend = objj_msgSend_Backtrace; + objj_msgSendSuper = objj_msgSendSuper_Backtrace; + } + else + { + objj_msgSend = objj_msgSend_Standard; + objj_msgSendSuper = objj_msgSendSuper_Standard; + } +} +function objj_debug_print_backtrace() +{ + print(objj_debug_backtrace_string()); +} +function objj_debug_backtrace_string() +{ + return objj_debug_backtrace ? objj_debug_backtrace.join("\n") : ""; +} +var objj_debug_profile = null, + objj_currently_profiling = false, + objj_profile_cleanup; +function objj_profile(title) +{ + if (objj_currently_profiling) + return; + var objj_msgSend_profile_saved = objj_msgSend, + objj_msgSendSuper_profile_saved = objj_msgSendSuper; + objj_msgSend = objj_msgSend_Profile; + objj_msgSendSuper = objj_msgSendSuper_Profile; + var root = { calls: [] }; + objj_debug_profile = root; + var context = { + start : new Date(), + title : title, + profile : root + }; + objj_profile_cleanup = function() { + objj_msgSend = objj_msgSend_profile_saved; + objj_msgSendSuper = objj_msgSendSuper_profile_saved; + context.end = new Date(); + return context; + } + objj_currently_profiling = true; +} +function objj_profileEnd() +{ + if (!objj_currently_profiling) + return; + objj_debug_profile = null; + objj_currently_profiling = false; + return objj_profile_cleanup(); +} +if (window.OBJJ_MAIN_FILE) + objj_import(OBJJ_MAIN_FILE, YES, function() { main(); }); diff --git a/src/main/webapp/Frameworks/Debug/Objective-J/rhino.platform/Objective-J.js b/src/main/webapp/Frameworks/Debug/Objective-J/rhino.platform/Objective-J.js new file mode 100644 index 0000000..1fbe216 --- /dev/null +++ b/src/main/webapp/Frameworks/Debug/Objective-J/rhino.platform/Objective-J.js @@ -0,0 +1,2607 @@ +/* + * Objective-J.js + * Objective-J + * + * Created by Francisco Tolmasky. + * Copyright 2008, 280 North, Inc. + * + * 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 + */ + +var NO = false, + YES = true, + nil = null, + Nil = null, + NULL = null, + ABS = Math.abs, + ASIN = Math.asin, + ACOS = Math.acos, + ATAN = Math.atan, + ATAN2 = Math.atan2, + SIN = Math.sin, + COS = Math.cos, + TAN = Math.tan, + EXP = Math.exp, + POW = Math.pow, + CEIL = Math.ceil, + FLOOR = Math.floor, + ROUND = Math.round, + MIN = Math.min, + MAX = Math.max, + RAND = Math.random, + SQRT = Math.sqrt, + E = Math.E, + LN2 = Math.LN2, + LN10 = Math.LN10, + LOG2E = Math.LOG2E, + LOG10E = Math.LOG10E, + PI = Math.PI, + PI2 = Math.PI * 2.0, + PI_2 = Math.PI / 2.0, + SQRT1_2 = Math.SQRT1_2, + SQRT2 = Math.SQRT2; +window.setNativeTimeout = window.setTimeout; +window.clearNativeTimeout = window.clearTimeout; +window.setNativeInterval = window.setInterval; +window.clearNativeInterval = window.clearInterval; +var objj_continue_alerting = NO; +function objj_alert(aString) +{ + if (!objj_continue_alerting) + return; + objj_continue_alerting = confirm(aString + "\n\nClick cancel to prevent further alerts."); +} +function objj_fprintf(stream, string) +{ + stream(string); +} +function objj_printf(string) +{ + objj_fprintf(alert, string); +} +var warning_stream = function (aString) { Packages.java.lang.System.out.println(aString) }; +var _sprintfFormatRegex = new RegExp("([^%]+|%[\\+\\-\\ \\#0]*[0-9\\*]*(.[0-9\\*]+)?[hlL]?[cbBdieEfgGosuxXpn%@])", "g"); +var _sprintfTagRegex = new RegExp("(%)([\\+\\-\\ \\#0]*)([0-9\\*]*)((.[0-9\\*]+)?)([hlL]?)([cbBdieEfgGosuxXpn%@])"); +function sprintf(format) +{ + var format = arguments[0], + tokens = format.match(_sprintfFormatRegex), + index = 0, + result = "", + arg = 1; + for (var i = 0; i < tokens.length; i++) + { + var t = tokens[i]; + if (format.substring(index, index + t.length) != t) + { + return result; + } + index += t.length; + if (t.charAt(0) != "%") + { + result += t; + } + else + { + var subtokens = t.match(_sprintfTagRegex); + if (subtokens.length != 8 || subtokens[0] != t) + { + return result; + } + var percentSign = subtokens[1], + flags = subtokens[2], + widthString = subtokens[3], + precisionString = subtokens[4], + length = subtokens[6], + specifier = subtokens[7]; + var width = null; + if (widthString == "*") + width = arguments[arg++]; + else if (widthString != "") + width = Number(widthString); + var precision = null; + if (precisionString == ".*") + precision = arguments[arg++]; + else if (precisionString != "") + precision = Number(precisionString.substring(1)); + var leftJustify = (flags.indexOf("-") >= 0); + var padZeros = (flags.indexOf("0") >= 0); + var subresult = ""; + if (RegExp("[bBdiufeExXo]").test(specifier)) + { + var num = Number(arguments[arg++]); + var sign = ""; + if (num < 0) + { + sign = "-"; + } + else + { + if (flags.indexOf("+") >= 0) + sign = "+"; + else if (flags.indexOf(" ") >= 0) + sign = " "; + } + if (specifier == "d" || specifier == "i" || specifier == "u") + { + var number = String(Math.abs(Math.floor(num))); + subresult = _sprintf_justify(sign, "", number, "", width, leftJustify, padZeros) + } + if (specifier == "f") + { + var number = String((precision != null) ? Math.abs(num).toFixed(precision) : Math.abs(num)); + var suffix = (flags.indexOf("#") >= 0 && number.indexOf(".") < 0) ? "." : ""; + subresult = _sprintf_justify(sign, "", number, suffix, width, leftJustify, padZeros); + } + if (specifier == "e" || specifier == "E") + { + var number = String(Math.abs(num).toExponential(precision != null ? precision : 21)); + var suffix = (flags.indexOf("#") >= 0 && number.indexOf(".") < 0) ? "." : ""; + subresult = _sprintf_justify(sign, "", number, suffix, width, leftJustify, padZeros); + } + if (specifier == "x" || specifier == "X") + { + var number = String(Math.abs(num).toString(16)); + var prefix = (flags.indexOf("#") >= 0 && num != 0) ? "0x" : ""; + subresult = _sprintf_justify(sign, prefix, number, "", width, leftJustify, padZeros); + } + if (specifier == "b" || specifier == "B") + { + var number = String(Math.abs(num).toString(2)); + var prefix = (flags.indexOf("#") >= 0 && num != 0) ? "0b" : ""; + subresult = _sprintf_justify(sign, prefix, number, "", width, leftJustify, padZeros); + } + if (specifier == "o") + { + var number = String(Math.abs(num).toString(8)); + var prefix = (flags.indexOf("#") >= 0 && num != 0) ? "0" : ""; + subresult = _sprintf_justify(sign, prefix, number, "", width, leftJustify, padZeros); + } + if (RegExp("[A-Z]").test(specifier)) + subresult = subresult.toUpperCase(); + else + subresult = subresult.toLowerCase(); + } + else + { + var subresult = ""; + if (specifier == "%") + subresult = "%"; + else if (specifier == "c") + subresult = String(arguments[arg++]).charAt(0); + else if (specifier == "s" || specifier == "@") + subresult = String(arguments[arg++]); + else if (specifier == "p" || specifier == "n") + { + arg++; + subresult = ""; + } + subresult = _sprintf_justify("", "", subresult, "", width, leftJustify, false); + } + result += subresult; + } + } + return result; +} +var _sprintf_justify = function(sign, prefix, string, suffix, width, leftJustify, padZeros) +{ + var length = (sign.length + prefix.length + string.length + suffix.length); + if (leftJustify) + { + return sign + prefix + string + suffix + _sprintf_pad(width - length, " "); + } + else + { + if (padZeros) + return sign + prefix + _sprintf_pad(width - length, "0") + string + suffix; + else + return _sprintf_pad(width - length, " ") + sign + prefix + string + suffix; + } +} +var _sprintf_pad = function(n, ch) +{ + var result = ""; + for (var i = 0; i < n; i++) + result += ch; + return result; +} +var base64_map_to = [ + "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z", + "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", + "0","1","2","3","4","5","6","7","8","9","+","/","="], + base64_map_from = []; +for (var i = 0; i < base64_map_to.length; i++) + base64_map_from[base64_map_to[i].charCodeAt(0)] = i; +function base64_decode_to_array(input, strip) +{ + if (strip) + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + var pad = (input[input.length-1] == "=" ? 1 : 0) + (input[input.length-2] == "=" ? 1 : 0), + length = input.length, + output = []; + var i = 0; + while (i < length) + { + var bits = (base64_map_from[input.charCodeAt(i++)] << 18) | + (base64_map_from[input.charCodeAt(i++)] << 12) | + (base64_map_from[input.charCodeAt(i++)] << 6) | + (base64_map_from[input.charCodeAt(i++)]); + output.push((bits & 0xFF0000) >> 16); + output.push((bits & 0xFF00) >> 8); + output.push(bits & 0xFF); + } + if (pad > 0) + return output.slice(0, -1 * pad); + return output; +} +function base64_encode_array(input) +{ + var pad = (3 - (input.length % 3)) % 3, + length = input.length + pad, + output = []; + if (pad > 0) input.push(0); + if (pad > 1) input.push(0); + var i = 0; + while (i < length) + { + var bits = (input[i++] << 16) | + (input[i++] << 8) | + (input[i++]); + output.push(base64_map_to[(bits & 0xFC0000) >> 18]); + output.push(base64_map_to[(bits & 0x3F000) >> 12]); + output.push(base64_map_to[(bits & 0xFC0) >> 6]); + output.push(base64_map_to[bits & 0x3F]); + } + if (pad > 0) + { + output[output.length-1] = "="; + input.pop(); + } + if (pad > 1) + { + output[output.length-2] = "="; + input.pop(); + } + return output.join(""); +} +function base64_decode_to_string(input, strip) +{ + return bytes_to_string(base64_decode_to_array(input, strip)); +} +function bytes_to_string(bytes) +{ + return String.fromCharCode.apply(null, bytes); +} +function base64_encode_string(input) +{ + var temp = []; + for (var i = 0; i < input.length; i++) + temp.push(input.charCodeAt(i)); + return base64_encode_array(temp); +} +if (!this.JSON) { + JSON = {}; +} +(function () { + function f(n) { + return n < 10 ? '0' + n : n; + } + if (typeof Date.prototype.toJSON !== 'function') { + Date.prototype.toJSON = function (key) { + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + function quote(string) { + escapable.lastIndex = 0; + return escapable.test(string) ? + '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : + '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : + '"' + string + '"'; + } + function str(key, holder) { + var i, + k, + v, + length, + mind = gap, + partial, + value = holder[key]; + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + switch (typeof value) { + case 'string': + return quote(value); + case 'number': + return isFinite(value) ? String(value) : 'null'; + case 'boolean': + case 'null': + return String(value); + case 'object': + if (!value) { + return 'null'; + } + gap += indent; + partial = []; + if (Object.prototype.toString.apply(value) === '[object Array]') { + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + v = partial.length === 0 ? '[]' : + gap ? '[\n' + gap + + partial.join(',\n' + gap) + '\n' + + mind + ']' : + '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + k = rep[i]; + if (typeof k === 'string') { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + v = partial.length === 0 ? '{}' : + gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + var i; + gap = ''; + indent = ''; + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + } else if (typeof space === 'string') { + indent = space; + } + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + return str('', {'': value}); + }; + } + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + var j; + function walk(holder, key) { + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + if (/^[\],:{}\s]*$/. +test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@'). +replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'). +replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + j = eval('(' + text + ')'); + return typeof reviver === 'function' ? + walk({'': j}, '') : j; + } + throw new SyntaxError('JSON.parse'); + }; + } +}()); +var CLS_CLASS = 0x1, + CLS_META = 0x2, + CLS_INITIALIZED = 0x4, + CLS_INITIALIZING = 0x8; +function objj_ivar( aName, aType) +{ + this.name = aName; + this.type = aType; +} +function objj_method( aName, anImplementation, types) +{ + this.name = aName; + this.method_imp = anImplementation; + this.types = types; +} +function objj_class() +{ + this.isa = NULL; + this.super_class = NULL; + this.sub_classes = []; + this.name = NULL; + this.info = 0; + this.ivars = []; + this.method_list = []; + this.method_hash = {}; + this.method_store = function() { }; + this.method_dtable = this.method_store.prototype; + this.allocator = function() { }; + this.__address = -1; +} +function objj_object() +{ + this.isa = NULL; + this.__address = -1; +} +var OBJECT_COUNT = 0; +function _objj_generateObjectHash() +{ + return OBJECT_COUNT++; +} +function class_getName( aClass) +{ + if (aClass == Nil) + return ""; + return aClass.name; +} +function class_isMetaClass( aClass) +{ + if (!aClass) + return NO; + return ((aClass.info & (CLS_META))); +} +function class_getSuperclass( aClass) +{ + if (aClass == Nil) + return Nil; + return aClass.super_class; +} +function class_setSuperclass( aClass, aSuperClass) +{ +} +function class_isMetaClass( aClass) +{ + return ((aClass.info & (CLS_META))); +} +function class_addIvar( aClass, aName, aType) +{ + var thePrototype = aClass.allocator.prototype; + if (typeof thePrototype[aName] != "undefined") + return NO; + aClass.ivars.push(new objj_ivar(aName, aType)); + thePrototype[aName] = NULL; + return YES; +} +function class_addIvars( aClass, ivars) +{ + var index = 0, + count = ivars.length, + thePrototype = aClass.allocator.prototype; + for (; index < count; ++index) + { + var ivar = ivars[index], + name = ivar.name; + if (typeof thePrototype[name] === "undefined") + { + aClass.ivars.push(ivar); + thePrototype[name] = NULL; + } + } +} +function class_copyIvarList( aClass) +{ + return aClass.ivars.slice(0); +} +function class_addMethod( aClass, aName, anImplementation, aType) +{ + if (aClass.method_hash[aName]) + return NO; + var method = new objj_method(aName, anImplementation, aType); + aClass.method_list.push(method); + aClass.method_dtable[aName] = method; + method.method_imp.displayName = (((aClass.info & (CLS_META))) ? '+' : '-') + " [" + class_getName(aClass) + ' ' + method_getName(method) + ']'; + if (!((aClass.info & (CLS_META))) && (((aClass.info & (CLS_META))) ? aClass : aClass.isa).isa === (((aClass.info & (CLS_META))) ? aClass : aClass.isa)) + class_addMethod((((aClass.info & (CLS_META))) ? aClass : aClass.isa), method); + return YES; +} +function class_addMethods( aClass, methods) +{ + var index = 0, + count = methods.length, + method_list = aClass.method_list, + method_dtable = aClass.method_dtable; + for (; index < count; ++index) + { + var method = methods[index]; + if (aClass.method_hash[method.name]) + continue; + method_list.push(method); + method_dtable[method.name] = method; + method.method_imp.displayName = (((aClass.info & (CLS_META))) ? '+' : '-') + " [" + class_getName(aClass) + ' ' + method_getName(method) + ']'; + } + if (!((aClass.info & (CLS_META))) && (((aClass.info & (CLS_META))) ? aClass : aClass.isa).isa === (((aClass.info & (CLS_META))) ? aClass : aClass.isa)) + class_addMethods((((aClass.info & (CLS_META))) ? aClass : aClass.isa), methods); +} +function class_getInstanceMethod( aClass, aSelector) +{ + if (!aClass || !aSelector) + return NULL; + var method = aClass.method_dtable[aSelector]; + return method ? method : NULL; +} +function class_getClassMethod( aClass, aSelector) +{ + if (!aClass || !aSelector) + return NULL; + var method = (((aClass.info & (CLS_META))) ? aClass : aClass.isa).method_dtable[aSelector]; + return method ? method : NULL; +} +function class_copyMethodList( aClass) +{ + return aClass.method_list.slice(0); +} +function class_replaceMethod( aClass, aSelector, aMethodImplementation) +{ + if (!aClass || !aSelector) + return NULL; + var method = aClass.method_dtable[aSelector], + method_imp = NULL; + if (method) + method_imp = method.method_imp; + method.method_imp = aMethodImplementation; + return method_imp; +} +var _class_initialize = function( aClass) +{ + var meta = (((aClass.info & (CLS_META))) ? aClass : aClass.isa); + if ((aClass.info & (CLS_META))) + aClass = objj_getClass(aClass.name); + if (aClass.super_class && !((((aClass.super_class.info & (CLS_META))) ? aClass.super_class : aClass.super_class.isa).info & (CLS_INITIALIZED))) + _class_initialize(aClass.super_class); + if (!(meta.info & (CLS_INITIALIZED)) && !(meta.info & (CLS_INITIALIZING))) + { + meta.info = (meta.info | (CLS_INITIALIZING)) & ~(0); + objj_msgSend(aClass, "initialize"); + meta.info = (meta.info | (CLS_INITIALIZED)) & ~(CLS_INITIALIZING); + } +} +var _objj_forward = new objj_method("forward", function(self, _cmd) +{ + return objj_msgSend(self, "forward::", _cmd, arguments); +}); +function class_getMethodImplementation( aClass, aSelector) +{ + if (!((((aClass.info & (CLS_META))) ? aClass : aClass.isa).info & (CLS_INITIALIZED))) _class_initialize(aClass); var method = aClass.method_dtable[aSelector]; if (!method) method = _objj_forward; var implementation = method.method_imp;; + return implementation; +} +var GLOBAL_NAMESPACE = window, + REGISTERED_CLASSES = {}; +function objj_allocateClassPair( superclass, aName) +{ + var classObject = new objj_class(), + metaClassObject = new objj_class(), + rootClassObject = classObject; + if (superclass) + { + rootClassObject = superclass; + while (rootClassObject.superclass) + rootClassObject = rootClassObject.superclass; + classObject.allocator.prototype = new superclass.allocator; + classObject.method_store.prototype = new superclass.method_store; + classObject.method_dtable = classObject.method_store.prototype; + metaClassObject.method_store.prototype = new superclass.isa.method_store; + metaClassObject.method_dtable = metaClassObject.method_store.prototype; + classObject.super_class = superclass; + metaClassObject.super_class = superclass.isa; + } + else + classObject.allocator.prototype = new objj_object(); + classObject.isa = metaClassObject; + classObject.name = aName; + classObject.info = CLS_CLASS; + classObject.__address = (OBJECT_COUNT++); + metaClassObject.isa = rootClassObject.isa; + metaClassObject.name = aName; + metaClassObject.info = CLS_META; + metaClassObject.__address = (OBJECT_COUNT++); + return classObject; +} +function objj_registerClassPair( aClass) +{ + GLOBAL_NAMESPACE[aClass.name] = aClass; + REGISTERED_CLASSES[aClass.name] = aClass; +} +function class_createInstance( aClass) +{ + if (!aClass) + objj_exception_throw(new objj_exception(OBJJNilClassException, "*** Attempting to create object with Nil class.")); + var object = new aClass.allocator; + object.__address = (OBJECT_COUNT++); + object.isa = aClass; + return object; +} +var prototype_bug = function() { } +prototype_bug.prototype.member = false; +with (new prototype_bug()) + member = true; +if (new prototype_bug().member) +{ +var fast_class_createInstance = class_createInstance; +class_createInstance = function( aClass) +{ + var object = fast_class_createInstance(aClass); + if (object) + { + var theClass = object.isa, + actualClass = theClass; + while (theClass) + { + var ivars = theClass.ivars; + count = ivars.length; + while (count--) + object[ivars[count].name] = NULL; + theClass = theClass.super_class; + } + object.isa = actualClass; + } + return object; +} +} +function object_getClassName( anObject) +{ + if (!anObject) + return ""; + var theClass = anObject.isa; + return theClass ? class_getName(theClass) : ""; +} +function objj_lookUpClass( aName) +{ + var theClass = REGISTERED_CLASSES[aName]; + return theClass ? theClass : Nil; +} +function objj_getClass( aName) +{ + var theClass = REGISTERED_CLASSES[aName]; + if (!theClass) + { + } + return theClass ? theClass : Nil; +} +function objj_getMetaClass( aName) +{ + var theClass = objj_getClass(aName); + return (((theClass.info & (CLS_META))) ? theClass : theClass.isa); +} +function ivar_getName(anIvar) +{ + return anIvar.name; +} +function ivar_getTypeEncoding(anIvar) +{ + return anIvar.type; +} +function objj_msgSend( aReceiver, aSelector) +{ + if (aReceiver == nil) + return nil; + if (!((((aReceiver.isa.info & (CLS_META))) ? aReceiver.isa : aReceiver.isa.isa).info & (CLS_INITIALIZED))) _class_initialize(aReceiver.isa); var method = aReceiver.isa.method_dtable[aSelector]; if (!method) method = _objj_forward; var implementation = method.method_imp;; + switch(arguments.length) + { + case 2: return implementation(aReceiver, aSelector); + case 3: return implementation(aReceiver, aSelector, arguments[2]); + case 4: return implementation(aReceiver, aSelector, arguments[2], arguments[3]); + } + return implementation.apply(aReceiver, arguments); +} +function objj_msgSendSuper( aSuper, aSelector) +{ + var super_class = aSuper.super_class; + arguments[0] = aSuper.receiver; + if (!((((super_class.info & (CLS_META))) ? super_class : super_class.isa).info & (CLS_INITIALIZED))) _class_initialize(super_class); var method = super_class.method_dtable[aSelector]; if (!method) method = _objj_forward; var implementation = method.method_imp;; + return implementation.apply(aSuper.receiver, arguments); +} +function method_getName( aMethod) +{ + return aMethod.name; +} +function method_getImplementation( aMethod) +{ + return aMethod.method_imp; +} +function method_setImplementation( aMethod, anImplementation) +{ + var oldImplementation = aMethod.method_imp; + aMethod.method_imp = anImplementation; + return oldImplementation; +} +function method_exchangeImplementations( lhs, rhs) +{ + var lhs_imp = method_getImplementation(lhs), + rhs_imp = method_getImplementation(rhs); + method_setImplementation(lhs, rhs_imp); + method_setImplementation(rhs, lhs_imp); +} +function sel_getName(aSelector) +{ + return aSelector ? aSelector : ""; +} +function sel_getUid( aName) +{ + return aName; +} +function sel_isEqual( lhs, rhs) +{ + return lhs === rhs; +} +function sel_registerName(aName) +{ + return aName; +} +function objj_dictionary() +{ + this._keys = []; + this.count = 0; + this._buckets = {}; + this.__address = (OBJECT_COUNT++); +} +function dictionary_containsKey(aDictionary, aKey) +{ + return aDictionary._buckets[aKey] != NULL; +} +function dictionary_getCount(aDictionary) +{ + return aDictionary.count; +} +function dictionary_getValue(aDictionary, aKey) +{ + return aDictionary._buckets[aKey]; +} +function dictionary_setValue(aDictionary, aKey, aValue) +{ + if (aDictionary._buckets[aKey] == NULL) + { + aDictionary._keys.push(aKey); + ++aDictionary.count; + } + if ((aDictionary._buckets[aKey] = aValue) == NULL) + --aDictionary.count; +} +function dictionary_removeValue(aDictionary, aKey) +{ + if (aDictionary._buckets[aKey] == NULL) + return; + --aDictionary.count; + if (aDictionary._keys.indexOf) + aDictionary._keys.splice(aDictionary._keys.indexOf(aKey), 1); + else + { + var keys = aDictionary._keys, + index = 0, + count = keys.length; + for (; index < count; ++index) + if (keys[index] == aKey) + { + keys.splice(index, 1); + break; + } + } + delete aDictionary._buckets[aKey]; +} +function dictionary_replaceValue(aDictionary, aKey, aValue) +{ + if (aDictionary[aKey] == NULL) + return; +} +function dictionary_description(aDictionary) +{ + var str = "{ "; + for ( x in aDictionary._buckets) + str += x + ":" + aDictionary._buckets[x] + ","; + str += " }"; + return str; +} +var kCFPropertyListOpenStepFormat = 1, + kCFPropertyListXMLFormat_v1_0 = 100, + kCFPropertyListBinaryFormat_v1_0 = 200, + kCFPropertyList280NorthFormat_v1_0 = -1000; +var OBJJPlistParseException = "OBJJPlistParseException", + OBJJPlistSerializeException = "OBJJPlistSerializeException"; +var kCFPropertyList280NorthMagicNumber = "280NPLIST"; +function objj_data() +{ + this.string = ""; + this._plistObject = NULL; + this.bytes = NULL; + this.base64 = NULL; +} +var objj_markedStream = function(aString) +{ + var index = aString.indexOf(';'); + this._magicNumber = aString.substr(0, index); + this._location = aString.indexOf(';', ++index); + this._version = aString.substring(index, this._location++); + this._string = aString; +} +objj_markedStream.prototype.magicNumber = function() +{ + return this._magicNumber; +} +objj_markedStream.prototype.version = function() +{ + return this._version; +} +objj_markedStream.prototype.getMarker = function() +{ + var string = this._string, + location = this._location; + if (location >= string.length) + return NULL; + var next = string.indexOf(';', location); + if (next < 0) + return NULL; + var marker = string.substring(location, next); + this._location = next + 1; + return marker; +} +objj_markedStream.prototype.getString = function() +{ + var string = this._string, + location = this._location; + if (location >= string.length) + return NULL; + var next = string.indexOf(';', location); + if (next < 0) + return NULL; + var size = parseInt(string.substring(location, next)), + text = string.substr(next + 1, size); + this._location = next + 1 + size; + return text; +} +function CPPropertyListCreateData(aPlistObject, aFormat) +{ + if (aFormat == kCFPropertyListXMLFormat_v1_0) + return CPPropertyListCreateXMLData(aPlistObject); + if (aFormat == kCFPropertyList280NorthFormat_v1_0) + return CPPropertyListCreate280NorthData(aPlistObject); + return NULL; +} +function CPPropertyListCreateFromData(aData, aFormat) +{ + if (!aFormat) + { + if (aData instanceof objj_data) + { + var string = aData.string ? aData.string : objj_msgSend(aData, "string"); + if (string.substr(0, kCFPropertyList280NorthMagicNumber.length) == kCFPropertyList280NorthMagicNumber) + aFormat = kCFPropertyList280NorthFormat_v1_0; + else + aFormat = kCFPropertyListXMLFormat_v1_0; + } + else + aFormat = kCFPropertyListXMLFormat_v1_0; + } + if (aFormat == kCFPropertyListXMLFormat_v1_0) + return CPPropertyListCreateFromXMLData(aData); + if (aFormat == kCFPropertyList280NorthFormat_v1_0) + return CPPropertyListCreateFrom280NorthData(aData); + return NULL; +} +var _CPPropertyListSerializeObject = function(aPlist, serializers) +{ + var type = typeof aPlist, + valueOf = aPlist.valueOf(), + typeValueOf = typeof valueOf; + if (type != typeValueOf) + { + type = typeValueOf; + aPlist = valueOf; + } + if (type == "string") + return serializers["string"](aPlist, serializers); + else if (aPlist === true || aPlist === false) + return serializers["boolean"](aPlist, serializers); + else if (type == "number") + { + var integer = FLOOR(aPlist); + if (integer == aPlist) + return serializers["integer"](aPlist, serializers); + else + return serializers["real"](aPlist, serializers); + } + else if (aPlist.slice) + return serializers["array"](aPlist, serializers); + else + return serializers["dictionary"](aPlist, serializers); +} +var XML_XML = "xml", + XML_DOCUMENT = "#document", + PLIST_PLIST = "plist", + PLIST_KEY = "key", + PLIST_DICTIONARY = "dict", + PLIST_ARRAY = "array", + PLIST_STRING = "string", + PLIST_BOOLEAN_TRUE = "true", + PLIST_BOOLEAN_FALSE = "false", + PLIST_NUMBER_REAL = "real", + PLIST_NUMBER_INTEGER = "integer", + PLIST_DATA = "data"; +var _plist_traverseNextNode = function(anXMLNode, stayWithin, stack) +{ + var node = anXMLNode; + node = (node.firstChild); if (node != NULL && ((node.nodeType) == 8 || (node.nodeType) == 3)) while ((node = (node.nextSibling)) && ((node.nodeType) == 8 || (node.nodeType) == 3)) ;; + if (node) + return node; + if ((String(anXMLNode.nodeName)) == PLIST_ARRAY || (String(anXMLNode.nodeName)) == PLIST_DICTIONARY) + stack.pop(); + else + { + if (node == stayWithin) + return NULL; + node = anXMLNode; + while ((node = (node.nextSibling)) && ((node.nodeType) == 8 || (node.nodeType) == 3)) ;; + if (node) + return node; + } + node = anXMLNode; + while (node) + { + var next = node; + while ((next = (next.nextSibling)) && ((next.nodeType) == 8 || (next.nodeType) == 3)) ;; + if (next) + return next; + var node = (node.parentNode); + if (stayWithin && node == stayWithin) + return NULL; + stack.pop(); + } + return NULL; +} +function CPPropertyListCreateFromXMLData(XMLNodeOrData) +{ + var XMLNode = XMLNodeOrData; + if (XMLNode.string) + { + if (window.ActiveXObject) + { + XMLNode = new ActiveXObject("Microsoft.XMLDOM"); + XMLNode.loadXML(XMLNodeOrData.string.substr(XMLNodeOrData.string.indexOf(".dtd\">") + 6)); + } + else + XMLNode = (new DOMParser().parseFromString(XMLNodeOrData.string, "text/xml").documentElement); + } + while (((String(XMLNode.nodeName)) == XML_DOCUMENT) || ((String(XMLNode.nodeName)) == XML_XML)) + XMLNode = (XMLNode.firstChild); if (XMLNode != NULL && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) while ((XMLNode = (XMLNode.nextSibling)) && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) ;; + if (((XMLNode.nodeType) == 10)) + while ((XMLNode = (XMLNode.nextSibling)) && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) ;; + if (!((String(XMLNode.nodeName)) == PLIST_PLIST)) + return NULL; + var key = "", + object = NULL, + plistObject = NULL, + plistNode = XMLNode, + containers = [], + currentContainer = NULL; + while (XMLNode = _plist_traverseNextNode(XMLNode, plistNode, containers)) + { + var count = containers.length; + if (count) + currentContainer = containers[count - 1]; + if ((String(XMLNode.nodeName)) == PLIST_KEY) + { + key = ((String((XMLNode.firstChild).nodeValue))); + while ((XMLNode = (XMLNode.nextSibling)) && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) ;; + } + switch (String((String(XMLNode.nodeName)))) + { + case PLIST_ARRAY: object = [] + containers.push(object); + break; + case PLIST_DICTIONARY: object = new objj_dictionary(); + containers.push(object); + break; + case PLIST_NUMBER_REAL: object = parseFloat(((String((XMLNode.firstChild).nodeValue)))); + break; + case PLIST_NUMBER_INTEGER: object = parseInt(((String((XMLNode.firstChild).nodeValue)))); + break; + case PLIST_STRING: object = _decodeHTMLComponent((XMLNode.firstChild) ? ((String((XMLNode.firstChild).nodeValue))) : ""); + break; + case PLIST_BOOLEAN_TRUE: object = true; + break; + case PLIST_BOOLEAN_FALSE: object = false; + break; + case PLIST_DATA: object = new objj_data(); + object.bytes = (XMLNode.firstChild) ? base64_decode_to_array(((String((XMLNode.firstChild).nodeValue))), true) : []; + break; + default: objj_exception_throw(new objj_exception(OBJJPlistParseException, "*** " + (String(XMLNode.nodeName)) + " tag not recognized in Plist.")); + } + if (!plistObject) + plistObject = object; + else if (currentContainer) + if (currentContainer.slice) + currentContainer.push(object); + else + { if ((currentContainer)._buckets[key] == NULL) { (currentContainer)._keys.push(key); ++(currentContainer).count; } if (((currentContainer)._buckets[key] = object) == NULL) --(currentContainer).count;}; + } + return plistObject; +} +function CPPropertyListCreateXMLData(aPlist) +{ + var data = new objj_data(); + data.string = ""; + data.string += ""; + data.string += ""; + data.string += ""; + _CPPropertyListAppendXMLData(data, aPlist, ""); + data.string += ""; + return data; +} +var _CPArrayAppendXMLData = function(XMLData, anArray) +{ + var i = 0, + count = anArray.length; + XMLData.string += ""; + for (; i < count; ++i) + _CPPropertyListAppendXMLData(XMLData, anArray[i]); + XMLData.string += ""; +} +var _CPDictionaryAppendXMLData = function(XMLData, aDictionary) +{ + var keys = aDictionary._keys, + i = 0, + count = keys.length; + XMLData.string += ""; + for (; i < count; ++i) + { + XMLData.string += "" + keys[i] + ""; + _CPPropertyListAppendXMLData(XMLData, ((aDictionary)._buckets[keys[i]])); + } + XMLData.string += ""; +} +var _encodeHTMLComponent = function(aString) +{ + return aString.replace('<', "<").replace('>', ">").replace('\"', """).replace('\'', "'").replace('&', "&"); +} +var _decodeHTMLComponent = function(aString) +{ + return aString.replace("<", '<').replace(">", '>').replace(""", '\"').replace("'", '\'').replace("&", '&'); +} +var _CPPropertyListAppendXMLData = function(XMLData, aPlist) +{ + var type = typeof aPlist, + valueOf = aPlist.valueOf(), + typeValueOf = typeof valueOf; + if (type != typeValueOf) + { + type = typeValueOf; + aPlist = valueOf; + } + if (type == "string") + XMLData.string += "" + _encodeHTMLComponent(aPlist) + ""; + else if (aPlist === true) + XMLData.string += ""; + else if (aPlist === false) + XMLData.string += ""; + else if (type == "number") + { + var integer = FLOOR(aPlist); + if (integer == aPlist) + XMLData.string += "" + aPlist + ""; + else + XMLData.string += "" + aPlist + ""; + } + else if (aPlist.slice) + _CPArrayAppendXMLData(XMLData, aPlist); + else if (aPlist._keys) + _CPDictionaryAppendXMLData(XMLData, aPlist); + else + objj_exception_throw(new objj_exception(OBJJPlistSerializeException, "*** unknown plist ("+aPlist+") type: " + type)); +} +var ARRAY_MARKER = "A", + DICTIONARY_MARKER = "D", + FLOAT_MARKER = "f", + INTEGER_MARKER = "d", + STRING_MARKER = "S", + TRUE_MARKER = "T", + FALSE_MARKER = "F", + KEY_MARKER = "K", + END_MARKER = "E"; +function CPPropertyListCreateFrom280NorthData(aData) +{ + var stream = new objj_markedStream(aData.string), + marker = NULL, + key = "", + object = NULL, + plistObject = NULL, + containers = [], + currentContainer = NULL; + while (marker = stream.getMarker()) + { + if (marker === END_MARKER) + { + containers.pop(); + continue; + } + var count = containers.length; + if (count) + currentContainer = containers[count - 1]; + if (marker === KEY_MARKER) + { + key = stream.getString(); + marker = stream.getMarker(); + } + switch (marker) + { + case ARRAY_MARKER: object = [] + containers.push(object); + break; + case DICTIONARY_MARKER: object = new objj_dictionary(); + containers.push(object); + break; + case FLOAT_MARKER: object = parseFloat(stream.getString()); + break; + case INTEGER_MARKER: object = parseInt(stream.getString()); + break; + case STRING_MARKER: object = stream.getString(); + break; + case TRUE_MARKER: object = true; + break; + case FALSE_MARKER: object = false; + break; + default: objj_exception_throw(new objj_exception(OBJJPlistParseException, "*** " + marker + " marker not recognized in Plist.")); + } + if (!plistObject) + plistObject = object; + else if (currentContainer) + if (currentContainer.slice) + currentContainer.push(object); + else + { if ((currentContainer)._buckets[key] == NULL) { (currentContainer)._keys.push(key); ++(currentContainer).count; } if (((currentContainer)._buckets[key] = object) == NULL) --(currentContainer).count;}; + } + return plistObject; +} +function CPPropertyListCreate280NorthData(aPlist) +{ + var data = new objj_data(); + data.string = kCFPropertyList280NorthMagicNumber + ";1.0;" + _CPPropertyListSerializeObject(aPlist, _CPPropertyList280NorthSerializers); + return data; +} +var _CPPropertyList280NorthSerializers = {}; +_CPPropertyList280NorthSerializers["string"] = function(aString) +{ + return STRING_MARKER + ';' + aString.length + ';' + aString; +} +_CPPropertyList280NorthSerializers["boolean"] = function(aBoolean) +{ + return (aBoolean ? TRUE_MARKER : FALSE_MARKER) + ';'; +} +_CPPropertyList280NorthSerializers["integer"] = function(anInteger) +{ + var string = "" + anInteger; + return INTEGER_MARKER + ';' + string.length + ';' + string; +} +_CPPropertyList280NorthSerializers["real"] = function(aFloat) +{ + var string = "" + aFloat; + return FLOAT_MARKER + ';' + string.length + ';' + string; +} +_CPPropertyList280NorthSerializers["array"] = function(anArray, serializers) +{ + var index = 0, + count = anArray.length, + string = ARRAY_MARKER + ';'; + for (; index < count; ++index) + string += _CPPropertyListSerializeObject(anArray[index], serializers); + return string + END_MARKER + ';'; +} +_CPPropertyList280NorthSerializers["dictionary"] = function(aDictionary, serializers) +{ + var keys = aDictionary._keys, + index = 0, + count = keys.length, + string = DICTIONARY_MARKER +';'; + for (; index < count; ++index) + { + var key = keys[index]; + string += KEY_MARKER + ';' + key.length + ';' + key; + string += _CPPropertyListSerializeObject(((aDictionary)._buckets[key]), serializers); + } + return string + END_MARKER + ';'; +} +var OBJJ_PLATFORMS = ["rhino", "objj"]; +var OBJJFileNotFoundException = "OBJJFileNotFoundException", + OBJJExecutableNotFoundException = "OBJJExecutableNotFoundException"; +var objj_files = { }, + objj_bundles = { }, + objj_bundlesForClass = { }, + objj_searches = { }; +var OBJJ_NO_FILE = {}; +if (typeof OBJJ_INCLUDE_PATHS === "undefined") + OBJJ_INCLUDE_PATHS = ["Frameworks", "SomethingElse"]; +var OBJJ_BASE_URI = ""; +if (window.opera) { +var DOMBaseElement = document.getElementsByTagName("base")[0]; +if (DOMBaseElement) + OBJJ_BASE_URI = (DOMBaseElement.getAttribute('href')).substr(0, (DOMBaseElement.getAttribute('href')).lastIndexOf('/') + 1); +} +function objj_file() +{ + this.path = NULL; + this.bundle = NULL; + this.included = NO; + this.contents = NULL; + this.fragments = NULL; +} +function objj_bundle() +{ + this.path = NULL; + this.info = NULL; + this.__address = (OBJECT_COUNT++); +} +function objj_getBundleWithPath(aPath) +{ + return objj_bundles[aPath]; +} +function objj_setBundleForPath(aPath, aBundle) +{ + objj_bundles[aPath] = aBundle; +} +function objj_bundleForClass(aClass) +{ + return objj_bundlesForClass[aClass.name]; +} +function objj_addClassForBundle(aClass, aBundle) +{ + objj_bundlesForClass[aClass.name] = aBundle; +} +function objj_request_file(aFilePath, shouldSearchLocally, aCallback) +{ + new objj_search(aFilePath, shouldSearchLocally, aCallback).attemptNextSearchPath(); +} +var objj_search = function(aFilePath, shouldSearchLocally, aCallback) +{ + this.filePath = aFilePath; + this.bundle = NULL; + this.bundleObservers = []; + this.searchPath = NULL; + this.searchedPaths = []; + this.includePathsIndex = shouldSearchLocally ? -1 : 0; + this.searchRequest = NULL; + this.didCompleteCallback = aCallback; +} +objj_search.prototype.nextSearchPath = function() +{ + var path = objj_standardize_path((this.includePathsIndex == -1 ? "" : OBJJ_INCLUDE_PATHS[this.includePathsIndex] + '/') + this.filePath); + ++this.includePathsIndex; + return path; +} +objj_search.prototype.attemptNextSearchPath = function() +{ + var searchPath = this.nextSearchPath(), + file = objj_files[searchPath]; + objj_alert("Will attempt to find " + this.filePath + " at " + searchPath); + if (file) + { + objj_alert("The file request at " + this.filePath + " has already been downloaded at " + searchPath); + var index = 0, + count = this.searchedPaths.length; + for (; index < count; ++index) + objj_files[this.searchedPaths[index]] = file; + if (this.didCompleteCallback) + this.didCompleteCallback(file); + return; + } + var existingSearch = objj_searches[searchPath]; + if (existingSearch) + { + if (this.didCompleteCallback) + existingSearch.didCompleteCallback = this.didCompleteCallback; + return; + } + this.searchedPaths.push(this.searchPath = searchPath); + var infoPath = objj_standardize_path((searchPath).substr(0, (searchPath).lastIndexOf('/') + 1) + "Info.plist"), + bundle = objj_bundles[infoPath]; + if (bundle) + { + this.bundle = bundle; + this.request(searchPath, this.didReceiveSearchResponse); + } + else + { + var existingBundleSearch = objj_searches[infoPath]; + if (existingBundleSearch) + { + --this.includePathsIndex; + this.searchedPaths.pop(); + if (this.searchedPaths.length) + this.searchPath = this.searchedPaths[this.searchedPaths.length - 1]; + else + this.searchPath = NULL; + existingBundleSearch.bundleObservers.push(this); + return; + } + else + { + this.bundleObservers.push(this); + this.request(infoPath, this.didReceiveBundleResponse); + if (!this.searchReplaced) + this.searchRequest = this.request(searchPath, this.didReceiveSearchResponse); + } + } +} +if (window.ActiveXObject) { +objj_search.responseCallbackLock = NO; +objj_search.responseCallbackQueue = []; +objj_search.removeResponseCallbackForFilePath = function(aFilePath) +{ + var queue = objj_search.responseCallbackQueue, + index = queue.length; + while (index--) + if (queue[index][3] == aFilePath) + { + queue.splice(index, 1); + return; + } +} +objj_search.serializeResponseCallback = function(aMethod, aSearch, aResponse, aFilePath) +{ + var queue = objj_search.responseCallbackQueue; + queue.push([aMethod, aSearch, aResponse, aFilePath]); + if (objj_search.responseCallbackLock) + return; + objj_search.responseCallbackLock = YES; + while (queue.length) + { + var callback = queue[0]; + queue.splice(0, 1); + callback[0].apply(callback[1], [callback[2]]); + } + objj_search.responseCallbackLock = NO; +} +} +objj_search.prototype.request = function(aFilePath, aMethod) +{ + var search = this, + isPlist = aFilePath.substr(aFilePath.length - 6, 6) == ".plist", + request = objj_request_xmlhttp(), + response = objj_response_xmlhttp(); + response.filePath = aFilePath; + request.onreadystatechange = function() + { + if (request.readyState == 4) + { + if (response.success = (request.status != 404 && request.responseText && request.responseText.length) ? YES : NO) + { + if (window.files_total) + { + if (!window.files_loaded) + window.files_loaded = 0; + window.files_loaded += request.responseText.length; + if (window.update_progress) + window.update_progress(window.files_loaded / window.files_total); + } + if (isPlist) + response.xml = objj_standardize_xml(request); + else + response.text = request.responseText; + } + if (window.ActiveXObject) + objj_search.serializeResponseCallback(aMethod, search, response, aFilePath); + else + aMethod.apply(search, [response]); + } + } + objj_searches[aFilePath] = this; + if (request.overrideMimeType && isPlist) + request.overrideMimeType('text/xml'); + if (window.opera && aFilePath.charAt(0) != '/') + aFilePath = OBJJ_BASE_URI + aFilePath; + try + { + request.open("GET", aFilePath, YES); + request.send(""); + } + catch (anException) + { + response.success = NO; + if (window.ActiveXObject) + objj_search.serializeResponseCallback(aMethod, search, response, aFilePath); + else + aMethod.apply(search, [response]); + } + return request; +} +objj_search.prototype.didReceiveSearchResponse = function(aResponse) +{ + if (!this.bundle) + { + this.cachedSearchResponse = aResponse; + return; + } + if (aResponse.success) + { + file = new objj_file(); + file.path = aResponse.filePath; + file.bundle = this.bundle + file.contents = aResponse.text; + this.complete(file); + } + else if (this.includePathsIndex < OBJJ_INCLUDE_PATHS.length) + { + this.bundle = NULL; + this.attemptNextSearchPath(); + } + else + objj_exception_throw(new objj_exception(OBJJFileNotFoundException, "*** Could not locate file named \"" + this.filePath + "\" in search paths.")); +} +objj_search.prototype.didReceiveBundleResponse = function(aResponse) +{ + var bundle = new objj_bundle(); + bundle.path = aResponse.filePath; + if (aResponse.success) + bundle.info = CPPropertyListCreateFromXMLData(aResponse.xml); + else + bundle.info = new objj_dictionary(); + objj_bundles[aResponse.filePath] = bundle; + var executablePath = ((bundle.info)._buckets["CPBundleExecutable"]); + if (executablePath) + { + var platform = NULL, + platforms = ((bundle.info)._buckets["CPBundlePlatforms"]), + index = 0, + count = OBJJ_PLATFORMS.length, + innerCount = platforms.length; + for(; index < count; ++index) + { + var innerIndex = 0, + currentPlatform = OBJJ_PLATFORMS[index]; + for (; innerIndex < innerCount; ++innerIndex) + if(currentPlatform === platforms[innerIndex]) + { + platform = currentPlatform; + break; + } + } + executablePath = platform + ".platform/" + executablePath; + this.request((aResponse.filePath).substr(0, (aResponse.filePath).lastIndexOf('/') + 1) + executablePath, this.didReceiveExecutableResponse); + var directory = (aResponse.filePath).substr(0, (aResponse.filePath).lastIndexOf('/') + 1), + replacedFiles = ((bundle.info)._buckets["CPBundleReplacedFiles"]), + index = 0, + count = replacedFiles.length; + for (; index < count; ++index) + { + objj_searches[directory + replacedFiles[index]] = this; + if (directory + replacedFiles[index] == this.searchPath) + { + this.searchReplaced = YES; + if (!this.cachedSearchResponse && this.searchRequest) + this.searchRequest.abort(); + if (window.ActiveXObject) + objj_search.removeResponseCallbackForFilePath(this.searchPath); + } + } + } + this.bundle = bundle; + var observers = this.bundleObservers, + index = 0, + count = observers.length; + for(; index < count; ++index) + { + var observer = observers[index]; + if (observer != this) + observer.attemptNextSearchPath(); + else if (this.cachedSearchResponse && !this.searchReplaced) + this.didReceiveSearchResponse(this.cachedSearchResponse); + } + this.bundleObservers = []; +} +objj_search.prototype.didReceiveExecutableResponse = function(aResponse) +{ + if (!aResponse.success) + objj_exception_throw(new objj_exception(OBJJExecutableNotFoundException, "*** The specified executable could not be located at \"" + this.filePath + "\".")); + var files = objj_decompile(aResponse.text, this.bundle), + index = 0, + count = files.length, + length = this.filePath.length; + for (; index < count; ++index) + { + var file = files[index], + path = file.path; + if (this.filePath == path.substr(path.length - length)) + this.complete(file); + else + objj_files[path] = file; + } +} +objj_search.prototype.complete = function(aFile) +{ + var index = 0, + count = this.searchedPaths.length; + for (; index < count; ++index) + { + objj_files[this.searchedPaths[index]] = aFile; + } + if (this.didCompleteCallback) + this.didCompleteCallback(aFile); +} +function objj_standardize_path(aPath) +{ + if (aPath.indexOf("/./") != -1 && aPath.indexOf("//") != -1 && aPath.indexOf("/../") != -1) + return aPath; + var index = 0, + components = aPath.split('/'); + for(;index < components.length; ++index) + if(components[index] == "..") + { + components.splice(index - 1, 2); + index -= 2; + } + else if(index != 0 && !components[index].length || components[index] == '.' || components[index] == "..") + components.splice(index--, 1); + return components.join('/'); +} +if (window.ActiveXObject) { +var objj_standardize_xml = function(aRequest) +{ + var XMLData = new ActiveXObject("Microsoft.XMLDOM"); + XMLData.loadXML(aRequest.responseText.substr(aRequest.responseText.indexOf(".dtd\">") + 6)); + return XMLData; +} +} else { +var objj_standardize_xml = function(aRequest) +{ + return aRequest.responseXML; +} +} +function objj_response_xmlhttp() +{ + return new Object; +} +if (window.XMLHttpRequest) { +var objj_request_xmlhttp = function() +{ + return new XMLHttpRequest(); +} +} else if (window.ActiveXObject) { +var MSXML_XMLHTTP_OBJECTS = [ "Microsoft.XMLHTTP", "Msxml2.XMLHTTP", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP.6.0" ], + index = MSXML_XMLHTTP_OBJECTS.length; +while (index--) +{ + try + { + new ActiveXObject(MSXML_XMLHTTP_OBJECTS[index]); + break; + } + catch (anException) + { + } +} +var MSXML_XMLHTTP = MSXML_XMLHTTP_OBJECTS[index]; +delete index; +delete MSXML_XMLHTTP_OBJECTS; +var objj_request_xmlhttp = function() +{ + return new ActiveXObject(MSXML_XMLHTTP); +} +} +var OBJJUnrecognizedFormatException = "OBJJUnrecognizedFormatException"; +var STATIC_MAGIC_NUMBER = "@STATIC", + MARKER_PATH = "p", + MARKER_CODE = "c", + MARKER_BUNDLE = "b", + MARKER_TEXT = "t", + MARKER_IMPORT_STD = 'I', + MARKER_IMPORT_LOCAL = 'i'; +var STATIC_EXTENSION = "sj"; +function objj_decompile(aString, bundle) +{ + var stream = new objj_markedStream(aString); + if (stream.magicNumber() != STATIC_MAGIC_NUMBER) + objj_exception_throw(new objj_exception(OBJJUnrecognizedFormatException, "*** Could not recognize executable code format.")); + if (stream.version() != 1.0) + objj_exception_throw(new objj_exception(OBJJUnrecognizedFormatException, "*** Could not recognize executable code format.")); + var file = NULL, + files = [], + marker; + while (marker = stream.getMarker()) + { + var text = stream.getString(); + switch (marker) + { + case MARKER_PATH: if (file && file.contents && file.path === file.bundle.path) + file.bundle.info = CPPropertyListCreateWithData({string:file.contents}); + file = new objj_file(); + file.path = (bundle.path).substr(0, (bundle.path).lastIndexOf('/') + 1) + text; + file.bundle = bundle; + file.fragments = []; + files.push(file); + objj_files[file.path] = file; + break; + case MARKER_BUNDLE: var bundlePath = (bundle.path).substr(0, (bundle.path).lastIndexOf('/') + 1) + '/' + text; + file.bundle = objj_getBundleWithPath(bundlePath); + if (!file.bundle) + { + file.bundle = new objj_bundle(); + file.bundle.path = bundlePath; + objj_setBundleForPath(file.bundle, bundlePath); + } + break; + case MARKER_TEXT: file.contents = text; + break; + case MARKER_CODE: file.fragments.push(fragment_create_code(text, bundle, file)); + break; + case MARKER_IMPORT_STD: file.fragments.push(fragment_create_file(text, bundle, NO, file)); + break; + case MARKER_IMPORT_LOCAL: file.fragments.push(fragment_create_file(text, bundle, YES, file)); + break; + } + } + if (file && file.contents && file.path === file.bundle.path) + file.bundle.info = CPPropertyListCreateWithData({string:file.contents}); + return files; +} +var OBJJ_EXCEPTION_OUTPUT_STREAM = NULL; +function objj_exception(aName, aReason, aUserInfo) +{ + this.name = aName; + this.reason = aReason; + this.userInfo = aUserInfo; + this.__address = (OBJECT_COUNT++); +} +objj_exception.prototype.toString = function() +{ + return this.reason; +} +function objj_exception_throw(anException) +{ + throw anException; +} +function objj_exception_report(anException, aSourceFile) +{ + objj_fprintf(OBJJ_EXCEPTION_OUTPUT_STREAM, aSourceFile.path + "\n" + anException); + throw anException; +} +function objj_exception_setOutputStream(aStream) +{ + OBJJ_EXCEPTION_OUTPUT_STREAM = aStream; +} +objj_exception_setOutputStream(warning_stream); +var OBJJ_PREPROCESSOR_DEBUG_SYMBOLS = 1 << 0; +function objj_preprocess( aString, aBundle, aSourceFile, flags) +{ + try + { + return new objj_preprocessor(aString.replace(/^#[^\n]+\n/, "\n"), aSourceFile, aBundle, flags).fragments(); + } + catch (anException) + { + objj_exception_report(anException, aSourceFile); + } + return []; +} +var OBJJParseException = "OBJJParseException", + OBJJClassNotFoundException = "OBJJClassNotFoundException"; +var TOKEN_ACCESSORS = "accessors", + TOKEN_CLASS = "class", + TOKEN_END = "end", + TOKEN_FUNCTION = "function", + TOKEN_IMPLEMENTATION = "implementation", + TOKEN_IMPORT = "import", + TOKEN_NEW = "new", + TOKEN_SELECTOR = "selector", + TOKEN_SUPER = "super", + TOKEN_EQUAL = '=', + TOKEN_PLUS = '+', + TOKEN_MINUS = '-', + TOKEN_COLON = ':', + TOKEN_COMMA = ',', + TOKEN_PERIOD = '.', + TOKEN_ASTERISK = '*', + TOKEN_SEMICOLON = ';', + TOKEN_LESS_THAN = '<', + TOKEN_OPEN_BRACE = '{', + TOKEN_CLOSE_BRACE = '}', + TOKEN_GREATER_THAN = '>', + TOKEN_OPEN_BRACKET = '[', + TOKEN_DOUBLE_QUOTE = '"', + TOKEN_PREPROCESSOR = '@', + TOKEN_CLOSE_BRACKET = ']', + TOKEN_QUESTION_MARK = '?', + TOKEN_OPEN_PARENTHESIS = '(', + TOKEN_CLOSE_PARENTHESIS = ')', + TOKEN_WHITESPACE = /^(?:(?:\s+$)|(?:\/(?:\/|\*)))/, + TOKEN_NUMBER = /^[+-]?\d+(([.]\d+)*([eE][+-]?\d+))?$/, + TOKEN_IDENTIFIER = /^[a-zA-Z_$](\w|$)*$/; +var SUPER_CLASSES = new objj_dictionary(); +var OBJJ_CURRENT_BUNDLE = NULL; +var objj_lexer = function(aString) +{ + this._index = -1; + this._tokens = (aString + '\n').match(/\/\/.*(\r|\n)?|\/\*(?:.|\n|\r)*?\*\/|\w+\b|[+-]?\d+(([.]\d+)*([eE][+-]?\d+))?|"[^"\\]*(\\[\s\S][^"\\]*)*"|'[^'\\]*(\\[\s\S][^'\\]*)*'|\s+|./g); + this._context = []; + return this; +} +objj_lexer.prototype.push = function() +{ + this._context.push(this._index); +} +objj_lexer.prototype.pop = function() +{ + this._index = this._context.pop(); +} +objj_lexer.prototype.peak = function(shouldSkipWhitespace) +{ + if (shouldSkipWhitespace) + { + this.push(); + var token = this.skip_whitespace(); + this.pop(); + return token; + } + return this._tokens[this._index + 1]; +} +objj_lexer.prototype.next = function() +{ + return this._tokens[++this._index]; +} +objj_lexer.prototype.previous = function() +{ + return this._tokens[--this._index]; +} +objj_lexer.prototype.last = function() +{ + if (this._index < 0) + return NULL; + return this._tokens[this._index - 1]; +} +objj_lexer.prototype.skip_whitespace= function(shouldMoveBackwards) +{ + var token; + if (shouldMoveBackwards) + while((token = this.previous()) && TOKEN_WHITESPACE.test(token)) ; + else + while((token = this.next()) && TOKEN_WHITESPACE.test(token)) ; + return token; +} +var objj_stringBuffer = function() +{ + this.atoms = []; +} +objj_stringBuffer.prototype.toString = function() +{ + return this.atoms.join(""); +} +objj_stringBuffer.prototype.clear = function() +{ + this.atoms = []; +} +objj_stringBuffer.prototype.isEmpty = function() +{ + return (this.atoms.length === 0); +} +var objj_preprocessor = function(aString, aSourceFile, aBundle, flags) +{ + this._currentClass = ""; + this._currentSuperClass = ""; + this._file = aSourceFile; + this._fragments = []; + this._preprocessed = new objj_stringBuffer(); + this._tokens = new objj_lexer(aString); + this._flags = flags; + this._bundle = aBundle; + this.preprocess(this._tokens, this._preprocessed); + this.fragment(); +} +objj_preprocessor.prototype.fragments = function() +{ + return this._fragments; +} +objj_preprocessor.prototype.accessors = function(tokens) +{ + var token = tokens.skip_whitespace(), + attributes = {}; + if (token != TOKEN_OPEN_PARENTHESIS) + { + tokens.previous(); + return attributes; + } + while ((token = tokens.skip_whitespace()) != TOKEN_CLOSE_PARENTHESIS) + { + var name = token, + value = true; + if (!/^\w+$/.test(name)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** @property attribute name not valid.")); + if ((token = tokens.skip_whitespace()) == TOKEN_EQUAL) + { + value = tokens.skip_whitespace(); + if (!/^\w+$/.test(value)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** @property attribute value not valid.")); + if (name == "setter") + { + if ((token = tokens.next()) != TOKEN_COLON) + objj_exception_throw(new objj_exception(OBJJParseException, "*** @property setter attribute requires argument with \":\" at end of selector name.")); + value += ":"; + } + token = tokens.skip_whitespace(); + } + attributes[name] = value; + if (token == TOKEN_CLOSE_PARENTHESIS) + break; + if (token != TOKEN_COMMA) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected ',' or ')' in @property attribute list.")); + } + return attributes; +} +objj_preprocessor.prototype.brackets = function( tokens, aStringBuffer) +{ + var tuples = []; + while (this.preprocess(tokens, NULL, NULL, NULL, tuples[tuples.length] = [])) ; + if (tuples[0].length === 1) + { + aStringBuffer.atoms[aStringBuffer.atoms.length] = '['; + aStringBuffer.atoms[aStringBuffer.atoms.length] = tuples[0][0]; + aStringBuffer.atoms[aStringBuffer.atoms.length] = ']'; + } + else + { + var selector = new objj_stringBuffer(); + if (tuples[0][0].atoms[0] == TOKEN_SUPER) + { + aStringBuffer.atoms[aStringBuffer.atoms.length] = "objj_msgSendSuper("; + aStringBuffer.atoms[aStringBuffer.atoms.length] = "{ receiver:self, super_class:" + this._currentSuperClass + " }"; + } + else + { + aStringBuffer.atoms[aStringBuffer.atoms.length] = "objj_msgSend("; + aStringBuffer.atoms[aStringBuffer.atoms.length] = tuples[0][0]; + } + selector.atoms[selector.atoms.length] = tuples[0][1]; + var index = 1, + count = tuples.length, + marg_list = new objj_stringBuffer(); + for(; index < count; ++index) + { + var pair = tuples[index]; + selector.atoms[selector.atoms.length] = pair[1] + marg_list.atoms[marg_list.atoms.length] = ", " + pair[0]; + } + aStringBuffer.atoms[aStringBuffer.atoms.length] = ", \""; + aStringBuffer.atoms[aStringBuffer.atoms.length] = selector; + aStringBuffer.atoms[aStringBuffer.atoms.length] = '\"'; + aStringBuffer.atoms[aStringBuffer.atoms.length] = marg_list; + aStringBuffer.atoms[aStringBuffer.atoms.length] = ')'; + } +} +objj_preprocessor.prototype.directive = function(tokens, aStringBuffer, allowedDirectivesFlags) +{ + var buffer = aStringBuffer ? aStringBuffer : new objj_stringBuffer(), + token = tokens.next(); + if (token.charAt(0) == TOKEN_DOUBLE_QUOTE) + buffer.atoms[buffer.atoms.length] = token; + else if (token == TOKEN_CLASS) + { + tokens.skip_whitespace(); + return; + } + else if (token == TOKEN_IMPLEMENTATION) + this.implementation(tokens, buffer); + else if (token == TOKEN_IMPORT) + this._import(tokens); + else if (token == TOKEN_SELECTOR) + this.selector(tokens, buffer); + else if (token == TOKEN_ACCESSORS) + return this.accessors(tokens); + if (!aStringBuffer) + return buffer; +} +objj_preprocessor.prototype.fragment = function() +{ + var preprocessed = this._preprocessed.toString(); + if ((/[^\s]/).test(preprocessed)) + this._fragments.push(fragment_create_code(preprocessed, this._bundle, this._file)); + this._preprocessed.clear(); +} +objj_preprocessor.prototype.implementation = function(tokens, aStringBuffer) +{ + var buffer = aStringBuffer, + token = "", + category = NO, + class_name = tokens.skip_whitespace(), + superclass_name = "Nil", + instance_methods = new objj_stringBuffer(), + class_methods = new objj_stringBuffer(); + if (!(/^\w/).test(class_name)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected class name, found \"" + class_name + "\".")); + this._currentSuperClass = NULL; + this._currentClass = class_name; + if((token = tokens.skip_whitespace()) == TOKEN_OPEN_PARENTHESIS) + { + token = tokens.skip_whitespace(); + if (token == TOKEN_CLOSE_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Can't Have Empty Category Name for class \"" + class_name + "\".")); + if (tokens.skip_whitespace() != TOKEN_CLOSE_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Improper Category Definition for class \"" + class_name + "\".")); + buffer.atoms[buffer.atoms.length] = "{\nvar the_class = objj_getClass(\"" + class_name + "\")\n"; + buffer.atoms[buffer.atoms.length] = "if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, \"*** Could not find definition for class \\\"" + class_name + "\\\"\"));\n"; + buffer.atoms[buffer.atoms.length] = "var meta_class = the_class.isa;"; + var superclass_name = ((SUPER_CLASSES)._buckets[class_name]); + if (!superclass_name) + this._currentSuperClass = "objj_getClass(\"" + class_name + "\").super_class"; + else + this._currentSuperClass = "objj_getClass(\"" + superclass_name + "\")"; + } + else + { + if(token == TOKEN_COLON) + { + token = tokens.skip_whitespace(); + if (!TOKEN_IDENTIFIER.test(token)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected class name, found \"" + token + "\".")); + superclass_name = token; + this._currentSuperClass = "objj_getClass(\"" + superclass_name + "\")"; + { if ((SUPER_CLASSES)._buckets[class_name] == NULL) { (SUPER_CLASSES)._keys.push(class_name); ++(SUPER_CLASSES).count; } if (((SUPER_CLASSES)._buckets[class_name] = superclass_name) == NULL) --(SUPER_CLASSES).count;}; + token = tokens.skip_whitespace(); + } + buffer.atoms[buffer.atoms.length] = "{var the_class = objj_allocateClassPair(" + superclass_name + ", \"" + class_name + "\"),\nmeta_class = the_class.isa;"; + if (token == TOKEN_OPEN_BRACE) + { + var ivar_count = 0, + declaration = [], + attributes, + accessors = {}; + while((token = tokens.skip_whitespace()) && token != TOKEN_CLOSE_BRACE) + { + if (token == TOKEN_PREPROCESSOR) + attributes = this.directive(tokens); + else if (token == TOKEN_SEMICOLON) + { + if (ivar_count++ == 0) + buffer.atoms[buffer.atoms.length] = "class_addIvars(the_class, ["; + else + buffer.atoms[buffer.atoms.length] = ", "; + var name = declaration[declaration.length - 1]; + buffer.atoms[buffer.atoms.length] = "new objj_ivar(\"" + name + "\")"; + declaration = []; + if (attributes) + { + accessors[name] = attributes; + attributes = NULL; + } + } + else + declaration.push(token); + } + if (declaration.length) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected ';' in ivar declaration, found '}'.")); + if (ivar_count) + buffer.atoms[buffer.atoms.length] = "]);\n"; + if (!token) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected '}'")); + for (ivar_name in accessors) + { + var accessor = accessors[ivar_name], + property = accessor["property"] || ivar_name; + var getterName = accessor["getter"] || property, + getterCode = "(id)" + getterName + "\n{\nreturn " + ivar_name + ";\n}"; + if (instance_methods.atoms.length !== 0) + instance_methods.atoms[instance_methods.atoms.length] = ",\n"; + instance_methods.atoms[instance_methods.atoms.length] = this.method(new objj_lexer(getterCode)); + if (accessor["readonly"]) + continue; + var setterName = accessor["setter"]; + if (!setterName) + { + var start = property.charAt(0) == '_' ? 1 : 0; + setterName = (start ? "_" : "") + "set" + property.substr(start, 1).toUpperCase() + property.substring(start + 1) + ":"; + } + var setterCode = "(void)" + setterName + "(id)newValue\n{\n"; + if (accessor["copy"]) + setterCode += "if (" + ivar_name + " !== newValue)\n" + ivar_name + " = [newValue copy];\n}"; + else + setterCode += ivar_name + " = newValue;\n}"; + if (instance_methods.atoms.length !== 0) + instance_methods.atoms[instance_methods.atoms.length] = ",\n"; + instance_methods.atoms[instance_methods.atoms.length] = this.method(new objj_lexer(setterCode)); + } + } + else + tokens.previous(); + buffer.atoms[buffer.atoms.length] = "objj_registerClassPair(the_class);\n"; + buffer.atoms[buffer.atoms.length] = "objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path));\n"; + } + while ((token = tokens.skip_whitespace())) + { + if (token == TOKEN_PLUS) + { + if (class_methods.atoms.length !== 0) + class_methods.atoms[class_methods.atoms.length] = ", "; + class_methods.atoms[class_methods.atoms.length] = this.method(tokens); + } + else if (token == TOKEN_MINUS) + { + if (instance_methods.atoms.length !== 0) + instance_methods.atoms[instance_methods.atoms.length] = ", "; + instance_methods.atoms[instance_methods.atoms.length] = this.method(tokens); + } + else if (token == TOKEN_PREPROCESSOR) + { + if ((token = tokens.next()) == TOKEN_END) + break; + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected \"@end\", found \"@" + token + "\".")); + } + } + if (instance_methods.atoms.length !== 0) + { + buffer.atoms[buffer.atoms.length] = "class_addMethods(the_class, ["; + buffer.atoms[buffer.atoms.length] = instance_methods; + buffer.atoms[buffer.atoms.length] = "]);\n"; + } + if (class_methods.atoms.length !== 0) + { + buffer.atoms[buffer.atoms.length] = "class_addMethods(meta_class, ["; + buffer.atoms[buffer.atoms.length] = class_methods; + buffer.atoms[buffer.atoms.length] = "]);\n"; + } + buffer.atoms[buffer.atoms.length] = '}'; +} +objj_preprocessor.prototype._import = function(tokens) +{ + this.fragment(); + var path = "", + token = tokens.skip_whitespace(), + isLocal = (token != TOKEN_LESS_THAN); + if (token == TOKEN_LESS_THAN) + { + while((token = tokens.next()) && token != TOKEN_GREATER_THAN) + path += token; + if(!token) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Unterminated import statement.")); + } + else if (token.charAt(0) == TOKEN_DOUBLE_QUOTE) + path = token.substr(1, token.length - 2); + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expecting '<' or '\"', found \"" + token + "\".")); + this._fragments.push(fragment_create_file(path, NULL, isLocal, this._file)); +} +objj_preprocessor.prototype.method = function(tokens) +{ + var buffer = new objj_stringBuffer(), + token, + selector = "", + parameters = []; + while((token = tokens.skip_whitespace()) && token != TOKEN_OPEN_BRACE) + { + if (token == TOKEN_COLON) + { + selector += token; + token = tokens.skip_whitespace(); + if (token == TOKEN_OPEN_PARENTHESIS) + { + while((token = tokens.skip_whitespace()) && token != TOKEN_CLOSE_PARENTHESIS) ; + token = tokens.skip_whitespace(); + } + parameters[parameters.length] = token; + } + else if (token == TOKEN_OPEN_PARENTHESIS) + while((token = tokens.skip_whitespace()) && token != TOKEN_CLOSE_PARENTHESIS) ; + else if (token == TOKEN_COMMA) + { + if ((token = tokens.skip_whitespace()) != TOKEN_PERIOD || tokens.next() != TOKEN_PERIOD || tokens.next() != TOKEN_PERIOD) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Argument list expected after ','.")); + } + else + selector += token; + } + var index = 0, + count = parameters.length; + buffer.atoms[buffer.atoms.length] = "new objj_method(sel_getUid(\""; + buffer.atoms[buffer.atoms.length] = selector; + buffer.atoms[buffer.atoms.length] = "\"), function"; + if (this._flags & OBJJ_PREPROCESSOR_DEBUG_SYMBOLS) + buffer.atoms[buffer.atoms.length] = " $" + this._currentClass + "__" + selector.replace(/:/g, "_"); + buffer.atoms[buffer.atoms.length] = "(self, _cmd"; + for(; index < count; ++index) + { + buffer.atoms[buffer.atoms.length] = ", "; + buffer.atoms[buffer.atoms.length] = parameters[index]; + } + buffer.atoms[buffer.atoms.length] = ")\n{ with(self)\n{"; + buffer.atoms[buffer.atoms.length] = this.preprocess(tokens, NULL, TOKEN_CLOSE_BRACE, TOKEN_OPEN_BRACE); + buffer.atoms[buffer.atoms.length] = "}\n})"; + return buffer; +} +objj_preprocessor.prototype.preprocess = function(tokens, aStringBuffer, terminator, instigator, tuple) +{ + var buffer = aStringBuffer ? aStringBuffer : new objj_stringBuffer(), + count = 0, + token = ""; + if (tuple) + { + tuple[0] = buffer; + var bracket = false, + closures = [0, 0, 0]; + } + while ((token = tokens.next()) && ((token != terminator) || count)) + { + if (tuple) + { + if (token === TOKEN_QUESTION_MARK) + ++closures[2]; + else if (token === TOKEN_OPEN_BRACE) + ++closures[0]; + else if (token === TOKEN_CLOSE_BRACE) + --closures[0]; + else if (token === TOKEN_OPEN_PARENTHESIS) + ++closures[1]; + else if (token === TOKEN_CLOSE_PARENTHESIS) + --closures[1]; + else if ((token === TOKEN_COLON && closures[2]-- === 0 || + (bracket = (token === TOKEN_CLOSE_BRACKET))) && + closures[0] === 0 && closures[1] === 0) + { + tokens.push(); + var label = bracket ? tokens.skip_whitespace(true) : tokens.previous(), + isEmptyLabel = TOKEN_WHITESPACE.test(label); + if (isEmptyLabel || TOKEN_IDENTIFIER.test(label) && TOKEN_WHITESPACE.test(tokens.previous())) + { + tokens.push(); + var last = tokens.skip_whitespace(true), + operatorCheck = true, + isDoubleOperator = false; + if (last === '+' || last === '-'){ + if (tokens.previous() !== last) + operatorCheck = false; + else + { + last = tokens.skip_whitespace(true); + isDoubleOperator = true; + }} + tokens.pop(); + tokens.pop(); + if (operatorCheck && ( + (!isDoubleOperator && (last === TOKEN_CLOSE_BRACE)) || + last === TOKEN_CLOSE_PARENTHESIS || last === TOKEN_CLOSE_BRACKET || + last === TOKEN_PERIOD || TOKEN_NUMBER.test(last) || + last.charAt(last.length - 1) === '\"' || last.charAt(last.length - 1) === '\'' || + TOKEN_IDENTIFIER.test(last) && !/^(new|return|case|var)$/.test(last))) + { + if (isEmptyLabel) + tuple[1] = ':'; + else + { + tuple[1] = label; + if (!bracket) + tuple[1] += ':'; + var count = buffer.atoms.length; + while (buffer.atoms[count--] !== label) ; + buffer.atoms.length = count; + } + return !bracket; + } + if (bracket) + return NO; + } + tokens.pop(); + if (bracket) + return NO; + } + closures[2] = MAX(closures[2], 0); + } + if (instigator) + { + if (token == instigator) + ++count; + else if (token == terminator) + --count; + } + if(token == TOKEN_IMPORT) + { + objj_fprintf(warning_stream, this._file.path + ": import keyword is deprecated, use @import instead."); + this._import(tokens); + } + else if (token === TOKEN_FUNCTION) + { + var accumulator = ""; + while((token = tokens.next()) && token != TOKEN_OPEN_PARENTHESIS && !(/^\w/).test(token)) + accumulator += token; + if (token === TOKEN_OPEN_PARENTHESIS) + { + buffer.atoms[buffer.atoms.length] = "function" + accumulator + '('; + if (tuple) + ++closures[1]; + } + else + { + buffer.atoms[buffer.atoms.length] = token + "= function"; + } + } + else if (token == TOKEN_PREPROCESSOR) + this.directive(tokens, buffer); + else if (token == TOKEN_OPEN_BRACKET) + this.brackets(tokens, buffer); + else + buffer.atoms[buffer.atoms.length] = token; + } + if (tuple) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected ']' - Unterminated message send or array.")); + if (!aStringBuffer) + return buffer; +} +objj_preprocessor.prototype.selector = function(tokens, aStringBuffer) +{ + var buffer = aStringBuffer ? aStringBuffer : new objj_stringBuffer(); + buffer.atoms[buffer.atoms.length] = "sel_getUid(\""; + if (tokens.skip_whitespace() != TOKEN_OPEN_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected '('")); + var selector = tokens.skip_whitespace(); + if (selector == TOKEN_CLOSE_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Unexpected ')', can't have empty @selector()")); + aStringBuffer.atoms[aStringBuffer.atoms.length] = selector; + var token, + starting = true; + while ((token = tokens.next()) && token != TOKEN_CLOSE_PARENTHESIS) + { + if (starting && /^\d+$/.test(token) || !(/^(\w|$|\:)/.test(token))) + { + if (!(/\S/).test(token)) + if (tokens.skip_whitespace() == TOKEN_CLOSE_PARENTHESIS) + break; + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Unexpected whitespace in @selector().")); + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Illegal character '" + token + "' in @selector().")); + } + buffer.atoms[buffer.atoms.length] = token; + starting = (token == TOKEN_COLON); + } + buffer.atoms[buffer.atoms.length] = "\")"; + if (!aStringBuffer) + return buffer; +} +var objj_included_files = { }; +var FRAGMENT_CODE = 1, + FRAGMENT_FILE = 1 << 2, + FRAGMENT_LOCAL = 1 << 3; +function objj_fragment() +{ + this.info = NULL; + this.type = 0; + this.context = NULL; + this.bundle = NULL; + this.file = NULL; +} +function objj_context() +{ + this.fragments = []; + this.scheduled = NO; + this.blocked = NO; +} +objj_fragment.prototype.toMarkedString = function() +{ + return (this.type & FRAGMENT_FILE) ? ((this.type & FRAGMENT_LOCAL) ? MARKER_IMPORT_LOCAL : MARKER_IMPORT_STD) + ';' + this.info.length + ';' + this.info : + MARKER_CODE + ';' + this.info.length + ';' + this.info; +} +function fragment_create_code(aCode, aBundle, aFile) +{ + var fragment = new objj_fragment(); + fragment.type = (FRAGMENT_CODE); + fragment.info = (aCode); + fragment.bundle = aBundle; + fragment.file = aFile; + return fragment; +} +function fragment_create_file(aPath, aBundle, isLocal, aFile) +{ + var fragment = new objj_fragment(); + fragment.type = (FRAGMENT_FILE | (FRAGMENT_LOCAL * isLocal)); + fragment.info = aPath; + fragment.bundle = aBundle; + fragment.file = aFile; + return fragment; +} +objj_context.prototype.evaluate = function() +{ + this.scheduled = NO; + if (this.blocked) + return this.schedule(); + var sleep = NO, + start = new Date(), + fragments = this.fragments; + while (!sleep && fragments.length) + { + var fragment = fragments.pop(); + if ((fragment.type & FRAGMENT_FILE)) + sleep = fragment_evaluate_file(fragment); + else + sleep = fragment_evaluate_code(fragment); + sleep = sleep || ((new Date() - start) > 3000); + } + if (sleep) + this.schedule(); + else if (this.didCompleteCallback) + this.didCompleteCallback(this); +} +objj_context.prototype.schedule = function() +{ + if (this.scheduled) + return; + this.scheduled = YES; + var context = this; + window.setNativeTimeout(function () { context.evaluate(); }, 0); +} +objj_context.prototype.pushFragment = function(aFragment) +{ + aFragment.context = this; + this.fragments.push(aFragment); +} +function fragment_evaluate_code(aFragment) +{ + var compiled; + OBJJ_CURRENT_BUNDLE = aFragment.bundle; + try + { + compiled = eval("function(){"+aFragment.info+"}"); + } + catch(anException) + { + objj_exception_report(anException, aFragment.file); + } + try + { + compiled(); + } + catch(anException) + { + objj_exception_report(anException, aFragment.file); + } + return NO; +} +function fragment_evaluate_file(aFragment) +{ + var context = aFragment.context, + requiresSleep = YES; + context.blocked = YES; + objj_request_file(aFragment.info, (aFragment.type & FRAGMENT_LOCAL), function(aFile) + { + requiresSleep = NO; + context.blocked = NO; + if (aFile == OBJJ_NO_FILE) + objj_alert("uh oh!"); + if (objj_included_files[aFile.path]) + return; + objj_included_files[aFile.path] = YES; + if (!aFile.fragments) + aFile.fragments = objj_preprocess(aFile.contents, aFile.bundle, aFile, OBJJ_PREPROCESSOR_DEBUG_SYMBOLS); + var fragments = aFile.fragments, + count = fragments.length, + directory = aFile.path.substr(0, aFile.path.lastIndexOf('/') + 1); + while (count--) + { + var fragment = fragments[count]; + if ((fragment.type & FRAGMENT_FILE)) + { + if ((fragment.type & FRAGMENT_LOCAL)) + fragment.info = directory + fragment.info; + objj_request_file(fragment.info, (fragment.type & FRAGMENT_LOCAL), NULL); + } + context.pushFragment(fragment); + } + }); + return requiresSleep; +} +function objj_import( pathOrPaths, isLocal, didCompleteCallback) +{ + var context = new objj_context(), + paths = pathOrPaths; + if (typeof paths === "string") + paths = [paths]; + var index = 0, + count = paths.length; + for (; index < count; ++index) + context.pushFragment(fragment_create_file(paths[index], new objj_bundle(""), isLocal, NULL)); + context.didCompleteCallback = didCompleteCallback; + context.evaluate(); +} +function objj_backtrace_format(aReceiver, aSelector) +{ + return "[<" + (((aReceiver.info & (CLS_META))) ? aReceiver : aReceiver.isa).name + " " + (typeof sprintf == "function" ? sprintf("%#08x", aReceiver.__address) : aReceiver.__address.toString(16)) + "> " + aSelector + "]"; +} +function objj_msgSend_Backtrace( aReceiver, aSelector) +{ + if (aReceiver == nil) + return nil; + objj_debug_backtrace.push(objj_backtrace_format(aReceiver, aSelector)); + try + { + var result = class_getMethodImplementation(aReceiver.isa, aSelector).apply(aReceiver, arguments); + } + catch (anException) + { + CPLog.error("Exception " + anException + " in " + objj_backtrace_format(aReceiver, aSelector)); + objj_debug_print_backtrace(); + } + objj_debug_backtrace.pop(); + return result; +} +function objj_msgSendSuper_Backtrace( aSuper, aSelector) +{ + objj_debug_backtrace.push(objj_backtrace_format(aSuper.receiver, aSelector)); + var super_class = aSuper.super_class; + arguments[0] = aSuper.receiver; + try + { + var result = class_getMethodImplementation(super_class, aSelector).apply(aSuper.receiver, arguments); + } + catch (anException) + { + CPLog.error("Exception " + anException + " in " + objj_backtrace_format(aSuper.receiver, aSelector)); + objj_debug_print_backtrace(); + } + objj_debug_backtrace.pop(); + return result; +} +function objj_msgSend_Profile( aReceiver, aSelector) +{ + if (aReceiver == nil) + return nil; + var profileRecord = { + parent : objj_debug_profile, + receiver : (((aReceiver.info & (CLS_META))) ? aReceiver : aReceiver.isa).name, + selector : aSelector, + calls : [] + } + objj_debug_profile.calls.push(profileRecord); + objj_debug_profile = profileRecord; + profileRecord.start = new Date(); + var result = class_getMethodImplementation(aReceiver.isa, aSelector).apply(aReceiver, arguments); + profileRecord.end = new Date(); + objj_debug_profile = profileRecord.parent; + return result; +} +function objj_msgSendSuper_Profile( aSuper, aSelector) +{ + var profileRecord = { + parent : objj_debug_profile, + receiver : (((aReceiver.info & (CLS_META))) ? aReceiver : aReceiver.isa).name, + selector : aSelector, + calls : [] + } + objj_debug_profile.calls.push(profileRecord); + objj_debug_profile = profileRecord; + profileRecord.start = new Date(); + var super_class = aSuper.super_class; + arguments[0] = aSuper.receiver; + var result = class_getMethodImplementation(super_class, aSelector).apply(aSuper.receiver, arguments); + profileRecord.end = new Date(); + objj_debug_profile = profileRecord.parent; + return result; +} +var objj_msgSend_Standard = objj_msgSend, + objj_msgSendSuper_Standard = objj_msgSendSuper; +var objj_debug_backtrace; +function objj_backtrace_set_enabled(enabled) +{ + if (enabled) + { + objj_debug_backtrace = []; + objj_msgSend = objj_msgSend_Backtrace; + objj_msgSendSuper = objj_msgSendSuper_Backtrace; + } + else + { + objj_msgSend = objj_msgSend_Standard; + objj_msgSendSuper = objj_msgSendSuper_Standard; + } +} +function objj_debug_print_backtrace() +{ + print(objj_debug_backtrace_string()); +} +function objj_debug_backtrace_string() +{ + return objj_debug_backtrace ? objj_debug_backtrace.join("\n") : ""; +} +var objj_debug_profile = null, + objj_currently_profiling = false, + objj_profile_cleanup; +function objj_profile(title) +{ + if (objj_currently_profiling) + return; + var objj_msgSend_profile_saved = objj_msgSend, + objj_msgSendSuper_profile_saved = objj_msgSendSuper; + objj_msgSend = objj_msgSend_Profile; + objj_msgSendSuper = objj_msgSendSuper_Profile; + var root = { calls: [] }; + objj_debug_profile = root; + var context = { + start : new Date(), + title : title, + profile : root + }; + objj_profile_cleanup = function() { + objj_msgSend = objj_msgSend_profile_saved; + objj_msgSendSuper = objj_msgSendSuper_profile_saved; + context.end = new Date(); + return context; + } + objj_currently_profiling = true; +} +function objj_profileEnd() +{ + if (!objj_currently_profiling) + return; + objj_debug_profile = null; + objj_currently_profiling = false; + return objj_profile_cleanup(); +} +if (window.OBJJ_MAIN_FILE) + objj_import(OBJJ_MAIN_FILE, YES, function() { main(); }); diff --git a/src/main/webapp/Frameworks/Foundation/Info.plist b/src/main/webapp/Frameworks/Foundation/Info.plist new file mode 100644 index 0000000..d989e51 --- /dev/null +++ b/src/main/webapp/Frameworks/Foundation/Info.plist @@ -0,0 +1,64 @@ + + + + + CPBundleExecutable + Foundation.sj + CPBundleIdentifier + com.280n.Foundation + CPBundleInfoDictionaryVersion + 6.0 + CPBundleName + Foundation + CPBundlePackageType + FMWK + CPBundlePlatforms + + objj + + CPBundleReplacedFiles + + CPArray+KVO.j + CPArray.j + CPAttributedString.j + CPBundle.j + CPCoder.j + CPCountedSet.j + CPData.j + CPDate.j + CPDictionary.j + CPEnumerator.j + CPException.j + CPIndexSet.j + CPInvocation.j + CPJSONPConnection.j + CPKeyedArchiver.j + CPKeyedUnarchiver.j + CPKeyValueCoding.j + CPKeyValueObserving.j + CPLog.j + CPNotification.j + CPNotificationCenter.j + CPNull.j + CPNumber.j + CPObject.j + CPObjJRuntime.j + CPPropertyListSerialization.j + CPRange.j + CPRunLoop.j + CPSet.j + CPSortDescriptor.j + CPString.j + CPTimer.j + CPUndoManager.j + CPURLConnection.j + CPURLRequest.j + CPURLResponse.j + CPUserSessionManager.j + CPValue.j + Foundation.j + + CPBundleVersion + 0.7.1 + + diff --git a/src/main/webapp/Frameworks/Foundation/Resources/log.css b/src/main/webapp/Frameworks/Foundation/Resources/log.css new file mode 100644 index 0000000..8a4ed37 --- /dev/null +++ b/src/main/webapp/Frameworks/Foundation/Resources/log.css @@ -0,0 +1,72 @@ +body { + font: 10px Monaco, Courier, "Courier New", monospace, mono; + padding-top: 15px; +} + +div > .fatal, div > .error, div > .warn, div > .info, div > .debug, div > .trace { + display: none; + overflow: hidden; + white-space: pre; + padding: 0px 5px 0px 5px; + margin-top: 2px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div[wrap="yes"] > div { + white-space: normal; +} + +.fatal { background-color: #ffb2b3; } +.error { background-color: #ffe2b2; } +.warn { background-color: #fdffb2; } +.info { background-color: #e4ffb2; } +.debug { background-color: #a0e5a0; } +.trace { background-color: #99b9ff; } + +.enfatal .fatal, .enerror .error, .enwarn .warn, .eninfo .info, .endebug .debug, .entrace .trace { display: block; } + +div#header { + background-color: rgba(240,240,240,0.82); + position: fixed; + top: 0px; + left: 0px; + width: 100%; + border-bottom: 1px solid rgba(0,0,0,0.33); + text-align: center; + /*opacity: 0.2;*/ +} +/* +div#header:hover { + opacity: 1.0; +} +*/ +ul#enablers { + display: inline-block; + margin: 1px 15px 0 15px; + padding: 2px 0 2px 0; +} + +ul#enablers li { + display: inline; + padding: 0px 5px 0px 5px; + margin-left: 4px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +[enabled="no"] { + opacity: 0.25; +} + +ul#options { + display: inline-block; + margin: 0 15px 0px 15px; + padding: 0 0px; +} + +ul#options li { + margin: 0 0 0 0; + padding: 0 0 0 0; + display: inline; +} \ No newline at end of file diff --git a/src/main/webapp/Frameworks/Foundation/objj.platform/Foundation.sj b/src/main/webapp/Frameworks/Foundation/objj.platform/Foundation.sj new file mode 100644 index 0000000..6da0a92 --- /dev/null +++ b/src/main/webapp/Frameworks/Foundation/objj.platform/Foundation.sj @@ -0,0 +1,6479 @@ +@STATIC;1.0;p;13;CPArray+KVO.ji;9;CPArray.jc;11600; +var _1=objj_getClass("CPObject"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPObject\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("mutableArrayValueForKey:"),function(_3,_4,_5){ +with(_3){ +return objj_msgSend(objj_msgSend(_CPKVCArray,"alloc"),"initWithKey:forProxyObject:",_5,_3); +} +}),new objj_method(sel_getUid("mutableArrayValueForKeyPath:"),function(_6,_7,_8){ +with(_6){ +var _9=_8.indexOf("."); +if(_9<0){ +return objj_msgSend(_6,"mutableArrayValueForKey:",_8); +} +var _a=_8.substring(0,_9),_b=_8.substring(_9+1); +return objj_msgSend(objj_msgSend(_6,"valueForKeyPath:",_a),"valueForKeyPath:",_b); +} +})]); +var _1=objj_allocateClassPair(CPArray,"_CPKVCArray"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_proxyObject"),new objj_ivar("_key"),new objj_ivar("_insertSEL"),new objj_ivar("_insert"),new objj_ivar("_removeSEL"),new objj_ivar("_remove"),new objj_ivar("_replaceSEL"),new objj_ivar("_replace"),new objj_ivar("_insertManySEL"),new objj_ivar("_insertMany"),new objj_ivar("_removeManySEL"),new objj_ivar("_removeMany"),new objj_ivar("_replaceManySEL"),new objj_ivar("_replaceMany"),new objj_ivar("_objectAtIndexSEL"),new objj_ivar("_objectAtIndex"),new objj_ivar("_countSEL"),new objj_ivar("_count"),new objj_ivar("_accessSEL"),new objj_ivar("_access"),new objj_ivar("_setSEL"),new objj_ivar("_set")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithKey:forProxyObject:"),function(_c,_d,_e,_f){ +with(_c){ +_c=objj_msgSendSuper({receiver:_c,super_class:objj_getClass("CPArray")},"init"); +_key=_e; +_proxyObject=_f; +var _10=_key.charAt(0).toUpperCase()+_key.substring(1); +_insertSEL=sel_getName("insertObject:in"+_10+"AtIndex:"); +if(objj_msgSend(_proxyObject,"respondsToSelector:",_insertSEL)){ +_insert=objj_msgSend(_proxyObject,"methodForSelector:",_insertSEL); +} +_removeSEL=sel_getName("removeObjectFrom"+_10+"AtIndex:"); +if(objj_msgSend(_proxyObject,"respondsToSelector:",_removeSEL)){ +_remove=objj_msgSend(_proxyObject,"methodForSelector:",_removeSEL); +} +_replaceSEL=sel_getName("replaceObjectFrom"+_10+"AtIndex:withObject:"); +if(objj_msgSend(_proxyObject,"respondsToSelector:",_replaceSEL)){ +_replace=objj_msgSend(_proxyObject,"methodForSelector:",_replaceSEL); +} +_insertManySEL=sel_getName("insertObjects:in"+_10+"AtIndexes:"); +if(objj_msgSend(_proxyObject,"respondsToSelector:",_insertManySEL)){ +_insert=objj_msgSend(_proxyObject,"methodForSelector:",_insertManySEL); +} +_removeManySEL=sel_getName("removeObjectsFrom"+_10+"AtIndexes:"); +if(objj_msgSend(_proxyObject,"respondsToSelector:",_removeManySEL)){ +_remove=objj_msgSend(_proxyObject,"methodForSelector:",_removeManySEL); +} +_replaceManySEL=sel_getName("replaceObjectsFrom"+_10+"AtIndexes:withObjects:"); +if(objj_msgSend(_proxyObject,"respondsToSelector:",_replaceManySEL)){ +_replace=objj_msgSend(_proxyObject,"methodForSelector:",_replaceManySEL); +} +_objectAtIndexSEL=sel_getName("objectIn"+_10+"AtIndex:"); +if(objj_msgSend(_proxyObject,"respondsToSelector:",_objectAtIndexSEL)){ +_objectAtIndex=objj_msgSend(_proxyObject,"methodForSelector:",_objectAtIndexSEL); +} +_countSEL=sel_getName("countOf"+_10); +if(objj_msgSend(_proxyObject,"respondsToSelector:",_countSEL)){ +_count=objj_msgSend(_proxyObject,"methodForSelector:",_countSEL); +} +_accessSEL=sel_getName(_key); +if(objj_msgSend(_proxyObject,"respondsToSelector:",_accessSEL)){ +_access=objj_msgSend(_proxyObject,"methodForSelector:",_accessSEL); +} +_setSEL=sel_getName("set"+_10+":"); +if(objj_msgSend(_proxyObject,"respondsToSelector:",_setSEL)){ +_set=objj_msgSend(_proxyObject,"methodForSelector:",_setSEL); +} +return _c; +} +}),new objj_method(sel_getUid("copy"),function(_11,_12){ +with(_11){ +var _13=[],_14=objj_msgSend(_11,"count"); +for(var i=0;i<_14;i++){ +objj_msgSend(_13,"addObject:",objj_msgSend(_11,"objectAtIndex:",i)); +} +return _13; +} +}),new objj_method(sel_getUid("_representedObject"),function(_16,_17){ +with(_16){ +if(_access){ +return _access(_proxyObject,_accessSEL); +} +return objj_msgSend(_proxyObject,"valueForKey:",_key); +} +}),new objj_method(sel_getUid("_setRepresentedObject:"),function(_18,_19,_1a){ +with(_18){ +if(_set){ +return _set(_proxyObject,_setSEL,_1a); +} +objj_msgSend(_proxyObject,"setValue:forKey:",_1a,_key); +} +}),new objj_method(sel_getUid("count"),function(_1b,_1c){ +with(_1b){ +if(_count){ +return _count(_proxyObject,_countSEL); +} +return objj_msgSend(objj_msgSend(_1b,"_representedObject"),"count"); +} +}),new objj_method(sel_getUid("objectAtIndex:"),function(_1d,_1e,_1f){ +with(_1d){ +if(_objectAtIndex){ +return _objectAtIndex(_proxyObject,_objectAtIndexSEL,_1f); +} +return objj_msgSend(objj_msgSend(_1d,"_representedObject"),"objectAtIndex:",_1f); +} +}),new objj_method(sel_getUid("addObject:"),function(_20,_21,_22){ +with(_20){ +if(_insert){ +return _insert(_proxyObject,_insertSEL,_22,objj_msgSend(_20,"count")); +} +var _23=objj_msgSend(objj_msgSend(_20,"_representedObject"),"copy"); +objj_msgSend(_23,"addObject:",_22); +objj_msgSend(_20,"_setRepresentedObject:",_23); +} +}),new objj_method(sel_getUid("insertObject:atIndex:"),function(_24,_25,_26,_27){ +with(_24){ +if(_insert){ +return _insert(_proxyObject,_insertSEL,_26,_27); +} +var _28=objj_msgSend(objj_msgSend(_24,"_representedObject"),"copy"); +objj_msgSend(_28,"insertObject:atIndex:",_26,_27); +objj_msgSend(_24,"_setRepresentedObject:",_28); +} +}),new objj_method(sel_getUid("removeLastObject"),function(_29,_2a){ +with(_29){ +if(_remove){ +return _remove(_proxyObject,_removeSEL,objj_msgSend(_29,"count")-1); +} +var _2b=objj_msgSend(objj_msgSend(_29,"_representedObject"),"copy"); +objj_msgSend(_2b,"removeLastObject"); +objj_msgSend(_29,"_setRepresentedObject:",_2b); +} +}),new objj_method(sel_getUid("removeObjectAtIndex:"),function(_2c,_2d,_2e){ +with(_2c){ +if(_remove){ +return _remove(_proxyObject,_removeSEL,_2e); +} +var _2f=objj_msgSend(objj_msgSend(_2c,"_representedObject"),"copy"); +objj_msgSend(_2f,"removeObjectAtIndex:",_2e); +objj_msgSend(_2c,"_setRepresentedObject:",_2f); +} +}),new objj_method(sel_getUid("replaceObjectAtIndex:withObject:"),function(_30,_31,_32,_33){ +with(_30){ +if(_replace){ +return _replace(_proxyObject,_replaceSEL,_32,_33); +} +var _34=objj_msgSend(objj_msgSend(_30,"_representedObject"),"copy"); +objj_msgSend(_34,"replaceObjectAtIndex:withObject:",_32,_33); +objj_msgSend(_30,"_setRepresentedObject:",_34); +} +}),new objj_method(sel_getUid("objectsAtIndexes:"),function(_35,_36,_37){ +with(_35){ +var _38=objj_msgSend(_37,"firstIndex"),_39=[]; +while(_38!=CPNotFound){ +objj_msgSend(_39,"addObject:",objj_msgSend(_35,"objectAtIndex:",_38)); +_38=objj_msgSend(_37,"indexGreaterThanIndex:",_38); +} +return _39; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("alloc"),function(_3a,_3b){ +with(_3a){ +var a=[]; +a.isa=_3a; +var _3d=class_copyIvarList(_3a),_3e=_3d.length; +while(_3e--){ +a[ivar_getName(_3d[_3e])]=nil; +} +return a; +} +})]); +var _1=objj_getClass("CPArray"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPArray\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("valueForKey:"),function(_3f,_40,_41){ +with(_3f){ +if(_41.indexOf("@")===0){ +if(_41.indexOf(".")!==-1){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"called valueForKey: on an array with a complex key ("+_41+"). use valueForKeyPath:"); +} +if(_41=="@count"){ +return length; +} +return nil; +}else{ +var _42=[],_43=objj_msgSend(_3f,"objectEnumerator"),_44; +while((_44=objj_msgSend(_43,"nextObject"))!==nil){ +var _45=objj_msgSend(_44,"valueForKey:",_41); +if(_45===nil||_45===undefined){ +_45=objj_msgSend(CPNull,"null"); +} +_42.push(_45); +} +return _42; +} +} +}),new objj_method(sel_getUid("valueForKeyPath:"),function(_46,_47,_48){ +with(_46){ +if(_48.indexOf("@")===0){ +var _49=_48.indexOf("."),_4a=_48.substring(1,_49),_4b=_48.substring(_49+1); +if(_4c[_4a]){ +return _4c[_4a](_46,_47,_4b); +} +return nil; +}else{ +var _4d=[],_4e=objj_msgSend(_46,"objectEnumerator"),_4f; +while((_4f=objj_msgSend(_4e,"nextObject"))!==nil){ +var _50=objj_msgSend(_4f,"valueForKeyPath:",_48); +if(_50===nil||_50===undefined){ +_50=objj_msgSend(CPNull,"null"); +} +_4d.push(_50); +} +return _4d; +} +} +}),new objj_method(sel_getUid("setValue:forKey:"),function(_51,_52,_53,_54){ +with(_51){ +var _55=objj_msgSend(_51,"objectEnumerator"),_56; +while(_56=objj_msgSend(_55,"nextObject")){ +objj_msgSend(_56,"setValue:forKey:",_53,_54); +} +} +}),new objj_method(sel_getUid("setValue:forKeyPath:"),function(_57,_58,_59,_5a){ +with(_57){ +var _5b=objj_msgSend(_57,"objectEnumerator"),_5c; +while(_5c=objj_msgSend(_5b,"nextObject")){ +objj_msgSend(_5c,"setValue:forKeyPath:",_59,_5a); +} +} +})]); +var _4c=[]; +_4c["avg"]=avgOperator=function(_5d,_5e,_5f){ +var _60=objj_msgSend(_5d,"valueForKeyPath:",_5f),_61=objj_msgSend(_60,"count"),_62=_61; +average=0; +if(!_61){ +return 0; +} +while(_62--){ +average+=objj_msgSend(_60[_62],"doubleValue"); +} +return average/_61; +}; +_4c["max"]=maxOperator=function(_63,_64,_65){ +var _66=objj_msgSend(_63,"valueForKeyPath:",_65),_67=objj_msgSend(_66,"count")-1,max=objj_msgSend(_66,"lastObject"); +while(_67--){ +var _69=_66[_67]; +if(objj_msgSend(max,"compare:",_69)<0){ +max=_69; +} +} +return max; +}; +_4c["min"]=minOperator=function(_6a,_6b,_6c){ +var _6d=objj_msgSend(_6a,"valueForKeyPath:",_6c),_6e=objj_msgSend(_6d,"count")-1,min=objj_msgSend(_6d,"lastObject"); +while(_6e--){ +var _70=_6d[_6e]; +if(objj_msgSend(min,"compare:",_70)>0){ +min=_70; +} +} +return min; +}; +_4c["count"]=countOperator=function(_71,_72,_73){ +return objj_msgSend(_71,"count"); +}; +_4c["sum"]=sumOperator=function(_74,_75,_76){ +var _77=objj_msgSend(_74,"valueForKeyPath:",_76),_78=objj_msgSend(_77,"count"),sum=0; +while(_78--){ +sum+=objj_msgSend(_77[_78],"doubleValue"); +} +return sum; +}; +var _1=objj_getClass("CPArray"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPArray\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("addObserver:toObjectsAtIndexes:forKeyPath:options:context:"),function(_7a,_7b,_7c,_7d,_7e,_7f,_80){ +with(_7a){ +var _81=objj_msgSend(_7d,"firstIndex"); +while(_81>=0){ +objj_msgSend(_7a[_81],"addObserver:forKeyPath:options:context:",_7c,_7e,_7f,_80); +_81=objj_msgSend(_7d,"indexGreaterThanIndex:",_81); +} +} +}),new objj_method(sel_getUid("removeObserver:fromObjectsAtIndexes:forKeyPath:"),function(_82,_83,_84,_85,_86){ +with(_82){ +var _87=objj_msgSend(_85,"firstIndex"); +while(_87>=0){ +objj_msgSend(_82[_87],"removeObserver:forKeyPath:",_84,_86); +_87=objj_msgSend(_85,"indexGreaterThanIndex:",_87); +} +} +}),new objj_method(sel_getUid("addObserver:forKeyPath:options:context:"),function(_88,_89,_8a,_8b,_8c,_8d){ +with(_88){ +if(objj_msgSend(isa,"instanceMethodForSelector:",_89)===objj_msgSend(CPArray,"instanceMethodForSelector:",_89)){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"Unsupported method on CPArray"); +}else{ +objj_msgSendSuper({receiver:_88,super_class:objj_getClass("CPArray").super_class},"addObserver:forKeyPath:options:context:",_8a,_8b,_8c,_8d); +} +} +}),new objj_method(sel_getUid("removeObserver:forKeyPath:"),function(_8e,_8f,_90,_91){ +with(_8e){ +if(objj_msgSend(isa,"instanceMethodForSelector:",_8f)===objj_msgSend(CPArray,"instanceMethodForSelector:",_8f)){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"Unsupported method on CPArray"); +}else{ +objj_msgSendSuper({receiver:_8e,super_class:objj_getClass("CPArray").super_class},"removeObserver:forKeyPath:",_90,_91); +} +} +})]); +p;9;CPArray.ji;10;CPObject.ji;9;CPRange.ji;14;CPEnumerator.ji;18;CPSortDescriptor.ji;13;CPException.jc;17650; +var _1=objj_allocateClassPair(CPEnumerator,"_CPArrayEnumerator"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_array"),new objj_ivar("_index")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithArray:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPEnumerator")},"init"); +if(_3){ +_array=_5; +_index=-1; +} +return _3; +} +}),new objj_method(sel_getUid("nextObject"),function(_6,_7){ +with(_6){ +if(++_index>=objj_msgSend(_array,"count")){ +return nil; +} +return objj_msgSend(_array,"objectAtIndex:",_index); +} +})]); +var _1=objj_allocateClassPair(CPEnumerator,"_CPReverseArrayEnumerator"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_array"),new objj_ivar("_index")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithArray:"),function(_8,_9,_a){ +with(_8){ +_8=objj_msgSendSuper({receiver:_8,super_class:objj_getClass("CPEnumerator")},"init"); +if(_8){ +_array=_a; +_index=objj_msgSend(_array,"count"); +} +return _8; +} +}),new objj_method(sel_getUid("nextObject"),function(_b,_c){ +with(_b){ +if(--_index<0){ +return nil; +} +return objj_msgSend(_array,"objectAtIndex:",_index); +} +})]); +var _1=objj_allocateClassPair(CPObject,"CPArray"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("init"),function(_d,_e){ +with(_d){ +return _d; +} +}),new objj_method(sel_getUid("initWithArray:"),function(_f,_10,_11){ +with(_f){ +_f=objj_msgSendSuper({receiver:_f,super_class:objj_getClass("CPObject")},"init"); +if(_f){ +objj_msgSend(_f,"setArray:",_11); +} +return _f; +} +}),new objj_method(sel_getUid("initWithArray:copyItems:"),function(_12,_13,_14,_15){ +with(_12){ +if(!_15){ +return objj_msgSend(_12,"initWithArray:",_14); +} +_12=objj_msgSendSuper({receiver:_12,super_class:objj_getClass("CPObject")},"init"); +if(_12){ +var _16=0,_17=objj_msgSend(_14,"count"); +for(;_16<_17;++i){ +if(_14[i].isa){ +_12[i]=objj_msgSend(_14,"copy"); +}else{ +_12[i]=_14; +} +} +} +return _12; +} +}),new objj_method(sel_getUid("initWithObjects:"),function(_18,_19,_1a){ +with(_18){ +var i=2,_1c; +for(;i0){ +_4e=mid+1; +}else{ +if(c<0){ +_4f=mid-1; +}else{ +while(midlength){ +objj_msgSend(CPException,"raise:reason:",CPRangeException,"subarrayWithRange: aRange out of bounds"); +} +return slice(_8b.location,CPMaxRange(_8b)); +} +}),new objj_method(sel_getUid("sortedArrayUsingDescriptors:"),function(_8c,_8d,_8e){ +with(_8c){ +var _8f=objj_msgSend(_8c,"copy"); +objj_msgSend(_8f,"sortUsingDescriptors:",_8e); +return _8f; +} +}),new objj_method(sel_getUid("sortedArrayUsingFunction:"),function(_90,_91,_92){ +with(_90){ +return objj_msgSend(_90,"sortedArrayUsingFunction:context:",_92,nil); +} +}),new objj_method(sel_getUid("sortedArrayUsingFunction:context:"),function(_93,_94,_95,_96){ +with(_93){ +var _97=objj_msgSend(_93,"copy"); +objj_msgSend(_97,"sortUsingFunction:context:",_95,_96); +return _97; +} +}),new objj_method(sel_getUid("sortedArrayUsingSelector:"),function(_98,_99,_9a){ +with(_98){ +var _9b=objj_msgSend(_98,"copy"); +objj_msgSend(_9b,"sortUsingSelector:",_9a); +return _9b; +} +}),new objj_method(sel_getUid("componentsJoinedByString:"),function(_9c,_9d,_9e){ +with(_9c){ +return join(_9e); +} +}),new objj_method(sel_getUid("description"),function(_9f,_a0){ +with(_9f){ +var _a1=0,_a2=objj_msgSend(_9f,"count"),_a3="("; +for(;_a1<_a2;++_a1){ +var _a4=_9f[_a1]; +if(_a4&&_a4.isa){ +_a3+=objj_msgSend(_a4,"description"); +}else{ +_a3+=_a4; +} +if(_a1!==_a2-1){ +_a3+=", "; +} +} +return _a3+")"; +} +}),new objj_method(sel_getUid("pathsMatchingExtensions:"),function(_a5,_a6,_a7){ +with(_a5){ +var _a8=0,_a9=objj_msgSend(_a5,"count"),_aa=[]; +for(;_a8<_a9;++_a8){ +if(_a5[_a8].isa&&objj_msgSend(_a5[_a8],"isKindOfClass:",objj_msgSend(CPString,"class"))&&objj_msgSend(_a7,"containsObject:",objj_msgSend(_a5[_a8],"pathExtension"))){ +_aa.push(_a5[_a8]); +} +} +return _aa; +} +}),new objj_method(sel_getUid("setValue:forKey:"),function(_ab,_ac,_ad,_ae){ +with(_ab){ +var i=0,_b0=objj_msgSend(_ab,"count"); +for(;i<_b0;++i){ +objj_msgSend(_ab[i],"setValue:forKey:",_ad,_ae); +} +} +}),new objj_method(sel_getUid("valueForKey:"),function(_b1,_b2,_b3){ +with(_b1){ +var i=0,_b5=objj_msgSend(_b1,"count"),_b6=[]; +for(;i<_b5;++i){ +_b6.push(objj_msgSend(_b1[i],"valueForKey:",_b3)); +} +return _b6; +} +}),new objj_method(sel_getUid("copy"),function(_b7,_b8){ +with(_b7){ +return slice(0); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("alloc"),function(_b9,_ba){ +with(_b9){ +return []; +} +}),new objj_method(sel_getUid("array"),function(_bb,_bc){ +with(_bb){ +return objj_msgSend(objj_msgSend(_bb,"alloc"),"init"); +} +}),new objj_method(sel_getUid("arrayWithArray:"),function(_bd,_be,_bf){ +with(_bd){ +return objj_msgSend(objj_msgSend(_bd,"alloc"),"initWithArray:",_bf); +} +}),new objj_method(sel_getUid("arrayWithObject:"),function(_c0,_c1,_c2){ +with(_c0){ +return objj_msgSend(objj_msgSend(_c0,"alloc"),"initWithObjects:",_c2); +} +}),new objj_method(sel_getUid("arrayWithObjects:"),function(_c3,_c4,_c5){ +with(_c3){ +var i=2,_c7=objj_msgSend(objj_msgSend(_c3,"alloc"),"init"),_c8; +for(;i=objj_msgSend(_da,"count")+_de){ +objj_msgSend(CPException,"raise:reason:",CPRangeException,"the last index ("+_e0+") must be less than the sum of the original count ("+objj_msgSend(_da,"count")+") and the insertion count ("+_de+")."); +} +var _e1=0,_e2=objj_msgSend(_dd,"firstIndex"); +for(;_e1<_df;++_e1,_e2=objj_msgSend(_dd,"indexGreaterThanIndex:",_e2)){ +objj_msgSend(_da,"insertObject:atIndex:",_dc[_e1],_e2); +} +} +}),new objj_method(sel_getUid("replaceObjectAtIndex:withObject:"),function(_e3,_e4,_e5,_e6){ +with(_e3){ +_e3[_e5]=_e6; +} +}),new objj_method(sel_getUid("replaceObjectsAtIndexes:withObjects:"),function(_e7,_e8,_e9,_ea){ +with(_e7){ +var i=0,_ec=objj_msgSend(_e9,"firstIndex"); +while(_ec!=CPNotFound){ +objj_msgSend(_e7,"replaceObjectAtIndex:withObject:",_ec,_ea[i++]); +_ec=objj_msgSend(_e9,"indexGreaterThanIndex:",_ec); +} +} +}),new objj_method(sel_getUid("replaceObjectsInRange:withObjectsFromArray:range:"),function(_ed,_ee,_ef,_f0,_f1){ +with(_ed){ +if(!_f1.location&&_f1.length==objj_msgSend(_f0,"count")){ +objj_msgSend(_ed,"replaceObjectsInRange:withObjectsFromArray:",_ef,_f0); +}else{ +splice.apply(_ed,[_ef.location,_ef.length].concat(objj_msgSend(_f0,"subarrayWithRange:",_f1))); +} +} +}),new objj_method(sel_getUid("replaceObjectsInRange:withObjectsFromArray:"),function(_f2,_f3,_f4,_f5){ +with(_f2){ +splice.apply(_f2,[_f4.location,_f4.length].concat(_f5)); +} +}),new objj_method(sel_getUid("setArray:"),function(_f6,_f7,_f8){ +with(_f6){ +if(_f6==_f8){ +return; +} +splice.apply(_f6,[0,length].concat(_f8)); +} +}),new objj_method(sel_getUid("removeAllObjects"),function(_f9,_fa){ +with(_f9){ +splice(0,length); +} +}),new objj_method(sel_getUid("removeLastObject"),function(_fb,_fc){ +with(_fb){ +pop(); +} +}),new objj_method(sel_getUid("removeObject:"),function(_fd,_fe,_ff){ +with(_fd){ +objj_msgSend(_fd,"removeObject:inRange:",_ff,CPMakeRange(0,length)); +} +}),new objj_method(sel_getUid("removeObject:inRange:"),function(self,_cmd,_102,_103){ +with(self){ +var _104; +while((_104=objj_msgSend(self,"indexOfObject:inRange:",_102,_103))!=CPNotFound){ +objj_msgSend(self,"removeObjectAtIndex:",_104); +_103=CPIntersectionRange(CPMakeRange(_104,length-_104),_103); +} +} +}),new objj_method(sel_getUid("removeObjectAtIndex:"),function(self,_cmd,_107){ +with(self){ +splice(_107,1); +} +}),new objj_method(sel_getUid("removeObjectsAtIndexes:"),function(self,_cmd,_10a){ +with(self){ +var _10b=objj_msgSend(_10a,"lastIndex"); +while(_10b!=CPNotFound){ +objj_msgSend(self,"removeObjectAtIndex:",_10b); +_10b=objj_msgSend(_10a,"indexLessThanIndex:",_10b); +} +} +}),new objj_method(sel_getUid("removeObjectIdenticalTo:"),function(self,_cmd,_10e){ +with(self){ +objj_msgSend(self,"removeObjectIdenticalTo:inRange:",_10e,CPMakeRange(0,length)); +} +}),new objj_method(sel_getUid("removeObjectIdenticalTo:inRange:"),function(self,_cmd,_111,_112){ +with(self){ +var _113; +while((_113=objj_msgSend(self,"indexOfObjectIdenticalTo:inRange:",_111,_112))!=CPNotFound){ +objj_msgSend(self,"removeObjectAtIndex:",_113); +_112=CPIntersectionRange(CPMakeRange(_113,length-_113),_112); +} +} +}),new objj_method(sel_getUid("removeObjectsInArray:"),function(self,_cmd,_116){ +with(self){ +var _117=0,_118=objj_msgSend(_116,"count"); +for(;_117<_118;++_117){ +objj_msgSend(self,"removeObject:",_116[_117]); +} +} +}),new objj_method(sel_getUid("removeObjectsInRange:"),function(self,_cmd,_11b){ +with(self){ +splice(_11b.location,_11b.length); +} +}),new objj_method(sel_getUid("exchangeObjectAtIndex:withObjectAtIndex:"),function(self,_cmd,_11e,_11f){ +with(self){ +var _120=self[_11e]; +self[_11e]=self[_11f]; +self[_11f]=_120; +} +}),new objj_method(sel_getUid("sortUsingDescriptors:"),function(self,_cmd,_123){ +with(self){ +sort(function(lhs,rhs){ +var i=0,_127=objj_msgSend(_123,"count"),_128=CPOrderedSame; +while(i<_127){ +if((_128=objj_msgSend(_123[i++],"compareObject:withObject:",lhs,rhs))!=CPOrderedSame){ +return _128; +} +} +return _128; +}); +} +}),new objj_method(sel_getUid("sortUsingFunction:context:"),function(self,_cmd,_12b,_12c){ +with(self){ +sort(function(lhs,rhs){ +return _12b(lhs,rhs,_12c); +}); +} +}),new objj_method(sel_getUid("sortUsingSelector:"),function(self,_cmd,_131){ +with(self){ +sort(function(lhs,rhs){ +return objj_msgSend(lhs,_131,rhs); +}); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("arrayWithCapacity:"),function(self,_cmd,_136){ +with(self){ +return objj_msgSend(objj_msgSend(self,"alloc"),"initWithCapacity:",_136); +} +})]); +var _1=objj_getClass("CPArray"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPArray\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(self,_cmd,_139){ +with(self){ +return objj_msgSend(_139,"decodeObjectForKey:","CP.objects"); +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(self,_cmd,_13c){ +with(self){ +objj_msgSend(_13c,"_encodeArrayOfObjects:forKey:",self,"CP.objects"); +} +})]); +var _1=objj_allocateClassPair(CPArray,"CPMutableArray"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +Array.prototype.isa=CPArray; +objj_msgSend(CPArray,"initialize"); +p;20;CPAttributedString.ji;10;CPObject.ji;10;CPString.ji;14;CPDictionary.ji;9;CPRange.jc;12370; +var _1=objj_allocateClassPair(CPObject,"CPAttributedString"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_string"),new objj_ivar("_rangeEntries")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithString:"),function(_3,_4,_5){ +with(_3){ +return objj_msgSend(_3,"initWithString:attributes:",_5,nil); +} +}),new objj_method(sel_getUid("initWithAttributedString:"),function(_6,_7,_8){ +with(_6){ +var _9=objj_msgSend(_6,"initWithString:attributes:","",nil); +objj_msgSend(_9,"setAttributedString:",_8); +return _9; +} +}),new objj_method(sel_getUid("initWithString:attributes:"),function(_a,_b,_c,_d){ +with(_a){ +_a=objj_msgSendSuper({receiver:_a,super_class:objj_getClass("CPObject")},"init"); +if(!_d){ +_d=objj_msgSend(CPDictionary,"dictionary"); +} +_string=""+_c; +_rangeEntries=[_e(CPMakeRange(0,_string.length),_d)]; +return _a; +} +}),new objj_method(sel_getUid("string"),function(_f,_10){ +with(_f){ +return _string; +} +}),new objj_method(sel_getUid("mutableString"),function(_11,_12){ +with(_11){ +return objj_msgSend(_11,"string"); +} +}),new objj_method(sel_getUid("length"),function(_13,_14){ +with(_13){ +return _string.length; +} +}),new objj_method(sel_getUid("_indexOfEntryWithIndex:"),function(_15,_16,_17){ +with(_15){ +if(_17<0||_17>_string.length||_17===undefined){ +return CPNotFound; +} +var _18=function(_19,_1a){ +if(CPLocationInRange(_19,_1a.range)){ +return CPOrderedSame; +}else{ +if(CPMaxRange(_1a.range)<=_19){ +return CPOrderedDescending; +}else{ +return CPOrderedAscending; +} +} +}; +return objj_msgSend(_rangeEntries,"indexOfObject:sortedByFunction:",_17,_18); +} +}),new objj_method(sel_getUid("attributesAtIndex:effectiveRange:"),function(_1b,_1c,_1d,_1e){ +with(_1b){ +var _1f=objj_msgSend(_1b,"_indexOfEntryWithIndex:",_1d); +if(_1f==CPNotFound){ +return nil; +} +var _20=_rangeEntries[_1f]; +if(_1e){ +_1e.location=_20.range.location; +_1e.length=_20.range.length; +} +return _20.attributes; +} +}),new objj_method(sel_getUid("attributesAtIndex:longestEffectiveRange:inRange:"),function(_21,_22,_23,_24,_25){ +with(_21){ +var _26=objj_msgSend(_21,"_indexOfEntryWithIndex:",_23); +if(_26==CPNotFound){ +return nil; +} +if(!_24){ +return _rangeEntries[_26].attributes; +} +if(CPRangeInRange(_rangeEntries[_26].range,_25)){ +_24.location=_25.location; +_24.length=_25.length; +return _rangeEntries[_26].attributes; +} +var _27=_26-1,_28=_rangeEntries[_26],_29=_28.attributes; +while(_27>=0){ +var _2a=_rangeEntries[_27]; +if(CPMaxRange(_2a.range)>_25.location&&objj_msgSend(_2a.attributes,"isEqualToDictionary:",_29)){ +_28=_2a; +_27--; +}else{ +break; +} +} +_24.location=MAX(_28.range.location,_25.location); +_28=_rangeEntries[_26]; +_27=_26+1; +while(_27<_rangeEntries.length){ +var _2a=_rangeEntries[_27]; +if(_2a.range.location=0){ +var _3a=_rangeEntries[_37]; +if(CPMaxRange(_3a.range)>_35.location&&_3b(_39,objj_msgSend(_3a.attributes,"objectForKey:",_32))){ +_38=_3a; +_37--; +}else{ +break; +} +} +_34.location=MAX(_38.range.location,_35.location); +_38=_rangeEntries[_36]; +_37=_36+1; +while(_37<_rangeEntries.length){ +var _3a=_rangeEntries[_37]; +if(_3a.range.location0&&!objj_msgSend(_41,"isEqualToDictionary:",_42)){ +return NO; +} +if(CPMaxRange(_3f)_string.length||_49.location<0){ +objj_msgSend(CPException,"raise:reason:",CPRangeException,"tried to get attributedSubstring for an invalid range: "+(_49?CPStringFromRange(_49):"nil")); +} +var _4a=objj_msgSend(objj_msgSend(CPAttributedString,"alloc"),"initWithString:",_string.substring(_49.location,CPMaxRange(_49))),_4b=objj_msgSend(_47,"_indexOfEntryWithIndex:",_49.location),_4c=_rangeEntries[_4b],_4d=CPMaxRange(_49); +_4a._rangeEntries=[]; +while(_4c&&CPMaxRange(_4c.range)<_4d){ +var _4e=_4f(_4c); +_4e.range.location-=_49.location; +if(_4e.range.location<0){ +_4e.range.length+=_4e.range.location; +_4e.range.location=0; +} +_4a._rangeEntries.push(_4e); +_4c=_rangeEntries[++_4b]; +} +if(_4c){ +var _50=_4f(_4c); +_50.range.length=CPMaxRange(_49)-_50.range.location; +_50.range.location-=_49.location; +if(_50.range.location<0){ +_50.range.length+=_50.range.location; +_50.range.location=0; +} +_4a._rangeEntries.push(_50); +} +return _4a; +} +}),new objj_method(sel_getUid("replaceCharactersInRange:withString:"),function(_51,_52,_53,_54){ +with(_51){ +objj_msgSend(_51,"beginEditing"); +if(!_54){ +_54=""; +} +var _55=objj_msgSend(_51,"_indexOfEntryWithIndex:",_53.location),_56=_rangeEntries[_55],_57=objj_msgSend(_51,"_indexOfEntryWithIndex:",MAX(CPMaxRange(_53)-1,0)),_58=_rangeEntries[_57],_59=_54.length-_53.length; +_string=_string.substring(0,_53.location)+_54+_string.substring(CPMaxRange(_53)); +if(_55==_57){ +_56.range.length+=_59; +}else{ +_58.range.length=CPMaxRange(_58.range)-CPMaxRange(_53); +_58.range.location=CPMaxRange(_53); +_56.range.length=CPMaxRange(_53)-_56.range.location; +_rangeEntries.splice(_55,_57-_55); +} +_57=_55+1; +while(_57<_rangeEntries.length){ +_rangeEntries[_57++].range.location+=_59; +} +objj_msgSend(_51,"endEditing"); +} +}),new objj_method(sel_getUid("deleteCharactersInRange:"),function(_5a,_5b,_5c){ +with(_5a){ +objj_msgSend(_5a,"replaceCharactersInRange:withString:",_5c,nil); +} +}),new objj_method(sel_getUid("setAttributes:range:"),function(_5d,_5e,_5f,_60){ +with(_5d){ +objj_msgSend(_5d,"beginEditing"); +var _61=objj_msgSend(_5d,"_indexOfRangeEntryForIndex:splitOnMaxIndex:",_60.location,YES),_62=objj_msgSend(_5d,"_indexOfRangeEntryForIndex:splitOnMaxIndex:",CPMaxRange(_60),YES),_63=_61; +if(_62==CPNotFound){ +_62=_rangeEntries.length; +} +while(_63<_62){ +_rangeEntries[_63++].attributes=objj_msgSend(_5f,"copy"); +} +objj_msgSend(_5d,"_coalesceRangeEntriesFromIndex:toIndex:",_61,_62); +objj_msgSend(_5d,"endEditing"); +} +}),new objj_method(sel_getUid("addAttributes:range:"),function(_64,_65,_66,_67){ +with(_64){ +objj_msgSend(_64,"beginEditing"); +var _68=objj_msgSend(_64,"_indexOfRangeEntryForIndex:splitOnMaxIndex:",_67.location,YES),_69=objj_msgSend(_64,"_indexOfRangeEntryForIndex:splitOnMaxIndex:",CPMaxRange(_67),YES),_6a=_68; +if(_69==CPNotFound){ +_69=_rangeEntries.length; +} +while(_6a<_69){ +var _6b=objj_msgSend(_66,"allKeys"),_6c=objj_msgSend(_6b,"count"); +while(_6c--){ +objj_msgSend(_rangeEntries[_6a].attributes,"setObject:forKey:",objj_msgSend(_66,"objectForKey:",_6b[_6c]),_6b[_6c]); +} +_6a++; +} +objj_msgSend(_64,"_coalesceRangeEntriesFromIndex:toIndex:",_68,_69); +objj_msgSend(_64,"endEditing"); +} +}),new objj_method(sel_getUid("addAttribute:value:range:"),function(_6d,_6e,_6f,_70,_71){ +with(_6d){ +objj_msgSend(_6d,"addAttributes:range:",objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",_70,_6f),_71); +} +}),new objj_method(sel_getUid("removeAttribute:range:"),function(_72,_73,_74,_75){ +with(_72){ +objj_msgSend(_72,"addAttribute:value:range:",_74,nil,_75); +} +}),new objj_method(sel_getUid("appendAttributedString:"),function(_76,_77,_78){ +with(_76){ +objj_msgSend(_76,"insertAttributedString:atIndex:",_78,_string.length); +} +}),new objj_method(sel_getUid("insertAttributedString:atIndex:"),function(_79,_7a,_7b,_7c){ +with(_79){ +objj_msgSend(_79,"beginEditing"); +if(_7c<0||_7c>objj_msgSend(_79,"length")){ +objj_msgSend(CPException,"raise:reason:",CPRangeException,"tried to insert attributed string at an invalid index: "+_7c); +} +var _7d=objj_msgSend(_79,"_indexOfRangeEntryForIndex:splitOnMaxIndex:",_7c,YES),_7e=_7b._rangeEntries,_7f=objj_msgSend(_7b,"length"); +if(_7d==CPNotFound){ +_7d=_rangeEntries.length; +} +_string=_string.substring(0,_7c)+_7b._string+_string.substring(_7c); +var _80=_7d; +while(_80<_rangeEntries.length){ +_rangeEntries[_80++].range.location+=_7f; +} +var _81=_7e.length,_82=0; +while(_82<_81){ +var _83=_4f(_7e[_82++]); +_83.range.location+=_7c; +_rangeEntries.splice(_7d-1+_82,0,_83); +} +objj_msgSend(_79,"endEditing"); +} +}),new objj_method(sel_getUid("replaceCharactersInRange:withAttributedString:"),function(_84,_85,_86,_87){ +with(_84){ +objj_msgSend(_84,"beginEditing"); +objj_msgSend(_84,"deleteCharactersInRange:",_86); +objj_msgSend(_84,"insertAttributedString:atIndex:",_87,_86.location); +objj_msgSend(_84,"endEditing"); +} +}),new objj_method(sel_getUid("setAttributedString:"),function(_88,_89,_8a){ +with(_88){ +objj_msgSend(_88,"beginEditing"); +_string=_8a._string; +_rangeEntries=[]; +for(var i=0,_8c=_8a._rangeEntries.length;i<_8c;i++){ +_rangeEntries.push(_4f(_8a._rangeEntries[i])); +} +objj_msgSend(_88,"endEditing"); +} +}),new objj_method(sel_getUid("_indexOfRangeEntryForIndex:splitOnMaxIndex:"),function(_8d,_8e,_8f,_90){ +with(_8d){ +var _91=objj_msgSend(_8d,"_indexOfEntryWithIndex:",_8f); +if(_91<0){ +return _91; +} +var _92=_rangeEntries[_91]; +if(_92.range.location==_8f||(CPMaxRange(_92.range)-1==_8f&&!_90)){ +return _91; +} +var _93=splitRangeEntryAtIndex(_92,_8f); +_rangeEntries.splice(_91,1,_93[0],_93[1]); +_91++; +return _91; +} +}),new objj_method(sel_getUid("_coalesceRangeEntriesFromIndex:toIndex:"),function(_94,_95,_96,end){ +with(_94){ +var _98=_96; +if(end>=_rangeEntries.length){ +end=_rangeEntries.length-1; +} +while(_98_1f); +} +}),new objj_method(sel_getUid("compare:"),function(_20,_21,_22){ +with(_20){ +return (_20>_22)?CPOrderedDescending:((_20<_22)?CPOrderedAscending:CPOrderedSame); +} +}),new objj_method(sel_getUid("earlierDate:"),function(_23,_24,_25){ +with(_23){ +return (_23<_25)?_23:_25; +} +}),new objj_method(sel_getUid("laterDate:"),function(_26,_27,_28){ +with(_26){ +return (_26>_28)?_26:_28; +} +}),new objj_method(sel_getUid("description"),function(_29,_2a){ +with(_29){ +return _29.toString(); +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("alloc"),function(_2b,_2c){ +with(_2b){ +return new Date; +} +}),new objj_method(sel_getUid("date"),function(_2d,_2e){ +with(_2d){ +return objj_msgSend(objj_msgSend(_2d,"alloc"),"init"); +} +}),new objj_method(sel_getUid("dateWithTimeIntervalSinceNow:"),function(_2f,_30,_31){ +with(_2f){ +return objj_msgSend(objj_msgSend(CPDate,"alloc"),"initWithTimeIntervalSinceNow:",_31); +} +}),new objj_method(sel_getUid("dateWithTimeIntervalSince1970:"),function(_32,_33,_34){ +with(_32){ +return objj_msgSend(objj_msgSend(CPDate,"alloc"),"initWithTimeIntervalSince1970:",_34); +} +}),new objj_method(sel_getUid("dateWithTimeIntervalSinceReferenceDate:"),function(_35,_36,_37){ +with(_35){ +return objj_msgSend(objj_msgSend(CPDate,"alloc"),"initWithTimeIntervalSinceReferenceDate:",_37); +} +}),new objj_method(sel_getUid("distantPast"),function(_38,_39){ +with(_38){ +return new Date(-10000,1,1,0,0,0,0); +} +}),new objj_method(sel_getUid("distantFuture"),function(_3a,_3b){ +with(_3a){ +return new Date(10000,1,1,0,0,0,0); +} +}),new objj_method(sel_getUid("timeIntervalSinceReferenceDate"),function(_3c,_3d){ +with(_3c){ +return objj_msgSend(objj_msgSend(CPDate,"date"),"timeIntervalSinceReferenceDate"); +} +})]); +Date.prototype.isa=CPDate; +p;14;CPDictionary.ji;10;CPObject.ji;14;CPEnumerator.ji;13;CPException.jc;7057; +var _1=objj_allocateClassPair(CPEnumerator,"_CPDictionaryValueEnumerator"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_keyEnumerator"),new objj_ivar("_dictionary")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithDictionary:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPEnumerator")},"init"); +if(_3){ +_keyEnumerator=objj_msgSend(_5,"keyEnumerator"); +_dictionary=_5; +} +return _3; +} +}),new objj_method(sel_getUid("nextObject"),function(_6,_7){ +with(_6){ +var _8=objj_msgSend(_keyEnumerator,"nextObject"); +if(!_8){ +return nil; +} +return objj_msgSend(_dictionary,"objectForKey:",_8); +} +})]); +var _1=objj_allocateClassPair(CPObject,"CPDictionary"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithDictionary:"),function(_9,_a,_b){ +with(_9){ +var _c="",_d=objj_msgSend(objj_msgSend(CPDictionary,"alloc"),"init"); +for(_c in _b._buckets){ +objj_msgSend(_d,"setObject:forKey:",objj_msgSend(_b,"objectForKey:",_c),_c); +} +return _d; +} +}),new objj_method(sel_getUid("initWithObjects:forKeys:"),function(_e,_f,_10,_11){ +with(_e){ +_e=objj_msgSendSuper({receiver:_e,super_class:objj_getClass("CPObject")},"init"); +if(objj_msgSend(_10,"count")!=objj_msgSend(_11,"count")){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"Counts are different.("+objj_msgSend(_10,"count")+"!="+objj_msgSend(_11,"count")+")"); +} +if(_e){ +var i=objj_msgSend(_11,"count"); +while(i--){ +objj_msgSend(_e,"setObject:forKey:",_10[i],_11[i]); +} +} +return _e; +} +}),new objj_method(sel_getUid("initWithObjectsAndKeys:"),function(_13,_14,_15){ +with(_13){ +var _16=arguments.length; +if(_16%2!==0){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"Key-value count is mismatched. ("+_16+" arguments passed)"); +} +_13=objj_msgSendSuper({receiver:_13,super_class:objj_getClass("CPObject")},"init"); +if(_13){ +var _17=2; +for(;_17<_16;_17+=2){ +var _18=arguments[_17]; +if(_18===nil){ +break; +} +objj_msgSend(_13,"setObject:forKey:",_18,arguments[_17+1]); +} +} +return _13; +} +}),new objj_method(sel_getUid("copy"),function(_19,_1a){ +with(_19){ +return objj_msgSend(CPDictionary,"dictionaryWithDictionary:",_19); +} +}),new objj_method(sel_getUid("count"),function(_1b,_1c){ +with(_1b){ +return count; +} +}),new objj_method(sel_getUid("allKeys"),function(_1d,_1e){ +with(_1d){ +return _keys; +} +}),new objj_method(sel_getUid("allValues"),function(_1f,_20){ +with(_1f){ +var _21=_keys.length,_22=[]; +while(_21--){ +_22.push(dictionary_getValue(_1f,[_keys[_21]])); +} +return _22; +} +}),new objj_method(sel_getUid("keyEnumerator"),function(_23,_24){ +with(_23){ +return objj_msgSend(_keys,"objectEnumerator"); +} +}),new objj_method(sel_getUid("objectEnumerator"),function(_25,_26){ +with(_25){ +return objj_msgSend(objj_msgSend(_CPDictionaryValueEnumerator,"alloc"),"initWithDictionary:",_25); +} +}),new objj_method(sel_getUid("isEqualToDictionary:"),function(_27,_28,_29){ +with(_27){ +if(count!==objj_msgSend(_29,"count")){ +return NO; +} +var _2a=count; +while(_2a--){ +var _2b=_keys[_2a],_2c=_buckets[_2b],_2d=_29._buckets[_2b]; +if(_2c===_2d){ +continue; +} +if(_2c.isa&&_2d.isa&&objj_msgSend(_2c,"respondsToSelector:",sel_getUid("isEqual:"))&&objj_msgSend(_2c,"isEqual:",_2d)){ +continue; +} +return NO; +} +return YES; +} +}),new objj_method(sel_getUid("objectForKey:"),function(_2e,_2f,_30){ +with(_2e){ +var _31=_buckets[_30]; +return (_31===undefined)?nil:_31; +} +}),new objj_method(sel_getUid("removeAllObjects"),function(_32,_33){ +with(_32){ +_keys=[]; +count=0; +_buckets={}; +} +}),new objj_method(sel_getUid("removeObjectForKey:"),function(_34,_35,_36){ +with(_34){ +dictionary_removeValue(_34,_36); +} +}),new objj_method(sel_getUid("removeObjectsForKeys:"),function(_37,_38,_39){ +with(_37){ +var _3a=_39.length; +while(_3a--){ +dictionary_removeValue(_37,_39[_3a]); +} +} +}),new objj_method(sel_getUid("setObject:forKey:"),function(_3b,_3c,_3d,_3e){ +with(_3b){ +dictionary_setValue(_3b,_3e,_3d); +} +}),new objj_method(sel_getUid("addEntriesFromDictionary:"),function(_3f,_40,_41){ +with(_3f){ +if(!_41){ +return; +} +var _42=objj_msgSend(_41,"allKeys"),_43=objj_msgSend(_42,"count"); +while(_43--){ +var key=_42[_43]; +objj_msgSend(_3f,"setObject:forKey:",objj_msgSend(_41,"objectForKey:",key),key); +} +} +}),new objj_method(sel_getUid("description"),function(_45,_46){ +with(_45){ +var _47="CPDictionary {\n"; +var i=_keys.length; +while(i--){ +_47+=_keys[i]+":"; +var _49=_buckets[_keys[i]]; +if(_49&&_49.isa){ +_47+=objj_msgSend(_49,"description"); +}else{ +_47+=_49; +} +_47+="\n"; +} +_47+="}"; +return _47; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("alloc"),function(_4a,_4b){ +with(_4a){ +return new objj_dictionary(); +} +}),new objj_method(sel_getUid("dictionary"),function(_4c,_4d){ +with(_4c){ +return objj_msgSend(objj_msgSend(_4c,"alloc"),"init"); +} +}),new objj_method(sel_getUid("dictionaryWithDictionary:"),function(_4e,_4f,_50){ +with(_4e){ +return objj_msgSend(objj_msgSend(_4e,"alloc"),"initWithDictionary:",_50); +} +}),new objj_method(sel_getUid("dictionaryWithObject:forKey:"),function(_51,_52,_53,_54){ +with(_51){ +return objj_msgSend(objj_msgSend(_51,"alloc"),"initWithObjects:forKeys:",[_53],[_54]); +} +}),new objj_method(sel_getUid("dictionaryWithObjects:forKeys:"),function(_55,_56,_57,_58){ +with(_55){ +return objj_msgSend(objj_msgSend(_55,"alloc"),"initWithObjects:forKeys:",_57,_58); +} +}),new objj_method(sel_getUid("dictionaryWithJSObject:"),function(_59,_5a,_5b){ +with(_59){ +return objj_msgSend(_59,"dictionaryWithJSObject:recursively:",_5b,NO); +} +}),new objj_method(sel_getUid("dictionaryWithJSObject:recursively:"),function(_5c,_5d,_5e,_5f){ +with(_5c){ +var _60=objj_msgSend(objj_msgSend(_5c,"alloc"),"init"); +for(var key in _5e){ +var _62=_5e[key]; +if(_5f&&_62.constructor===Object){ +_62=objj_msgSend(CPDictionary,"dictionaryWithJSObject:recursively:",_62,YES); +} +objj_msgSend(_60,"setObject:forKey:",_62,key); +} +return _60; +} +}),new objj_method(sel_getUid("dictionaryWithObjectsAndKeys:"),function(_63,_64,_65){ +with(_63){ +arguments[0]=objj_msgSend(_63,"alloc"); +arguments[1]=sel_getUid("initWithObjectsAndKeys:"); +return objj_msgSend.apply(this,arguments); +} +})]); +var _1=objj_getClass("CPDictionary"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPDictionary\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_66,_67,_68){ +with(_66){ +return objj_msgSend(_68,"_decodeDictionaryOfObjectsForKey:","CP.objects"); +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_69,_6a,_6b){ +with(_69){ +objj_msgSend(_6b,"_encodeDictionaryOfObjects:forKey:",_69,"CP.objects"); +} +})]); +var _1=objj_allocateClassPair(CPDictionary,"CPMutableDictionary"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +objj_dictionary.prototype.isa=CPDictionary; +p;14;CPEnumerator.ji;10;CPObject.jc;365; +var _1=objj_allocateClassPair(CPObject,"CPEnumerator"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("nextObject"),function(_3,_4){ +with(_3){ +return nil; +} +}),new objj_method(sel_getUid("allObjects"),function(_5,_6){ +with(_5){ +return []; +} +})]); +p;13;CPException.ji;9;CPCoder.ji;10;CPObject.ji;10;CPString.jc;3229; +CPInvalidArgumentException="CPInvalidArgumentException"; +CPUnsupportedMethodException="CPUnsupportedMethodException"; +CPRangeException="CPRangeException"; +CPInternalInconsistencyException="CPInternalInconsistencyException"; +var _1=objj_allocateClassPair(CPObject,"CPException"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithName:reason:userInfo:"),function(_3,_4,_5,_6,_7){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +name=_5; +reason=_6; +userInfo=_7; +} +return _3; +} +}),new objj_method(sel_getUid("name"),function(_8,_9){ +with(_8){ +return name; +} +}),new objj_method(sel_getUid("reason"),function(_a,_b){ +with(_a){ +return reason; +} +}),new objj_method(sel_getUid("userInfo"),function(_c,_d){ +with(_c){ +return userInfo; +} +}),new objj_method(sel_getUid("description"),function(_e,_f){ +with(_e){ +return reason; +} +}),new objj_method(sel_getUid("raise"),function(_10,_11){ +with(_10){ +objj_exception_throw(_10); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("alloc"),function(_12,_13){ +with(_12){ +return new objj_exception(); +} +}),new objj_method(sel_getUid("raise:reason:"),function(_14,_15,_16,_17){ +with(_14){ +objj_msgSend(objj_msgSend(_14,"exceptionWithName:reason:userInfo:",_16,_17,nil),"raise"); +} +}),new objj_method(sel_getUid("exceptionWithName:reason:userInfo:"),function(_18,_19,_1a,_1b,_1c){ +with(_18){ +return objj_msgSend(objj_msgSend(_18,"alloc"),"initWithName:reason:userInfo:",_1a,_1b,_1c); +} +})]); +var _1=objj_getClass("CPException"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPException\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("copy"),function(_1d,_1e){ +with(_1d){ +return objj_msgSend(objj_msgSend(_1d,"class"),"exceptionWithName:reason:userInfo:",name,reason,userInfo); +} +})]); +var _1f="CPExceptionNameKey",_20="CPExceptionReasonKey",_21="CPExceptionUserInfoKey"; +var _1=objj_getClass("CPException"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPException\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_22,_23,_24){ +with(_22){ +_22=objj_msgSendSuper({receiver:_22,super_class:objj_getClass("CPObject")},"init"); +if(_22){ +name=objj_msgSend(_24,"decodeObjectForKey:",_1f); +reason=objj_msgSend(_24,"decodeObjectForKey:",_20); +userInfo=objj_msgSend(_24,"decodeObjectForKey:",_21); +} +return _22; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_25,_26,_27){ +with(_25){ +objj_msgSend(_27,"encodeObject:forKey:",name,_1f); +objj_msgSend(_27,"encodeObject:forKey:",reason,_20); +objj_msgSend(_27,"encodeObject:forKey:",userInfo,_21); +} +})]); +objj_exception.prototype.isa=CPException; +objj_msgSend(CPException,"initialize"); +_CPRaiseInvalidAbstractInvocation=function(_28,_29){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"*** -"+sel_getName(_29)+" cannot be sent to an abstract object of class "+objj_msgSend(_28,"className")+": Create a concrete instance!"); +}; +p;12;CPIndexSet.ji;9;CPRange.ji;10;CPObject.jc;12005; +var _1=objj_allocateClassPair(CPObject,"CPIndexSet"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_count"),new objj_ivar("_cachedRangeIndex"),new objj_ivar("_ranges")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("init"),function(_3,_4){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_count=0; +_ranges=[]; +_cachedRangeIndex=0; +} +return _3; +} +}),new objj_method(sel_getUid("initWithIndex:"),function(_5,_6,_7){ +with(_5){ +_5=objj_msgSendSuper({receiver:_5,super_class:objj_getClass("CPObject")},"init"); +if(_5){ +_count=1; +_ranges=objj_msgSend(CPArray,"arrayWithObject:",CPMakeRange(_7,1)); +_cachedRangeIndex=0; +} +return _5; +} +}),new objj_method(sel_getUid("initWithIndexesInRange:"),function(_8,_9,_a){ +with(_8){ +_8=objj_msgSendSuper({receiver:_8,super_class:objj_getClass("CPObject")},"init"); +if(_8){ +_count=_a.length; +_ranges=objj_msgSend(CPArray,"arrayWithObject:",_a); +_cachedRangeIndex=0; +} +return _8; +} +}),new objj_method(sel_getUid("initWithIndexSet:"),function(_b,_c,_d){ +with(_b){ +_b=objj_msgSendSuper({receiver:_b,super_class:objj_getClass("CPObject")},"init"); +if(_b){ +_count=objj_msgSend(_d,"count"); +_ranges=[]; +_cachedRangeIndex=0; +var _e=0,_f=_d._ranges.length; +for(;_e<_f;++_e){ +_ranges.push(CPCopyRange(_d._ranges[_e])); +} +} +return _b; +} +}),new objj_method(sel_getUid("isEqualToIndexSet:"),function(_10,_11,_12){ +with(_10){ +if(_10==_12){ +return YES; +} +var i=0,_14=_ranges.length; +otherRanges=_12._ranges; +if(_14!=otherRanges.length||_count!=objj_msgSend(_12,"count")){ +return NO; +} +for(;i<_14;++i){ +if(!CPEqualRanges(_ranges[i],otherRanges[i])){ +return NO; +} +} +return YES; +} +}),new objj_method(sel_getUid("containsIndex:"),function(_15,_16,_17){ +with(_15){ +return objj_msgSend(_15,"containsIndexesInRange:",CPMakeRange(_17,1)); +} +}),new objj_method(sel_getUid("containsIndexesInRange:"),function(_18,_19,_1a){ +with(_18){ +if(!_count){ +return NO; +} +var i=_1c(_18,_1a.location),_1d=_1a.location,_1e=CPMaxRange(_1a),_1f=_ranges.length; +for(;i<_1f&&_ranges[i].location<_1e;++i){ +if(_ranges[i].location<=_1d&&CPMaxRange(_ranges[i])>=_1e){ +_cachedRangeIndex=i; +return YES; +} +} +_cachedRangeIndex=i; +return NO; +} +}),new objj_method(sel_getUid("containsIndexes:"),function(_20,_21,_22){ +with(_20){ +if(!objj_msgSend(_22,"count")){ +return YES; +} +if(!_count){ +return NO; +} +var i=0,_24=_ranges.length; +for(;i<_24;++i){ +if(!objj_msgSend(_22,"containsIndexesInRange:",_ranges[i])){ +return NO; +} +} +return YES; +} +}),new objj_method(sel_getUid("intersectsIndexesInRange:"),function(_25,_26,_27){ +with(_25){ +if(!_count){ +return NO; +} +var i=_1c(_25,_27.location),_29=_ranges.length,_2a=CPMaxRange(_27); +for(;i<_29&&_ranges[i].location<_2a;++i){ +if(CPIntersectionRange(_27,_ranges[i]).length){ +return YES; +} +} +return NO; +} +}),new objj_method(sel_getUid("count"),function(_2b,_2c){ +with(_2b){ +return _count; +} +}),new objj_method(sel_getUid("firstIndex"),function(_2d,_2e){ +with(_2d){ +return _count?_ranges[0].location:CPNotFound; +} +}),new objj_method(sel_getUid("lastIndex"),function(_2f,_30){ +with(_2f){ +return _count?CPMaxRange(_ranges[_ranges.length-1])-1:CPNotFound; +} +}),new objj_method(sel_getUid("indexGreaterThanIndex:"),function(_31,_32,_33){ +with(_31){ +if(!_count){ +return CPNotFound; +} +var i=_1c(_31,_33++),_35=_ranges.length; +for(;i<_35&&_33>=CPMaxRange(_ranges[i]);++i){ +} +if(i==_35){ +return CPNotFound; +} +_cachedRangeIndex=i; +if(_33<_ranges[i].location){ +return _ranges[i].location; +} +return _33; +} +}),new objj_method(sel_getUid("indexLessThanIndex:"),function(_36,_37,_38){ +with(_36){ +if(!_count){ +return CPNotFound; +} +var i=_3a(_36,_38--); +for(;i>=0&&_38<_ranges[i].location;--i){ +} +if(i<0){ +return CPNotFound; +} +_cachedRangeIndex=i; +if(CPLocationInRange(_38,_ranges[i])){ +return _38; +} +if(CPMaxRange(_ranges[i])-1<_38){ +return CPMaxRange(_ranges[i])-1; +} +return CPNotFound; +} +}),new objj_method(sel_getUid("indexGreaterThanOrEqualToIndex:"),function(_3b,_3c,_3d){ +with(_3b){ +return objj_msgSend(_3b,"indexGreaterThanIndex:",_3d-1); +} +}),new objj_method(sel_getUid("indexLessThanOrEqualToIndex:"),function(_3e,_3f,_40){ +with(_3e){ +return objj_msgSend(_3e,"indexLessThanIndex:",_40+1); +} +}),new objj_method(sel_getUid("getIndexes:maxCount:inIndexRange:"),function(_41,_42,_43,_44,_45){ +with(_41){ +if(!_count||_44<=0||_45&&!_45.length){ +return 0; +} +var i=_1c(_41,_45?_45.location:0),_47=0,_48=_ranges.length; +for(;i<_48;++i){ +var _49=_45?CPIntersectionRange(_ranges[i],_45):_ranges[i],_4a=_49.location,_4b=CPMaxRange(_49); +for(;_4a<_4b;++_4a){ +_43[_47++]=_4a; +if(_47==_44){ +if(_45){ +var _4c=CPMaxRange(_45); +_45.location=_4a+1; +_45.length=_4c-_4a-1; +} +return _44; +} +} +} +if(_45){ +_45.location=CPNotFound; +_45.length=0; +} +return _47; +} +}),new objj_method(sel_getUid("description"),function(_4d,_4e){ +with(_4d){ +var _4f=objj_msgSendSuper({receiver:_4d,super_class:objj_getClass("CPObject")},"description")+" "; +if(_count){ +_4f+="[number of indexes: "+_count+" (in "+_ranges.length+" ranges), indexes: ("; +for(i=0;i<_ranges.length;i++){ +_4f+=_ranges[i].location; +if(_ranges[i].length>1){ +_4f+="-"+(CPMaxRange(_ranges[i])-1)+":"+_ranges[i].length+":"; +} +if(i+1<_ranges.length){ +_4f+=" "; +} +} +_4f+=")]"; +}else{ +_4f+="(no indexes)"; +} +return _4f; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("indexSet"),function(_50,_51){ +with(_50){ +return objj_msgSend(objj_msgSend(_50,"alloc"),"init"); +} +}),new objj_method(sel_getUid("indexSetWithIndex:"),function(_52,_53,_54){ +with(_52){ +return objj_msgSend(objj_msgSend(_52,"alloc"),"initWithIndex:",_54); +} +}),new objj_method(sel_getUid("indexSetWithIndexesInRange:"),function(_55,_56,_57){ +with(_55){ +return objj_msgSend(objj_msgSend(_55,"alloc"),"initWithIndexesInRange:",_57); +} +})]); +var _1=objj_getClass("CPIndexSet"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPIndexSet\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("addIndex:"),function(_58,_59,_5a){ +with(_58){ +objj_msgSend(_58,"addIndexesInRange:",CPMakeRange(_5a,1)); +} +}),new objj_method(sel_getUid("addIndexes:"),function(_5b,_5c,_5d){ +with(_5b){ +var i=0,_5f=_5d._ranges,_60=_5f.length; +for(;i<_60;++i){ +objj_msgSend(_5b,"addIndexesInRange:",_5f[i]); +} +} +}),new objj_method(sel_getUid("addIndexesInRange:"),function(_61,_62,_63){ +with(_61){ +if(_ranges.length==0){ +_count=_63.length; +return objj_msgSend(_ranges,"addObject:",CPCopyRange(_63)); +} +var i=_1c(_61,_63.location),_65=_ranges.length,_66=CPMakeRange(_63.location-1,_63.length+2),_67=CPMaxRange(_63); +if(_65&&CPMaxRange(_ranges[_65-1])<_63.location){ +objj_msgSend(_ranges,"addObject:",CPCopyRange(_63)); +}else{ +for(;i<_65;++i){ +if(_67<_ranges[i].location){ +_count+=_63.length; +if(i<_cachedRangeIndex){ +++_cachedRangeIndex; +} +return objj_msgSend(_ranges,"insertObject:atIndex:",CPCopyRange(_63),i); +} +if(CPIntersectionRange(_ranges[i],_66).length){ +var _68=CPUnionRange(_ranges[i],_63); +if(_68.length==_ranges[i].length){ +return; +} +++_68.length; +var j=i; +for(;j<_65;++j){ +if(CPIntersectionRange(_68,_ranges[j]).length){ +_count-=_ranges[j].length; +}else{ +break; +} +} +--_68.length; +_ranges[i]=_68; +if(j-i-1>0){ +var _6a=CPMakeRange(i+1,j-i-1); +_ranges[i]=CPUnionRange(_ranges[i],_ranges[j-1]); +objj_msgSend(_ranges,"removeObjectsInRange:",_6a); +if(_cachedRangeIndex>=CPMaxRange(_6a)){ +_cachedRangedIndex-=_6a.length; +}else{ +if(CPLocationInRange(_cachedRangeIndex,_6a)){ +_cachedRangeIndex=i; +} +} +} +_count+=_ranges[i].length; +return; +} +} +} +_count+=_63.length; +} +}),new objj_method(sel_getUid("removeIndex:"),function(_6b,_6c,_6d){ +with(_6b){ +objj_msgSend(_6b,"removeIndexesInRange:",CPMakeRange(_6d,1)); +} +}),new objj_method(sel_getUid("removeIndexes:"),function(_6e,_6f,_70){ +with(_6e){ +var i=0,_72=_70._ranges,_73=_72.length; +for(;i<_73;++i){ +objj_msgSend(_6e,"removeIndexesInRange:",_72[i]); +} +} +}),new objj_method(sel_getUid("removeAllIndexes"),function(_74,_75){ +with(_74){ +_ranges=[]; +_count=0; +_cachedRangeIndex=0; +} +}),new objj_method(sel_getUid("removeIndexesInRange:"),function(_76,_77,_78){ +with(_76){ +var i=_1c(_76,_78.location),_7a=_ranges.length,_7b=CPMaxRange(_78),_7c=CPMakeRange(CPNotFound,0); +for(;i<_7a;++i){ +var _7d=_ranges[i]; +if(_7b<_7d.location){ +break; +} +var _7e=CPIntersectionRange(_7d,_78); +if(!_7e.length){ +continue; +}else{ +if(_7e.length==_7d.length){ +if(_7c.location==CPNotFound){ +_7c=CPMakeRange(i,1); +}else{ +++_7c.length; +} +}else{ +if(_7e.location>_7d.location&&CPMaxRange(_7e)=0;--i){ +var _86=_ranges[i],_87=CPMaxRange(_86); +if(_82>_87){ +break; +} +if(_82>_86.location&&_82<_87){ +_85=CPMakeRange(_82+_83,_87-_82); +_86.length=_82-_86.location; +if(_83>0){ +objj_msgSend(_ranges,"insertObject:atIndex:",_85,i+1); +}else{ +if(_85.location<0){ +_85.length=CPMaxRange(_85); +_85.location=0; +} +} +break; +} +if((_86.location+=_83)<0){ +_86.length=CPMaxRange(_86); +_86.location=0; +} +} +if(_83<0){ +var j=i+1,_89=_ranges.length,_8a=[]; +for(;j<_89;++j){ +objj_msgSend(_8a,"addObject:",_ranges[j]); +} +if((j=i+1)<_89){ +objj_msgSend(_ranges,"removeObjectsInRange:",CPMakeRange(j,_89-j)); +for(j=0,_89=_8a.length;j<_89;++j){ +objj_msgSend(_80,"addIndexesInRange:",_8a[j]); +} +} +if(_85.location!=CPNotFound){ +objj_msgSend(_80,"addIndexesInRange:",_85); +} +} +} +})]); +var _8b="CPIndexSetCountKey",_8c="CPIndexSetCachedRangeIndexKey",_8d="CPIndexSetRangeStringsKey"; +var _1=objj_getClass("CPIndexSet"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPIndexSet\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_8e,_8f,_90){ +with(_8e){ +_8e=objj_msgSendSuper({receiver:_8e,super_class:objj_getClass("CPObject")},"init"); +if(_8e){ +_count=objj_msgSend(_90,"decodeIntForKey:",_8b); +_cachedRangeIndex=objj_msgSend(_90,"decodeIntForKey:",_8c); +_ranges=[]; +var _91=objj_msgSend(_90,"decodeObjectForKey:",_8d),_92=0,_93=_91.length; +for(;_92<_93;++_92){ +_ranges.push(CPRangeFromString(_91[_92])); +} +} +return _8e; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_94,_95,_96){ +with(_94){ +objj_msgSend(_96,"encodeInt:forKey:",_count,_8b); +objj_msgSend(_96,"encodeInt:forKey:",_cachedRangeIndex,_8c); +var _97=0,_98=_ranges.length,_99=[]; +for(;_97<_98;++_97){ +_99[_97]=CPStringFromRange(_ranges[_97]); +} +objj_msgSend(_96,"encodeObject:forKey:",_99,_8d); +} +})]); +var _1=objj_getClass("CPIndexSet"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPIndexSet\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("copy"),function(_9a,_9b){ +with(_9a){ +return objj_msgSend(objj_msgSend(objj_msgSend(_9a,"class"),"alloc"),"initWithIndexSet:",_9a); +} +}),new objj_method(sel_getUid("mutableCopy"),function(_9c,_9d){ +with(_9c){ +return objj_msgSend(objj_msgSend(objj_msgSend(_9c,"class"),"alloc"),"initWithIndexSet:",_9c); +} +})]); +var _1=objj_allocateClassPair(CPIndexSet,"CPMutableIndexSet"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +var _1c=function(_9e,_9f){ +var _a0=_9e._ranges,_a1=0; +if(_a1<_a0.length&&_9f>=_a0[_a1].location){ +return _a1; +} +return 0; +}; +var _3a=function(_a2,_a3){ +var _a4=_a2._ranges,_a5=_a2._ranges.length; +if(_a5<_a4.length&&_a3<=_a4[_a5].location){ +return _a5; +} +return _a4.length-1; +}; +p;14;CPInvocation.ji;10;CPObject.ji;13;CPException.jc;2623; +var _1=objj_allocateClassPair(CPObject,"CPInvocation"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_returnValue"),new objj_ivar("_arguments"),new objj_ivar("_methodSignature")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithMethodSignature:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_arguments=[]; +_methodSignature=_5; +} +return _3; +} +}),new objj_method(sel_getUid("setSelector:"),function(_6,_7,_8){ +with(_6){ +_arguments[1]=_8; +} +}),new objj_method(sel_getUid("selector"),function(_9,_a){ +with(_9){ +return _arguments[1]; +} +}),new objj_method(sel_getUid("setTarget:"),function(_b,_c,_d){ +with(_b){ +_arguments[0]=_d; +} +}),new objj_method(sel_getUid("target"),function(_e,_f){ +with(_e){ +return _arguments[0]; +} +}),new objj_method(sel_getUid("setArgument:atIndex:"),function(_10,_11,_12,_13){ +with(_10){ +_arguments[_13]=_12; +} +}),new objj_method(sel_getUid("argumentAtIndex:"),function(_14,_15,_16){ +with(_14){ +return _arguments[_16]; +} +}),new objj_method(sel_getUid("setReturnValue:"),function(_17,_18,_19){ +with(_17){ +_returnValue=_19; +} +}),new objj_method(sel_getUid("returnValue"),function(_1a,_1b){ +with(_1a){ +return _returnValue; +} +}),new objj_method(sel_getUid("invoke"),function(_1c,_1d){ +with(_1c){ +_returnValue=objj_msgSend.apply(objj_msgSend,_arguments); +} +}),new objj_method(sel_getUid("invokeWithTarget:"),function(_1e,_1f,_20){ +with(_1e){ +_arguments[0]=_20; +_returnValue=objj_msgSend.apply(objj_msgSend,_arguments); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("invocationWithMethodSignature:"),function(_21,_22,_23){ +with(_21){ +return objj_msgSend(objj_msgSend(_21,"alloc"),"initWithMethodSignature:",_23); +} +})]); +var _24="CPInvocationArguments",_25="CPInvocationReturnValue"; +var _1=objj_getClass("CPInvocation"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPInvocation\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_26,_27,_28){ +with(_26){ +_26=objj_msgSendSuper({receiver:_26,super_class:objj_getClass("CPObject")},"init"); +if(_26){ +_returnValue=objj_msgSend(_28,"decodeObjectForKey:",_25); +_arguments=objj_msgSend(_28,"decodeObjectForKey:",_24); +} +return _26; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_29,_2a,_2b){ +with(_29){ +objj_msgSend(_2b,"encodeObject:forKey:",_returnValue,_25); +objj_msgSend(_2b,"encodeObject:forKey:",_arguments,_24); +} +})]); +p;19;CPJSONPConnection.jI;21;Foundation/CPObject.jc;2688; +CPJSONPConnectionCallbacks={}; +var _1=objj_allocateClassPair(CPObject,"CPJSONPConnection"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_request"),new objj_ivar("_delegate"),new objj_ivar("_callbackParameter"),new objj_ivar("_scriptTag")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithRequest:callback:delegate:"),function(_3,_4,_5,_6,_7){ +with(_3){ +return objj_msgSend(_3,"initWithRequest:callback:delegate:startImmediately:",_5,_6,_7,NO); +} +}),new objj_method(sel_getUid("initWithRequest:callback:delegate:startImmediately:"),function(_8,_9,_a,_b,_c,_d){ +with(_8){ +_8=objj_msgSendSuper({receiver:_8,super_class:objj_getClass("CPObject")},"init"); +_request=_a; +_delegate=_c; +_callbackParameter=_b; +CPJSONPConnectionCallbacks["callback"+objj_msgSend(_8,"hash")]=function(_e){ +objj_msgSend(_delegate,"connection:didReceiveData:",_8,_e); +objj_msgSend(_8,"removeScriptTag"); +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +}; +if(_d){ +objj_msgSend(_8,"start"); +} +return _8; +} +}),new objj_method(sel_getUid("start"),function(_f,_10){ +with(_f){ +try{ +var _11=document.getElementsByTagName("head").item(0); +var _12=objj_msgSend(_request,"URL"); +_12+=(_12.indexOf("?")<0)?"?":"&"; +_12+=_callbackParameter+"=CPJSONPConnectionCallbacks.callback"+objj_msgSend(_f,"hash"); +_scriptTag=document.createElement("script"); +_scriptTag.setAttribute("type","text/javascript"); +_scriptTag.setAttribute("charset","utf-8"); +_scriptTag.setAttribute("src",_12); +_11.appendChild(_scriptTag); +} +catch(exception){ +objj_msgSend(_delegate,"connection:didFailWithError:",_f,exception); +objj_msgSend(_f,"removeScriptTag"); +} +} +}),new objj_method(sel_getUid("removeScriptTag"),function(_13,_14){ +with(_13){ +var _15=document.getElementsByTagName("head").item(0); +if(_scriptTag.parentNode==_15){ +_15.removeChild(_scriptTag); +} +CPJSONPConnectionCallbacks["callback"+objj_msgSend(_13,"hash")]=nil; +delete CPJSONPConnectionCallbacks["callback"+objj_msgSend(_13,"hash")]; +} +}),new objj_method(sel_getUid("cancel"),function(_16,_17){ +with(_16){ +objj_msgSend(_16,"removeScriptTag"); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("sendRequest:callback:delegate:"),function(_18,_19,_1a,_1b,_1c){ +with(_18){ +return objj_msgSend(_18,"connectionWithRequest:callback:delegate:",_1a,_1b,_1c); +} +}),new objj_method(sel_getUid("connectionWithRequest:callback:delegate:"),function(_1d,_1e,_1f,_20,_21){ +with(_1d){ +return objj_msgSend(objj_msgSend(objj_msgSend(_1d,"class"),"alloc"),"initWithRequest:callback:delegate:startImmediately:",_1f,_20,_21,YES); +} +})]); +p;17;CPKeyedArchiver.ji;8;CPData.ji;9;CPCoder.ji;9;CPArray.ji;10;CPString.ji;10;CPNumber.ji;14;CPDictionary.ji;9;CPValue.jc;10099; +var _1=nil; +var _2=1,_3=2,_4=4,_5=8,_6=16; +var _7="$null",_8=nil,_9="CP$UID",_a="$top",_b="$objects",_c="$archiver",_d="$version",_e="$classname",_f="$classes",_10="$class"; +var _11=Nil,_12=Nil; +var _13=objj_allocateClassPair(CPValue,"_CPKeyedArchiverValue"),_14=_13.isa; +objj_registerClassPair(_13); +objj_addClassForBundle(_13,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +var _13=objj_allocateClassPair(CPCoder,"CPKeyedArchiver"),_14=_13.isa; +class_addIvars(_13,[new objj_ivar("_delegate"),new objj_ivar("_delegateSelectors"),new objj_ivar("_data"),new objj_ivar("_objects"),new objj_ivar("_UIDs"),new objj_ivar("_conditionalUIDs"),new objj_ivar("_replacementObjects"),new objj_ivar("_replacementClassNames"),new objj_ivar("_plistObject"),new objj_ivar("_plistObjects"),new objj_ivar("_outputFormat")]); +objj_registerClassPair(_13); +objj_addClassForBundle(_13,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_13,[new objj_method(sel_getUid("initForWritingWithMutableData:"),function(_15,_16,_17){ +with(_15){ +_15=objj_msgSendSuper({receiver:_15,super_class:objj_getClass("CPCoder")},"init"); +if(_15){ +_data=_17; +_objects=[]; +_UIDs=objj_msgSend(CPDictionary,"dictionary"); +_conditionalUIDs=objj_msgSend(CPDictionary,"dictionary"); +_replacementObjects=objj_msgSend(CPDictionary,"dictionary"); +_data=_17; +_plistObject=objj_msgSend(CPDictionary,"dictionary"); +_plistObjects=objj_msgSend(CPArray,"arrayWithObject:",_7); +} +return _15; +} +}),new objj_method(sel_getUid("finishEncoding"),function(_18,_19){ +with(_18){ +if(_delegate&&_delegateSelectors&_6){ +objj_msgSend(_delegate,"archiverWillFinish:",_18); +} +var i=0,_1b=_plistObject,_1c=[]; +for(;i<_objects.length;++i){ +var _1d=_objects[i],_1e=objj_msgSend(_1d,"classForKeyedArchiver"); +_plistObject=_plistObjects[objj_msgSend(_UIDs,"objectForKey:",objj_msgSend(_1d,"hash"))]; +objj_msgSend(_1d,"encodeWithCoder:",_18); +if(_delegate&&_delegateSelectors&_2){ +objj_msgSend(_delegate,"archiver:didEncodeObject:",_18,_1d); +} +} +_plistObject=objj_msgSend(CPDictionary,"dictionary"); +objj_msgSend(_plistObject,"setObject:forKey:",_1b,_a); +objj_msgSend(_plistObject,"setObject:forKey:",_plistObjects,_b); +objj_msgSend(_plistObject,"setObject:forKey:",objj_msgSend(_18,"className"),_c); +objj_msgSend(_plistObject,"setObject:forKey:","100000",_d); +objj_msgSend(_data,"setPlistObject:",_plistObject); +if(_delegate&&_delegateSelectors&_5){ +objj_msgSend(_delegate,"archiverDidFinish:",_18); +} +} +}),new objj_method(sel_getUid("outputFormat"),function(_1f,_20){ +with(_1f){ +return _outputFormat; +} +}),new objj_method(sel_getUid("setOutputFormat:"),function(_21,_22,_23){ +with(_21){ +_outputFormat=_23; +} +}),new objj_method(sel_getUid("encodeBool:forKey:"),function(_24,_25,_26,_27){ +with(_24){ +objj_msgSend(_plistObject,"setObject:forKey:",_28(_24,_26,NO),_27); +} +}),new objj_method(sel_getUid("encodeDouble:forKey:"),function(_29,_2a,_2b,_2c){ +with(_29){ +objj_msgSend(_plistObject,"setObject:forKey:",_28(_29,_2b,NO),_2c); +} +}),new objj_method(sel_getUid("encodeFloat:forKey:"),function(_2d,_2e,_2f,_30){ +with(_2d){ +objj_msgSend(_plistObject,"setObject:forKey:",_28(_2d,_2f,NO),_30); +} +}),new objj_method(sel_getUid("encodeInt:forKey:"),function(_31,_32,_33,_34){ +with(_31){ +objj_msgSend(_plistObject,"setObject:forKey:",_28(_31,_33,NO),_34); +} +}),new objj_method(sel_getUid("setDelegate:"),function(_35,_36,_37){ +with(_35){ +_delegate=_37; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("archiver:didEncodeObject:"))){ +_delegateSelectors|=_2; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("archiver:willEncodeObject:"))){ +_delegateSelectors|=_3; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("archiver:willReplaceObject:withObject:"))){ +_delegateSelectors|=_4; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("archiver:didFinishEncoding:"))){ +_delegateSelectors|=_CPKeyedArchiverDidFinishEncodingSelector; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("archiver:willFinishEncoding:"))){ +_delegateSelectors|=_CPKeyedArchiverWillFinishEncodingSelector; +} +} +}),new objj_method(sel_getUid("delegate"),function(_38,_39){ +with(_38){ +return _delegate; +} +}),new objj_method(sel_getUid("encodePoint:forKey:"),function(_3a,_3b,_3c,_3d){ +with(_3a){ +objj_msgSend(_plistObject,"setObject:forKey:",_28(_3a,CPStringFromPoint(_3c),NO),_3d); +} +}),new objj_method(sel_getUid("encodeRect:forKey:"),function(_3e,_3f,_40,_41){ +with(_3e){ +objj_msgSend(_plistObject,"setObject:forKey:",_28(_3e,CPStringFromRect(_40),NO),_41); +} +}),new objj_method(sel_getUid("encodeSize:forKey:"),function(_42,_43,_44,_45){ +with(_42){ +objj_msgSend(_plistObject,"setObject:forKey:",_28(_42,CPStringFromSize(_44),NO),_45); +} +}),new objj_method(sel_getUid("encodeConditionalObject:forKey:"),function(_46,_47,_48,_49){ +with(_46){ +objj_msgSend(_plistObject,"setObject:forKey:",_28(_46,_48,YES),_49); +} +}),new objj_method(sel_getUid("encodeNumber:forKey:"),function(_4a,_4b,_4c,_4d){ +with(_4a){ +objj_msgSend(_plistObject,"setObject:forKey:",_28(_4a,_4c,NO),_4d); +} +}),new objj_method(sel_getUid("encodeObject:forKey:"),function(_4e,_4f,_50,_51){ +with(_4e){ +objj_msgSend(_plistObject,"setObject:forKey:",_28(_4e,_50,NO),_51); +} +}),new objj_method(sel_getUid("_encodeArrayOfObjects:forKey:"),function(_52,_53,_54,_55){ +with(_52){ +var i=0,_57=_54.length,_58=objj_msgSend(CPArray,"arrayWithCapacity:",_57); +for(;i<_57;++i){ +objj_msgSend(_58,"addObject:",_28(_52,_54[i],NO)); +} +objj_msgSend(_plistObject,"setObject:forKey:",_58,_55); +} +}),new objj_method(sel_getUid("_encodeDictionaryOfObjects:forKey:"),function(_59,_5a,_5b,_5c){ +with(_59){ +var key,_5e=objj_msgSend(_5b,"keyEnumerator"),_5f=objj_msgSend(CPDictionary,"dictionary"); +while(key=objj_msgSend(_5e,"nextObject")){ +objj_msgSend(_5f,"setObject:forKey:",_28(_59,objj_msgSend(_5b,"objectForKey:",key),NO),key); +} +objj_msgSend(_plistObject,"setObject:forKey:",_5f,_5c); +} +}),new objj_method(sel_getUid("setClassName:forClass:"),function(_60,_61,_62,_63){ +with(_60){ +if(!_replacementClassNames){ +_replacementClassNames=objj_msgSend(CPDictionary,"dictionary"); +} +objj_msgSend(_replacementClassNames,"setObject:forKey:",_62,CPStringFromClass(_63)); +} +}),new objj_method(sel_getUid("classNameForClass:"),function(_64,_65,_66){ +with(_64){ +if(!_replacementClassNames){ +return _66.name; +} +var _67=objj_msgSend(_replacementClassNames,"objectForKey:",CPStringFromClass(aClassName)); +return _67?_67:_66.name; +} +})]); +class_addMethods(_14,[new objj_method(sel_getUid("initialize"),function(_68,_69){ +with(_68){ +if(_68!=objj_msgSend(CPKeyedArchiver,"class")){ +return; +} +_11=objj_msgSend(CPString,"class"); +_12=objj_msgSend(CPNumber,"class"); +_8=objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",0,_9); +} +}),new objj_method(sel_getUid("allowsKeyedCoding"),function(_6a,_6b){ +with(_6a){ +return YES; +} +}),new objj_method(sel_getUid("archivedDataWithRootObject:"),function(_6c,_6d,_6e){ +with(_6c){ +var _6f=objj_msgSend(CPData,"dataWithPlistObject:",nil),_70=objj_msgSend(objj_msgSend(_6c,"alloc"),"initForWritingWithMutableData:",_6f); +objj_msgSend(_70,"encodeObject:forKey:",_6e,"root"); +objj_msgSend(_70,"finishEncoding"); +return _6f; +} +}),new objj_method(sel_getUid("setClassName:forClass:"),function(_71,_72,_73,_74){ +with(_71){ +if(!_1){ +_1=objj_msgSend(CPDictionary,"dictionary"); +} +objj_msgSend(_1,"setObject:forKey:",_73,CPStringFromClass(_74)); +} +}),new objj_method(sel_getUid("classNameForClass:"),function(_75,_76,_77){ +with(_75){ +if(!_1){ +return _77.name; +} +var _78=objj_msgSend(_1,"objectForKey:",CPStringFromClass(aClassName)); +return _78?_78:_77.name; +} +})]); +var _28=function(_79,_7a,_7b){ +if(_7a!==nil&&!_7a.isa){ +_7a=objj_msgSend(_CPKeyedArchiverValue,"valueWithJSObject:",_7a); +} +var _7c=objj_msgSend(_7a,"hash"),_7d=objj_msgSend(_79._replacementObjects,"objectForKey:",_7c); +if(_7d===nil){ +_7d=objj_msgSend(_7a,"replacementObjectForKeyedArchiver:",_79); +if(_79._delegate){ +if(_7d!==_7a&&_79._delegateSelectors&_4){ +objj_msgSend(_79._delegate,"archiver:willReplaceObject:withObject:",_79,_7a,_7d); +} +if(_79._delegateSelectors&_3){ +_7a=objj_msgSend(_79._delegate,"archiver:willEncodeObject:",_79,_7d); +if(_7a!==_7d&&_79._delegateSelectors&_4){ +objj_msgSend(_79._delegate,"archiver:willReplaceObject:withObject:",_79,_7d,_7a); +} +_7d=_7a; +} +} +objj_msgSend(_79._replacementObjects,"setObject:forKey:",_7d,_7c); +} +if(_7d===nil){ +return _8; +} +var UID=objj_msgSend(_79._UIDs,"objectForKey:",_7c=objj_msgSend(_7d,"hash")); +if(UID===nil){ +if(_7b){ +if((UID=objj_msgSend(_79._conditionalUIDs,"objectForKey:",_7c))===nil){ +objj_msgSend(_79._conditionalUIDs,"setObject:forKey:",UID=objj_msgSend(_79._plistObjects,"count"),_7c); +objj_msgSend(_79._plistObjects,"addObject:",_7); +} +}else{ +var _7f=objj_msgSend(_7d,"classForKeyedArchiver"),_80=nil; +if((_7f===_11)||(_7f===_12)){ +_80=_7d; +}else{ +_80=objj_msgSend(CPDictionary,"dictionary"); +objj_msgSend(_79._objects,"addObject:",_7d); +var _81=objj_msgSend(_79,"classNameForClass:",_7f); +if(!_81){ +_81=objj_msgSend(objj_msgSend(_79,"class"),"classNameForClass:",_7f); +} +if(!_81){ +_81=_7f.name; +}else{ +_7f=window[_81]; +} +var _82=objj_msgSend(_79._UIDs,"objectForKey:",_81); +if(!_82){ +var _83=objj_msgSend(CPDictionary,"dictionary"),_84=[]; +objj_msgSend(_83,"setObject:forKey:",_81,_e); +do{ +objj_msgSend(_84,"addObject:",CPStringFromClass(_7f)); +}while(_7f=objj_msgSend(_7f,"superclass")); +objj_msgSend(_83,"setObject:forKey:",_84,_f); +_82=objj_msgSend(_79._plistObjects,"count"); +objj_msgSend(_79._plistObjects,"addObject:",_83); +objj_msgSend(_79._UIDs,"setObject:forKey:",_82,_81); +} +objj_msgSend(_80,"setObject:forKey:",objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",_82,_9),_10); +} +UID=objj_msgSend(_79._conditionalUIDs,"objectForKey:",_7c); +if(UID!==nil){ +objj_msgSend(_79._UIDs,"setObject:forKey:",UID,_7c); +objj_msgSend(_79._plistObjects,"replaceObjectAtIndex:withObject:",UID,_80); +}else{ +objj_msgSend(_79._UIDs,"setObject:forKey:",UID=objj_msgSend(_79._plistObjects,"count"),_7c); +objj_msgSend(_79._plistObjects,"addObject:",_80); +} +} +} +return objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",UID,_9); +}; +p;19;CPKeyedUnarchiver.ji;8;CPNull.ji;9;CPCoder.jc;8107; +var _1=1,_2=1<<1,_3=1<<2,_4=1<<3,_5=1<<4; +var _6="$null"; +_CPKeyedArchiverUIDKey="CP$UID",_CPKeyedArchiverTopKey="$top",_CPKeyedArchiverObjectsKey="$objects",_CPKeyedArchiverArchiverKey="$archiver",_CPKeyedArchiverVersionKey="$version",_CPKeyedArchiverClassNameKey="$classname",_CPKeyedArchiverClassesKey="$classes",_CPKeyedArchiverClassKey="$class"; +var _7=Nil,_8=Nil,_9=Nil,_a=Nil,_b=Nil,_c=Nil; +var _d=objj_allocateClassPair(CPCoder,"CPKeyedUnarchiver"),_e=_d.isa; +class_addIvars(_d,[new objj_ivar("_delegate"),new objj_ivar("_delegateSelectors"),new objj_ivar("_data"),new objj_ivar("_replacementClasses"),new objj_ivar("_objects"),new objj_ivar("_archive"),new objj_ivar("_plistObject"),new objj_ivar("_plistObjects")]); +objj_registerClassPair(_d); +objj_addClassForBundle(_d,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_d,[new objj_method(sel_getUid("initForReadingWithData:"),function(_f,_10,_11){ +with(_f){ +_f=objj_msgSendSuper({receiver:_f,super_class:objj_getClass("CPCoder")},"init"); +if(_f){ +_archive=objj_msgSend(_11,"plistObject"); +_objects=objj_msgSend(CPArray,"arrayWithObject:",objj_msgSend(CPNull,"null")); +_plistObject=objj_msgSend(_archive,"objectForKey:",_CPKeyedArchiverTopKey); +_plistObjects=objj_msgSend(_archive,"objectForKey:",_CPKeyedArchiverObjectsKey); +_replacementClasses=objj_msgSend(CPDictionary,"dictionary"); +} +return _f; +} +}),new objj_method(sel_getUid("containsValueForKey:"),function(_12,_13,_14){ +with(_12){ +return objj_msgSend(_plistObject,"objectForKey:",_14)!=nil; +} +}),new objj_method(sel_getUid("_decodeDictionaryOfObjectsForKey:"),function(_15,_16,_17){ +with(_15){ +var _18=objj_msgSend(_plistObject,"objectForKey:",_17); +if(objj_msgSend(_18,"isKindOfClass:",_9)){ +var key,_1a=objj_msgSend(_18,"keyEnumerator"),_1b=objj_msgSend(CPDictionary,"dictionary"); +while(key=objj_msgSend(_1a,"nextObject")){ +objj_msgSend(_1b,"setObject:forKey:",_1c(_15,objj_msgSend(objj_msgSend(_18,"objectForKey:",key),"objectForKey:",_CPKeyedArchiverUIDKey)),key); +} +return _1b; +} +return nil; +} +}),new objj_method(sel_getUid("decodeBoolForKey:"),function(_1d,_1e,_1f){ +with(_1d){ +return objj_msgSend(_1d,"decodeObjectForKey:",_1f); +} +}),new objj_method(sel_getUid("decodeFloatForKey:"),function(_20,_21,_22){ +with(_20){ +return objj_msgSend(_20,"decodeObjectForKey:",_22); +} +}),new objj_method(sel_getUid("decodeDoubleForKey:"),function(_23,_24,_25){ +with(_23){ +return objj_msgSend(_23,"decodeObjectForKey:",_25); +} +}),new objj_method(sel_getUid("decodeIntForKey:"),function(_26,_27,_28){ +with(_26){ +return objj_msgSend(_26,"decodeObjectForKey:",_28); +} +}),new objj_method(sel_getUid("decodePointForKey:"),function(_29,_2a,_2b){ +with(_29){ +var _2c=objj_msgSend(_29,"decodeObjectForKey:",_2b); +if(_2c){ +return CPPointFromString(_2c); +}else{ +return CPPointMake(0,0); +} +} +}),new objj_method(sel_getUid("decodeRectForKey:"),function(_2d,_2e,_2f){ +with(_2d){ +var _30=objj_msgSend(_2d,"decodeObjectForKey:",_2f); +if(_30){ +return CPRectFromString(_30); +}else{ +return CPRectMakeZero(); +} +} +}),new objj_method(sel_getUid("decodeSizeForKey:"),function(_31,_32,_33){ +with(_31){ +var _34=objj_msgSend(_31,"decodeObjectForKey:",_33); +if(_34){ +return CPSizeFromString(_34); +}else{ +return CPSizeMake(0,0); +} +} +}),new objj_method(sel_getUid("decodeObjectForKey:"),function(_35,_36,_37){ +with(_35){ +var _38=objj_msgSend(_plistObject,"objectForKey:",_37); +if(objj_msgSend(_38,"isKindOfClass:",_9)){ +return _1c(_35,objj_msgSend(_38,"objectForKey:",_CPKeyedArchiverUIDKey)); +}else{ +if(objj_msgSend(_38,"isKindOfClass:",_a)||objj_msgSend(_38,"isKindOfClass:",_b)){ +return _38; +}else{ +if(objj_msgSend(_38,"isKindOfClass:",_7)){ +var _39=0,_3a=_38.length,_3b=[]; +for(;_39<_3a;++_39){ +_3b[_39]=_1c(_35,objj_msgSend(_38[_39],"objectForKey:",_CPKeyedArchiverUIDKey)); +} +return _3b; +} +} +} +return nil; +} +}),new objj_method(sel_getUid("decodeBytesForKey:"),function(_3c,_3d,_3e){ +with(_3c){ +var _3f=objj_msgSend(_3c,"decodeObjectForKey:",_3e); +if(objj_msgSend(_3f,"isKindOfClass:",objj_msgSend(CPData,"class"))){ +return _3f.bytes; +} +return nil; +} +}),new objj_method(sel_getUid("finishDecoding"),function(_40,_41){ +with(_40){ +if(_delegateSelectors&_4){ +objj_msgSend(_delegate,"unarchiverWillFinish:",_40); +} +if(_delegateSelectors&_5){ +objj_msgSend(_delegate,"unarchiverDidFinish:",_40); +} +} +}),new objj_method(sel_getUid("delegate"),function(_42,_43){ +with(_42){ +return _delegate; +} +}),new objj_method(sel_getUid("setDelegate:"),function(_44,_45,_46){ +with(_44){ +_delegate=_46; +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("unarchiver:cannotDecodeObjectOfClassName:originalClasses:"))){ +_delegateSelectors|=_1; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("unarchiver:didDecodeObject:"))){ +_delegateSelectors|=_2; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("unarchiver:willReplaceObject:withObject:"))){ +_delegateSelectors|=_3; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("unarchiverWillFinish:"))){ +_delegateSelectors|=_CPKeyedUnarchiverWilFinishSelector; +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("unarchiverDidFinish:"))){ +_delegateSelectors|=_5; +} +} +}),new objj_method(sel_getUid("setClass:forClassName:"),function(_47,_48,_49,_4a){ +with(_47){ +objj_msgSend(_replacementClasses,"setObject:forKey:",_49,_4a); +} +}),new objj_method(sel_getUid("classForClassName:"),function(_4b,_4c,_4d){ +with(_4b){ +return objj_msgSend(_replacementClasses,"objectForKey:",_4d); +} +}),new objj_method(sel_getUid("allowsKeyedCoding"),function(_4e,_4f){ +with(_4e){ +return YES; +} +})]); +class_addMethods(_e,[new objj_method(sel_getUid("initialize"),function(_50,_51){ +with(_50){ +if(_50!==objj_msgSend(CPKeyedUnarchiver,"class")){ +return; +} +_7=objj_msgSend(CPArray,"class"); +_8=objj_msgSend(CPString,"class"); +_9=objj_msgSend(CPDictionary,"class"); +_a=objj_msgSend(CPNumber,"class"); +_b=objj_msgSend(CPData,"class"); +_c=objj_msgSend(_CPKeyedArchiverValue,"class"); +} +}),new objj_method(sel_getUid("unarchiveObjectWithData:"),function(_52,_53,_54){ +with(_52){ +var _55=objj_msgSend(objj_msgSend(_52,"alloc"),"initForReadingWithData:",_54),_56=objj_msgSend(_55,"decodeObjectForKey:","root"); +objj_msgSend(_55,"finishDecoding"); +return _56; +} +}),new objj_method(sel_getUid("unarchiveObjectWithFile:"),function(_57,_58,_59){ +with(_57){ +} +}),new objj_method(sel_getUid("unarchiveObjectWithFile:asynchronously:"),function(_5a,_5b,_5c,_5d){ +with(_5a){ +} +})]); +var _1c=function(_5e,_5f){ +var _60=_5e._objects[_5f]; +if(_60){ +if(_60==_5e._objects[0]){ +return nil; +}else{ +return _60; +} +} +var _60,_61=_5e._plistObjects[_5f]; +if(objj_msgSend(_61,"isKindOfClass:",_9)){ +var _62=_5e._plistObjects[objj_msgSend(objj_msgSend(_61,"objectForKey:",_CPKeyedArchiverClassKey),"objectForKey:",_CPKeyedArchiverUIDKey)],_63=objj_msgSend(_62,"objectForKey:",_CPKeyedArchiverClassNameKey),_64=objj_msgSend(_62,"objectForKey:",_CPKeyedArchiverClassesKey),_65=objj_msgSend(_5e,"classForClassName:",_63); +if(!_65){ +_65=CPClassFromString(_63); +} +var _66=_5e._plistObject; +_5e._plistObject=_61; +_60=objj_msgSend(_65,"allocWithCoder:",_5e); +_5e._objects[_5f]=_60; +var _67=objj_msgSend(_60,"initWithCoder:",_5e); +_5e._plistObject=_66; +if(_67!=_60){ +if(_5e._delegateSelectors&_3){ +objj_msgSend(_5e._delegate,"unarchiver:willReplaceObject:withObject:",_5e,_60,_67); +} +_60=_67; +_5e._objects[_5f]=_67; +} +_67=objj_msgSend(_60,"awakeAfterUsingCoder:",_5e); +if(_67!=_60){ +if(_5e._delegateSelectors&_3){ +objj_msgSend(_5e._delegate,"unarchiver:willReplaceObject:withObject:",_5e,_60,_67); +} +_60=_67; +_5e._objects[_5f]=_67; +} +if(_5e._delegate){ +if(_5e._delegateSelectors&_2){ +_67=objj_msgSend(_5e._delegate,"unarchiver:didDecodeObject:",_5e,_60); +} +if(_67!=_60){ +if(_5e._delegateSelectors&_3){ +objj_msgSend(_5e._delegate,"unarchiver:willReplaceObject:withObject:",_5e,_60,_67); +} +_60=_67; +_5e._objects[_5f]=_67; +} +} +}else{ +_5e._objects[_5f]=_60=_61; +if(objj_msgSend(_60,"class")==_8){ +if(_60==_6){ +_5e._objects[_5f]=_5e._objects[0]; +return nil; +}else{ +_5e._objects[_5f]=_60=_61; +} +} +} +if(objj_msgSend(_60,"isMemberOfClass:",_c)){ +_60=objj_msgSend(_60,"JSObject"); +} +return _60; +}; +p;18;CPKeyValueCoding.ji;9;CPArray.ji;10;CPObject.ji;14;CPDictionary.jc;5969; +var _1=nil,_2=nil; +CPUndefinedKeyException="CPUndefinedKeyException"; +CPTargetObjectUserInfoKey="CPTargetObjectUserInfoKey"; +CPUnknownUserInfoKey="CPUnknownUserInfoKey"; +var _3=objj_getClass("CPObject"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPObject\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("_ivarForKey:"),function(_5,_6,_7){ +with(_5){ +var _8="_"+_7; +if(typeof _5[_8]!="undefined"){ +return _8; +} +var _9="is"+_7.charAt(0).toUpperCase()+_7.substr(1); +_8="_"+_9; +if(typeof _5[_8]!="undefined"){ +return _8; +} +_8=_7; +if(typeof _5[_8]!="undefined"){ +return _8; +} +_8=_9; +if(typeof _5[_8]!="undefined"){ +return _8; +} +return nil; +} +}),new objj_method(sel_getUid("valueForKey:"),function(_a,_b,_c){ +with(_a){ +var _d=objj_msgSend(_a,"class"),_e=objj_msgSend(_d,"_accessorForKey:",_c); +if(_e){ +return objj_msgSend(_a,_e); +} +if(objj_msgSend(_d,"accessInstanceVariablesDirectly")){ +var _f=objj_msgSend(_a,"_ivarForKey:",_c); +if(_f){ +return _a[_f]; +} +} +return objj_msgSend(_a,"valueForUndefinedKey:",_c); +} +}),new objj_method(sel_getUid("valueForKeyPath:"),function(_10,_11,_12){ +with(_10){ +var _13=_12.split("."),_14=0,_15=_13.length,_16=_10; +for(;_14<_15;++_14){ +_16=objj_msgSend(_16,"valueForKey:",_13[_14]); +} +return _16; +} +}),new objj_method(sel_getUid("dictionaryWithValuesForKeys:"),function(_17,_18,_19){ +with(_17){ +var _1a=0,_1b=_19.length,_1c=objj_msgSend(CPDictionary,"dictionary"); +for(;_1a<_1b;++_1a){ +var key=_19[_1a],_1e=objj_msgSend(_17,"valueForKey:",key); +if(_1e===nil){ +objj_msgSend(_1c,"setObject:forKey:",objj_msgSend(CPNull,"null"),key); +}else{ +objj_msgSend(_1c,"setObject:forKey:",_1e,key); +} +} +return _1c; +} +}),new objj_method(sel_getUid("valueForUndefinedKey:"),function(_1f,_20,_21){ +with(_1f){ +objj_msgSend(objj_msgSend(CPException,"exceptionWithName:reason:userInfo:",CPUndefinedKeyException,objj_msgSend(_1f,"description")+" is not key value coding-compliant for the key "+_21,objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[_1f,_21],[CPTargetObjectUserInfoKey,CPUnknownUserInfoKey])),"raise"); +} +}),new objj_method(sel_getUid("setValue:forKeyPath:"),function(_22,_23,_24,_25){ +with(_22){ +if(!_25){ +_25="self"; +} +var i=0,_27=_25.split("."),_28=_27.length-1,_29=_22; +for(;i<_28;++i){ +_29=objj_msgSend(_29,"valueForKey:",_27[i]); +} +objj_msgSend(_29,"setValue:forKey:",_24,_27[i]); +} +}),new objj_method(sel_getUid("setValue:forKey:"),function(_2a,_2b,_2c,_2d){ +with(_2a){ +var _2e=objj_msgSend(_2a,"class"),_2f=objj_msgSend(_2e,"_modifierForKey:",_2d); +if(_2f){ +return objj_msgSend(_2a,_2f,_2c); +} +if(objj_msgSend(_2e,"accessInstanceVariablesDirectly")){ +var _30=objj_msgSend(_2a,"_ivarForKey:",_2d); +if(_30){ +objj_msgSend(_2a,"willChangeValueForKey:",_2d); +_2a[_30]=_2c; +objj_msgSend(_2a,"didChangeValueForKey:",_2d); +return; +} +} +objj_msgSend(_2a,"setValue:forUndefinedKey:",_2c,_2d); +} +}),new objj_method(sel_getUid("setValue:forUndefinedKey:"),function(_31,_32,_33,_34){ +with(_31){ +objj_msgSend(objj_msgSend(CPException,"exceptionWithName:reason:userInfo:",CPUndefinedKeyException,objj_msgSend(_31,"description")+" is not key value coding-compliant for the key "+_34,objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[_31,_34],[CPTargetObjectUserInfoKey,CPUnknownUserInfoKey])),"raise"); +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("accessInstanceVariablesDirectly"),function(_35,_36){ +with(_35){ +return YES; +} +}),new objj_method(sel_getUid("_accessorForKey:"),function(_37,_38,_39){ +with(_37){ +if(!_1){ +_1=objj_msgSend(CPDictionary,"dictionary"); +} +var _3a=objj_msgSend(isa,"hash"),_3b=nil,_3c=objj_msgSend(_1,"objectForKey:",_3a); +if(_3c){ +_3b=objj_msgSend(_3c,"objectForKey:",_39); +if(_3b){ +return _3b===objj_msgSend(CPNull,"null")?nil:_3b; +} +}else{ +_3c=objj_msgSend(CPDictionary,"dictionary"); +objj_msgSend(_1,"setObject:forKey:",_3c,_3a); +} +var _3d=_39.charAt(0).toUpperCase()+_39.substr(1); +if(objj_msgSend(_37,"instancesRespondToSelector:",_3b=CPSelectorFromString("get"+_3d))||objj_msgSend(_37,"instancesRespondToSelector:",_3b=CPSelectorFromString(_39))||objj_msgSend(_37,"instancesRespondToSelector:",_3b=CPSelectorFromString("is"+_3d))||objj_msgSend(_37,"instancesRespondToSelector:",_3b=CPSelectorFromString("_get"+_3d))||objj_msgSend(_37,"instancesRespondToSelector:",_3b=CPSelectorFromString("_"+_39))||objj_msgSend(_37,"instancesRespondToSelector:",_3b=CPSelectorFromString("_is"+_3d))){ +objj_msgSend(_3c,"setObject:forKey:",_3b,_39); +return _3b; +} +objj_msgSend(_3c,"setObject:forKey:",objj_msgSend(CPNull,"null"),_39); +return nil; +} +}),new objj_method(sel_getUid("_modifierForKey:"),function(_3e,_3f,_40){ +with(_3e){ +if(!_2){ +_2=objj_msgSend(CPDictionary,"dictionary"); +} +var _41=objj_msgSend(isa,"hash"),_42=nil,_43=objj_msgSend(_2,"objectForKey:",_41); +if(_43){ +_42=objj_msgSend(_43,"objectForKey:",_40); +if(_42){ +return _42===objj_msgSend(CPNull,"null")?nil:_42; +} +}else{ +_43=objj_msgSend(CPDictionary,"dictionary"); +objj_msgSend(_2,"setObject:forKey:",_43,_41); +} +if(_42){ +return _42===objj_msgSend(CPNull,"null")?nil:_42; +} +var _44=_40.charAt(0).toUpperCase()+_40.substr(1)+":"; +if(objj_msgSend(_3e,"instancesRespondToSelector:",_42=CPSelectorFromString("set"+_44))||objj_msgSend(_3e,"instancesRespondToSelector:",_42=CPSelectorFromString("_set"+_44))){ +objj_msgSend(_43,"setObject:forKey:",_42,_40); +return _42; +} +objj_msgSend(_43,"setObject:forKey:",objj_msgSend(CPNull,"null"),_40); +return nil; +} +})]); +var _3=objj_getClass("CPDictionary"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPDictionary\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("valueForKey:"),function(_45,_46,_47){ +with(_45){ +return objj_msgSend(_45,"objectForKey:",_47); +} +}),new objj_method(sel_getUid("setValue:forKey:"),function(_48,_49,_4a,_4b){ +with(_48){ +objj_msgSend(_48,"setObject:forKey:",_4a,_4b); +} +})]); +i;13;CPArray+KVO.jp;21;CPKeyValueObserving.ji;9;CPArray.ji;14;CPDictionary.ji;13;CPException.ji;10;CPObject.ji;7;CPSet.jc;14900; +var _1=objj_getClass("CPObject"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPObject\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("willChangeValueForKey:"),function(_3,_4,_5){ +with(_3){ +} +}),new objj_method(sel_getUid("didChangeValueForKey:"),function(_6,_7,_8){ +with(_6){ +} +}),new objj_method(sel_getUid("willChange:valuesAtIndexes:forKey:"),function(_9,_a,_b,_c,_d){ +with(_9){ +} +}),new objj_method(sel_getUid("didChange:valuesAtIndexes:forKey:"),function(_e,_f,_10,_11,key){ +with(_e){ +} +}),new objj_method(sel_getUid("addObserver:forKeyPath:options:context:"),function(_13,_14,_15,_16,_17,_18){ +with(_13){ +if(!_15||!_16){ +return; +} +objj_msgSend(objj_msgSend(_CPKVOProxy,"proxyForObject:",_13),"_addObserver:forKeyPath:options:context:",_15,_16,_17,_18); +} +}),new objj_method(sel_getUid("removeObserver:forKeyPath:"),function(_19,_1a,_1b,_1c){ +with(_19){ +if(!_1b||!_1c){ +return; +} +objj_msgSend(objj_msgSend(_1d,"objectForKey:",objj_msgSend(_19,"hash")),"_removeObserver:forKeyPath:",_1b,_1c); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("automaticallyNotifiesObserversForKey:"),function(_1e,_1f,_20){ +with(_1e){ +return YES; +} +}),new objj_method(sel_getUid("keyPathsForValuesAffectingValueForKey:"),function(_21,_22,_23){ +with(_21){ +var _24=_23.charAt(0).toUpperCase()+_23.substring(1); +selector="keyPathsForValuesAffectingValueFor"+_24; +if(objj_msgSend(objj_msgSend(_21,"class"),"respondsToSelector:",selector)){ +return objj_msgSend(objj_msgSend(_21,"class"),selector); +} +return objj_msgSend(CPSet,"set"); +} +})]); +CPKeyValueObservingOptionNew=1<<0; +CPKeyValueObservingOptionOld=1<<1; +CPKeyValueObservingOptionInitial=1<<2; +CPKeyValueObservingOptionPrior=1<<3; +CPKeyValueChangeKindKey="CPKeyValueChangeKindKey"; +CPKeyValueChangeNewKey="CPKeyValueChangeNewKey"; +CPKeyValueChangeOldKey="CPKeyValueChangeOldKey"; +CPKeyValueChangeIndexesKey="CPKeyValueChangeIndexesKey"; +CPKeyValueChangeNotificationIsPriorKey="CPKeyValueChangeNotificationIsPriorKey"; +CPKeyValueChangeSetting=1; +CPKeyValueChangeInsertion=2; +CPKeyValueChangeRemoval=3; +CPKeyValueChangeReplacement=4; +var _25=CPKeyValueObservingOptionNew|CPKeyValueObservingOptionOld; +var _1d=objj_msgSend(CPDictionary,"dictionary"),_26=objj_msgSend(CPDictionary,"dictionary"); +var _1=objj_allocateClassPair(CPObject,"_CPKVOProxy"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_targetObject"),new objj_ivar("_nativeClass"),new objj_ivar("_changesForKey"),new objj_ivar("_observersForKey"),new objj_ivar("_replacedKeys")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithTarget:"),function(_27,_28,_29){ +with(_27){ +_27=objj_msgSendSuper({receiver:_27,super_class:objj_getClass("CPObject")},"init"); +_targetObject=_29; +_nativeClass=objj_msgSend(_29,"class"); +_observersForKey=objj_msgSend(CPDictionary,"dictionary"); +_changesForKey=objj_msgSend(CPDictionary,"dictionary"); +_replacedKeys=objj_msgSend(CPSet,"set"); +return _27; +} +}),new objj_method(sel_getUid("_replaceClass"),function(_2a,_2b){ +with(_2a){ +var _2c=_nativeClass,_2d="$KVO_"+class_getName(_nativeClass),_2e=objj_lookUpClass(_2d); +if(_2e){ +_targetObject.isa=_2e; +return; +} +var _2f=objj_allocateClassPair(_2c,_2d); +objj_registerClassPair(_2f); +_class_initialize(_2f); +var _30=_CPKVOModelSubclass.method_list,_31=_30.length; +for(var i=0;i<_31;i++){ +var _33=_30[i]; +class_addMethod(_2f,method_getName(_33),method_getImplementation(_33),""); +} +_targetObject.isa=_2f; +} +}),new objj_method(sel_getUid("_replaceSetterForKey:"),function(_34,_35,_36){ +with(_34){ +if(objj_msgSend(_replacedKeys,"containsObject:",_36)||!objj_msgSend(_nativeClass,"automaticallyNotifiesObserversForKey:",_36)){ +return; +} +var _37=_nativeClass,_38=_36.charAt(0).toUpperCase()+_36.substring(1),_39=false,_3a=["set"+_38+":",_3b,"_set"+_38+":",_3b,"insertObject:in"+_38+"AtIndex:",_3c,"replaceObjectIn"+_38+"AtIndex:withObject:",_3d,"removeObjectFrom"+_38+"AtIndex:",_3e]; +for(var i=0,_40=_3a.length;i<_40;i+=2){ +var _41=sel_getName(_3a[i]),_42=_3a[i+1]; +if(objj_msgSend(_nativeClass,"instancesRespondToSelector:",_41)){ +var _43=class_getInstanceMethod(_nativeClass,_41); +class_addMethod(_targetObject.isa,_41,_42(_36,_43),""); +_39=true; +} +} +if(_39){ +return; +} +var _44=objj_msgSend(objj_msgSend(_nativeClass,"keyPathsForValuesAffectingValueForKey:",_36),"allObjects"); +if(!_44){ +return; +} +var _45=objj_msgSend(_26,"objectForKey:",objj_msgSend(_nativeClass,"hash")); +if(!_45){ +_45=objj_msgSend(CPDictionary,"new"); +objj_msgSend(_26,"setObject:forKey:",_45,objj_msgSend(_nativeClass,"hash")); +} +for(var i=0,_40=_44.length;i<_40;i++){ +var _46=_44[i],_47=objj_msgSend(_45,"objectForKey:",_46); +if(!_47){ +_47=objj_msgSend(CPSet,"new"); +objj_msgSend(_45,"setObject:forKey:",_47,_46); +} +objj_msgSend(_47,"addObject:",_36); +objj_msgSend(_34,"_replaceSetterForKey:",_46); +} +} +}),new objj_method(sel_getUid("_addObserver:forKeyPath:options:context:"),function(_48,_49,_4a,_4b,_4c,_4d){ +with(_48){ +if(!_4a){ +return; +} +var _4e=nil; +if(_4b.indexOf(".")!=CPNotFound){ +_4e=objj_msgSend(objj_msgSend(_CPKVOForwardingObserver,"alloc"),"initWithKeyPath:object:observer:options:context:",_4b,_targetObject,_4a,_4c,_4d); +}else{ +objj_msgSend(_48,"_replaceSetterForKey:",_4b); +} +var _4f=objj_msgSend(_observersForKey,"objectForKey:",_4b); +if(!_4f){ +_4f=objj_msgSend(CPDictionary,"dictionary"); +objj_msgSend(_observersForKey,"setObject:forKey:",_4f,_4b); +} +objj_msgSend(_4f,"setObject:forKey:",_50(_4a,_4c,_4d,_4e),objj_msgSend(_4a,"hash")); +if(_4c&CPKeyValueObservingOptionInitial){ +var _51=objj_msgSend(_targetObject,"valueForKeyPath:",_4b); +if(_51===nil||_51===undefined){ +_51=objj_msgSend(CPNull,"null"); +} +var _52=objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",_51,CPKeyValueChangeNewKey); +objj_msgSend(_4a,"observeValueForKeyPath:ofObject:change:context:",_4b,_48,_52,_4d); +} +} +}),new objj_method(sel_getUid("_removeObserver:forKeyPath:"),function(_53,_54,_55,_56){ +with(_53){ +var _57=objj_msgSend(_observersForKey,"objectForKey:",_56); +if(_56.indexOf(".")!=CPNotFound){ +var _58=objj_msgSend(_57,"objectForKey:",objj_msgSend(_55,"hash")).forwarder; +objj_msgSend(_58,"finalize"); +} +objj_msgSend(_57,"removeObjectForKey:",objj_msgSend(_55,"hash")); +if(!objj_msgSend(_57,"count")){ +objj_msgSend(_observersForKey,"removeObjectForKey:",_56); +} +if(!objj_msgSend(_observersForKey,"count")){ +_targetObject.isa=_nativeClass; +objj_msgSend(_1d,"removeObjectForKey:",objj_msgSend(_targetObject,"hash")); +} +} +}),new objj_method(sel_getUid("_sendNotificationsForKey:changeOptions:isBefore:"),function(_59,_5a,_5b,_5c,_5d){ +with(_59){ +var _5e=objj_msgSend(_changesForKey,"objectForKey:",_5b); +if(_5d){ +_5e=_5c; +var _5f=objj_msgSend(_5e,"objectForKey:",CPKeyValueChangeIndexesKey); +if(_5f){ +var _60=objj_msgSend(_5e,"objectForKey:",CPKeyValueChangeKindKey); +if(_60==CPKeyValueChangeReplacement||_60==CPKeyValueChangeRemoval){ +var _61=objj_msgSend(objj_msgSend(_targetObject,"mutableArrayValueForKeyPath:",_5b),"objectsAtIndexes:",_5f); +objj_msgSend(_5e,"setValue:forKey:",_61,CPKeyValueChangeOldKey); +} +}else{ +var _62=objj_msgSend(_targetObject,"valueForKey:",_5b); +if(_62===nil||_62===undefined){ +_62=objj_msgSend(CPNull,"null"); +} +objj_msgSend(_5e,"setObject:forKey:",_62,CPKeyValueChangeOldKey); +} +objj_msgSend(_5e,"setObject:forKey:",1,CPKeyValueChangeNotificationIsPriorKey); +objj_msgSend(_changesForKey,"setObject:forKey:",_5e,_5b); +}else{ +objj_msgSend(_5e,"removeObjectForKey:",CPKeyValueChangeNotificationIsPriorKey); +var _5f=objj_msgSend(_5e,"objectForKey:",CPKeyValueChangeIndexesKey); +if(_5f){ +var _60=objj_msgSend(_5e,"objectForKey:",CPKeyValueChangeKindKey); +if(_60==CPKeyValueChangeReplacement||_60==CPKeyValueChangeInsertion){ +var _61=objj_msgSend(objj_msgSend(_targetObject,"mutableArrayValueForKeyPath:",_5b),"objectsAtIndexes:",_5f); +objj_msgSend(_5e,"setValue:forKey:",_61,CPKeyValueChangeNewKey); +} +}else{ +var _63=objj_msgSend(_targetObject,"valueForKey:",_5b); +if(_63===nil||_63===undefined){ +_63=objj_msgSend(CPNull,"null"); +} +objj_msgSend(_5e,"setObject:forKey:",_63,CPKeyValueChangeNewKey); +} +} +var _64=objj_msgSend(objj_msgSend(_observersForKey,"objectForKey:",_5b),"allValues"),_65=objj_msgSend(_64,"count"); +while(_65--){ +var _66=_64[_65]; +if(_5d&&(_66.options&CPKeyValueObservingOptionPrior)){ +objj_msgSend(_66.observer,"observeValueForKeyPath:ofObject:change:context:",_5b,_targetObject,_5e,_66.context); +}else{ +if(!_5d){ +objj_msgSend(_66.observer,"observeValueForKeyPath:ofObject:change:context:",_5b,_targetObject,_5e,_66.context); +} +} +} +var _67=objj_msgSend(objj_msgSend(objj_msgSend(_26,"objectForKey:",objj_msgSend(_nativeClass,"hash")),"objectForKey:",_5b),"allObjects"); +if(!_67){ +return; +} +for(var i=0,_65=_67.length;i<_65;i++){ +objj_msgSend(_59,"_sendNotificationsForKey:changeOptions:isBefore:",_67[i],_5c,_5d); +} +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("proxyForObject:"),function(_69,_6a,_6b){ +with(_69){ +var _6c=objj_msgSend(_1d,"objectForKey:",objj_msgSend(_6b,"hash")); +if(_6c){ +return _6c; +} +_6c=objj_msgSend(objj_msgSend(_69,"alloc"),"initWithTarget:",_6b); +objj_msgSend(_6c,"_replaceClass"); +objj_msgSend(_1d,"setObject:forKey:",_6c,objj_msgSend(_6b,"hash")); +return _6c; +} +})]); +var _1=objj_allocateClassPair(Nil,"_CPKVOModelSubclass"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("willChangeValueForKey:"),function(_6d,_6e,_6f){ +with(_6d){ +if(!_6f){ +return; +} +var _70=objj_msgSend(CPDictionary,"dictionaryWithObject:forKey:",CPKeyValueChangeSetting,CPKeyValueChangeKindKey); +objj_msgSend(objj_msgSend(_CPKVOProxy,"proxyForObject:",_6d),"_sendNotificationsForKey:changeOptions:isBefore:",_6f,_70,YES); +} +}),new objj_method(sel_getUid("didChangeValueForKey:"),function(_71,_72,_73){ +with(_71){ +if(!_73){ +return; +} +objj_msgSend(objj_msgSend(_CPKVOProxy,"proxyForObject:",_71),"_sendNotificationsForKey:changeOptions:isBefore:",_73,nil,NO); +} +}),new objj_method(sel_getUid("willChange:valuesAtIndexes:forKey:"),function(_74,_75,_76,_77,_78){ +with(_74){ +if(!_78){ +return; +} +var _79=objj_msgSend(CPDictionary,"dictionaryWithObjects:forKeys:",[_76,_77],[CPKeyValueChangeKindKey,CPKeyValueChangeIndexesKey]); +objj_msgSend(objj_msgSend(_CPKVOProxy,"proxyForObject:",_74),"_sendNotificationsForKey:changeOptions:isBefore:",_78,_79,YES); +} +}),new objj_method(sel_getUid("didChange:valuesAtIndexes:forKey:"),function(_7a,_7b,_7c,_7d,_7e){ +with(_7a){ +if(!_7e){ +return; +} +objj_msgSend(objj_msgSend(_CPKVOProxy,"proxyForObject:",_7a),"_sendNotificationsForKey:changeOptions:isBefore:",_7e,nil,NO); +} +}),new objj_method(sel_getUid("class"),function(_7f,_80){ +with(_7f){ +return objj_msgSend(_1d,"objectForKey:",objj_msgSend(_7f,"hash"))._nativeClass; +} +}),new objj_method(sel_getUid("superclass"),function(_81,_82){ +with(_81){ +return objj_msgSend(objj_msgSend(_81,"class"),"superclass"); +} +}),new objj_method(sel_getUid("isKindOfClass:"),function(_83,_84,_85){ +with(_83){ +return objj_msgSend(objj_msgSend(_83,"class"),"isSubclassOfClass:",_85); +} +}),new objj_method(sel_getUid("isMemberOfClass:"),function(_86,_87,_88){ +with(_86){ +return objj_msgSend(_86,"class")==_88; +} +}),new objj_method(sel_getUid("className"),function(_89,_8a){ +with(_89){ +return objj_msgSend(_89,"class").name; +} +})]); +var _1=objj_allocateClassPair(CPObject,"_CPKVOForwardingObserver"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_object"),new objj_ivar("_observer"),new objj_ivar("_context"),new objj_ivar("_firstPart"),new objj_ivar("_secondPart"),new objj_ivar("_value")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithKeyPath:object:observer:options:context:"),function(_8b,_8c,_8d,_8e,_8f,_90,_91){ +with(_8b){ +_8b=objj_msgSendSuper({receiver:_8b,super_class:objj_getClass("CPObject")},"init"); +_context=_91; +_observer=_8f; +_object=_8e; +var _92=_8d.indexOf("."); +if(_92==CPNotFound){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"Created _CPKVOForwardingObserver without compound key path: "+_8d); +} +_firstPart=_8d.substring(0,_92); +_secondPart=_8d.substring(_92+1); +objj_msgSend(_object,"addObserver:forKeyPath:options:context:",_8b,_firstPart,_25,nil); +_value=objj_msgSend(_object,"valueForKey:",_firstPart); +if(_value){ +objj_msgSend(_value,"addObserver:forKeyPath:options:context:",_8b,_secondPart,_25,nil); +} +return _8b; +} +}),new objj_method(sel_getUid("observeValueForKeyPath:ofObject:change:context:"),function(_93,_94,_95,_96,_97,_98){ +with(_93){ +if(_96==_object){ +objj_msgSend(_observer,"observeValueForKeyPath:ofObject:change:context:",_firstPart,_object,_97,_context); +if(_value){ +objj_msgSend(_value,"removeObserver:forKeyPath:",_93,_secondPart); +} +_value=objj_msgSend(_object,"valueForKey:",_firstPart); +if(_value){ +objj_msgSend(_value,"addObserver:forKeyPath:options:context:",_93,_secondPart,_25,nil); +} +}else{ +objj_msgSend(_observer,"observeValueForKeyPath:ofObject:change:context:",_firstPart+"."+_95,_object,_97,_context); +} +} +}),new objj_method(sel_getUid("finalize"),function(_99,_9a){ +with(_99){ +if(_value){ +objj_msgSend(_value,"removeObserver:forKeyPath:",_99,_secondPart); +} +objj_msgSend(_object,"removeObserver:forKeyPath:",_99,_firstPart); +_object=nil; +_observer=nil; +_context=nil; +_value=nil; +} +})]); +var _50=_50=function(_9b,_9c,_9d,_9e){ +return {observer:_9b,options:_9c,context:_9d,forwarder:_9e}; +}; +var _3b=_3b=function(_9f,_a0){ +return function(_a1,_a2,_a3){ +objj_msgSend(_a1,"willChangeValueForKey:",_9f); +_a0.method_imp(_a1,_a2,_a3); +objj_msgSend(_a1,"didChangeValueForKey:",_9f); +}; +}; +var _3c=_3c=function(_a4,_a5){ +return function(_a6,_a7,_a8,_a9){ +objj_msgSend(_a6,"willChange:valuesAtIndexes:forKey:",CPKeyValueChangeInsertion,objj_msgSend(CPIndexSet,"indexSetWithIndex:",_a9),_a4); +_a5.method_imp(_a6,_a7,_a8,_a9); +objj_msgSend(_a6,"didChange:valuesAtIndexes:forKey:",CPKeyValueChangeInsertion,objj_msgSend(CPIndexSet,"indexSetWithIndex:",_a9),_a4); +}; +}; +var _3d=_3d=function(_aa,_ab){ +return function(_ac,_ad,_ae,_af){ +objj_msgSend(_ac,"willChange:valuesAtIndexes:forKey:",CPKeyValueChangeReplacement,objj_msgSend(CPIndexSet,"indexSetWithIndex:",_ae),_aa); +_ab.method_imp(_ac,_ad,_ae,_af); +objj_msgSend(_ac,"didChange:valuesAtIndexes:forKey:",CPKeyValueChangeReplacement,objj_msgSend(CPIndexSet,"indexSetWithIndex:",_ae),_aa); +}; +}; +var _3e=_3e=function(_b0,_b1){ +return function(_b2,_b3,_b4){ +objj_msgSend(_b2,"willChange:valuesAtIndexes:forKey:",CPKeyValueChangeRemoval,objj_msgSend(CPIndexSet,"indexSetWithIndex:",_b4),_b0); +_b1.method_imp(_b2,_b3,_b4); +objj_msgSend(_b2,"didChange:valuesAtIndexes:forKey:",CPKeyValueChangeRemoval,objj_msgSend(CPIndexSet,"indexSetWithIndex:",_b4),_b0); +}; +}; +i;13;CPArray+KVO.jp;7;CPLog.jc;6885; +window.CPLogDisable=false; +var _1="Cappuccino"; +var _2=["fatal","error","warn","info","debug","trace"]; +var _3=_2[0]; +var _4={}; +for(var i=0;i<_2.length;i++){ +_4[_2[i]]=i; +} +var _6={}; +var _7=function(_8,_9,_a){ +var _b=new Date(); +_9=(_9==null?"":" ["+_9+"]"); +if(typeof sprintf=="function"){ +return sprintf("%4d-%02d-%02d %02d:%02d:%02d.%03d %s%s: %s",_b.getFullYear(),_b.getMonth(),_b.getDate(),_b.getHours(),_b.getMinutes(),_b.getSeconds(),_b.getMilliseconds(),_a,_9,_8); +}else{ +return _b+" "+_a+_9+": "+_8; +} +}; +CPLogRegister=function(_c,_d){ +CPLogRegisterRange(_c,_2[0],_d||_2[_2.length-1]); +}; +CPLogRegisterRange=function(_e,_f,_10){ +var min=_4[_f]; +var max=_4[_10]; +if(min!=undefined&&max!=undefined){ +for(var i=0;i<=max;i++){ +CPLogRegisterSingle(_e,_2[i]); +} +} +}; +CPLogRegisterSingle=function(_14,_15){ +if(_6[_15]==undefined){ +_6[_15]=[_14]; +}else{ +_6[_15].push(_14); +} +}; +_CPLogDispatch=function(_16,_17,_18){ +if(_18==undefined){ +_18=_1; +} +if(_17==undefined){ +_17=_3; +} +var _19=(typeof _16[0]=="string"&&_16.length>1)?sprintf.apply(null,_16):String(_16[0]); +if(_6[_17]){ +for(var i=0;i<_6[_17].length;i++){ +_6[_17][i](_19,_17,_18); +} +} +}; +CPLog=function(){ +_CPLogDispatch(arguments); +}; +for(var i=0;i<_2.length;i++){ +CPLog[_2[i]]=(function(_1b){ +return function(){ +_CPLogDispatch(arguments,_1b); +}; +})(_2[i]); +} +ANSI_ESC=String.fromCharCode(27); +ANSI_CSI=ANSI_ESC+"["; +ANSI_TEXT_PROP="m"; +ANSI_RESET="0"; +ANSI_BOLD="1"; +ANSI_FAINT="2"; +ANSI_NORMAL="22"; +ANSI_ITALIC="3"; +ANSI_UNDER="4"; +ANSI_UNDER_DBL="21"; +ANSI_UNDER_OFF="24"; +ANSI_BLINK="5"; +ANSI_BLINK_FAST="6"; +ANSI_BLINK_OFF="25"; +ANSI_REVERSE="7"; +ANSI_POSITIVE="27"; +ANSI_CONCEAL="8"; +ANSI_REVEAL="28"; +ANSI_FG="3"; +ANSI_BG="4"; +ANSI_FG_INTENSE="9"; +ANSI_BG_INTENSE="10"; +ANSI_BLACK="0"; +ANSI_RED="1"; +ANSI_GREEN="2"; +ANSI_YELLOW="3"; +ANSI_BLUE="4"; +ANSI_MAGENTA="5"; +ANSI_CYAN="6"; +ANSI_WHITE="7"; +var _1c={"black":ANSI_BLACK,"red":ANSI_RED,"green":ANSI_GREEN,"yellow":ANSI_YELLOW,"blue":ANSI_BLUE,"magenta":ANSI_MAGENTA,"cyan":ANSI_CYAN,"white":ANSI_WHITE}; +ANSIControlCode=function(_1d,_1e){ +if(_1e==undefined){ +_1e=""; +}else{ +if(typeof (_1e)=="object"&&(_1e instanceof Array)){ +_1e=_1e.join(";"); +} +} +return ANSI_CSI+String(_1e)+String(_1d); +}; +ANSITextApplyProperties=function(_1f,_20){ +return ANSIControlCode(ANSI_TEXT_PROP,_20)+String(_1f)+ANSIControlCode(ANSI_TEXT_PROP); +}; +ANSITextColorize=function(_21,_22){ +if(_1c[_22]==undefined){ +return _21; +} +return ANSITextApplyProperties(_21,ANSI_FG+_1c[_22]); +}; +var _23={"fatal":"red","error":"red","warn":"yellow","info":"green","debug":"cyan","trace":"blue"}; +CPLogPrint=function(_24,_25,_26){ +if(typeof print!="undefined"){ +if(_25=="fatal"||_25=="error"||_25=="warn"){ +var _27=ANSITextColorize(_7(_24,_25,_26),_23[_25]); +}else{ +var _27=_7(_24,ANSITextColorize(_25,_23[_25]),_26); +} +print(_27); +} +}; +CPLogAlert=function(_28,_29,_2a){ +if(typeof alert!="undefined"&&!window.CPLogDisable){ +var _2b=_7(_28,_29,_2a); +window.CPLogDisable=!confirm(_2b+"\n\n(Click cancel to stop log alerts)"); +} +}; +CPLogConsole=function(_2c,_2d,_2e){ +if(typeof console!="undefined"){ +var _2f=_7(_2c,_2d,_2e); +var _30={"fatal":"error","error":"error","warn":"warn","info":"info","debug":"debug","trace":"debug"}[_2d]; +if(_30&&console[_30]){ +console[_30](_2f); +}else{ +if(console.log){ +console.log(_2f); +} +} +} +}; +var _31=null; +CPLogPopup=function(_32,_33,_34){ +try{ +if(window.CPLogDisable||window.open==undefined){ +return; +} +if(!_31||!_31.document){ +_31=window.open("","_blank","width=600,height=400,status=no,resizable=yes,scrollbars=yes"); +if(!_31){ +window.CPLogDisable=!confirm(_32+"\n\n(Disable pop-up blocking for CPLog window; Click cancel to stop log alerts)"); +return; +} +_35(_31); +} +var _36=_31.document.createElement("div"); +_36.setAttribute("class",_33||"fatal"); +var _37=_7(_32,null,_34); +_36.appendChild(_31.document.createTextNode(_37)); +_31.log.appendChild(_36); +if(_31.focusEnabled.checked){ +_31.focus(); +} +if(_31.blockEnabled.checked){ +_31.blockEnabled.checked=_31.confirm(_37+"\nContinue blocking?"); +} +if(_31.scrollEnabled.checked){ +_31.scrollToBottom(); +} +} +catch(e){ +} +}; +var _35=function(_38){ +var doc=_38.document; +doc.writeln(""); +doc.title=_1+" Run Log"; +var _3a=doc.getElementsByTagName("head")[0]; +var _3b=doc.getElementsByTagName("body")[0]; +var _3c=window.location.protocol+"//"+window.location.host+window.location.pathname; +_3c=_3c.substring(0,_3c.lastIndexOf("/")+1); +var _3d=doc.createElement("link"); +_3d.setAttribute("type","text/css"); +_3d.setAttribute("rel","stylesheet"); +_3d.setAttribute("href",_3c+"Frameworks/Foundation/Resources/log.css"); +_3d.setAttribute("media","screen"); +_3a.appendChild(_3d); +var div=doc.createElement("div"); +div.setAttribute("id","header"); +_3b.appendChild(div); +var ul=doc.createElement("ul"); +ul.setAttribute("id","enablers"); +div.appendChild(ul); +for(var i=0;i<_2.length;i++){ +var li=doc.createElement("li"); +li.setAttribute("id","en"+_2[i]); +li.setAttribute("class",_2[i]); +li.setAttribute("onclick","toggle(this);"); +li.setAttribute("enabled","yes"); +li.appendChild(doc.createTextNode(_2[i])); +ul.appendChild(li); +} +var ul=doc.createElement("ul"); +ul.setAttribute("id","options"); +div.appendChild(ul); +var _42={"focus":["Focus",false],"block":["Block",false],"wrap":["Wrap",false],"scroll":["Scroll",true],"close":["Close",true]}; +for(o in _42){ +var li=doc.createElement("li"); +ul.appendChild(li); +_38[o+"Enabled"]=doc.createElement("input"); +_38[o+"Enabled"].setAttribute("id",o); +_38[o+"Enabled"].setAttribute("type","checkbox"); +if(_42[o][1]){ +_38[o+"Enabled"].setAttribute("checked","checked"); +} +li.appendChild(_38[o+"Enabled"]); +var _43=doc.createElement("label"); +_43.setAttribute("for",o); +_43.appendChild(doc.createTextNode(_42[o][0])); +li.appendChild(_43); +} +_38.log=doc.createElement("div"); +_38.log.setAttribute("class","enerror endebug enwarn eninfo enfatal entrace"); +_3b.appendChild(_38.log); +_38.toggle=function(_44){ +var _45=(_44.getAttribute("enabled")=="yes")?"no":"yes"; +_44.setAttribute("enabled",_45); +if(_45=="yes"){ +_38.log.className+=" "+_44.id; +}else{ +_38.log.className=_38.log.className.replace(new RegExp("[\\s]*"+_44.id,"g"),""); +} +}; +_38.scrollToBottom=function(){ +_38.scrollTo(0,_3b.offsetHeight); +}; +_38.wrapEnabled.addEventListener("click",function(){ +_38.log.setAttribute("wrap",_38.wrapEnabled.checked?"yes":"no"); +},false); +_38.addEventListener("keydown",function(e){ +var e=e||_38.event; +if(e.keyCode==75&&(e.ctrlKey||e.metaKey)){ +while(_38.log.firstChild){ +_38.log.removeChild(_38.log.firstChild); +} +e.preventDefault(); +} +},"false"); +window.addEventListener("unload",function(){ +if(_38&&_38.closeEnabled&&_38.closeEnabled.checked){ +window.CPLogDisable=true; +_38.close(); +} +},false); +_38.addEventListener("unload",function(){ +if(!window.CPLogDisable){ +window.CPLogDisable=!confirm("Click cancel to stop logging"); +} +},false); +}; +p;16;CPNotification.ji;10;CPObject.ji;13;CPException.jc;1404; +var _1=objj_allocateClassPair(CPObject,"CPNotification"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_name"),new objj_ivar("_object"),new objj_ivar("_userInfo")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("init"),function(_3,_4){ +with(_3){ +objj_msgSend(CPException,"raise:reason:",CPUnsupportedMethodException,"CPNotification's init method should not be used"); +} +}),new objj_method(sel_getUid("initWithName:object:userInfo:"),function(_5,_6,_7,_8,_9){ +with(_5){ +_5=objj_msgSendSuper({receiver:_5,super_class:objj_getClass("CPObject")},"init"); +if(_5){ +_name=_7; +_object=_8; +_userInfo=_9; +} +return _5; +} +}),new objj_method(sel_getUid("name"),function(_a,_b){ +with(_a){ +return _name; +} +}),new objj_method(sel_getUid("object"),function(_c,_d){ +with(_c){ +return _object; +} +}),new objj_method(sel_getUid("userInfo"),function(_e,_f){ +with(_e){ +return _userInfo; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("notificationWithName:object:userInfo:"),function(_10,_11,_12,_13,_14){ +with(_10){ +return objj_msgSend(objj_msgSend(_10,"alloc"),"initWithName:object:userInfo:",_12,_13,_14); +} +}),new objj_method(sel_getUid("notificationWithName:object:"),function(_15,_16,_17,_18){ +with(_15){ +return objj_msgSend(objj_msgSend(_15,"alloc"),"initWithName:object:userInfo:",_17,_18,nil); +} +})]); +p;22;CPNotificationCenter.ji;9;CPArray.ji;14;CPDictionary.ji;16;CPNotification.ji;13;CPException.jc;6582; +var _1=nil; +var _2=objj_allocateClassPair(CPObject,"CPNotificationCenter"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_namedRegistries"),new objj_ivar("_unnamedRegistry")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("init"),function(_4,_5){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPObject")},"init"); +if(_4){ +_namedRegistries=objj_msgSend(CPDictionary,"dictionary"); +_unnamedRegistry=objj_msgSend(objj_msgSend(_CPNotificationRegistry,"alloc"),"init"); +} +return _4; +} +}),new objj_method(sel_getUid("addObserver:selector:name:object:"),function(_6,_7,_8,_9,_a,_b){ +with(_6){ +var _c,_d=objj_msgSend(objj_msgSend(_CPNotificationObserver,"alloc"),"initWithObserver:selector:",_8,_9); +if(_a==nil){ +_c=_unnamedRegistry; +}else{ +if(!(_c=objj_msgSend(_namedRegistries,"objectForKey:",_a))){ +_c=objj_msgSend(objj_msgSend(_CPNotificationRegistry,"alloc"),"init"); +objj_msgSend(_namedRegistries,"setObject:forKey:",_c,_a); +} +} +objj_msgSend(_c,"addObserver:object:",_d,_b); +} +}),new objj_method(sel_getUid("removeObserver:"),function(_e,_f,_10){ +with(_e){ +var _11=nil,_12=objj_msgSend(_namedRegistries,"keyEnumerator"); +while(_11=objj_msgSend(_12,"nextObject")){ +objj_msgSend(objj_msgSend(_namedRegistries,"objectForKey:",_11),"removeObserver:object:",_10,nil); +} +objj_msgSend(_unnamedRegistry,"removeObserver:object:",_10,nil); +} +}),new objj_method(sel_getUid("removeObserver:name:object:"),function(_13,_14,_15,_16,_17){ +with(_13){ +if(_16==nil){ +var _18=nil,_19=objj_msgSend(_namedRegistries,"keyEnumerator"); +while(_18=objj_msgSend(_19,"nextObject")){ +objj_msgSend(objj_msgSend(_namedRegistries,"objectForKey:",_18),"removeObserver:object:",_15,_17); +} +objj_msgSend(_unnamedRegistry,"removeObserver:object:",_15,_17); +}else{ +objj_msgSend(objj_msgSend(_namedRegistries,"objectForKey:",_16),"removeObserver:object:",_15,_17); +} +} +}),new objj_method(sel_getUid("postNotification:"),function(_1a,_1b,_1c){ +with(_1a){ +if(!_1c){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"postNotification: does not except 'nil' notifications"); +} +_1d(_1a,_1c); +} +}),new objj_method(sel_getUid("postNotificationName:object:userInfo:"),function(_1e,_1f,_20,_21,_22){ +with(_1e){ +_1d(_1e,objj_msgSend(objj_msgSend(CPNotification,"alloc"),"initWithName:object:userInfo:",_20,_21,_22)); +} +}),new objj_method(sel_getUid("postNotificationName:object:"),function(_23,_24,_25,_26){ +with(_23){ +_1d(_23,objj_msgSend(objj_msgSend(CPNotification,"alloc"),"initWithName:object:userInfo:",_25,_26,nil)); +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("defaultCenter"),function(_27,_28){ +with(_27){ +if(!_1){ +_1=objj_msgSend(objj_msgSend(CPNotificationCenter,"alloc"),"init"); +} +return _1; +} +})]); +var _1d=function(_29,_2a){ +objj_msgSend(_29._unnamedRegistry,"postNotification:",_2a); +objj_msgSend(objj_msgSend(_29._namedRegistries,"objectForKey:",objj_msgSend(_2a,"name")),"postNotification:",_2a); +}; +var _2=objj_allocateClassPair(CPObject,"_CPNotificationRegistry"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_objectObservers"),new objj_ivar("_observerRemoval"),new objj_ivar("_postingObservers")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("init"),function(_2b,_2c){ +with(_2b){ +if(_2b){ +_objectObservers=objj_msgSend(CPDictionary,"dictionary"); +} +return _2b; +} +}),new objj_method(sel_getUid("addObserver:object:"),function(_2d,_2e,_2f,_30){ +with(_2d){ +if(!_30){ +_30=objj_msgSend(CPNull,"null"); +} +var _31=objj_msgSend(_objectObservers,"objectForKey:",objj_msgSend(_30,"hash")); +if(!_31){ +_31=[]; +objj_msgSend(_objectObservers,"setObject:forKey:",_31,objj_msgSend(_30,"hash")); +} +if(_31==_postingObservers){ +_postingObservers=objj_msgSend(_31,"copy"); +} +_31.push(_2f); +} +}),new objj_method(sel_getUid("removeObserver:object:"),function(_32,_33,_34,_35){ +with(_32){ +var _36=[]; +if(_35==nil){ +var key=nil,_38=objj_msgSend(_objectObservers,"keyEnumerator"); +while(key=objj_msgSend(_38,"nextObject")){ +var _39=objj_msgSend(_objectObservers,"objectForKey:",key),_3a=_39?_39.length:0; +while(_3a--){ +if(objj_msgSend(_39[_3a],"observer")==_34){ +_observerRemoval=YES; +if(_39==_postingObservers){ +_postingObservers=objj_msgSend(_39,"copy"); +} +_39.splice(_3a,1); +} +} +if(!_39||_39.length==0){ +_36.push(key); +} +} +}else{ +var key=objj_msgSend(_35,"hash"),_39=objj_msgSend(_objectObservers,"objectForKey:",key); +_3a=_39?_39.length:0; +while(_3a--){ +if(objj_msgSend(_39[_3a],"observer")==_34){ +_observerRemoval=YES; +if(_39==_postingObservers){ +_postingObservers=objj_msgSend(_39,"copy"); +} +_39.splice(_3a,1); +} +} +if(!_39||_39.length==0){ +_36.push(key); +} +} +var _3a=_36.length; +while(_3a--){ +objj_msgSend(_objectObservers,"removeObjectForKey:",_36[_3a]); +} +} +}),new objj_method(sel_getUid("postNotification:"),function(_3b,_3c,_3d){ +with(_3b){ +var _3e=objj_msgSend(_3d,"object"); +if(_3e!=nil&&(_postingObservers=objj_msgSend(_objectObservers,"objectForKey:",objj_msgSend(_3e,"hash")))){ +var _3f=_postingObservers,_40=_3f.length; +_observerRemoval=NO; +while(_40--){ +var _41=_postingObservers[_40]; +if(!_observerRemoval||objj_msgSend(_3f,"indexOfObjectIdenticalTo:",_41)!=CPNotFound){ +objj_msgSend(_41,"postNotification:",_3d); +} +} +} +_postingObservers=objj_msgSend(_objectObservers,"objectForKey:",objj_msgSend(objj_msgSend(CPNull,"null"),"hash")); +if(!_postingObservers){ +return; +} +var _3f=_postingObservers,_40=_3f.length; +_observerRemoval=NO; +while(_40--){ +var _41=_postingObservers[_40]; +if(!_observerRemoval||objj_msgSend(_3f,"indexOfObjectIdenticalTo:",_41)!=CPNotFound){ +objj_msgSend(_41,"postNotification:",_3d); +} +} +_postingObservers=nil; +} +}),new objj_method(sel_getUid("count"),function(_42,_43){ +with(_42){ +return objj_msgSend(_objectObservers,"count"); +} +})]); +var _2=objj_allocateClassPair(CPObject,"_CPNotificationObserver"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_observer"),new objj_ivar("_selector")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithObserver:selector:"),function(_44,_45,_46,_47){ +with(_44){ +if(_44){ +_observer=_46; +_selector=_47; +} +return _44; +} +}),new objj_method(sel_getUid("observer"),function(_48,_49){ +with(_48){ +return _observer; +} +}),new objj_method(sel_getUid("postNotification:"),function(_4a,_4b,_4c){ +with(_4a){ +objj_msgSend(_observer,"performSelector:withObject:",_selector,_4c); +} +})]); +p;8;CPNull.ji;10;CPObject.jc;345; +var _1=nil; +var _2=objj_allocateClassPair(CPObject,"CPNull"),_3=_2.isa; +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("null"),function(_4,_5){ +with(_4){ +if(!_1){ +_1=objj_msgSend(objj_msgSend(CPNull,"alloc"),"init"); +} +return _1; +} +})]); +p;10;CPNumber.ji;10;CPObject.ji;15;CPObjJRuntime.jc;5981; +var _1=new Number(),_2={}; +var _3=objj_allocateClassPair(CPObject,"CPNumber"),_4=_3.isa; +objj_registerClassPair(_3); +objj_addClassForBundle(_3,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_3,[new objj_method(sel_getUid("initWithBool:"),function(_5,_6,_7){ +with(_5){ +return _7; +} +}),new objj_method(sel_getUid("initWithChar:"),function(_8,_9,_a){ +with(_8){ +if(_a.charCodeAt){ +return _a.charCodeAt(0); +} +return _a; +} +}),new objj_method(sel_getUid("initWithDouble:"),function(_b,_c,_d){ +with(_b){ +return _d; +} +}),new objj_method(sel_getUid("initWithFloat:"),function(_e,_f,_10){ +with(_e){ +return _10; +} +}),new objj_method(sel_getUid("initWithInt:"),function(_11,_12,_13){ +with(_11){ +return _13; +} +}),new objj_method(sel_getUid("initWithLong:"),function(_14,_15,_16){ +with(_14){ +return _16; +} +}),new objj_method(sel_getUid("initWithLongLong:"),function(_17,_18,_19){ +with(_17){ +return _19; +} +}),new objj_method(sel_getUid("initWithShort:"),function(_1a,_1b,_1c){ +with(_1a){ +return _1c; +} +}),new objj_method(sel_getUid("initWithUnsignedChar:"),function(_1d,_1e,_1f){ +with(_1d){ +if(_1f.charCodeAt){ +return _1f.charCodeAt(0); +} +return _1f; +} +}),new objj_method(sel_getUid("initWithUnsignedInt:"),function(_20,_21,_22){ +with(_20){ +return _22; +} +}),new objj_method(sel_getUid("initWithUnsignedLong:"),function(_23,_24,_25){ +with(_23){ +return _25; +} +}),new objj_method(sel_getUid("initWithUnsignedShort:"),function(_26,_27,_28){ +with(_26){ +return _28; +} +}),new objj_method(sel_getUid("UID"),function(_29,_2a){ +with(_29){ +if(!_2[_29]){ +_2[_29]=_objj_generateObjectHash(); +} +return _2[_29]; +} +}),new objj_method(sel_getUid("boolValue"),function(_2b,_2c){ +with(_2b){ +return _2b?true:false; +} +}),new objj_method(sel_getUid("charValue"),function(_2d,_2e){ +with(_2d){ +return String.fromCharCode(_2d); +} +}),new objj_method(sel_getUid("decimalValue"),function(_2f,_30){ +with(_2f){ +objj_throw_exception("decimalValue: NOT YET IMPLEMENTED"); +} +}),new objj_method(sel_getUid("descriptionWithLocale:"),function(_31,_32,_33){ +with(_31){ +if(!_33){ +return toString(); +} +objj_throw_exception("descriptionWithLocale: NOT YET IMPLEMENTED"); +} +}),new objj_method(sel_getUid("description"),function(_34,_35){ +with(_34){ +return objj_msgSend(_34,"descriptionWithLocale:",nil); +} +}),new objj_method(sel_getUid("doubleValue"),function(_36,_37){ +with(_36){ +if(typeof _36=="boolean"){ +return _36?1:0; +} +return _36; +} +}),new objj_method(sel_getUid("floatValue"),function(_38,_39){ +with(_38){ +if(typeof _38=="boolean"){ +return _38?1:0; +} +return _38; +} +}),new objj_method(sel_getUid("intValue"),function(_3a,_3b){ +with(_3a){ +if(typeof _3a=="boolean"){ +return _3a?1:0; +} +return _3a; +} +}),new objj_method(sel_getUid("longLongValue"),function(_3c,_3d){ +with(_3c){ +if(typeof _3c=="boolean"){ +return _3c?1:0; +} +return _3c; +} +}),new objj_method(sel_getUid("longValue"),function(_3e,_3f){ +with(_3e){ +if(typeof _3e=="boolean"){ +return _3e?1:0; +} +return _3e; +} +}),new objj_method(sel_getUid("shortValue"),function(_40,_41){ +with(_40){ +if(typeof _40=="boolean"){ +return _40?1:0; +} +return _40; +} +}),new objj_method(sel_getUid("stringValue"),function(_42,_43){ +with(_42){ +return toString(); +} +}),new objj_method(sel_getUid("unsignedCharValue"),function(_44,_45){ +with(_44){ +return String.fromCharCode(_44); +} +}),new objj_method(sel_getUid("unsignedIntValue"),function(_46,_47){ +with(_46){ +if(typeof _46=="boolean"){ +return _46?1:0; +} +return _46; +} +}),new objj_method(sel_getUid("unsignedLongValue"),function(_48,_49){ +with(_48){ +if(typeof _48=="boolean"){ +return _48?1:0; +} +return _48; +} +}),new objj_method(sel_getUid("unsignedShortValue"),function(_4a,_4b){ +with(_4a){ +if(typeof _4a=="boolean"){ +return _4a?1:0; +} +return _4a; +} +}),new objj_method(sel_getUid("compare:"),function(_4c,_4d,_4e){ +with(_4c){ +if(_4c>_4e){ +return CPOrderedDescending; +}else{ +if(_4c<_4e){ +return CPOrderedAscending; +} +} +return CPOrderedSame; +} +}),new objj_method(sel_getUid("isEqualToNumber:"),function(_4f,_50,_51){ +with(_4f){ +return _4f==_51; +} +})]); +class_addMethods(_4,[new objj_method(sel_getUid("alloc"),function(_52,_53){ +with(_52){ +return _1; +} +}),new objj_method(sel_getUid("numberWithBool:"),function(_54,_55,_56){ +with(_54){ +return _56; +} +}),new objj_method(sel_getUid("numberWithChar:"),function(_57,_58,_59){ +with(_57){ +if(_59.charCodeAt){ +return _59.charCodeAt(0); +} +return _59; +} +}),new objj_method(sel_getUid("numberWithDouble:"),function(_5a,_5b,_5c){ +with(_5a){ +return _5c; +} +}),new objj_method(sel_getUid("numberWithFloat:"),function(_5d,_5e,_5f){ +with(_5d){ +return _5f; +} +}),new objj_method(sel_getUid("numberWithInt:"),function(_60,_61,_62){ +with(_60){ +return _62; +} +}),new objj_method(sel_getUid("numberWithLong:"),function(_63,_64,_65){ +with(_63){ +return _65; +} +}),new objj_method(sel_getUid("numberWithLongLong:"),function(_66,_67,_68){ +with(_66){ +return _68; +} +}),new objj_method(sel_getUid("numberWithShort:"),function(_69,_6a,_6b){ +with(_69){ +return _6b; +} +}),new objj_method(sel_getUid("numberWithUnsignedChar:"),function(_6c,_6d,_6e){ +with(_6c){ +if(_6e.charCodeAt){ +return _6e.charCodeAt(0); +} +return _6e; +} +}),new objj_method(sel_getUid("numberWithUnsignedInt:"),function(_6f,_70,_71){ +with(_6f){ +return _71; +} +}),new objj_method(sel_getUid("numberWithUnsignedLong:"),function(_72,_73,_74){ +with(_72){ +return _74; +} +}),new objj_method(sel_getUid("numberWithUnsignedShort:"),function(_75,_76,_77){ +with(_75){ +return _77; +} +})]); +var _3=objj_getClass("CPNumber"); +if(!_3){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPNumber\"")); +} +var _4=_3.isa; +class_addMethods(_3,[new objj_method(sel_getUid("initWithCoder:"),function(_78,_79,_7a){ +with(_78){ +return objj_msgSend(_7a,"decodeNumber"); +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_7b,_7c,_7d){ +with(_7b){ +objj_msgSend(_7d,"encodeNumber:forKey:",_7b,"self"); +} +})]); +Number.prototype.isa=CPNumber; +Boolean.prototype.isa=CPNumber; +objj_msgSend(CPNumber,"initialize"); +p;10;CPObject.jc;6578; +var _1=objj_allocateClassPair(Nil,"CPObject"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("isa")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("init"),function(_3,_4){ +with(_3){ +return _3; +} +}),new objj_method(sel_getUid("copy"),function(_5,_6){ +with(_5){ +return _5; +} +}),new objj_method(sel_getUid("mutableCopy"),function(_7,_8){ +with(_7){ +return objj_msgSend(_7,"copy"); +} +}),new objj_method(sel_getUid("dealloc"),function(_9,_a){ +with(_9){ +} +}),new objj_method(sel_getUid("class"),function(_b,_c){ +with(_b){ +return isa; +} +}),new objj_method(sel_getUid("isKindOfClass:"),function(_d,_e,_f){ +with(_d){ +return objj_msgSend(isa,"isSubclassOfClass:",_f); +} +}),new objj_method(sel_getUid("isMemberOfClass:"),function(_10,_11,_12){ +with(_10){ +return _10.isa===_12; +} +}),new objj_method(sel_getUid("isProxy"),function(_13,_14){ +with(_13){ +return NO; +} +}),new objj_method(sel_getUid("respondsToSelector:"),function(_15,_16,_17){ +with(_15){ +return !!class_getInstanceMethod(isa,_17); +} +}),new objj_method(sel_getUid("methodForSelector:"),function(_18,_19,_1a){ +with(_18){ +return class_getMethodImplementation(isa,_1a); +} +}),new objj_method(sel_getUid("methodSignatureForSelector:"),function(_1b,_1c,_1d){ +with(_1b){ +return nil; +} +}),new objj_method(sel_getUid("description"),function(_1e,_1f){ +with(_1e){ +return "<"+isa.name+" 0x"+objj_msgSend(CPString,"stringWithHash:",objj_msgSend(_1e,"hash"))+">"; +} +}),new objj_method(sel_getUid("performSelector:"),function(_20,_21,_22){ +with(_20){ +return objj_msgSend(_20,_22); +} +}),new objj_method(sel_getUid("performSelector:withObject:"),function(_23,_24,_25,_26){ +with(_23){ +return objj_msgSend(_23,_25,_26); +} +}),new objj_method(sel_getUid("performSelector:withObject:withObject:"),function(_27,_28,_29,_2a,_2b){ +with(_27){ +return objj_msgSend(_27,_29,_2a,_2b); +} +}),new objj_method(sel_getUid("forwardInvocation:"),function(_2c,_2d,_2e){ +with(_2c){ +objj_msgSend(_2c,"doesNotRecognizeSelector:",objj_msgSend(_2e,"selector")); +} +}),new objj_method(sel_getUid("forward::"),function(_2f,_30,_31,_32){ +with(_2f){ +var _33=objj_msgSend(_2f,"methodSignatureForSelector:",_31); +if(_33){ +invocation=objj_msgSend(CPInvocation,"invocationWithMethodSignature:",_33); +objj_msgSend(invocation,"setTarget:",_2f); +objj_msgSend(invocation,"setSelector:",_31); +var _34=2,_35=_32.length; +for(;_34<_35;++_34){ +objj_msgSend(invocation,"setArgument:atIndex:",_32[_34],_34); +} +objj_msgSend(_2f,"forwardInvocation:",invocation); +return objj_msgSend(invocation,"returnValue"); +} +objj_msgSend(_2f,"doesNotRecognizeSelector:",_31); +} +}),new objj_method(sel_getUid("doesNotRecognizeSelector:"),function(_36,_37,_38){ +with(_36){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,(class_isMetaClass(isa)?"+":"-")+" ["+objj_msgSend(_36,"className")+" "+_38+"] unrecognized selector sent to "+(class_isMetaClass(isa)?"class":"instance")+" 0x"+objj_msgSend(CPString,"stringWithHash:",objj_msgSend(_36,"hash"))); +} +}),new objj_method(sel_getUid("awakeAfterUsingCoder:"),function(_39,_3a,_3b){ +with(_39){ +return _39; +} +}),new objj_method(sel_getUid("classForKeyedArchiver"),function(_3c,_3d){ +with(_3c){ +return objj_msgSend(_3c,"classForCoder"); +} +}),new objj_method(sel_getUid("classForCoder"),function(_3e,_3f){ +with(_3e){ +return objj_msgSend(_3e,"class"); +} +}),new objj_method(sel_getUid("replacementObjectForArchiver:"),function(_40,_41,_42){ +with(_40){ +return objj_msgSend(_40,"replacementObjectForCoder:",_42); +} +}),new objj_method(sel_getUid("replacementObjectForKeyedArchiver:"),function(_43,_44,_45){ +with(_43){ +return objj_msgSend(_43,"replacementObjectForCoder:",_45); +} +}),new objj_method(sel_getUid("replacementObjectForCoder:"),function(_46,_47,_48){ +with(_46){ +return _46; +} +}),new objj_method(sel_getUid("className"),function(_49,_4a){ +with(_49){ +return isa.name; +} +}),new objj_method(sel_getUid("autorelease"),function(_4b,_4c){ +with(_4b){ +return _4b; +} +}),new objj_method(sel_getUid("hash"),function(_4d,_4e){ +with(_4d){ +return objj_msgSend(_4d,"UID"); +} +}),new objj_method(sel_getUid("UID"),function(_4f,_50){ +with(_4f){ +if(typeof _4f.__address==="undefined"){ +_4f.__address=_objj_generateObjectHash(); +} +return __address; +} +}),new objj_method(sel_getUid("isEqual:"),function(_51,_52,_53){ +with(_51){ +return _51===_53||objj_msgSend(_51,"hash")===objj_msgSend(_53,"hash"); +} +}),new objj_method(sel_getUid("retain"),function(_54,_55){ +with(_54){ +return _54; +} +}),new objj_method(sel_getUid("release"),function(_56,_57){ +with(_56){ +} +}),new objj_method(sel_getUid("self"),function(_58,_59){ +with(_58){ +return _58; +} +}),new objj_method(sel_getUid("superclass"),function(_5a,_5b){ +with(_5a){ +return isa.super_class; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("load"),function(_5c,_5d){ +with(_5c){ +} +}),new objj_method(sel_getUid("initialize"),function(_5e,_5f){ +with(_5e){ +} +}),new objj_method(sel_getUid("new"),function(_60,_61){ +with(_60){ +return objj_msgSend(objj_msgSend(_60,"alloc"),"init"); +} +}),new objj_method(sel_getUid("alloc"),function(_62,_63){ +with(_62){ +return class_createInstance(_62); +} +}),new objj_method(sel_getUid("allocWithCoder:"),function(_64,_65,_66){ +with(_64){ +return objj_msgSend(_64,"alloc"); +} +}),new objj_method(sel_getUid("class"),function(_67,_68){ +with(_67){ +return _67; +} +}),new objj_method(sel_getUid("superclass"),function(_69,_6a){ +with(_69){ +return super_class; +} +}),new objj_method(sel_getUid("isSubclassOfClass:"),function(_6b,_6c,_6d){ +with(_6b){ +var _6e=_6b; +for(;_6e;_6e=_6e.super_class){ +if(_6e===_6d){ +return YES; +} +} +return NO; +} +}),new objj_method(sel_getUid("isKindOfClass:"),function(_6f,_70,_71){ +with(_6f){ +return objj_msgSend(_6f,"isSubclassOfClass:",_71); +} +}),new objj_method(sel_getUid("isMemberOfClass:"),function(_72,_73,_74){ +with(_72){ +return _72===_74; +} +}),new objj_method(sel_getUid("instancesRespondToSelector:"),function(_75,_76,_77){ +with(_75){ +return !!class_getInstanceMethod(_75,_77); +} +}),new objj_method(sel_getUid("instanceMethodForSelector:"),function(_78,_79,_7a){ +with(_78){ +return class_getMethodImplementation(_78,_7a); +} +}),new objj_method(sel_getUid("setVersion:"),function(_7b,_7c,_7d){ +with(_7b){ +version=_7d; +return _7b; +} +}),new objj_method(sel_getUid("version"),function(_7e,_7f){ +with(_7e){ +return version; +} +})]); +objj_object.prototype.toString=function(){ +if(this.isa&&class_getInstanceMethod(this.isa,"description")!=NULL){ +return objj_msgSend(this,"description"); +}else{ +return String(this)+" (-description not implemented)"; +} +}; +p;15;CPObjJRuntime.ji;7;CPLog.jc;372; +CPStringFromSelector=function(_1){ +return sel_getName(_1); +}; +CPSelectorFromString=function(_2){ +return sel_registerName(_2); +}; +CPClassFromString=function(_3){ +return objj_getClass(_3); +}; +CPStringFromClass=function(_4){ +return class_getName(_4); +}; +CPOrderedAscending=-1; +CPOrderedSame=0; +CPOrderedDescending=1; +CPNotFound=-1; +MIN=Math.min; +MAX=Math.max; +ABS=Math.abs; +p;29;CPPropertyListSerialization.ji;10;CPObject.jc;785; +CPPropertyListOpenStepFormat=kCFPropertyListOpenStepFormat; +CPPropertyListXMLFormat_v1_0=kCFPropertyListXMLFormat_v1_0; +CPPropertyListBinaryFormat_v1_0=kCFPropertyListBinaryFormat_v1_0; +CPPropertyList280NorthFormat_v1_0=kCFPropertyList280NorthFormat_v1_0; +var _1=objj_allocateClassPair(CPObject,"CPPropertyListSerialization"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("dataFromPropertyList:format:errorDescription:"),function(_3,_4,_5,_6,_7){ +with(_3){ +return CPPropertyListCreateData(_5,_6); +} +}),new objj_method(sel_getUid("propertyListFromData:format:errorDescription:"),function(_8,_9,_a,_b,_c){ +with(_8){ +return CPPropertyListCreateFromData(_a,_b); +} +})]); +p;9;CPRange.jc;1225; +CPMakeRange=function(_1,_2){ +return {location:_1,length:_2}; +}; +CPCopyRange=function(_3){ +return {location:_3.location,length:_3.length}; +}; +CPMakeRangeCopy=function(_4){ +return {location:_4.location,length:_4.length}; +}; +CPEmptyRange=function(_5){ +return _5.length===0; +}; +CPMaxRange=function(_6){ +return _6.location+_6.length; +}; +CPEqualRanges=function(_7,_8){ +return ((_7.location===_8.location)&&(_7.length===_8.length)); +}; +CPLocationInRange=function(_9,_a){ +return (_9>=_a.location)&&(_9=CPMaxRange(_12)); +}; +CPStringFromRange=function(_13){ +return "{"+_13.location+", "+_13.length+"}"; +}; +CPRangeFromString=function(_14){ +var _15=_14.indexOf(","); +return {location:parseInt(_14.substr(1,_15-1)),length:parseInt(_14.substring(_15+1,_14.length))}; +}; +p;11;CPRunLoop.ji;10;CPObject.ji;9;CPArray.ji;10;CPString.jc;6407; +CPDefaultRunLoopMode="CPDefaultRunLoopMode"; +_CPRunLoopPerformCompare=function(_1,_2){ +return objj_msgSend(_2,"order")-objj_msgSend(_1,"order"); +}; +var _3=[],_4=5; +var _5=objj_allocateClassPair(CPObject,"_CPRunLoopPerform"),_6=_5.isa; +class_addIvars(_5,[new objj_ivar("_target"),new objj_ivar("_selector"),new objj_ivar("_argument"),new objj_ivar("_order"),new objj_ivar("_runLoopModes"),new objj_ivar("_isValid")]); +objj_registerClassPair(_5); +objj_addClassForBundle(_5,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_5,[new objj_method(sel_getUid("initWithSelector:target:argument:order:modes:"),function(_7,_8,_9,_a,_b,_c,_d){ +with(_7){ +_7=objj_msgSendSuper({receiver:_7,super_class:objj_getClass("CPObject")},"init"); +if(_7){ +_selector=_9; +_target=_a; +_argument=_b; +_order=_c; +_runLoopModes=_d; +_isValid=YES; +} +return _7; +} +}),new objj_method(sel_getUid("selector"),function(_e,_f){ +with(_e){ +return _selector; +} +}),new objj_method(sel_getUid("target"),function(_10,_11){ +with(_10){ +return _target; +} +}),new objj_method(sel_getUid("argument"),function(_12,_13){ +with(_12){ +return _argument; +} +}),new objj_method(sel_getUid("order"),function(_14,_15){ +with(_14){ +return _order; +} +}),new objj_method(sel_getUid("fireInMode:"),function(_16,_17,_18){ +with(_16){ +if(!_isValid){ +return YES; +} +if(objj_msgSend(_runLoopModes,"containsObject:",_18)){ +objj_msgSend(_target,"performSelector:withObject:",_selector,_argument); +return YES; +} +return NO; +} +}),new objj_method(sel_getUid("invalidate"),function(_19,_1a){ +with(_19){ +_isValid=NO; +} +})]); +class_addMethods(_6,[new objj_method(sel_getUid("_poolPerform:"),function(_1b,_1c,_1d){ +with(_1b){ +if(!_1d||_3.length>=_4){ +return; +} +_3.push(_1d); +} +}),new objj_method(sel_getUid("performWithSelector:target:argument:order:modes:"),function(_1e,_1f,_20,_21,_22,_23,_24){ +with(_1e){ +if(_3.length){ +var _25=_3.pop(); +_25._target=_21; +_25._selector=_20; +_25._argument=_22; +_25._order=_23; +_25._runLoopModes=_24; +_25._isValid=YES; +return _25; +} +return objj_msgSend(objj_msgSend(_1e,"alloc"),"initWithSelector:target:argument:order:modes:",_20,_21,_22,_23,_24); +} +})]); +var _26=0; +var _5=objj_allocateClassPair(CPObject,"CPRunLoop"),_6=_5.isa; +class_addIvars(_5,[new objj_ivar("_runLoopLock"),new objj_ivar("_timersForModes"),new objj_ivar("_nativeTimersForModes"),new objj_ivar("_nextTimerFireDatesForModes"),new objj_ivar("_didAddTimer"),new objj_ivar("_effectiveDate"),new objj_ivar("_orderedPerforms")]); +objj_registerClassPair(_5); +objj_addClassForBundle(_5,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_5,[new objj_method(sel_getUid("init"),function(_27,_28){ +with(_27){ +_27=objj_msgSendSuper({receiver:_27,super_class:objj_getClass("CPObject")},"init"); +if(_27){ +_orderedPerforms=[]; +_timersForModes={}; +_nativeTimersForModes={}; +_nextTimerFireDatesForModes={}; +} +return _27; +} +}),new objj_method(sel_getUid("performSelector:target:argument:order:modes:"),function(_29,_2a,_2b,_2c,_2d,_2e,_2f){ +with(_29){ +var _30=objj_msgSend(_CPRunLoopPerform,"performWithSelector:target:argument:order:modes:",_2b,_2c,_2d,_2e,_2f),_31=_orderedPerforms.length; +while(_31--){ +if(_2e0;i--){ +if(objj_msgSend(_27,"containsObject:",_2a[i])){ +return YES; +} +} +return NO; +} +}),new objj_method(sel_getUid("isEqualToSet:"),function(_2c,_2d,set){ +with(_2c){ +return _2c===set||(objj_msgSend(_2c,"count")===objj_msgSend(set,"count")&&objj_msgSend(set,"isSubsetOfSet:",_2c)); +} +}),new objj_method(sel_getUid("isSubsetOfSet:"),function(_2f,_30,set){ +with(_2f){ +var _32=objj_msgSend(_2f,"allObjects"); +for(var i=0;i<_32.length;i++){ +if(!objj_msgSend(set,"containsObject:",_32[i])){ +return NO; +} +} +return YES; +} +}),new objj_method(sel_getUid("makeObjectsPerformSelector:"),function(_34,_35,_36){ +with(_34){ +objj_msgSend(_34,"makeObjectsPerformSelector:withObject:",_36,nil); +} +}),new objj_method(sel_getUid("makeObjectsPerformSelector:withObject:"),function(_37,_38,_39,_3a){ +with(_37){ +var _3b=objj_msgSend(_37,"allObjects"); +for(var i=0;i<_3b.length;i++){ +objj_msgSend(_3b[i],"performSelector:withObject:",_39,_3a); +} +} +}),new objj_method(sel_getUid("member:"),function(_3d,_3e,_3f){ +with(_3d){ +if(objj_msgSend(_3d,"containsObject:",_3f)){ +return _3f; +} +return nil; +} +}),new objj_method(sel_getUid("objectEnumerator"),function(_40,_41){ +with(_40){ +return objj_msgSend(objj_msgSend(_40,"allObjects"),"objectEnumerator"); +} +}),new objj_method(sel_getUid("initWithCapacity:"),function(_42,_43,_44){ +with(_42){ +_42=objj_msgSend(_42,"init"); +return _42; +} +}),new objj_method(sel_getUid("setSet:"),function(_45,_46,set){ +with(_45){ +objj_msgSend(_45,"removeAllObjects"); +objj_msgSend(_45,"addObjectsFromArray:",objj_msgSend(set,"allObjects")); +} +}),new objj_method(sel_getUid("addObject:"),function(_48,_49,_4a){ +with(_48){ +_contents[objj_msgSend(_4a,"hash")]=_4a; +_count++; +} +}),new objj_method(sel_getUid("addObjectsFromArray:"),function(_4b,_4c,_4d){ +with(_4b){ +for(var i=0,_4f=_4d.length;i<_4f;i++){ +objj_msgSend(_4b,"addObject:",_4d[i]); +} +} +}),new objj_method(sel_getUid("removeObject:"),function(_50,_51,_52){ +with(_50){ +if(objj_msgSend(_50,"containsObject:",_52)){ +delete _contents[objj_msgSend(_52,"hash")]; +_count--; +} +} +}),new objj_method(sel_getUid("removeAllObjects"),function(_53,_54){ +with(_53){ +_contents={}; +_count=0; +} +}),new objj_method(sel_getUid("intersectSet:"),function(_55,_56,set){ +with(_55){ +var _58=objj_msgSend(_55,"allObjects"); +for(var i=0,_5a=_58.length;i<_5a;i++){ +if(!objj_msgSend(set,"containsObject:",_58[i])){ +objj_msgSend(_55,"removeObject:",_58[i]); +} +} +} +}),new objj_method(sel_getUid("minusSet:"),function(_5b,_5c,set){ +with(_5b){ +var _5e=objj_msgSend(set,"allObjects"); +for(var i=0;i<_5e.length;i++){ +if(objj_msgSend(_5b,"containsObject:",_5e[i])){ +objj_msgSend(_5b,"removeObject:",_5e[i]); +} +} +} +}),new objj_method(sel_getUid("unionSet:"),function(_60,_61,set){ +with(_60){ +var _63=objj_msgSend(set,"allObjects"); +for(var i=0,_65=_63.length;i<_65;i++){ +objj_msgSend(_60,"addObject:",_63[i]); +} +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("set"),function(_66,_67){ +with(_66){ +return objj_msgSend(objj_msgSend(_66,"alloc"),"init"); +} +}),new objj_method(sel_getUid("setWithArray:"),function(_68,_69,_6a){ +with(_68){ +return objj_msgSend(objj_msgSend(_68,"alloc"),"initWithArray:",_6a); +} +}),new objj_method(sel_getUid("setWithObject:"),function(_6b,_6c,_6d){ +with(_6b){ +return objj_msgSend(objj_msgSend(_6b,"alloc"),"initWithArray:",[_6d]); +} +}),new objj_method(sel_getUid("setWithObjects:count:"),function(_6e,_6f,_70,_71){ +with(_6e){ +return objj_msgSend(objj_msgSend(_6e,"alloc"),"initWithObjects:count:",_70,_71); +} +}),new objj_method(sel_getUid("setWithObjects:"),function(_72,_73,_74){ +with(_72){ +var set=objj_msgSend(objj_msgSend(_72,"alloc"),"init"),_76=arguments.length,i=2; +for(;i<_76&&((argument=arguments[i])!==nil);++i){ +objj_msgSend(set,"addObject:",argument); +} +return set; +} +}),new objj_method(sel_getUid("setWithSet:"),function(_78,_79,set){ +with(_78){ +return objj_msgSend(objj_msgSend(_78,"alloc"),"initWithSet:",set); +} +}),new objj_method(sel_getUid("setWithCapacity:"),function(_7b,_7c,_7d){ +with(_7b){ +return objj_msgSend(objj_msgSend(_7b,"alloc"),"initWithCapacity:",_7d); +} +})]); +var _1=objj_getClass("CPSet"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPSet\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("copy"),function(_7e,_7f){ +with(_7e){ +return objj_msgSend(objj_msgSend(CPSet,"alloc"),"initWithSet:",_7e); +} +}),new objj_method(sel_getUid("mutableCopy"),function(_80,_81){ +with(_80){ +return objj_msgSend(_80,"copy"); +} +})]); +var _82="CPSetObjectsKey"; +var _1=objj_getClass("CPSet"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPSet\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_83,_84,_85){ +with(_83){ +return objj_msgSend(_83,"initWithArray:",objj_msgSend(_85,"decodeObjectForKey:",_82)); +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_86,_87,_88){ +with(_86){ +objj_msgSend(_88,"encodeObject:forKey:",objj_msgSend(_86,"allObjects"),_82); +} +})]); +var _1=objj_allocateClassPair(CPSet,"CPMutableSet"),_2=_1.isa; +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +p;18;CPSortDescriptor.ji;10;CPObject.ji;15;CPObjJRuntime.jc;1521; +CPOrderedAscending=-1; +CPOrderedSame=0; +CPOrderedDescending=1; +var _1=objj_allocateClassPair(CPObject,"CPSortDescriptor"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_key"),new objj_ivar("_selector"),new objj_ivar("_ascending")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithKey:ascending:"),function(_3,_4,_5,_6){ +with(_3){ +return objj_msgSend(_3,"initWithKey:ascending:selector:",_5,_6,sel_getUid("compare:")); +} +}),new objj_method(sel_getUid("initWithKey:ascending:selector:"),function(_7,_8,_9,_a,_b){ +with(_7){ +_7=objj_msgSendSuper({receiver:_7,super_class:objj_getClass("CPObject")},"init"); +if(_7){ +_key=_9; +_ascending=_a; +_selector=_b; +} +return _7; +} +}),new objj_method(sel_getUid("ascending"),function(_c,_d){ +with(_c){ +return _ascending; +} +}),new objj_method(sel_getUid("key"),function(_e,_f){ +with(_e){ +return _key; +} +}),new objj_method(sel_getUid("selector"),function(_10,_11){ +with(_10){ +return _selector; +} +}),new objj_method(sel_getUid("compareObject:withObject:"),function(_12,_13,_14,_15){ +with(_12){ +return (_ascending?1:-1)*objj_msgSend(objj_msgSend(_14,"valueForKey:",_key),"performSelector:withObject:",_selector,objj_msgSend(_15,"valueForKey:",_key)); +} +}),new objj_method(sel_getUid("reversedSortDescriptor"),function(_16,_17){ +with(_16){ +return objj_msgSend(objj_msgSend(objj_msgSend(_16,"class"),"alloc"),"initWithKey:ascending:selector:",_key,!_ascending,_selector); +} +})]); +p;10;CPString.ji;10;CPObject.ji;13;CPException.ji;18;CPSortDescriptor.ji;9;CPValue.jc;8977; +CPCaseInsensitiveSearch=1; +CPLiteralSearch=2; +CPBackwardsSearch=4; +CPAnchoredSearch=8; +CPNumericSearch=64; +var _1=new objj_dictionary(); +var _2=objj_allocateClassPair(CPObject,"CPString"),_3=_2.isa; +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("initWithString:"),function(_4,_5,_6){ +with(_4){ +return String(_6); +} +}),new objj_method(sel_getUid("initWithFormat:"),function(_7,_8,_9){ +with(_7){ +if(!_9){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"initWithFormat: the format can't be 'nil'"); +} +_7=sprintf.apply(this,Array.prototype.slice.call(arguments,2)); +return _7; +} +}),new objj_method(sel_getUid("description"),function(_a,_b){ +with(_a){ +return _a; +} +}),new objj_method(sel_getUid("length"),function(_c,_d){ +with(_c){ +return length; +} +}),new objj_method(sel_getUid("characterAtIndex:"),function(_e,_f,_10){ +with(_e){ +return charAt(_10); +} +}),new objj_method(sel_getUid("stringByAppendingFormat:"),function(_11,_12,_13){ +with(_11){ +if(!_13){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"initWithFormat: the format can't be 'nil'"); +} +return _11+sprintf.apply(this,Array.prototype.slice.call(arguments,2)); +} +}),new objj_method(sel_getUid("stringByAppendingString:"),function(_14,_15,_16){ +with(_14){ +return _14+_16; +} +}),new objj_method(sel_getUid("stringByPaddingToLength:withString:startingAtIndex:"),function(_17,_18,_19,_1a,_1b){ +with(_17){ +if(length==_19){ +return _17; +} +if(_19=0){ +_1c+=_1d; +} +if(-_1e<_1d.length){ +_1c+=_1d.substring(0,-_1e); +} +return _1c; +} +}),new objj_method(sel_getUid("componentsSeparatedByString:"),function(_1f,_20,_21){ +with(_1f){ +return split(_21); +} +}),new objj_method(sel_getUid("substringFromIndex:"),function(_22,_23,_24){ +with(_22){ +return substr(_24); +} +}),new objj_method(sel_getUid("substringWithRange:"),function(_25,_26,_27){ +with(_25){ +return substr(_27.location,_27.length); +} +}),new objj_method(sel_getUid("substringToIndex:"),function(_28,_29,_2a){ +with(_28){ +return substring(0,_2a); +} +}),new objj_method(sel_getUid("rangeOfString:"),function(_2b,_2c,_2d){ +with(_2b){ +return objj_msgSend(_2b,"rangeOfString:options:",_2d,0); +} +}),new objj_method(sel_getUid("rangeOfString:options:"),function(_2e,_2f,_30,_31){ +with(_2e){ +return objj_msgSend(_2e,"rangeOfString:options:range:",_30,_31,nil); +} +}),new objj_method(sel_getUid("rangeOfString:options:range:"),function(_32,_33,_34,_35,_36){ +with(_32){ +var _37=(_36==nil)?_32:objj_msgSend(_32,"substringWithRange:",_36),_38=CPNotFound; +if(_35&CPCaseInsensitiveSearch){ +_37=_37.toLowerCase(); +_34=_34.toLowerCase(); +} +if(_35&CPBackwardsSearch){ +_38=_37.lastIndexOf(_34,_35&CPAnchoredSearch?length-_34.length:0); +}else{ +if(_35&CPAnchoredSearch){ +_38=_37.substr(0,_34.length).indexOf(_34)!=CPNotFound?0:CPNotFound; +}else{ +_38=_37.indexOf(_34); +} +} +return CPMakeRange(_38,_38==CPNotFound?0:_34.length); +} +}),new objj_method(sel_getUid("stringByReplacingOccurrencesOfString:withString:"),function(_39,_3a,_3b,_3c){ +with(_39){ +return _39.replace(new RegExp(_3b,"g"),_3c); +} +}),new objj_method(sel_getUid("stringByReplacingOccurrencesOfString:withString:options:range:"),function(_3d,_3e,_3f,_40,_41,_42){ +with(_3d){ +var _43=substring(0,_42.location),_44=substr(_42.location,_42.length),end=substring(_42.location+_42.length,_3d.length),_46; +if(_41&CPCaseInsensitiveSearch){ +_46=new RegExp(_3f,"gi"); +}else{ +_46=new RegExp(_3f,"g"); +} +return _43+""+_44.replace(_46,_40)+""+end; +} +}),new objj_method(sel_getUid("stringByReplacingCharactersInRange:withString:"),function(_47,_48,_49,_4a){ +with(_47){ +return ""+substring(0,_49.location)+_4a+substring(_49.location+_49.length,_47.length); +} +}),new objj_method(sel_getUid("compare:"),function(_4b,_4c,_4d){ +with(_4b){ +return objj_msgSend(_4b,"compare:options:",_4d,nil); +} +}),new objj_method(sel_getUid("caseInsensitiveCompare:"),function(_4e,_4f,_50){ +with(_4e){ +return objj_msgSend(_4e,"compare:options:",_50,CPCaseInsensitiveSearch); +} +}),new objj_method(sel_getUid("compare:options:"),function(_51,_52,_53,_54){ +with(_51){ +var lhs=_51,rhs=_53; +if(_54&CPCaseInsensitiveSearch){ +lhs=lhs.toLowerCase(); +rhs=rhs.toLowerCase(); +} +if(lhsrhs){ +return CPOrderedDescending; +} +} +return CPOrderedSame; +} +}),new objj_method(sel_getUid("compare:options:range:"),function(_57,_58,_59,_5a,_5b){ +with(_57){ +var lhs=objj_msgSend(_57,"substringWithRange:",_5b),rhs=_59; +return objj_msgSend(lhs,"compare:options:",rhs,_5a); +} +}),new objj_method(sel_getUid("hasPrefix:"),function(_5e,_5f,_60){ +with(_5e){ +return _60&&_60!=""&&indexOf(_60)==0; +} +}),new objj_method(sel_getUid("hasSuffix:"),function(_61,_62,_63){ +with(_61){ +return _63&&_63!=""&&lastIndexOf(_63)==(length-_63.length); +} +}),new objj_method(sel_getUid("isEqualToString:"),function(_64,_65,_66){ +with(_64){ +return _64==_66; +} +}),new objj_method(sel_getUid("UID"),function(_67,_68){ +with(_67){ +var _69=dictionary_getValue(_1,_67); +if(!_69){ +_69=_objj_generateObjectHash(); +dictionary_setValue(_1,_67,_69); +} +return _69; +} +}),new objj_method(sel_getUid("capitalizedString"),function(_6a,_6b){ +with(_6a){ +var _6c=_6a.split(/\b/g); +for(var i=0;i<_6c.length;i++){ +if(i==0||(/\s$/).test(_6c[i-1])){ +_6c[i]=_6c[i].substring(0,1).toUpperCase()+_6c[i].substring(1).toLowerCase(); +}else{ +_6c[i]=_6c[i].toLowerCase(); +} +} +return _6c.join(""); +} +}),new objj_method(sel_getUid("lowercaseString"),function(_6e,_6f){ +with(_6e){ +return toLowerCase(); +} +}),new objj_method(sel_getUid("uppercaseString"),function(_70,_71){ +with(_70){ +return toUpperCase(); +} +}),new objj_method(sel_getUid("doubleValue"),function(_72,_73){ +with(_72){ +return parseFloat(_72,10); +} +}),new objj_method(sel_getUid("boolValue"),function(_74,_75){ +with(_74){ +var _76=new RegExp("^\\s*[\\+,\\-]*0*"); +return RegExp("^[Y,y,t,T,1-9]").test(_74.replace(_76,"")); +} +}),new objj_method(sel_getUid("floatValue"),function(_77,_78){ +with(_77){ +return parseFloat(_77,10); +} +}),new objj_method(sel_getUid("intValue"),function(_79,_7a){ +with(_79){ +return parseInt(_79,10); +} +}),new objj_method(sel_getUid("pathComponents"),function(_7b,_7c){ +with(_7b){ +var _7d=split("/"); +if(_7d[0]===""){ +_7d[0]="/"; +} +if(_7d[_7d.length-1]===""){ +_7d.pop(); +} +return _7d; +} +}),new objj_method(sel_getUid("pathExtension"),function(_7e,_7f){ +with(_7e){ +return substr(lastIndexOf(".")+1); +} +}),new objj_method(sel_getUid("lastPathComponent"),function(_80,_81){ +with(_80){ +var _82=objj_msgSend(_80,"pathComponents"); +return _82[_82.length-1]; +} +}),new objj_method(sel_getUid("stringByDeletingLastPathComponent"),function(_83,_84){ +with(_83){ +var _85=_83,_86=length-1; +while(_85.charAt(_86)==="/"){ +_86--; +} +_85=_85.substr(0,_85.lastIndexOf("/",_86)); +if(_85===""&&charAt(0)==="/"){ +return "/"; +} +return _85; +} +}),new objj_method(sel_getUid("stringByStandardizingPath"),function(_87,_88){ +with(_87){ +return objj_standardize_path(_87); +} +}),new objj_method(sel_getUid("copy"),function(_89,_8a){ +with(_89){ +return new String(_89); +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("alloc"),function(_8b,_8c){ +with(_8b){ +return new String; +} +}),new objj_method(sel_getUid("string"),function(_8d,_8e){ +with(_8d){ +return objj_msgSend(objj_msgSend(_8d,"alloc"),"init"); +} +}),new objj_method(sel_getUid("stringWithHash:"),function(_8f,_90,_91){ +with(_8f){ +var _92=parseInt(_91,10).toString(16); +return "000000".substring(0,MAX(6-_92.length,0))+_92; +} +}),new objj_method(sel_getUid("stringWithString:"),function(_93,_94,_95){ +with(_93){ +if(!_95){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"stringWithString: the string can't be 'nil'"); +} +return objj_msgSend(objj_msgSend(_93,"alloc"),"initWithString:",_95); +} +}),new objj_method(sel_getUid("stringWithFormat:"),function(_96,_97,_98){ +with(_96){ +if(!_98){ +objj_msgSend(CPException,"raise:reason:",CPInvalidArgumentException,"initWithFormat: the format can't be 'nil'"); +} +return sprintf.apply(this,Array.prototype.slice.call(arguments,2)); +} +})]); +var _2=objj_getClass("CPString"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPString\"")); +} +var _3=_2.isa; +class_addMethods(_2,[new objj_method(sel_getUid("objectFromJSON"),function(_99,_9a){ +with(_99){ +return JSON.parse(_99); +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("JSONFromObject:"),function(_9b,_9c,_9d){ +with(_9b){ +return JSON.stringify(_9d); +} +})]); +var _2=objj_getClass("CPString"); +if(!_2){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPString\"")); +} +var _3=_2.isa; +class_addMethods(_3,[new objj_method(sel_getUid("UUID"),function(_9e,_9f){ +with(_9e){ +var g=""; +for(var i=0;i<32;i++){ +g+=FLOOR(RAND()*15).toString(15); +} +return g; +} +})]); +String.prototype.isa=CPString; +p;9;CPTimer.ji;10;CPObject.ji;14;CPInvocation.ji;8;CPDate.ji;11;CPRunLoop.jc;5195; +var _1=objj_allocateClassPair(CPObject,"CPTimer"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_timeInterval"),new objj_ivar("_invocation"),new objj_ivar("_callback"),new objj_ivar("_repeats"),new objj_ivar("_isValid"),new objj_ivar("_fireDate"),new objj_ivar("_userInfo")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithFireDate:interval:invocation:repeats:"),function(_3,_4,_5,_6,_7,_8){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_timeInterval=_6; +_invocation=_7; +_repeats=_8; +_isValid=YES; +_fireDate=_5; +} +return _3; +} +}),new objj_method(sel_getUid("initWithFireDate:interval:target:selector:userInfo:repeats:"),function(_9,_a,_b,_c,_d,_e,_f,_10){ +with(_9){ +var _11=objj_msgSend(CPInvocation,"invocationWithMethodSignature:",1); +objj_msgSend(_11,"setTarget:",_d); +objj_msgSend(_11,"setSelector:",_e); +objj_msgSend(_11,"setArgument:atIndex:",_9,2); +_9=objj_msgSend(_9,"initWithFireDate:interval:invocation:repeats:",_b,_c,_11,_10); +if(_9){ +_userInfo=_f; +} +return _9; +} +}),new objj_method(sel_getUid("initWithFireDate:interval:callback:repeats:"),function(_12,_13,_14,_15,_16,_17){ +with(_12){ +_12=objj_msgSendSuper({receiver:_12,super_class:objj_getClass("CPObject")},"init"); +if(_12){ +_timeInterval=_15; +_callback=_16; +_repeats=_17; +_isValid=YES; +_fireDate=_14; +} +return _12; +} +}),new objj_method(sel_getUid("timeInterval"),function(_18,_19){ +with(_18){ +return _timeInterval; +} +}),new objj_method(sel_getUid("fireDate"),function(_1a,_1b){ +with(_1a){ +return _fireDate; +} +}),new objj_method(sel_getUid("setFireDate:"),function(_1c,_1d,_1e){ +with(_1c){ +_fireDate=_1e; +} +}),new objj_method(sel_getUid("fire"),function(_1f,_20){ +with(_1f){ +if(!_isValid){ +return; +} +if(_callback){ +_callback(); +}else{ +objj_msgSend(_invocation,"invoke"); +} +if(!_isValid){ +return; +} +if(_repeats){ +_fireDate=objj_msgSend(CPDate,"dateWithTimeIntervalSinceNow:",_timeInterval); +}else{ +objj_msgSend(_1f,"invalidate"); +} +} +}),new objj_method(sel_getUid("isValid"),function(_21,_22){ +with(_21){ +return _isValid; +} +}),new objj_method(sel_getUid("invalidate"),function(_23,_24){ +with(_23){ +_isValid=NO; +_userInfo=nil; +_invocation=nil; +_callback=nil; +} +}),new objj_method(sel_getUid("userInfo"),function(_25,_26){ +with(_25){ +return _userInfo; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("scheduledTimerWithTimeInterval:invocation:repeats:"),function(_27,_28,_29,_2a,_2b){ +with(_27){ +var _2c=objj_msgSend(objj_msgSend(_27,"alloc"),"initWithFireDate:interval:invocation:repeats:",objj_msgSend(CPDate,"dateWithTimeIntervalSinceNow:",_29),_29,_2a,_2b); +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"addTimer:forMode:",_2c,CPDefaultRunLoopMode); +return _2c; +} +}),new objj_method(sel_getUid("scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:"),function(_2d,_2e,_2f,_30,_31,_32,_33){ +with(_2d){ +var _34=objj_msgSend(objj_msgSend(_2d,"alloc"),"initWithFireDate:interval:target:selector:userInfo:repeats:",objj_msgSend(CPDate,"dateWithTimeIntervalSinceNow:",_2f),_2f,_30,_31,_32,_33); +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"addTimer:forMode:",_34,CPDefaultRunLoopMode); +return _34; +} +}),new objj_method(sel_getUid("scheduledTimerWithTimeInterval:callback:repeats:"),function(_35,_36,_37,_38,_39){ +with(_35){ +var _3a=objj_msgSend(objj_msgSend(_35,"alloc"),"initWithFireDate:interval:callback:repeats:",objj_msgSend(CPDate,"dateWithTimeIntervalSinceNow:",_37),_37,_38,_39); +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"addTimer:forMode:",_3a,CPDefaultRunLoopMode); +return _3a; +} +}),new objj_method(sel_getUid("timerWithTimeInterval:invocation:repeats:"),function(_3b,_3c,_3d,_3e,_3f){ +with(_3b){ +return objj_msgSend(objj_msgSend(_3b,"alloc"),"initWithFireDate:interval:invocation:repeats:",nil,_3d,_3e,_3f); +} +}),new objj_method(sel_getUid("timerWithTimeInterval:target:selector:userInfo:repeats:"),function(_40,_41,_42,_43,_44,_45,_46){ +with(_40){ +return objj_msgSend(objj_msgSend(_40,"alloc"),"initWithFireDate:interval:target:selector:userInfo:repeats:",nil,_42,_43,_44,_45,_46); +} +}),new objj_method(sel_getUid("timerWithTimeInterval:callback:repeats:"),function(_47,_48,_49,_4a,_4b){ +with(_47){ +return objj_msgSend(objj_msgSend(_47,"alloc"),"initWithFireDate:interval:callback:repeats:",nil,_49,_4a,_4b); +} +})]); +var _4c=1000,_4d={}; +var _4e=function(_4f,_50,_51,_52){ +var _53=_4c++,_54=nil; +if(typeof _4f==="string"){ +_54=function(){ +new Function(_4f)(); +if(!_51){ +_4d[_53]=nil; +} +}; +}else{ +if(!_52){ +_52=[]; +} +_54=function(){ +_4f.apply(window,_52); +if(!_51){ +_4d[_53]=nil; +} +}; +} +_4d[_53]=objj_msgSend(CPTimer,"scheduledTimerWithTimeInterval:callback:repeats:",_50/1000,_54,_51); +return _53; +}; +window.setTimeout=function(_55,_56){ +return _4e(_55,_56,NO,Array.prototype.slice.apply(arguments,[2])); +}; +window.clearTimeout=function(_57){ +var _58=_4d[_57]; +if(_58){ +objj_msgSend(_58,"invalidate"); +} +_4d[_57]=nil; +}; +window.setInterval=function(_59,_5a,_5b){ +return _4e(_59,_5a,YES,Array.prototype.slice.apply(arguments,[2])); +}; +window.clearInterval=function(_5c){ +window.clearTimeout(_5c); +}; +p;15;CPUndoManager.ji;10;CPObject.ji;14;CPInvocation.jc;13713; +var _1=0,_2=1,_3=2; +CPUndoManagerCheckpointNotification="CPUndoManagerCheckpointNotification"; +CPUndoManagerDidOpenUndoGroupNotification="CPUndoManagerDidOpenUndoGroupNotification"; +CPUndoManagerDidRedoChangeNotification="CPUndoManagerDidRedoChangeNotification"; +CPUndoManagerDidUndoChangeNotification="CPUndoManagerDidUndoChangeNotification"; +CPUndoManagerWillCloseUndoGroupNotification="CPUndoManagerWillCloseUndoGroupNotification"; +CPUndoManagerWillRedoChangeNotification="CPUndoManagerWillRedoChangeNotification"; +CPUndoManagerWillUndoChangeNotification="CPUndoManagerWillUndoChangeNotification"; +CPUndoCloseGroupingRunLoopOrdering=350000; +var _4=[],_5=5; +var _6=objj_allocateClassPair(CPObject,"_CPUndoGrouping"),_7=_6.isa; +class_addIvars(_6,[new objj_ivar("_parent"),new objj_ivar("_invocations")]); +objj_registerClassPair(_6); +objj_addClassForBundle(_6,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_6,[new objj_method(sel_getUid("initWithParent:"),function(_8,_9,_a){ +with(_8){ +_8=objj_msgSendSuper({receiver:_8,super_class:objj_getClass("CPObject")},"init"); +if(_8){ +_parent=_a; +_invocations=[]; +} +return _8; +} +}),new objj_method(sel_getUid("parent"),function(_b,_c){ +with(_b){ +return _parent; +} +}),new objj_method(sel_getUid("addInvocation:"),function(_d,_e,_f){ +with(_d){ +_invocations.push(_f); +} +}),new objj_method(sel_getUid("addInvocationsFromArray:"),function(_10,_11,_12){ +with(_10){ +objj_msgSend(_invocations,"addObjectsFromArray:",_12); +} +}),new objj_method(sel_getUid("removeInvocationsWithTarget:"),function(_13,_14,_15){ +with(_13){ +var _16=_invocations.length; +while(_16--){ +if(objj_msgSend(_invocations[_16],"target")==_15){ +_invocations.splice(_16,1); +} +} +} +}),new objj_method(sel_getUid("invocations"),function(_17,_18){ +with(_17){ +return _invocations; +} +}),new objj_method(sel_getUid("invoke"),function(_19,_1a){ +with(_19){ +var _1b=_invocations.length; +while(_1b--){ +objj_msgSend(_invocations[_1b],"invoke"); +} +} +})]); +class_addMethods(_7,[new objj_method(sel_getUid("_poolUndoGrouping:"),function(_1c,_1d,_1e){ +with(_1c){ +if(!_1e||_4.length>=_5){ +return; +} +_4.push(_1e); +} +}),new objj_method(sel_getUid("undoGroupingWithParent:"),function(_1f,_20,_21){ +with(_1f){ +if(_4.length){ +var _22=_4.pop(); +_22._parent=_21; +if(_22._invocations.length){ +_22._invocations=[]; +} +return _22; +} +return objj_msgSend(objj_msgSend(_1f,"alloc"),"initWithParent:",_21); +} +})]); +var _23="_CPUndoGroupingParentKey",_24="_CPUndoGroupingInvocationsKey"; +var _6=objj_getClass("_CPUndoGrouping"); +if(!_6){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"_CPUndoGrouping\"")); +} +var _7=_6.isa; +class_addMethods(_6,[new objj_method(sel_getUid("initWithCoder:"),function(_25,_26,_27){ +with(_25){ +_25=objj_msgSendSuper({receiver:_25,super_class:objj_getClass("CPObject")},"init"); +if(_25){ +_parent=objj_msgSend(_27,"decodeObjectForKey:",_23); +_invocations=objj_msgSend(_27,"decodeObjectForKey:",_24); +} +return _25; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_28,_29,_2a){ +with(_28){ +objj_msgSend(_2a,"encodeObject:forKey:",_parent,_23); +objj_msgSend(_2a,"encodeObject:forKey:",_invocations,_24); +} +})]); +var _6=objj_allocateClassPair(CPObject,"CPUndoManager"),_7=_6.isa; +class_addIvars(_6,[new objj_ivar("_redoStack"),new objj_ivar("_undoStack"),new objj_ivar("_groupsByEvent"),new objj_ivar("_disableCount"),new objj_ivar("_levelsOfUndo"),new objj_ivar("_currentGrouping"),new objj_ivar("_state"),new objj_ivar("_actionName"),new objj_ivar("_preparedTarget"),new objj_ivar("_runLoopModes"),new objj_ivar("_registeredWithRunLoop")]); +objj_registerClassPair(_6); +objj_addClassForBundle(_6,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_6,[new objj_method(sel_getUid("init"),function(_2b,_2c){ +with(_2b){ +_2b=objj_msgSendSuper({receiver:_2b,super_class:objj_getClass("CPObject")},"init"); +if(_2b){ +_redoStack=[]; +_undoStack=[]; +_state=_1; +objj_msgSend(_2b,"setRunLoopModes:",[CPDefaultRunLoopMode]); +objj_msgSend(_2b,"setGroupsByEvent:",YES); +_performRegistered=NO; +} +return _2b; +} +}),new objj_method(sel_getUid("registerUndoWithTarget:selector:object:"),function(_2d,_2e,_2f,_30,_31){ +with(_2d){ +if(!_currentGrouping){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"No undo group is currently open"); +} +if(_disableCount>0){ +return; +} +var _32=objj_msgSend(CPInvocation,"invocationWithMethodSignature:",nil); +objj_msgSend(_32,"setTarget:",_2f); +objj_msgSend(_32,"setSelector:",_30); +objj_msgSend(_32,"setArgument:atIndex:",_31,2); +objj_msgSend(_currentGrouping,"addInvocation:",_32); +if(_state==_1){ +objj_msgSend(_redoStack,"removeAllObjects"); +} +} +}),new objj_method(sel_getUid("prepareWithInvocationTarget:"),function(_33,_34,_35){ +with(_33){ +_preparedTarget=_35; +return _33; +} +}),new objj_method(sel_getUid("methodSignatureForSelector:"),function(_36,_37,_38){ +with(_36){ +if(objj_msgSend(_preparedTarget,"respondsToSelector:",_38)){ +return 1; +} +return nil; +} +}),new objj_method(sel_getUid("forwardInvocation:"),function(_39,_3a,_3b){ +with(_39){ +if(_disableCount>0){ +return; +} +objj_msgSend(_3b,"setTarget:",_preparedTarget); +objj_msgSend(_currentGrouping,"addInvocation:",_3b); +if(_state==_1){ +objj_msgSend(_redoStack,"removeAllObjects"); +} +_preparedTarget=nil; +} +}),new objj_method(sel_getUid("canRedo"),function(_3c,_3d){ +with(_3c){ +return _redoStack.length>0; +} +}),new objj_method(sel_getUid("canUndo"),function(_3e,_3f){ +with(_3e){ +if(_undoStack.length>0){ +return YES; +} +return objj_msgSend(_currentGrouping,"actions").length>0; +} +}),new objj_method(sel_getUid("undo"),function(_40,_41){ +with(_40){ +if(objj_msgSend(_40,"groupingLevel")==1){ +objj_msgSend(_40,"endUndoGrouping"); +} +objj_msgSend(_40,"undoNestedGroup"); +} +}),new objj_method(sel_getUid("undoNestedGroup"),function(_42,_43){ +with(_42){ +if(_undoStack.length==0){ +return; +} +var _44=objj_msgSend(CPNotificationCenter,"defaultCenter"); +objj_msgSend(_44,"postNotificationName:object:",CPUndoManagerWillUndoChangeNotification,_42); +var _45=_undoStack.pop(); +_state=_2; +objj_msgSend(_42,"beginUndoGrouping"); +objj_msgSend(_45,"invoke"); +objj_msgSend(_42,"endUndoGrouping"); +objj_msgSend(_CPUndoGrouping,"_poolUndoGrouping:",_45); +_state=_1; +objj_msgSend(_44,"postNotificationName:object:",CPUndoManagerDidUndoChangeNotification,_42); +} +}),new objj_method(sel_getUid("redo"),function(_46,_47){ +with(_46){ +if(_redoStack.length==0){ +return; +} +var _48=objj_msgSend(CPNotificationCenter,"defaultCenter"); +objj_msgSend(_48,"postNotificationName:object:",CPUndoManagerWillRedoChangeNotification,_46); +var _49=_currentGrouping,_4a=_redoStack.pop(); +_currentGrouping=nil; +_state=_3; +objj_msgSend(_46,"beginUndoGrouping"); +objj_msgSend(_4a,"invoke"); +objj_msgSend(_46,"endUndoGrouping"); +objj_msgSend(_CPUndoGrouping,"_poolUndoGrouping:",_4a); +_currentGrouping=_49; +_state=_1; +objj_msgSend(_48,"postNotificationName:object:",CPUndoManagerDidRedoChangeNotification,_46); +} +}),new objj_method(sel_getUid("beginUndoGrouping"),function(_4b,_4c){ +with(_4b){ +_currentGrouping=objj_msgSend(_CPUndoGrouping,"undoGroupingWithParent:",_currentGrouping); +} +}),new objj_method(sel_getUid("endUndoGrouping"),function(_4d,_4e){ +with(_4d){ +if(!_currentGrouping){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"endUndoGrouping. No undo group is currently open."); +} +var _4f=objj_msgSend(_currentGrouping,"parent"); +if(!_4f&&objj_msgSend(_currentGrouping,"invocations").length>0){ +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPUndoManagerWillCloseUndoGroupNotification,_4d); +var _50=_state==_2?_redoStack:_undoStack; +_50.push(_currentGrouping); +if(_levelsOfUndo>0&&_50.length>_levelsOfUndo){ +_50.splice(0,1); +} +}else{ +objj_msgSend(_4f,"addInvocationsFromArray:",objj_msgSend(_currentGrouping,"invocations")); +objj_msgSend(_CPUndoGrouping,"_poolUndoGrouping:",_currentGrouping); +} +_currentGrouping=_4f; +} +}),new objj_method(sel_getUid("enableUndoRegistration"),function(_51,_52){ +with(_51){ +if(_disableCount<=0){ +objj_msgSend(CPException,"raise:reason:",CPInternalInconsistencyException,"enableUndoRegistration. There are no disable messages in effect right now."); +} +_disableCount--; +} +}),new objj_method(sel_getUid("groupsByEvent"),function(_53,_54){ +with(_53){ +return _groupsByEvent; +} +}),new objj_method(sel_getUid("setGroupsByEvent:"),function(_55,_56,_57){ +with(_55){ +if(_groupsByEvent==_57){ +return; +} +_groupsByEvent=_57; +if(_groupsByEvent){ +objj_msgSend(_55,"_registerWithRunLoop"); +if(!_currentGrouping){ +objj_msgSend(_55,"beginUndoGrouping"); +} +}else{ +objj_msgSend(_55,"_unregisterWithRunLoop"); +} +} +}),new objj_method(sel_getUid("groupingLevel"),function(_58,_59){ +with(_58){ +var _5a=_currentGrouping,_5b=_currentGrouping!=nil; +while(_5a=objj_msgSend(_5a,"parent")){ +++_5b; +} +return _5b; +} +}),new objj_method(sel_getUid("disableUndoRegistration"),function(_5c,_5d){ +with(_5c){ +++_disableCount; +} +}),new objj_method(sel_getUid("isUndoRegistrationEnabled"),function(_5e,_5f){ +with(_5e){ +return _disableCount==0; +} +}),new objj_method(sel_getUid("isUndoing"),function(_60,_61){ +with(_60){ +return _state==_2; +} +}),new objj_method(sel_getUid("isRedoing"),function(_62,_63){ +with(_62){ +return _state==_3; +} +}),new objj_method(sel_getUid("removeAllActions"),function(_64,_65){ +with(_64){ +_redoStack=[]; +_undoStack=[]; +_disableCount=0; +} +}),new objj_method(sel_getUid("removeAllActionsWithTarget:"),function(_66,_67,_68){ +with(_66){ +objj_msgSend(_currentGrouping,"removeInvocationsWithTarget:",_68); +var _69=_redoStack.length; +while(_69--){ +var _6a=_redoStack[_69]; +objj_msgSend(_6a,"removeInvocationsWithTarget:",_68); +if(!objj_msgSend(_6a,"invocations").length){ +_redoStack.splice(_69,1); +} +} +_69=_undoStack.length; +while(_69--){ +var _6a=_undoStack[_69]; +objj_msgSend(_6a,"removeInvocationsWithTarget:",_68); +if(!objj_msgSend(_6a,"invocations").length){ +_undoStack.splice(_69,1); +} +} +} +}),new objj_method(sel_getUid("setActionName:"),function(_6b,_6c,_6d){ +with(_6b){ +_actionName=_6d; +} +}),new objj_method(sel_getUid("redoActionName"),function(_6e,_6f){ +with(_6e){ +return objj_msgSend(_6e,"canRedo")?_actionName:nil; +} +}),new objj_method(sel_getUid("undoActionName"),function(_70,_71){ +with(_70){ +return objj_msgSend(_70,"canUndo")?_actionName:nil; +} +}),new objj_method(sel_getUid("runLoopModes"),function(_72,_73){ +with(_72){ +return _runLoopModes; +} +}),new objj_method(sel_getUid("setRunLoopModes:"),function(_74,_75,_76){ +with(_74){ +_runLoopModes=_76; +objj_msgSend(_74,"_unregisterWithRunLoop"); +if(_groupsByEvent){ +objj_msgSend(_74,"_registerWithRunLoop"); +} +} +}),new objj_method(sel_getUid("beginUndoGroupingForEvent"),function(_77,_78){ +with(_77){ +if(!_groupsByEvent){ +return; +} +if(_currentGrouping!=nil){ +objj_msgSend(_77,"endUndoGrouping"); +} +objj_msgSend(_77,"beginUndoGrouping"); +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"performSelector:target:argument:order:modes:",sel_getUid("beginUndoGroupingForEvent"),_77,nil,CPUndoCloseGroupingRunLoopOrdering,_runLoopModes); +} +}),new objj_method(sel_getUid("_registerWithRunLoop"),function(_79,_7a){ +with(_79){ +if(_registeredWithRunLoop){ +return; +} +_registeredWithRunLoop=YES; +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"performSelector:target:argument:order:modes:",sel_getUid("beginUndoGroupingForEvent"),_79,nil,CPUndoCloseGroupingRunLoopOrdering,_runLoopModes); +} +}),new objj_method(sel_getUid("_unregisterWithRunLoop"),function(_7b,_7c){ +with(_7b){ +if(!_registeredWithRunLoop){ +return; +} +_registeredWithRunLoop=NO; +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"cancelPerformSelector:target:argument:",sel_getUid("beginUndoGroupingForEvent"),_7b,nil); +} +})]); +var _7d="CPUndoManagerRedoStackKey",_7e="CPUndoManagerUndoStackKey"; +CPUndoManagerLevelsOfUndoKey="CPUndoManagerLevelsOfUndoKey"; +CPUndoManagerActionNameKey="CPUndoManagerActionNameKey"; +CPUndoManagerCurrentGroupingKey="CPUndoManagerCurrentGroupingKey"; +CPUndoManagerRunLoopModesKey="CPUndoManagerRunLoopModesKey"; +CPUndoManagerGroupsByEventKey="CPUndoManagerGroupsByEventKey"; +var _6=objj_getClass("CPUndoManager"); +if(!_6){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPUndoManager\"")); +} +var _7=_6.isa; +class_addMethods(_6,[new objj_method(sel_getUid("initWithCoder:"),function(_7f,_80,_81){ +with(_7f){ +_7f=objj_msgSendSuper({receiver:_7f,super_class:objj_getClass("CPObject")},"init"); +if(_7f){ +_redoStack=objj_msgSend(_81,"decodeObjectForKey:",_7d); +_undoStack=objj_msgSend(_81,"decodeObjectForKey:",_7e); +_levelsOfUndo=objj_msgSend(_81,"decodeObjectForKey:",CPUndoManagerLevelsOfUndoKey); +_actionName=objj_msgSend(_81,"decodeObjectForKey:",CPUndoManagerActionNameKey); +_currentGrouping=objj_msgSend(_81,"decodeObjectForKey:",CPUndoManagerCurrentGroupingKey); +_state=_1; +objj_msgSend(_7f,"setRunLoopModes:",objj_msgSend(_81,"decodeObjectForKey:",CPUndoManagerRunLoopModesKey)); +objj_msgSend(_7f,"setGroupsByEvent:",objj_msgSend(_81,"decodeBoolForKey:",CPUndoManagerGroupsByEventKey)); +} +return _7f; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_82,_83,_84){ +with(_82){ +objj_msgSend(_84,"encodeObject:forKey:",_redoStack,_7d); +objj_msgSend(_84,"encodeObject:forKey:",_undoStack,_7e); +objj_msgSend(_84,"encodeInt:forKey:",_levelsOfUndo,CPUndoManagerLevelsOfUndoKey); +objj_msgSend(_84,"encodeObject:forKey:",_actionName,CPUndoManagerActionNameKey); +objj_msgSend(_84,"encodeObject:forKey:",_currentGrouping,CPUndoManagerCurrentGroupingKey); +objj_msgSend(_84,"encodeObject:forKey:",_runLoopModes,CPUndoManagerRunLoopModesKey); +objj_msgSend(_84,"encodeBool:forKey:",_groupsByEvent,CPUndoManagerGroupsByEventKey); +} +})]); +p;17;CPURLConnection.ji;10;CPObject.ji;11;CPRunLoop.ji;14;CPURLRequest.ji;15;CPURLResponse.jc;4539; +var _1=0,_2=1,_3=2,_4=3,_5=4; +var _6=nil; +var _7=objj_allocateClassPair(CPObject,"CPURLConnection"),_8=_7.isa; +class_addIvars(_7,[new objj_ivar("_request"),new objj_ivar("_delegate"),new objj_ivar("_isCanceled"),new objj_ivar("_isLocalFileConnection"),new objj_ivar("_XMLHTTPRequest")]); +objj_registerClassPair(_7); +objj_addClassForBundle(_7,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_7,[new objj_method(sel_getUid("initWithRequest:delegate:startImmediately:"),function(_9,_a,_b,_c,_d){ +with(_9){ +_9=objj_msgSendSuper({receiver:_9,super_class:objj_getClass("CPObject")},"init"); +if(_9){ +_request=_b; +_delegate=_c; +_isCanceled=NO; +var _e=objj_msgSend(_request,"URL"); +_isLocalFileConnection=_e.indexOf("file:")===0||((_e.indexOf("http:")!==0||_e.indexOf("https:")!==0)&&window.location&&(window.location.protocol==="file:"||window.location.protocol==="app:")); +_XMLHTTPRequest=objj_request_xmlhttp(); +if(_d){ +objj_msgSend(_9,"start"); +} +} +return _9; +} +}),new objj_method(sel_getUid("initWithRequest:delegate:"),function(_f,_10,_11,_12){ +with(_f){ +return objj_msgSend(_f,"initWithRequest:delegate:startImmediately:",_11,_12,YES); +} +}),new objj_method(sel_getUid("delegate"),function(_13,_14){ +with(_13){ +return _delegate; +} +}),new objj_method(sel_getUid("start"),function(_15,_16){ +with(_15){ +_isCanceled=NO; +try{ +_XMLHTTPRequest.open(objj_msgSend(_request,"HTTPMethod"),objj_msgSend(_request,"URL"),YES); +_XMLHTTPRequest.onreadystatechange=function(){ +objj_msgSend(_15,"_readyStateDidChange"); +}; +var _17=objj_msgSend(_request,"allHTTPHeaderFields"),key=nil,_19=objj_msgSend(_17,"keyEnumerator"); +while(key=objj_msgSend(_19,"nextObject")){ +_XMLHTTPRequest.setRequestHeader(key,objj_msgSend(_17,"objectForKey:",key)); +} +_XMLHTTPRequest.send(objj_msgSend(_request,"HTTPBody")); +} +catch(anException){ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("connection:didFailWithError:"))){ +objj_msgSend(_delegate,"connection:didFailWithError:",_15,anException); +} +} +} +}),new objj_method(sel_getUid("cancel"),function(_1a,_1b){ +with(_1a){ +_isCanceled=YES; +try{ +_XMLHTTPRequest.abort(); +} +catch(anException){ +} +} +}),new objj_method(sel_getUid("isLocalFileConnection"),function(_1c,_1d){ +with(_1c){ +return _isLocalFileConnection; +} +}),new objj_method(sel_getUid("_readyStateDidChange"),function(_1e,_1f){ +with(_1e){ +if(_XMLHTTPRequest.readyState==_5){ +var _20=_XMLHTTPRequest.status,URL=objj_msgSend(_request,"URL"); +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("connection:didReceiveResponse:"))){ +if(_isLocalFileConnection){ +objj_msgSend(_delegate,"connection:didReceiveResponse:",_1e,objj_msgSend(objj_msgSend(CPURLResponse,"alloc"),"initWithURL:",URL)); +}else{ +var _22=objj_msgSend(objj_msgSend(CPHTTPURLResponse,"alloc"),"initWithURL:",URL); +objj_msgSend(_22,"_setStatusCode:",_20); +objj_msgSend(_delegate,"connection:didReceiveResponse:",_1e,_22); +} +} +if(!_isCanceled){ +if(_20==401&&objj_msgSend(_6,"respondsToSelector:",sel_getUid("connectionDidReceiveAuthenticationChallenge:"))){ +objj_msgSend(_6,"connectionDidReceiveAuthenticationChallenge:",_1e); +}else{ +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("connection:didReceiveData:"))){ +objj_msgSend(_delegate,"connection:didReceiveData:",_1e,_XMLHTTPRequest.responseText); +} +if(objj_msgSend(_delegate,"respondsToSelector:",sel_getUid("connectionDidFinishLoading:"))){ +objj_msgSend(_delegate,"connectionDidFinishLoading:",_1e); +} +} +} +} +objj_msgSend(objj_msgSend(CPRunLoop,"currentRunLoop"),"limitDateForMode:",CPDefaultRunLoopMode); +} +}),new objj_method(sel_getUid("_XMLHTTPRequest"),function(_23,_24){ +with(_23){ +return _XMLHTTPRequest; +} +})]); +class_addMethods(_8,[new objj_method(sel_getUid("setClassDelegate:"),function(_25,_26,_27){ +with(_25){ +_6=_27; +} +}),new objj_method(sel_getUid("sendSynchronousRequest:returningResponse:error:"),function(_28,_29,_2a,_2b,_2c){ +with(_28){ +try{ +var _2d=objj_request_xmlhttp(); +_2d.open(objj_msgSend(_2a,"HTTPMethod"),objj_msgSend(_2a,"URL"),NO); +var _2e=objj_msgSend(_2a,"allHTTPHeaderFields"),key=nil,_30=objj_msgSend(_2e,"keyEnumerator"); +while(key=objj_msgSend(_30,"nextObject")){ +_2d.setRequestHeader(key,objj_msgSend(_2e,"objectForKey:",key)); +} +_2d.send(objj_msgSend(_2a,"HTTPBody")); +return objj_msgSend(CPData,"dataWithString:",_2d.responseText); +} +catch(anException){ +} +return nil; +} +}),new objj_method(sel_getUid("connectionWithRequest:delegate:"),function(_31,_32,_33,_34){ +with(_31){ +return objj_msgSend(objj_msgSend(_31,"alloc"),"initWithRequest:delegate:",_33,_34); +} +})]); +p;14;CPURLRequest.ji;10;CPObject.jc;2026; +var _1=objj_allocateClassPair(CPObject,"CPURLRequest"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_URL"),new objj_ivar("_HTTPBody"),new objj_ivar("_HTTPMethod"),new objj_ivar("_HTTPHeaderFields")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithURL:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_URL=_5; +_HTTPBody=""; +_HTTPMethod="GET"; +_HTTPHeaderFields=objj_msgSend(CPDictionary,"dictionary"); +objj_msgSend(_3,"setValue:forHTTPHeaderField:","Thu, 1 Jan 1970 00:00:00 GMT","If-Modified-Since"); +objj_msgSend(_3,"setValue:forHTTPHeaderField:","no-cache","Cache-Control"); +objj_msgSend(_3,"setValue:forHTTPHeaderField:","XMLHttpRequest","X-Requested-With"); +} +return _3; +} +}),new objj_method(sel_getUid("URL"),function(_6,_7){ +with(_6){ +return _URL; +} +}),new objj_method(sel_getUid("setURL:"),function(_8,_9,_a){ +with(_8){ +_URL=_a; +} +}),new objj_method(sel_getUid("setHTTPBody:"),function(_b,_c,_d){ +with(_b){ +_HTTPBody=_d; +} +}),new objj_method(sel_getUid("HTTPBody"),function(_e,_f){ +with(_e){ +return _HTTPBody; +} +}),new objj_method(sel_getUid("setHTTPMethod:"),function(_10,_11,_12){ +with(_10){ +_HTTPMethod=_12; +} +}),new objj_method(sel_getUid("HTTPMethod"),function(_13,_14){ +with(_13){ +return _HTTPMethod; +} +}),new objj_method(sel_getUid("allHTTPHeaderFields"),function(_15,_16){ +with(_15){ +return _HTTPHeaderFields; +} +}),new objj_method(sel_getUid("valueForHTTPHeaderField:"),function(_17,_18,_19){ +with(_17){ +return objj_msgSend(_HTTPHeaderFields,"objectForKey:",_19); +} +}),new objj_method(sel_getUid("setValue:forHTTPHeaderField:"),function(_1a,_1b,_1c,_1d){ +with(_1a){ +objj_msgSend(_HTTPHeaderFields,"setObject:forKey:",_1c,_1d); +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("requestWithURL:"),function(_1e,_1f,_20){ +with(_1e){ +return objj_msgSend(objj_msgSend(CPURLRequest,"alloc"),"initWithURL:",_20); +} +})]); +p;15;CPURLResponse.ji;10;CPObject.jc;956; +var _1=objj_allocateClassPair(CPObject,"CPURLResponse"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_URL")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithURL:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_URL=_5; +} +return _3; +} +}),new objj_method(sel_getUid("URL"),function(_6,_7){ +with(_6){ +return _URL; +} +})]); +var _1=objj_allocateClassPair(CPURLResponse,"CPHTTPURLResponse"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_statusCode")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("_setStatusCode:"),function(_8,_9,_a){ +with(_8){ +_statusCode=_a; +} +}),new objj_method(sel_getUid("statusCode"),function(_b,_c){ +with(_b){ +return _statusCode; +} +})]); +p;22;CPUserSessionManager.jI;21;Foundation/CPObject.jI;21;Foundation/CPString.jc;1844; +CPUserSessionUndeterminedStatus=0; +CPUserSessionLoggedInStatus=1; +CPUserSessionLoggedOutStatus=2; +CPUserSessionManagerStatusDidChangeNotification="CPUserSessionManagerStatusDidChangeNotification"; +CPUserSessionManagerUserIdentifierDidChangeNotification="CPUserSessionManagerUserIdentifierDidChangeNotification"; +var _1=nil; +var _2=objj_allocateClassPair(CPObject,"CPUserSessionManager"),_3=_2.isa; +class_addIvars(_2,[new objj_ivar("_status"),new objj_ivar("_userIdentifier")]); +objj_registerClassPair(_2); +objj_addClassForBundle(_2,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_2,[new objj_method(sel_getUid("init"),function(_4,_5){ +with(_4){ +_4=objj_msgSendSuper({receiver:_4,super_class:objj_getClass("CPObject")},"init"); +if(_4){ +_status=CPUserSessionUndeterminedStatus; +} +return _4; +} +}),new objj_method(sel_getUid("status"),function(_6,_7){ +with(_6){ +return _status; +} +}),new objj_method(sel_getUid("setStatus:"),function(_8,_9,_a){ +with(_8){ +if(_status==_a){ +return; +} +_status=_a; +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPUserSessionManagerStatusDidChangeNotification,_8); +if(_status!=CPUserSessionLoggedInStatus){ +objj_msgSend(_8,"setUserIdentifier:",nil); +} +} +}),new objj_method(sel_getUid("userIdentifier"),function(_b,_c){ +with(_b){ +return _userIdentifier; +} +}),new objj_method(sel_getUid("setUserIdentifier:"),function(_d,_e,_f){ +with(_d){ +if(_userIdentifier==_f){ +return; +} +_userIdentifier=_f; +objj_msgSend(objj_msgSend(CPNotificationCenter,"defaultCenter"),"postNotificationName:object:",CPUserSessionManagerUserIdentifierDidChangeNotification,_d); +} +})]); +class_addMethods(_3,[new objj_method(sel_getUid("defaultManager"),function(_10,_11){ +with(_10){ +if(!_1){ +_1=objj_msgSend(objj_msgSend(CPUserSessionManager,"alloc"),"init"); +} +return _1; +} +})]); +p;9;CPValue.ji;10;CPObject.ji;9;CPCoder.jc;1673; +var _1=objj_allocateClassPair(CPObject,"CPValue"),_2=_1.isa; +class_addIvars(_1,[new objj_ivar("_JSObject")]); +objj_registerClassPair(_1); +objj_addClassForBundle(_1,objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path)); +class_addMethods(_1,[new objj_method(sel_getUid("initWithJSObject:"),function(_3,_4,_5){ +with(_3){ +_3=objj_msgSendSuper({receiver:_3,super_class:objj_getClass("CPObject")},"init"); +if(_3){ +_JSObject=_5; +} +return _3; +} +}),new objj_method(sel_getUid("JSObject"),function(_6,_7){ +with(_6){ +return _JSObject; +} +})]); +class_addMethods(_2,[new objj_method(sel_getUid("valueWithJSObject:"),function(_8,_9,_a){ +with(_8){ +return objj_msgSend(objj_msgSend(_8,"alloc"),"initWithJSObject:",_a); +} +})]); +var _b="CPValueValueKey"; +var _1=objj_getClass("CPValue"); +if(!_1){ +objj_exception_throw(new objj_exception(OBJJClassNotFoundException,"*** Could not find definition for class \"CPValue\"")); +} +var _2=_1.isa; +class_addMethods(_1,[new objj_method(sel_getUid("initWithCoder:"),function(_c,_d,_e){ +with(_c){ +_c=objj_msgSendSuper({receiver:_c,super_class:objj_getClass("CPObject")},"init"); +if(_c){ +_JSObject=JSON.parse(objj_msgSend(_e,"decodeObjectForKey:",_b)); +} +return _c; +} +}),new objj_method(sel_getUid("encodeWithCoder:"),function(_f,_10,_11){ +with(_f){ +objj_msgSend(_11,"encodeObject:forKey:",JSON.stringify(_JSObject),_b); +} +})]); +CPJSObjectCreateJSON=function(_12){ +CPLog.warn("CPJSObjectCreateJSON deprecated, use JSON.stringify() or CPString's objectFromJSON"); +return JSON.stringify(_12); +}; +CPJSObjectCreateWithJSON=function(_13){ +CPLog.warn("CPJSObjectCreateWithJSON deprecated, use JSON.parse() or CPString's JSONFromObject"); +return JSON.parse(_13); +}; +p;12;Foundation.ji;9;CPArray.ji;10;CPBundle.ji;9;CPCoder.ji;8;CPData.ji;8;CPDate.ji;14;CPDictionary.ji;14;CPEnumerator.ji;13;CPException.ji;12;CPIndexSet.ji;14;CPInvocation.ji;19;CPJSONPConnection.ji;17;CPKeyedArchiver.ji;19;CPKeyedUnarchiver.ji;18;CPKeyValueCoding.ji;21;CPKeyValueObserving.ji;7;CPLog.ji;16;CPNotification.ji;22;CPNotificationCenter.ji;8;CPNull.ji;10;CPNumber.ji;10;CPObject.ji;15;CPObjJRuntime.ji;29;CPPropertyListSerialization.ji;9;CPRange.ji;11;CPRunLoop.ji;7;CPSet.ji;18;CPSortDescriptor.ji;10;CPString.ji;9;CPTimer.ji;15;CPUndoManager.ji;17;CPURLConnection.ji;14;CPURLRequest.ji;15;CPURLResponse.ji;22;CPUserSessionManager.ji;9;CPValue.j \ No newline at end of file diff --git a/src/main/webapp/Frameworks/Objective-J/LICENSE b/src/main/webapp/Frameworks/Objective-J/LICENSE new file mode 100644 index 0000000..9ef3d70 --- /dev/null +++ b/src/main/webapp/Frameworks/Objective-J/LICENSE @@ -0,0 +1,503 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + diff --git a/src/main/webapp/Frameworks/Objective-J/Objective-J.js b/src/main/webapp/Frameworks/Objective-J/Objective-J.js new file mode 100644 index 0000000..734874f --- /dev/null +++ b/src/main/webapp/Frameworks/Objective-J/Objective-J.js @@ -0,0 +1,2608 @@ +/* + * Objective-J.js + * Objective-J + * + * Created by Francisco Tolmasky. + * Copyright 2008, 280 North, Inc. + * + * 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 + */ + +var NO = false, + YES = true, + nil = null, + Nil = null, + NULL = null, + ABS = Math.abs, + ASIN = Math.asin, + ACOS = Math.acos, + ATAN = Math.atan, + ATAN2 = Math.atan2, + SIN = Math.sin, + COS = Math.cos, + TAN = Math.tan, + EXP = Math.exp, + POW = Math.pow, + CEIL = Math.ceil, + FLOOR = Math.floor, + ROUND = Math.round, + MIN = Math.min, + MAX = Math.max, + RAND = Math.random, + SQRT = Math.sqrt, + E = Math.E, + LN2 = Math.LN2, + LN10 = Math.LN10, + LOG2E = Math.LOG2E, + LOG10E = Math.LOG10E, + PI = Math.PI, + PI2 = Math.PI * 2.0, + PI_2 = Math.PI / 2.0, + SQRT1_2 = Math.SQRT1_2, + SQRT2 = Math.SQRT2; +window.setNativeTimeout = window.setTimeout; +window.clearNativeTimeout = window.clearTimeout; +window.setNativeInterval = window.setInterval; +window.clearNativeInterval = window.clearInterval; +var objj_continue_alerting = NO; +function objj_alert(aString) +{ + if (!objj_continue_alerting) + return; + objj_continue_alerting = confirm(aString + "\n\nClick cancel to prevent further alerts."); +} +function objj_fprintf(stream, string) +{ + stream(string); +} +function objj_printf(string) +{ + objj_fprintf(alert, string); +} +if (window.console && window.console.warn) + var warning_stream = function(aString) { window.console.warn(aString); } +else + var warning_stream = function(){}; +var _sprintfFormatRegex = new RegExp("([^%]+|%[\\+\\-\\ \\#0]*[0-9\\*]*(.[0-9\\*]+)?[hlL]?[cbBdieEfgGosuxXpn%@])", "g"); +var _sprintfTagRegex = new RegExp("(%)([\\+\\-\\ \\#0]*)([0-9\\*]*)((.[0-9\\*]+)?)([hlL]?)([cbBdieEfgGosuxXpn%@])"); +function sprintf(format) +{ + var format = arguments[0], + tokens = format.match(_sprintfFormatRegex), + index = 0, + result = "", + arg = 1; + for (var i = 0; i < tokens.length; i++) + { + var t = tokens[i]; + if (format.substring(index, index + t.length) != t) + { + return result; + } + index += t.length; + if (t.charAt(0) != "%") + { + result += t; + } + else + { + var subtokens = t.match(_sprintfTagRegex); + if (subtokens.length != 8 || subtokens[0] != t) + { + return result; + } + var percentSign = subtokens[1], + flags = subtokens[2], + widthString = subtokens[3], + precisionString = subtokens[4], + length = subtokens[6], + specifier = subtokens[7]; + var width = null; + if (widthString == "*") + width = arguments[arg++]; + else if (widthString != "") + width = Number(widthString); + var precision = null; + if (precisionString == ".*") + precision = arguments[arg++]; + else if (precisionString != "") + precision = Number(precisionString.substring(1)); + var leftJustify = (flags.indexOf("-") >= 0); + var padZeros = (flags.indexOf("0") >= 0); + var subresult = ""; + if (RegExp("[bBdiufeExXo]").test(specifier)) + { + var num = Number(arguments[arg++]); + var sign = ""; + if (num < 0) + { + sign = "-"; + } + else + { + if (flags.indexOf("+") >= 0) + sign = "+"; + else if (flags.indexOf(" ") >= 0) + sign = " "; + } + if (specifier == "d" || specifier == "i" || specifier == "u") + { + var number = String(Math.abs(Math.floor(num))); + subresult = _sprintf_justify(sign, "", number, "", width, leftJustify, padZeros) + } + if (specifier == "f") + { + var number = String((precision != null) ? Math.abs(num).toFixed(precision) : Math.abs(num)); + var suffix = (flags.indexOf("#") >= 0 && number.indexOf(".") < 0) ? "." : ""; + subresult = _sprintf_justify(sign, "", number, suffix, width, leftJustify, padZeros); + } + if (specifier == "e" || specifier == "E") + { + var number = String(Math.abs(num).toExponential(precision != null ? precision : 21)); + var suffix = (flags.indexOf("#") >= 0 && number.indexOf(".") < 0) ? "." : ""; + subresult = _sprintf_justify(sign, "", number, suffix, width, leftJustify, padZeros); + } + if (specifier == "x" || specifier == "X") + { + var number = String(Math.abs(num).toString(16)); + var prefix = (flags.indexOf("#") >= 0 && num != 0) ? "0x" : ""; + subresult = _sprintf_justify(sign, prefix, number, "", width, leftJustify, padZeros); + } + if (specifier == "b" || specifier == "B") + { + var number = String(Math.abs(num).toString(2)); + var prefix = (flags.indexOf("#") >= 0 && num != 0) ? "0b" : ""; + subresult = _sprintf_justify(sign, prefix, number, "", width, leftJustify, padZeros); + } + if (specifier == "o") + { + var number = String(Math.abs(num).toString(8)); + var prefix = (flags.indexOf("#") >= 0 && num != 0) ? "0" : ""; + subresult = _sprintf_justify(sign, prefix, number, "", width, leftJustify, padZeros); + } + if (RegExp("[A-Z]").test(specifier)) + subresult = subresult.toUpperCase(); + else + subresult = subresult.toLowerCase(); + } + else + { + var subresult = ""; + if (specifier == "%") + subresult = "%"; + else if (specifier == "c") + subresult = String(arguments[arg++]).charAt(0); + else if (specifier == "s" || specifier == "@") + subresult = String(arguments[arg++]); + else if (specifier == "p" || specifier == "n") + { + arg++; + subresult = ""; + } + subresult = _sprintf_justify("", "", subresult, "", width, leftJustify, false); + } + result += subresult; + } + } + return result; +} +var _sprintf_justify = function(sign, prefix, string, suffix, width, leftJustify, padZeros) +{ + var length = (sign.length + prefix.length + string.length + suffix.length); + if (leftJustify) + { + return sign + prefix + string + suffix + _sprintf_pad(width - length, " "); + } + else + { + if (padZeros) + return sign + prefix + _sprintf_pad(width - length, "0") + string + suffix; + else + return _sprintf_pad(width - length, " ") + sign + prefix + string + suffix; + } +} +var _sprintf_pad = function(n, ch) +{ + var result = ""; + for (var i = 0; i < n; i++) + result += ch; + return result; +} +var base64_map_to = [ + "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z", + "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", + "0","1","2","3","4","5","6","7","8","9","+","/","="], + base64_map_from = []; +for (var i = 0; i < base64_map_to.length; i++) + base64_map_from[base64_map_to[i].charCodeAt(0)] = i; +function base64_decode_to_array(input, strip) +{ + if (strip) + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + var pad = (input[input.length-1] == "=" ? 1 : 0) + (input[input.length-2] == "=" ? 1 : 0), + length = input.length, + output = []; + var i = 0; + while (i < length) + { + var bits = (base64_map_from[input.charCodeAt(i++)] << 18) | + (base64_map_from[input.charCodeAt(i++)] << 12) | + (base64_map_from[input.charCodeAt(i++)] << 6) | + (base64_map_from[input.charCodeAt(i++)]); + output.push((bits & 0xFF0000) >> 16); + output.push((bits & 0xFF00) >> 8); + output.push(bits & 0xFF); + } + if (pad > 0) + return output.slice(0, -1 * pad); + return output; +} +function base64_encode_array(input) +{ + var pad = (3 - (input.length % 3)) % 3, + length = input.length + pad, + output = []; + if (pad > 0) input.push(0); + if (pad > 1) input.push(0); + var i = 0; + while (i < length) + { + var bits = (input[i++] << 16) | + (input[i++] << 8) | + (input[i++]); + output.push(base64_map_to[(bits & 0xFC0000) >> 18]); + output.push(base64_map_to[(bits & 0x3F000) >> 12]); + output.push(base64_map_to[(bits & 0xFC0) >> 6]); + output.push(base64_map_to[bits & 0x3F]); + } + if (pad > 0) + { + output[output.length-1] = "="; + input.pop(); + } + if (pad > 1) + { + output[output.length-2] = "="; + input.pop(); + } + return output.join(""); +} +function base64_decode_to_string(input, strip) +{ + return bytes_to_string(base64_decode_to_array(input, strip)); +} +function bytes_to_string(bytes) +{ + return String.fromCharCode.apply(null, bytes); +} +function base64_encode_string(input) +{ + var temp = []; + for (var i = 0; i < input.length; i++) + temp.push(input.charCodeAt(i)); + return base64_encode_array(temp); +} +if (!this.JSON) { + JSON = {}; +} +(function () { + function f(n) { + return n < 10 ? '0' + n : n; + } + if (typeof Date.prototype.toJSON !== 'function') { + Date.prototype.toJSON = function (key) { + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + function quote(string) { + escapable.lastIndex = 0; + return escapable.test(string) ? + '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : + '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : + '"' + string + '"'; + } + function str(key, holder) { + var i, + k, + v, + length, + mind = gap, + partial, + value = holder[key]; + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + switch (typeof value) { + case 'string': + return quote(value); + case 'number': + return isFinite(value) ? String(value) : 'null'; + case 'boolean': + case 'null': + return String(value); + case 'object': + if (!value) { + return 'null'; + } + gap += indent; + partial = []; + if (Object.prototype.toString.apply(value) === '[object Array]') { + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + v = partial.length === 0 ? '[]' : + gap ? '[\n' + gap + + partial.join(',\n' + gap) + '\n' + + mind + ']' : + '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + k = rep[i]; + if (typeof k === 'string') { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + v = partial.length === 0 ? '{}' : + gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + var i; + gap = ''; + indent = ''; + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + } else if (typeof space === 'string') { + indent = space; + } + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + return str('', {'': value}); + }; + } + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + var j; + function walk(holder, key) { + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + if (/^[\],:{}\s]*$/. +test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@'). +replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'). +replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + j = eval('(' + text + ')'); + return typeof reviver === 'function' ? + walk({'': j}, '') : j; + } + throw new SyntaxError('JSON.parse'); + }; + } +}()); +var CLS_CLASS = 0x1, + CLS_META = 0x2, + CLS_INITIALIZED = 0x4, + CLS_INITIALIZING = 0x8; +function objj_ivar( aName, aType) +{ + this.name = aName; + this.type = aType; +} +function objj_method( aName, anImplementation, types) +{ + this.name = aName; + this.method_imp = anImplementation; + this.types = types; +} +function objj_class() +{ + this.isa = NULL; + this.super_class = NULL; + this.sub_classes = []; + this.name = NULL; + this.info = 0; + this.ivars = []; + this.method_list = []; + this.method_hash = {}; + this.method_store = function() { }; + this.method_dtable = this.method_store.prototype; + this.allocator = function() { }; + this.__address = -1; +} +function objj_object() +{ + this.isa = NULL; + this.__address = -1; +} +var OBJECT_COUNT = 0; +function _objj_generateObjectHash() +{ + return OBJECT_COUNT++; +} +function class_getName( aClass) +{ + if (aClass == Nil) + return ""; + return aClass.name; +} +function class_isMetaClass( aClass) +{ + if (!aClass) + return NO; + return ((aClass.info & (CLS_META))); +} +function class_getSuperclass( aClass) +{ + if (aClass == Nil) + return Nil; + return aClass.super_class; +} +function class_setSuperclass( aClass, aSuperClass) +{ +} +function class_isMetaClass( aClass) +{ + return ((aClass.info & (CLS_META))); +} +function class_addIvar( aClass, aName, aType) +{ + var thePrototype = aClass.allocator.prototype; + if (typeof thePrototype[aName] != "undefined") + return NO; + aClass.ivars.push(new objj_ivar(aName, aType)); + thePrototype[aName] = NULL; + return YES; +} +function class_addIvars( aClass, ivars) +{ + var index = 0, + count = ivars.length, + thePrototype = aClass.allocator.prototype; + for (; index < count; ++index) + { + var ivar = ivars[index], + name = ivar.name; + if (typeof thePrototype[name] === "undefined") + { + aClass.ivars.push(ivar); + thePrototype[name] = NULL; + } + } +} +function class_copyIvarList( aClass) +{ + return aClass.ivars.slice(0); +} +function class_addMethod( aClass, aName, anImplementation, aType) +{ + if (aClass.method_hash[aName]) + return NO; + var method = new objj_method(aName, anImplementation, aType); + aClass.method_list.push(method); + aClass.method_dtable[aName] = method; + method.method_imp.displayName = (((aClass.info & (CLS_META))) ? '+' : '-') + " [" + class_getName(aClass) + ' ' + method_getName(method) + ']'; + if (!((aClass.info & (CLS_META))) && (((aClass.info & (CLS_META))) ? aClass : aClass.isa).isa === (((aClass.info & (CLS_META))) ? aClass : aClass.isa)) + class_addMethod((((aClass.info & (CLS_META))) ? aClass : aClass.isa), method); + return YES; +} +function class_addMethods( aClass, methods) +{ + var index = 0, + count = methods.length, + method_list = aClass.method_list, + method_dtable = aClass.method_dtable; + for (; index < count; ++index) + { + var method = methods[index]; + if (aClass.method_hash[method.name]) + continue; + method_list.push(method); + method_dtable[method.name] = method; + method.method_imp.displayName = (((aClass.info & (CLS_META))) ? '+' : '-') + " [" + class_getName(aClass) + ' ' + method_getName(method) + ']'; + } + if (!((aClass.info & (CLS_META))) && (((aClass.info & (CLS_META))) ? aClass : aClass.isa).isa === (((aClass.info & (CLS_META))) ? aClass : aClass.isa)) + class_addMethods((((aClass.info & (CLS_META))) ? aClass : aClass.isa), methods); +} +function class_getInstanceMethod( aClass, aSelector) +{ + if (!aClass || !aSelector) + return NULL; + var method = aClass.method_dtable[aSelector]; + return method ? method : NULL; +} +function class_getClassMethod( aClass, aSelector) +{ + if (!aClass || !aSelector) + return NULL; + var method = (((aClass.info & (CLS_META))) ? aClass : aClass.isa).method_dtable[aSelector]; + return method ? method : NULL; +} +function class_copyMethodList( aClass) +{ + return aClass.method_list.slice(0); +} +function class_replaceMethod( aClass, aSelector, aMethodImplementation) +{ + if (!aClass || !aSelector) + return NULL; + var method = aClass.method_dtable[aSelector], + method_imp = NULL; + if (method) + method_imp = method.method_imp; + method.method_imp = aMethodImplementation; + return method_imp; +} +var _class_initialize = function( aClass) +{ + var meta = (((aClass.info & (CLS_META))) ? aClass : aClass.isa); + if ((aClass.info & (CLS_META))) + aClass = objj_getClass(aClass.name); + if (aClass.super_class && !((((aClass.super_class.info & (CLS_META))) ? aClass.super_class : aClass.super_class.isa).info & (CLS_INITIALIZED))) + _class_initialize(aClass.super_class); + if (!(meta.info & (CLS_INITIALIZED)) && !(meta.info & (CLS_INITIALIZING))) + { + meta.info = (meta.info | (CLS_INITIALIZING)) & ~(0); + objj_msgSend(aClass, "initialize"); + meta.info = (meta.info | (CLS_INITIALIZED)) & ~(CLS_INITIALIZING); + } +} +var _objj_forward = new objj_method("forward", function(self, _cmd) +{ + return objj_msgSend(self, "forward::", _cmd, arguments); +}); +function class_getMethodImplementation( aClass, aSelector) +{ + if (!((((aClass.info & (CLS_META))) ? aClass : aClass.isa).info & (CLS_INITIALIZED))) _class_initialize(aClass); var method = aClass.method_dtable[aSelector]; if (!method) method = _objj_forward; var implementation = method.method_imp;; + return implementation; +} +var GLOBAL_NAMESPACE = window, + REGISTERED_CLASSES = {}; +function objj_allocateClassPair( superclass, aName) +{ + var classObject = new objj_class(), + metaClassObject = new objj_class(), + rootClassObject = classObject; + if (superclass) + { + rootClassObject = superclass; + while (rootClassObject.superclass) + rootClassObject = rootClassObject.superclass; + classObject.allocator.prototype = new superclass.allocator; + classObject.method_store.prototype = new superclass.method_store; + classObject.method_dtable = classObject.method_store.prototype; + metaClassObject.method_store.prototype = new superclass.isa.method_store; + metaClassObject.method_dtable = metaClassObject.method_store.prototype; + classObject.super_class = superclass; + metaClassObject.super_class = superclass.isa; + } + else + classObject.allocator.prototype = new objj_object(); + classObject.isa = metaClassObject; + classObject.name = aName; + classObject.info = CLS_CLASS; + classObject.__address = (OBJECT_COUNT++); + metaClassObject.isa = rootClassObject.isa; + metaClassObject.name = aName; + metaClassObject.info = CLS_META; + metaClassObject.__address = (OBJECT_COUNT++); + return classObject; +} +function objj_registerClassPair( aClass) +{ + GLOBAL_NAMESPACE[aClass.name] = aClass; + REGISTERED_CLASSES[aClass.name] = aClass; +} +function class_createInstance( aClass) +{ + if (!aClass) + objj_exception_throw(new objj_exception(OBJJNilClassException, "*** Attempting to create object with Nil class.")); + var object = new aClass.allocator; + object.__address = (OBJECT_COUNT++); + object.isa = aClass; + return object; +} +var prototype_bug = function() { } +prototype_bug.prototype.member = false; +with (new prototype_bug()) + member = true; +if (new prototype_bug().member) +{ +var fast_class_createInstance = class_createInstance; +class_createInstance = function( aClass) +{ + var object = fast_class_createInstance(aClass); + if (object) + { + var theClass = object.isa, + actualClass = theClass; + while (theClass) + { + var ivars = theClass.ivars; + count = ivars.length; + while (count--) + object[ivars[count].name] = NULL; + theClass = theClass.super_class; + } + object.isa = actualClass; + } + return object; +} +} +function object_getClassName( anObject) +{ + if (!anObject) + return ""; + var theClass = anObject.isa; + return theClass ? class_getName(theClass) : ""; +} +function objj_lookUpClass( aName) +{ + var theClass = REGISTERED_CLASSES[aName]; + return theClass ? theClass : Nil; +} +function objj_getClass( aName) +{ + var theClass = REGISTERED_CLASSES[aName]; + if (!theClass) + { + } + return theClass ? theClass : Nil; +} +function objj_getMetaClass( aName) +{ + var theClass = objj_getClass(aName); + return (((theClass.info & (CLS_META))) ? theClass : theClass.isa); +} +function ivar_getName(anIvar) +{ + return anIvar.name; +} +function ivar_getTypeEncoding(anIvar) +{ + return anIvar.type; +} +function objj_msgSend( aReceiver, aSelector) +{ + if (aReceiver == nil) + return nil; + if (!((((aReceiver.isa.info & (CLS_META))) ? aReceiver.isa : aReceiver.isa.isa).info & (CLS_INITIALIZED))) _class_initialize(aReceiver.isa); var method = aReceiver.isa.method_dtable[aSelector]; if (!method) method = _objj_forward; var implementation = method.method_imp;; + switch(arguments.length) + { + case 2: return implementation(aReceiver, aSelector); + case 3: return implementation(aReceiver, aSelector, arguments[2]); + case 4: return implementation(aReceiver, aSelector, arguments[2], arguments[3]); + } + return implementation.apply(aReceiver, arguments); +} +function objj_msgSendSuper( aSuper, aSelector) +{ + var super_class = aSuper.super_class; + arguments[0] = aSuper.receiver; + if (!((((super_class.info & (CLS_META))) ? super_class : super_class.isa).info & (CLS_INITIALIZED))) _class_initialize(super_class); var method = super_class.method_dtable[aSelector]; if (!method) method = _objj_forward; var implementation = method.method_imp;; + return implementation.apply(aSuper.receiver, arguments); +} +function method_getName( aMethod) +{ + return aMethod.name; +} +function method_getImplementation( aMethod) +{ + return aMethod.method_imp; +} +function method_setImplementation( aMethod, anImplementation) +{ + var oldImplementation = aMethod.method_imp; + aMethod.method_imp = anImplementation; + return oldImplementation; +} +function method_exchangeImplementations( lhs, rhs) +{ + var lhs_imp = method_getImplementation(lhs), + rhs_imp = method_getImplementation(rhs); + method_setImplementation(lhs, rhs_imp); + method_setImplementation(rhs, lhs_imp); +} +function sel_getName(aSelector) +{ + return aSelector ? aSelector : ""; +} +function sel_getUid( aName) +{ + return aName; +} +function sel_isEqual( lhs, rhs) +{ + return lhs === rhs; +} +function sel_registerName(aName) +{ + return aName; +} +function objj_dictionary() +{ + this._keys = []; + this.count = 0; + this._buckets = {}; + this.__address = (OBJECT_COUNT++); +} +function dictionary_containsKey(aDictionary, aKey) +{ + return aDictionary._buckets[aKey] != NULL; +} +function dictionary_getCount(aDictionary) +{ + return aDictionary.count; +} +function dictionary_getValue(aDictionary, aKey) +{ + return aDictionary._buckets[aKey]; +} +function dictionary_setValue(aDictionary, aKey, aValue) +{ + if (aDictionary._buckets[aKey] == NULL) + { + aDictionary._keys.push(aKey); + ++aDictionary.count; + } + if ((aDictionary._buckets[aKey] = aValue) == NULL) + --aDictionary.count; +} +function dictionary_removeValue(aDictionary, aKey) +{ + if (aDictionary._buckets[aKey] == NULL) + return; + --aDictionary.count; + if (aDictionary._keys.indexOf) + aDictionary._keys.splice(aDictionary._keys.indexOf(aKey), 1); + else + { + var keys = aDictionary._keys, + index = 0, + count = keys.length; + for (; index < count; ++index) + if (keys[index] == aKey) + { + keys.splice(index, 1); + break; + } + } + delete aDictionary._buckets[aKey]; +} +function dictionary_replaceValue(aDictionary, aKey, aValue) +{ + if (aDictionary[aKey] == NULL) + return; +} +function dictionary_description(aDictionary) +{ + var str = "{ "; + for ( x in aDictionary._buckets) + str += x + ":" + aDictionary._buckets[x] + ","; + str += " }"; + return str; +} +var kCFPropertyListOpenStepFormat = 1, + kCFPropertyListXMLFormat_v1_0 = 100, + kCFPropertyListBinaryFormat_v1_0 = 200, + kCFPropertyList280NorthFormat_v1_0 = -1000; +var OBJJPlistParseException = "OBJJPlistParseException", + OBJJPlistSerializeException = "OBJJPlistSerializeException"; +var kCFPropertyList280NorthMagicNumber = "280NPLIST"; +function objj_data() +{ + this.string = ""; + this._plistObject = NULL; + this.bytes = NULL; + this.base64 = NULL; +} +var objj_markedStream = function(aString) +{ + var index = aString.indexOf(';'); + this._magicNumber = aString.substr(0, index); + this._location = aString.indexOf(';', ++index); + this._version = aString.substring(index, this._location++); + this._string = aString; +} +objj_markedStream.prototype.magicNumber = function() +{ + return this._magicNumber; +} +objj_markedStream.prototype.version = function() +{ + return this._version; +} +objj_markedStream.prototype.getMarker = function() +{ + var string = this._string, + location = this._location; + if (location >= string.length) + return NULL; + var next = string.indexOf(';', location); + if (next < 0) + return NULL; + var marker = string.substring(location, next); + this._location = next + 1; + return marker; +} +objj_markedStream.prototype.getString = function() +{ + var string = this._string, + location = this._location; + if (location >= string.length) + return NULL; + var next = string.indexOf(';', location); + if (next < 0) + return NULL; + var size = parseInt(string.substring(location, next)), + text = string.substr(next + 1, size); + this._location = next + 1 + size; + return text; +} +function CPPropertyListCreateData(aPlistObject, aFormat) +{ + if (aFormat == kCFPropertyListXMLFormat_v1_0) + return CPPropertyListCreateXMLData(aPlistObject); + if (aFormat == kCFPropertyList280NorthFormat_v1_0) + return CPPropertyListCreate280NorthData(aPlistObject); + return NULL; +} +function CPPropertyListCreateFromData(aData, aFormat) +{ + if (!aFormat) + { + if (aData instanceof objj_data) + { + var string = aData.string ? aData.string : objj_msgSend(aData, "string"); + if (string.substr(0, kCFPropertyList280NorthMagicNumber.length) == kCFPropertyList280NorthMagicNumber) + aFormat = kCFPropertyList280NorthFormat_v1_0; + else + aFormat = kCFPropertyListXMLFormat_v1_0; + } + else + aFormat = kCFPropertyListXMLFormat_v1_0; + } + if (aFormat == kCFPropertyListXMLFormat_v1_0) + return CPPropertyListCreateFromXMLData(aData); + if (aFormat == kCFPropertyList280NorthFormat_v1_0) + return CPPropertyListCreateFrom280NorthData(aData); + return NULL; +} +var _CPPropertyListSerializeObject = function(aPlist, serializers) +{ + var type = typeof aPlist, + valueOf = aPlist.valueOf(), + typeValueOf = typeof valueOf; + if (type != typeValueOf) + { + type = typeValueOf; + aPlist = valueOf; + } + if (type == "string") + return serializers["string"](aPlist, serializers); + else if (aPlist === true || aPlist === false) + return serializers["boolean"](aPlist, serializers); + else if (type == "number") + { + var integer = FLOOR(aPlist); + if (integer == aPlist) + return serializers["integer"](aPlist, serializers); + else + return serializers["real"](aPlist, serializers); + } + else if (aPlist.slice) + return serializers["array"](aPlist, serializers); + else + return serializers["dictionary"](aPlist, serializers); +} +var XML_XML = "xml", + XML_DOCUMENT = "#document", + PLIST_PLIST = "plist", + PLIST_KEY = "key", + PLIST_DICTIONARY = "dict", + PLIST_ARRAY = "array", + PLIST_STRING = "string", + PLIST_BOOLEAN_TRUE = "true", + PLIST_BOOLEAN_FALSE = "false", + PLIST_NUMBER_REAL = "real", + PLIST_NUMBER_INTEGER = "integer", + PLIST_DATA = "data"; +var _plist_traverseNextNode = function(anXMLNode, stayWithin, stack) +{ + var node = anXMLNode; + node = (node.firstChild); if (node != NULL && ((node.nodeType) == 8 || (node.nodeType) == 3)) while ((node = (node.nextSibling)) && ((node.nodeType) == 8 || (node.nodeType) == 3)) ;; + if (node) + return node; + if ((String(anXMLNode.nodeName)) == PLIST_ARRAY || (String(anXMLNode.nodeName)) == PLIST_DICTIONARY) + stack.pop(); + else + { + if (node == stayWithin) + return NULL; + node = anXMLNode; + while ((node = (node.nextSibling)) && ((node.nodeType) == 8 || (node.nodeType) == 3)) ;; + if (node) + return node; + } + node = anXMLNode; + while (node) + { + var next = node; + while ((next = (next.nextSibling)) && ((next.nodeType) == 8 || (next.nodeType) == 3)) ;; + if (next) + return next; + var node = (node.parentNode); + if (stayWithin && node == stayWithin) + return NULL; + stack.pop(); + } + return NULL; +} +function CPPropertyListCreateFromXMLData(XMLNodeOrData) +{ + var XMLNode = XMLNodeOrData; + if (XMLNode.string) + { + if (window.ActiveXObject) + { + XMLNode = new ActiveXObject("Microsoft.XMLDOM"); + XMLNode.loadXML(XMLNodeOrData.string.substr(XMLNodeOrData.string.indexOf(".dtd\">") + 6)); + } + else + XMLNode = (new DOMParser().parseFromString(XMLNodeOrData.string, "text/xml").documentElement); + } + while (((String(XMLNode.nodeName)) == XML_DOCUMENT) || ((String(XMLNode.nodeName)) == XML_XML)) + XMLNode = (XMLNode.firstChild); if (XMLNode != NULL && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) while ((XMLNode = (XMLNode.nextSibling)) && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) ;; + if (((XMLNode.nodeType) == 10)) + while ((XMLNode = (XMLNode.nextSibling)) && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) ;; + if (!((String(XMLNode.nodeName)) == PLIST_PLIST)) + return NULL; + var key = "", + object = NULL, + plistObject = NULL, + plistNode = XMLNode, + containers = [], + currentContainer = NULL; + while (XMLNode = _plist_traverseNextNode(XMLNode, plistNode, containers)) + { + var count = containers.length; + if (count) + currentContainer = containers[count - 1]; + if ((String(XMLNode.nodeName)) == PLIST_KEY) + { + key = ((String((XMLNode.firstChild).nodeValue))); + while ((XMLNode = (XMLNode.nextSibling)) && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) ;; + } + switch (String((String(XMLNode.nodeName)))) + { + case PLIST_ARRAY: object = [] + containers.push(object); + break; + case PLIST_DICTIONARY: object = new objj_dictionary(); + containers.push(object); + break; + case PLIST_NUMBER_REAL: object = parseFloat(((String((XMLNode.firstChild).nodeValue)))); + break; + case PLIST_NUMBER_INTEGER: object = parseInt(((String((XMLNode.firstChild).nodeValue)))); + break; + case PLIST_STRING: object = _decodeHTMLComponent((XMLNode.firstChild) ? ((String((XMLNode.firstChild).nodeValue))) : ""); + break; + case PLIST_BOOLEAN_TRUE: object = true; + break; + case PLIST_BOOLEAN_FALSE: object = false; + break; + case PLIST_DATA: object = new objj_data(); + object.bytes = (XMLNode.firstChild) ? base64_decode_to_array(((String((XMLNode.firstChild).nodeValue))), true) : []; + break; + default: objj_exception_throw(new objj_exception(OBJJPlistParseException, "*** " + (String(XMLNode.nodeName)) + " tag not recognized in Plist.")); + } + if (!plistObject) + plistObject = object; + else if (currentContainer) + if (currentContainer.slice) + currentContainer.push(object); + else + { if ((currentContainer)._buckets[key] == NULL) { (currentContainer)._keys.push(key); ++(currentContainer).count; } if (((currentContainer)._buckets[key] = object) == NULL) --(currentContainer).count;}; + } + return plistObject; +} +function CPPropertyListCreateXMLData(aPlist) +{ + var data = new objj_data(); + data.string = ""; + data.string += ""; + data.string += ""; + data.string += ""; + _CPPropertyListAppendXMLData(data, aPlist, ""); + data.string += ""; + return data; +} +var _CPArrayAppendXMLData = function(XMLData, anArray) +{ + var i = 0, + count = anArray.length; + XMLData.string += ""; + for (; i < count; ++i) + _CPPropertyListAppendXMLData(XMLData, anArray[i]); + XMLData.string += ""; +} +var _CPDictionaryAppendXMLData = function(XMLData, aDictionary) +{ + var keys = aDictionary._keys, + i = 0, + count = keys.length; + XMLData.string += ""; + for (; i < count; ++i) + { + XMLData.string += "" + keys[i] + ""; + _CPPropertyListAppendXMLData(XMLData, ((aDictionary)._buckets[keys[i]])); + } + XMLData.string += ""; +} +var _encodeHTMLComponent = function(aString) +{ + return aString.replace('<', "<").replace('>', ">").replace('\"', """).replace('\'', "'").replace('&', "&"); +} +var _decodeHTMLComponent = function(aString) +{ + return aString.replace("<", '<').replace(">", '>').replace(""", '\"').replace("'", '\'').replace("&", '&'); +} +var _CPPropertyListAppendXMLData = function(XMLData, aPlist) +{ + var type = typeof aPlist, + valueOf = aPlist.valueOf(), + typeValueOf = typeof valueOf; + if (type != typeValueOf) + { + type = typeValueOf; + aPlist = valueOf; + } + if (type == "string") + XMLData.string += "" + _encodeHTMLComponent(aPlist) + ""; + else if (aPlist === true) + XMLData.string += ""; + else if (aPlist === false) + XMLData.string += ""; + else if (type == "number") + { + var integer = FLOOR(aPlist); + if (integer == aPlist) + XMLData.string += "" + aPlist + ""; + else + XMLData.string += "" + aPlist + ""; + } + else if (aPlist.slice) + _CPArrayAppendXMLData(XMLData, aPlist); + else if (aPlist._keys) + _CPDictionaryAppendXMLData(XMLData, aPlist); + else + objj_exception_throw(new objj_exception(OBJJPlistSerializeException, "*** unknown plist ("+aPlist+") type: " + type)); +} +var ARRAY_MARKER = "A", + DICTIONARY_MARKER = "D", + FLOAT_MARKER = "f", + INTEGER_MARKER = "d", + STRING_MARKER = "S", + TRUE_MARKER = "T", + FALSE_MARKER = "F", + KEY_MARKER = "K", + END_MARKER = "E"; +function CPPropertyListCreateFrom280NorthData(aData) +{ + var stream = new objj_markedStream(aData.string), + marker = NULL, + key = "", + object = NULL, + plistObject = NULL, + containers = [], + currentContainer = NULL; + while (marker = stream.getMarker()) + { + if (marker === END_MARKER) + { + containers.pop(); + continue; + } + var count = containers.length; + if (count) + currentContainer = containers[count - 1]; + if (marker === KEY_MARKER) + { + key = stream.getString(); + marker = stream.getMarker(); + } + switch (marker) + { + case ARRAY_MARKER: object = [] + containers.push(object); + break; + case DICTIONARY_MARKER: object = new objj_dictionary(); + containers.push(object); + break; + case FLOAT_MARKER: object = parseFloat(stream.getString()); + break; + case INTEGER_MARKER: object = parseInt(stream.getString()); + break; + case STRING_MARKER: object = stream.getString(); + break; + case TRUE_MARKER: object = true; + break; + case FALSE_MARKER: object = false; + break; + default: objj_exception_throw(new objj_exception(OBJJPlistParseException, "*** " + marker + " marker not recognized in Plist.")); + } + if (!plistObject) + plistObject = object; + else if (currentContainer) + if (currentContainer.slice) + currentContainer.push(object); + else + { if ((currentContainer)._buckets[key] == NULL) { (currentContainer)._keys.push(key); ++(currentContainer).count; } if (((currentContainer)._buckets[key] = object) == NULL) --(currentContainer).count;}; + } + return plistObject; +} +function CPPropertyListCreate280NorthData(aPlist) +{ + var data = new objj_data(); + data.string = kCFPropertyList280NorthMagicNumber + ";1.0;" + _CPPropertyListSerializeObject(aPlist, _CPPropertyList280NorthSerializers); + return data; +} +var _CPPropertyList280NorthSerializers = {}; +_CPPropertyList280NorthSerializers["string"] = function(aString) +{ + return STRING_MARKER + ';' + aString.length + ';' + aString; +} +_CPPropertyList280NorthSerializers["boolean"] = function(aBoolean) +{ + return (aBoolean ? TRUE_MARKER : FALSE_MARKER) + ';'; +} +_CPPropertyList280NorthSerializers["integer"] = function(anInteger) +{ + var string = "" + anInteger; + return INTEGER_MARKER + ';' + string.length + ';' + string; +} +_CPPropertyList280NorthSerializers["real"] = function(aFloat) +{ + var string = "" + aFloat; + return FLOAT_MARKER + ';' + string.length + ';' + string; +} +_CPPropertyList280NorthSerializers["array"] = function(anArray, serializers) +{ + var index = 0, + count = anArray.length, + string = ARRAY_MARKER + ';'; + for (; index < count; ++index) + string += _CPPropertyListSerializeObject(anArray[index], serializers); + return string + END_MARKER + ';'; +} +_CPPropertyList280NorthSerializers["dictionary"] = function(aDictionary, serializers) +{ + var keys = aDictionary._keys, + index = 0, + count = keys.length, + string = DICTIONARY_MARKER +';'; + for (; index < count; ++index) + { + var key = keys[index]; + string += KEY_MARKER + ';' + key.length + ';' + key; + string += _CPPropertyListSerializeObject(((aDictionary)._buckets[key]), serializers); + } + return string + END_MARKER + ';'; +} +var OBJJ_PLATFORMS = ["browser", "objj"]; +var OBJJFileNotFoundException = "OBJJFileNotFoundException", + OBJJExecutableNotFoundException = "OBJJExecutableNotFoundException"; +var objj_files = { }, + objj_bundles = { }, + objj_bundlesForClass = { }, + objj_searches = { }; +var OBJJ_NO_FILE = {}; +if (typeof OBJJ_INCLUDE_PATHS === "undefined") + OBJJ_INCLUDE_PATHS = ["Frameworks", "SomethingElse"]; +var OBJJ_BASE_URI = ""; +if (window.opera) { +var DOMBaseElement = document.getElementsByTagName("base")[0]; +if (DOMBaseElement) + OBJJ_BASE_URI = (DOMBaseElement.getAttribute('href')).substr(0, (DOMBaseElement.getAttribute('href')).lastIndexOf('/') + 1); +} +function objj_file() +{ + this.path = NULL; + this.bundle = NULL; + this.included = NO; + this.contents = NULL; + this.fragments = NULL; +} +function objj_bundle() +{ + this.path = NULL; + this.info = NULL; + this.__address = (OBJECT_COUNT++); +} +function objj_getBundleWithPath(aPath) +{ + return objj_bundles[aPath]; +} +function objj_setBundleForPath(aPath, aBundle) +{ + objj_bundles[aPath] = aBundle; +} +function objj_bundleForClass(aClass) +{ + return objj_bundlesForClass[aClass.name]; +} +function objj_addClassForBundle(aClass, aBundle) +{ + objj_bundlesForClass[aClass.name] = aBundle; +} +function objj_request_file(aFilePath, shouldSearchLocally, aCallback) +{ + new objj_search(aFilePath, shouldSearchLocally, aCallback).attemptNextSearchPath(); +} +var objj_search = function(aFilePath, shouldSearchLocally, aCallback) +{ + this.filePath = aFilePath; + this.bundle = NULL; + this.bundleObservers = []; + this.searchPath = NULL; + this.searchedPaths = []; + this.includePathsIndex = shouldSearchLocally ? -1 : 0; + this.searchRequest = NULL; + this.didCompleteCallback = aCallback; +} +objj_search.prototype.nextSearchPath = function() +{ + var path = objj_standardize_path((this.includePathsIndex == -1 ? "" : OBJJ_INCLUDE_PATHS[this.includePathsIndex] + '/') + this.filePath); + ++this.includePathsIndex; + return path; +} +objj_search.prototype.attemptNextSearchPath = function() +{ + var searchPath = this.nextSearchPath(), + file = objj_files[searchPath]; + objj_alert("Will attempt to find " + this.filePath + " at " + searchPath); + if (file) + { + objj_alert("The file request at " + this.filePath + " has already been downloaded at " + searchPath); + if (this.didCompleteCallback) + this.didCompleteCallback(file); + return; + } + var existingSearch = objj_searches[searchPath]; + if (existingSearch) + { + if (this.didCompleteCallback) + existingSearch.didCompleteCallback = this.didCompleteCallback; + return; + } + this.searchedPaths.push(this.searchPath = searchPath); + var infoPath = objj_standardize_path((searchPath).substr(0, (searchPath).lastIndexOf('/') + 1) + "Info.plist"), + bundle = objj_bundles[infoPath]; + if (bundle) + { + this.bundle = bundle; + this.request(searchPath, this.didReceiveSearchResponse); + } + else + { + var existingBundleSearch = objj_searches[infoPath]; + if (existingBundleSearch) + { + --this.includePathsIndex; + this.searchedPaths.pop(); + if (this.searchedPaths.length) + this.searchPath = this.searchedPaths[this.searchedPaths.length - 1]; + else + this.searchPath = NULL; + existingBundleSearch.bundleObservers.push(this); + return; + } + else + { + this.bundleObservers.push(this); + this.request(infoPath, this.didReceiveBundleResponse); + if (!this.searchReplaced) + this.searchRequest = this.request(searchPath, this.didReceiveSearchResponse); + } + } +} +if (window.ActiveXObject) { +objj_search.responseCallbackLock = NO; +objj_search.responseCallbackQueue = []; +objj_search.removeResponseCallbackForFilePath = function(aFilePath) +{ + var queue = objj_search.responseCallbackQueue, + index = queue.length; + while (index--) + if (queue[index][3] == aFilePath) + { + queue.splice(index, 1); + return; + } +} +objj_search.serializeResponseCallback = function(aMethod, aSearch, aResponse, aFilePath) +{ + var queue = objj_search.responseCallbackQueue; + queue.push([aMethod, aSearch, aResponse, aFilePath]); + if (objj_search.responseCallbackLock) + return; + objj_search.responseCallbackLock = YES; + while (queue.length) + { + var callback = queue[0]; + queue.splice(0, 1); + callback[0].apply(callback[1], [callback[2]]); + } + objj_search.responseCallbackLock = NO; +} +} +objj_search.prototype.request = function(aFilePath, aMethod) +{ + var search = this, + isPlist = aFilePath.substr(aFilePath.length - 6, 6) == ".plist", + request = objj_request_xmlhttp(), + response = objj_response_xmlhttp(); + response.filePath = aFilePath; + request.onreadystatechange = function() + { + if (request.readyState == 4) + { + if (response.success = (request.status != 404 && request.responseText && request.responseText.length) ? YES : NO) + { + if (window.files_total) + { + if (!window.files_loaded) + window.files_loaded = 0; + window.files_loaded += request.responseText.length; + if (window.update_progress) + window.update_progress(window.files_loaded / window.files_total); + } + if (isPlist) + response.xml = objj_standardize_xml(request); + else + response.text = request.responseText; + } + if (window.ActiveXObject) + objj_search.serializeResponseCallback(aMethod, search, response, aFilePath); + else + aMethod.apply(search, [response]); + } + } + objj_searches[aFilePath] = this; + if (request.overrideMimeType && isPlist) + request.overrideMimeType('text/xml'); + if (window.opera && aFilePath.charAt(0) != '/') + aFilePath = OBJJ_BASE_URI + aFilePath; + try + { + request.open("GET", aFilePath, YES); + request.send(""); + } + catch (anException) + { + response.success = NO; + if (window.ActiveXObject) + objj_search.serializeResponseCallback(aMethod, search, response, aFilePath); + else + aMethod.apply(search, [response]); + } + return request; +} +objj_search.prototype.didReceiveSearchResponse = function(aResponse) +{ + if (!this.bundle) + { + this.cachedSearchResponse = aResponse; + return; + } + if (aResponse.success) + { + file = new objj_file(); + file.path = aResponse.filePath; + file.bundle = this.bundle + file.contents = aResponse.text; + this.complete(file); + } + else if (this.includePathsIndex < OBJJ_INCLUDE_PATHS.length) + { + this.bundle = NULL; + this.attemptNextSearchPath(); + } + else + objj_exception_throw(new objj_exception(OBJJFileNotFoundException, "*** Could not locate file named \"" + this.filePath + "\" in search paths.")); +} +objj_search.prototype.didReceiveBundleResponse = function(aResponse) +{ + var bundle = new objj_bundle(); + bundle.path = aResponse.filePath; + if (aResponse.success) + bundle.info = CPPropertyListCreateFromXMLData(aResponse.xml); + else + bundle.info = new objj_dictionary(); + objj_bundles[aResponse.filePath] = bundle; + var executablePath = ((bundle.info)._buckets["CPBundleExecutable"]); + if (executablePath) + { + var platform = NULL, + platforms = ((bundle.info)._buckets["CPBundlePlatforms"]), + index = 0, + count = OBJJ_PLATFORMS.length, + innerCount = platforms.length; + for(; index < count; ++index) + { + var innerIndex = 0, + currentPlatform = OBJJ_PLATFORMS[index]; + for (; innerIndex < innerCount; ++innerIndex) + if(currentPlatform === platforms[innerIndex]) + { + platform = currentPlatform; + break; + } + } + executablePath = platform + ".platform/" + executablePath; + this.request((aResponse.filePath).substr(0, (aResponse.filePath).lastIndexOf('/') + 1) + executablePath, this.didReceiveExecutableResponse); + var directory = (aResponse.filePath).substr(0, (aResponse.filePath).lastIndexOf('/') + 1), + replacedFiles = ((bundle.info)._buckets["CPBundleReplacedFiles"]), + index = 0, + count = replacedFiles.length; + for (; index < count; ++index) + { + objj_searches[directory + replacedFiles[index]] = this; + if (directory + replacedFiles[index] == this.searchPath) + { + this.searchReplaced = YES; + if (!this.cachedSearchResponse && this.searchRequest) + this.searchRequest.abort(); + if (window.ActiveXObject) + objj_search.removeResponseCallbackForFilePath(this.searchPath); + } + } + } + this.bundle = bundle; + var observers = this.bundleObservers, + index = 0, + count = observers.length; + for(; index < count; ++index) + { + var observer = observers[index]; + if (observer != this) + observer.attemptNextSearchPath(); + else if (this.cachedSearchResponse && !this.searchReplaced) + this.didReceiveSearchResponse(this.cachedSearchResponse); + } + this.bundleObservers = []; +} +objj_search.prototype.didReceiveExecutableResponse = function(aResponse) +{ + if (!aResponse.success) + objj_exception_throw(new objj_exception(OBJJExecutableNotFoundException, "*** The specified executable could not be located at \"" + this.filePath + "\".")); + var files = objj_decompile(aResponse.text, this.bundle), + index = 0, + count = files.length, + length = this.filePath.length; + for (; index < count; ++index) + { + var file = files[index], + path = file.path; + if (this.filePath == path.substr(path.length - length)) + this.complete(file); + else + objj_files[path] = file; + } +} +objj_search.prototype.complete = function(aFile) +{ + var index = 0, + count = this.searchedPaths.length; + for (; index < count; ++index) + { + objj_files[this.searchedPaths[index]] = aFile; + } + if (this.didCompleteCallback) + this.didCompleteCallback(aFile); +} +function objj_standardize_path(aPath) +{ + if (aPath.indexOf("/./") != -1 && aPath.indexOf("//") != -1 && aPath.indexOf("/../") != -1) + return aPath; + var index = 0, + components = aPath.split('/'); + for(;index < components.length; ++index) + if(components[index] == "..") + { + components.splice(index - 1, 2); + index -= 2; + } + else if(index != 0 && !components[index].length || components[index] == '.' || components[index] == "..") + components.splice(index--, 1); + return components.join('/'); +} +if (window.ActiveXObject) { +var objj_standardize_xml = function(aRequest) +{ + var XMLData = new ActiveXObject("Microsoft.XMLDOM"); + XMLData.loadXML(aRequest.responseText.substr(aRequest.responseText.indexOf(".dtd\">") + 6)); + return XMLData; +} +} else { +var objj_standardize_xml = function(aRequest) +{ + return aRequest.responseXML; +} +} +function objj_response_xmlhttp() +{ + return new Object; +} +if (window.XMLHttpRequest) { +var objj_request_xmlhttp = function() +{ + return new XMLHttpRequest(); +} +} else if (window.ActiveXObject) { +var MSXML_XMLHTTP_OBJECTS = [ "Microsoft.XMLHTTP", "Msxml2.XMLHTTP", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP.6.0" ], + index = MSXML_XMLHTTP_OBJECTS.length; +while (index--) +{ + try + { + new ActiveXObject(MSXML_XMLHTTP_OBJECTS[index]); + break; + } + catch (anException) + { + } +} +var MSXML_XMLHTTP = MSXML_XMLHTTP_OBJECTS[index]; +delete index; +delete MSXML_XMLHTTP_OBJECTS; +var objj_request_xmlhttp = function() +{ + return new ActiveXObject(MSXML_XMLHTTP); +} +} +var OBJJUnrecognizedFormatException = "OBJJUnrecognizedFormatException"; +var STATIC_MAGIC_NUMBER = "@STATIC", + MARKER_PATH = "p", + MARKER_CODE = "c", + MARKER_BUNDLE = "b", + MARKER_TEXT = "t", + MARKER_IMPORT_STD = 'I', + MARKER_IMPORT_LOCAL = 'i'; +var STATIC_EXTENSION = "sj"; +function objj_decompile(aString, bundle) +{ + var stream = new objj_markedStream(aString); + if (stream.magicNumber() != STATIC_MAGIC_NUMBER) + objj_exception_throw(new objj_exception(OBJJUnrecognizedFormatException, "*** Could not recognize executable code format.")); + if (stream.version() != 1.0) + objj_exception_throw(new objj_exception(OBJJUnrecognizedFormatException, "*** Could not recognize executable code format.")); + var file = NULL, + files = [], + marker; + while (marker = stream.getMarker()) + { + var text = stream.getString(); + switch (marker) + { + case MARKER_PATH: if (file && file.contents && file.path === file.bundle.path) + file.bundle.info = CPPropertyListCreateWithData({string:file.contents}); + file = new objj_file(); + file.path = (bundle.path).substr(0, (bundle.path).lastIndexOf('/') + 1) + text; + file.bundle = bundle; + file.fragments = []; + files.push(file); + objj_files[file.path] = file; + break; + case MARKER_BUNDLE: var bundlePath = (bundle.path).substr(0, (bundle.path).lastIndexOf('/') + 1) + '/' + text; + file.bundle = objj_getBundleWithPath(bundlePath); + if (!file.bundle) + { + file.bundle = new objj_bundle(); + file.bundle.path = bundlePath; + objj_setBundleForPath(file.bundle, bundlePath); + } + break; + case MARKER_TEXT: file.contents = text; + break; + case MARKER_CODE: file.fragments.push(fragment_create_code(text, bundle, file)); + break; + case MARKER_IMPORT_STD: file.fragments.push(fragment_create_file(text, bundle, NO, file)); + break; + case MARKER_IMPORT_LOCAL: file.fragments.push(fragment_create_file(text, bundle, YES, file)); + break; + } + } + if (file && file.contents && file.path === file.bundle.path) + file.bundle.info = CPPropertyListCreateWithData({string:file.contents}); + return files; +} +var OBJJ_EXCEPTION_OUTPUT_STREAM = NULL; +function objj_exception(aName, aReason, aUserInfo) +{ + this.name = aName; + this.reason = aReason; + this.userInfo = aUserInfo; + this.__address = (OBJECT_COUNT++); +} +objj_exception.prototype.toString = function() +{ + return this.reason; +} +function objj_exception_throw(anException) +{ + throw anException; +} +function objj_exception_report(anException, aSourceFile) +{ + objj_fprintf(OBJJ_EXCEPTION_OUTPUT_STREAM, aSourceFile.path + "\n" + anException); + throw anException; +} +function objj_exception_setOutputStream(aStream) +{ + OBJJ_EXCEPTION_OUTPUT_STREAM = aStream; +} +objj_exception_setOutputStream(function(aString) { }); +var OBJJ_PREPROCESSOR_DEBUG_SYMBOLS = 1 << 0; +function objj_preprocess( aString, aBundle, aSourceFile, flags) +{ + try + { + return new objj_preprocessor(aString.replace(/^#[^\n]+\n/, "\n"), aSourceFile, aBundle, flags).fragments(); + } + catch (anException) + { + objj_exception_report(anException, aSourceFile); + } + return []; +} +var OBJJParseException = "OBJJParseException", + OBJJClassNotFoundException = "OBJJClassNotFoundException"; +var TOKEN_ACCESSORS = "accessors", + TOKEN_CLASS = "class", + TOKEN_END = "end", + TOKEN_FUNCTION = "function", + TOKEN_IMPLEMENTATION = "implementation", + TOKEN_IMPORT = "import", + TOKEN_NEW = "new", + TOKEN_SELECTOR = "selector", + TOKEN_SUPER = "super", + TOKEN_EQUAL = '=', + TOKEN_PLUS = '+', + TOKEN_MINUS = '-', + TOKEN_COLON = ':', + TOKEN_COMMA = ',', + TOKEN_PERIOD = '.', + TOKEN_ASTERISK = '*', + TOKEN_SEMICOLON = ';', + TOKEN_LESS_THAN = '<', + TOKEN_OPEN_BRACE = '{', + TOKEN_CLOSE_BRACE = '}', + TOKEN_GREATER_THAN = '>', + TOKEN_OPEN_BRACKET = '[', + TOKEN_DOUBLE_QUOTE = '"', + TOKEN_PREPROCESSOR = '@', + TOKEN_CLOSE_BRACKET = ']', + TOKEN_QUESTION_MARK = '?', + TOKEN_OPEN_PARENTHESIS = '(', + TOKEN_CLOSE_PARENTHESIS = ')', + TOKEN_WHITESPACE = /^(?:(?:\s+$)|(?:\/(?:\/|\*)))/, + TOKEN_NUMBER = /^[+-]?\d+(([.]\d+)*([eE][+-]?\d+))?$/, + TOKEN_IDENTIFIER = /^[a-zA-Z_$](\w|$)*$/; +var SUPER_CLASSES = new objj_dictionary(); +var OBJJ_CURRENT_BUNDLE = NULL; +var objj_lexer = function(aString) +{ + this._index = -1; + this._tokens = (aString + '\n').match(/\/\/.*(\r|\n)?|\/\*(?:.|\n|\r)*?\*\/|\w+\b|[+-]?\d+(([.]\d+)*([eE][+-]?\d+))?|"[^"\\]*(\\[\s\S][^"\\]*)*"|'[^'\\]*(\\[\s\S][^'\\]*)*'|\s+|./g); + this._context = []; + return this; +} +objj_lexer.prototype.push = function() +{ + this._context.push(this._index); +} +objj_lexer.prototype.pop = function() +{ + this._index = this._context.pop(); +} +objj_lexer.prototype.peak = function(shouldSkipWhitespace) +{ + if (shouldSkipWhitespace) + { + this.push(); + var token = this.skip_whitespace(); + this.pop(); + return token; + } + return this._tokens[this._index + 1]; +} +objj_lexer.prototype.next = function() +{ + return this._tokens[++this._index]; +} +objj_lexer.prototype.previous = function() +{ + return this._tokens[--this._index]; +} +objj_lexer.prototype.last = function() +{ + if (this._index < 0) + return NULL; + return this._tokens[this._index - 1]; +} +objj_lexer.prototype.skip_whitespace= function(shouldMoveBackwards) +{ + var token; + if (shouldMoveBackwards) + while((token = this.previous()) && TOKEN_WHITESPACE.test(token)) ; + else + while((token = this.next()) && TOKEN_WHITESPACE.test(token)) ; + return token; +} +var objj_stringBuffer = function() +{ + this.atoms = []; +} +objj_stringBuffer.prototype.toString = function() +{ + return this.atoms.join(""); +} +objj_stringBuffer.prototype.clear = function() +{ + this.atoms = []; +} +objj_stringBuffer.prototype.isEmpty = function() +{ + return (this.atoms.length === 0); +} +var objj_preprocessor = function(aString, aSourceFile, aBundle, flags) +{ + this._currentClass = ""; + this._currentSuperClass = ""; + this._file = aSourceFile; + this._fragments = []; + this._preprocessed = new objj_stringBuffer(); + this._tokens = new objj_lexer(aString); + this._flags = flags; + this._bundle = aBundle; + this.preprocess(this._tokens, this._preprocessed); + this.fragment(); +} +objj_preprocessor.prototype.fragments = function() +{ + return this._fragments; +} +objj_preprocessor.prototype.accessors = function(tokens) +{ + var token = tokens.skip_whitespace(), + attributes = {}; + if (token != TOKEN_OPEN_PARENTHESIS) + { + tokens.previous(); + return attributes; + } + while ((token = tokens.skip_whitespace()) != TOKEN_CLOSE_PARENTHESIS) + { + var name = token, + value = true; + if (!/^\w+$/.test(name)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** @property attribute name not valid.")); + if ((token = tokens.skip_whitespace()) == TOKEN_EQUAL) + { + value = tokens.skip_whitespace(); + if (!/^\w+$/.test(value)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** @property attribute value not valid.")); + if (name == "setter") + { + if ((token = tokens.next()) != TOKEN_COLON) + objj_exception_throw(new objj_exception(OBJJParseException, "*** @property setter attribute requires argument with \":\" at end of selector name.")); + value += ":"; + } + token = tokens.skip_whitespace(); + } + attributes[name] = value; + if (token == TOKEN_CLOSE_PARENTHESIS) + break; + if (token != TOKEN_COMMA) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected ',' or ')' in @property attribute list.")); + } + return attributes; +} +objj_preprocessor.prototype.brackets = function( tokens, aStringBuffer) +{ + var tuples = []; + while (this.preprocess(tokens, NULL, NULL, NULL, tuples[tuples.length] = [])) ; + if (tuples[0].length === 1) + { + aStringBuffer.atoms[aStringBuffer.atoms.length] = '['; + aStringBuffer.atoms[aStringBuffer.atoms.length] = tuples[0][0]; + aStringBuffer.atoms[aStringBuffer.atoms.length] = ']'; + } + else + { + var selector = new objj_stringBuffer(); + if (tuples[0][0].atoms[0] == TOKEN_SUPER) + { + aStringBuffer.atoms[aStringBuffer.atoms.length] = "objj_msgSendSuper("; + aStringBuffer.atoms[aStringBuffer.atoms.length] = "{ receiver:self, super_class:" + this._currentSuperClass + " }"; + } + else + { + aStringBuffer.atoms[aStringBuffer.atoms.length] = "objj_msgSend("; + aStringBuffer.atoms[aStringBuffer.atoms.length] = tuples[0][0]; + } + selector.atoms[selector.atoms.length] = tuples[0][1]; + var index = 1, + count = tuples.length, + marg_list = new objj_stringBuffer(); + for(; index < count; ++index) + { + var pair = tuples[index]; + selector.atoms[selector.atoms.length] = pair[1] + marg_list.atoms[marg_list.atoms.length] = ", " + pair[0]; + } + aStringBuffer.atoms[aStringBuffer.atoms.length] = ", \""; + aStringBuffer.atoms[aStringBuffer.atoms.length] = selector; + aStringBuffer.atoms[aStringBuffer.atoms.length] = '\"'; + aStringBuffer.atoms[aStringBuffer.atoms.length] = marg_list; + aStringBuffer.atoms[aStringBuffer.atoms.length] = ')'; + } +} +objj_preprocessor.prototype.directive = function(tokens, aStringBuffer, allowedDirectivesFlags) +{ + var buffer = aStringBuffer ? aStringBuffer : new objj_stringBuffer(), + token = tokens.next(); + if (token.charAt(0) == TOKEN_DOUBLE_QUOTE) + buffer.atoms[buffer.atoms.length] = token; + else if (token == TOKEN_CLASS) + { + tokens.skip_whitespace(); + return; + } + else if (token == TOKEN_IMPLEMENTATION) + this.implementation(tokens, buffer); + else if (token == TOKEN_IMPORT) + this._import(tokens); + else if (token == TOKEN_SELECTOR) + this.selector(tokens, buffer); + else if (token == TOKEN_ACCESSORS) + return this.accessors(tokens); + if (!aStringBuffer) + return buffer; +} +objj_preprocessor.prototype.fragment = function() +{ + var preprocessed = this._preprocessed.toString(); + if ((/[^\s]/).test(preprocessed)) + this._fragments.push(fragment_create_code(preprocessed, this._bundle, this._file)); + this._preprocessed.clear(); +} +objj_preprocessor.prototype.implementation = function(tokens, aStringBuffer) +{ + var buffer = aStringBuffer, + token = "", + category = NO, + class_name = tokens.skip_whitespace(), + superclass_name = "Nil", + instance_methods = new objj_stringBuffer(), + class_methods = new objj_stringBuffer(); + if (!(/^\w/).test(class_name)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected class name, found \"" + class_name + "\".")); + this._currentSuperClass = NULL; + this._currentClass = class_name; + if((token = tokens.skip_whitespace()) == TOKEN_OPEN_PARENTHESIS) + { + token = tokens.skip_whitespace(); + if (token == TOKEN_CLOSE_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Can't Have Empty Category Name for class \"" + class_name + "\".")); + if (tokens.skip_whitespace() != TOKEN_CLOSE_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Improper Category Definition for class \"" + class_name + "\".")); + buffer.atoms[buffer.atoms.length] = "{\nvar the_class = objj_getClass(\"" + class_name + "\")\n"; + buffer.atoms[buffer.atoms.length] = "if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, \"*** Could not find definition for class \\\"" + class_name + "\\\"\"));\n"; + buffer.atoms[buffer.atoms.length] = "var meta_class = the_class.isa;"; + var superclass_name = ((SUPER_CLASSES)._buckets[class_name]); + if (!superclass_name) + this._currentSuperClass = "objj_getClass(\"" + class_name + "\").super_class"; + else + this._currentSuperClass = "objj_getClass(\"" + superclass_name + "\")"; + } + else + { + if(token == TOKEN_COLON) + { + token = tokens.skip_whitespace(); + if (!TOKEN_IDENTIFIER.test(token)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected class name, found \"" + token + "\".")); + superclass_name = token; + this._currentSuperClass = "objj_getClass(\"" + superclass_name + "\")"; + { if ((SUPER_CLASSES)._buckets[class_name] == NULL) { (SUPER_CLASSES)._keys.push(class_name); ++(SUPER_CLASSES).count; } if (((SUPER_CLASSES)._buckets[class_name] = superclass_name) == NULL) --(SUPER_CLASSES).count;}; + token = tokens.skip_whitespace(); + } + buffer.atoms[buffer.atoms.length] = "{var the_class = objj_allocateClassPair(" + superclass_name + ", \"" + class_name + "\"),\nmeta_class = the_class.isa;"; + if (token == TOKEN_OPEN_BRACE) + { + var ivar_count = 0, + declaration = [], + attributes, + accessors = {}; + while((token = tokens.skip_whitespace()) && token != TOKEN_CLOSE_BRACE) + { + if (token == TOKEN_PREPROCESSOR) + attributes = this.directive(tokens); + else if (token == TOKEN_SEMICOLON) + { + if (ivar_count++ == 0) + buffer.atoms[buffer.atoms.length] = "class_addIvars(the_class, ["; + else + buffer.atoms[buffer.atoms.length] = ", "; + var name = declaration[declaration.length - 1]; + buffer.atoms[buffer.atoms.length] = "new objj_ivar(\"" + name + "\")"; + declaration = []; + if (attributes) + { + accessors[name] = attributes; + attributes = NULL; + } + } + else + declaration.push(token); + } + if (declaration.length) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected ';' in ivar declaration, found '}'.")); + if (ivar_count) + buffer.atoms[buffer.atoms.length] = "]);\n"; + if (!token) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected '}'")); + for (ivar_name in accessors) + { + var accessor = accessors[ivar_name], + property = accessor["property"] || ivar_name; + var getterName = accessor["getter"] || property, + getterCode = "(id)" + getterName + "\n{\nreturn " + ivar_name + ";\n}"; + if (instance_methods.atoms.length !== 0) + instance_methods.atoms[instance_methods.atoms.length] = ",\n"; + instance_methods.atoms[instance_methods.atoms.length] = this.method(new objj_lexer(getterCode)); + if (accessor["readonly"]) + continue; + var setterName = accessor["setter"]; + if (!setterName) + { + var start = property.charAt(0) == '_' ? 1 : 0; + setterName = (start ? "_" : "") + "set" + property.substr(start, 1).toUpperCase() + property.substring(start + 1) + ":"; + } + var setterCode = "(void)" + setterName + "(id)newValue\n{\n"; + if (accessor["copy"]) + setterCode += "if (" + ivar_name + " !== newValue)\n" + ivar_name + " = [newValue copy];\n}"; + else + setterCode += ivar_name + " = newValue;\n}"; + if (instance_methods.atoms.length !== 0) + instance_methods.atoms[instance_methods.atoms.length] = ",\n"; + instance_methods.atoms[instance_methods.atoms.length] = this.method(new objj_lexer(setterCode)); + } + } + else + tokens.previous(); + buffer.atoms[buffer.atoms.length] = "objj_registerClassPair(the_class);\n"; + buffer.atoms[buffer.atoms.length] = "objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path));\n"; + } + while ((token = tokens.skip_whitespace())) + { + if (token == TOKEN_PLUS) + { + if (class_methods.atoms.length !== 0) + class_methods.atoms[class_methods.atoms.length] = ", "; + class_methods.atoms[class_methods.atoms.length] = this.method(tokens); + } + else if (token == TOKEN_MINUS) + { + if (instance_methods.atoms.length !== 0) + instance_methods.atoms[instance_methods.atoms.length] = ", "; + instance_methods.atoms[instance_methods.atoms.length] = this.method(tokens); + } + else if (token == TOKEN_PREPROCESSOR) + { + if ((token = tokens.next()) == TOKEN_END) + break; + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected \"@end\", found \"@" + token + "\".")); + } + } + if (instance_methods.atoms.length !== 0) + { + buffer.atoms[buffer.atoms.length] = "class_addMethods(the_class, ["; + buffer.atoms[buffer.atoms.length] = instance_methods; + buffer.atoms[buffer.atoms.length] = "]);\n"; + } + if (class_methods.atoms.length !== 0) + { + buffer.atoms[buffer.atoms.length] = "class_addMethods(meta_class, ["; + buffer.atoms[buffer.atoms.length] = class_methods; + buffer.atoms[buffer.atoms.length] = "]);\n"; + } + buffer.atoms[buffer.atoms.length] = '}'; +} +objj_preprocessor.prototype._import = function(tokens) +{ + this.fragment(); + var path = "", + token = tokens.skip_whitespace(), + isLocal = (token != TOKEN_LESS_THAN); + if (token == TOKEN_LESS_THAN) + { + while((token = tokens.next()) && token != TOKEN_GREATER_THAN) + path += token; + if(!token) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Unterminated import statement.")); + } + else if (token.charAt(0) == TOKEN_DOUBLE_QUOTE) + path = token.substr(1, token.length - 2); + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expecting '<' or '\"', found \"" + token + "\".")); + this._fragments.push(fragment_create_file(path, NULL, isLocal, this._file)); +} +objj_preprocessor.prototype.method = function(tokens) +{ + var buffer = new objj_stringBuffer(), + token, + selector = "", + parameters = []; + while((token = tokens.skip_whitespace()) && token != TOKEN_OPEN_BRACE) + { + if (token == TOKEN_COLON) + { + selector += token; + token = tokens.skip_whitespace(); + if (token == TOKEN_OPEN_PARENTHESIS) + { + while((token = tokens.skip_whitespace()) && token != TOKEN_CLOSE_PARENTHESIS) ; + token = tokens.skip_whitespace(); + } + parameters[parameters.length] = token; + } + else if (token == TOKEN_OPEN_PARENTHESIS) + while((token = tokens.skip_whitespace()) && token != TOKEN_CLOSE_PARENTHESIS) ; + else if (token == TOKEN_COMMA) + { + if ((token = tokens.skip_whitespace()) != TOKEN_PERIOD || tokens.next() != TOKEN_PERIOD || tokens.next() != TOKEN_PERIOD) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Argument list expected after ','.")); + } + else + selector += token; + } + var index = 0, + count = parameters.length; + buffer.atoms[buffer.atoms.length] = "new objj_method(sel_getUid(\""; + buffer.atoms[buffer.atoms.length] = selector; + buffer.atoms[buffer.atoms.length] = "\"), function"; + if (this._flags & OBJJ_PREPROCESSOR_DEBUG_SYMBOLS) + buffer.atoms[buffer.atoms.length] = " $" + this._currentClass + "__" + selector.replace(/:/g, "_"); + buffer.atoms[buffer.atoms.length] = "(self, _cmd"; + for(; index < count; ++index) + { + buffer.atoms[buffer.atoms.length] = ", "; + buffer.atoms[buffer.atoms.length] = parameters[index]; + } + buffer.atoms[buffer.atoms.length] = ")\n{ with(self)\n{"; + buffer.atoms[buffer.atoms.length] = this.preprocess(tokens, NULL, TOKEN_CLOSE_BRACE, TOKEN_OPEN_BRACE); + buffer.atoms[buffer.atoms.length] = "}\n})"; + return buffer; +} +objj_preprocessor.prototype.preprocess = function(tokens, aStringBuffer, terminator, instigator, tuple) +{ + var buffer = aStringBuffer ? aStringBuffer : new objj_stringBuffer(), + count = 0, + token = ""; + if (tuple) + { + tuple[0] = buffer; + var bracket = false, + closures = [0, 0, 0]; + } + while ((token = tokens.next()) && ((token != terminator) || count)) + { + if (tuple) + { + if (token === TOKEN_QUESTION_MARK) + ++closures[2]; + else if (token === TOKEN_OPEN_BRACE) + ++closures[0]; + else if (token === TOKEN_CLOSE_BRACE) + --closures[0]; + else if (token === TOKEN_OPEN_PARENTHESIS) + ++closures[1]; + else if (token === TOKEN_CLOSE_PARENTHESIS) + --closures[1]; + else if ((token === TOKEN_COLON && closures[2]-- === 0 || + (bracket = (token === TOKEN_CLOSE_BRACKET))) && + closures[0] === 0 && closures[1] === 0) + { + tokens.push(); + var label = bracket ? tokens.skip_whitespace(true) : tokens.previous(), + isEmptyLabel = TOKEN_WHITESPACE.test(label); + if (isEmptyLabel || TOKEN_IDENTIFIER.test(label) && TOKEN_WHITESPACE.test(tokens.previous())) + { + tokens.push(); + var last = tokens.skip_whitespace(true), + operatorCheck = true, + isDoubleOperator = false; + if (last === '+' || last === '-'){ + if (tokens.previous() !== last) + operatorCheck = false; + else + { + last = tokens.skip_whitespace(true); + isDoubleOperator = true; + }} + tokens.pop(); + tokens.pop(); + if (operatorCheck && ( + (!isDoubleOperator && (last === TOKEN_CLOSE_BRACE)) || + last === TOKEN_CLOSE_PARENTHESIS || last === TOKEN_CLOSE_BRACKET || + last === TOKEN_PERIOD || TOKEN_NUMBER.test(last) || + last.charAt(last.length - 1) === '\"' || last.charAt(last.length - 1) === '\'' || + TOKEN_IDENTIFIER.test(last) && !/^(new|return|case|var)$/.test(last))) + { + if (isEmptyLabel) + tuple[1] = ':'; + else + { + tuple[1] = label; + if (!bracket) + tuple[1] += ':'; + var count = buffer.atoms.length; + while (buffer.atoms[count--] !== label) ; + buffer.atoms.length = count; + } + return !bracket; + } + if (bracket) + return NO; + } + tokens.pop(); + if (bracket) + return NO; + } + closures[2] = MAX(closures[2], 0); + } + if (instigator) + { + if (token == instigator) + ++count; + else if (token == terminator) + --count; + } + if(token == TOKEN_IMPORT) + { + objj_fprintf(warning_stream, this._file.path + ": import keyword is deprecated, use @import instead."); + this._import(tokens); + } + else if (token === TOKEN_FUNCTION) + { + var accumulator = ""; + while((token = tokens.next()) && token != TOKEN_OPEN_PARENTHESIS && !(/^\w/).test(token)) + accumulator += token; + if (token === TOKEN_OPEN_PARENTHESIS) + { + buffer.atoms[buffer.atoms.length] = "function" + accumulator + '('; + if (tuple) + ++closures[1]; + } + else + { + buffer.atoms[buffer.atoms.length] = token + "= function"; + } + } + else if (token == TOKEN_PREPROCESSOR) + this.directive(tokens, buffer); + else if (token == TOKEN_OPEN_BRACKET) + this.brackets(tokens, buffer); + else + buffer.atoms[buffer.atoms.length] = token; + } + if (tuple) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected ']' - Unterminated message send or array.")); + if (!aStringBuffer) + return buffer; +} +objj_preprocessor.prototype.selector = function(tokens, aStringBuffer) +{ + var buffer = aStringBuffer ? aStringBuffer : new objj_stringBuffer(); + buffer.atoms[buffer.atoms.length] = "sel_getUid(\""; + if (tokens.skip_whitespace() != TOKEN_OPEN_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected '('")); + var selector = tokens.skip_whitespace(); + if (selector == TOKEN_CLOSE_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Unexpected ')', can't have empty @selector()")); + aStringBuffer.atoms[aStringBuffer.atoms.length] = selector; + var token, + starting = true; + while ((token = tokens.next()) && token != TOKEN_CLOSE_PARENTHESIS) + { + if (starting && /^\d+$/.test(token) || !(/^(\w|$|\:)/.test(token))) + { + if (!(/\S/).test(token)) + if (tokens.skip_whitespace() == TOKEN_CLOSE_PARENTHESIS) + break; + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Unexpected whitespace in @selector().")); + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Illegal character '" + token + "' in @selector().")); + } + buffer.atoms[buffer.atoms.length] = token; + starting = (token == TOKEN_COLON); + } + buffer.atoms[buffer.atoms.length] = "\")"; + if (!aStringBuffer) + return buffer; +} +var objj_included_files = { }; +var FRAGMENT_CODE = 1, + FRAGMENT_FILE = 1 << 2, + FRAGMENT_LOCAL = 1 << 3; +function objj_fragment() +{ + this.info = NULL; + this.type = 0; + this.context = NULL; + this.bundle = NULL; + this.file = NULL; +} +function objj_context() +{ + this.fragments = []; + this.scheduled = NO; + this.blocked = NO; +} +objj_fragment.prototype.toMarkedString = function() +{ + return (this.type & FRAGMENT_FILE) ? ((this.type & FRAGMENT_LOCAL) ? MARKER_IMPORT_LOCAL : MARKER_IMPORT_STD) + ';' + this.info.length + ';' + this.info : + MARKER_CODE + ';' + this.info.length + ';' + this.info; +} +function fragment_create_code(aCode, aBundle, aFile) +{ + var fragment = new objj_fragment(); + fragment.type = (FRAGMENT_CODE); + fragment.info = (aCode); + fragment.bundle = aBundle; + fragment.file = aFile; + return fragment; +} +function fragment_create_file(aPath, aBundle, isLocal, aFile) +{ + var fragment = new objj_fragment(); + fragment.type = (FRAGMENT_FILE | (FRAGMENT_LOCAL * isLocal)); + fragment.info = aPath; + fragment.bundle = aBundle; + fragment.file = aFile; + return fragment; +} +objj_context.prototype.evaluate = function() +{ + this.scheduled = NO; + if (this.blocked) + return this.schedule(); + var sleep = NO, + start = new Date(), + fragments = this.fragments; + while (!sleep && fragments.length) + { + var fragment = fragments.pop(); + if ((fragment.type & FRAGMENT_FILE)) + sleep = fragment_evaluate_file(fragment); + else + sleep = fragment_evaluate_code(fragment); + sleep = sleep || ((new Date() - start) > 3000); + } + if (sleep) + this.schedule(); + else if (this.didCompleteCallback) { + this.didCompleteCallback(this); + } +} +objj_context.prototype.schedule = function() +{ + if (this.scheduled) + return; + this.scheduled = YES; + var context = this; + window.setNativeTimeout(function () { context.evaluate(); }, 0); +} +objj_context.prototype.pushFragment = function(aFragment) +{ + aFragment.context = this; + this.fragments.push(aFragment); +} +function fragment_evaluate_code(aFragment) +{ + var compiled; + OBJJ_CURRENT_BUNDLE = aFragment.bundle; + try + { + compiled = new Function(aFragment.info); + compiled.displayName = aFragment.file.path; + } + catch(anException) + { + objj_exception_report(anException, aFragment.file); + } + try + { + compiled(); + } + catch(anException) + { + objj_exception_report(anException, aFragment.file); + } + return NO; +} +function fragment_evaluate_file(aFragment) +{ + var context = aFragment.context, + requiresSleep = YES; + context.blocked = YES; + objj_request_file(aFragment.info, (aFragment.type & FRAGMENT_LOCAL), function(aFile) + { + requiresSleep = NO; + context.blocked = NO; + if (aFile == OBJJ_NO_FILE) + objj_alert("uh oh!"); + if (objj_included_files[aFile.path]) + return; + objj_included_files[aFile.path] = YES; + if (!aFile.fragments) + aFile.fragments = objj_preprocess(aFile.contents, aFile.bundle, aFile, OBJJ_PREPROCESSOR_DEBUG_SYMBOLS); + var fragments = aFile.fragments, + count = fragments.length, + directory = aFile.path.substr(0, aFile.path.lastIndexOf('/') + 1); + while (count--) + { + var fragment = fragments[count]; + if ((fragment.type & FRAGMENT_FILE)) + { + if ((fragment.type & FRAGMENT_LOCAL)) + fragment.info = directory + fragment.info; + objj_request_file(fragment.info, (fragment.type & FRAGMENT_LOCAL), NULL); + } + context.pushFragment(fragment); + } + }); + return requiresSleep; +} +function objj_import( pathOrPaths, isLocal, didCompleteCallback) +{ + var context = new objj_context(), + paths = pathOrPaths; + if (typeof paths === "string") + paths = [paths]; + var index = 0, + count = paths.length; + for (; index < count; ++index) + context.pushFragment(fragment_create_file(paths[index], new objj_bundle(""), isLocal, NULL)); + context.didCompleteCallback = didCompleteCallback; + context.evaluate(); +} +function objj_backtrace_format(aReceiver, aSelector) +{ + return "[<" + (((aReceiver.info & (CLS_META))) ? aReceiver : aReceiver.isa).name + " " + (typeof sprintf == "function" ? sprintf("%#08x", aReceiver.__address) : aReceiver.__address.toString(16)) + "> " + aSelector + "]"; +} +function objj_msgSend_Backtrace( aReceiver, aSelector) +{ + if (aReceiver == nil) + return nil; + objj_debug_backtrace.push(objj_backtrace_format(aReceiver, aSelector)); + try + { + var result = class_getMethodImplementation(aReceiver.isa, aSelector).apply(aReceiver, arguments); + } + catch (anException) + { + CPLog.error("Exception " + anException + " in " + objj_backtrace_format(aReceiver, aSelector)); + objj_debug_print_backtrace(); + } + objj_debug_backtrace.pop(); + return result; +} +function objj_msgSendSuper_Backtrace( aSuper, aSelector) +{ + objj_debug_backtrace.push(objj_backtrace_format(aSuper.receiver, aSelector)); + var super_class = aSuper.super_class; + arguments[0] = aSuper.receiver; + try + { + var result = class_getMethodImplementation(super_class, aSelector).apply(aSuper.receiver, arguments); + } + catch (anException) + { + CPLog.error("Exception " + anException + " in " + objj_backtrace_format(aSuper.receiver, aSelector)); + objj_debug_print_backtrace(); + } + objj_debug_backtrace.pop(); + return result; +} +function objj_msgSend_Profile( aReceiver, aSelector) +{ + if (aReceiver == nil) + return nil; + var profileRecord = { + parent : objj_debug_profile, + receiver : (((aReceiver.info & (CLS_META))) ? aReceiver : aReceiver.isa).name, + selector : aSelector, + calls : [] + } + objj_debug_profile.calls.push(profileRecord); + objj_debug_profile = profileRecord; + profileRecord.start = new Date(); + var result = class_getMethodImplementation(aReceiver.isa, aSelector).apply(aReceiver, arguments); + profileRecord.end = new Date(); + objj_debug_profile = profileRecord.parent; + return result; +} +function objj_msgSendSuper_Profile( aSuper, aSelector) +{ + var profileRecord = { + parent : objj_debug_profile, + receiver : (((aReceiver.info & (CLS_META))) ? aReceiver : aReceiver.isa).name, + selector : aSelector, + calls : [] + } + objj_debug_profile.calls.push(profileRecord); + objj_debug_profile = profileRecord; + profileRecord.start = new Date(); + var super_class = aSuper.super_class; + arguments[0] = aSuper.receiver; + var result = class_getMethodImplementation(super_class, aSelector).apply(aSuper.receiver, arguments); + profileRecord.end = new Date(); + objj_debug_profile = profileRecord.parent; + return result; +} +var objj_msgSend_Standard = objj_msgSend, + objj_msgSendSuper_Standard = objj_msgSendSuper; +var objj_debug_backtrace; +function objj_backtrace_set_enabled(enabled) +{ + if (enabled) + { + objj_debug_backtrace = []; + objj_msgSend = objj_msgSend_Backtrace; + objj_msgSendSuper = objj_msgSendSuper_Backtrace; + } + else + { + objj_msgSend = objj_msgSend_Standard; + objj_msgSendSuper = objj_msgSendSuper_Standard; + } +} +function objj_debug_print_backtrace() +{ + print(objj_debug_backtrace_string()); +} +function objj_debug_backtrace_string() +{ + return objj_debug_backtrace ? objj_debug_backtrace.join("\n") : ""; +} +var objj_debug_profile = null, + objj_currently_profiling = false, + objj_profile_cleanup; +function objj_profile(title) +{ + if (objj_currently_profiling) + return; + var objj_msgSend_profile_saved = objj_msgSend, + objj_msgSendSuper_profile_saved = objj_msgSendSuper; + objj_msgSend = objj_msgSend_Profile; + objj_msgSendSuper = objj_msgSendSuper_Profile; + var root = { calls: [] }; + objj_debug_profile = root; + var context = { + start : new Date(), + title : title, + profile : root + }; + objj_profile_cleanup = function() { + objj_msgSend = objj_msgSend_profile_saved; + objj_msgSendSuper = objj_msgSendSuper_profile_saved; + context.end = new Date(); + return context; + } + objj_currently_profiling = true; +} +function objj_profileEnd() +{ + if (!objj_currently_profiling) + return; + objj_debug_profile = null; + objj_currently_profiling = false; + return objj_profile_cleanup(); +} +if (window.OBJJ_MAIN_FILE) + objj_import(OBJJ_MAIN_FILE, YES, function() { main(); }); diff --git a/src/main/webapp/Frameworks/Objective-J/rhino.platform/Objective-J.js b/src/main/webapp/Frameworks/Objective-J/rhino.platform/Objective-J.js new file mode 100644 index 0000000..1fbe216 --- /dev/null +++ b/src/main/webapp/Frameworks/Objective-J/rhino.platform/Objective-J.js @@ -0,0 +1,2607 @@ +/* + * Objective-J.js + * Objective-J + * + * Created by Francisco Tolmasky. + * Copyright 2008, 280 North, Inc. + * + * 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 + */ + +var NO = false, + YES = true, + nil = null, + Nil = null, + NULL = null, + ABS = Math.abs, + ASIN = Math.asin, + ACOS = Math.acos, + ATAN = Math.atan, + ATAN2 = Math.atan2, + SIN = Math.sin, + COS = Math.cos, + TAN = Math.tan, + EXP = Math.exp, + POW = Math.pow, + CEIL = Math.ceil, + FLOOR = Math.floor, + ROUND = Math.round, + MIN = Math.min, + MAX = Math.max, + RAND = Math.random, + SQRT = Math.sqrt, + E = Math.E, + LN2 = Math.LN2, + LN10 = Math.LN10, + LOG2E = Math.LOG2E, + LOG10E = Math.LOG10E, + PI = Math.PI, + PI2 = Math.PI * 2.0, + PI_2 = Math.PI / 2.0, + SQRT1_2 = Math.SQRT1_2, + SQRT2 = Math.SQRT2; +window.setNativeTimeout = window.setTimeout; +window.clearNativeTimeout = window.clearTimeout; +window.setNativeInterval = window.setInterval; +window.clearNativeInterval = window.clearInterval; +var objj_continue_alerting = NO; +function objj_alert(aString) +{ + if (!objj_continue_alerting) + return; + objj_continue_alerting = confirm(aString + "\n\nClick cancel to prevent further alerts."); +} +function objj_fprintf(stream, string) +{ + stream(string); +} +function objj_printf(string) +{ + objj_fprintf(alert, string); +} +var warning_stream = function (aString) { Packages.java.lang.System.out.println(aString) }; +var _sprintfFormatRegex = new RegExp("([^%]+|%[\\+\\-\\ \\#0]*[0-9\\*]*(.[0-9\\*]+)?[hlL]?[cbBdieEfgGosuxXpn%@])", "g"); +var _sprintfTagRegex = new RegExp("(%)([\\+\\-\\ \\#0]*)([0-9\\*]*)((.[0-9\\*]+)?)([hlL]?)([cbBdieEfgGosuxXpn%@])"); +function sprintf(format) +{ + var format = arguments[0], + tokens = format.match(_sprintfFormatRegex), + index = 0, + result = "", + arg = 1; + for (var i = 0; i < tokens.length; i++) + { + var t = tokens[i]; + if (format.substring(index, index + t.length) != t) + { + return result; + } + index += t.length; + if (t.charAt(0) != "%") + { + result += t; + } + else + { + var subtokens = t.match(_sprintfTagRegex); + if (subtokens.length != 8 || subtokens[0] != t) + { + return result; + } + var percentSign = subtokens[1], + flags = subtokens[2], + widthString = subtokens[3], + precisionString = subtokens[4], + length = subtokens[6], + specifier = subtokens[7]; + var width = null; + if (widthString == "*") + width = arguments[arg++]; + else if (widthString != "") + width = Number(widthString); + var precision = null; + if (precisionString == ".*") + precision = arguments[arg++]; + else if (precisionString != "") + precision = Number(precisionString.substring(1)); + var leftJustify = (flags.indexOf("-") >= 0); + var padZeros = (flags.indexOf("0") >= 0); + var subresult = ""; + if (RegExp("[bBdiufeExXo]").test(specifier)) + { + var num = Number(arguments[arg++]); + var sign = ""; + if (num < 0) + { + sign = "-"; + } + else + { + if (flags.indexOf("+") >= 0) + sign = "+"; + else if (flags.indexOf(" ") >= 0) + sign = " "; + } + if (specifier == "d" || specifier == "i" || specifier == "u") + { + var number = String(Math.abs(Math.floor(num))); + subresult = _sprintf_justify(sign, "", number, "", width, leftJustify, padZeros) + } + if (specifier == "f") + { + var number = String((precision != null) ? Math.abs(num).toFixed(precision) : Math.abs(num)); + var suffix = (flags.indexOf("#") >= 0 && number.indexOf(".") < 0) ? "." : ""; + subresult = _sprintf_justify(sign, "", number, suffix, width, leftJustify, padZeros); + } + if (specifier == "e" || specifier == "E") + { + var number = String(Math.abs(num).toExponential(precision != null ? precision : 21)); + var suffix = (flags.indexOf("#") >= 0 && number.indexOf(".") < 0) ? "." : ""; + subresult = _sprintf_justify(sign, "", number, suffix, width, leftJustify, padZeros); + } + if (specifier == "x" || specifier == "X") + { + var number = String(Math.abs(num).toString(16)); + var prefix = (flags.indexOf("#") >= 0 && num != 0) ? "0x" : ""; + subresult = _sprintf_justify(sign, prefix, number, "", width, leftJustify, padZeros); + } + if (specifier == "b" || specifier == "B") + { + var number = String(Math.abs(num).toString(2)); + var prefix = (flags.indexOf("#") >= 0 && num != 0) ? "0b" : ""; + subresult = _sprintf_justify(sign, prefix, number, "", width, leftJustify, padZeros); + } + if (specifier == "o") + { + var number = String(Math.abs(num).toString(8)); + var prefix = (flags.indexOf("#") >= 0 && num != 0) ? "0" : ""; + subresult = _sprintf_justify(sign, prefix, number, "", width, leftJustify, padZeros); + } + if (RegExp("[A-Z]").test(specifier)) + subresult = subresult.toUpperCase(); + else + subresult = subresult.toLowerCase(); + } + else + { + var subresult = ""; + if (specifier == "%") + subresult = "%"; + else if (specifier == "c") + subresult = String(arguments[arg++]).charAt(0); + else if (specifier == "s" || specifier == "@") + subresult = String(arguments[arg++]); + else if (specifier == "p" || specifier == "n") + { + arg++; + subresult = ""; + } + subresult = _sprintf_justify("", "", subresult, "", width, leftJustify, false); + } + result += subresult; + } + } + return result; +} +var _sprintf_justify = function(sign, prefix, string, suffix, width, leftJustify, padZeros) +{ + var length = (sign.length + prefix.length + string.length + suffix.length); + if (leftJustify) + { + return sign + prefix + string + suffix + _sprintf_pad(width - length, " "); + } + else + { + if (padZeros) + return sign + prefix + _sprintf_pad(width - length, "0") + string + suffix; + else + return _sprintf_pad(width - length, " ") + sign + prefix + string + suffix; + } +} +var _sprintf_pad = function(n, ch) +{ + var result = ""; + for (var i = 0; i < n; i++) + result += ch; + return result; +} +var base64_map_to = [ + "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z", + "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", + "0","1","2","3","4","5","6","7","8","9","+","/","="], + base64_map_from = []; +for (var i = 0; i < base64_map_to.length; i++) + base64_map_from[base64_map_to[i].charCodeAt(0)] = i; +function base64_decode_to_array(input, strip) +{ + if (strip) + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + var pad = (input[input.length-1] == "=" ? 1 : 0) + (input[input.length-2] == "=" ? 1 : 0), + length = input.length, + output = []; + var i = 0; + while (i < length) + { + var bits = (base64_map_from[input.charCodeAt(i++)] << 18) | + (base64_map_from[input.charCodeAt(i++)] << 12) | + (base64_map_from[input.charCodeAt(i++)] << 6) | + (base64_map_from[input.charCodeAt(i++)]); + output.push((bits & 0xFF0000) >> 16); + output.push((bits & 0xFF00) >> 8); + output.push(bits & 0xFF); + } + if (pad > 0) + return output.slice(0, -1 * pad); + return output; +} +function base64_encode_array(input) +{ + var pad = (3 - (input.length % 3)) % 3, + length = input.length + pad, + output = []; + if (pad > 0) input.push(0); + if (pad > 1) input.push(0); + var i = 0; + while (i < length) + { + var bits = (input[i++] << 16) | + (input[i++] << 8) | + (input[i++]); + output.push(base64_map_to[(bits & 0xFC0000) >> 18]); + output.push(base64_map_to[(bits & 0x3F000) >> 12]); + output.push(base64_map_to[(bits & 0xFC0) >> 6]); + output.push(base64_map_to[bits & 0x3F]); + } + if (pad > 0) + { + output[output.length-1] = "="; + input.pop(); + } + if (pad > 1) + { + output[output.length-2] = "="; + input.pop(); + } + return output.join(""); +} +function base64_decode_to_string(input, strip) +{ + return bytes_to_string(base64_decode_to_array(input, strip)); +} +function bytes_to_string(bytes) +{ + return String.fromCharCode.apply(null, bytes); +} +function base64_encode_string(input) +{ + var temp = []; + for (var i = 0; i < input.length; i++) + temp.push(input.charCodeAt(i)); + return base64_encode_array(temp); +} +if (!this.JSON) { + JSON = {}; +} +(function () { + function f(n) { + return n < 10 ? '0' + n : n; + } + if (typeof Date.prototype.toJSON !== 'function') { + Date.prototype.toJSON = function (key) { + return this.getUTCFullYear() + '-' + + f(this.getUTCMonth() + 1) + '-' + + f(this.getUTCDate()) + 'T' + + f(this.getUTCHours()) + ':' + + f(this.getUTCMinutes()) + ':' + + f(this.getUTCSeconds()) + 'Z'; + }; + String.prototype.toJSON = + Number.prototype.toJSON = + Boolean.prototype.toJSON = function (key) { + return this.valueOf(); + }; + } + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, + gap, + indent, + meta = { + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '"' : '\\"', + '\\': '\\\\' + }, + rep; + function quote(string) { + escapable.lastIndex = 0; + return escapable.test(string) ? + '"' + string.replace(escapable, function (a) { + var c = meta[a]; + return typeof c === 'string' ? c : + '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }) + '"' : + '"' + string + '"'; + } + function str(key, holder) { + var i, + k, + v, + length, + mind = gap, + partial, + value = holder[key]; + if (value && typeof value === 'object' && + typeof value.toJSON === 'function') { + value = value.toJSON(key); + } + if (typeof rep === 'function') { + value = rep.call(holder, key, value); + } + switch (typeof value) { + case 'string': + return quote(value); + case 'number': + return isFinite(value) ? String(value) : 'null'; + case 'boolean': + case 'null': + return String(value); + case 'object': + if (!value) { + return 'null'; + } + gap += indent; + partial = []; + if (Object.prototype.toString.apply(value) === '[object Array]') { + length = value.length; + for (i = 0; i < length; i += 1) { + partial[i] = str(i, value) || 'null'; + } + v = partial.length === 0 ? '[]' : + gap ? '[\n' + gap + + partial.join(',\n' + gap) + '\n' + + mind + ']' : + '[' + partial.join(',') + ']'; + gap = mind; + return v; + } + if (rep && typeof rep === 'object') { + length = rep.length; + for (i = 0; i < length; i += 1) { + k = rep[i]; + if (typeof k === 'string') { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } else { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = str(k, value); + if (v) { + partial.push(quote(k) + (gap ? ': ' : ':') + v); + } + } + } + } + v = partial.length === 0 ? '{}' : + gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + + mind + '}' : '{' + partial.join(',') + '}'; + gap = mind; + return v; + } + } + if (typeof JSON.stringify !== 'function') { + JSON.stringify = function (value, replacer, space) { + var i; + gap = ''; + indent = ''; + if (typeof space === 'number') { + for (i = 0; i < space; i += 1) { + indent += ' '; + } + } else if (typeof space === 'string') { + indent = space; + } + rep = replacer; + if (replacer && typeof replacer !== 'function' && + (typeof replacer !== 'object' || + typeof replacer.length !== 'number')) { + throw new Error('JSON.stringify'); + } + return str('', {'': value}); + }; + } + if (typeof JSON.parse !== 'function') { + JSON.parse = function (text, reviver) { + var j; + function walk(holder, key) { + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + } + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + if (/^[\],:{}\s]*$/. +test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@'). +replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'). +replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + j = eval('(' + text + ')'); + return typeof reviver === 'function' ? + walk({'': j}, '') : j; + } + throw new SyntaxError('JSON.parse'); + }; + } +}()); +var CLS_CLASS = 0x1, + CLS_META = 0x2, + CLS_INITIALIZED = 0x4, + CLS_INITIALIZING = 0x8; +function objj_ivar( aName, aType) +{ + this.name = aName; + this.type = aType; +} +function objj_method( aName, anImplementation, types) +{ + this.name = aName; + this.method_imp = anImplementation; + this.types = types; +} +function objj_class() +{ + this.isa = NULL; + this.super_class = NULL; + this.sub_classes = []; + this.name = NULL; + this.info = 0; + this.ivars = []; + this.method_list = []; + this.method_hash = {}; + this.method_store = function() { }; + this.method_dtable = this.method_store.prototype; + this.allocator = function() { }; + this.__address = -1; +} +function objj_object() +{ + this.isa = NULL; + this.__address = -1; +} +var OBJECT_COUNT = 0; +function _objj_generateObjectHash() +{ + return OBJECT_COUNT++; +} +function class_getName( aClass) +{ + if (aClass == Nil) + return ""; + return aClass.name; +} +function class_isMetaClass( aClass) +{ + if (!aClass) + return NO; + return ((aClass.info & (CLS_META))); +} +function class_getSuperclass( aClass) +{ + if (aClass == Nil) + return Nil; + return aClass.super_class; +} +function class_setSuperclass( aClass, aSuperClass) +{ +} +function class_isMetaClass( aClass) +{ + return ((aClass.info & (CLS_META))); +} +function class_addIvar( aClass, aName, aType) +{ + var thePrototype = aClass.allocator.prototype; + if (typeof thePrototype[aName] != "undefined") + return NO; + aClass.ivars.push(new objj_ivar(aName, aType)); + thePrototype[aName] = NULL; + return YES; +} +function class_addIvars( aClass, ivars) +{ + var index = 0, + count = ivars.length, + thePrototype = aClass.allocator.prototype; + for (; index < count; ++index) + { + var ivar = ivars[index], + name = ivar.name; + if (typeof thePrototype[name] === "undefined") + { + aClass.ivars.push(ivar); + thePrototype[name] = NULL; + } + } +} +function class_copyIvarList( aClass) +{ + return aClass.ivars.slice(0); +} +function class_addMethod( aClass, aName, anImplementation, aType) +{ + if (aClass.method_hash[aName]) + return NO; + var method = new objj_method(aName, anImplementation, aType); + aClass.method_list.push(method); + aClass.method_dtable[aName] = method; + method.method_imp.displayName = (((aClass.info & (CLS_META))) ? '+' : '-') + " [" + class_getName(aClass) + ' ' + method_getName(method) + ']'; + if (!((aClass.info & (CLS_META))) && (((aClass.info & (CLS_META))) ? aClass : aClass.isa).isa === (((aClass.info & (CLS_META))) ? aClass : aClass.isa)) + class_addMethod((((aClass.info & (CLS_META))) ? aClass : aClass.isa), method); + return YES; +} +function class_addMethods( aClass, methods) +{ + var index = 0, + count = methods.length, + method_list = aClass.method_list, + method_dtable = aClass.method_dtable; + for (; index < count; ++index) + { + var method = methods[index]; + if (aClass.method_hash[method.name]) + continue; + method_list.push(method); + method_dtable[method.name] = method; + method.method_imp.displayName = (((aClass.info & (CLS_META))) ? '+' : '-') + " [" + class_getName(aClass) + ' ' + method_getName(method) + ']'; + } + if (!((aClass.info & (CLS_META))) && (((aClass.info & (CLS_META))) ? aClass : aClass.isa).isa === (((aClass.info & (CLS_META))) ? aClass : aClass.isa)) + class_addMethods((((aClass.info & (CLS_META))) ? aClass : aClass.isa), methods); +} +function class_getInstanceMethod( aClass, aSelector) +{ + if (!aClass || !aSelector) + return NULL; + var method = aClass.method_dtable[aSelector]; + return method ? method : NULL; +} +function class_getClassMethod( aClass, aSelector) +{ + if (!aClass || !aSelector) + return NULL; + var method = (((aClass.info & (CLS_META))) ? aClass : aClass.isa).method_dtable[aSelector]; + return method ? method : NULL; +} +function class_copyMethodList( aClass) +{ + return aClass.method_list.slice(0); +} +function class_replaceMethod( aClass, aSelector, aMethodImplementation) +{ + if (!aClass || !aSelector) + return NULL; + var method = aClass.method_dtable[aSelector], + method_imp = NULL; + if (method) + method_imp = method.method_imp; + method.method_imp = aMethodImplementation; + return method_imp; +} +var _class_initialize = function( aClass) +{ + var meta = (((aClass.info & (CLS_META))) ? aClass : aClass.isa); + if ((aClass.info & (CLS_META))) + aClass = objj_getClass(aClass.name); + if (aClass.super_class && !((((aClass.super_class.info & (CLS_META))) ? aClass.super_class : aClass.super_class.isa).info & (CLS_INITIALIZED))) + _class_initialize(aClass.super_class); + if (!(meta.info & (CLS_INITIALIZED)) && !(meta.info & (CLS_INITIALIZING))) + { + meta.info = (meta.info | (CLS_INITIALIZING)) & ~(0); + objj_msgSend(aClass, "initialize"); + meta.info = (meta.info | (CLS_INITIALIZED)) & ~(CLS_INITIALIZING); + } +} +var _objj_forward = new objj_method("forward", function(self, _cmd) +{ + return objj_msgSend(self, "forward::", _cmd, arguments); +}); +function class_getMethodImplementation( aClass, aSelector) +{ + if (!((((aClass.info & (CLS_META))) ? aClass : aClass.isa).info & (CLS_INITIALIZED))) _class_initialize(aClass); var method = aClass.method_dtable[aSelector]; if (!method) method = _objj_forward; var implementation = method.method_imp;; + return implementation; +} +var GLOBAL_NAMESPACE = window, + REGISTERED_CLASSES = {}; +function objj_allocateClassPair( superclass, aName) +{ + var classObject = new objj_class(), + metaClassObject = new objj_class(), + rootClassObject = classObject; + if (superclass) + { + rootClassObject = superclass; + while (rootClassObject.superclass) + rootClassObject = rootClassObject.superclass; + classObject.allocator.prototype = new superclass.allocator; + classObject.method_store.prototype = new superclass.method_store; + classObject.method_dtable = classObject.method_store.prototype; + metaClassObject.method_store.prototype = new superclass.isa.method_store; + metaClassObject.method_dtable = metaClassObject.method_store.prototype; + classObject.super_class = superclass; + metaClassObject.super_class = superclass.isa; + } + else + classObject.allocator.prototype = new objj_object(); + classObject.isa = metaClassObject; + classObject.name = aName; + classObject.info = CLS_CLASS; + classObject.__address = (OBJECT_COUNT++); + metaClassObject.isa = rootClassObject.isa; + metaClassObject.name = aName; + metaClassObject.info = CLS_META; + metaClassObject.__address = (OBJECT_COUNT++); + return classObject; +} +function objj_registerClassPair( aClass) +{ + GLOBAL_NAMESPACE[aClass.name] = aClass; + REGISTERED_CLASSES[aClass.name] = aClass; +} +function class_createInstance( aClass) +{ + if (!aClass) + objj_exception_throw(new objj_exception(OBJJNilClassException, "*** Attempting to create object with Nil class.")); + var object = new aClass.allocator; + object.__address = (OBJECT_COUNT++); + object.isa = aClass; + return object; +} +var prototype_bug = function() { } +prototype_bug.prototype.member = false; +with (new prototype_bug()) + member = true; +if (new prototype_bug().member) +{ +var fast_class_createInstance = class_createInstance; +class_createInstance = function( aClass) +{ + var object = fast_class_createInstance(aClass); + if (object) + { + var theClass = object.isa, + actualClass = theClass; + while (theClass) + { + var ivars = theClass.ivars; + count = ivars.length; + while (count--) + object[ivars[count].name] = NULL; + theClass = theClass.super_class; + } + object.isa = actualClass; + } + return object; +} +} +function object_getClassName( anObject) +{ + if (!anObject) + return ""; + var theClass = anObject.isa; + return theClass ? class_getName(theClass) : ""; +} +function objj_lookUpClass( aName) +{ + var theClass = REGISTERED_CLASSES[aName]; + return theClass ? theClass : Nil; +} +function objj_getClass( aName) +{ + var theClass = REGISTERED_CLASSES[aName]; + if (!theClass) + { + } + return theClass ? theClass : Nil; +} +function objj_getMetaClass( aName) +{ + var theClass = objj_getClass(aName); + return (((theClass.info & (CLS_META))) ? theClass : theClass.isa); +} +function ivar_getName(anIvar) +{ + return anIvar.name; +} +function ivar_getTypeEncoding(anIvar) +{ + return anIvar.type; +} +function objj_msgSend( aReceiver, aSelector) +{ + if (aReceiver == nil) + return nil; + if (!((((aReceiver.isa.info & (CLS_META))) ? aReceiver.isa : aReceiver.isa.isa).info & (CLS_INITIALIZED))) _class_initialize(aReceiver.isa); var method = aReceiver.isa.method_dtable[aSelector]; if (!method) method = _objj_forward; var implementation = method.method_imp;; + switch(arguments.length) + { + case 2: return implementation(aReceiver, aSelector); + case 3: return implementation(aReceiver, aSelector, arguments[2]); + case 4: return implementation(aReceiver, aSelector, arguments[2], arguments[3]); + } + return implementation.apply(aReceiver, arguments); +} +function objj_msgSendSuper( aSuper, aSelector) +{ + var super_class = aSuper.super_class; + arguments[0] = aSuper.receiver; + if (!((((super_class.info & (CLS_META))) ? super_class : super_class.isa).info & (CLS_INITIALIZED))) _class_initialize(super_class); var method = super_class.method_dtable[aSelector]; if (!method) method = _objj_forward; var implementation = method.method_imp;; + return implementation.apply(aSuper.receiver, arguments); +} +function method_getName( aMethod) +{ + return aMethod.name; +} +function method_getImplementation( aMethod) +{ + return aMethod.method_imp; +} +function method_setImplementation( aMethod, anImplementation) +{ + var oldImplementation = aMethod.method_imp; + aMethod.method_imp = anImplementation; + return oldImplementation; +} +function method_exchangeImplementations( lhs, rhs) +{ + var lhs_imp = method_getImplementation(lhs), + rhs_imp = method_getImplementation(rhs); + method_setImplementation(lhs, rhs_imp); + method_setImplementation(rhs, lhs_imp); +} +function sel_getName(aSelector) +{ + return aSelector ? aSelector : ""; +} +function sel_getUid( aName) +{ + return aName; +} +function sel_isEqual( lhs, rhs) +{ + return lhs === rhs; +} +function sel_registerName(aName) +{ + return aName; +} +function objj_dictionary() +{ + this._keys = []; + this.count = 0; + this._buckets = {}; + this.__address = (OBJECT_COUNT++); +} +function dictionary_containsKey(aDictionary, aKey) +{ + return aDictionary._buckets[aKey] != NULL; +} +function dictionary_getCount(aDictionary) +{ + return aDictionary.count; +} +function dictionary_getValue(aDictionary, aKey) +{ + return aDictionary._buckets[aKey]; +} +function dictionary_setValue(aDictionary, aKey, aValue) +{ + if (aDictionary._buckets[aKey] == NULL) + { + aDictionary._keys.push(aKey); + ++aDictionary.count; + } + if ((aDictionary._buckets[aKey] = aValue) == NULL) + --aDictionary.count; +} +function dictionary_removeValue(aDictionary, aKey) +{ + if (aDictionary._buckets[aKey] == NULL) + return; + --aDictionary.count; + if (aDictionary._keys.indexOf) + aDictionary._keys.splice(aDictionary._keys.indexOf(aKey), 1); + else + { + var keys = aDictionary._keys, + index = 0, + count = keys.length; + for (; index < count; ++index) + if (keys[index] == aKey) + { + keys.splice(index, 1); + break; + } + } + delete aDictionary._buckets[aKey]; +} +function dictionary_replaceValue(aDictionary, aKey, aValue) +{ + if (aDictionary[aKey] == NULL) + return; +} +function dictionary_description(aDictionary) +{ + var str = "{ "; + for ( x in aDictionary._buckets) + str += x + ":" + aDictionary._buckets[x] + ","; + str += " }"; + return str; +} +var kCFPropertyListOpenStepFormat = 1, + kCFPropertyListXMLFormat_v1_0 = 100, + kCFPropertyListBinaryFormat_v1_0 = 200, + kCFPropertyList280NorthFormat_v1_0 = -1000; +var OBJJPlistParseException = "OBJJPlistParseException", + OBJJPlistSerializeException = "OBJJPlistSerializeException"; +var kCFPropertyList280NorthMagicNumber = "280NPLIST"; +function objj_data() +{ + this.string = ""; + this._plistObject = NULL; + this.bytes = NULL; + this.base64 = NULL; +} +var objj_markedStream = function(aString) +{ + var index = aString.indexOf(';'); + this._magicNumber = aString.substr(0, index); + this._location = aString.indexOf(';', ++index); + this._version = aString.substring(index, this._location++); + this._string = aString; +} +objj_markedStream.prototype.magicNumber = function() +{ + return this._magicNumber; +} +objj_markedStream.prototype.version = function() +{ + return this._version; +} +objj_markedStream.prototype.getMarker = function() +{ + var string = this._string, + location = this._location; + if (location >= string.length) + return NULL; + var next = string.indexOf(';', location); + if (next < 0) + return NULL; + var marker = string.substring(location, next); + this._location = next + 1; + return marker; +} +objj_markedStream.prototype.getString = function() +{ + var string = this._string, + location = this._location; + if (location >= string.length) + return NULL; + var next = string.indexOf(';', location); + if (next < 0) + return NULL; + var size = parseInt(string.substring(location, next)), + text = string.substr(next + 1, size); + this._location = next + 1 + size; + return text; +} +function CPPropertyListCreateData(aPlistObject, aFormat) +{ + if (aFormat == kCFPropertyListXMLFormat_v1_0) + return CPPropertyListCreateXMLData(aPlistObject); + if (aFormat == kCFPropertyList280NorthFormat_v1_0) + return CPPropertyListCreate280NorthData(aPlistObject); + return NULL; +} +function CPPropertyListCreateFromData(aData, aFormat) +{ + if (!aFormat) + { + if (aData instanceof objj_data) + { + var string = aData.string ? aData.string : objj_msgSend(aData, "string"); + if (string.substr(0, kCFPropertyList280NorthMagicNumber.length) == kCFPropertyList280NorthMagicNumber) + aFormat = kCFPropertyList280NorthFormat_v1_0; + else + aFormat = kCFPropertyListXMLFormat_v1_0; + } + else + aFormat = kCFPropertyListXMLFormat_v1_0; + } + if (aFormat == kCFPropertyListXMLFormat_v1_0) + return CPPropertyListCreateFromXMLData(aData); + if (aFormat == kCFPropertyList280NorthFormat_v1_0) + return CPPropertyListCreateFrom280NorthData(aData); + return NULL; +} +var _CPPropertyListSerializeObject = function(aPlist, serializers) +{ + var type = typeof aPlist, + valueOf = aPlist.valueOf(), + typeValueOf = typeof valueOf; + if (type != typeValueOf) + { + type = typeValueOf; + aPlist = valueOf; + } + if (type == "string") + return serializers["string"](aPlist, serializers); + else if (aPlist === true || aPlist === false) + return serializers["boolean"](aPlist, serializers); + else if (type == "number") + { + var integer = FLOOR(aPlist); + if (integer == aPlist) + return serializers["integer"](aPlist, serializers); + else + return serializers["real"](aPlist, serializers); + } + else if (aPlist.slice) + return serializers["array"](aPlist, serializers); + else + return serializers["dictionary"](aPlist, serializers); +} +var XML_XML = "xml", + XML_DOCUMENT = "#document", + PLIST_PLIST = "plist", + PLIST_KEY = "key", + PLIST_DICTIONARY = "dict", + PLIST_ARRAY = "array", + PLIST_STRING = "string", + PLIST_BOOLEAN_TRUE = "true", + PLIST_BOOLEAN_FALSE = "false", + PLIST_NUMBER_REAL = "real", + PLIST_NUMBER_INTEGER = "integer", + PLIST_DATA = "data"; +var _plist_traverseNextNode = function(anXMLNode, stayWithin, stack) +{ + var node = anXMLNode; + node = (node.firstChild); if (node != NULL && ((node.nodeType) == 8 || (node.nodeType) == 3)) while ((node = (node.nextSibling)) && ((node.nodeType) == 8 || (node.nodeType) == 3)) ;; + if (node) + return node; + if ((String(anXMLNode.nodeName)) == PLIST_ARRAY || (String(anXMLNode.nodeName)) == PLIST_DICTIONARY) + stack.pop(); + else + { + if (node == stayWithin) + return NULL; + node = anXMLNode; + while ((node = (node.nextSibling)) && ((node.nodeType) == 8 || (node.nodeType) == 3)) ;; + if (node) + return node; + } + node = anXMLNode; + while (node) + { + var next = node; + while ((next = (next.nextSibling)) && ((next.nodeType) == 8 || (next.nodeType) == 3)) ;; + if (next) + return next; + var node = (node.parentNode); + if (stayWithin && node == stayWithin) + return NULL; + stack.pop(); + } + return NULL; +} +function CPPropertyListCreateFromXMLData(XMLNodeOrData) +{ + var XMLNode = XMLNodeOrData; + if (XMLNode.string) + { + if (window.ActiveXObject) + { + XMLNode = new ActiveXObject("Microsoft.XMLDOM"); + XMLNode.loadXML(XMLNodeOrData.string.substr(XMLNodeOrData.string.indexOf(".dtd\">") + 6)); + } + else + XMLNode = (new DOMParser().parseFromString(XMLNodeOrData.string, "text/xml").documentElement); + } + while (((String(XMLNode.nodeName)) == XML_DOCUMENT) || ((String(XMLNode.nodeName)) == XML_XML)) + XMLNode = (XMLNode.firstChild); if (XMLNode != NULL && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) while ((XMLNode = (XMLNode.nextSibling)) && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) ;; + if (((XMLNode.nodeType) == 10)) + while ((XMLNode = (XMLNode.nextSibling)) && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) ;; + if (!((String(XMLNode.nodeName)) == PLIST_PLIST)) + return NULL; + var key = "", + object = NULL, + plistObject = NULL, + plistNode = XMLNode, + containers = [], + currentContainer = NULL; + while (XMLNode = _plist_traverseNextNode(XMLNode, plistNode, containers)) + { + var count = containers.length; + if (count) + currentContainer = containers[count - 1]; + if ((String(XMLNode.nodeName)) == PLIST_KEY) + { + key = ((String((XMLNode.firstChild).nodeValue))); + while ((XMLNode = (XMLNode.nextSibling)) && ((XMLNode.nodeType) == 8 || (XMLNode.nodeType) == 3)) ;; + } + switch (String((String(XMLNode.nodeName)))) + { + case PLIST_ARRAY: object = [] + containers.push(object); + break; + case PLIST_DICTIONARY: object = new objj_dictionary(); + containers.push(object); + break; + case PLIST_NUMBER_REAL: object = parseFloat(((String((XMLNode.firstChild).nodeValue)))); + break; + case PLIST_NUMBER_INTEGER: object = parseInt(((String((XMLNode.firstChild).nodeValue)))); + break; + case PLIST_STRING: object = _decodeHTMLComponent((XMLNode.firstChild) ? ((String((XMLNode.firstChild).nodeValue))) : ""); + break; + case PLIST_BOOLEAN_TRUE: object = true; + break; + case PLIST_BOOLEAN_FALSE: object = false; + break; + case PLIST_DATA: object = new objj_data(); + object.bytes = (XMLNode.firstChild) ? base64_decode_to_array(((String((XMLNode.firstChild).nodeValue))), true) : []; + break; + default: objj_exception_throw(new objj_exception(OBJJPlistParseException, "*** " + (String(XMLNode.nodeName)) + " tag not recognized in Plist.")); + } + if (!plistObject) + plistObject = object; + else if (currentContainer) + if (currentContainer.slice) + currentContainer.push(object); + else + { if ((currentContainer)._buckets[key] == NULL) { (currentContainer)._keys.push(key); ++(currentContainer).count; } if (((currentContainer)._buckets[key] = object) == NULL) --(currentContainer).count;}; + } + return plistObject; +} +function CPPropertyListCreateXMLData(aPlist) +{ + var data = new objj_data(); + data.string = ""; + data.string += ""; + data.string += ""; + data.string += ""; + _CPPropertyListAppendXMLData(data, aPlist, ""); + data.string += ""; + return data; +} +var _CPArrayAppendXMLData = function(XMLData, anArray) +{ + var i = 0, + count = anArray.length; + XMLData.string += ""; + for (; i < count; ++i) + _CPPropertyListAppendXMLData(XMLData, anArray[i]); + XMLData.string += ""; +} +var _CPDictionaryAppendXMLData = function(XMLData, aDictionary) +{ + var keys = aDictionary._keys, + i = 0, + count = keys.length; + XMLData.string += ""; + for (; i < count; ++i) + { + XMLData.string += "" + keys[i] + ""; + _CPPropertyListAppendXMLData(XMLData, ((aDictionary)._buckets[keys[i]])); + } + XMLData.string += ""; +} +var _encodeHTMLComponent = function(aString) +{ + return aString.replace('<', "<").replace('>', ">").replace('\"', """).replace('\'', "'").replace('&', "&"); +} +var _decodeHTMLComponent = function(aString) +{ + return aString.replace("<", '<').replace(">", '>').replace(""", '\"').replace("'", '\'').replace("&", '&'); +} +var _CPPropertyListAppendXMLData = function(XMLData, aPlist) +{ + var type = typeof aPlist, + valueOf = aPlist.valueOf(), + typeValueOf = typeof valueOf; + if (type != typeValueOf) + { + type = typeValueOf; + aPlist = valueOf; + } + if (type == "string") + XMLData.string += "" + _encodeHTMLComponent(aPlist) + ""; + else if (aPlist === true) + XMLData.string += ""; + else if (aPlist === false) + XMLData.string += ""; + else if (type == "number") + { + var integer = FLOOR(aPlist); + if (integer == aPlist) + XMLData.string += "" + aPlist + ""; + else + XMLData.string += "" + aPlist + ""; + } + else if (aPlist.slice) + _CPArrayAppendXMLData(XMLData, aPlist); + else if (aPlist._keys) + _CPDictionaryAppendXMLData(XMLData, aPlist); + else + objj_exception_throw(new objj_exception(OBJJPlistSerializeException, "*** unknown plist ("+aPlist+") type: " + type)); +} +var ARRAY_MARKER = "A", + DICTIONARY_MARKER = "D", + FLOAT_MARKER = "f", + INTEGER_MARKER = "d", + STRING_MARKER = "S", + TRUE_MARKER = "T", + FALSE_MARKER = "F", + KEY_MARKER = "K", + END_MARKER = "E"; +function CPPropertyListCreateFrom280NorthData(aData) +{ + var stream = new objj_markedStream(aData.string), + marker = NULL, + key = "", + object = NULL, + plistObject = NULL, + containers = [], + currentContainer = NULL; + while (marker = stream.getMarker()) + { + if (marker === END_MARKER) + { + containers.pop(); + continue; + } + var count = containers.length; + if (count) + currentContainer = containers[count - 1]; + if (marker === KEY_MARKER) + { + key = stream.getString(); + marker = stream.getMarker(); + } + switch (marker) + { + case ARRAY_MARKER: object = [] + containers.push(object); + break; + case DICTIONARY_MARKER: object = new objj_dictionary(); + containers.push(object); + break; + case FLOAT_MARKER: object = parseFloat(stream.getString()); + break; + case INTEGER_MARKER: object = parseInt(stream.getString()); + break; + case STRING_MARKER: object = stream.getString(); + break; + case TRUE_MARKER: object = true; + break; + case FALSE_MARKER: object = false; + break; + default: objj_exception_throw(new objj_exception(OBJJPlistParseException, "*** " + marker + " marker not recognized in Plist.")); + } + if (!plistObject) + plistObject = object; + else if (currentContainer) + if (currentContainer.slice) + currentContainer.push(object); + else + { if ((currentContainer)._buckets[key] == NULL) { (currentContainer)._keys.push(key); ++(currentContainer).count; } if (((currentContainer)._buckets[key] = object) == NULL) --(currentContainer).count;}; + } + return plistObject; +} +function CPPropertyListCreate280NorthData(aPlist) +{ + var data = new objj_data(); + data.string = kCFPropertyList280NorthMagicNumber + ";1.0;" + _CPPropertyListSerializeObject(aPlist, _CPPropertyList280NorthSerializers); + return data; +} +var _CPPropertyList280NorthSerializers = {}; +_CPPropertyList280NorthSerializers["string"] = function(aString) +{ + return STRING_MARKER + ';' + aString.length + ';' + aString; +} +_CPPropertyList280NorthSerializers["boolean"] = function(aBoolean) +{ + return (aBoolean ? TRUE_MARKER : FALSE_MARKER) + ';'; +} +_CPPropertyList280NorthSerializers["integer"] = function(anInteger) +{ + var string = "" + anInteger; + return INTEGER_MARKER + ';' + string.length + ';' + string; +} +_CPPropertyList280NorthSerializers["real"] = function(aFloat) +{ + var string = "" + aFloat; + return FLOAT_MARKER + ';' + string.length + ';' + string; +} +_CPPropertyList280NorthSerializers["array"] = function(anArray, serializers) +{ + var index = 0, + count = anArray.length, + string = ARRAY_MARKER + ';'; + for (; index < count; ++index) + string += _CPPropertyListSerializeObject(anArray[index], serializers); + return string + END_MARKER + ';'; +} +_CPPropertyList280NorthSerializers["dictionary"] = function(aDictionary, serializers) +{ + var keys = aDictionary._keys, + index = 0, + count = keys.length, + string = DICTIONARY_MARKER +';'; + for (; index < count; ++index) + { + var key = keys[index]; + string += KEY_MARKER + ';' + key.length + ';' + key; + string += _CPPropertyListSerializeObject(((aDictionary)._buckets[key]), serializers); + } + return string + END_MARKER + ';'; +} +var OBJJ_PLATFORMS = ["rhino", "objj"]; +var OBJJFileNotFoundException = "OBJJFileNotFoundException", + OBJJExecutableNotFoundException = "OBJJExecutableNotFoundException"; +var objj_files = { }, + objj_bundles = { }, + objj_bundlesForClass = { }, + objj_searches = { }; +var OBJJ_NO_FILE = {}; +if (typeof OBJJ_INCLUDE_PATHS === "undefined") + OBJJ_INCLUDE_PATHS = ["Frameworks", "SomethingElse"]; +var OBJJ_BASE_URI = ""; +if (window.opera) { +var DOMBaseElement = document.getElementsByTagName("base")[0]; +if (DOMBaseElement) + OBJJ_BASE_URI = (DOMBaseElement.getAttribute('href')).substr(0, (DOMBaseElement.getAttribute('href')).lastIndexOf('/') + 1); +} +function objj_file() +{ + this.path = NULL; + this.bundle = NULL; + this.included = NO; + this.contents = NULL; + this.fragments = NULL; +} +function objj_bundle() +{ + this.path = NULL; + this.info = NULL; + this.__address = (OBJECT_COUNT++); +} +function objj_getBundleWithPath(aPath) +{ + return objj_bundles[aPath]; +} +function objj_setBundleForPath(aPath, aBundle) +{ + objj_bundles[aPath] = aBundle; +} +function objj_bundleForClass(aClass) +{ + return objj_bundlesForClass[aClass.name]; +} +function objj_addClassForBundle(aClass, aBundle) +{ + objj_bundlesForClass[aClass.name] = aBundle; +} +function objj_request_file(aFilePath, shouldSearchLocally, aCallback) +{ + new objj_search(aFilePath, shouldSearchLocally, aCallback).attemptNextSearchPath(); +} +var objj_search = function(aFilePath, shouldSearchLocally, aCallback) +{ + this.filePath = aFilePath; + this.bundle = NULL; + this.bundleObservers = []; + this.searchPath = NULL; + this.searchedPaths = []; + this.includePathsIndex = shouldSearchLocally ? -1 : 0; + this.searchRequest = NULL; + this.didCompleteCallback = aCallback; +} +objj_search.prototype.nextSearchPath = function() +{ + var path = objj_standardize_path((this.includePathsIndex == -1 ? "" : OBJJ_INCLUDE_PATHS[this.includePathsIndex] + '/') + this.filePath); + ++this.includePathsIndex; + return path; +} +objj_search.prototype.attemptNextSearchPath = function() +{ + var searchPath = this.nextSearchPath(), + file = objj_files[searchPath]; + objj_alert("Will attempt to find " + this.filePath + " at " + searchPath); + if (file) + { + objj_alert("The file request at " + this.filePath + " has already been downloaded at " + searchPath); + var index = 0, + count = this.searchedPaths.length; + for (; index < count; ++index) + objj_files[this.searchedPaths[index]] = file; + if (this.didCompleteCallback) + this.didCompleteCallback(file); + return; + } + var existingSearch = objj_searches[searchPath]; + if (existingSearch) + { + if (this.didCompleteCallback) + existingSearch.didCompleteCallback = this.didCompleteCallback; + return; + } + this.searchedPaths.push(this.searchPath = searchPath); + var infoPath = objj_standardize_path((searchPath).substr(0, (searchPath).lastIndexOf('/') + 1) + "Info.plist"), + bundle = objj_bundles[infoPath]; + if (bundle) + { + this.bundle = bundle; + this.request(searchPath, this.didReceiveSearchResponse); + } + else + { + var existingBundleSearch = objj_searches[infoPath]; + if (existingBundleSearch) + { + --this.includePathsIndex; + this.searchedPaths.pop(); + if (this.searchedPaths.length) + this.searchPath = this.searchedPaths[this.searchedPaths.length - 1]; + else + this.searchPath = NULL; + existingBundleSearch.bundleObservers.push(this); + return; + } + else + { + this.bundleObservers.push(this); + this.request(infoPath, this.didReceiveBundleResponse); + if (!this.searchReplaced) + this.searchRequest = this.request(searchPath, this.didReceiveSearchResponse); + } + } +} +if (window.ActiveXObject) { +objj_search.responseCallbackLock = NO; +objj_search.responseCallbackQueue = []; +objj_search.removeResponseCallbackForFilePath = function(aFilePath) +{ + var queue = objj_search.responseCallbackQueue, + index = queue.length; + while (index--) + if (queue[index][3] == aFilePath) + { + queue.splice(index, 1); + return; + } +} +objj_search.serializeResponseCallback = function(aMethod, aSearch, aResponse, aFilePath) +{ + var queue = objj_search.responseCallbackQueue; + queue.push([aMethod, aSearch, aResponse, aFilePath]); + if (objj_search.responseCallbackLock) + return; + objj_search.responseCallbackLock = YES; + while (queue.length) + { + var callback = queue[0]; + queue.splice(0, 1); + callback[0].apply(callback[1], [callback[2]]); + } + objj_search.responseCallbackLock = NO; +} +} +objj_search.prototype.request = function(aFilePath, aMethod) +{ + var search = this, + isPlist = aFilePath.substr(aFilePath.length - 6, 6) == ".plist", + request = objj_request_xmlhttp(), + response = objj_response_xmlhttp(); + response.filePath = aFilePath; + request.onreadystatechange = function() + { + if (request.readyState == 4) + { + if (response.success = (request.status != 404 && request.responseText && request.responseText.length) ? YES : NO) + { + if (window.files_total) + { + if (!window.files_loaded) + window.files_loaded = 0; + window.files_loaded += request.responseText.length; + if (window.update_progress) + window.update_progress(window.files_loaded / window.files_total); + } + if (isPlist) + response.xml = objj_standardize_xml(request); + else + response.text = request.responseText; + } + if (window.ActiveXObject) + objj_search.serializeResponseCallback(aMethod, search, response, aFilePath); + else + aMethod.apply(search, [response]); + } + } + objj_searches[aFilePath] = this; + if (request.overrideMimeType && isPlist) + request.overrideMimeType('text/xml'); + if (window.opera && aFilePath.charAt(0) != '/') + aFilePath = OBJJ_BASE_URI + aFilePath; + try + { + request.open("GET", aFilePath, YES); + request.send(""); + } + catch (anException) + { + response.success = NO; + if (window.ActiveXObject) + objj_search.serializeResponseCallback(aMethod, search, response, aFilePath); + else + aMethod.apply(search, [response]); + } + return request; +} +objj_search.prototype.didReceiveSearchResponse = function(aResponse) +{ + if (!this.bundle) + { + this.cachedSearchResponse = aResponse; + return; + } + if (aResponse.success) + { + file = new objj_file(); + file.path = aResponse.filePath; + file.bundle = this.bundle + file.contents = aResponse.text; + this.complete(file); + } + else if (this.includePathsIndex < OBJJ_INCLUDE_PATHS.length) + { + this.bundle = NULL; + this.attemptNextSearchPath(); + } + else + objj_exception_throw(new objj_exception(OBJJFileNotFoundException, "*** Could not locate file named \"" + this.filePath + "\" in search paths.")); +} +objj_search.prototype.didReceiveBundleResponse = function(aResponse) +{ + var bundle = new objj_bundle(); + bundle.path = aResponse.filePath; + if (aResponse.success) + bundle.info = CPPropertyListCreateFromXMLData(aResponse.xml); + else + bundle.info = new objj_dictionary(); + objj_bundles[aResponse.filePath] = bundle; + var executablePath = ((bundle.info)._buckets["CPBundleExecutable"]); + if (executablePath) + { + var platform = NULL, + platforms = ((bundle.info)._buckets["CPBundlePlatforms"]), + index = 0, + count = OBJJ_PLATFORMS.length, + innerCount = platforms.length; + for(; index < count; ++index) + { + var innerIndex = 0, + currentPlatform = OBJJ_PLATFORMS[index]; + for (; innerIndex < innerCount; ++innerIndex) + if(currentPlatform === platforms[innerIndex]) + { + platform = currentPlatform; + break; + } + } + executablePath = platform + ".platform/" + executablePath; + this.request((aResponse.filePath).substr(0, (aResponse.filePath).lastIndexOf('/') + 1) + executablePath, this.didReceiveExecutableResponse); + var directory = (aResponse.filePath).substr(0, (aResponse.filePath).lastIndexOf('/') + 1), + replacedFiles = ((bundle.info)._buckets["CPBundleReplacedFiles"]), + index = 0, + count = replacedFiles.length; + for (; index < count; ++index) + { + objj_searches[directory + replacedFiles[index]] = this; + if (directory + replacedFiles[index] == this.searchPath) + { + this.searchReplaced = YES; + if (!this.cachedSearchResponse && this.searchRequest) + this.searchRequest.abort(); + if (window.ActiveXObject) + objj_search.removeResponseCallbackForFilePath(this.searchPath); + } + } + } + this.bundle = bundle; + var observers = this.bundleObservers, + index = 0, + count = observers.length; + for(; index < count; ++index) + { + var observer = observers[index]; + if (observer != this) + observer.attemptNextSearchPath(); + else if (this.cachedSearchResponse && !this.searchReplaced) + this.didReceiveSearchResponse(this.cachedSearchResponse); + } + this.bundleObservers = []; +} +objj_search.prototype.didReceiveExecutableResponse = function(aResponse) +{ + if (!aResponse.success) + objj_exception_throw(new objj_exception(OBJJExecutableNotFoundException, "*** The specified executable could not be located at \"" + this.filePath + "\".")); + var files = objj_decompile(aResponse.text, this.bundle), + index = 0, + count = files.length, + length = this.filePath.length; + for (; index < count; ++index) + { + var file = files[index], + path = file.path; + if (this.filePath == path.substr(path.length - length)) + this.complete(file); + else + objj_files[path] = file; + } +} +objj_search.prototype.complete = function(aFile) +{ + var index = 0, + count = this.searchedPaths.length; + for (; index < count; ++index) + { + objj_files[this.searchedPaths[index]] = aFile; + } + if (this.didCompleteCallback) + this.didCompleteCallback(aFile); +} +function objj_standardize_path(aPath) +{ + if (aPath.indexOf("/./") != -1 && aPath.indexOf("//") != -1 && aPath.indexOf("/../") != -1) + return aPath; + var index = 0, + components = aPath.split('/'); + for(;index < components.length; ++index) + if(components[index] == "..") + { + components.splice(index - 1, 2); + index -= 2; + } + else if(index != 0 && !components[index].length || components[index] == '.' || components[index] == "..") + components.splice(index--, 1); + return components.join('/'); +} +if (window.ActiveXObject) { +var objj_standardize_xml = function(aRequest) +{ + var XMLData = new ActiveXObject("Microsoft.XMLDOM"); + XMLData.loadXML(aRequest.responseText.substr(aRequest.responseText.indexOf(".dtd\">") + 6)); + return XMLData; +} +} else { +var objj_standardize_xml = function(aRequest) +{ + return aRequest.responseXML; +} +} +function objj_response_xmlhttp() +{ + return new Object; +} +if (window.XMLHttpRequest) { +var objj_request_xmlhttp = function() +{ + return new XMLHttpRequest(); +} +} else if (window.ActiveXObject) { +var MSXML_XMLHTTP_OBJECTS = [ "Microsoft.XMLHTTP", "Msxml2.XMLHTTP", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP.6.0" ], + index = MSXML_XMLHTTP_OBJECTS.length; +while (index--) +{ + try + { + new ActiveXObject(MSXML_XMLHTTP_OBJECTS[index]); + break; + } + catch (anException) + { + } +} +var MSXML_XMLHTTP = MSXML_XMLHTTP_OBJECTS[index]; +delete index; +delete MSXML_XMLHTTP_OBJECTS; +var objj_request_xmlhttp = function() +{ + return new ActiveXObject(MSXML_XMLHTTP); +} +} +var OBJJUnrecognizedFormatException = "OBJJUnrecognizedFormatException"; +var STATIC_MAGIC_NUMBER = "@STATIC", + MARKER_PATH = "p", + MARKER_CODE = "c", + MARKER_BUNDLE = "b", + MARKER_TEXT = "t", + MARKER_IMPORT_STD = 'I', + MARKER_IMPORT_LOCAL = 'i'; +var STATIC_EXTENSION = "sj"; +function objj_decompile(aString, bundle) +{ + var stream = new objj_markedStream(aString); + if (stream.magicNumber() != STATIC_MAGIC_NUMBER) + objj_exception_throw(new objj_exception(OBJJUnrecognizedFormatException, "*** Could not recognize executable code format.")); + if (stream.version() != 1.0) + objj_exception_throw(new objj_exception(OBJJUnrecognizedFormatException, "*** Could not recognize executable code format.")); + var file = NULL, + files = [], + marker; + while (marker = stream.getMarker()) + { + var text = stream.getString(); + switch (marker) + { + case MARKER_PATH: if (file && file.contents && file.path === file.bundle.path) + file.bundle.info = CPPropertyListCreateWithData({string:file.contents}); + file = new objj_file(); + file.path = (bundle.path).substr(0, (bundle.path).lastIndexOf('/') + 1) + text; + file.bundle = bundle; + file.fragments = []; + files.push(file); + objj_files[file.path] = file; + break; + case MARKER_BUNDLE: var bundlePath = (bundle.path).substr(0, (bundle.path).lastIndexOf('/') + 1) + '/' + text; + file.bundle = objj_getBundleWithPath(bundlePath); + if (!file.bundle) + { + file.bundle = new objj_bundle(); + file.bundle.path = bundlePath; + objj_setBundleForPath(file.bundle, bundlePath); + } + break; + case MARKER_TEXT: file.contents = text; + break; + case MARKER_CODE: file.fragments.push(fragment_create_code(text, bundle, file)); + break; + case MARKER_IMPORT_STD: file.fragments.push(fragment_create_file(text, bundle, NO, file)); + break; + case MARKER_IMPORT_LOCAL: file.fragments.push(fragment_create_file(text, bundle, YES, file)); + break; + } + } + if (file && file.contents && file.path === file.bundle.path) + file.bundle.info = CPPropertyListCreateWithData({string:file.contents}); + return files; +} +var OBJJ_EXCEPTION_OUTPUT_STREAM = NULL; +function objj_exception(aName, aReason, aUserInfo) +{ + this.name = aName; + this.reason = aReason; + this.userInfo = aUserInfo; + this.__address = (OBJECT_COUNT++); +} +objj_exception.prototype.toString = function() +{ + return this.reason; +} +function objj_exception_throw(anException) +{ + throw anException; +} +function objj_exception_report(anException, aSourceFile) +{ + objj_fprintf(OBJJ_EXCEPTION_OUTPUT_STREAM, aSourceFile.path + "\n" + anException); + throw anException; +} +function objj_exception_setOutputStream(aStream) +{ + OBJJ_EXCEPTION_OUTPUT_STREAM = aStream; +} +objj_exception_setOutputStream(warning_stream); +var OBJJ_PREPROCESSOR_DEBUG_SYMBOLS = 1 << 0; +function objj_preprocess( aString, aBundle, aSourceFile, flags) +{ + try + { + return new objj_preprocessor(aString.replace(/^#[^\n]+\n/, "\n"), aSourceFile, aBundle, flags).fragments(); + } + catch (anException) + { + objj_exception_report(anException, aSourceFile); + } + return []; +} +var OBJJParseException = "OBJJParseException", + OBJJClassNotFoundException = "OBJJClassNotFoundException"; +var TOKEN_ACCESSORS = "accessors", + TOKEN_CLASS = "class", + TOKEN_END = "end", + TOKEN_FUNCTION = "function", + TOKEN_IMPLEMENTATION = "implementation", + TOKEN_IMPORT = "import", + TOKEN_NEW = "new", + TOKEN_SELECTOR = "selector", + TOKEN_SUPER = "super", + TOKEN_EQUAL = '=', + TOKEN_PLUS = '+', + TOKEN_MINUS = '-', + TOKEN_COLON = ':', + TOKEN_COMMA = ',', + TOKEN_PERIOD = '.', + TOKEN_ASTERISK = '*', + TOKEN_SEMICOLON = ';', + TOKEN_LESS_THAN = '<', + TOKEN_OPEN_BRACE = '{', + TOKEN_CLOSE_BRACE = '}', + TOKEN_GREATER_THAN = '>', + TOKEN_OPEN_BRACKET = '[', + TOKEN_DOUBLE_QUOTE = '"', + TOKEN_PREPROCESSOR = '@', + TOKEN_CLOSE_BRACKET = ']', + TOKEN_QUESTION_MARK = '?', + TOKEN_OPEN_PARENTHESIS = '(', + TOKEN_CLOSE_PARENTHESIS = ')', + TOKEN_WHITESPACE = /^(?:(?:\s+$)|(?:\/(?:\/|\*)))/, + TOKEN_NUMBER = /^[+-]?\d+(([.]\d+)*([eE][+-]?\d+))?$/, + TOKEN_IDENTIFIER = /^[a-zA-Z_$](\w|$)*$/; +var SUPER_CLASSES = new objj_dictionary(); +var OBJJ_CURRENT_BUNDLE = NULL; +var objj_lexer = function(aString) +{ + this._index = -1; + this._tokens = (aString + '\n').match(/\/\/.*(\r|\n)?|\/\*(?:.|\n|\r)*?\*\/|\w+\b|[+-]?\d+(([.]\d+)*([eE][+-]?\d+))?|"[^"\\]*(\\[\s\S][^"\\]*)*"|'[^'\\]*(\\[\s\S][^'\\]*)*'|\s+|./g); + this._context = []; + return this; +} +objj_lexer.prototype.push = function() +{ + this._context.push(this._index); +} +objj_lexer.prototype.pop = function() +{ + this._index = this._context.pop(); +} +objj_lexer.prototype.peak = function(shouldSkipWhitespace) +{ + if (shouldSkipWhitespace) + { + this.push(); + var token = this.skip_whitespace(); + this.pop(); + return token; + } + return this._tokens[this._index + 1]; +} +objj_lexer.prototype.next = function() +{ + return this._tokens[++this._index]; +} +objj_lexer.prototype.previous = function() +{ + return this._tokens[--this._index]; +} +objj_lexer.prototype.last = function() +{ + if (this._index < 0) + return NULL; + return this._tokens[this._index - 1]; +} +objj_lexer.prototype.skip_whitespace= function(shouldMoveBackwards) +{ + var token; + if (shouldMoveBackwards) + while((token = this.previous()) && TOKEN_WHITESPACE.test(token)) ; + else + while((token = this.next()) && TOKEN_WHITESPACE.test(token)) ; + return token; +} +var objj_stringBuffer = function() +{ + this.atoms = []; +} +objj_stringBuffer.prototype.toString = function() +{ + return this.atoms.join(""); +} +objj_stringBuffer.prototype.clear = function() +{ + this.atoms = []; +} +objj_stringBuffer.prototype.isEmpty = function() +{ + return (this.atoms.length === 0); +} +var objj_preprocessor = function(aString, aSourceFile, aBundle, flags) +{ + this._currentClass = ""; + this._currentSuperClass = ""; + this._file = aSourceFile; + this._fragments = []; + this._preprocessed = new objj_stringBuffer(); + this._tokens = new objj_lexer(aString); + this._flags = flags; + this._bundle = aBundle; + this.preprocess(this._tokens, this._preprocessed); + this.fragment(); +} +objj_preprocessor.prototype.fragments = function() +{ + return this._fragments; +} +objj_preprocessor.prototype.accessors = function(tokens) +{ + var token = tokens.skip_whitespace(), + attributes = {}; + if (token != TOKEN_OPEN_PARENTHESIS) + { + tokens.previous(); + return attributes; + } + while ((token = tokens.skip_whitespace()) != TOKEN_CLOSE_PARENTHESIS) + { + var name = token, + value = true; + if (!/^\w+$/.test(name)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** @property attribute name not valid.")); + if ((token = tokens.skip_whitespace()) == TOKEN_EQUAL) + { + value = tokens.skip_whitespace(); + if (!/^\w+$/.test(value)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** @property attribute value not valid.")); + if (name == "setter") + { + if ((token = tokens.next()) != TOKEN_COLON) + objj_exception_throw(new objj_exception(OBJJParseException, "*** @property setter attribute requires argument with \":\" at end of selector name.")); + value += ":"; + } + token = tokens.skip_whitespace(); + } + attributes[name] = value; + if (token == TOKEN_CLOSE_PARENTHESIS) + break; + if (token != TOKEN_COMMA) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected ',' or ')' in @property attribute list.")); + } + return attributes; +} +objj_preprocessor.prototype.brackets = function( tokens, aStringBuffer) +{ + var tuples = []; + while (this.preprocess(tokens, NULL, NULL, NULL, tuples[tuples.length] = [])) ; + if (tuples[0].length === 1) + { + aStringBuffer.atoms[aStringBuffer.atoms.length] = '['; + aStringBuffer.atoms[aStringBuffer.atoms.length] = tuples[0][0]; + aStringBuffer.atoms[aStringBuffer.atoms.length] = ']'; + } + else + { + var selector = new objj_stringBuffer(); + if (tuples[0][0].atoms[0] == TOKEN_SUPER) + { + aStringBuffer.atoms[aStringBuffer.atoms.length] = "objj_msgSendSuper("; + aStringBuffer.atoms[aStringBuffer.atoms.length] = "{ receiver:self, super_class:" + this._currentSuperClass + " }"; + } + else + { + aStringBuffer.atoms[aStringBuffer.atoms.length] = "objj_msgSend("; + aStringBuffer.atoms[aStringBuffer.atoms.length] = tuples[0][0]; + } + selector.atoms[selector.atoms.length] = tuples[0][1]; + var index = 1, + count = tuples.length, + marg_list = new objj_stringBuffer(); + for(; index < count; ++index) + { + var pair = tuples[index]; + selector.atoms[selector.atoms.length] = pair[1] + marg_list.atoms[marg_list.atoms.length] = ", " + pair[0]; + } + aStringBuffer.atoms[aStringBuffer.atoms.length] = ", \""; + aStringBuffer.atoms[aStringBuffer.atoms.length] = selector; + aStringBuffer.atoms[aStringBuffer.atoms.length] = '\"'; + aStringBuffer.atoms[aStringBuffer.atoms.length] = marg_list; + aStringBuffer.atoms[aStringBuffer.atoms.length] = ')'; + } +} +objj_preprocessor.prototype.directive = function(tokens, aStringBuffer, allowedDirectivesFlags) +{ + var buffer = aStringBuffer ? aStringBuffer : new objj_stringBuffer(), + token = tokens.next(); + if (token.charAt(0) == TOKEN_DOUBLE_QUOTE) + buffer.atoms[buffer.atoms.length] = token; + else if (token == TOKEN_CLASS) + { + tokens.skip_whitespace(); + return; + } + else if (token == TOKEN_IMPLEMENTATION) + this.implementation(tokens, buffer); + else if (token == TOKEN_IMPORT) + this._import(tokens); + else if (token == TOKEN_SELECTOR) + this.selector(tokens, buffer); + else if (token == TOKEN_ACCESSORS) + return this.accessors(tokens); + if (!aStringBuffer) + return buffer; +} +objj_preprocessor.prototype.fragment = function() +{ + var preprocessed = this._preprocessed.toString(); + if ((/[^\s]/).test(preprocessed)) + this._fragments.push(fragment_create_code(preprocessed, this._bundle, this._file)); + this._preprocessed.clear(); +} +objj_preprocessor.prototype.implementation = function(tokens, aStringBuffer) +{ + var buffer = aStringBuffer, + token = "", + category = NO, + class_name = tokens.skip_whitespace(), + superclass_name = "Nil", + instance_methods = new objj_stringBuffer(), + class_methods = new objj_stringBuffer(); + if (!(/^\w/).test(class_name)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected class name, found \"" + class_name + "\".")); + this._currentSuperClass = NULL; + this._currentClass = class_name; + if((token = tokens.skip_whitespace()) == TOKEN_OPEN_PARENTHESIS) + { + token = tokens.skip_whitespace(); + if (token == TOKEN_CLOSE_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Can't Have Empty Category Name for class \"" + class_name + "\".")); + if (tokens.skip_whitespace() != TOKEN_CLOSE_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Improper Category Definition for class \"" + class_name + "\".")); + buffer.atoms[buffer.atoms.length] = "{\nvar the_class = objj_getClass(\"" + class_name + "\")\n"; + buffer.atoms[buffer.atoms.length] = "if(!the_class) objj_exception_throw(new objj_exception(OBJJClassNotFoundException, \"*** Could not find definition for class \\\"" + class_name + "\\\"\"));\n"; + buffer.atoms[buffer.atoms.length] = "var meta_class = the_class.isa;"; + var superclass_name = ((SUPER_CLASSES)._buckets[class_name]); + if (!superclass_name) + this._currentSuperClass = "objj_getClass(\"" + class_name + "\").super_class"; + else + this._currentSuperClass = "objj_getClass(\"" + superclass_name + "\")"; + } + else + { + if(token == TOKEN_COLON) + { + token = tokens.skip_whitespace(); + if (!TOKEN_IDENTIFIER.test(token)) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected class name, found \"" + token + "\".")); + superclass_name = token; + this._currentSuperClass = "objj_getClass(\"" + superclass_name + "\")"; + { if ((SUPER_CLASSES)._buckets[class_name] == NULL) { (SUPER_CLASSES)._keys.push(class_name); ++(SUPER_CLASSES).count; } if (((SUPER_CLASSES)._buckets[class_name] = superclass_name) == NULL) --(SUPER_CLASSES).count;}; + token = tokens.skip_whitespace(); + } + buffer.atoms[buffer.atoms.length] = "{var the_class = objj_allocateClassPair(" + superclass_name + ", \"" + class_name + "\"),\nmeta_class = the_class.isa;"; + if (token == TOKEN_OPEN_BRACE) + { + var ivar_count = 0, + declaration = [], + attributes, + accessors = {}; + while((token = tokens.skip_whitespace()) && token != TOKEN_CLOSE_BRACE) + { + if (token == TOKEN_PREPROCESSOR) + attributes = this.directive(tokens); + else if (token == TOKEN_SEMICOLON) + { + if (ivar_count++ == 0) + buffer.atoms[buffer.atoms.length] = "class_addIvars(the_class, ["; + else + buffer.atoms[buffer.atoms.length] = ", "; + var name = declaration[declaration.length - 1]; + buffer.atoms[buffer.atoms.length] = "new objj_ivar(\"" + name + "\")"; + declaration = []; + if (attributes) + { + accessors[name] = attributes; + attributes = NULL; + } + } + else + declaration.push(token); + } + if (declaration.length) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected ';' in ivar declaration, found '}'.")); + if (ivar_count) + buffer.atoms[buffer.atoms.length] = "]);\n"; + if (!token) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected '}'")); + for (ivar_name in accessors) + { + var accessor = accessors[ivar_name], + property = accessor["property"] || ivar_name; + var getterName = accessor["getter"] || property, + getterCode = "(id)" + getterName + "\n{\nreturn " + ivar_name + ";\n}"; + if (instance_methods.atoms.length !== 0) + instance_methods.atoms[instance_methods.atoms.length] = ",\n"; + instance_methods.atoms[instance_methods.atoms.length] = this.method(new objj_lexer(getterCode)); + if (accessor["readonly"]) + continue; + var setterName = accessor["setter"]; + if (!setterName) + { + var start = property.charAt(0) == '_' ? 1 : 0; + setterName = (start ? "_" : "") + "set" + property.substr(start, 1).toUpperCase() + property.substring(start + 1) + ":"; + } + var setterCode = "(void)" + setterName + "(id)newValue\n{\n"; + if (accessor["copy"]) + setterCode += "if (" + ivar_name + " !== newValue)\n" + ivar_name + " = [newValue copy];\n}"; + else + setterCode += ivar_name + " = newValue;\n}"; + if (instance_methods.atoms.length !== 0) + instance_methods.atoms[instance_methods.atoms.length] = ",\n"; + instance_methods.atoms[instance_methods.atoms.length] = this.method(new objj_lexer(setterCode)); + } + } + else + tokens.previous(); + buffer.atoms[buffer.atoms.length] = "objj_registerClassPair(the_class);\n"; + buffer.atoms[buffer.atoms.length] = "objj_addClassForBundle(the_class, objj_getBundleWithPath(OBJJ_CURRENT_BUNDLE.path));\n"; + } + while ((token = tokens.skip_whitespace())) + { + if (token == TOKEN_PLUS) + { + if (class_methods.atoms.length !== 0) + class_methods.atoms[class_methods.atoms.length] = ", "; + class_methods.atoms[class_methods.atoms.length] = this.method(tokens); + } + else if (token == TOKEN_MINUS) + { + if (instance_methods.atoms.length !== 0) + instance_methods.atoms[instance_methods.atoms.length] = ", "; + instance_methods.atoms[instance_methods.atoms.length] = this.method(tokens); + } + else if (token == TOKEN_PREPROCESSOR) + { + if ((token = tokens.next()) == TOKEN_END) + break; + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected \"@end\", found \"@" + token + "\".")); + } + } + if (instance_methods.atoms.length !== 0) + { + buffer.atoms[buffer.atoms.length] = "class_addMethods(the_class, ["; + buffer.atoms[buffer.atoms.length] = instance_methods; + buffer.atoms[buffer.atoms.length] = "]);\n"; + } + if (class_methods.atoms.length !== 0) + { + buffer.atoms[buffer.atoms.length] = "class_addMethods(meta_class, ["; + buffer.atoms[buffer.atoms.length] = class_methods; + buffer.atoms[buffer.atoms.length] = "]);\n"; + } + buffer.atoms[buffer.atoms.length] = '}'; +} +objj_preprocessor.prototype._import = function(tokens) +{ + this.fragment(); + var path = "", + token = tokens.skip_whitespace(), + isLocal = (token != TOKEN_LESS_THAN); + if (token == TOKEN_LESS_THAN) + { + while((token = tokens.next()) && token != TOKEN_GREATER_THAN) + path += token; + if(!token) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Unterminated import statement.")); + } + else if (token.charAt(0) == TOKEN_DOUBLE_QUOTE) + path = token.substr(1, token.length - 2); + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expecting '<' or '\"', found \"" + token + "\".")); + this._fragments.push(fragment_create_file(path, NULL, isLocal, this._file)); +} +objj_preprocessor.prototype.method = function(tokens) +{ + var buffer = new objj_stringBuffer(), + token, + selector = "", + parameters = []; + while((token = tokens.skip_whitespace()) && token != TOKEN_OPEN_BRACE) + { + if (token == TOKEN_COLON) + { + selector += token; + token = tokens.skip_whitespace(); + if (token == TOKEN_OPEN_PARENTHESIS) + { + while((token = tokens.skip_whitespace()) && token != TOKEN_CLOSE_PARENTHESIS) ; + token = tokens.skip_whitespace(); + } + parameters[parameters.length] = token; + } + else if (token == TOKEN_OPEN_PARENTHESIS) + while((token = tokens.skip_whitespace()) && token != TOKEN_CLOSE_PARENTHESIS) ; + else if (token == TOKEN_COMMA) + { + if ((token = tokens.skip_whitespace()) != TOKEN_PERIOD || tokens.next() != TOKEN_PERIOD || tokens.next() != TOKEN_PERIOD) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Argument list expected after ','.")); + } + else + selector += token; + } + var index = 0, + count = parameters.length; + buffer.atoms[buffer.atoms.length] = "new objj_method(sel_getUid(\""; + buffer.atoms[buffer.atoms.length] = selector; + buffer.atoms[buffer.atoms.length] = "\"), function"; + if (this._flags & OBJJ_PREPROCESSOR_DEBUG_SYMBOLS) + buffer.atoms[buffer.atoms.length] = " $" + this._currentClass + "__" + selector.replace(/:/g, "_"); + buffer.atoms[buffer.atoms.length] = "(self, _cmd"; + for(; index < count; ++index) + { + buffer.atoms[buffer.atoms.length] = ", "; + buffer.atoms[buffer.atoms.length] = parameters[index]; + } + buffer.atoms[buffer.atoms.length] = ")\n{ with(self)\n{"; + buffer.atoms[buffer.atoms.length] = this.preprocess(tokens, NULL, TOKEN_CLOSE_BRACE, TOKEN_OPEN_BRACE); + buffer.atoms[buffer.atoms.length] = "}\n})"; + return buffer; +} +objj_preprocessor.prototype.preprocess = function(tokens, aStringBuffer, terminator, instigator, tuple) +{ + var buffer = aStringBuffer ? aStringBuffer : new objj_stringBuffer(), + count = 0, + token = ""; + if (tuple) + { + tuple[0] = buffer; + var bracket = false, + closures = [0, 0, 0]; + } + while ((token = tokens.next()) && ((token != terminator) || count)) + { + if (tuple) + { + if (token === TOKEN_QUESTION_MARK) + ++closures[2]; + else if (token === TOKEN_OPEN_BRACE) + ++closures[0]; + else if (token === TOKEN_CLOSE_BRACE) + --closures[0]; + else if (token === TOKEN_OPEN_PARENTHESIS) + ++closures[1]; + else if (token === TOKEN_CLOSE_PARENTHESIS) + --closures[1]; + else if ((token === TOKEN_COLON && closures[2]-- === 0 || + (bracket = (token === TOKEN_CLOSE_BRACKET))) && + closures[0] === 0 && closures[1] === 0) + { + tokens.push(); + var label = bracket ? tokens.skip_whitespace(true) : tokens.previous(), + isEmptyLabel = TOKEN_WHITESPACE.test(label); + if (isEmptyLabel || TOKEN_IDENTIFIER.test(label) && TOKEN_WHITESPACE.test(tokens.previous())) + { + tokens.push(); + var last = tokens.skip_whitespace(true), + operatorCheck = true, + isDoubleOperator = false; + if (last === '+' || last === '-'){ + if (tokens.previous() !== last) + operatorCheck = false; + else + { + last = tokens.skip_whitespace(true); + isDoubleOperator = true; + }} + tokens.pop(); + tokens.pop(); + if (operatorCheck && ( + (!isDoubleOperator && (last === TOKEN_CLOSE_BRACE)) || + last === TOKEN_CLOSE_PARENTHESIS || last === TOKEN_CLOSE_BRACKET || + last === TOKEN_PERIOD || TOKEN_NUMBER.test(last) || + last.charAt(last.length - 1) === '\"' || last.charAt(last.length - 1) === '\'' || + TOKEN_IDENTIFIER.test(last) && !/^(new|return|case|var)$/.test(last))) + { + if (isEmptyLabel) + tuple[1] = ':'; + else + { + tuple[1] = label; + if (!bracket) + tuple[1] += ':'; + var count = buffer.atoms.length; + while (buffer.atoms[count--] !== label) ; + buffer.atoms.length = count; + } + return !bracket; + } + if (bracket) + return NO; + } + tokens.pop(); + if (bracket) + return NO; + } + closures[2] = MAX(closures[2], 0); + } + if (instigator) + { + if (token == instigator) + ++count; + else if (token == terminator) + --count; + } + if(token == TOKEN_IMPORT) + { + objj_fprintf(warning_stream, this._file.path + ": import keyword is deprecated, use @import instead."); + this._import(tokens); + } + else if (token === TOKEN_FUNCTION) + { + var accumulator = ""; + while((token = tokens.next()) && token != TOKEN_OPEN_PARENTHESIS && !(/^\w/).test(token)) + accumulator += token; + if (token === TOKEN_OPEN_PARENTHESIS) + { + buffer.atoms[buffer.atoms.length] = "function" + accumulator + '('; + if (tuple) + ++closures[1]; + } + else + { + buffer.atoms[buffer.atoms.length] = token + "= function"; + } + } + else if (token == TOKEN_PREPROCESSOR) + this.directive(tokens, buffer); + else if (token == TOKEN_OPEN_BRACKET) + this.brackets(tokens, buffer); + else + buffer.atoms[buffer.atoms.length] = token; + } + if (tuple) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected ']' - Unterminated message send or array.")); + if (!aStringBuffer) + return buffer; +} +objj_preprocessor.prototype.selector = function(tokens, aStringBuffer) +{ + var buffer = aStringBuffer ? aStringBuffer : new objj_stringBuffer(); + buffer.atoms[buffer.atoms.length] = "sel_getUid(\""; + if (tokens.skip_whitespace() != TOKEN_OPEN_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Expected '('")); + var selector = tokens.skip_whitespace(); + if (selector == TOKEN_CLOSE_PARENTHESIS) + objj_exception_throw(new objj_exception(OBJJParseException, "*** Unexpected ')', can't have empty @selector()")); + aStringBuffer.atoms[aStringBuffer.atoms.length] = selector; + var token, + starting = true; + while ((token = tokens.next()) && token != TOKEN_CLOSE_PARENTHESIS) + { + if (starting && /^\d+$/.test(token) || !(/^(\w|$|\:)/.test(token))) + { + if (!(/\S/).test(token)) + if (tokens.skip_whitespace() == TOKEN_CLOSE_PARENTHESIS) + break; + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Unexpected whitespace in @selector().")); + else + objj_exception_throw(new objj_exception(OBJJParseException, "*** Illegal character '" + token + "' in @selector().")); + } + buffer.atoms[buffer.atoms.length] = token; + starting = (token == TOKEN_COLON); + } + buffer.atoms[buffer.atoms.length] = "\")"; + if (!aStringBuffer) + return buffer; +} +var objj_included_files = { }; +var FRAGMENT_CODE = 1, + FRAGMENT_FILE = 1 << 2, + FRAGMENT_LOCAL = 1 << 3; +function objj_fragment() +{ + this.info = NULL; + this.type = 0; + this.context = NULL; + this.bundle = NULL; + this.file = NULL; +} +function objj_context() +{ + this.fragments = []; + this.scheduled = NO; + this.blocked = NO; +} +objj_fragment.prototype.toMarkedString = function() +{ + return (this.type & FRAGMENT_FILE) ? ((this.type & FRAGMENT_LOCAL) ? MARKER_IMPORT_LOCAL : MARKER_IMPORT_STD) + ';' + this.info.length + ';' + this.info : + MARKER_CODE + ';' + this.info.length + ';' + this.info; +} +function fragment_create_code(aCode, aBundle, aFile) +{ + var fragment = new objj_fragment(); + fragment.type = (FRAGMENT_CODE); + fragment.info = (aCode); + fragment.bundle = aBundle; + fragment.file = aFile; + return fragment; +} +function fragment_create_file(aPath, aBundle, isLocal, aFile) +{ + var fragment = new objj_fragment(); + fragment.type = (FRAGMENT_FILE | (FRAGMENT_LOCAL * isLocal)); + fragment.info = aPath; + fragment.bundle = aBundle; + fragment.file = aFile; + return fragment; +} +objj_context.prototype.evaluate = function() +{ + this.scheduled = NO; + if (this.blocked) + return this.schedule(); + var sleep = NO, + start = new Date(), + fragments = this.fragments; + while (!sleep && fragments.length) + { + var fragment = fragments.pop(); + if ((fragment.type & FRAGMENT_FILE)) + sleep = fragment_evaluate_file(fragment); + else + sleep = fragment_evaluate_code(fragment); + sleep = sleep || ((new Date() - start) > 3000); + } + if (sleep) + this.schedule(); + else if (this.didCompleteCallback) + this.didCompleteCallback(this); +} +objj_context.prototype.schedule = function() +{ + if (this.scheduled) + return; + this.scheduled = YES; + var context = this; + window.setNativeTimeout(function () { context.evaluate(); }, 0); +} +objj_context.prototype.pushFragment = function(aFragment) +{ + aFragment.context = this; + this.fragments.push(aFragment); +} +function fragment_evaluate_code(aFragment) +{ + var compiled; + OBJJ_CURRENT_BUNDLE = aFragment.bundle; + try + { + compiled = eval("function(){"+aFragment.info+"}"); + } + catch(anException) + { + objj_exception_report(anException, aFragment.file); + } + try + { + compiled(); + } + catch(anException) + { + objj_exception_report(anException, aFragment.file); + } + return NO; +} +function fragment_evaluate_file(aFragment) +{ + var context = aFragment.context, + requiresSleep = YES; + context.blocked = YES; + objj_request_file(aFragment.info, (aFragment.type & FRAGMENT_LOCAL), function(aFile) + { + requiresSleep = NO; + context.blocked = NO; + if (aFile == OBJJ_NO_FILE) + objj_alert("uh oh!"); + if (objj_included_files[aFile.path]) + return; + objj_included_files[aFile.path] = YES; + if (!aFile.fragments) + aFile.fragments = objj_preprocess(aFile.contents, aFile.bundle, aFile, OBJJ_PREPROCESSOR_DEBUG_SYMBOLS); + var fragments = aFile.fragments, + count = fragments.length, + directory = aFile.path.substr(0, aFile.path.lastIndexOf('/') + 1); + while (count--) + { + var fragment = fragments[count]; + if ((fragment.type & FRAGMENT_FILE)) + { + if ((fragment.type & FRAGMENT_LOCAL)) + fragment.info = directory + fragment.info; + objj_request_file(fragment.info, (fragment.type & FRAGMENT_LOCAL), NULL); + } + context.pushFragment(fragment); + } + }); + return requiresSleep; +} +function objj_import( pathOrPaths, isLocal, didCompleteCallback) +{ + var context = new objj_context(), + paths = pathOrPaths; + if (typeof paths === "string") + paths = [paths]; + var index = 0, + count = paths.length; + for (; index < count; ++index) + context.pushFragment(fragment_create_file(paths[index], new objj_bundle(""), isLocal, NULL)); + context.didCompleteCallback = didCompleteCallback; + context.evaluate(); +} +function objj_backtrace_format(aReceiver, aSelector) +{ + return "[<" + (((aReceiver.info & (CLS_META))) ? aReceiver : aReceiver.isa).name + " " + (typeof sprintf == "function" ? sprintf("%#08x", aReceiver.__address) : aReceiver.__address.toString(16)) + "> " + aSelector + "]"; +} +function objj_msgSend_Backtrace( aReceiver, aSelector) +{ + if (aReceiver == nil) + return nil; + objj_debug_backtrace.push(objj_backtrace_format(aReceiver, aSelector)); + try + { + var result = class_getMethodImplementation(aReceiver.isa, aSelector).apply(aReceiver, arguments); + } + catch (anException) + { + CPLog.error("Exception " + anException + " in " + objj_backtrace_format(aReceiver, aSelector)); + objj_debug_print_backtrace(); + } + objj_debug_backtrace.pop(); + return result; +} +function objj_msgSendSuper_Backtrace( aSuper, aSelector) +{ + objj_debug_backtrace.push(objj_backtrace_format(aSuper.receiver, aSelector)); + var super_class = aSuper.super_class; + arguments[0] = aSuper.receiver; + try + { + var result = class_getMethodImplementation(super_class, aSelector).apply(aSuper.receiver, arguments); + } + catch (anException) + { + CPLog.error("Exception " + anException + " in " + objj_backtrace_format(aSuper.receiver, aSelector)); + objj_debug_print_backtrace(); + } + objj_debug_backtrace.pop(); + return result; +} +function objj_msgSend_Profile( aReceiver, aSelector) +{ + if (aReceiver == nil) + return nil; + var profileRecord = { + parent : objj_debug_profile, + receiver : (((aReceiver.info & (CLS_META))) ? aReceiver : aReceiver.isa).name, + selector : aSelector, + calls : [] + } + objj_debug_profile.calls.push(profileRecord); + objj_debug_profile = profileRecord; + profileRecord.start = new Date(); + var result = class_getMethodImplementation(aReceiver.isa, aSelector).apply(aReceiver, arguments); + profileRecord.end = new Date(); + objj_debug_profile = profileRecord.parent; + return result; +} +function objj_msgSendSuper_Profile( aSuper, aSelector) +{ + var profileRecord = { + parent : objj_debug_profile, + receiver : (((aReceiver.info & (CLS_META))) ? aReceiver : aReceiver.isa).name, + selector : aSelector, + calls : [] + } + objj_debug_profile.calls.push(profileRecord); + objj_debug_profile = profileRecord; + profileRecord.start = new Date(); + var super_class = aSuper.super_class; + arguments[0] = aSuper.receiver; + var result = class_getMethodImplementation(super_class, aSelector).apply(aSuper.receiver, arguments); + profileRecord.end = new Date(); + objj_debug_profile = profileRecord.parent; + return result; +} +var objj_msgSend_Standard = objj_msgSend, + objj_msgSendSuper_Standard = objj_msgSendSuper; +var objj_debug_backtrace; +function objj_backtrace_set_enabled(enabled) +{ + if (enabled) + { + objj_debug_backtrace = []; + objj_msgSend = objj_msgSend_Backtrace; + objj_msgSendSuper = objj_msgSendSuper_Backtrace; + } + else + { + objj_msgSend = objj_msgSend_Standard; + objj_msgSendSuper = objj_msgSendSuper_Standard; + } +} +function objj_debug_print_backtrace() +{ + print(objj_debug_backtrace_string()); +} +function objj_debug_backtrace_string() +{ + return objj_debug_backtrace ? objj_debug_backtrace.join("\n") : ""; +} +var objj_debug_profile = null, + objj_currently_profiling = false, + objj_profile_cleanup; +function objj_profile(title) +{ + if (objj_currently_profiling) + return; + var objj_msgSend_profile_saved = objj_msgSend, + objj_msgSendSuper_profile_saved = objj_msgSendSuper; + objj_msgSend = objj_msgSend_Profile; + objj_msgSendSuper = objj_msgSendSuper_Profile; + var root = { calls: [] }; + objj_debug_profile = root; + var context = { + start : new Date(), + title : title, + profile : root + }; + objj_profile_cleanup = function() { + objj_msgSend = objj_msgSend_profile_saved; + objj_msgSendSuper = objj_msgSendSuper_profile_saved; + context.end = new Date(); + return context; + } + objj_currently_profiling = true; +} +function objj_profileEnd() +{ + if (!objj_currently_profiling) + return; + objj_debug_profile = null; + objj_currently_profiling = false; + return objj_profile_cleanup(); +} +if (window.OBJJ_MAIN_FILE) + objj_import(OBJJ_MAIN_FILE, YES, function() { main(); }); diff --git a/src/main/webapp/Info.plist b/src/main/webapp/Info.plist new file mode 100644 index 0000000..a538adc --- /dev/null +++ b/src/main/webapp/Info.plist @@ -0,0 +1,12 @@ + + + + + CPApplicationDelegateClass + AppController + CPBundleName + NewApplication + CPPrincipalClass + CPApplication + + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..6774710 --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,21 @@ + + + + + + + LiftFilter + Lift Filter + The Filter that intercepts lift calls + net.liftweb.http.LiftFilter + + + + + LiftFilter + /* + + + diff --git a/src/main/webapp/capp.html b/src/main/webapp/capp.html new file mode 100644 index 0000000..7e43b42 --- /dev/null +++ b/src/main/webapp/capp.html @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/main/webapp/cappuccino/Resources/spinner.gif b/src/main/webapp/cappuccino/Resources/spinner.gif new file mode 100644 index 0000000..06dbc2b Binary files /dev/null and b/src/main/webapp/cappuccino/Resources/spinner.gif differ diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html new file mode 100644 index 0000000..650c994 --- /dev/null +++ b/src/main/webapp/index.html @@ -0,0 +1,21 @@ + +

Welcome to your project!

+

+ Welcome to the Lift and + Cappuccino demo. It's pretty + simple. +

    +
  1. + There's a text field and a button. Enter text into the text + field and it'll get sent via Ajax to the server and the server will send + make a callback on the client, updating text on the screen. +
  2. + +
  3. + There's a clock on the screen. It's updated via Comet push + every 3 seconds. +
  4. +
+

+
+ diff --git a/src/main/webapp/main.j b/src/main/webapp/main.j new file mode 100755 index 0000000..bd93a91 --- /dev/null +++ b/src/main/webapp/main.j @@ -0,0 +1,18 @@ +/* + * AppController.j + * NewApplication + * + * Created by You on July 5, 2009. + * Copyright 2009, Your Company All rights reserved. + */ + +@import +@import + +@import "AppController.j" + + +function main(args, namedArgs) +{ + CPApplicationMain(args, namedArgs); +} diff --git a/src/main/webapp/static/index.html b/src/main/webapp/static/index.html new file mode 100644 index 0000000..da55058 --- /dev/null +++ b/src/main/webapp/static/index.html @@ -0,0 +1,5 @@ + + Static content... everything you put in the /static + directory will be served without additions to SiteMap + + diff --git a/src/main/webapp/templates-hidden/capp_template.html b/src/main/webapp/templates-hidden/capp_template.html new file mode 100644 index 0000000..7aefb96 --- /dev/null +++ b/src/main/webapp/templates-hidden/capp_template.html @@ -0,0 +1,54 @@ + + + + + + + + NewApplication + + + + + + + + + + + + +

+ + "Loading NewApplication...

+ + + + diff --git a/src/main/webapp/templates-hidden/default.html b/src/main/webapp/templates-hidden/default.html new file mode 100644 index 0000000..ffb45d4 --- /dev/null +++ b/src/main/webapp/templates-hidden/default.html @@ -0,0 +1,81 @@ + + + + + + + Lift Web Framework + + +