From 9db6d7c623c5e9c7b206e4fed531dad61672331f Mon Sep 17 00:00:00 2001 From: David Pollak Date: Thu, 3 Sep 2009 14:52:26 -0700 Subject: [PATCH] Initial stable at Lift/Cappuccino integration --- .gitignore | 41 + pom.xml | 163 + src/main/scala/bootstrap/liftweb/Boot.scala | 87 + src/main/scala/com/liftcode/comet/.keep | 0 src/main/scala/com/liftcode/comet/Clock.scala | 37 + src/main/scala/com/liftcode/lib/.keep | 0 src/main/scala/com/liftcode/model/.keep | 0 src/main/scala/com/liftcode/model/User.scala | 35 + src/main/scala/com/liftcode/snippet/.keep | 0 .../com/liftcode/snippet/CalAjaxCall.scala | 37 + src/main/scala/com/liftcode/view/.keep | 0 src/main/webapp/AppController.j | 126 + src/main/webapp/Frameworks/AppKit/Info.plist | 118 + .../AppKit/Resources/Aristo.blend/Aristo.sj | 1 + .../AppKit/Resources/Aristo.blend/Info.plist | 1 + .../Resources/HUD/button-bezel-center.png | Bin 0 -> 141 bytes .../HUD/button-bezel-highlighted-center.png | Bin 0 -> 151 bytes .../HUD/button-bezel-highlighted-left.png | Bin 0 -> 588 bytes .../HUD/button-bezel-highlighted-right.png | Bin 0 -> 566 bytes .../Resources/HUD/button-bezel-left.png | Bin 0 -> 600 bytes .../Resources/HUD/button-bezel-right.png | Bin 0 -> 572 bytes .../Resources/button-bezel-center.png | Bin 0 -> 139 bytes .../button-bezel-highlighted-center.png | Bin 0 -> 136 bytes .../button-bezel-highlighted-left.png | Bin 0 -> 225 bytes .../button-bezel-highlighted-right.png | Bin 0 -> 230 bytes .../Resources/button-bezel-left.png | Bin 0 -> 212 bytes .../Resources/button-bezel-right.png | Bin 0 -> 215 bytes .../Resources/buttonbar-bezel-right.png | Bin 0 -> 340 bytes .../Resources/buttonbar-bezel.png | Bin 0 -> 122 bytes .../Resources/check-box-bezel-selected.png | Bin 0 -> 617 bytes .../Resources/check-box-bezel.png | Bin 0 -> 269 bytes .../Resources/default-button-bezel-center.png | Bin 0 -> 147 bytes ...efault-button-bezel-highlighted-center.png | Bin 0 -> 146 bytes .../default-button-bezel-highlighted-left.png | Bin 0 -> 246 bytes ...default-button-bezel-highlighted-right.png | Bin 0 -> 253 bytes .../Resources/default-button-bezel-left.png | Bin 0 -> 257 bytes .../Resources/default-button-bezel-right.png | Bin 0 -> 254 bytes .../Resources/horizontal-track-center.png | Bin 0 -> 118 bytes .../Resources/horizontal-track-left.png | Bin 0 -> 178 bytes .../Resources/horizontal-track-right.png | Bin 0 -> 179 bytes .../Resources/knob-highlighted.png | Bin 0 -> 947 bytes .../Resources/Aristo.blend/Resources/knob.png | Bin 0 -> 813 bytes .../Resources/popup-arrows-pullsdown.png | Bin 0 -> 227 bytes .../Aristo.blend/Resources/popup-arrows.png | Bin 0 -> 307 bytes .../Resources/popup-bezel-right-pullsdown.png | Bin 0 -> 464 bytes .../Resources/popup-bezel-right.png | Bin 0 -> 590 bytes .../Resources/radio-bezel-selected.png | Bin 0 -> 698 bytes .../Aristo.blend/Resources/radio-bezel.png | Bin 0 -> 577 bytes .../scroller-down-arrow-disabled.png | Bin 0 -> 426 bytes .../scroller-down-arrow-highlighted.png | Bin 0 -> 733 bytes .../Resources/scroller-down-arrow.png | Bin 0 -> 589 bytes .../scroller-horizontal-knob-center.png | Bin 0 -> 135 bytes .../scroller-horizontal-knob-left.png | Bin 0 -> 356 bytes .../scroller-horizontal-knob-right.png | Bin 0 -> 370 bytes .../scroller-horizontal-track-disabled.png | Bin 0 -> 123 bytes .../Resources/scroller-horizontal-track.png | Bin 0 -> 139 bytes .../scroller-left-arrow-disabled.png | Bin 0 -> 570 bytes .../scroller-left-arrow-highlighted.png | Bin 0 -> 774 bytes .../Resources/scroller-left-arrow.png | Bin 0 -> 685 bytes .../scroller-right-arrow-disabled.png | Bin 0 -> 549 bytes .../scroller-right-arrow-highlighted.png | Bin 0 -> 749 bytes .../Resources/scroller-right-arrow.png | Bin 0 -> 674 bytes .../Resources/scroller-up-arrow-disabled.png | Bin 0 -> 393 bytes .../scroller-up-arrow-highlighted.png | Bin 0 -> 681 bytes .../Resources/scroller-up-arrow.png | Bin 0 -> 627 bytes .../scroller-vertical-knob-bottom.png | Bin 0 -> 369 bytes .../scroller-vertical-knob-center.png | Bin 0 -> 135 bytes .../Resources/scroller-vertical-knob-top.png | Bin 0 -> 314 bytes .../scroller-vertical-track-disabled.png | Bin 0 -> 118 bytes .../Resources/scroller-vertical-track.png | Bin 0 -> 134 bytes .../segmented-control-bezel-center.png | Bin 0 -> 139 bytes .../segmented-control-bezel-divider.png | Bin 0 -> 130 bytes ...ented-control-bezel-highlighted-center.png | Bin 0 -> 147 bytes ...nted-control-bezel-highlighted-divider.png | Bin 0 -> 137 bytes ...gmented-control-bezel-highlighted-left.png | Bin 0 -> 256 bytes ...mented-control-bezel-highlighted-right.png | Bin 0 -> 253 bytes ...egmented-control-bezel-inactive-center.png | Bin 0 -> 140 bytes ...gmented-control-bezel-inactive-divider.png | Bin 0 -> 133 bytes .../segmented-control-bezel-inactive-left.png | Bin 0 -> 228 bytes ...segmented-control-bezel-inactive-right.png | Bin 0 -> 228 bytes .../segmented-control-bezel-left.png | Bin 0 -> 214 bytes .../segmented-control-bezel-pushed-center.png | Bin 0 -> 136 bytes ...ontrol-bezel-pushed-highlighted-center.png | Bin 0 -> 146 bytes ...-control-bezel-pushed-highlighted-left.png | Bin 0 -> 247 bytes ...control-bezel-pushed-highlighted-right.png | Bin 0 -> 256 bytes .../segmented-control-bezel-pushed-left.png | Bin 0 -> 212 bytes .../segmented-control-bezel-pushed-right.png | Bin 0 -> 216 bytes .../segmented-control-bezel-right.png | Bin 0 -> 210 bytes .../Resources/slider-circular-bezel.png | Bin 0 -> 1013 bytes .../Resources/slider-circular-knob.png | Bin 0 -> 185 bytes .../Aristo.blend/Resources/spinner.gif | Bin 0 -> 1849 bytes .../textfield-bezel-rounded-center.png | Bin 0 -> 123 bytes ...textfield-bezel-rounded-focused-center.png | Bin 0 -> 149 bytes .../textfield-bezel-rounded-focused-left.png | Bin 0 -> 757 bytes .../textfield-bezel-rounded-focused-right.png | Bin 0 -> 735 bytes .../textfield-bezel-rounded-left.png | Bin 0 -> 559 bytes .../textfield-bezel-rounded-right.png | Bin 0 -> 531 bytes .../Resources/textfield-bezel-square-0.png | Bin 0 -> 122 bytes .../Resources/textfield-bezel-square-1.png | Bin 0 -> 114 bytes .../Resources/textfield-bezel-square-2.png | Bin 0 -> 123 bytes .../Resources/textfield-bezel-square-3.png | Bin 0 -> 109 bytes .../Resources/textfield-bezel-square-4.png | Bin 0 -> 106 bytes .../Resources/textfield-bezel-square-5.png | Bin 0 -> 109 bytes .../Resources/textfield-bezel-square-6.png | Bin 0 -> 116 bytes .../Resources/textfield-bezel-square-7.png | Bin 0 -> 110 bytes .../Resources/textfield-bezel-square-8.png | Bin 0 -> 116 bytes .../textfield-bezel-square-focused-0.png | Bin 0 -> 196 bytes .../textfield-bezel-square-focused-1.png | Bin 0 -> 132 bytes .../textfield-bezel-square-focused-2.png | Bin 0 -> 205 bytes .../textfield-bezel-square-focused-3.png | Bin 0 -> 124 bytes .../textfield-bezel-square-focused-4.png | Bin 0 -> 106 bytes .../textfield-bezel-square-focused-5.png | Bin 0 -> 123 bytes .../textfield-bezel-square-focused-6.png | Bin 0 -> 174 bytes .../textfield-bezel-square-focused-7.png | Bin 0 -> 120 bytes .../textfield-bezel-square-focused-8.png | Bin 0 -> 174 bytes .../Resources/vertical-track-bottom.png | Bin 0 -> 162 bytes .../Resources/vertical-track-center.png | Bin 0 -> 115 bytes .../Resources/vertical-track-top.png | Bin 0 -> 185 bytes .../AppKit/Resources/CPAlert/LICENSE | 58 + .../AppKit/Resources/CPAlert/dialog-error.png | Bin 0 -> 1656 bytes .../Resources/CPAlert/dialog-information.png | Bin 0 -> 1899 bytes .../Resources/CPAlert/dialog-warning.png | Bin 0 -> 1399 bytes .../AppKit/Resources/CPApplication/New.png | Bin 0 -> 497 bytes .../CPApplication/NewHighlighted.png | Bin 0 -> 486 bytes .../AppKit/Resources/CPApplication/Open.png | Bin 0 -> 617 bytes .../CPApplication/OpenHighlighted.png | Bin 0 -> 578 bytes .../AppKit/Resources/CPApplication/Save.png | Bin 0 -> 438 bytes .../CPApplication/SaveHighlighted.png | Bin 0 -> 462 bytes .../CPImageViewBottomLeftShadow.png | Bin 0 -> 206 bytes .../CPImageViewBottomRightShadow.png | Bin 0 -> 206 bytes .../CPImageView/CPImageViewBottomShadow.png | Bin 0 -> 125 bytes .../CPImageView/CPImageViewLeftShadow.png | Bin 0 -> 112 bytes .../CPImageView/CPImageViewRightShadow.png | Bin 0 -> 116 bytes .../CPImageView/CPImageViewTopLeftShadow.png | Bin 0 -> 182 bytes .../CPImageView/CPImageViewTopRightShadow.png | Bin 0 -> 190 bytes .../CPImageView/CPImageViewTopShadow.png | Bin 0 -> 115 bytes .../CPMenuItem/CPMenuItemOnState.png | Bin 0 -> 177 bytes .../CPMenuItemOnStateHighlighted.png | Bin 0 -> 167 bytes .../CPProgressIndicatorBarBarRegular.png | Bin 0 -> 135 bytes .../CPProgressIndicatorBarHUDBarSmall.png | Bin 0 -> 123 bytes ...rogressIndicatorBezelBorderBarRegular0.png | Bin 0 -> 139 bytes ...rogressIndicatorBezelBorderBarRegular1.png | Bin 0 -> 122 bytes ...rogressIndicatorBezelBorderBarRegular2.png | Bin 0 -> 141 bytes ...ogressIndicatorBezelBorderHUDBarSmall0.png | Bin 0 -> 138 bytes ...ogressIndicatorBezelBorderHUDBarSmall1.png | Bin 0 -> 118 bytes ...ogressIndicatorBezelBorderHUDBarSmall2.png | Bin 0 -> 139 bytes ...PProgressIndicatorSpinningStyleRegular.gif | Bin 0 -> 4481 bytes .../CPShadowView/CPShadowViewHeavyBottom.png | Bin 0 -> 123 bytes .../CPShadowViewHeavyBottomLeft.png | Bin 0 -> 265 bytes .../CPShadowViewHeavyBottomRight.png | Bin 0 -> 271 bytes .../CPShadowView/CPShadowViewHeavyLeft.png | Bin 0 -> 128 bytes .../CPShadowView/CPShadowViewHeavyRight.png | Bin 0 -> 126 bytes .../CPShadowView/CPShadowViewHeavyTop.png | Bin 0 -> 125 bytes .../CPShadowView/CPShadowViewHeavyTopLeft.png | Bin 0 -> 243 bytes .../CPShadowViewHeavyTopRight.png | Bin 0 -> 270 bytes .../CPShadowView/CPShadowViewLightBottom.png | Bin 0 -> 125 bytes .../CPShadowViewLightBottomLeft.png | Bin 0 -> 206 bytes .../CPShadowViewLightBottomRight.png | Bin 0 -> 206 bytes .../CPShadowView/CPShadowViewLightLeft.png | Bin 0 -> 118 bytes .../CPShadowView/CPShadowViewLightRight.png | Bin 0 -> 116 bytes .../CPShadowView/CPShadowViewLightTop.png | Bin 0 -> 123 bytes .../CPShadowView/CPShadowViewLightTopLeft.png | Bin 0 -> 182 bytes .../CPShadowViewLightTopRight.png | Bin 0 -> 190 bytes .../CPSplitView/CPSplitViewHorizontal.png | Bin 0 -> 128 bytes .../CPSplitView/CPSplitViewVertical.png | Bin 0 -> 128 bytes .../CPTabViewBezelBackgroundCenter.png | Bin 0 -> 106 bytes .../CPTabView/CPTabViewBezelBorder.png | Bin 0 -> 106 bytes .../CPTabView/CPTabViewBezelBorderLeft.png | Bin 0 -> 118 bytes .../CPTabView/CPTabViewBezelBorderRight.png | Bin 0 -> 121 bytes .../CPTabView/_CPTabLabelBackgroundCenter.png | Bin 0 -> 142 bytes .../CPTabView/_CPTabLabelBackgroundLeft.png | Bin 0 -> 245 bytes .../CPTabView/_CPTabLabelBackgroundRight.png | Bin 0 -> 241 bytes .../CPTabView/_CPTabLabelSelectedCenter.png | Bin 0 -> 126 bytes .../CPTabView/_CPTabLabelSelectedLeft.png | Bin 0 -> 180 bytes .../CPTabView/_CPTabLabelSelectedRight.png | Bin 0 -> 181 bytes .../CPTabView/_CPTabLabelsViewCenter.png | Bin 0 -> 146 bytes .../CPTabView/_CPTabLabelsViewLeft.png | Bin 0 -> 322 bytes .../CPTabView/_CPTabLabelsViewRight.png | Bin 0 -> 339 bytes .../CPToolbarItem/CPToolbarItemSeparator0.png | Bin 0 -> 158 bytes .../CPToolbarItem/CPToolbarItemSeparator1.png | Bin 0 -> 111 bytes .../CPToolbarItem/CPToolbarItemSeparator2.png | Bin 0 -> 157 bytes .../Resources/CPWindow/CPWindowShadow0.png | Bin 0 -> 245 bytes .../Resources/CPWindow/CPWindowShadow1.png | Bin 0 -> 131 bytes .../Resources/CPWindow/CPWindowShadow2.png | Bin 0 -> 251 bytes .../Resources/CPWindow/CPWindowShadow3.png | Bin 0 -> 124 bytes .../Resources/CPWindow/CPWindowShadow4.png | Bin 0 -> 107 bytes .../Resources/CPWindow/CPWindowShadow5.png | Bin 0 -> 124 bytes .../Resources/CPWindow/CPWindowShadow6.png | Bin 0 -> 258 bytes .../Resources/CPWindow/CPWindowShadow7.png | Bin 0 -> 128 bytes .../Resources/CPWindow/CPWindowShadow8.png | Bin 0 -> 260 bytes .../CPWindow/HUD/CPWindowHUDBackground0.png | Bin 0 -> 311 bytes .../CPWindow/HUD/CPWindowHUDBackground1.png | Bin 0 -> 179 bytes .../CPWindow/HUD/CPWindowHUDBackground2.png | Bin 0 -> 331 bytes .../CPWindow/HUD/CPWindowHUDBackground3.png | Bin 0 -> 114 bytes .../CPWindow/HUD/CPWindowHUDBackground4.png | Bin 0 -> 107 bytes .../CPWindow/HUD/CPWindowHUDBackground5.png | Bin 0 -> 114 bytes .../CPWindow/HUD/CPWindowHUDBackground6.png | Bin 0 -> 182 bytes .../CPWindow/HUD/CPWindowHUDBackground7.png | Bin 0 -> 115 bytes .../CPWindow/HUD/CPWindowHUDBackground8.png | Bin 0 -> 185 bytes ...CPWindowStandardCLoseButtonHighlighted.png | Bin 0 -> 589 bytes .../Standard/CPWindowStandardCloseButton.png | Bin 0 -> 608 bytes .../Standard/CPWindowStandardTop0.png | Bin 0 -> 187 bytes .../Standard/CPWindowStandardTop1.png | Bin 0 -> 128 bytes .../Standard/CPWindowStandardTop2.png | Bin 0 -> 188 bytes .../Resources/CPWindowResizeIndicator.png | Bin 0 -> 189 bytes .../AppKit/Resources/FIXME_ImageShadow.png | Bin 0 -> 561 bytes .../AppKit/Resources/HUDTheme/WindowClose.png | Bin 0 -> 349 bytes .../Resources/HUDTheme/WindowCloseActive.png | Bin 0 -> 663 bytes .../_CPMenuBarWindowBackground.png | Bin 0 -> 137 bytes .../_CPMenuWindow/_CPMenuWindow1.png | Bin 0 -> 116 bytes .../_CPMenuWindow/_CPMenuWindow3.png | Bin 0 -> 109 bytes .../_CPMenuWindow/_CPMenuWindow4.png | Bin 0 -> 106 bytes .../_CPMenuWindow/_CPMenuWindow5.png | Bin 0 -> 109 bytes .../_CPMenuWindow/_CPMenuWindow7.png | Bin 0 -> 112 bytes .../_CPMenuWindow/_CPMenuWindowMoreAbove.png | Bin 0 -> 216 bytes .../_CPMenuWindow/_CPMenuWindowMoreBelow.png | Bin 0 -> 221 bytes .../_CPMenuWindow/_CPMenuWindowRounded0.png | Bin 0 -> 148 bytes .../_CPMenuWindow/_CPMenuWindowRounded2.png | Bin 0 -> 148 bytes .../_CPMenuWindow/_CPMenuWindowRounded6.png | Bin 0 -> 139 bytes .../_CPMenuWindow/_CPMenuWindowRounded8.png | Bin 0 -> 142 bytes .../_CPToolbarViewBackground.png | Bin 0 -> 185 bytes ..._CPToolbarViewExtraItemsAlternateImage.png | Bin 0 -> 419 bytes .../_CPToolbarViewExtraItemsImage.png | Bin 0 -> 427 bytes .../_CPWindowViewResizeIndicator.png | Bin 0 -> 189 bytes .../AppKit/Resources/brightness_bar.png | Bin 0 -> 232 bytes .../AppKit/Resources/color_well.png | Bin 0 -> 219 bytes .../AppKit/Resources/slider_button.png | Bin 0 -> 253 bytes .../AppKit/Resources/slider_button_h.png | Bin 0 -> 252 bytes .../Frameworks/AppKit/Resources/wheel.png | Bin 0 -> 81812 bytes .../AppKit/Resources/wheel_black.png | Bin 0 -> 8385 bytes .../AppKit/Resources/wheel_button.png | Bin 0 -> 2013 bytes .../AppKit/Resources/wheel_button_h.png | Bin 0 -> 1869 bytes .../AppKit/browser.platform/AppKit.sj | 22227 +++++++++++++ .../AppKit/rhino.platform/AppKit.sj | 20978 ++++++++++++ .../webapp/Frameworks/Debug/AppKit/Info.plist | 127 + .../AppKit/Resources/Aristo.blend/Aristo.sj | 1 + .../AppKit/Resources/Aristo.blend/Info.plist | 1 + .../Resources/HUD/button-bezel-center.png | Bin 0 -> 141 bytes .../HUD/button-bezel-highlighted-center.png | Bin 0 -> 151 bytes .../HUD/button-bezel-highlighted-left.png | Bin 0 -> 588 bytes .../HUD/button-bezel-highlighted-right.png | Bin 0 -> 566 bytes .../Resources/HUD/button-bezel-left.png | Bin 0 -> 600 bytes .../Resources/HUD/button-bezel-right.png | Bin 0 -> 572 bytes .../Resources/button-bezel-center.png | Bin 0 -> 139 bytes .../button-bezel-highlighted-center.png | Bin 0 -> 136 bytes .../button-bezel-highlighted-left.png | Bin 0 -> 225 bytes .../button-bezel-highlighted-right.png | Bin 0 -> 230 bytes .../Resources/button-bezel-left.png | Bin 0 -> 212 bytes .../Resources/button-bezel-right.png | Bin 0 -> 215 bytes .../Resources/buttonbar-bezel-right.png | Bin 0 -> 340 bytes .../Resources/buttonbar-bezel.png | Bin 0 -> 122 bytes .../Resources/check-box-bezel-selected.png | Bin 0 -> 617 bytes .../Resources/check-box-bezel.png | Bin 0 -> 269 bytes .../Resources/default-button-bezel-center.png | Bin 0 -> 147 bytes ...efault-button-bezel-highlighted-center.png | Bin 0 -> 146 bytes .../default-button-bezel-highlighted-left.png | Bin 0 -> 246 bytes ...default-button-bezel-highlighted-right.png | Bin 0 -> 253 bytes .../Resources/default-button-bezel-left.png | Bin 0 -> 257 bytes .../Resources/default-button-bezel-right.png | Bin 0 -> 254 bytes .../Resources/horizontal-track-center.png | Bin 0 -> 118 bytes .../Resources/horizontal-track-left.png | Bin 0 -> 178 bytes .../Resources/horizontal-track-right.png | Bin 0 -> 179 bytes .../Resources/knob-highlighted.png | Bin 0 -> 947 bytes .../Resources/Aristo.blend/Resources/knob.png | Bin 0 -> 813 bytes .../Resources/popup-arrows-pullsdown.png | Bin 0 -> 227 bytes .../Aristo.blend/Resources/popup-arrows.png | Bin 0 -> 307 bytes .../Resources/popup-bezel-right-pullsdown.png | Bin 0 -> 464 bytes .../Resources/popup-bezel-right.png | Bin 0 -> 590 bytes .../Resources/radio-bezel-selected.png | Bin 0 -> 698 bytes .../Aristo.blend/Resources/radio-bezel.png | Bin 0 -> 577 bytes .../scroller-down-arrow-disabled.png | Bin 0 -> 426 bytes .../scroller-down-arrow-highlighted.png | Bin 0 -> 733 bytes .../Resources/scroller-down-arrow.png | Bin 0 -> 589 bytes .../scroller-horizontal-knob-center.png | Bin 0 -> 135 bytes .../scroller-horizontal-knob-left.png | Bin 0 -> 356 bytes .../scroller-horizontal-knob-right.png | Bin 0 -> 370 bytes .../scroller-horizontal-track-disabled.png | Bin 0 -> 123 bytes .../Resources/scroller-horizontal-track.png | Bin 0 -> 139 bytes .../scroller-left-arrow-disabled.png | Bin 0 -> 570 bytes .../scroller-left-arrow-highlighted.png | Bin 0 -> 774 bytes .../Resources/scroller-left-arrow.png | Bin 0 -> 685 bytes .../scroller-right-arrow-disabled.png | Bin 0 -> 549 bytes .../scroller-right-arrow-highlighted.png | Bin 0 -> 749 bytes .../Resources/scroller-right-arrow.png | Bin 0 -> 674 bytes .../Resources/scroller-up-arrow-disabled.png | Bin 0 -> 393 bytes .../scroller-up-arrow-highlighted.png | Bin 0 -> 681 bytes .../Resources/scroller-up-arrow.png | Bin 0 -> 627 bytes .../scroller-vertical-knob-bottom.png | Bin 0 -> 369 bytes .../scroller-vertical-knob-center.png | Bin 0 -> 135 bytes .../Resources/scroller-vertical-knob-top.png | Bin 0 -> 314 bytes .../scroller-vertical-track-disabled.png | Bin 0 -> 118 bytes .../Resources/scroller-vertical-track.png | Bin 0 -> 134 bytes .../segmented-control-bezel-center.png | Bin 0 -> 139 bytes .../segmented-control-bezel-divider.png | Bin 0 -> 130 bytes ...ented-control-bezel-highlighted-center.png | Bin 0 -> 147 bytes ...nted-control-bezel-highlighted-divider.png | Bin 0 -> 137 bytes ...gmented-control-bezel-highlighted-left.png | Bin 0 -> 256 bytes ...mented-control-bezel-highlighted-right.png | Bin 0 -> 253 bytes ...egmented-control-bezel-inactive-center.png | Bin 0 -> 140 bytes ...gmented-control-bezel-inactive-divider.png | Bin 0 -> 133 bytes .../segmented-control-bezel-inactive-left.png | Bin 0 -> 228 bytes ...segmented-control-bezel-inactive-right.png | Bin 0 -> 228 bytes .../segmented-control-bezel-left.png | Bin 0 -> 214 bytes .../segmented-control-bezel-pushed-center.png | Bin 0 -> 136 bytes ...ontrol-bezel-pushed-highlighted-center.png | Bin 0 -> 146 bytes ...-control-bezel-pushed-highlighted-left.png | Bin 0 -> 247 bytes ...control-bezel-pushed-highlighted-right.png | Bin 0 -> 256 bytes .../segmented-control-bezel-pushed-left.png | Bin 0 -> 212 bytes .../segmented-control-bezel-pushed-right.png | Bin 0 -> 216 bytes .../segmented-control-bezel-right.png | Bin 0 -> 210 bytes .../Resources/slider-circular-bezel.png | Bin 0 -> 1013 bytes .../Resources/slider-circular-knob.png | Bin 0 -> 185 bytes .../Aristo.blend/Resources/spinner.gif | Bin 0 -> 1849 bytes .../textfield-bezel-rounded-center.png | Bin 0 -> 123 bytes ...textfield-bezel-rounded-focused-center.png | Bin 0 -> 149 bytes .../textfield-bezel-rounded-focused-left.png | Bin 0 -> 757 bytes .../textfield-bezel-rounded-focused-right.png | Bin 0 -> 735 bytes .../textfield-bezel-rounded-left.png | Bin 0 -> 559 bytes .../textfield-bezel-rounded-right.png | Bin 0 -> 531 bytes .../Resources/textfield-bezel-square-0.png | Bin 0 -> 122 bytes .../Resources/textfield-bezel-square-1.png | Bin 0 -> 114 bytes .../Resources/textfield-bezel-square-2.png | Bin 0 -> 123 bytes .../Resources/textfield-bezel-square-3.png | Bin 0 -> 109 bytes .../Resources/textfield-bezel-square-4.png | Bin 0 -> 106 bytes .../Resources/textfield-bezel-square-5.png | Bin 0 -> 109 bytes .../Resources/textfield-bezel-square-6.png | Bin 0 -> 116 bytes .../Resources/textfield-bezel-square-7.png | Bin 0 -> 110 bytes .../Resources/textfield-bezel-square-8.png | Bin 0 -> 116 bytes .../textfield-bezel-square-focused-0.png | Bin 0 -> 196 bytes .../textfield-bezel-square-focused-1.png | Bin 0 -> 132 bytes .../textfield-bezel-square-focused-2.png | Bin 0 -> 205 bytes .../textfield-bezel-square-focused-3.png | Bin 0 -> 124 bytes .../textfield-bezel-square-focused-4.png | Bin 0 -> 106 bytes .../textfield-bezel-square-focused-5.png | Bin 0 -> 123 bytes .../textfield-bezel-square-focused-6.png | Bin 0 -> 174 bytes .../textfield-bezel-square-focused-7.png | Bin 0 -> 120 bytes .../textfield-bezel-square-focused-8.png | Bin 0 -> 174 bytes .../Resources/vertical-track-bottom.png | Bin 0 -> 162 bytes .../Resources/vertical-track-center.png | Bin 0 -> 115 bytes .../Resources/vertical-track-top.png | Bin 0 -> 185 bytes .../Debug/AppKit/Resources/CPAlert/LICENSE | 58 + .../AppKit/Resources/CPAlert/dialog-error.png | Bin 0 -> 1656 bytes .../Resources/CPAlert/dialog-information.png | Bin 0 -> 1899 bytes .../Resources/CPAlert/dialog-warning.png | Bin 0 -> 1399 bytes .../AppKit/Resources/CPApplication/New.png | Bin 0 -> 497 bytes .../CPApplication/NewHighlighted.png | Bin 0 -> 486 bytes .../AppKit/Resources/CPApplication/Open.png | Bin 0 -> 617 bytes .../CPApplication/OpenHighlighted.png | Bin 0 -> 578 bytes .../AppKit/Resources/CPApplication/Save.png | Bin 0 -> 438 bytes .../CPApplication/SaveHighlighted.png | Bin 0 -> 462 bytes .../CPImageViewBottomLeftShadow.png | Bin 0 -> 206 bytes .../CPImageViewBottomRightShadow.png | Bin 0 -> 206 bytes .../CPImageView/CPImageViewBottomShadow.png | Bin 0 -> 125 bytes .../CPImageView/CPImageViewLeftShadow.png | Bin 0 -> 112 bytes .../CPImageView/CPImageViewRightShadow.png | Bin 0 -> 116 bytes .../CPImageView/CPImageViewTopLeftShadow.png | Bin 0 -> 182 bytes .../CPImageView/CPImageViewTopRightShadow.png | Bin 0 -> 190 bytes .../CPImageView/CPImageViewTopShadow.png | Bin 0 -> 115 bytes .../CPMenuItem/CPMenuItemOnState.png | Bin 0 -> 177 bytes .../CPMenuItemOnStateHighlighted.png | Bin 0 -> 167 bytes .../CPProgressIndicatorBarBarRegular.png | Bin 0 -> 135 bytes .../CPProgressIndicatorBarHUDBarSmall.png | Bin 0 -> 123 bytes ...rogressIndicatorBezelBorderBarRegular0.png | Bin 0 -> 139 bytes ...rogressIndicatorBezelBorderBarRegular1.png | Bin 0 -> 122 bytes ...rogressIndicatorBezelBorderBarRegular2.png | Bin 0 -> 141 bytes ...ogressIndicatorBezelBorderHUDBarSmall0.png | Bin 0 -> 138 bytes ...ogressIndicatorBezelBorderHUDBarSmall1.png | Bin 0 -> 118 bytes ...ogressIndicatorBezelBorderHUDBarSmall2.png | Bin 0 -> 139 bytes ...PProgressIndicatorSpinningStyleRegular.gif | Bin 0 -> 4481 bytes .../CPShadowView/CPShadowViewHeavyBottom.png | Bin 0 -> 123 bytes .../CPShadowViewHeavyBottomLeft.png | Bin 0 -> 265 bytes .../CPShadowViewHeavyBottomRight.png | Bin 0 -> 271 bytes .../CPShadowView/CPShadowViewHeavyLeft.png | Bin 0 -> 128 bytes .../CPShadowView/CPShadowViewHeavyRight.png | Bin 0 -> 126 bytes .../CPShadowView/CPShadowViewHeavyTop.png | Bin 0 -> 125 bytes .../CPShadowView/CPShadowViewHeavyTopLeft.png | Bin 0 -> 243 bytes .../CPShadowViewHeavyTopRight.png | Bin 0 -> 270 bytes .../CPShadowView/CPShadowViewLightBottom.png | Bin 0 -> 125 bytes .../CPShadowViewLightBottomLeft.png | Bin 0 -> 206 bytes .../CPShadowViewLightBottomRight.png | Bin 0 -> 206 bytes .../CPShadowView/CPShadowViewLightLeft.png | Bin 0 -> 118 bytes .../CPShadowView/CPShadowViewLightRight.png | Bin 0 -> 116 bytes .../CPShadowView/CPShadowViewLightTop.png | Bin 0 -> 123 bytes .../CPShadowView/CPShadowViewLightTopLeft.png | Bin 0 -> 182 bytes .../CPShadowViewLightTopRight.png | Bin 0 -> 190 bytes .../CPSplitView/CPSplitViewHorizontal.png | Bin 0 -> 128 bytes .../CPSplitView/CPSplitViewVertical.png | Bin 0 -> 128 bytes .../CPTabViewBezelBackgroundCenter.png | Bin 0 -> 106 bytes .../CPTabView/CPTabViewBezelBorder.png | Bin 0 -> 106 bytes .../CPTabView/CPTabViewBezelBorderLeft.png | Bin 0 -> 118 bytes .../CPTabView/CPTabViewBezelBorderRight.png | Bin 0 -> 121 bytes .../CPTabView/_CPTabLabelBackgroundCenter.png | Bin 0 -> 142 bytes .../CPTabView/_CPTabLabelBackgroundLeft.png | Bin 0 -> 245 bytes .../CPTabView/_CPTabLabelBackgroundRight.png | Bin 0 -> 241 bytes .../CPTabView/_CPTabLabelSelectedCenter.png | Bin 0 -> 126 bytes .../CPTabView/_CPTabLabelSelectedLeft.png | Bin 0 -> 180 bytes .../CPTabView/_CPTabLabelSelectedRight.png | Bin 0 -> 181 bytes .../CPTabView/_CPTabLabelsViewCenter.png | Bin 0 -> 146 bytes .../CPTabView/_CPTabLabelsViewLeft.png | Bin 0 -> 322 bytes .../CPTabView/_CPTabLabelsViewRight.png | Bin 0 -> 339 bytes .../CPToolbarItem/CPToolbarItemSeparator0.png | Bin 0 -> 158 bytes .../CPToolbarItem/CPToolbarItemSeparator1.png | Bin 0 -> 111 bytes .../CPToolbarItem/CPToolbarItemSeparator2.png | Bin 0 -> 157 bytes .../Resources/CPWindow/CPWindowShadow0.png | Bin 0 -> 245 bytes .../Resources/CPWindow/CPWindowShadow1.png | Bin 0 -> 131 bytes .../Resources/CPWindow/CPWindowShadow2.png | Bin 0 -> 251 bytes .../Resources/CPWindow/CPWindowShadow3.png | Bin 0 -> 124 bytes .../Resources/CPWindow/CPWindowShadow4.png | Bin 0 -> 107 bytes .../Resources/CPWindow/CPWindowShadow5.png | Bin 0 -> 124 bytes .../Resources/CPWindow/CPWindowShadow6.png | Bin 0 -> 258 bytes .../Resources/CPWindow/CPWindowShadow7.png | Bin 0 -> 128 bytes .../Resources/CPWindow/CPWindowShadow8.png | Bin 0 -> 260 bytes .../CPWindow/HUD/CPWindowHUDBackground0.png | Bin 0 -> 311 bytes .../CPWindow/HUD/CPWindowHUDBackground1.png | Bin 0 -> 179 bytes .../CPWindow/HUD/CPWindowHUDBackground2.png | Bin 0 -> 331 bytes .../CPWindow/HUD/CPWindowHUDBackground3.png | Bin 0 -> 114 bytes .../CPWindow/HUD/CPWindowHUDBackground4.png | Bin 0 -> 107 bytes .../CPWindow/HUD/CPWindowHUDBackground5.png | Bin 0 -> 114 bytes .../CPWindow/HUD/CPWindowHUDBackground6.png | Bin 0 -> 182 bytes .../CPWindow/HUD/CPWindowHUDBackground7.png | Bin 0 -> 115 bytes .../CPWindow/HUD/CPWindowHUDBackground8.png | Bin 0 -> 185 bytes ...CPWindowStandardCLoseButtonHighlighted.png | Bin 0 -> 589 bytes .../Standard/CPWindowStandardCloseButton.png | Bin 0 -> 608 bytes .../Standard/CPWindowStandardTop0.png | Bin 0 -> 187 bytes .../Standard/CPWindowStandardTop1.png | Bin 0 -> 128 bytes .../Standard/CPWindowStandardTop2.png | Bin 0 -> 188 bytes .../Resources/CPWindowResizeIndicator.png | Bin 0 -> 189 bytes .../AppKit/Resources/FIXME_ImageShadow.png | Bin 0 -> 561 bytes .../AppKit/Resources/HUDTheme/WindowClose.png | Bin 0 -> 349 bytes .../Resources/HUDTheme/WindowCloseActive.png | Bin 0 -> 663 bytes .../_CPMenuBarWindowBackground.png | Bin 0 -> 137 bytes .../_CPMenuWindow/_CPMenuWindow1.png | Bin 0 -> 116 bytes .../_CPMenuWindow/_CPMenuWindow3.png | Bin 0 -> 109 bytes .../_CPMenuWindow/_CPMenuWindow4.png | Bin 0 -> 106 bytes .../_CPMenuWindow/_CPMenuWindow5.png | Bin 0 -> 109 bytes .../_CPMenuWindow/_CPMenuWindow7.png | Bin 0 -> 112 bytes .../_CPMenuWindow/_CPMenuWindowMoreAbove.png | Bin 0 -> 216 bytes .../_CPMenuWindow/_CPMenuWindowMoreBelow.png | Bin 0 -> 221 bytes .../_CPMenuWindow/_CPMenuWindowRounded0.png | Bin 0 -> 148 bytes .../_CPMenuWindow/_CPMenuWindowRounded2.png | Bin 0 -> 148 bytes .../_CPMenuWindow/_CPMenuWindowRounded6.png | Bin 0 -> 139 bytes .../_CPMenuWindow/_CPMenuWindowRounded8.png | Bin 0 -> 142 bytes .../_CPToolbarViewBackground.png | Bin 0 -> 185 bytes ..._CPToolbarViewExtraItemsAlternateImage.png | Bin 0 -> 419 bytes .../_CPToolbarViewExtraItemsImage.png | Bin 0 -> 427 bytes .../_CPWindowViewResizeIndicator.png | Bin 0 -> 189 bytes .../Debug/AppKit/Resources/brightness_bar.png | Bin 0 -> 232 bytes .../Debug/AppKit/Resources/color_well.png | Bin 0 -> 219 bytes .../Debug/AppKit/Resources/slider_button.png | Bin 0 -> 253 bytes .../AppKit/Resources/slider_button_h.png | Bin 0 -> 252 bytes .../Debug/AppKit/Resources/wheel.png | Bin 0 -> 81812 bytes .../Debug/AppKit/Resources/wheel_black.png | Bin 0 -> 8385 bytes .../Debug/AppKit/Resources/wheel_button.png | Bin 0 -> 2013 bytes .../Debug/AppKit/Resources/wheel_button_h.png | Bin 0 -> 1869 bytes .../Debug/AppKit/browser.platform/AppKit.sj | 27467 ++++++++++++++++ .../Debug/AppKit/rhino.platform/AppKit.sj | 26730 +++++++++++++++ .../Frameworks/Debug/Foundation/Info.plist | 64 + .../Debug/Foundation/Resources/log.css | 72 + .../Foundation/objj.platform/Foundation.sj | 7343 +++++ .../Frameworks/Debug/Objective-J/LICENSE | 503 + .../Debug/Objective-J/Objective-J.js | 2607 ++ .../Objective-J/rhino.platform/Objective-J.js | 2607 ++ .../webapp/Frameworks/Foundation/Info.plist | 64 + .../Frameworks/Foundation/Resources/log.css | 72 + .../Foundation/objj.platform/Foundation.sj | 6479 ++++ .../webapp/Frameworks/Objective-J/LICENSE | 503 + .../Frameworks/Objective-J/Objective-J.js | 2608 ++ .../Objective-J/rhino.platform/Objective-J.js | 2607 ++ src/main/webapp/Info.plist | 12 + src/main/webapp/WEB-INF/web.xml | 21 + src/main/webapp/capp.html | 10 + .../webapp/cappuccino/Resources/spinner.gif | Bin 0 -> 1849 bytes src/main/webapp/index.html | 21 + src/main/webapp/main.j | 18 + src/main/webapp/static/index.html | 5 + .../templates-hidden/capp_template.html | 54 + src/main/webapp/templates-hidden/default.html | 81 + src/test/scala/LiftConsole.scala | 15 + src/test/scala/RunWebApp.scala | 33 + src/test/scala/com/liftcode/AppTest.scala | 75 + 480 files changed, 124167 insertions(+) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/main/scala/bootstrap/liftweb/Boot.scala create mode 100644 src/main/scala/com/liftcode/comet/.keep create mode 100644 src/main/scala/com/liftcode/comet/Clock.scala create mode 100644 src/main/scala/com/liftcode/lib/.keep create mode 100644 src/main/scala/com/liftcode/model/.keep create mode 100644 src/main/scala/com/liftcode/model/User.scala create mode 100644 src/main/scala/com/liftcode/snippet/.keep create mode 100644 src/main/scala/com/liftcode/snippet/CalAjaxCall.scala create mode 100644 src/main/scala/com/liftcode/view/.keep create mode 100644 src/main/webapp/AppController.j create mode 100644 src/main/webapp/Frameworks/AppKit/Info.plist create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Aristo.sj create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Info.plist create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/button-bezel-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/check-box-bezel-selected.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/check-box-bezel.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/horizontal-track-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/horizontal-track-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/horizontal-track-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/knob-highlighted.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/knob.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-arrows-pullsdown.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-arrows.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right-pullsdown.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/radio-bezel-selected.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/radio-bezel.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-disabled.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-highlighted.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track-disabled.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-disabled.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-highlighted.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-disabled.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-highlighted.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-disabled.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-highlighted.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-bottom.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-top.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track-disabled.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-divider.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-divider.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-divider.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/slider-circular-bezel.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/slider-circular-knob.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/spinner.gif create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-left.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-right.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-0.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-1.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-2.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-3.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-4.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-5.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-6.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-7.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-8.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-0.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-1.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-2.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-3.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-4.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-5.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-6.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-7.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-8.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/vertical-track-bottom.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/vertical-track-center.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/Aristo.blend/Resources/vertical-track-top.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPAlert/LICENSE create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPAlert/dialog-error.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPAlert/dialog-information.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPAlert/dialog-warning.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPApplication/New.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPApplication/NewHighlighted.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPApplication/Open.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPApplication/OpenHighlighted.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPApplication/Save.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPApplication/SaveHighlighted.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewBottomLeftShadow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewBottomRightShadow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewBottomShadow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewLeftShadow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewRightShadow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewTopLeftShadow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewTopRightShadow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPImageView/CPImageViewTopShadow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPMenuItem/CPMenuItemOnState.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPMenuItem/CPMenuItemOnStateHighlighted.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarBarRegular.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarHUDBarSmall.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular0.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular1.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular2.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall0.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall1.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall2.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottom.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomLeft.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomRight.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyLeft.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyRight.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyTop.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopLeft.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopRight.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightBottom.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightBottomLeft.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightBottomRight.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightLeft.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightRight.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightTop.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightTopLeft.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPShadowView/CPShadowViewLightTopRight.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPSplitView/CPSplitViewHorizontal.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPSplitView/CPSplitViewVertical.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBackgroundCenter.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBorder.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBorderLeft.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/CPTabViewBezelBorderRight.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelBackgroundCenter.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelBackgroundLeft.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelBackgroundRight.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelSelectedCenter.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelSelectedLeft.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelSelectedRight.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelsViewCenter.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelsViewLeft.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPTabView/_CPTabLabelsViewRight.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator0.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator1.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator2.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow0.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow1.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow2.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow3.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow4.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow5.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow6.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow7.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/CPWindowShadow8.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground0.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground1.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground2.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground3.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground4.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground5.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground6.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground7.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground8.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardCLoseButtonHighlighted.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardCloseButton.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop0.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop1.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop2.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/CPWindowResizeIndicator.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/FIXME_ImageShadow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/HUDTheme/WindowClose.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/HUDTheme/WindowCloseActive.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPMenuBarWindow/_CPMenuBarWindowBackground.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow1.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow3.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow4.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow5.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindow7.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreAbove.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreBelow.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded0.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded2.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded6.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded8.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPToolbarView/_CPToolbarViewBackground.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsAlternateImage.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsImage.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/_CPWindowView/_CPWindowViewResizeIndicator.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/brightness_bar.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/color_well.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/slider_button.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/slider_button_h.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/wheel.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/wheel_black.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/wheel_button.png create mode 100644 src/main/webapp/Frameworks/AppKit/Resources/wheel_button_h.png create mode 100644 src/main/webapp/Frameworks/AppKit/browser.platform/AppKit.sj create mode 100644 src/main/webapp/Frameworks/AppKit/rhino.platform/AppKit.sj create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Info.plist create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Aristo.sj create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Info.plist create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-highlighted-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/HUD/button-bezel-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-highlighted-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/button-bezel-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/buttonbar-bezel.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/check-box-bezel-selected.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/check-box-bezel.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-highlighted-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/default-button-bezel-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/horizontal-track-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/horizontal-track-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/horizontal-track-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/knob-highlighted.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/knob.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-arrows-pullsdown.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-arrows.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right-pullsdown.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/popup-bezel-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/radio-bezel-selected.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/radio-bezel.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-disabled.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow-highlighted.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-down-arrow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-knob-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track-disabled.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-horizontal-track.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-disabled.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow-highlighted.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-left-arrow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-disabled.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow-highlighted.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-right-arrow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-disabled.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow-highlighted.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-up-arrow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-bottom.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-knob-top.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track-disabled.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/scroller-vertical-track.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-divider.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-divider.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-highlighted-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-divider.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-inactive-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-highlighted-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-pushed-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/segmented-control-bezel-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/slider-circular-bezel.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/slider-circular-knob.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/spinner.gif create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-focused-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-left.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-rounded-right.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-0.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-1.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-2.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-3.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-4.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-5.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-6.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-7.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-8.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-0.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-1.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-2.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-3.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-4.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-5.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-6.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-7.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/textfield-bezel-square-focused-8.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/vertical-track-bottom.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/vertical-track-center.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/Aristo.blend/Resources/vertical-track-top.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/LICENSE create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/dialog-error.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/dialog-information.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPAlert/dialog-warning.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/New.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/NewHighlighted.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/Open.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/OpenHighlighted.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/Save.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPApplication/SaveHighlighted.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewBottomLeftShadow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewBottomRightShadow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewBottomShadow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewLeftShadow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewRightShadow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewTopLeftShadow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewTopRightShadow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPImageView/CPImageViewTopShadow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPMenuItem/CPMenuItemOnState.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPMenuItem/CPMenuItemOnStateHighlighted.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarBarRegular.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBarHUDBarSmall.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular0.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular1.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderBarRegular2.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall0.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall1.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorBezelBorderHUDBarSmall2.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPProgressIndicator/CPProgressIndicatorSpinningStyleRegular.gif create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottom.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomLeft.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyBottomRight.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyLeft.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyRight.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyTop.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopLeft.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewHeavyTopRight.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightBottom.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightBottomLeft.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightBottomRight.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightLeft.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightRight.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightTop.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightTopLeft.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPShadowView/CPShadowViewLightTopRight.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPSplitView/CPSplitViewHorizontal.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPSplitView/CPSplitViewVertical.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBackgroundCenter.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBorder.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBorderLeft.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/CPTabViewBezelBorderRight.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelBackgroundCenter.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelBackgroundLeft.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelBackgroundRight.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelSelectedCenter.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelSelectedLeft.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelSelectedRight.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelsViewCenter.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelsViewLeft.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPTabView/_CPTabLabelsViewRight.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator0.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator1.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPToolbarItem/CPToolbarItemSeparator2.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow0.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow1.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow2.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow3.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow4.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow5.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow6.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow7.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/CPWindowShadow8.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground0.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground1.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground2.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground3.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground4.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground5.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground6.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground7.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/HUD/CPWindowHUDBackground8.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardCLoseButtonHighlighted.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardCloseButton.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop0.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop1.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindow/Standard/CPWindowStandardTop2.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/CPWindowResizeIndicator.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/FIXME_ImageShadow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/HUDTheme/WindowClose.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/HUDTheme/WindowCloseActive.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuBarWindow/_CPMenuBarWindowBackground.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow1.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow3.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow4.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow5.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindow7.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreAbove.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowMoreBelow.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded0.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded2.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded6.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPMenuWindow/_CPMenuWindowRounded8.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPToolbarView/_CPToolbarViewBackground.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsAlternateImage.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPToolbarView/_CPToolbarViewExtraItemsImage.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/_CPWindowView/_CPWindowViewResizeIndicator.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/brightness_bar.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/color_well.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/slider_button.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/slider_button_h.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel_black.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel_button.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/Resources/wheel_button_h.png create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/browser.platform/AppKit.sj create mode 100644 src/main/webapp/Frameworks/Debug/AppKit/rhino.platform/AppKit.sj create mode 100644 src/main/webapp/Frameworks/Debug/Foundation/Info.plist create mode 100644 src/main/webapp/Frameworks/Debug/Foundation/Resources/log.css create mode 100644 src/main/webapp/Frameworks/Debug/Foundation/objj.platform/Foundation.sj create mode 100644 src/main/webapp/Frameworks/Debug/Objective-J/LICENSE create mode 100644 src/main/webapp/Frameworks/Debug/Objective-J/Objective-J.js create mode 100644 src/main/webapp/Frameworks/Debug/Objective-J/rhino.platform/Objective-J.js create mode 100644 src/main/webapp/Frameworks/Foundation/Info.plist create mode 100644 src/main/webapp/Frameworks/Foundation/Resources/log.css create mode 100644 src/main/webapp/Frameworks/Foundation/objj.platform/Foundation.sj create mode 100644 src/main/webapp/Frameworks/Objective-J/LICENSE create mode 100644 src/main/webapp/Frameworks/Objective-J/Objective-J.js create mode 100644 src/main/webapp/Frameworks/Objective-J/rhino.platform/Objective-J.js create mode 100644 src/main/webapp/Info.plist create mode 100644 src/main/webapp/WEB-INF/web.xml create mode 100644 src/main/webapp/capp.html create mode 100644 src/main/webapp/cappuccino/Resources/spinner.gif create mode 100644 src/main/webapp/index.html create mode 100755 src/main/webapp/main.j create mode 100644 src/main/webapp/static/index.html create mode 100644 src/main/webapp/templates-hidden/capp_template.html create mode 100644 src/main/webapp/templates-hidden/default.html create mode 100644 src/test/scala/LiftConsole.scala create mode 100644 src/test/scala/RunWebApp.scala create mode 100644 src/test/scala/com/liftcode/AppTest.scala 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 0000000000000000000000000000000000000000..6b3e348c109e897f721c798056e62367d34dd77f GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{H!3HFK_`(+gDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9Mf#pDjv*Y;$v^m6cpL;yY)L;aSI4GszK`?7UtaZp3pQ;K ntQXXoz{sN@b|fH8fRo{;qZIqkXD;7?S{XcD{an^LB{Ts5vIr>E literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0f35e8c4b0a81e3e34eb23cd0f692519f9eca7c8 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{H!3HFK_`(+gDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MV6i}jv*Y;$v^m6cpL;ye0gmdKI;Vst04uyOvYYu$Oo#A}kbI!d}Q&Tg1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..809339ae4912c4d3751e73c64d43ce2db2ca7c64 GIT binary patch literal 566 zcmV-60?GY}P)*9S_4*@jC)oM48TLhvZTC~pvf)9j3p|sIx zd_goui*~p`Zrft9cm`iuB&09-#-5xDv)MeJ z$zPSiA0`|^eL9* ztrPg&53=JCf+aBDN_wtvt5>h;{`m3Z_{WbQj~_dBtf#ZHGnb2tD*z}5!hukXF#Yb`yB^=a zf4{P5(V~1WFE9W0_V$P+OP0j!*|R5c@7}!$Fbuch=+UD_Kn+(@Qc{9u&YT%}TOzynXxD<>$|z4nSAg!7xk{H_-j37B60$H-G+ozuUKOy8@kP4OC!>4TGI^=FFM! zckkYv^Y-?(yK&=&!|&g}O@WdoxG>n3=g*(70(yGFlqpjzflf36N*Lh7AWh;xg-`11 z>qCJWK_+Pv!XQnGfB*jdt*)+a^5n@AU7(;kAq>)_2K2+%h=>Stpubdrg35$2NR#U4 z&z~OwgV`UL3S@zT@`Nx*lL9bOw_Lh(scqlBed0htX+jtr5KEUXE&TA|!VgoAR0Ag++=0(Qv1PjC<6LhPpsv?1*dH&nCZ--vLeq9I* zQBYcA0%ao@M#&mbjaoqLux#0~GGJtH0BXMW9}Qq+La0;aK!F3q_CV|j#C}K_Fc4i6 mvaKM^px{*iVo=i2fMEdm898>)oF9Jx0000k}@P)TsD{``6A%a<>UUcY|r z%fP_E%zy&~B4NL-uCCnU$B*}X{P^+s_wV12U%Pfq7bwn%qGQjVJqdgF?ge8YJ8{X9 zB{A*o?GfJI-u{agEz1A#4$VW0ulckbMAoj-rR-{QrK^ML+51ys%r(`14R|Ni~k^u~=F z4qjefc0d=LJ9FktIM|s$NdtTs7#K!VrcAK}2F`?M&z`LU+Xj@-CWL_+Od1**LV*T6 z0csKlX;LSIA3uJqtFEqY^6%fj-#|@@AWh1IFfb5QbaZs||Ni|8(xe8`Bu@wfBU*OS zq)8sYpnnF_BuxnK+qX~r^5x5|z)0Q#bDlUM91;>D{{H>@Gs~7OD})7v2tEunT?m*O z!h!L05vais7UTlBFwk_~<;#~Vef|3NMrCDXG*E*qEOL3#FgFl$OrAWM?f(7y?!dUY z0!l_e#ai%Wga(*izI324#W!JV1+2gn%x1jHZUVs;vZB10000< KMNUMnLSTYjX#|D< literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9d33b4a521b7df3cf121275bf65726825a4e2f89 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JigZ0)978ywlW*-V*PlFfs_5nI`S)l1`}_O&m;e9k4SIY2 l|NGlLwYRrF=U6MZID>zQ^IIz~m#ILF44$rjF6*2UngAHeF>U|= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0d03b41de762897185f1e0d86faac98b89364b71 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JinKgk978ywleKhpQ#Wndl9H5?!jde|aM7UQTzXpCF-`Wz h-X0zXZ}07uX1ITXRrasXfi$2l22WQ%mvv4FO#o3eDO3Oe literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1f0dfad7fc06dee61cef295e22d897e6852a0173 GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6*YUhIEF}sPwm~vd&oh6<@vYs&o2mGI=RD0$@@w|Cx?q- z$oGfljxHaV81EHq*_?fQ8*2e;*n<~oW#`YFwmI*@qW5x-4)mdKI;Vst0I!5ujsO4v literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ee90e9450259e2159908d5fc81bd939b1e71f71b GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6?J&JIEF}sPwm~v+Z-Ume7-I|Ajs8;tJ}aoZGlp#+QL&p zXN12j-OuP7)T+k8I{n(*wTTk<4sg$CaDVlCUTN(5)0=uMpKnlkwQJdHtDO6jR2WvR za=N5?^O^MRoFid>1lnC)=G^V*kX2GTr`5jw_o;g6ZJiuB;@fk*FPlsWnqacDavr16 dhb^`L8BCr^`uuCSv=Znh22WQ%mvv4FO#lEuSwsK; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..43b127cbbcdc92b203f04bf7ff2fa7efb255f30e GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6_t6qIEF}sZ=GPs)nLHm`d^@^IVdy#nMwtx`qAc!Df5;) zf7e^O_T+*EixVE`+Us++IC1bKh^ie7eqURDPWN85fw9SqwOdzgReH{owN{cbd?n*k zzAe8E?AWS4{ht_Lwnu)7mu6c>-s28KyGUY^s6RHCQvD<3?NOi$7(8A5 KT-G@yGywodO-*nB literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b7d5b55dd5e2b08262020420bc5c4d01cfee254b GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6;*n=IEF}sC*Ry%{=S}#t!=r(9)^zD5o^}0k*NFoOZD%U zmzQ6qpPy&Ax#st`-o}X&CpyN&%wg1+apu$e`}S-S44Ygd|NZ~ZFV3*>V(0|b58vO% zTV*Wll$2oF!0_wybAFA6xaQCX3;p8U}fi7AzZCsS>Jiex-p978ywlW$c2F*@Aczh6>r-(P2;egFQLYf3OwpLY-V TSQ0u1sE)zY)z4*}Q$iB}rM)HL literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e8fd934201a65432d0b76dae319154ce63da5a94 GIT binary patch literal 617 zcmV-v0+#)WP)Ymx+cY|)ml;t|Yno#ndRmb+&isF1M7Xo2t92T+eS z_JuI|>f5UP(M9AQuECCyI%L^YTAAbg~iZ1J%f` zK94%rfIO!jJ9j;Z{<%fC!%--6^0B-81bojI#7w%>3sqq`vW}Xt-{gRI_KTPk>ajCd zN6-`b49ma+Y(J>S)*>y6rDpLgs{9gUYU`0_Xu@TFIOP(k$0WBOo|*T8)D=Kxf<9-yyW*3?UCsyndsK<_3uf^Mg5!lD(){OGhW4e}Z zo76o5%kT`W!P$SJ9OZehgH>E~D>x_jmBSiPj`E7X*#V4Y@%B(rY+* zogSlwQs~?p6nYWQ;E*c>QpxNPh?@78bZgPnp~Hs~zE9;5N-2q7A!AI#T$!Fp1@x=m z5T9_7QXZ93d#$y|0S`Vp3LzZYwiWX{3-5gvc<|9tjB&@C*GH^5-X1zC3BFMu<0)II zk4p#jX>fmhcI~vsX__`gt3TooyAQ)4N)LbspSuTcK0D`bUDrLWwIT;R_}rZq9n7X% TlJRy400000NkvXXu0mjf%1LK1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..73f7c1e34d2f0c50efa8719b9b95947d9c35987d GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JicCFS978ywlV9B`=+V4!aLUVb?eRYU|NUiuRPR&YDB<&; ub>n}h3=8RF?3XgKCVXu=v#aWz3WM2a=UFd$Uf%;6z~JfX=d#Wzp$PzqN;M?_ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1c064ca45bfd811bfbb7cf85b2bc786e0a1cf94c GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JicCCR978ywlet#UJh3D<=iHGaCyubF&X{pfWkMR;#+eIE sI`~tYGiF#!l1kaT$|=Vu``cV5h6g>Y+O@io(LntSp00i_>zopr0E)RTg#Z8m literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0b0ab90cdc416cba534ab847e604cd1596c0711f GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c70vK;aSV}|n#{9$=80nm4g|0t;dIbBd+5lKD;g?Vaf&*6 z2M-)Nb?m^Q6DMZqsA(QPaOTh<1||j3MQd`_@E9-%B`_q4Fs79-iin;$bB5>48HuPF z6Im~WG+3OOk!G-X=E0tLR^wH=3C@9c8?Q#y@F~BjRha+MRNvrBMC1&~1*>L0+gJ5< ul4DnQqhlzC(21|*^Y)}LKhjvh$H`#tBNVW?dezEwQ#l;=( zwf;f;_r4XBxgcq$PBo)hf$cU&(kv~OD}W6!kBIRNbhH{;p4&hn00000NkvXXu0mjf DPuFGX literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fead58088616492e8c0996a1705f1208b0824705 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6)pC3aSV|NPkwo;pr^O7aUoxaa6`nbr}y{Q_paI`B>Jjo z63?7BIXpW5|Nr+Fn=X)E@pJOThv&b?^C*ZenqP0s6#74zfpG!@Gsj_uhzI(+7-n_t z=c)g%#Mxj`-`KcI#pEW#Mk_I+jQnf8Vi^>85mP03oXxa`3rO|gQu&X%Q~lo FCIAWaWHbN( literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9e3a174540fb0d09b588ea30660ee4dd1804e776 GIT binary patch literal 254 zcmVY zC%s)+Q&f&*kPt!`dMQvVP~(u)_mX&yB)oOOr(rQLyvbg`?5h!hyAiECj5x!(8Tw{O zziQuF)V;&_<9%yeB%Qq!Xq$#hks&Gd>(vq<2WG(N2E=-!z8{At!~g&Q07*qoM6N<$ Ef|HtQF#rGn literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..67f2ec8b85626cd934166b3ec08ba92a6e00cc20 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrF!2~3^p9!7-Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiX=Q;978x{li$66pMLJ-$wWOZEvCmUEi4QkUTkN#&Gixo Ps$uYS^>bP0l+XkKp9dj> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bf628c570fe0501b1acb39facf766664d155ebaa GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jib6bH978x{lh>?SGv(Q{XY-C7JNE4Cp+kqx+_-#svv)+q zjj7Y8PiNFPalj(~-k$S9LP9ow{`}zqs^;nOp00OSRaf_|mWBq0Aj7H&%&TT_hCE~p bVq`e8kpF+l=_RLu<}-M@`njxgN@xNAv!6o+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3255821605895cddc6ee2a6bec1882c2df72d06b GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jib6eI978x{T~8Tu9Z=wLxcFpCtK6}}EL^d>s~GYHE;wFb zX?N+;js11}_;GsuFt&&sr}0&bL(L_>@cRYfTfL{TG;M c{Ctn?(Qb$0gRx6pffg`$y85}Sb4q9e09SWGumAu6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4154b0fc5afc832c95ac50c3ff79df75cb29fc30 GIT binary patch literal 947 zcmV;k15EshP)ch7YRTPvh`)Z2j@9TePp4qJ>tTXwj-g)IV2q^M9SHwvpK`CO?B|_LpF3On!<} z9_GJBGI_^TA}3MYj!(c|SZr`IEqNPSiR45aDWp|-~iPv3lnI@1?fC|=!Zf{gkuu|)T{te&Jx z;>(b2NHQ{+-#QHHW+T*%&Vp|ElT9eEpt%R~+eS#-#6Q>vaVGHn%o(+ND@n~45{lR5`t7xFtMZoG=@q1QSav27ZD8` z{KLU3_>^Gx9F4MyYdR+&Nz*8bSMX(XC-F7N5u}EK=kv5sg5s8J35tZRC*ome)Fr`g z4v4Ud7o&J=zD^Xc=F7GEua(E>Q~6NGn1Ulr_uGbvW_+}06@Ezn7> z+^XiuWqL@fGeA!3=sYwINxCfvla-3oJgJ&no|d;+O-6_>dIYMLm;cO#!g|Qo_eq`> zt8-r2Hv=)b)sR^J7&7z&Hc@JtAOR17+&LF-s4w5pS4CLIs9PF{!xg197-gY2~VYiL@~%SB8aS8~2=KbLxmsCHre_f>p;YuKvTAI5n$ zUn0vl)QNZD$;ZkM3Fey@%wr#pyK%nFH`Ee4KBmrm(cHOJxbxVV<94#IKLGqUego9K V5T3VXqoM!+002ovPDHLkV1jU&zV844 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9272760bb06435ae51b46127d5f1eba3d6968ed1 GIT binary patch literal 813 zcmV+|1JeA7P)8g_#knRJV>2KY^Dyf1=tJ+g&muKsDwoI zf~{9~UcCSR=;JT{H{be*6NBWpp1t$GeD?Z1K)u4yAY#O3I5QCQB{xngTDbqh|E;&) z{a=6mEkO)Yw_yMI|4EG#^MU$#L9WMUI2#a)7ffDuWa-H}|5sgp3CFVzT>0-Do%vr{ z-x5rN_{j3B&fNVE(g)HHG6$RCoItElJY(I5g{L0*Yv1g34m z(@^9Wo_zQpsP8REKgb+xhJ%uoTG5Pk{}%uaN5(qdvHwlt%l=!W)q`m*&nOi6`9Q-9 zr?34D)UOIM2bR)WXWnVHs0D=|R<_m zP3w;TZ{2hnOoR9!agaPvT?A0Q4xt&HCT*L*@99kLR|v#swvbEKOhc-(k@VO6{tF*N=5YYoEPdUP$~cwtr}2T0V>W* rYI%;WCgOzV170Z2Nm5NT|6H_V+Po~-c6}5W0IEHXUCl{Q|G%Gll_wU)HyMOLWb~)x4oMY^IZX#{` z=l}osigUm28c$F;AhD$4*Q>Xi8$T&2xGJoPv9A3Y){!C{5%_e9>h8uzs}w3{D7EF= z*UebI#b-Z*k?z96S6hMHsDn=)bT!QQ_;7Q$W9C}pb9XEM*vK3?zKo;gX2T8Mj++yY ZGERToSE00he>>1Y44$rjF6*2UngGNwUorpy literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..16abca262db5864a0e314663d4f4cc4c78a8f534 GIT binary patch literal 307 zcmV-30nGl1P)S`2YVu0}Q)lH}kmUG_M2F zLdfC_$Q-xa*3Cdg|K0LhcRFV`Gh-+M3O0fi0BJA=vb#_e0R=*kB$07ASP@Xdz$K^U zJIoZYB$RfAh#P=R5(eTVAWp-ALE^$F4#$P5s0idRpo71;WFvV$8}9gTKx_g}_E@**%Jm20Oj-wKgz0xPPVvSc?4 ze*Cn;=5WS`&t3(kwaz$q=kaq;NHgN{9UBn40WmwWH~_w!WsoXuAK?H1002ovPDHLk FV1j_le2@SD literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dde750ff5558e94133875116d062c16e77fc9e6a GIT binary patch literal 464 zcmV;>0WbcEP)?v|e(MT-L$Mfrzvv%C4m?7PC8EVrT8Fneogs z>n&xTq4CtG-^}ytH{ba+-{*P8I<>T|n9K#iO-QrKvW%Ygdei7?s>yd2 zz|T~#>M(W2aS^PqtpgT(9YlC@W0U6DJJTW0mV=3*ez=DR;2s&!V(NN)u#e_ho}+c9 zgCHj1k38ap`;I!V=JlSD>P*6ap{+AUNBsqAeU>-kc^-=k^O*B^zA!)Qq4Uvbl&v$( z`afgO$wGH$8#SQijg&LHI$Drx%humTSgjv>P9idBH>Z*}pbI?4K^|ifG z-;uYmI7*yOl$RFK^;K4w4`*c+_@_8i{ikon_K~md1-Kd;P*GNl)@B#NcQFGdk&JJ| z;fFYyU5&UT(exume32039%wZEi1`gkQB-5Z{NI9vh@0@GDmFuZc#aNsP2=S7;F{;I crisqjD`@h*0H?HsKL7v#07*qoM6N<$g60Dl*8l(j literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..96fa554a6e0979f4d97f9d79b48d51236bd3e577 GIT binary patch literal 698 zcmV;r0!96aP)`~uM+K1duS&wvkPwoR9AUa@z}(!*E&AHMnY|Mlk||G)nF2TX(bAaRg9NF6r) zj5*zNb(&V}d$r@jz5jRL|N4LS#rOXQAAkG5{r(p)4dR2uLGmDVY0XpQLHgh(s2f>w z)h^m`Y3IfJ|BpWY@_+NKk2o<%e(Tvg|EuP0-T~Cg1`mUrz6BWz_h0zG_13%p>#x5h zh(YQW>_7iMw|`*@EQ~mdrmZ@#^yHoYt1iEU<5>r;{CAGd{4cF<38q1OWcgKR?*0eq z1L+4DB3LqW{riQd9{pc>?in0AL}mV0a}E2i?VkjuZNk$~D(><-4gQaVPV3_&dIGCQ$P8B)so%+dv{(Uh$|NE z_#al@bpohY6Baw5cotJLwTp^wnDU_nXhY|=b2u?b9;8lI)4&&~PXswHu>-M!xT0E+ ze?imftVt{WS1#G}ziHj^|E-%&gJ}>SBo2}XsROE)Lr$>_&^*8im9R4Ni|X>tZ@3Uv z)Bh>5Vak6H4dR2uLGnN>3&b2Kc?SuwL7fQls|^sl1F;vBwt1r;P)+l}d$r zy&jFnV_GhkQbdkA`j}hAUkd~RCp_@fY&L1JSkQbvr`c>qlgUJi$Wcchb3UK%@Qo{z z$+X2*AKUFVO{Y^DjYgjW{YIlf@p$|XQ#WLd^To!mgL=Q;SBzGxMc{!C5lt)>n{~Tg>GG7K)9DcN#^6I_CmM|sM7{%vL?V%Y;6r4W z@8r2&uS*t{qE@RB^CsX+PWZVV3WWkeNGUK6p6oZCacwYCEtl! ztJNNPJf03Ok+hXxA(cvz)9Jipu1&nFsYT=1VzJ!V?e>Dp<(j+Q zZbC$kI{J(s;^38k^oFpg6T_#BGZBwPefzzGm4CEwr4i4!E22i!Kb-yo+AMXDGpG7) P00000NkvXXu0mjfk|+z8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f6f3020912a969eed964b634c6344472a1de200f GIT binary patch literal 426 zcmV;b0agBqP)+Sm zAwWrhf|!Yf(j#6=n?jT`$1n_|D0;s&BE*9r;DP6Pj^ph2`|WmX z+qNJ?Vu{^jHk*y`eScMI$?SGJL@dh^-eeM6Whm;pt`q?@2{#KI!Hj7BW zFpM~kMV4hG&?P}hIoq-;0A1H{x~>xxXqtu`juiC14WEcq&@>IF@B2K@1!IwD+xB!i z;gg^k-Sd@OVgMBA_HwxtMe)Uu;}L%lO_D@v@{|;fozG|D6#ba&hmp0JhY$^n<9NMZ z`3}QS*EKVENjVgLXD literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..00f3466ca8e318a75f86ddd5886b1f553f3ce1ae GIT binary patch literal 733 zcmV<30wVp1P)Klif>GVI0RF6+@#y5lRw- zx)h`G!tM;x3;zNsL5oUZ)K!T0WdqZZY0wgO%D{wyQ<3@BoX%FZO`Kax-FD{Yrp}}8 zG&fD1U3`0vJi;nj)}7SFhx0tYmk-a|Ar}fRCo#xuFif1w>%=8Q2)`O7p0y3)6~7YS zmo4HCZl9GZg(+7+p)T&OrlLbhWgE$u3gzSyMin z7hWkYEg2Xyac*%ZHWJvv@V-ReJApjk-z}q!#W$<(l{LM1 zRihiXs`=H3Xce|G(KI140sbrnsg348<~ajog1ogFWM}Av|E>;whPcqhtT5;|CjvZ62+h$b)80Bs;I^J z>-T@5pt2U6(TTo9k|#rUyfN{3su?{{q8c(`)JI>f=Qk_i-n(GrSMcCv*AIe*b}j77 zv~ezycqP)AwCF#h!|cTb{daEFDfa}j$0|62QRqBj^tujtuu6jy-L?f-<^;$ZI9UB5 z4D%v-X2d_c9qxk%{nN`B_leNCL(n)@{_cujo9CgPT7=pbJc^I)=u5r>I=_PZ!;W-; P00000NkvXXu0mjf2WeV~ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e5a516aa6cf7b9d756703227c7f8421ee1be8f09 GIT binary patch literal 589 zcmV-T0QDrwgLGb<^aUI^3t~VVIO!`m$tZb%dMg=}v^WkSlaNWO5Ms!MTnGs#=6Yg6LJ}pg zT>oZSBCVHnCb;2epS{-lzkNGfTmATHNTdGJM@`_g3?Iy>!j(@aS}h6J~*ZU@eGY zM*0PbBX34M1Fjp525BCThXR2BHJiq@?_YQK_BYwMjviygJDrZf!s@ABuRnwYgF%W!B9u%f6%2*F zUXRew^TgC@wa73GrCP1_I3yN}Q6iC`bUICZ=#SH+0E_+aq}^Z7g#i$!uc98@ls)uTi|(Cy%Ca3d&&5y1btVr&a5f?ny* b_PQZ=jmrNUdH?)@00000NkvXXu0mjfV>%CR literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..514e235f743846af7ff184685699182c285145f7 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrK!3HE%<(K{hQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiZnf4978ywlYjBE_}t%LpPs;Ev_bg)zrTkQ{{H(b?e&AT gP1VTIz(9t9;YzROb+_*L7N8~uPgg&ebxsLQ0BWWw!TS)HgC`zyg?dY};rpC@5IY z%EDsC#Ka^D5@bYE%-Gh_$ZKn3)x^ccmHYSaU#5Tm{xSUj|DOSyVzwg(_pD@RXAk)O z`!|Ml$cmX)EngfdFE6+F&!0cooQ9&9d(Y0TJ2*JlZLq3DQ!EN}!Xu#jI0z|bG&Imx zoiw56Cd@N<6$7!t-d$U-F*7q0HW`RzS1et)L0nwSkSI47735}ndwJ9oqnI0r)#uEb zHbX&P&Xka1W{~MXXBZde=M?Gd={n(43<7LGEDppf{(jzWE>4a<5)$Hyz!>F*DF%5C z7G5AW3lIwcu@n$XLfPyfIdsJ^zywtQGLZx7L`DD!OiDliU;T6d0000X* zQ0Sr{Vi#Y7n>aa$;Mm2NpwO4$AU;i^qP~IZST_?4v5@4#&(Gd0Yk8%&+QKcS;GD56%Sb^$Wm&2?=R7>Ze>L~RyD5t#%*U?J)-Aq1Il&IO`57KS02IF9pF>9 QqyPW_07*qoM6N<$f;rTnumAu6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cd90029432d91eaa84588f87f0df366554e7cb1f GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{N!2~2HFAQ`AQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiex=q978ywlXq2r*Aq57aN|34wYApV>0 Uw%faeXrMv{Pgg&ebxsLQ0ExvW761SM literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3043f2628b8f2cfaf024d345c7cabc99ec8788c1 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{N!2~2HFAQ`AQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JigZ0)978ywZI5%A_P)Rb#a#vH8jVKKYPCSu^?wTwt-(j{i<`}0OsDSmoIp4n-dl8Rz90yapN4f6NTpJs zswzYx5l;e=B%SfoMIs>{3ygmOie8pwD3{9+kH=jlaP9^EO|eCoFw6KCz_-~7>}-k_ zN~IDclgZU@M-oV6G8vMHAqpb1h@*sS0#uBif0Cdy3WdT^0V0>n-Ei?!B+g?;3D55V zDoO$*;wGRdiki>ot9XCvhXiuYB2imkfVhd-3zP&&(5KtnY&Ls~M{$WYP8h`|uugz> z6a*+K<8eJ8RgOPuJBAe^?Iu8C>2&(BQmH%@i^Xf+xwzX0e^7eocS5Fti2wiq07*qo IM6N<$g6H%1ZU6uP literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c88f8e386b629868e3908406afbb504ff32ce3d GIT binary patch literal 774 zcmV+h1Nr=kP)YBPzHWnCVGa;i%%|e+4CMj81m{6jIrBWnBqM6P3C^U_Q*f3&>$jZl^ z7@zlZ-g_+OTrS=DDs$>r&*Fc2|L1xB=e*K&`>CBSPTd)>7y1X&oo6n0#1qNI@kFvN zo=8UGiKK}qk}94^BBB)2ff1oD>ZkjAt{l96=JX>#7+ux@fG82BgPAp99^dUf`{>@S zw?GjXaTNbDphfuKL_;1whu%NC-+lE7kOwkA*406I7eur$B?S8V`tUt7rlvL;qW@-h zFOUYl13z4y2ZGLX*UCGfnG8lWBe@*i-8~Gxd_^qmSJe5&U<>�}mg(ai>nZ4&;I0 z$ocD5R4EQ1S_>258O`TUDK1{Q%Daz407ODwMQzwO45vQ4cJs~yIiOH#eQ8W(1~lX0 z8^hp>=Ul#agLEeQd!uJ6>pf%0{QUmag)MLt0ek#Xk1dVqw*jLy<5A@s>T0WzGS>iF zq@sSbW1gnMDi7+UJD{~@b>j+7?%T<%+L}KbMJj5Q5~4M+7^C-I1IE>Af6FE%B7Yrb zLIXvFui1du?74IuXlLnydS_s4{hWFA4S)yu4$qlUA{r4rc>_v>Y!OoFfUJpdY~N1S ztXz%~RZ))!p=kAt#x-jjfGQvYgq;!Hv1NnOdWyF|L>RF!oDE22ENv~DDOkqTX9LUn zEiD_}$7_IUSNnk8-MmgsDFa$-L~8N&c-y<>?xxi|y-0v>(})o5`UK>z>%07*qoM6N<$ Eg5v654FCWD literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ff8c1459a3b5a4280827138a546d6b5f447360a7 GIT binary patch literal 685 zcmV;e0#f~nP)|-65ON48-dt}Q zC2^ZH<9pk;vXNxziW&HjIlP(q?04P}xmK%*Nl~xYMXS~7n9obb`Q(K&$T37mR765R zmLv%#fh@}qjYd09H_UqvA3c5#05Tj5!8l`L0(dyQ+%7-aDOWz@IRm8642A^A^nasi z8d%oX56?Et2A;8pbdg^?-}j~vSb#>gS_M^A$JXe&4y6~H6)f!_Kaih1cLXXsoBx(T zx7!8NG@;pSLO2{ASwmvBz4z_S+jpP%t2>;4bNFs~OVAYs5>ONcBekGVC^)|~LZQ&e zS`zzWSs(en=};T#xzT%*Jd^+(-e@$SSS&gTcovSWZ@1gux!Lv^r}19zZVR_b4=q5E zMk0}+MScQQhieoVF}$zj&pu@A2W^^4r68BfK`a&<5*Sy16bBrAQEA{+D>nwk{%mVNmvzrkt TK=!U%00000NkvXXu0mjf4(%$` literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2d154f20317578ca668e12001a0f7e6c642e6cfc GIT binary patch literal 549 zcmV+=0^0qFP)?f}$1` z)FP;8841~8DzXO zL6h(UmBak+Id|@ii-=r4pKk^hU>UX)ML8{(%iey!{|)36mmz!}mS7VO;UXT7yL-K! z`XAwQun6n04`*;2i9|eDz(CV9`fJ8;y?Y-0Hk`l}Jmqq^FDJuw`T|yAchvozBuOu= zR;!K)kd<^gZCRt64A&RH7V>%8ptN+cOf2yiVBF6AoEH>N*{*Qyq z>h0X^H+;8evss1rPlU(I!O3KDc#iouhfJ%td(L0+tgqukB0OF`=N!!6IY3lz>j{@i zrKDP|Mpn2>eSi7lR`r(8_FypRLDz#yr9xJ!)#{j?df{6w6biYE#iCj&mBE*nL=2ME<|pl3tNJsq()oQ)zmX*c(#%*AkOL8 z&RTBsmO~w9n9aXHQ;)Wu z8TngB55m*#?4gq3tI;~N741bwD(`4i&8`t%Zyy3J?am4*d=*-YHly9>5GuN)s;Pb5 z&n@a59?|yxPvqK+C`+5%y*Tm)w2=z3c>7 zJk!J;>SG|9Lb~Qxt2H{Bn}s*-X(H@T1z)`P9M~xyn9(S_8;%frC??3KDE`0O3sA*N zbC08wn*-DE3=#H=!8f!`z(o?^3h~h4odvT@59JESL<+)luFT7?q}i!xhc5~i?;H^m zib0j(E&P~U04M%_&&k&dmVCqMTR*frf^o3=d09fu*U5QsjwQerh%H$!kbSpbuhG;p z;rL=_AdY`1ulr{l?4t?sxKyo#_*GLs(5skWjPDN4L)U0_q=$>&^Maz{{iaVIEi?Xm f!5;bpbQb*seaM6{;bD)S00000NkvXXu0mjfcu-~M literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1ad602ea1c80e7e8f14b92386950cfb1c605e216 GIT binary patch literal 674 zcmV;T0$u%yP)kGjLA}DpC zf-VFV5dK*45wt;yf@G`UqC2H&Y)py)F|CVaou#7Ec2g0g{sHqM3CZOBerFiS zLa=Z==Q1-)#5?1{S$rg9?!9NuV=Q}K%b83DQmK>>T@QsqV71PO zwOTEmdIMDcW9U4(fgXSQyuMW`mH5FT`FtK+E*AuYK}e_5rfW5<)9L68*&jh?kps;y zE-kM%8V$fFK&V=+^5Deh^YP5g))Ut4b|+x4-RO{7`f22xd+_jiyWIv!l7#B@x*nXk z-EKZqW_wt#*PEaQr@=d^_I(cf{tT}H4W0(H=G$ zjdXvR_M0^ATVK9@!-3=niO|ha;BYt$ilP8jidtc|hsmnx@k*rW~1vdr^Lx)Vm+eczMSl&rWg-4As*8^B+>erxpfestgHIFof<>6mTXp6B_# z?>Np0GYkXK`erch1Q^vdO#>DL!4HEEfKe$$VtpIJtT%&1ieVTM^U0825+9iDX6#6P zNM1)2MT%qs;Da&sBF7_C|7^gh{wuMrBR&zBl+tRHB~Rmy!L-J8oOlV-urjrH`p#vP n0I6^NmhGwCeds#bi$?GjJRa6RqYE>#00000NkvXXu0mjfeTuJ- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..52c58d7939e8dc009385fab8a2ae636091a690ce GIT binary patch literal 681 zcmV;a0#^NrP)Eu{#F)C%UgjD9&Zl6_nG&8%!u1yrlkk9f3e#^+?dxbaZx-8XTf>+g8q=ISo?%J(6cx^!Fv{ z?oE=7+QZcxs6Gf%{u!|?&BVws?N6VvG|r!EAiBK*DOW(W)?{X9c+}dC<79q8Y|G-x zr6!6?N|DPUwxubK zp>X84hy-`|h4i!cUPBdMusoH<2&eB>fBEt8+_jk43 zP4&J`0n@+?kOmyU10-MpK_CQ#_Z>YMt-o;jnjHufid(Hc&Zq8Hu!eI?7Cw4-}ZHuiv@fD2^OE zwPSpABx9P=W|esZcsW0@G>~mp3IbMX*+wm5@kEJvn`4^i3_xG9$Il8ockLDCQJJ-D zGno*vcp_vFH=DW5OT%C)CxwW`6P7`Iz*`Ae0!edMLd4<;k$Yej$YT5idfNSVIRn*x P00000NkvXXu0mjfSY9ym literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ce98d9f08d85a2bef7150746e68e65b5d0b04000 GIT binary patch literal 627 zcmV-(0*w8MP)ywTD1XMyX`66mtt z>Y`q+L%Cdr!6+08kV>WgEon3wP%IX``xp#WRlzh(h{a-COG2R#(6eC}UiJ_9(dl$N zx$C;ycS3I?8Qn|pYY@TMTl-xrX|>zyw!QNH)8f+d>T3P#XM5$_Xd-?vk%$i;8y`EI zP9Hfwr0dbYN|5ft$HiAqr)R8Yv$=t*(5C%DdbAdZf@lY#QRAk0J$vT#sq?r?a$kZA z)_n1D_Wql>c^eOYM}8oi2<^U$(59(K1ksV9iHjHF=8bE&u>1X@TCF;B^KWm@zP3p4 z3t4ATi#zcp)Jcd0NE8WQnwpGXy>j`En11&B;oW-=X1L%dvcZ|U=my4-xto26!C86o z_|cR&du}56Wo@m)MVmZIn+0y*cad16@klh9Ix=!d5$UlL!~8afi(4#!g%9s~zTxQj zN&k12c`S`P6C}}D()9@z4+hKR0G>o;3E^%h7!XN(SDr)!59~nFkKg*_{a=G%B(VSh N002ovPDHLkV1n2nC6fRE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..93be3702c19e4b75d4350baf62cb26d34c1d89c9 GIT binary patch literal 369 zcmV-%0gnEOP)^(Z5Q=P!z}UP;lrTTrB7d zNWsOiD3baJF1|z;5lX-ZQ2GEOzD00rYVA~^K^^L#$;ZSdRs z#}xB$z#VRPaH?sB@nrA;)qj|)%-OSXa(1p^9u64oaC_X~>Uyj%m#@}l<0inK=OwF^ zWsUV49pB{~=9LCF2dLa3H{>q3OSul^zS_XQxVb`C4)yRmpgW literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0e71759ec92ffabc4b9555bf174ee478ba51cf7a GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^{6Nge!3HAle6a#jk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XG(BA$LpY+7ub3N!-`G-jwKgm)j7=adB_$;xDamQ!MMHIU f_2$Nntx616typ$ddusj%YGUwo^>bP0l+XkKB$Fr3 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..297b28ac0cdf060e5e3969f4cf6fff521f09b215 GIT binary patch literal 314 zcmV-A0mc4_P)Tr!FnlIyAIR{~Jg@^A;3wkOo4NG|!vl>rAHe&R5s&t~)Es z@*t&rl4|&3j&=P1-v1daSL+^QY{5AfQ4~=ah7`v!<#~<(s_Po-i|uYd_{H7F!`t}2 zPbz?dAZV}(Y66lZAt3}VLJ{X1?0;kJcs%Kz=g~i$rYTib)dXCwHysYRe>P2{4bHNx zd4kWF0S7#^EQ__pI9(Nx!2yqK+m>x{Q4}bigaaNsjzeuRs*eWu0xeo=!j^3#{{R30 M07*qoM6N<$f+8|~I{*Lx literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a3b3544ef37fa7c872151e80a98c70c7175c220c GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^f|6H_V+Po~-c6-juyIEHXUC)a#>!l}$-pwRf=bP0l+XkKzDXf> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9a2c7d9cb93012e87f85d658d37d29d26146b8d5 GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^f|6H_V+Po~-c6=`_7IEHY@njUQAWH8`iGKl(Le|q_{JOv%eNepG;2d?Pe f_RLv*PW>h0l1<9Yp%qaEKs^keu6{1-oD!M<`#vWK literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f45b3fa313332c6cbeed864212b4a48a75e3bd2c GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JigZ0)978ywlW*-V*PlFjvhd~Y`S)l1`}_O&m;e9k4SIY2 m|NGlLwYRrF=UAt(Iz#vt=eHe|^A-X%GI+ZBxvX8U}fi7AzZCsS>Jic~yZ978ywlW*-V*T4M#|NnmdKI;Vst090%(5C8xG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..15a88e7043507b0b59ae8e2444a8ba2fe992365e GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JicCFS978ywlV9B`=+V4%v*+cl+w*&E|185YvV*e_*dP59b$W>?ia6$W!@=UGPOp8|mfFnGH9xvX8Z)N= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..497350b08d8223d97aceb9efc58bb91199cbf6a1 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JinKjl978ywlV9B`=y`d6f4$HD|Nq%9ulS*V`TqVFU*b2& jbhLFI{PE&fV;U2Kpr6~UCb@+yKy3`3u6{1-oD!M<#j`M5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e7ec7cd4933477e7f75159a09b29d0ad20abb3e8 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6)o~~aSV|NPkwo;pr^O7aUoxaa6`nbr}y{Q_evEBiO%8* z;)!{a!=v;6|9^k6=@SwvKJ_*}JU@LtkAmnT`8q~X<3G%T35;w4ZHyZZ#FsFdh}KK~ z`{ydeQ239Dm2<_9?mV_l)ArXpMg^St(VoXPi>qVn4;i+P+- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6a7b478ee8ffea9a5b2a433a111c57fd257a0f40 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiu62P978ywlcP2yFi!67=Dyr5u0P}7|NrN|yuWWR^5^^e nc!Rc$8#@o)c=6-XQf~&$7tW2&w!BY)IvG4&{an^LB{Ts5`QI@v literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..74f4ba883892faa7db3aee924c1811f0f2a8c737 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiqt(_978ywlcP2yFkaqY|9{56|Nr@yUHo`|fBnW!jwYLA fI(qZiCh#+`U3Y5?cD*(asD;7P)z4*}Q$iB}ja4h@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cac177496b10a6db81cb8f745d6ad6173f29f5bc GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6}5S~IEF}sCr52aV3Zcv&hSxK;otc$@9*z-i;TRPB`qzT zDK0L~w(S4^|LWbHorX34{>*%Mv|F4gTe~DWM4f*ehA# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d04835db2f5447a3af48695fe98e7f3287072a67 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6}5S~IEF}s&+WJ6I^-bIvj0Tf!I%r#5s{TWYi$DZHcU8h zXxi;175Vd~E>h93dV2hif%7@b2G$b?QfEB3yjHq&ij(Hksuf!=Rj13iD?OT`#AJN< z%!Cr3NfjPK{~5~bnab|6H_V+Po~-c6;*h;IEF}sC*Rs#t}iXHo#CUf!oTxh{{R2)CMh{HD?2+o zQ(ax1ZGwYQK*PiP`|Ek`@2gEtU@~%XoU_0Fe-o>tmc#@@4_0O)wQz8U}fi7AzZCsS>JinKgk978x}CeN~|G@9Jn$||g^tSroNAS30#nKM0;`}Nq3 go7>ylGvD9a%fQ6Xnwo211G0<3)78&qol`;+03_rmE&u=k literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f9f6a6e4e38d57508c56a97c8e0f2984f0b0f8c9 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JicCCR978ywlet#UJh3D<=iHGaCyubF&X{pfWkMR;#+eIE tI`~tYGiF#!l1kZYwdjqHclmr4h6g)XwKYG4)B*J~c)I$ztaD0e0sxXtFB1R& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..aca1e6a6cebb8c128ece5645fbf1449f04a9cd3d GIT binary patch literal 247 zcmV*-g7)8JTV`BL8?>|^z x?(3H?Dzp`)893P?fn0y{@k=%!jsohC000!c7S=)xafSc@002ovPDHLkV1kEDUey2q literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..07b36cfa64e32733da3ed799c22114e63126b1d2 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6)o~~aSV|N@9jUx%g89;djF4P_mNUnr$r2Td{!45jNW*% zTNNzi6xDFqG@F-I!GiOe*O`w`&;B| zMe_e%d81pq6jxrc$TfN+kvdU1Q+D=UIR*A@Y13>O%K4?zHpyiv16|AD>FVdQ&MBb@ E03|6H_V+Po~-c6_t6qIEF|}O`c^_X(TPMo#CUf!oTxJPMo-*p{W^}o06iE zo0xczLC9m;v}tJx>FMbVn)*%6`+xJv+x|~c)I$z JtaD0e0szCwMos_# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f3371171d6b4d7eb200f88bc685396727192e6b2 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6;*kZ>+3+SsO(B6Hae~4GG1k=%#|lI}W~4BtrKPb+EL$vjWrLVA zgOtVwhN`ni4j(>z;MA#8AKu(Fo^XU|+1~2!MlyCaKaM^=-v7HnD~mzvqfC`|`FS;< PD;PXo{an^LB{Ts5_UchK literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..27898baed443beabb73c21c570d23c19aad4f992 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6_t3pIEF}sC*Rp!{=S}#t!=r(9)^zD691VGo}X_oDQ8!6 z;=_-RkNKA6-`{8W=lA!1M>n@NMvdubm>wNqn4o)#Nu-s#;l>NC6GA_Jf7h4Ya^VOM z4`T$w-+zClMI6>2)N+`UetuqK$eC2j!bdC~2e}pE*p7T<_{FfWD{8rICD48bPgg&e IbxsLQ0CzJ`O8@`> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0025fc9a498116223e1b5e512a10bef6c623e66e GIT binary patch literal 1013 zcmVRz{s)Cz0u?Nt#6o*$3dM>&3aKrK5RGqCv>^CE>-!mls7XbMqCpW+@qrH% zK|>GHF#Uap5v=U4iDn^z4~E&_e81n!&dkorIOi-Lh>H;M86=udb8~ajz`#Hj@s4;e z!S^g&8y_EMk#d_LN>5LZZFqS2*XZbI$nW>_rKKglyu2*HceLReYEX+lV`F1Xk7$A@ zot>R8hlYlJ&&|#8ot+(ietynFp^*4{c6KJX+J+j`q7V8)g90)&A`N1qU-pT9;l<|W zrZ71@J>|#8$GV^fwdjMs(16y+$OyYmBta0uwYa#*4-O85!O_uCRG<&~LIYaRq)}p5 zxhaULqoc#Iu&}^SPEPpY;o+Tt2DG3F?ZLr8c8OjPrKzduRbOA<#rF0#-{0Sl3DANj zwBga;-_L+vki_opZvX1)D&O1Niz(2AHasX416o0p#>Phb)YKH;-Q6_=Xv0Hp2bw_= z+uGVZ!C+7fr4c|I9&+T>gV=1ghh1G=f3fVgwzdob+VGHGszH>pva;8-w)w`!hM~X% zUhq^4l2BP$`FUbug0HWy8wxzCs;a)gQ!R*@f_(FOy?kwL%~0S0FL(h6cODk`$mOcsxHBY_9Jv~Ep8W@csvZNXtY z7x17m0%*enURsk?AuMjU+c!Bm$pe9aAwU}*@X}ho_#_t=7Ji_^44s~4O=!adUiJ0$+7CSJ#$7{fR_I~xpDj zXg~{^Qd_C6u4drIqatyi$S5c%_(8Kg+}qpBr>Cc*f(|}dAz^4hOKO^EduNwKba<8> z)3dX)-_lMPY-wrXbi5Py8wVUUa1Ax6MW39UoLo5)A_N6vSBdy_LJlSF>$AMPypK+& z)9Z4%{?O9nt*x#9fi_%24Qi>+b0Sr0m?|nN*ma_M!IBdgGu=u&wOA}K>~?#u!{Kle z-z848S*_MA)X3Tt*;k=u%hb5lE2k7qCLYL9N+X^~(qx-O)`$Q!LQIc4y@bn9333BW jl9*+i5{*#Y{afN6yV{f?|C8`a00000NkvXXu0mjfq*>Jl literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7d9fb3bbb781f8f92a1504f30bfdd89dabcbbed7 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G(Vi}jAsn*F0l~qOuU)@>KO-yam#|Co51wn+uI+YmcK)xf zruL7YoBKEa6Zr%NBfII-ru|#Ldi8JqMTZX`t~XLqRej6EX<};Hs5)u#v>ooRQQFbk7E_K!V( z{?5!fpZWgIZ%*d6t%i*j24bL}AZUJm9)h6R*;%L4IWse3G#VWaN1#$zSSXcBhlYlH zJ|D}n{r&w2f+Qp)SS*&n?*G4}{}!h?td_mjU6Kad-rW*QwWYCUk7d^e+sjpZAn6kT z5rM;`{~_}-wm+L@%+E;JphLm}C3WzQAQD0wBoY|rOTQX{(@pp-WAA8Iw0HKl|15j) zhGh(SFWu#5zUCw^T!}C~eC}~?{xG-r7ugQC>taC+|L^xr&a%{#cgUOZXIM&v?)k^2 z1i5%0!U00wq)r4vlAwXBA_m5J5WNeuBm-XJQ5pG4GD%vc|K){+TJ{AkHqN@SJKczX zU}QRd9n*_bf^h94)6Ctv{CUfz_;qs#RDuQ$DR%y1&5G-a6rhf*4Y zl+UOD1*GE{GQ7vv;c-tTIMkz0ovO>9j%b5hpa@a*CBJ#W!0@ndSwF|%hMkdFtXiU) z`BEp+yhkt8ZY>tg&uyH@%^%K4jDrbA;et&vnnzZ3z22@e6<27z2Vk13kb7OtISyxv z(XoO-LNQCZe3lfzc%*pNqU<9T+p~teThOEB+~e&U0mC|zS{Q)dJZ)!^1f7L(zg*L> z*vSW%?dR~@@0(}x6-V^A`~ImD;)NaBUnP8;RH=bS2@pk`wp>>8r&jGjmGPy%1BW}v zoPo}ca$~bze@efc3kapuEVW1!%teOZT3j2Tw5=hjiAf02d}7dL0oFC%@=RXp5Ow#% z@a>+AM|YWt$n&e`>sB-32gBcuTi>R>*|8@lp`y6thc7ydyqDsuUn~YzZf|{-R@-3y zL#wx{Ii}xxL_csiW*LBn0-A$>zp4WOmkf6=ilrjlW?-l9+bCd7|i?*b5NTmy<<6NZ0T8$SN@mwdC2f z6jqK=N@bS@!=YSj%>h0}*4p+%0HbTIrE$w7UMT6+AZZ&DAo*qZAAi(OtNbIfl#Dw^ zJWeiCp~zi#&t6x}m9)O^eR4HiLV3QA<<0>HZ8%$^lrSE94Wb}=+MM^!b>n#5&-JQR zkr-CEu9C;_F*7DqDisulV6Pmg$nFL0TPn%~*m^-`Z3^BgU(sNpnx%nW(!eV9A&FvI zHL3X3lw8Wji^6=8KbQDE-e%b?svdFxxdh$8r97@7$ojeI`6AL8Ob6QC$qh&>ZWVDX1F{0vJnT%%mE;GveKWR%C} zM&4d;Jf3s9|HAA)yVUPo`Aq;0do#)uHSXi5*QF*)x@MVVHr+cN)uMZ__F|&Ta#p8d z53TOKtce!PJUuie8UWol-S(`c2nH?UGqJP{!4RR4u$LCfn)q-hj0^f=h(VYy)T6eN zhRO!ja-aDBTcgeyP(8Ua4IdiOog^*CQa?R(cP#9AgL9`j>EX-6Yf1lzX(!~``M1XC zNmM<4<6d~wWZ$Xrk0K}UteTrq@LBBk#MsjkK;pbuVhe)NI7(7Pf(l?lxC7=1Z7Pzl zMbS;nV4NI5_N{1$P)&XC)huOGQ+h^zpYUZfb*1n6>!`#*b3y52LGmi+<4sY5jyD#- zw&$d}DTguLAfnRtjrM*JfqtHqUu6rQoU=g%1E9xk%;)TDm^2<8n-0IhTsQFaek)MY}>PK4;nBk=ow4pF>vzkO& gna%Org-kgQCf=+BeMi^RbuY;YE~rTjend;_cdi8t>i_@% literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2ffc73c8b44af8d784c58b18da775a3cf84b7fb9 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{L!2~4xmL&cKQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiex=q978x{lOwidsUL1#T`pl)^XJTm|NrY(B`k4LXKcGSePgg&ebxsLQ0L_vntpET3 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b5dad6f9f1f5dd9a65b9e113e5582f3fc914ccb5 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{M!3HGXPAxeOq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6`6awIEHY@CP!4fnrOp3p@UuUx5JV8HrLhVf731Mzn-ga vE0?$XoBreTclln94IdM<6Q?!LUC6*tW|!kH@iH+1Xas|&tDnm{r-UW|lW8&? literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b44bf2c1c8b8cbaf9bdc9dfa34156d901333e9a3 GIT binary patch literal 757 zcmV?O9fwiGO& z^!ECm;WRXp>2;E4Iq#hBoNvCP>zWDZ$~Zs==`bCoM$*#>I!UL>y?ls{P!pY{i*%K4 z&@H+{cZ&toQN8@)d1|5i^n_kgFZI(9jc5gkuQ$+XxZE{i+J{by4R78LG@m!_$~?F2S=JL@*S^uipv86PrkEB(brXL}3|v zxd);IzX&jW7{|nvOL;jOOCY(ugWXgLnM@YBTn;(xJ^2u^ie`F96GodKJ^f!{opr+( zjNngl8|idLc~R@p$wq3D=l_gS#vzBY0uiva{TG>R7TT}xhlox*L-%OZIQ0XT5gR<- zfU*J+Q0~#mR=z-w=x5iM8#c$1vUy4gWh3@NL|RhfVq_J>g zKhJt^KE}kwtd=SUsZm%YMQO^2W;CL zLVh?r!K&I`Jqp^zFzT7{Vc8$9_y;UDl;S1^&98+k8U^a{*jzXsyII=sd;p>7`uO%hyQ#D$pFhPfE00000NkvXXu0mjfP)S?& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..aeed868998a5331cfa617ff6588fbdd8841208af GIT binary patch literal 735 zcmV<50wDc~P)n zbYt9zTR#9s-I`#GiN+0X{1h(r11JO%(-t8%h8iLzvDhM@rBC~ihiNUf57XA#Qfe(m z`WXLH&#e{d<(8i0cX#)fnK^T2R61wu3^)x=0W}x^eV_+)f)1dPgFkn`ZEzD@1DC-? za1NXR$3VB7j6W8z0Oo)mjDq`M1Y89dM1;MdtC@rjAPJVhBXAE4fwQ1rMD?#^^0|q0 zK%;*}Pi8DMKJ$jg=Ut>(4YRBSR=@)=49Mu@!YpUCYGkj=e8i|;)2(qyHl z1~W|<9i+8KSQY~l;Fb{eH>RfA$rmWMQ=n`vPhY>~D4s}DU@J~e??;+9+e!0ci8R&_ zi!wqqEK=*0imf7?DpRdexm=-NdwWzU?ov9FtI3vaKAN7bi=ra6AyMq^x@7-hVX0K6 z?}Z{o;wiGa)@f?)EomK57A=cn4~pyWI8Y)*SFTj(NAYJ(#1Uy1JW{dw)~<*?>TD{J z4vRP3Z@T>pq@$eu$b91*9+HR59HEPj@xL_>0C_Z=#cYQ)73A{xV@M{3A1 z@k9m`N%-)seZlpcSN)PiFW#D3v4m^GDcRm{N|IS{1DsSWsUW4ycAlK*?6xIVZ%~pv zYdsxwGe3*hu6iV+M=q?v9+XDK(XMzi6sJi?q`hV{y0_YEdrtsSIBO4ZaG8%8tiSB1^t-icBA32*37oS=4}2 zxGn_$59%f>BPAx-V^PFQvMZxuc^Spa921Rnx0U53w?@@U*Qne=?^3eRe*?T2TJD~< Rp2q+H002ovPDHLkV1hy0KmPy# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c4d22bfc2e2876806b7ff0085afabc86ef1d1e22 GIT binary patch literal 559 zcmV+~0?_@5P)R5;6(l-o-JQ4q%GDd;KaDG2(* zg8qP@w~C~C=uSvCqO#~lN|}a{(ao};$jn^QKuNnmr9|1qwN*>ob((X^h%#IU_U-)6 z%zWqj7HV5YAp6y|>Y$;044S(qp>x1c+Ba&h9+_UUPRyRNpqrZ`TeR%chL$u2uUX9(hhN zcp1XbZ3OQhqWBbzVN{e*j7i8lFrY_gDxbA%UGF-*{BYzkic%tpsdO4;S;0&ugBkoR zK9Y9GSVVx!;r8KG=nh|`1irt^{9vwv_I^FkNE+6G0rA8u%8G)ykAFe5bjhmS`4qgk z;T;%|uYe@1bRD1aW%)>$zrecTu(B>vJo)bqe;|5?0F(7Cl}5D%2ZCQ@qcK@kLvC+C ze0+|fqH?q>6et*?@vH@pM?zFFA(&lMLnL_#c}*-xa{Yo0$k7^RP}Pr1HUf%55p@$( z+lWHP3=4bClk)5EU09W2c{GNNFt=!j1Gle&Kv&*qWJB1iGjWhQ7SpIrw4?YPLgiNo xf5jc>2Lfx`hfJK(v&&FT_%^aa7kGZg{R0EJ;&Z(8LHPgx002ovPDHLkV1kHp0f+zq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8281342b392227e04a46bb724d3ddea9d7dd6bbf GIT binary patch literal 531 zcmV+u0_^>XP)l-o-JQ4q$@Q{YqJQy}#J z3B6Sm)kAk8x)G&DR-~9+C^9s$tSB-yEfuV^3lvIp(Olas)Lo~UEu*4x?ZDZm{p~mN z&3wxY^A4ECJ2h(;^d_rcGqr3P(9Ns6hK$OVo(a~_F~;iJw5+yOBV7PsEO>Mdf$$ml zLs4-1k6?565LO&6FfOcd!}`U>&OxK1se7E&zk?FQrFlqkJS0gfl0I7+dFEmBGvkK-5Z1tD9|kwKoCU8=5oMip5ZQ$lHhH35KN2fSAE(!6@een z_d_4Z=LLA=GjJKZ0hcdKptpC#T=6SZR2M`Mo-!{INQzi$U{+#wY%th{I-;NA0u zt7n#+48!R8SDmubpEbA^aS7d@+EwT5&OJuxaJ$hKJz~M^gA4_gAsN V^6MoiJhT7+002ovPDHLkV1flN@Kpc+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..adb302c44672eec5e3ee70e1c6733d274e3060e9 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-c0V2&hJg)&M$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GGM+AuAsn*FGmX>v)Ya9ydwO~{Y%t&!@b>azV$eCu%=_fW R>1v=l22WQ%mvv4FO#sQPAhiGh literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e1444f41967edf7b598b0e1bda4304ded2cf4dd8 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrH!2~4l?*DWZNJ*BsMwA5Sra(P@cil L)z4*}Q$iB}d}<-9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..549bd1ecfc443d34b7a853c13b6660d1795137e8 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-c0V2&hJg)&M$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GvYsxEAsn*FQM*cB&ao_>aplUDl$4YiDypijt*wkcvsp#% T?&>W7DrE3<^>bP0l+XkKV1Xn( literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..204fe57df322fa1137fd5394da5465edd594bad4 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-Y0V1m%Ufcyzk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X_&r@5LpWrUcN9H6b-Z7mQAmmdKI;Vst E0Epuq_y7O^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1f343f5f82f8a223b1121eea63c71e0d247fcf6c GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XcsyMkLpWrUfBgS%&%pYR>EHZQy23zl22WQ%mvv4FO#mnv B9YO#A literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..168ffa240c122234572b5d015e62d961ba64b7b8 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-Y0V1m%Ufcyzk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X_&r@5LpWrU|NQv)`0??6M&WwaIvF1Rr$8wNPgg&ebxsLQ E0I5SB-~a#s literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..733370f793b7a68753e358645464b9ce2951fdfc GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScvgOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5i=adAc};aL6X_DSFzqW{u9{mzS5Ts;V;T*0MH5-cd{is$lSR L^>bP0l+XkKv9%%A literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8b3c225938cc986899836502850f9265fb8f1948 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr9!2~459xE0ADajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MFO5Kjv*Yf$v^)8x4*pHe?EiwD%NW8U}fi7AzZCsS>Jiqt$^978x{ljAC0O|&Ua$XaOM@q$&5d*U7*zrp00i_>zopr0J$Pb Apa1{> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f7474705b885966c4f9440aeca5635c840341d7b GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ&0V4mNy#E16NtU=qlmzFem6RtIr7}3CEHZQy23zl22WQ%mvv4FO#mnv B9YO#A literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..438c5b2c938758cd166c27809565b1dd6dafaa7f GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ&0V4mNy#E16NtU=qlmzFem6RtIr7}3C>;A-7yb|Pi&;F=FAq;5JM4|oi T-JRcn3K=|I{an^LB{Ts5MW`q5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..98b3c50ba49701890e50856e12bedc7f4adb3363 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ)0V2~P<~{>bk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X0z6$DLpY+7BPw1^v=FFf_?V*bukhEGm;e3e+59}u@PvbD zqo%-frjLFTR0Nt;EgB=_I%F42QkeVNK}g5p4F6PFVdQ&MBb@0Cq<>*Z=?k literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f9e23aab16e6804f1a211c0e7eb2d8a2e9dbb81a GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrF!3HE-TH59VDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MN*zFjv*Yf$v=L4d|cnwx?HZY(^er®v-!})jo_DvVn R%7CgEJYD@<);T3K0RS9yBXIx# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c9148da31241e86afaca82342f2de9da2cda6405 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ)0V2~P<~{>bk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X0z6$DLpY+7D?U9r`Tz2A|Nrq7uP*W{%;PyC=b&?rK_#Kd zy3s8fo3y!y85}Sb4q9e09B$lga7~l literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c43104a3efc6f68fdac1feac2ba46858a4a7fe80 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1d!3HGVjK4YnDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MJ}E$jv*Yf$+z}Ye*S-Xx&QzDb$_j9uzj5Q@Bjb*+#Qk= zKEyAJ-(M&D=kITGW+A&nUw(dmKBZsY{@src51E-e{(X5FEW_|J)A6%Z%JbJi^B6o` L{an^LB{Ts5v%^49 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..13b87439290f1ef41ebe3b9e14af7175cdcc5e6e GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1j!2~2{&iT9qNJ*BsMwA5SrDSr z1<%~X^wgl##FWaylc_d9MbVxvjv*Yf$*b0^nUa^6ckjlvYu|)jnt%8lI&|ps(xprP zK6(1|ri00Z{URzE`ihDN8AK8oE;{Vv71r0+m$tXJZ(guKfw|+^veYB zwVmRms*4jly(mdVQISA|m)c_&+gehXJ-1a=WNdLHRgqpKF!g8M&I}UF6WyWVT|Gb zIcxwS#I76PhGH9@N!s=cNO@Q*)vvVfv7~e?DVL4b^PW;?1WbJ$ZttcqbX*u?b|ml? zjM|p0LJ+KpyNK3uy2O?R^=8^5y|xNn%YCHd%gzjs$F%NMmV zPd*FFcSYbF6oe2nBje+Pho3)bbNMo?t?y_wR2D1eeSL6vge!0U$-gmw`KDvcLz7V5 zk-!^Z^$PLNk+HGkqbI*j>ZH;Mk#DQp%r4BOrs^_i1A$?tS(tOWj!5 z*6^lOMAyR91i0EjL|tFx-lx81D`TFUf_#iX2A=6J7L-s5-D<}TN4(Tqc-h5;=tv~| zA*Q56wLOH8^yPcC2T#NZB!u|R;OGN6wX%kZDAA!3DKS!Z6`BCkmW8n_jFgxNu7dqt z32^`RI{hODbG8sK#LfZ(W7&fT(2Yh{5kkQ0ug5DkkiCrNSF?mFk2x z2;FW&YmHK>TWBE(r4+vJqqXkTN>~fVkm$>yjp>aMkV4ekj)P7l@8o+I0!pc_=Q|N> zT)2R@veK!QL;|;5K?qTc-v{7Uvr_5nNhi^*)~-r-GaMt@XyDJzBC=T$_YdP54*``J z0pL>o>b23HV@EMHr&EA{d+Jmtw8r3<%XrtXV;ra3;mj6YG1@(2xZ_~C4vqCX8s=gI zd}Gd(XXj3ozHlrTE1G&8RjJ@FE_VKqZCdR{Y$L&NO%4^QUcOe-#+-=}aA9h_R=3&< zpWyvx9%DeaS{T>e(#yN?K1RqGWHyCKNF29icW!u*BAkS(5aR68zo&h9-w83ZdU=?Y#8(VXTtMGgX@Wi15l;5BCrQr_~P>T@&aJ7DAX|Y^4`7EN4zhf+N(5P+B z0tI)B1q7qSWg!RIBrCU8>puK&(_sW~5|$9+wX1)9zma-$43kdo>b=_LjEJt8Op46$ zQ5OC_?MNYBoq+O|1OVz<|JZ4|)1Ut1126sf!D7jA2mIy$fE0#1OnHg?Oc=;`8?B!h`fE>^R z<0s}3I|N*)5f24H)zGS>q%V;)vRVQKmr~SLRhzU@)i0Iu0irfiN}_ydYZ4Syl~S-s zA0jm+rU@v`gAkGsuuW_*U}IlD?)81{-PzalLoX_IYw%4Ib)~;{G`pJrZ_b>VJxfX{ z{68;kwg*J?AARkQJQ9lJu!Ti%tAbh!&#eLg2rWsVGrng%pD)9oy7uoc%r@@K3Day5 zmlD$o7t!DpW6{73-W z+aEQeF{`V*y7qHz8@5ECmmxl#M>221aczKn=o-)v3!}9uhKLUQ_2?hX`0&-9>~yfb ztLstwRsh;dHc=^7*v!}ZN+z(*ZM7w1Kc76LN--*^OexmJD4}=Fs3us-ap`|ehO~7X& zj|d(SeC0!VNy1rh3h!I4d;PBYv8te<<$}zGhN`fZOlK`-ZLnkj&nx_DWZ>QGqMC9~Xk=fR%1^Jn zBi0l$NF=k?Xgcd$n##$(@#(^uoayxHf)f!r@%h~N;1>eAW*P>Ych<)m-g^7(ysMn& zO9puE!2Uyt(V^i&deUD~UnvBWJ(e`%i)x~cYg%IWHdOGcDBI1tn_8-Ssr3<+-quiC zy~6R;<$ytEOKohSfEPX4^OC3g+254D4FN@t+;XPp4^nrt!Is*}$eF=JuW5UU-fO8p zgH>i;MYv^Qef9e4%4n+qO+#q!L~8EnY^thQS`{@`KK;~_Lb~40&dyHrLmkBcuw(ZR z+d@X@Zx8PHmZ|i};QXq9A|c{t!M+d)Y183=$QVL5b#hja2>KbzMKoZ1Z{NPh^h`Sa z-Gc{ydE{0fBfee1@Y`peI_EgnH(q=BCB3>l6pJUVYtl@`n3Ssvwhf`1#Eu*o=&N=- z`(jx@U((mxTS%v}oioi#U4nl_!>2dLM@K5cx(K<-vqrCvWfSA0)x_+wp`2Gw^fZo+ zjSU)_o)g6NSFa9}f_ru@W6ufT*=P4BUDrQ%edIdLD+@N8cCO;Rw@!R{=z~|c4xI1V zd7<~Uhng2f4FbgkaqAmzyk222UjLs;vYD533VU8S^t)5v+`VIQQ*E^|IjqB$=})i% z?piV*(TeD29Xqd%zIc4ZcI>VLollOpPcKMB>{|H&x!LF`q9zxRjl7|HyqbPaw>)KcpOSu=*s)*Oww(r$FPi6y z?HlGc0IL)L0HB*@uNS4=fN5-Otnqzc#N+Wa0KaG^i*k#y0azb)3I46Cn6z3k!T2Vj l2yjDgF$a9i_${01_YXwLbU*)u?alxI002ovPDHLkV1i{hj!^&r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..47d84e49d3ce9dd4ecc09856fba2a27325dedbac GIT binary patch literal 1399 zcmV--1&I2IP)ki`0G#1LCVYt=U3qabyHld827KeUCyR1~L`>fFXYh;;knm%W+$&@W{Q;sc*3 zC?bMITEQn`9|&`4+BI#=&Hm@sW?5{v*#|xF=bU@aJ@^0nzkcT)A(>2KDjUO8xAAzO z84!;E(s*=_*#qAJd;5VuJV5kE;MiEdBXAUgAiUQmQdn+uIDQLNR*Fa@aQD=ycq|gB z{uuam(mlZ4PJo*hZQaU}4;}!I9${fcg+w1Z{taN9^d#&BsvNm)~dQ}v~ukzQfm3q#c0n5$?NTTP@V_rCHV1jV;2f#jQ0R9B(XB8Ju zm%F<$K(1E~9)x=IC}M4GPzDCz3Pyo5S9ENZh z(vl^JUc3ljaj}6((kI^oc@qv`5NOCND>G`8c=66oDEs$AU_;y00|zkp@+HKM4!A-g zfo8v)PypN_qs>F+cDM@*HQIAxLI8XV6sR+1RJ!u>rQWMoVW_Bp zG=DzvPXawXJ%~gi&@>IA+YNR5cJ$r84VT|9Nj6(4d9HNa0Ep;M_{z(ZF{*jaTO!f6hiX!6o?!jAB#P>GQNh6FI08ws<#p^B0b~r?CnQ_MsFqcbL zW;UBs@9{C8V-5$*b#>@(ZAErg7Be`V^XMBNjR`yXi>nTX{`VLeHd$N!R+>wB2`sEtf-5k zD5;8ICKJqi_hR7jW7rrI%(G`Z`+(Z_0&s*v&qVQfemKl}&z;lVu2fZ}l%z7BlyOO) z*S)ZLGvv8*(NA9R1_H9k*k`{0*8dH_4eW9*U7Blr^-36c@&xLhJz!*IdfD;bYPIT; z35?hf)`kYeySkuKmDs#qB{2#`zXRZB3MoXO2OTqTEacyq!LMT9?ca42!+7 zQ70#fC_2aQ=ZXFKzXBlQ$T8S#2i&2M%+Gn5ERa{M7*RRztE;O~^)@%s*N4TpcrnZy zH)7!7L*%+#1`1;pmF2=w0f@li*=1#tcIOTfy}i2iqgkh)0kTZaVIwLZp0gi1q!XC% z{5fX%{p8?(QZ!4m-b=($H_PXfdvDx;al;14fxxKNb7^jFMoUY}sLHt*JRVqg?!@5J zr}^C113)9jDid(g85qSnl-sr0C_#`b2~dmWghO*RNsE%M+ggA>tZd*Rf#$ zrZ+%W=k@E;KG?R6F^Vk(4oN!k=%~|seaw4$#@pxg@jGjobJTOscD;DPuR^~Q0HG0o z-wVw2J6jr})0dLMiAih(=T$3E(*&F$-SPB`2`BpL^MIL@4~jO9E7u6M{)QV%K8dvh z9W?GH>DP5<+>A)K9vdSj_TtLRFAn|JQWrgEQvjy2{RM~kz?_asK|cTh002ovPDHLk FV1id7oK64$ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..058a6caa45a0c9f650d225cea4b6e56c756b5a5f GIT binary patch literal 497 zcmV%ET; zG4Im{Kkndr@AtiT-+dAQNEkE79I}8cBQC^?Y$Dsp2C{_AO5?!=RP2J0=yW<@7zTUC zwKHT#DB%Lyd5e;3wHl*PC_o~S7z%OyS}5THYTHkVx~?;d#UjYEJld34!UZ&QfRd2qq9~9` zrC4{EyN9d@1+7+#VcRyCrpXHG^*U6mRraLQ!Q6esEflod?Wyn)0=&j4=ytmkIm!ef z@)82yt@~@Dpx5h7@P) z*B<=H!M*ppckglv04O-tkPRe;BoGzZMfQ< zmbg)ag@sLGVWk#+BmM>}e}Pz7o8I)IKf^yD#1tAt5b<+~f{Mu|yU6aldB5%*i|pnN zwwdN~Vdk7OXJ*9AI7}#q3;~YJHk)@(pIKN8Art_+!(r$9#>RS@?sonoQD7JN37DDT zf#X+i+`j+d;iFsqq#rRDCWGYdo7e4j`|FN#UdB`^sv(ACZFTj+KFiW_v$JhUVUp(sGGg6p!H8yr5D^h--eG3+vy%QG$pL&(mbUY^PZsNx zq1^Y)%rG-lb^kwZuQVl1Gphi)JsYMbp)9Ml85t-dSgibr(MX0VgJc*1yox$S)VTvU zVTL*#sfdV(5pML>} zbADlBa`FO*2a8qmsBj;mS|<@|d6s?3v-F)D_MHC#d4&{7gzX`w00000NkvXXu0mjf Dcjy)Z literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..17b5a2b9e8b0153fe5e3fa556016204ec251d5c0 GIT binary patch literal 578 zcmV-I0=@l-P)VF_d9b8)F_Sp z5kv$LMNqKT8{L6dq9Cro{pczLy;Bzs`@z?^xvnH20-ALfD-ry)V7Jh@~xHCrw<-IzFSo#*i>aX z{rcte#$d3u8$u!ekQB1>_|w|j+wFe;8IU5Nh2DH|VX4Px903tRuXE+{rK@0$2?3|O zr+M}A<@}r1Z=TbNK$e{BjC1Bdlc7lo2{8ZZoQl{U87Ep12>YY4c80r*$0KIMjF}OC zO;bZPnM9xqjN-!L(*1?=7jJys=+mScBm~&B3<3-WBoQ>^+RfXm-#7a&fQPZSuz2yt z%AK=wb6s-IAh1oLfP$z~B4;CsSOhS1&z>pP*FK)373;cA!`(fq1WigDk_dn?wrR4F zpa=!Vl&PUCs|l@`Qsez!CAA|tXJ(9P86v-e zb4Y@0m`tZs)g;r3A{3Gcfg`pF3K(OX5Cj6UDS{9XLO4Y$?(YqMeEYJ#(>u3VlRqVYp=0gXf0Nmz3jTl)$e_~AK|)9ttD;eR&uyP*rKVsn9PZ0~_niCjh&mpR zbdOnK7|KB@byD(uU+~kSD1v+0@Av(~;qWE!eb?`HyR_TwAVke(Qvl1djN&+^PNzfd zcAHkK)$?>Z9r6`G2CEUU*=%UJT#7eMlN`qpFhSz*xI?bzd2h^pln$z@l1iu!*tRWI zCzFZ9*Xy;!;n5w=jYb1P5ExzwV7A3#A8l7w2V78!;i+Z_xBwNHp#yjYs1q&Vg>JlA!f*gK2|hWXnBj1NXRpU+>} gzpHzH=T89!03`|u*fZPjrvLx|07*qoM6N<$g1ptjNB{r; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cbba05f64f8d646e9d1d289519c64402f917d886 GIT binary patch literal 462 zcmV;<0WtoGP)M6k!Br389lGi^i|%`b9-suW%TgL5E>sl6|Hk(XJc)?Oq60r(ocX?a zGm?lr&*?vi;c!T`T8(^8LsPoIgUe?Wsz;$)NZ$_ z)oL;IdYvYd37@Dno6YxrzyAs!LYz(~9_4U2(003}{eDkE2x>GM%x<^iJWkZk=QA0G z@$Gru8#g!}kDSB_Fxqmtq%=(#n2^Vb8lG{1yzm8=a|1jm&}^|-P?97}mSv>tI-jT& zwcM;Y0oGWpR;55w^av!>kM(*@rfHS}jcNez-3r}qx0Ht~s7b1#sJ&T1{ee|c)ZVP1 zCaDT_^L2&!e11*hg{lf@)MfCBIF4zv+3?GuX&OaQR0=fE!UHe9g{SFs`uQtECXz4= z$CAGXjG=)R9(aWuDV6-lah_+hSw~_^%m<*>ffgQkFNuc%57ooBR{#J207*qoM6N<$ Ef-&;RWB>pF literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7b1d88f8b7e4c4650fa45caa4f19cc12ce73e9bc GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X3OrpLLnI_i4?6N4bP!>e zlY3i%LbG{xEOK7W)$>E)ajO{bB&~o66F+`E&d;$}UVX;@lysoo44$rjF6*2UngAYY BOA7!1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e9d60da1d07945b47804fab97fd26ffbc0608492 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X3OrpLLnI_i4_b3E8Hz9*;M}vjLf2Y9TT#w|MLJjHNa|gG zA=Yk=UB-dgU;Vu@du96)BOSkrP2)YWVq#EKCYM@IMS=rgPEE*{9gljLtDYPPGhTF< zSG;5fbG7fW7CG5@8jX{eEmBB!bL719ch$Z<44SdJnvdVdJO$d#;OXk;vd$@?2>^Ky BL+Stk literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6500896891afd6e7aa665e3c933e2009e6630fe2 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrE!3HEhySY69Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JisU_A978ywlYjjGZ_mu!#K2T4aFJbUkwXh##{+i39)_Gm VE@#_f*-)TT22WQ%mvv4FO#p=BA>#l5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6fcbb9694db2e1edf337da5d29a544a7845a7935 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y@!3HFyABb!LQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiiA8}978x{lM@mW1Q?Q-75spPyk%IpOJ;WDSr z1<%~X^wgl##FWaylc_d9MPi;Vjv*Y;$v^)8w`VrvVc~ShVK~CXaO9Fuf6X86XrKxP MPgg&ebxsLQ04k;*S^xk5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..71857276c74f598749a3e255b3d465a4b930d92d GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XB0OCjLnI_i4{qc=WFWwB;CKCLi78sVzxmxx%J?-(FZrSO zhufT~(PiPn2^`+ei;^F-Huh~Y5n=PInds57bm7AT)#rW|DhF0P+A`6jM8-_0@z7zn dUz{zy+|R36XZbH-;RD*i;OXk;vd$@?2>=HBJ<0$8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e597c5e7a08df22cac4891b29e04c1aaee539887 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X5v<)~x9#sB~J=qKT*wn?79Q(b>UKrmcn&*Y8Vd^09( mR4(&4c|%TENs_x|zW(1@37>?5#6Lj07(8A5T-G@yGywo_WkMhT literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..483e391fa1229cd9c441e85eaaa14e6ab96a71e0 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr7!3HG#Z-iO_DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MWUWAjv*Yf$q7KflElU+u#j1)f|2nhgSR|4OFB>igQu&X J%Q~loCIF#!8ub7G literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7ea275e0724848ec35f6192dcea8f5d93d8a9f71 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G!JaOTAsXkCfBgS%&ulp(kt4gMsYs!Y{fI*2Oa~nfA(bT? zWmYjtzE^X5Y^@{Zcw@$dWB)BSa4Ys2Z_L=`-4o2Zu+HgPicgQ51cPRoqnN}ZO?C#a Xn5!GwW}0dMjc4$5^>bP0l+XkKM9Mdh literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..78f90eddb5d2f68091aa41ba99e6095970241256 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Go}Mm_AsXkCfBgS%&ulp(@kO={`=j#ziV120+(L^t{;^lP z;oEbp{QpMgWGAUYMsX*p^rVX=(|6H_V+Po~-c6={09IEHY@CUbD={W;H|@~^SuzQQBxjvpLKaZMf73XhaJ gELfDx8agZ)V%kOf`Bt0118QRMboFyt=akR{0DLGYIsgCw literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5bc78a08a68a0433061d3d52e32b15b7a37e73ca GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrE!3HEhySY69Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiex=q978ywlYjmHU#}y~%zQZA;v=hH4Xfb&he!As8U}fi7AzZCsS>JigZ0)978ywlM@;k)_wZ)>Hi6yashX~QyW+Tmwc+hG(CZ7kd7E#SPTR;OXk;vd$@?2>?^METI4Z literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f555903ebe22bce76815622cf3cf34574834c2c7 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrK!3HE%<(K{hQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiex-p978x{lQs19|DR`IX;g4(e)zv$p+ABtRG;C+OoavU T^}Zi~>KHs-{an^LB{Ts5`H&(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..81e575fbd4999165d683fb9916f82ff754e4c020 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y~!3HE1UzHvKQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiu65Q978ywlQs19|DQi_;J{G^)^{hEwgvRbbS!3knsK3* nId#Y3m8U}fi7AzZCsS>JigY|(978ywlM@;k*8O*AI8(r0_+)`hw17MFsf!EL-T6B1 jKFn+GYP!oNJb{_vT9ZZOZN3BYKz$6Ju6{1-oD!M<=zS__ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5f8f753b66a021cb6be160441ae570610edae4dd GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrK!3HE%<(K{hQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiX=Q;978x{lYj8D@Hhx?D49qcuo2==*~?J4L-~T)6TiJc OH4L7velF{r5}E)fG#)+x literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..612a5ac4a8c91a2ff8c304dfc397cd13a631fc5b GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y~!3HE1UzHvKQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JigZ0)978ywlYj8D@bK`&@B}>Q(@EfddZN)nDxi<;u0=qb k^%>T80jdexPac$Dke0NFe9^Cv2-L{n>FVdQ&MBb@0F!zs00000 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0d2567cd01553badc23cce79cdaa7bbd95178927 GIT binary patch literal 4481 zcmeH~`#+R<|HrTEn)6@`GZ=Ch8XCe5Qj?o@Cejd^972(C$hkr})T*v)q6QsC5-J(V zX)GooI_M&Dh{&O3Z;DE*wl-9|wY$|lJ?`)QUHknLzK{F*<@)*ke7|1r*Xy&<&6T@0 zln3yD-vHptmoNSO{Y6DZk&%&hc6K*z+>p!V5{V==HPz40&&9L#x>Zt}09!SDtaY6tT z=Ry>=Qy>o>sa#`ZD3J1a{4!T7i!Me}%@6gWJJ|+|q*wkY48E=Ki}|(G?U?bd<_+BZ z%CSt(lD^_NDt`#X;KSa3^m&2YNT;pb(cg0AX}46j?8NZ|Tlc28R%;ZxZ)H0b zVK zrQn2(EzQ+kWyBnEfV^?Ji)>RdBt5@qF3dcjp{G`(c;f?l(=1IV=jFZ-xzBb7o7W!R zo2R3B*`d|!{$P&o-uJ)TUybRAT`A72I%6izj;DQ?B-+FTHwr@Q2OMl7Mj9+=4}%@G z`O!^n;GBK-ve4+GgwLO?vutPgN*?gtDXM<6?;A1ckm~Ac;qJEz$h{+zL0t-nqQqnN zA3y>j42p>~vsE%#sTjoJEttGSxFZK+8#~EZxYV6Npi1a#rvVr;_*RZ(PQ#l(9Il5I zfWiZ(Ahvf#>teY0DCyARE4Rj~^&pXQ87o4|HzBrBwoUto*nEs_joz3Wuf{JE-(vFN z05G>1M-rJ;eXutcW5a9Prdn)}u4d6j%6#lTRFLba!ksnGw+K096+$`gFgib+Y5mc5 zM_S=Dke#?-azS8&JkN+Tw}}3S&dkmSr~IL0#&7Wb2O)&QT`j-8_z4rGrTVG=JL{?A zDGQ$;_58sWPo=5+xk2IoHt9Bj=HFbThlb=~iVY=(ezMR@KkB6F{N|OsGi|}U_wlkb7FJPFOw4Z1;GY+E;aArA@mF(lBFmxh8jpPrQb5OEcjH3(aAdE)^=CL z!GF3of4|K-4ym(GIdp!F>0A*$BcoE{PpwFC# z#aJ?(F6tSA0f|0=BIJm|1!BCn*s-^v^p2QjPO+3Om~6xll3qG07GM_;uMu%MIv0LW zMsgwt^fkuZtF-W2SL|S4(UEVZ!gUd8!efZNR>mZ0-}F`)Mw2CD)5FCGUQ^#x*gSpz zLa?r3;U*qG7;!&uUGCn(8H2X?Jhu;`u6){!9jVK-6rykjXT^^LlGa)97{Me?dw(u# zZ19`qC-Kt{-wj|6g8^Qjnv$a?oJo(IfMIlJhI~y}e?STl0-eOY!k|gJqlRhaG0&zZj_ls!AnkE44KD?-*vn7=n^f zG}X8RA)1&_+01r0N7W8u%QV8oSq20L4}s962hp*ywq(l6H-U5wz39T}<#0BcKHBeQ z8zI19m2NwSt^o4zDhaC&428O7VblWjrK0B@1zT|^FJ!$#M?s8=YEO~f&uD>_GkK_p z8MURt^#@JndAlm;s-C*bD^h_BEW+h#eqRXJyMmO^^%*a7U%EAA>1=e_|G>=oY}ywG zr#|k^8S%-%OTpWiNk}hH<((;Lt`&>%L*&BhRb>I!>e_c4s%~zYX+w{EgLP>9uziM( z44WQW^M8!QUV3Vnd=OF&-=iEJg46|$%ppLWLuAC#15ngeOu!5O6nH-cAvP((vbSN@ z^%#loWhqIVb;WS^9>9vGOZgzig{&`SvLApp;J(q`eNnww@+J3T2h_9|H1~06>TCMB zGdK9K!x{5L5ps^Y=efs9s##|}fE{H?n8*}1UTyWk*v7f7V$Z$TS0!AVpSl@JOZAj$ z?G)e6Uglb>*V-`K2eHgf1feSe6&MX>(~q>7tt}XJ5q6;AUF0Yb+Ym`?eH#E&*_U-R2%?~T7bK9CpUYbJmA?kcKFed4sMDYsjA?x0~IMgIANL7CVn$OWP<*&M|D> z#{4L3B_7w?^P+K2-wli~yXlb*xA)ZwT@^nKYETo^p-BGQ6^Q4aCJ!^NVYCh^+fIrzm7p>Au4FEMocST~>csuf z2X$7=l=uk=qg`(0IfULn9yQX?O!TjdYms%o^myI6X8m>kYccK@AMQZa-8Xu3Iq>p5 z8O9{l54EG^NVPX@o%UKMI~e2TuW1o6ndrc8_q~OgyFPq#M|;XxrCPo2ObS#yYouMj z=GvjI!CStlI~Yk{QY9(MuKl-AQ@)#UYE0$3$#^|TCJN4^p`i$dVdtPeNg!@(lU`Uzm0&qnpg)Y5fa_1s$!^tyl z$xrVU_?3hWTpzCRKPMz&U1iLHs zk`}5P^$62Q(vvu8g@pj&l^0jVO|R}b*}C?#2OMx2o$1BdS~*EyExx>8QsP@Xd>~Ld dfit9yThsU(e{sH}?!sX@gkN&4QHK9N{skH~$IJi# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..17398406c1d6b304bcbb3d6aef008d048860135e GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{N!3HE{4j&T&Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiex=q978ywlYjjGZ_ms;lSSZ00|&2wBBN4;0}D69`3)+W URwo>802MNLy85}Sb4q9e0Q)2$*#H0l literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0fa178fb88018d913d50feb3af6c3b1003b9fb73 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gt36#DLo7~jy|kC_kO7a|#cYm_MiA&!f0ih?-G2co$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G8$DedLo813oqU?FMS;gv@!{q_D}KI++)HK!C+86YwNexyV98x`Cbb4vy`7MxF|RM4U0hNq_ql6Yg1GMQUqS>b;BW9`G%%0TKT6Eyy?2H>u3r>1)o8S8K z`0&2X#xGk`I(Oul{(r4|&rd(eJ8+V#Vc8G=8plJaFDSr z1<%~X^wgl##FWaylc_d9MM|D7jv*Yf$q7Kfm?Wn#jUkCwVH@Kk0R_Du|Nq-F8%i*2 XoGWj9V|8x@P&I?6tDnm{r-UW|g!>}W literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..aec43cd340fb6f474291fd35fa1361881025c73c GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^fDSr z1<%~X^wgl##FWaylc_d9MGBrSjv*Y;$v^)8w`Vq#;NWVoVCl$hh+yteZJ5E{5y^1z Wki2p84W?9}S_V&7KbLh*2~7ZR-y)j; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..039ea0815237092a8d5ec9e98c794eed0919066d GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{N!3HE{4j&T&Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JisU_A978x{lM{e|F^Nr1K#@_&#G!@v@c;k+B~Pd@WW}pw Un(WyU2UN=7>FVdQ&MBb@02-G2co$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GQ$1ZALo80Ooy5r1V8G$JJuSEQ#lP~`2HA~m#?4b&_z!>h zy2epLTkH9cPk;0R*ecYPes5^3IIS|tV2`+|he$)qUu|PHmK=u04IUO-61c3J8}>Re zuowB~u9bc0e6o}ysCt_|L*AiqO^%zo0!9z-Cx4xBqV&Wu)`j<2oK!PC{xWt~$(695osT~+`9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4914a6a50ed834be54b7a75f40366d307ba28b66 GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G8$4YcLo7}&otVhiWWeKQEz{H{QD4FOzMgY^N>kTr=}gaH z?v0yIayMT%eqD%Bp(!?F&f4_N3*s}~T!X%!{_SccA(WSN&m~Af-7=rU>+zIILE(c_ zBZ>lrZpKsyDaSVd%Wyd&{U<=NWwpSGBdhC=t#ah3aCeomnKaq(mCk3iN`bXE`n69Q z7N38U$;8U}fi7AzZCsS>JisU_A978ywlYjjGZ_mu!#K2T4aFJbUkwXh##{+i39)_Gm VE@#_f*-)TT22WQ%mvv4FO#p=BA>#l5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7b1d88f8b7e4c4650fa45caa4f19cc12ce73e9bc GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X3OrpLLnI_i4?6N4bP!>e zlY3i%LbG{xEOK7W)$>E)ajO{bB&~o66F+`E&d;$}UVX;@lysoo44$rjF6*2UngAYY BOA7!1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e9d60da1d07945b47804fab97fd26ffbc0608492 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X3OrpLLnI_i4_b3E8Hz9*;M}vjLf2Y9TT#w|MLJjHNa|gG zA=Yk=UB-dgU;Vu@du96)BOSkrP2)YWVq#EKCYM@IMS=rgPEE*{9gljLtDYPPGhTF< zSG;5fbG7fW7CG5@8jX{eEmBB!bL719ch$Z<44SdJnvdVdJO$d#;OXk;vd$@?2>^Ky BL+Stk literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9e2c8e3714178c3e31a483341416146d1562825b GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRT!3HFG4z<(*DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MG~Gajv*Yf$q5Mw0t`va3VuKS|F>s0<6-zEE!5wz?dmO{ O8U{~SKbLh*2~7Y~&>$!P literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7b93553ffe511430568d1adff04f285393b5dce9 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRT!3HFG4z<(*DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MPi;Vjv*Y;$v^)8w`VrvVc~ShVK~CXaO9Fuf6X86XrKxP MPgg&ebxsLQ04k;*S^xk5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e930dc7d95cb687048207f8fedc8e3b05d4ed33c GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrE!3HEhySY69Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiex=q978x{lM{e|C5equU?H1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XB0OCjLnI_i4{qc=WFWwB;CKCLi78sVzxmxx%J?-(FZrSO zhufT~(PiPn2^`+ei;^F-Huh~Y5n=PInds57bm7AT)#rW|DhF0P+A`6jM8-_0@z7zn dUz{zy+|R36XZbH-;RD*i;OXk;vd$@?2>=HBJ<0$8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e597c5e7a08df22cac4891b29e04c1aaee539887 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X5v<)~x9#sB~J=qKT*wn?79Q(b>UKrmcn&*Y8Vd^09( mR4(&4c|%TENs_x|zW(1@37>?5#6Lj07(8A5T-G@yGywo_WkMhT literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6a016f697e82f5d1c7f7929353faa4b1af196900 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y=!2~4#xfUw`DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MM|D7jv*Y;$x&R)J_`*FeBo!C@$V4BWqApQq{PXt9kNY~ Z3^rSRAL+XMoC;LU;OXk;vd$@?2>{MnBrgB} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ed3225ab5284a075f6c05601a3d15a6fbd5f4eb2 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^AT~1x6OdGm=Trhxk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XlssJ=LpWrUV|JCS?Cs?h78W)(Hs=Z& B92Wop literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..722ba600101087b71ffa9b9eb5e49b77fd3bbd9e GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XcsyMkLpWrUXV}$RF);Tr9`gu^T@Dmy@O1TaS?83{1OV~= B8s-21 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9ea5bc23b5b987ce28a074f443b4ee5892508b3e GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)O!3HFSxVM}GQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiX=Q;978ywlT#8B655i&G}71~zP!BLo`r$^4bw4Y_P_6d PY8X6S{an^LB{Ts5Wx*iI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0072a2206a89e285c2b2ee3b8aa9dbd4e2c94fa8 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)O!3HFSxVM}GQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiljYV978ywljqpg{`!CBj87#STig7AKhjTsdq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6&ZNCIEHY@CP(e9`dY7+o}SLOtp5K$$Ik!%{~H_p{rg)y ol1HaofO)e(jESt9n_CaVc?(0Oqmy=b0QE9>y85}Sb4q9e0QMg(asU7T literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2536791f7e2e89ca1a5c6db15ffdcbac37112a7b GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol;0U|59*B=E^k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XrhB?LhDe0x26%HhEAsd#>%aZIP-~p~`WMeF zotkoGJ0AHMc|I{@n;I17QgXJ!$hdLxoX^%RA36;ueV^x(u{KsywdkDgqVIkUXO26& zh;=dqsGbO5+8+6EMw#~w#jV$#uD+?(V8gY+vB9OO%lm?0`3%tyrh2pFm*1Mryp8=t rGV6)I);<@y_S^aeGych5xP$SO?-cI`uO>bOI+4NC)z4*}Q$iB}I7VHU literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1878fd81ec239243d80c398fc86841198728be3f GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol;0U|59*B=E^k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XCVRR#hDe0h_8;Uutia>?R!e4QImflc4xfvLRd46|?qV`- zIKuGY$zrLC98WzDHnrFDvGG>&;#KEJ+rtJ{yPwJB>= zpUZsvUA9fxY4Hh(=3g>Sk4+MtS@<>v?wY|b5);=Y$ofToLHU{BznnT&Q?Dtm<1xI? ncDm60ikFV{fwd1_OHX0G9x#PFcy5w5(0L4=u6{1-oD!MDSr z1<%~X^wgl##FWaylc_d9MGBrSjv*Y;$*0brPv_#|N=iyeNnv74OG~rp8U}fi7AzZCsS>Jio!fy978ywm-cStJ)j`Kth;;BKiiC%@7WiotWD>imdKI;Vst0M=kU0ssI2 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5180605b257376753dbeca88b83ab830ef0fcd7b GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^%s?!}!3HGfElOzwQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jio!iz978ywr}l2-J)j`Ky!Ln3EZdBk{f-)u+}{@b6zO0R zboHvVJH2emqqU~xpD_c>U$? d^y~W`GQRH-OJL)-)dE_<;OXk;vd$@?2>?n6KDGb= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e037d82b5b4caf970bb111a62207578a38b411df GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{K!2~3KrY&p(Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JicCCR978ywllK)oWGYTeQ!93JW0QIOXz^tOv!40$=AD}} tZQ8LpQ>L&SD=aKLvvK3bGhtz241aVK!Y*FhVFA?7;OXk;vd$@?2>|pKG3)>U literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9ac0cb8c32f855040ca3dbb6fc31030d3ae10bbb GIT binary patch literal 322 zcmV-I0lof-P)~0kTBD z-K^iP)qk==z8N8Q3RTV`nAk=_HufEG(Cz!~w9WJE_}zOyQ23$ylg@!+*Ez$EBqN<) z0`&~!H+GY7*qgjZz$7-4aD2W{4HarFJ&;xEELF(vml|Xnnsg}|Bwe{QrL0nu22CnW z=|l$UvL(4)#8nN=W0jlL(<*APNY$2f#io|3Q?eG8_Mq1fo2IErgSUjkwFWOwNx&In zOaux3JAWc8?hu`U@dn^Yv;n@cZ`+o#G7$;1hC~1`gpf#b4<|7BeOVT_u4}f?ACL&p UT9&6-)c^nh07*qoM6N<$g5=kTj{pDw literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fa36e515edc4b84809f936b3def66bd09a82e173 GIT binary patch literal 339 zcmV-Z0j&OsP) z7D$spSRtcj0h%yDwg4wGXZd7fDdF#Y67a8=WMG=655gec*4ih=G34=`>AKEv0DVAQ zFu!9QP2JP$m#svwdwpwnOkKqOFg%1@MwEpd?ss8m8U}fi7AzZCsS>JiX1#$978x}mi9MtF&MD0O3wcOKWX;W;8~ix{0=E7m6b~} zs_VOGCHzZt6?8DXHhbUH$KPh`S}k$(Y-QG8rKZFRX7LBiPZ(BTl?Ix{;OXk;vd$@? F2>_x;GoJte literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d3e6f1fc40b3a753aa0cc363b5305b847bcf8b1d GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-Y!3HG1DAjiXDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MS`9#jv*Yf$tej52LJy5->=WW70O&MuWcj(lw|O9^>bP0 Hl+XkKn64cG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9fcb6952552cd4c9745baf09aca680a26c6db064 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^Oh7Ef!3HGf8uwlTQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JitIgI978ywlamq>4F3K9U(YPe%<_lb@Sn2rzohg(%#ZG~ zNYpp}5chea-gP2=28U8U}fi7AzZCsS>Jil%$IIEGl9UVF)#uR(!_C4jvuH%vxGIBe@np7|M<7`)~; z3nuqGKhM3Kckg%0ZPyC8AN9BFczZC7`H0kR=}2Yiud~G*%;smyEJ^%&vz>KXqw7PS zo&e8hnmuQgtB!=XY~Lq(Sjk7&?M(C4yQ?L+CIu~BwQgF%w7x{aX$fUM{1Tp82b~;> s7wk;m?Ekk|Yp$xM>I~H_tQO6C^u5^UK1e)o4|F1fr>mdKI;Vst0Pwh4N&o-= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..109156c56dddeb44fe18147a4fdc1ada77ecf30d GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{R!3HD)xzi+$Q1fH4B<| ze_kw<5V>Q?f)_ga4V#VF%FjsV$VHmf9QJBhmn2mzK7GIR8U}fi7AzZCsS>JisU?9978ywlT#8B5>gr%+%(dh4xh=G!OCl_yfT%Afo&^; V;pMLii-0N_JYD@<);T3K0RTNWA+P`d literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c8ebdd586c72441f3a527faa8de5461cfb84cc10 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}bl$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gyq+$OAsn*F2?+@XK&~l+;Zb(A13(sor>mdKI;Vst0K4ZI A7XSbN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..239b4038b261ecc595ce30a01e03465bf5d7cc2d GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^!a&T(!3HF4{HDeLDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MRJ}ljv*Y;$tej57uX-w2mBH5`oG}eevcpWQvdi5Gt_(( VVs5$PX9`rw;OXk;vd$@?2>^tMB|rcG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..624d9987a586a1e7fb4aab4cb02d0312fd4bc4f4 GIT binary patch literal 258 zcmV+d0sa1oP)Mj{N9ajNO7-mr4{{XFE$;aP*1+HwrU=h$BKtaF>3IpCBm$+W-In07*qo IM6N<$f&&X>m;e9( literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..80b9a7523d70132c7565cf6284a80e095739379d GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{J!3HE}g>Tsdq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6)AbTIEHXUCnqH&7$h(W{dYVPAM%J_t5L0O*$??UA_m=z Z49C6;sJ%GwB?G9M!PC{xWt~$(696IYCKvz! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..eb82b4b21f66e1e00284025ce64332b5fee155a4 GIT binary patch literal 260 zcmV+f0sH=mP)+5fDM43TrO;)`}B-x$WD?V7~B3dGW6}@fg!-IkyEac8J}KZ zx|s)n)RLYL?9JGLr2)TSU#^M_#tm#z?a<7=ovyNBH7~R14F$DbdQISM*FnyBttA<3 z`WLij7()K6EDQk*9V9Z_S#>55wNhC15K{{asm#h2K`iXkfvVjh(a43f`#E<20000< KMNUMnLSTZB(P@DI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f43a3aad245ef5ce1ba726bcdeca66d9c5ffefe9 GIT binary patch literal 311 zcmV-70m%M|P)DFc3^a4!wq4ZB&Hj zBO>%WeUtdC-g_!ESDQ5}6@#{wm9$;hONO199g;})t}JvF`W*Twhr^Q);%comd7ewH zwLl;XhqtmU51e!6oP)Zq?+8>yQS5N6X&V3HMc`tLkzLn$0AMk&S4#1=ZCP9h2;}bj z9zKE5dIHED^Zy2Bse(A$MBICi6F{Sy5(oO`v_0sqX2o&)DGk_ck0}jUL1Q*uNSE&7 zc1I`ZcXxOnYq(l8-Gp}2-z#EPwD&>(`slIK?f&;)rOWDz>H#~c8*fMHB5?o!002ov JPDHLkV1n}kgg*cP literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ee4dba58ae89cb504bbc985a81899468e1f03cd2 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^j6m$i!3HEBO4k?wDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MWLQ9jv*44Tl*dP8XP#7rTgk8E-(Hhf2k@$IQGa_CyrpX z1ctKW?`M@B8F)&tGW0BQ3wKCc#5(EA3||Iah03+1JMYg-JFUG*?2fs(xB82Jv8(Nr aMCWw3z!9P}J$0fVQjpUXO@geCwO{5&QA literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..76f41a64e3ffd9b95e8b1624c8dc376fc3edb364 GIT binary patch literal 331 zcmV-R0kr;!P)GfH;@BJ+qU~@nk>)rRbAI_BC-Y6qN)tTU|rWKKv5L0z^9lQGyA^REX!6v zC3qOeku*&cU?Zw(Go5pmBng0=O!zp_n0fu-;wtAHK5tJ%6t^>|YM{n7R~9=*xT}le zs)|p4)j4=tjt~udg2vyKJl5{wcJH1DZ})f~aa}Fm?t&#oypP+-!|x;f>kF^_al8Kt d7_ln=egRV}(3a(hmM;JR002ovPDHLkV1hgFi4Fh& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a38e4dad1b09bac67f1faf1737e41fe30e206010 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ&0V4mNy#E16NtU=qlmzFem6RtIr7}3CAUyy8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a2cebe44fd81c03b9e001e7b37b39fbe7b932a1c GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^Y#_`5A|IT2?*XJFOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5ip#sYL(s7XV2FVdQ&MBb@0JLL3qyPW_ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d1b3faf370e12a8a129cf334a684fea400fcf617 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MWUWAjv*Y;$q5Mw6(<_pBqStkm^U+czh%ACbhqUwPyvId LtDnm{r-UW|&*C1@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..60e25e8e0b844ac30a4c926926d4e1757e139e7e GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^Y#_`5A|IT2?*XJFOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5iuhQZU-&t;ucLK6ThXgIzA literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e2cf52ed19e9a1665df54d2f04130f2f7550a8fd GIT binary patch literal 589 zcmV-T0bBMC9rW*W>Z{K_-)V?|Ggd3vh9=y*3UF4_-24Y4D^}Dt$*N7K?`Mc58v< za%teeIUO$ b@pt|QBtgxP5EWI400000NkvXXu0mjf9YPDO literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cd922a599b68d376da47c00886374b50e8fa138e GIT binary patch literal 608 zcmV-m0-ybfP)dUtSQ{!rV<^S~8kRsn3vB2HNAmeSC-+X6Imw%R zdAEDcz2}~Z$k_?byWQ@SKp=4G@p!JBPUjIY!=d3h&76iGq*AGmUa$AJ%jFUciOvSh zaAsd$Yk91cq&k&tvc zjnRM^4$UgMCPS8j$N7Bzo1Rgk(WvMag|%9(q+Bi=tk-M9q2a+xhAagy;_>(|1SKVx z%gJ`THG$=FX~2R*!-JO$Sqff9B9S9oEtN`AEEXl1Ov-#dH$fIN92y?Hu~_V{N)8I% zW-^(ZLZKk_dR>~$rZFuRi`xQbI5a$X^}XDv^u`oatJS@2Xt&$4+wDwnGMN~#;Lz*` zkg*FK!{P8}rBabrt0lEs%>-t%nds3Bm|19e@RA{GUgCbgcdK}`3wYa{nI{2eIJ*EZ z8M5XxDn95_ey}|ZoU_qrNT<^=V1`4(gO?0hbCDF!6c_rbt_Fj_vDfQKzu&(DIJC`X z!`3gXjJZhWDl1+pJ{=B+>U28&Ga8Nl5dzF`s(n|_XUltgm2L2YJXO3`d{yKXeGANR uXn0Kcet~_QM~dePhvJ|4*$;J)h=B?K00000bw z|9Wd?p#(;*rjTt$3mB)pzrWxA*@FiOhbAPXrCoCoXYp=exKQK6nbV}~{OJDv`o+^O j-~Xhj))+cPN0woYK`Fn`3E5>pix@mz{an^LB{Ts5P8346 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..05e7096884bae4baed030012b7ea7110b6efdf2a GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^j6kf(!2~3$JFc_>DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MM|D7jv*Y;$yHxpiC+Hy|Nl%035kG=q>uaS|DO;$+&=LR ZGefU^-ki1*C8a>s44$rjF6*2UngGiLDh&Vt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f0bafb8d1ba2f399c4023202f0cf83342803a930 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^Y(T8Z0V2iBB31(_$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gah@)YAr`&Km0w?7t!HCvTkcRJ*73XHhk}6dhCl!Lh0-Uq zCD|*iV|m0U#^!T@>xg@T)da@N{qpu|$(IivICExAvoAX{H%G!`hq9|5rvCW;{{D)m jU$)nDcqWLddb2ZR%T?ADyxnpaXcL2{tDnm{r-UW|A6-L1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bac884dbb4a0b725f40ed5f05897a47daaf776b0 GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G@t!V@AsQ2tfBgS%&%E)*jT;t|RE|2_nhGS&_)kg_n6Gm5 z(xpp`Dw=GU&H;&}$Vno}KN=?_v9h)*OcFW#xH00WgU(3?mNJJnULQkt_IB|J+nP0> iJ$m%1?USlw4THwo`UxUg_C`Rf7(8A5T-G@yGywqV*+Iqt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2b3e46c558fc0078bdaf0d2ba7abf49e271ba020 GIT binary patch literal 561 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+7%zLeIEGZ*dV9yw|B!<~+rzs{8!9eWeEk34Hu*|N#|6F3 zC)fC7NB1bkJ)8T)J35H3*641I{^cign7@9{QrIDs(6ez)zDl;|B^TlKQ+=&GwSP`} z^W?4VEk2zJ{z=uYFOZNRd&i_Zo^q<&CrLNYn4@%So%NJ;lXJdq z-~Lc)#+RzK71FFZGW(Bxy=t4KeD!nICFY*0%a>A?epe~(SKqVXZrJ?&k93bQWQ$)b zU2pjDPNV30Q?txf%-NTYTzoAxgUx#K$=U>&o4YFRpE@!z`OjN7tGFHCHn5$uvyWG* zImO7K&>+&lz{H`zssN-sKzxQE5T6KPESj!-W%%5hoj+Bd@tNbH2X~YszB z?~D8Xsf(X;PMhmF@AUyI{Vh)<&K+i-{P_B|;O=Wrq>FAemfpxZ=~SQ3%q;Pm<$m+Q zKa4kC@>a8MJ{-RHe8Ae?uPZHk7{i|OU*1;sVAXTe4SJcZ`OE#@3T#-h?}dCA+xg`0 zXG;?gR$u)r_aKgOd!ylp#I)+`vzET&iFkG>dv;LGslV}a8QxBxu=|3sf&(xOFnGH9 KxvXlxlyW$00000NkvXXu0mjf#G9Js literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f4228235806c3e79259c5bb45be04d142b25ac31 GIT binary patch literal 663 zcmV;I0%-k-P)(4hBYnK@7#}JUF_9&HDGxT$Uq4!HO0%&I+s~% zcd%#JC%wTtER%g7JTd-WbVjJqi7X)sL2j!4u0(TQ|F${LDKIr?Ybz;zfW$MrXcXaW_g}hSTC_&!It_yV^BHg z_FJILv`|rqFvZ_?!V%K~5?-zi`|I#skxuNs$XF;Xh* z^r!atb}uUM#R(8nW0VG~=?g&4R25ya3~yUFimsaN?SOT^A!6P4*Sv>6m8k8vLFqrZ0aiW9M3yn)=qg*iOr#LGa6~Dwnkazh z%=dEc+isxuy3K$mNjug}nKr(2KsfcO(}sm3XQW4wB{HST*0c%dp$6_L(Wy$Jw$!xd xVK{KZ@pYcM*Cw`R5NQ)MCU$sN0`l>n_6?f=+O<2YVG#fT002ovPDHLkV1f$hF&Y2> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..00656af1790b7c7b6a3190a7688be7c690c80961 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{I!2~4r?VV-=DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9McSS&jv*Y;$ypKAb2p}V#^CAd=d#Wzp$PyCIVY_E literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9055cb9c898dcb3191f68cc16b3361de335a06db GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr7!2~1^>^hVSq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6^VJeIEHY@Cg0ec&VTs-|NoNvYJM^uVhCQv^=joR>E%Eb N44$rjF6*2UngGbbBennl literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1ec560b3b606b0e11c4b2a7bbf4cecde919065c3 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c2!2~4B;%3YOQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiugTU978x{lW%NJKQAu9z~HRQb@Ilti*JEa44$rjF6*2U FngCsd9i#vN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0d46be367b2e8bfe5ea260f3fe1a22713a912772 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XcsyMkLpWrUe|&n%&A_^c>2BxeX{tbR22WQ%mvv4FO#mRP B9TETl literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c70019c3a603c2e7e942ee3012605c1d672492be GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c2!2~4B;%3YOQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiugTU978x{lYcNVSAToM$lxi;b@I>=B|)GRgQu&X%Q~lo FCIC)b9C`o% literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..82c60c2128834090a71faa0481f957d19918e1c7 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr7!2~1^>^hVSq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6$yE|IEHY@Cja>Kl$)97{msqn3{ehTC->G|t^&$3c)I$z JtaD0e0ssrUAUOa4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6a093be1d025153b9d95db1bb5d3f254f02871c1 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^YCtT+!3HGFudNXUQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JimE(a978;gC;#~W-~MpIk>*Q*i}|E)@^$z3A8&14DB+y9 zKz18T7yH!1pBjJIi#+EQYqw0dmLdncF8;X8U}fi7AzZCsS>Jit0UG978;gC;#~W-~MpI5uU|-(xo?69M0%?{P^+A7mo}U zxUxF@neV|9blO3`z41ecl8h`BBv&BoQM}k4=SK{s3 TV|=MVr!aWB`njxgN@xNAABIr* literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..34841cb3c750723a6dee3002b3050652903a0e91 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%nR&W6hH%KT9^A;=U?6bd!1@_7olEz4RB2_od!@f)+tDCh t(a2VDEoyG@Dyav-x2u<%Ib>yJ*{( zJaZG%Q-e|yQz{EjrrH1%nR&W6hH%KT9^A;=U?6bd!1@_7olEz4RB2_od!@f){( zJaZG%Q-e|yQz{EjrrH1%>3X_2hHykD-`Jdf{=a_wz5|BL0S~VJ{{B9Y<<|O`ouA~@ lID!tc9og&fM`npELwkf-_opj|j{r3?c)I$ztaD0e0s!>BFaQ7m literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e2935bb7a2947f8623ca91d1800347a164cf5136 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%8F;!lhHykD|M>LubiKsA&FSas*(9F-{rz2`F`UQX+*Ivw n2c}pag;a+>G9A^8Gk6)c#F_P7_ikzj>SgeB^>bP0l+XkKOG_?+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..25cfcc4840a24bec34fc0e4c6146c686463624a4 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^j6iJ7!2~2trDSr z1<%~X^wgl##FWaylc_d9MbVxvjv*YftOpqx4><6&81VfMio4n}MYZm}y5eCkhf@v* zwAtB;)Mrnfm|XU}ky(-Z{Up^y)kNo0uVprGnzUh3YNG04Jw|P1PR{-%ENfa?DyQ>l gGcz(ObKbAEKVuYeVJ274VxTn)p00i_>zopr0F{$D$N&HU literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..17e951c446b4841a71aa0fdb7dee8d539b2912b4 GIT binary patch literal 419 zcmV;U0bKrxP)S(9qCWp{AxL_5c5W27H*o z%*^b+k&)3Zpavbh3SC@W{=2%m{x>x>J+G;$>4sCGx3~BI;Nal@9v&Y5Ei5daXlrXH zsH&>6U?}wR@;Vj~5%E7HB;-Gk{omT!`jf7%ZWGYmd?*T?oSe9TCV~}*g@yh1_4WO4 zXJ_|UUtfQ=y1Kd&Tp@@6x|0*A_%KLuczF2#fPjGiKm-088yoKiy4w-x6hXMrKo9W% z6+e%RjQkJM5EK*y_9QS=wrXi<*}xTASy}b^`}>0x!4w1eXYK9nLx9eZ0V~qe)9ZC~ zbOf6MQv@`9o4dQa9^8!}MGg)QV0VEO0P(NDz`*H1cT1x9+Sb+qDvi_HqmHkgmP5tlh@BhTs);7V! z#DoPyVPQlaiAD`}p{5wE+US!l0m_-hzUH{~%Lgih=yIk&%%hPEJlT zU`0SiZ%j iJ$m%1?USlw4THwo`UxUg_C`Rf7(8A5T-G@yGywqV*+Iqt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3848c2c17841228e58266b9681749f0d957a9d65 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0y~yU@Qf)ML5`iWRcR^W*{Y5;u=vBoS#-wo>-L1;Fyx1 zl&avFo0y&&l$w}QS$Hzl2B@gZ)5S5Q;?~JPsFm_Wqw*DzM#2I5XhM-le%r ze0=pTM+B$;?m3#X?fe_7bFcDDU+)SplYQTJbN1)uyYJrreQW|6H_V+Po~-c71esWIEGmCzP-GWvsqDu<-zgLT@9_(H*Tl1#VSZI74+sl znZc!`qWH_mr6TPA_5+0l?GlfD<2V@ieh)eo9JF@p*0!x;4eOWe-F{8V<;z5O7llRJ zZPM(fl_|?Qn&yB literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..602d7dbb071493fe21afaed56ddec5bdbae09e98 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G^F3W0Ln02pogT<_K!L}(c%JO}-M{Dl^|`Riaq6_1GmZ%w zm)e&JItqC`WVq27#8thN`9_m};G`$FW42rn&vCu~&v+l>0;V+wSS}n}T*{!vu#$aA ztit)mtE?9rZrt2JVdER2D zYrW46Uo$WqImLA2C-Vkb7frbdWsNrMb^k5)GTxC6Nb9#;Vgz(5gQu&X%Q~loCIBcg BWK947 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1f493e372155849947795ff83d91aa79aba133b8 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G^E_P~Ln02pogT>5pdjG#TTlb{xA3ss?O9Vcvp=jt z!0X3>LZv5j4zegNaQD*OexUjVFSk;WLDXipw{4}DFK%X^dtle`g$r0;?J-p>5L%Gd zP{sYi_QO{5n64LmrbIHU3AcN4{eNS7%*0r`x3*7k90x{wD{L8#d+^?LbW;E~uUCQ9;>gTe~DWM4f7n@>s literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..81d06b2447ad84c8af4863d644b354c3a697cbb4 GIT binary patch literal 81812 zcmXV1Wl&sAvqpjw++Bl1fFQx$gS)!~cW03x!JQD?0t9z=*9C&RJ1ow^0(*JCx<5{x zs#9lbx@UTxmZ#^ZsQ-i!zOG|dLNKtRyz)}wnm()NUA~=`dTMNB*bHZze@~rk zZLtDT;~0^n@~Ot@!e~S?Ej?hw@v!aGh)c4>Com~@KQN<;1Rx_b7opP>28Rac3t{^( zQZ>ZRNqTxuNnV2ATKQCDDs>^21YhJ@_?~#QJV9fVISkx;gT{3ceH&I=-GPG8ix=-U z2&fwqnk$SMv@Q%CQOSnDF9poBc|Sc<3W6Xtkl@?yBbi50Q1g}-^wtTGLK*nty>b3_ zv~g(t2zYVq-U~|TS@0IwzHaF{fuHW!Xc4*U6kOjIKMDlKQFvUEJ71+7ZC;$`2|VVS zK>j6kJn~HYt|u5C?DSk&bWmO|N0I}EYoN1ZIqsdeTL;%YX76&p$T zsL12iL-!pgGAPx^3VWuojC<)h1l?J z1}y=dI``P~HhdsPqAgFD-doR4TU%%UvYfktrCvQdZ+YvlI+)Mk%O3EU%DL~sSIV{9 zWZ57e&@JVy%FRB*TZ+)rPtZ-N$V1l!X3%cfE#c6J ziIDv1*e-)i0D7$FU*m3hl=DAry`rC|FD8QgA<{MN4;}G654_HK&=cXU<=p$dn(NYR z2$$gFl1X_F7}{kI$`g7H>@az)#dPd`>dspQ_iXvURX=XILCeTg{&%Ex9ylGoV-qm(N(z1H zI&$tl>CW4D{TmtJ_CD3F@Vj>1K)`JhG-x;c5j_8MY2&70WHTrXEk0nIIfLTu<+|dc z?QKX91fF&*Ed#ArW3@p2cSx(BRTzu|Bl#wwz=Up@ptB>BN)?~en7d9B$dNEdAQFYtW;* zmMs_PPQtmc$MJT!&dSN9x09fB;L$@`fdA5yv&aSIVa-eT(sbTa3gEEkE(X{lE4)|b zZ*sK^*m#XV3Ub>MZdnrzczzzaAI(${aM%cnt=eTRlVReX(%v z>7$nwsq;Oav&icnw_6gayOm#UyTH58Sp$q+Oc8eN3e@C@LS>Ejdv02x76~sKe7SGg zCVrs9Gs>$mBT&bE-%hCg&+&+;>Dbf>=~BnyZ2cqPkno4gHpaq%583_szsz>|gRm3T zcdKr*Khfk0yt=vmE`OFGWp7~?WL%T>TN!iS;>J%_x6l&{-*kr-sJ z>sk*%|L6tt2LE5Uz7|5mo3lrske8a-dffN)i9AKeylT*TN5G z)yq@v^5Udbnjy=`7IMs^*wJ;Gm4tj8Gm*$6J>ht+DnlLBbv>6ux4!M58}Ar%_I=mg zo-Q#V8Y`6sMbB=?{&~ZaVEy%jph^4V&{4qO*F~U_%Q+ig`~FO6M8!q-6vSJkK(HmJ zu-n}Lw*2K_>DAYNQ8Gw{5@OIJD75_=Wswg z(4hZj>@iPDx%su51uaPXVyW*>B*Bnf=vkwo)aNiM>{i9t7kJOU z@$><-{vYssGwy*NY~A%gkS07g?U(_dCjPx0qfjn`O9d&3*gOA3PbzunAflLGb4D|u zd7O6Qn($;B5^P0%dlUqr#!yMoet4+mDN7)hB!r_FDzJ-iqVsrCfEsMBA?G)oKi|en zNO@(BIyey;-hzikH%?}93126V4uO7GC9=?q3Jgl2rxO-X+fKM(-uZtk1_5b~a`+8- z=I-_QZE8eBzRjLJbYIO)polRfFkgG!M%`L(4Nx~XtVuE1z zg@lSS=O_8s+x_atfTaRq4*yYvi$@B-v7|?%y(`$K{;h3|lT=QdQ{WQnWL+&=#8z^6dEwH=WhazdL1!&2#mzM z5Dhq(0zEI~I1m2^4o2}#fHtVr)}6r(7VP0%+hfk18OU8M-({G>i?$(VSAR2(3-a2pNqpOgWp1iuS z9?*X%s&jd9f)w-=qC!M*)0vU?kj)V2wj|r#V7I23WaN7lu~Cjq@mQ}xIOoW|&x81S zkSL%=A8@<8;0JE`QOJt$w~XwnD##}-BSx8wgGTCMOD7ez4Y28G>1RO^&#acE@SB@R zt&$zk6EJxoUGBN`Jx8Y_u-m)5d5RZuHMN?XA-tcA%hCE+FaSv~w7Y!(tvn(A58ZWo zFUScyt$@y_DY-YJEAYlQ30cnVOVol_o;18MR-TM-RBLZ1ST1HP8+mEFovhrF#|SJ7 zs>9&3TS6*lOo|k#!@y+rJ!y3DO0Ob|5qemwHPO>0rl{k?JRWOqXHA`iiS{wv4V` z)oG)_U4*j2YdHN!0|_rmn%ExEOFnA>!{>$Wr$_JZLBPdqWJ1t(rDTTTMO7(C7_vXj zXaAos@1AT~GQ2xldbRT32MN8#1_E9{9dGx|)sByFEIL@{m0_O@n4BlzoKj=D$rvz7 za2Mb>Y<24MIK9xiSPe4NR=511d+hP*s4rr62@*>e(ow~Y4SW)4Q-Tqb$743)qkBY| z@^T^GMD#qg&osV6?MMr5HU1ABaJJsS$u?UL zoDYdduh%EQfbmjm%8v5W!bG%_$|9vGNRDpCj*;so>Y~(5L29*L)HEJ~Sh|bN+q(L3 zQkuI(v876!FVgBPNf)wQf7#iSLBC-7l>`0J2M#(Jj;{f7_E$cxL|IFD(5 zPDTJt*1Vt#n3S2&*;h<*0hckmtQLRJG@tALwr_Mz1M}Q}TjjhRWWU)6aSqx~B!4*_ z+HL?fB@6PS87*V^37_GK9a`lMaY&4-9;8_&#WEbqTH3Kve_%S3sYwkXOTZI@r|9sA z^UZ9kfhn%L^COPRi$nJ7ak(#xHKaK40IJi;B{fGGbK_9Z!f|S|OLG~UDm@#2ne9M4 zNn);7JfEvrJKWkju=O97#3UE;*xAe}IQ?HJL7nqd^EQ(J3_4zLUVY^gbu&!JX~IL% zdd|TvqvoTy}(Vax_cCy-Ra67z{y>BaXxNIc^gwchFK@*W4MjYrN( za_F2W1u|n6x?oN+jM}<9CCy{@&ISAC3fXuuf18&Zi_`+G zzD9toYLf@MUeC`=f#eV3w=;*CA{`Rmt!L4Msl0pKNKA4lP*^bF@qcbS5OSdi*rUMw z{d!da^?S6Z@EF7}37i0w*nn0e$%wcG1@OMZ+ASwmE%C_4D_n#|Y8uxG-Vb`_#TPZG zo6Z>hIYRnJnX2&UbJ(=WATe&4i0B1DH0qhzAShCO$flrQ!QN*Vxm2YS7l4CzDUkRS z@P^DeR^5kTVznIbZzCR<_u4CobdT@NTI`)+D!S84P{Qx3#tTey2I|UnZ-f=m%${fcC8X>b6#bbus z)ii?Ip|cu7R9J!H*`Hzblm2>)8Nf4?HG5WPzKKBu*{FZ?IvLT(IXF_kl(z3V z+RkX;WX#upDa~2+PWUy?|Lx%2@&WGM9&LiQVV{H z6#P5mGVmJcY<3u9?vz9G8_DanI=e!=*+Nf+9Tctmr_O5)M_C-pPuB150qWJ#VsiB` z6^ViAy9vsE%j)s3GxBKuImx_EHOR`+pphsml8T{e>cg0-z(>cbB_QGd2k%}&9#2A$ z3@5bev()}ZAU@8CLWAL%7;B)9Oj#CfhZuj;sI)UF=DKINcrmuvNZ43ycKu__j~t@w zAg1xfm(}cE9yD5Rj?W2-_eiLa%FGpMlNNvA1mI?Q76AUE$o>|wbh+U_^)$^F_}>b) zzE1Y#`Mwm@yp-t#T0YEXahMXwV|EG4 zA&U2VSsl(z+)5ko@@22tbNFp6ZTLTg)%eeDX1u+)3cD>-T^gczvLbe~(SaLq{x+Y# zAnq38z$Q>IJAbMCrkJ4{NW{`;woPe)P{z3nY1M*>y!y^oxs`0E?PWfhgcp@3>r6<< zM3Wox!9o)+E8ONP@f_R(D_0zo%!j2_omy>dW?fG-jmp2P%c;rzS-ZCWGGv3(O{o&a^kN>S6)U!X=0QCcIo?Q-JzK04Ej~AsFdAAcs zIoE@PMxPC@?wJKNzbai+e7S01k?VbyrBvLQNg5w9<;g|(ub#h)U zM;DZSb@TS$k>+?_>~LH^`sTdx64~*0+zGz3d0h9INu(?9qx`Y@fm|iYSh`)<((JMXTujtFhYxYt?F6xQPR2KvmA}dNS zCLJvk#_-nbjY^40p9!fgE@;OZfDO?WQ)Cd4o6^_X>dte14Xh|j0M^ye+2U=MEvAILwW7DM>j4p|30#sZ(^BtweV3&O$IT_lc?Ns zy6($W@+Cr4huWc~4lTwVs?hytpAEP@U8#(jDkhKb6MM{_+lkcef#C}MnS2FlnX~r^ zJI!C3sg}3y`-aT1zKV-Foj34o5$N^z$|YsMh4Roc)2YdO^`c{cWy?Dwjxu1v-|Mx< zAZGcGe44**WJD=Fr(DQ4HQ~Od&r9KWFIHy1!?{S3yo2U8*lk!- zX}pHpCenf%nz&p*rL)+neGRAZg+{jOJ(M1A(W?!19*ciWqf z7n=}r%9V1ecWYod^(wV^447?Df$W)x{22j$sna`eh`@?cjbU)dFic$yA(=A&;(o7J zM>9PO^EFBiHDCAni@9oenqqvP3$KYKIvn54HP5E6JsWqv%Uc*k1EC_|*OFHS)gV45>V4CGS^k!@s zyIjXO2bIP_-u95Z0J%m2;>ZII2gc&TCdVxZ#3lwpY#d*r zIG_$ETMd~3FYOmsAmO`YNt4&bjna*MZoxFG|D<0Jdbt7$-ve^4*MK5_N2=Qo3V-=G zP@63Wf^G{W=^F0@<%R9y)v6aOGo)i9;&|DZX*;(?(xNOBASIA{ ze!&Oggct5}&7s`xVO}xj+WLNtXP;(>xH^Up3B{{KM64B^`5<6bBg3MBVm)e2V|4#_ zmKfoZx-%P)L6p+6zQeX;6j_J(;omt+s;Su4<+V{iAl)p3pq0l_4eS}x0&FDjnsW-g zhsUG@AD?t6_l%HwF;6P1LF+d*U3Ri+g5Hh)6~gD-{d#Gz@pbQ9Kaz{#MGIVt&pg+(-WV z%7!7wwOPwlDV=)usqwsnb$bIl>{1pTbtBX6Gl|CYo2%g_s+Bsbw=iVo$hY@%&}v1d zev@C6QpVNRavFp;o_!+3?(}dEWZA5^>3^Go1ihnxU>ZU3{Z)FVcXFZ|H0FDXTTBG5 zNHL#RSVXU#*~uRA*l4&}(9OTOAT;d$Ex*-&LHg*T&YpsuO!+&~T4u5-J$y*e)r;#S zPJQT_SR^^rMpo7}+)+5?iw1|uGD>ejFtJ6CO7*i*T^lgY@6L#q3ES`)PHA_nh=W#0OXbRbUY}yktQmO!J z^`jindZR&FsfON-KTf+uzq+CRNbNh`<=G6@TelpGb6K&%kPc)XEEpWm*I0wWTT8F#{q}P zm>>_sGP*BlpHUZz;h*m8Y++P4sAz@|B8}GrAx#|7ZYeM|rc2cZ@N)=Cw9P+kzliaf z(|nWea&%~J34mUQIk!H!3@7y1mcsq#K+hjmV>ZE_EnDCMz|(ehLQqz;<6@B0Y#!u; zFdOREQ-E)98J#t&#nv&<(ZXRJW;zI`vmcvcY$mL9xtX3GqpFGyoI_e`_dVNFD^S0# zcF6JV%h4)ooSK~vkBF#F>mr1d*z^W+bh$bLgC1L~fof$ICB2`lc$1Q3N}O+|dOCEC z16*-?{b&szv!$1>clfB#53_)Bo-9*Gk)JvfTN+Bi>0!GnEoHfR!{|dAPrRS9lna7} zQTBjGKfVP3i3NG#-w`#Y^Yys|-~w{5eo=H5vW={%BZ_e2b3Q?r{H7 z>Z}CbSYZmgxGW*@)p(pef;9iU8yUhz(Ecd!bsCiO)?XUkydh)wP^jroHSlS3B_CRd z71BZI<)#$YGDmMvAa|%3^~VMNu)Lq_-|V^0KkW^LV#CWzbjE~q0W)}lpGn8OCq6yP zo0eHce!!4re~?*SLRk98C>Lw%f_#PjW#e8R+wT4j&ff2s_M_dL zS|6clt7RSlv?aF{4D9i49aj-`E>(X&4{0rgMt6jK?E{Blo3G_7N7WUDS#9WFPmJ8! z2>Tp$tTWP+s6^fV31vjqYRZ-Q%Pwcrm>R8V#JN{-?S@?e z$Hekf`70$l9X}M<<+xgcb}WU>g%WPuQb3%<_I)pTr~Z7?0^3A_edlOxgoBv3p$`Z> z_38uVx?d;#7aFHI-96=uH)+hDTrg$4^1alg)zoDtdF{t;jF?<+ z!y`pvI_5qZLEAO@yrTWuU+)S6d%$FpZ&pg3t%w`t5h#2PQ#*zOZBDY{rmHlJ9-xj`mp83eq|*L= zoggko?cZYx6ivj~93A?F?+0oX+7+bNq#GKNLU)-<#$|!Y`&@$`7UTaXUk1KODKnKz zBF^Y#?tCK3PKP{=10)#Ld?6u}(JQ`nxg1D}`xuom5+CUAvg+{!x=>lv#wJYSWwndP z!7tyT+1`t`&XR>bAYqV$W1S4|tDQH?Ed`~Gq@*t0?y`@10zjk`pJ=kW*fo(2;4<-7 z6pNzur2a;8`2F(FFP1;~^<%q#bo=tBYaz5TJId>PsRv^9jefQ4;V)oODBxv}C#H+ECj?~B zaj9cF!+t`cp~EAR&K45ZCaUM1i|aUuH%e_2nT~j9tI5fO%06}+4^HK_JSy1ay(dP{ zZ%#F>$M;KJTUtRU8-y5;nl8Cdr}$(iALs^M?Jg%WSP6#Ndi(z3%ET(~kLe5*rIuOK zDv^KLk~Y}rcC7Jq^DQP5{sBi4XyAsk$yz_GUEk>zcptk=uMnx>9`Xz zv}@MAM)D9COR;@qEv+wl7rZH-Z;?QvL0vi*UvCi!-$9rKd=XCAb7+kza$D{!_<5Pr_rTC^XWMTD=h z5gI(=O&CIscco)D#niCsr~)&qCKy&gGkTXW%&%3)hSJ3|gjFA4N!YfN;s#g&CGM2$ zq4iu}WZE*50=Jnx>ykHO`)Ax?CU{wft+Zb*EEcP}|5ll>%PhrLeVIBXuxUM{RH1CyyL~j04cI<JL?P z_MgsFfvmOV3K>mM#jG5eFCEd9;OyajLI3;wckm@!+lNRZz_O5UQXMA6>W1`!x(K@j1D60!3QXj~go7Dnseds=nkJ+d&B&C^04kL|MmI?&#Uc;&jHAhRhB+ z)O>U}56fKGytoSAJo00#`CYyqH|BeIBF}Ay%q4wnxbHwL3R;QKbxCAun_w?2aM7Nl zTDZ+a^O`Iy<7?&rf_a%hlX}LEy``g;>Fh)SjzKbXJFnQRhy3M(3@WSjgl+^KC5v|4 z7FEAMYP`~f5#vd^%0iYEKbj(RoEOsua(0kokju2mv3vsnoCcH0H z)LJ&OJ-w*AQ;5zN~5c~oz&DNAxiG;`H3n_aB?XiDZ)K$VE!NvbEw z**i!jM~CR4=^#9EV>i;us?T&w1$rsB%H@#AaigKuOtxiO6OXmwzz`#3%}6RKB=(Z8 z2Yi$<0Yk2SQ8>a$4elw6r4Jdx4_N<=!IadzZ??aku?Kmd%(8UZKWaH&7vvNMA+)`o zmH;6IBPJ)%PB|@a9i{oQn8IKxW2sN_0Z$+daJ9VW_5|$ILXj0dJy5}?|0Z;=7%X>f znlbom8&8gvL3^^MlG`7PCTpo5t~@?@j%jd?hh>{{(-3FKh};SRF;A3<$IEHO;rAW6 zZDqhJozbswbj|Qz5Oxb#t;QdLw%0**bU#ug3{t-&o17yz2r8Sm#v*8@?-1U?lv2IA zs0AAk`Rrmf`M!1Zs}e-k;zYOmkaxyo#Yaa^@?t`#0x`&b2io3#*9l0P!|yH=J?Vu8 zUDX(#gad5bYbTA;#EPUI3dw&g2r!BAa>Asd^dzzV1%}M2YyOcez@qttltvL;-W7fv6YJ8ag&Fj|6AM7D>Y0Cu9I@LCVncC zt{H`2hj+1~KMeou4o#Q=i-xLc^f6+!VJL(QQa{KG)|&}=&r!gA`O?dm81b z8cuKYWt+1ZP*dG7CHYRtD`HYW&kq-RASUnp`@!AAaaa#zv^4Mfrj(5-rmUeN!T?TE z(S!MfSjA2r+vwp%l4)*bweg`py?L0?3&)&P`*l9pCY0vYLl1CUr7|AP+^1qQE zSg*zWtkI^QYZ8h0!rs;-_v;c{c?eJ)U=FCdnLp&oERT$CN{tWIxB+w>va#KYe@yFY zUna(4Xj(x+X~YInB|a=jlxnIU78`8SyEa&e6PR073@XZwW}0=gtZE@YzK9eRsRlWJ zpd!QkhsV-K!-eRy>?0zK7bw3tIQz?9t&DS0f_vJS|4==FgIq+NqCjy3T@$-M15))`U9dIfeao015g)T;umU+A+T#2zT!UGgqK)+Z(Mr zIG&;K^PjIL7WS!X?uIH&BUf>?m$)NYey;*@22tn$s{3cN&A6uCD+yKP3s4S+gdL&8QxJD#+3gcuJ|b>;#0bA)d*?|Fv$z!B-k4P@|!&ynjm>iAm{t(gqecdTW z@zH{Lj?+A2ehJ=UCiC1T=iPW`TDNShM<7=dI&+1EK*H+YCWm^v^#$r$aS>yhSWYEI z0rurY-pA5BN_b!fSr9gLlFQ(F#(Nr%&K03VJGonIAIaVso+Bn?yE9)lD*!{mfto|Z zD{6j`n_%Ge_3BT*-5A6vRY{}AV8M6Ixh@v`lmk0~kL);5hf?9KIbtd)$^+*NPr^z6=%*L;?K zT_NmwZcb>wq3qJv@}l)(HX_pz_{o1hG4a_lRwKp9L3)Egu}^wd!@yEN|64m244Uua zRk+NAK5SOl^J*-5bezXUY_V;Q`{*H|2_d=%qrS|B5kQ=4@#EV1x@Q664xHWME z&-r2EfD956Jm!%XViq6P;6lhcQ$tRlIGdyR8>SSE0X2%shI?!sHC{tlj7HSa&u9E-#w<~}OW`8i2qTt_=gGiVd(ItO{g5Ed=oE|)!fk@hv5I`MUl>}8KjHjCkEg0#>CTMuQF#R^MULh>7hBAJO>m zWsE|4A@h;;4y?7C_=+dI5Cn~KkC#|ByXfrAUk$P)XbkKeUKUAOSOh#kgieI0VHA&0 zCRvp6Yb!!>G*6U5FQPI;t<$KC7Q^+Te->>+o(bCh9lRWY8<-|sJr8GId7e)#c&+P% z_d14mk4u49TDkYlZOxxMPSrEnIOziQjaqbH*18Lek4rc7D?z$EB$)i=SwauS6+ zh2P=Gu*GqfwywwM2(jdc^;_t=S(Fbfc6Z~C6saTDwo!2))`10LeW(xpiSKR42+7wD zafp3i6!aTS86C#FR*(T(#ls&+daYP7lw;IWzoNPVytB5q_M!v`UciA@F#M zKl8i=PJEWPjS5Z_C&Ew&cW`C9z)!ua^~|6`(XYpfn7Oq`4Q5zc#$f4=s1J?Msro@n zD_PdrbC~cO`9A2U|Ky^U@=sa!7)C?ghQixj{oIo$PU!Xk zF)~ZhXK1W802z+9ByX?%EILmV8_D0O7)2i}=&=|y0H){{s)|5!k7bD@rfK2S#;+}=t-4Wl4J(4{PBYr92o&{XNKF_?~m$IcU8QD zwoJI>^;fcdi^?4W_2)U*bt*QGh}kJCDjEisJx$p5J=N&?VqLx@huiaxpmz%$(Tkv%sw;EV>vbLWD$0az$8^4+tp6!~;t*v^^lBcW2u(X+wt;_J( zHt}Umamsw}%u3W^x@LTW`QG z~D*~~ka*-<`iH}&^R$8q0T|~G< z-k&B-$WLO-L|2*z@-&Xv)DPaww#yk|`jt1}N{zSPc6;(Ux=_Q`bPQgJo&ZIlpM^VL1Y&8vdJ ze0rcQj@L{7^+-e?xykx1x?CG={a(Gci@>t+a_CaPw+GqPx>3wXiuWV9L9o{T(3OH} zh0&qn3K+4M2VE_KKEA+O&qI)8(L&*z>Z59ua|tC>X670cS}3fo=Qw z_N>+%Iuv^Dw+oObu9BHAPnY2MGhd_*-m`^LrFPqq|6`{WtYxM@^Sm7R0eYtT`aAxs z?(RBF5m6CZc}TeAZl){|e8-;j4(S+6k_m;+9_^rbyY0trHtc?4tv|nsIZ<#Qm5LmS z2NEWKnS&Q3W)o6nn`viO&aY&v0mr*4Yr{OC=fnTFg?8bCxr~>Ye?ahAsXXIxAo#}t zy6bA;H;46-hI_tp-`wSdwWvhvQA;gDW9^JZ@iHZ!@Y=4QQFxtt9eATc2w0}ML`=p! zne+MC@~+a^H$mm$z_1LoIoVQ+D?i!H+A`ZeOz9UfdQfxc6j&lI30C+nIt#1_WQ{EI zQu2E|VTdsAFB8Sd*9JE#_>^k?_!ScALmsk5IXA$ zoEjN>Vc9wtXMar6%bvywJ*^Cf0NNJlWzQu$pd*e@&-c`KxP{Q{J>yjQy~bKX_E;1NUB43i8%1L**k0vayk{cI+}l zMs@I?sV8IO?VS3HVYqe z+WIEbk%#sYfE;U2TT+MEjI8!m@u#8Q=NeXz-HD^v$=r*PpLn7uVFTe?zQn=$Y`=BE z!hd;7{JLX@w$eiu)ab_HzDmL5MJjj0dUB}~k=tc{F7vF?lv{QwYgsvz2KcLV^>Mr` zzNh!G|CR4M`2gRWq3xe|Q&0r-&UIL4u<*?fVe!s06fu7)-Nz4YI>BOzBGA~pE`CTD!<21+58FCA=*v`#fDg}X$_TG=!1+5V0REE~ zwE2$zG|r-K``&<~sVvH8SaMen`HkjkQzoL5rIlWX@jUo0RpvN{=(9PrylLPW3)@E* zQ6mRZRN~fG9AX^-gx#Wz$%?u=bis+Y!XIqxU4%ToN ziki3fA5D4}?HYn&PHhr~fzEKhfo(D-uf2u0ei)6dW;hr1R-OQXEKTerF`I10A5<98 zMoqm`+~ZF%M*?y$S}Zb`#-Ozy8kD%2jjv=y6U9qkCGdC-jD{Wf-=1njZk_-g&(&w^ zN1pGj4BCHOSxx8TJE!!g^zU(mXT8-8lA$&@+)_K*163?s?C+yuJnN`|mr9sqh&t^% z4LWwEiJSmeijwRw@v8=j<{$r$D)vzI0L56BXKsAp_@2F5s&-lAb!S|Dp9Y}|YpK!< zZL(JHWYlE4v|fi-n*!XIABOYhGl;((ewtF)v99I@F`Vok3`P*g4RWQ1U9ICNA~o5d z#H1@2#PYW)V5B<5;W<#B$S1$fhZDKC9f^PMRIP>UY(1^*a~ymfk=WvDB{9)(H=J-- z3ITMSl#F;o*AAhr_mKA@F4Ly5|EyroWj0F>IIggJ4Y`LOchB&13Izh8%&-Tysv~nR z3NLJrR8u*uuY-)RDi@j`3OqWKT>p3?FW2d9uX;$~SF9Gv0*Xk*V4GlvLi$FY#9$Fa zop8<%h*^qYY17ta?%tstIvMZJX{@WL=qyyk@B)@Uk{iiN=+ui9+En$jhvZ$oe|Qaz zVvyjFcKtP>1zXJ9jP#yx8nTXr5@gb0&%xwnEcekGabB;4`!tTu8N;x7AoOz?HgA(K zh|k4)$WBpkRUItN^O*upMgmpSDOWyYq&*`1H zodSHd9H|a*3R-ksJM#^&EOpYOX2c$+Pw*(EU^L$$Lit&ZPB(~apJxGUj=-pf+t~JUT zm{tr;FThA_1E6y?cY>SkZDnt56j0denGG`tkh`aRlGcf3(-`ImEgA&9iEO|7FkYGb z)NWz(c!neQ2sILl{GKY#w0e(75YymfawA>*l~F$=aDZJ-|0Lto(PHm~Z*#!u?s)6H zBh7x($@`_e=DD}}*7*+&JP7FK?GP>-XTjfD<9W3hiw9ZmL*f53cx4;5N%+m0m>vTn z%KM?|(pEEuc&XkXTYMW{;PXQlL%0}r+PEG4BDHL#R%AxVXq9Fv2EK)%Nd#%7lpXTN zOrmjgsj_D;we3iJ4fL>ykUpoVHZ29&^X33bx>~?Z`1+jkjNmvLOKYbbkBy>>-oL8Q zT$f|&!A@A9HG456{XneIDq~<>&wi+ly!ILLjT!rmM}9TauQvAL)Wy%?kI z!X%`%uFrW@`4|`ooK^5VNybh|!T6tXV2QtJMA4{iuLv{hwGk;OMA}nLpK4H5wbl{E zX*5*Zm~SR2snLBarlrTNmo#|JMkoJxs(BoqTCKxqhAnunC8=DJd!UG&)_?0q;`V(! zcVQQgNnE`By!Tsc%pur)a8yHzj4Ar(Ad8-rKF#4SfFPPjf--m`VWm*nO_mubegkv#^Lk0 zKpAv60hJl9MKdVimlA4<=RrFCW*kPU8l22I!~D%0=UO*gui#74&m@DX-fZ nNk~ zf${MVB;$>yE23_k*pzO+^IPR@F>_r5=z|h}*B)3API$4bqTs}e`z)X#=P*Rp<1l?t zq|W7Gy(#=1kMfk`sr!}Y*L)f=`zxA?7GKMt31#!^Y(q~B7B&W+F!dayU%OALP%PMt zJYaAicW4$CV1lQ8qz-Llnd$s@1p}HSRmF#mNXq|>UzH9YC&sT&B-Rjz_O|2CA@E87 zXnm|aBYW3w-)kw(=Iu3nAgRHzUkCeR<6r#KR81klUzi&;4%1j#{KmtIhzTCsoMwul zdL>oFX3!N2r3%YDwycL}E%HVLS43VL zFy^Zm*t3hgyzD+B-fJyFFDru5%v3IK=${+i~MR=MGc5cp0^4_88fR1WHpLu2&Ktik>#UZ5?7uEJHcS@bOR z(DnlL8kM@O8#f#uD`IGJfI90(yGT`37R@GI&=to0Z0q8agtGE)N5hxyEE6F^NR2mO>YK=WFP8MaGAZCHLH2G?3&I}M z1)Jq1EMD(3M2{x;BbE*#$;I?GzgaM$Rf7rt+W`NsZNA`xF|oT{WiF$hH4P1}VDR^N zmJfV>dMet>v-uz>+#8aU${Pr zyQJI#D7{gFI@`&p@7@ALEXHA7b}5BDRsZoGdSj%Fr zN+VZse&sT^B)_&-Ng!=|OfHXu8`>Bn(Lkp-CmJS?1M|4p2sLv%aqsRGJ43`6VxkzjkB*-tO9;=E)w9s))5(iNn7|KYB&{R7N zW+II=O*Y_oV<{uo^2iB*))4!BuyG8{!mUrkZAocca{7I6hAZK6#TJT$0qyA-$$c$Z zk@Lg`p88}RuE5G)*tdwI)Lwl=o2-&=-e?;&QbYskVUu9~Wa_w*vqD79BqR_abpbJT zr5}ce6#9kjZ%Hu%BENw?rfQRh<-crZ%)-7Nx66Re1DOU=k!>reW6U$i=w=w?|6m8b zn^>XDDQO@55GfXHTxuC}mZK{`ZBhR$M59jB`&3bZ+n@XH^Zp%Fo)g8M(`XNEGHuv> zt|2P&f)fV1ru`PHvCkH##{E!a%&E_cG=tgQ{b-DsE5k;b%4JuZMNod@$DpYX-~P!R zu1XuZ3t6-TKmx8KJ&r@r)wV@VNBV&yCA}}|A#2%(E8kvI%ri|IybBvvNF|QxxgRU& zF{-~rv(J;JOj5@3&AyVNn)9O{>D7V!)x)C2lr@rw>xSYBGid$QbL%<@nlAl1O$zj# zaCNj~7j+yiw@FWXgN%Uo@xQqE44!e_6&xY&j-V|Ir=zaE=KIfNk z!MV@?PI7d(2W%d{p$t@FlA&q$cGrmN!+j5@@@H4`; z_v_d{e*GT+U_hV0C(G#M7zd(0o)_sj5P5ojfpdn!qGg!5kk5=3YiLUl$~LQG4!E#{ zQ0Jzd>`!L6B~Wa^0WmUa7^RUhY2p)O2R{C)!J2gGF@x|@HRM&>i0eR+~0riuFv1vL}$pN$ab~{nnvmVrZO^W zc$y~&heb~4wjYcH?~sV`dg?caqV%%>cc9g59#*b`FSHCYV@!lm`{5xyQZ{`Zq=rck z098b$%n)Ar(D67?!s16TDtqck0mX(gO0H%Q)yst|V@QJXB)^KVk6w64RoU@&bCdfwTM>mdq z`n}iKb;BS0tN%7d{ZID4{ab(SjJG~hMK-ngwpho7PbST61uRX4bi&mu#Easv*P(kt z#&g#zov;K8W@9zmrg}H#3&vvW?_{{P_*yvVYMl%nrG#S`42`)}u7O(C347j2I)-r|6;hUPN>tsZpA)XWNIgGGD&=g~B_FuS{>|&WX3y8$_;dd) ziu&C){`gIY?8G%HlOsnUFtm1nub-qMxQtU+^1Fx9t%*qKbZg&j>He{+jn03$3(g(- zP)2j;36hc5fuObn-H%A3M-H&VVe!sJggn`&W+-&eyhj)c4H5T317ZIUG7|yd#zn}! zYq6#Qbejgo1oh&Ry;u-ZvyL^dQT>5X>)_?3&C2;Rpc%#hasdM8GI%3vY%$6O1$EgY zGulF=os2Jnq)n(w5}}k9Xo`uNC?fMAxH3WuFmKRV>k{T+9e3)4HM=4v?-v}zdi`B9 z9)~ADi%gt)4Ymfc&`VXuqPL7&zUYk?2m{tmnGei1KL1a5u$w>P_pb0o{ihDU_?O?h z`N_NLHtfQ!l%z<~`?N&~8KpQ_(qhoX25DFbgmmmI9HHW}NFA($TcQ5kLc~Ot3QaFs zn?GXC+mte^h#0k#P--EGoQtpZKnxeEZ+PYnN$TbYqKuXDK35{Ah*CyW7E1Nq8o3cM zQ-Hb%4Ox*w>vR~x*P!t1{Zij4hepQWeCAj>1-t1QyQpNa7*l~DX=wCG5k7Ea7GY(V zwc{ck$$O3%6Qa@V2Ss2ou@Lc;6h);QVUvseTTGJPtiML-}U)ENeY z?*gSixgG`nb3WkHP~uB;wR1!~$^cCb`(6!ZgA! zBH5J@eO}m(B{?rjO?qmcEqR-h;1BQ50h-Ka=fCGW_MdsP=kNKdFQ51Nm$j(hYk1M? zE|?wt`Z^#oTGVZVY&Vp&oGR+KBDR)pmziVcP&t@8XY?~c@?tfd>W8~&+O|8eV3>ai zvuj1Ey>*C&Le7l>!$!!!ISx+^z!WLqjuCa^dazS{|MDN$e)X_@Eq)iA#(L0{>C;~$$%0wGj*J4Cm=_=tOFc%Q(;K0xcCJ%D|Ib0wVx?t7( zSj`C(;x)|L2^L;_)4eip92KJAe^X-b!bPBUtPD_5nj9|kPDb5#4d=i6JBDw6*mJLN zMg6xf{o8xIc<%>(Rz}!`WnU`Igw!C97TC(O;ntEv?xfeO(QL6(9ZIhzrAUZK2|O^t zsJQ6up|rc!34XOD4;x$2fhxt9r9cC904O3Wt-!K~iM!Zi0nZ)15eGyUo{wr>Z#p^EywcD>}UkLmm@6oN4Fmr+5F z5qe*}JS{{IU^pBCk?BAkuYTlWkwE+&7MKh$+gxd$iqCOAj zXY281yFUM}Tj{MH^V?ULqJGYyS3L1;o1eL}ip-|tJUodOsaZyND~hsK9B}}l#!Y@bcV|sd{_n%8e9^i@nVit4wmK)jz*?H60VW`@*#d z*;5& zYM@anQXOH?+F)>7Ufbe6EqDBi&XELm5xA&$cr3C*QE!`e$tSKoyXlX<;&NNmU$XyQ zH~P&p{^c240n)l6$$k1u$kU8;>{r=ftWxiI(H*28|CYVDrMs4Xe4KQ~V0~QJCP;Wj z3y2YSz{>QoP9)v{=A-S37#6ugM6RRHa4^+Qcj8f}(oC@4+=TVL{e= z|1muYVJe+)n(X@kX%NB*>=wPiPwD2(R#9 zzRXJR6<{gD%hl%*Eh>h|&R!5D}i5XES+{FMgp&u(La%p=B1;Tw5|8VO&`W0VgWP8 zOQaJDs?eQ@1$S_fUe+fYT1(eKGDiD38N*I>=dyA~DCrU+lVT(uh7yOTB2uiOwY;Y? z7Vd?=OMd_Gd*jRVP(mpzKnPYlP;ow#6yZN>Ud2T7w!B#2@rwWo@k|*^7m*0e6YJWs zFk*}xKtJOE)WK6dLQpLWtQJs=YKDk#$UI{F7>FGp8tHKUOIU|fzWi|HqN`mjXS{3o z*Wcnpm#d=wBfI|URR`_lS8Jf`@zAqc#s)G79m;lI=@?MRa|j5OYz1^;C90y1;Bq)d zcKsW`F;RjLe4x}y<{cOZhWQl?v)(~p#smq`3y72uswcGss z?_X|;`fptFmV3Nn&&M9Rg{8{`j8F%St2!zrUM|(aystKl+S1;a+-ZP=kWk_JGcAKH zDV@KNV?1?vecEMpjNz|82NPTIF2Qa;yM24XkgEeF?lL0d!#Z;b0ov*Eu{;UAq~oEFs|8h~(e|Xnlz51}7xcX`wy+53k4zA7E&(;}$8sRw0ih&rW zCiS2cT{&=*4r5!om_6HtOcf^nnmPYHGpjLuC(}HKuCT{C9iu_`sPtJYU&|$tzISBTi-8x<;Hu{?zy=VwRQo#6odRp4GDM)u5|^psN=FIClG%O~4krhz4}iCSpeqo_=6H`_Sffzw2MW zqKoWVC~{Moqqt?(39l4RO_Mc-rqym$CJdzN zMGjvt%Uq4eGN?&`tB?4!3;IlAhbg45&aYq~XU!-VNG4fN0#k}*tQ~f@eHEy6yR~ELk4Z<#pH7*8=f>0^K z3-M3J_yBr(W}SHGcBO_;B)TLhIE&k3Sl9Sk0rT*%`-qf7SG{|-8{{-Ucv^W-87a~v+qo$pqtER!5LRJ!{*-!JSMR-&jqTE@@t7PR`To;j9 zKEP{H==w2UFP_mM+#{1CHF&Et=T0LYGXn365~t1lIY6B<^6dxV5!p(#(CCsGjg*bJ zDO%cd^gipk=`i13(PCH^2Zl|mZR{L6b)SGaP)y_yuF;@7kHgIo4vB_a6VY}!q#d8y z^8MxxkV<^LkmS_h;?uT^CJt*wfgJ>cPKg&B=$swCk>o5zs>L)f#8k z_nQ&HSUC;}C}H}b&xv*%D>L(h(I_PdXr$2hvI{upqW65y5d!Nm;Z3I8=yNG&dRCWZ z$OP(HSAVvo?7S+oUdZl5!RRaxMf1>Gy8F82YjQ%Hjb~o7Cwg%j3<*7>e|n(tdBm6l ze_R9Au+Z}qtZX~ccvD>|V$X@kncb#6grdFE!?l zaoN+%!0ThQxT{F#Vz%qE@BL1_<7F3AeVG;YCm(q0kN)-U&-{pq3_bi)L}=F&OO}fU zN}v@hTnvMbQDH(lMdp8E#c3U(6YI*ug?hCs$nuRuCM&1}>q-T>RP60tV&qw-P!7p4 zQMX+tGxSiUN|MfT^-APYA}M>L0Z51OA~19udN97*Qt2N=iux1-{FwKPlAV(gaLfux zF*{G9hl>$QUJMeK!1ZT4D<2=zQ$e?MX_LAGSahj#D4MF-IdLB1*E9xXgm8=?gV%>pM4;$-rf}SpewS&*E z)5`M-QGhCe(CP)Q8sAnpLObb65(;acCgk;ddOz7tM>?|#rE`x;KV?DExRXIF+^86= z`Wmt4#V&t5u3*TLhk?j)i8y&=fv6I%a)M>20v`vR0SBi(<&5%3eA1H;39#}wz{IeO zgp;!X=?+9BQz9iqv#L2!(j=MEMy-SXzsH5>a_4w$3{V zQP|~6ri#v&lu0{!;7XTleAQcbU+3FD{uNQwA3D6{xt|}7f8!J;%12&W7#LHsZlhdo zfsxwM%Z@Q1rUs6E3xNJ!17jO3DL*a;G3@+K3lQTLi<>qV4Jh9 z-Kggb1HCf8eTnW5kQZfXh}ts;!?+Xe`uOnJ#LNq_NshY^0hR>asX(zu51{4qM6uS8 zRJe-)=_1ugzzWxLVo#CdcZyRHBq?;3ku5`VOBt{QvTz{_+docim^6 z{^6%A12DKZhK$j2%$tNOFY|xd8W!^+nOKRX$q4Y@tvkSE-7pR}r*(*0XmD{`?gf@H zSgQiuz`MLv?w5=3GpDplJ`82*SBC=TqLk(-gx7Ax^mySfE?wc4NH2a68vyN|iQe%{ zO`0=bg}7nn>5zl^RXaoGsDZHYy~po^5k<0kZ!jmsqzVRh%Ag9Z!@pFNj4M2mdMLz} zHet~~Z=?ku=z%z-Oj#A-B2)ZT2#perv^*AaR`g+Rz|IjqZ={WuiwjYG;TK8U~^t`4rw5c!^&ZFOA%_?mEjzY?Q=snA^thYPjR3r=1cCd z{fY+iiCG*q3;PdE>>b(uofQk?EpM0Q87MA?3!0)@4#S8}gc1g(i#R$l*_NUPsKAy( z$;dQW;N@+Ajz0`L=L(cR43ub+92*nmuPt{NI80Tq>dOXQ@Eqg#bjc`*PLPXYJ#UrH zDFLo(1VV|-ACDB#?c*EJ9Z{S#k2FWm5Yb78b0cAh?K3-c;aRg=KH$&)%ZmD2F8J_i z`_A~c=cz877+J@y;AE$zgRi0s1#w0W>y@$tm_~l3ucgC8qRuL(bx#jtEGH^p^Na%ppB!+JEJPFxgug0$-M_apCb%re*UcVJ3D~Gmp zjUCoHR9ZGn9f;z&cH_%|dv$D7=)mi6UCL+1;d3qhu313Bo}3tgCYb1T0KYU@3SpAg z#(>5LkC7Ca#0?UijU1_vQ7PIgZtlwA3dgP-p^V6~X%){GI8U(yZ_M8XAeQ2~2-H&a z%)xa#c@I6FGMC|kk6rJ=v+wZqz1KMV#D7Uqf0DlISO0a_f$z#@|I?gr5gz`aNwTpD z*3d*Xvk7x1n_$-%xNca<;$%Sw+GSew2E$rJ@bPuz+(|wl&Q=3XhPfg&?yrB&r>$p^ z!!4;x76NK<=*bGk&4$yK9-VXDdlW@0^Awf!{nT?LwiLON(9e%_loAd*2xM+a;k6sN z(CPB~9pwLBMLbOCqKH2WaJ@AT>tcaI7{`S$N^npLIJJ_ChDeqF7l=ZuAAGMkMnTkq zd(ZIeaTg*LzfZ|TEbIdqG|>u}QWmvdAjXS;!|<3WZ9{yYy3F+C@y%V|e$T)8FDdE| zn7!?#O=T1DNbPpO(j7{&PH})D8NYZ~MA6@c6*(!eime=)B0h~7^u6JoOZL2}iKyCj zMNwimJCxUt!$1=rv*xK$QoVhdIL}Fe67p8kDad5Eq?FW5Z;jjOJo<7foKB;fC~BwROVBI;DEz= znCdk%;&YgW6VX58<_pM;G9PDyBX&m0`f;8rul!{DjX^>2%j=1mS9Z~w7*!`r{-%UaYQGW_Eo zUuq}6R?~RM=tkW-DohbcyluW6?Prx{ez<@ihjoDg>l!y@UU=@#C1sgfQ7B4@Owew; z2Clgh{jy7lg|cGA#@0kSw!e!meklGYDuej=iU(N#aUaPGb1%xT5ipi(xOWJ*Yuu7QhZ*x9--OUnYvXtqog ziXHQUTO9*3S}4pXO-fGaBH*HQmR2$PMiinF{ZzaIV?eZ9RHdp`C}SM%Mp#HhP6`Rt z@Cwb$iR+@U?iulN4GLXdrW!dgRti_$VTJ+gY=NnRzBx(Zy8RsU7B1e&H)l3n_=#_@ zJN?`reA$Zn%l5zj27h$ge>`CsRmc5ExO<`$10|()szN*asd1Rm`^!qY;Chx8N`nPII=>U&v@-q??N80V-Q%KgsZ~FixC@mufxSvq^5T?&DGrugRKoGR%ZK@wib82d$pc;)zVK2q{ytGd?? zUwr2NtKHz`d#-iE3%)Ex{qg#qr+jF3_&byk&Ib6xiU2NU&fyLf8wgOT7XE*1uwEl0COC1fK* z(o`^YxmzgV*RZbSQ*MB%2Z(7Nb`ApUn1-)gmfY`=W*FxHzEqK_20>GxN=6)}Y1f-& z>E4L1&0$E}vhPfEfox8Ovj8u(7NMA#9zU`%yVVc>#h0b1|HSZ5f95J1x`th@5!XKH z^vJveVrf7^LLjC^I5y!kvW^=h^Ml9ex@s%N&V>-QDBsaYhh~R<>UdF*Bz)mgntnKk zbg7(3=aY{2c;C6PdfH%IMjX#dm$@RK(v&g;US;brNY5ibchG}qXNIs)fue;&mWvq? z*dYyd3riP{?JkOh5;~yhL}$zVVy1*kPL!2Qpd&R9di;w4?N7>HWQ1oFRjN{{icO^Y zws@r)qWaV!gc_pcvVAYe_Z!RvB)Ub0libKL=+>CtH?Qzij|#c{=WxNtudDZX!c)KG zMg1uU{`r1?x4HkGDl$V{v!AOuMNX712w=rdRtm=HlnN*%0SNoy9{$Yjwt8D>1qqB& zdZ7@Pl-kMG^;_4LpgLDtDaMu8!ge=o{kiAQ=Wi%`ElE=q?NC-3HE{s3SzhBXad9*t zq#C(!^3R`jyvvn}*K#0-gS0BA6;;T}s0kQAGuuT$8)LZu3kFr2QNW_HAX{dxh;j>D z2WP@2*@m{jHsBrJNKtcwagQD?kqYUV5fT|XDDh9M8lWEHfVN4-=N(PVtPWmX3ICi> zLkp*UTihhrfw!uPMNgc#gJ}%6SJBqwKpQ@~dBgAee_zs~{&0KuGcOoUT!-0q34GP6 zSr(%ZTA`2i&Au#sxgkjSN2G}|lZs{aAxpRg~F-rq>jw;D0^}4$$_5d*yMDT(# z(~CZLjp6$q_S`R7QGeqFAHM3-&-jnuR*``ZhP*%%=$BDH{BdyPM5U-iJ&If8ym#q6 zzXmH_p>#7Rs@GLJjl8WF>F0T_f}NzZOF_SxSR|al21<;sL}Hev5^E~V*&>8?V`fWKZ|t49mwiRxJ3D`}J!e=Srw z$=$U=fg6vvO6y~BZKKMv5%s0iE5;b60hyi)p0{??qYlYIK0y)GiGo~IqMiq|u7v97 zRRDxBb&PhI{Nu@l8H+p3Pz{RQruiHcHV#l!%SEFW{o%m*UvuHt-}?9W{*UV%`H~d% zr}@7>@}D;jeQ(xX#$1{K{6EmS#9)lZX@60F=Y$lfB!+I`RuX%{WskKO#Gzk_6={t@ zWE%GGR$vFAS(gUP4J*Kb7yp?GZFr#l<>9Z3gkfkLWDaQ{JAk80j^WExMU09Y0IIPt z(sZdoC&TvpAK5B4z9;c~Ery~)c{heID%DPZZHaM{Sww^MQj_o!QO|!>S2$eqYM2K4 zZbsUoB)nh1EoS?XM~Y%-Gc<1VgGWnrT%Sir!0qD{m@{*f=cC^W23&y9sD*X32m@)Q zS+>~u!=N-$`xY0JlZ084`0u(LfYKy`@WMZPD#plN1 z{JUT{HVBO3WyynkAnIWjg}Tt~q!te$S(?QgJ#?r_hN{Iq5ov?1(*8cCHBEBp5ySZl`ya<6|vq zd(<;7^P>Le7ybKnpMTot9=Bz&o1u{*^pDFgj}t_8+9N&tsj~s7QRLgGe+NT(d*eYP zYz-HYQwzdI8-t!9U!b*kl>@TwxLGUZjTNr5VLM0#>&| zd^O|i8WR1_%23lfMH=adBDz9_(08A~_s_{t9EYdqz9YmEAReE6(zQh~k>qZ*S)bhz zDTk>@f@>pV!!+;M#3Jv!)#5AA1s4dx$zZahHjOZYqKyFYODRK3?R&~lZx*S8TRcDM zqUgk*Myq->#o597Sut-oDD6;314G7+9yT!tOWw7M`cv8m&i&VoBe&J! ztszuKQu!3w%cb&%6}()O4$PR8-PVwbD;;!M*~ByH|3F58SwU!JKxailC6u+oFJ5(g zD@9A0O};WZ&GIp|5_!oal2aCGBV_j>(hTGW4f_TE1_s(vL6J|?*XacZZUnGG2BAjw}tq2ssI@o|nb zXLU<~ene!&uv0*_X^E?>1uE!;y4668Xz}YJT_;8*YFrg&zpEW;B@!{EgT6tSrG@CGNu&q*S6f%c?YKQ z#NQVY(P(UiOo)aM02J&w<9>U!s}&f!wooLr!#@|oTVHgn>H#+mF1%cL*w)}#)LdxJ+jUkJ%G?_(zM0v0Kl0;y3FshfboD><$VY2!J|yNcOG zpFUgf`PiplW<~ww`#=0mFWh^I>4|fH7p1oREW82<0fK8 zYzK_ODVY;5H1KVTks;(9=@|WhjFPIQ&8+SLhQdlhL#%`@=)=S36a(S2YllCtBph!jfRBXn@zy12 zAXXS6CWCKZ!lFWSp_tUru`dEHT*Bmp@SKw^Z-hby7#I@U-o!N*5~3`5c#2{lSBR%W z{ySmM#9?rA5aPhFR3Km@GG~zOlm2w#9j~2%YKXO4Kr3@6LuBbtEq&?V;xN!{aDix@ zL2ra=npB(P?PK-$kv;pr=9^!#=jC1y0gciQ1$uV-L!i^17+NbE$zA(i!#%9VAO~$AZ4+w0lRkpciArjG1@DM5%zbe4ogh_eP34 z@pKn5Z0&j0IKWNKI|^EaWPtjaJl1j7(&?_L2+E0?wa35_Q1KF#Y&qTs-`sQQu3P-T z-(Ds~{b9quJ?DtYnb}=KD25!raz=pyuKA1jvK7B{11P|xMowVYU;A?*<3{a>psGuZ z0!UEFk+Hjz)Ya8}1X3#5{p*e>{*;9*OQKUMfjQ7AXGpJvxuO^hGKW;U@}5kH>rQ<2 z5}aMM#203oqZE-+<=*3&(Bc`yeTd@cr=I^Wjv*Cq8ObkevM5$NWnqfm`1Q>(b}=!zH>sVxtBMVB7xse|`y zX67Al7U|&m?gZZt7u3|{w|t?D0wxbi(ezrvJY*ia_{M@Y7%v}&rz3;|-Fp+U3qEzW z-TN`W{Y4k`*Ie|`YyHt_=ReUzhE-T}FKnXXnAH<}%B8PInZz!5==R`TjoHJfwIllJ zMbu6CcngSz(90#h`hj%b61u?t`IoNY0iOT*KNl8Mop%ww(n(PWbuj0&^0UOWw1|;Q z#}r^;16QqgmAJ`QO@Majl-dz^#a+qbcrR=i0m|gkq*xP!1hPflv(!Is_ZOm{BuDpZ zw8fO3v3O`tiP<*vj9}zG8aY~jVB>9l~5m3 z(It_8bl@2%P%n*U}9;E0o$$X+aI{10R<29g6 zrVf@^+%n4niL-(2OJE7)V3b4<1I6Iy1yiRX>hr>$U$)r{8G=~8{y5zA&i(TsP?Ne4X^GY$YgSdR zl*xn;07j%24UNWAA~l0k0cp(_FPG|0V-)zQVxD;6$>vuBU89AIRHS$s0A1F3{fm_h zbaj>QuEmh62}bWNsjr?2ejf9;@z?}`Gy;>LAjdlew?Hj`xue-s0`thwuZUp)=0Lck zd8R9tVc%l?T0LQ6ICc>THNejWhOAoGpQwzj4oG|ApaMU6#?b}4W_YcFF?C^w5#P9m zcE1?YC$Ou~`abCL^$eF@_*HWMC;iG7T-1NHO}h`@Tg7Hp0wOYvtlhO0j#DV7=#>`kUymQaBW6fH!*y7RbHm^@1Cpc^!40G3 z195EUd{z;GJ3kNwYFIHZl%gC|9NH zvBUg&tn9Xo^3^pdWQQ`&)k4FKX|cI`_wCG4+lrHmUM>d1zPT+6VM@la3{5Q9F%t0k z2KP%IC|cE$a{;lDR|+HZ2S=Jt77qIR{w7uA4DOZcP1EKhDuY0pG)#gQSu-AT{LGB5sB7H zF4b|b3S?>kH4YK`!&jjKBcY-t7F5AJO;9KlA)~r0u|iG7ZncJnFngj!LG4eMtY%gEE|{8nv@XjdBo#kjftz?u{=n)J`ww1hh2uLgkG2! zNfDA^>u>ozMaBzK9lhh-<81vh6SJeUJKq15UrVWvqq*Fi_ z@9)qlqReEgckwXcA;XA2TjzMj-VxE2A=ptWj-DVwiIaIT~MR znxUQ(D}^{ey9arYk-=&PDR9pb1v_X3G0?26jBHyu*I2}@Yi3{_7ki`H15F&5UI>f? zyWR2pdjzS-P!2oZ2Hf-5Wj3uic!MrnNNN&74k$JfuoEa)x$*(66A@2ZyW{~QW6n5Q z1}nKh2(hb`&fu2N6a}K?n35FFe|NANhT6&Em%&~N4vfO%`^Ggkasld5GF9w?&saN&%ObO#IXZUbmbd0&(4i@TJCNF^kWvI*EV09n z@_pn;tRh_;}Jf5uab6dGC-m#tvj3hFk$pCL3hMP28L}pvQHi0SkSDhR7E;gy+px^u8Uaw84QtvKB9-qyiyK@ z_^B+;Tk?#F!%E3sDU|mPgXrd55TxKEGjF*|R(LFB!)5SHk8@K+Y9qXVCGf<#UchBI zdFEGtbn`p!^iQW$)c46Jf9W&B{JL6HcYXg6RQOr(dC5O_7`)-Yan*2>^^Mvc-1bAM zovJfgwy2Wa`K@<)Hu3vj5VmyWKPcXr>cnw(Fu=v52SH^(C=Z?m2HQq@ax0-4R@AC2 zO;po+hJ#Nb;TTzg8*P8JOKzssh&CB&nl`Vtv1iycF2xljtINLxoC+KBqILH8az>8L1G7yzmP z7aWGd4xTF*_JQ^Z%?SrQLRkQ7Gz_mm3MWyCHo)rVFi4HiPLrBQ6$3ZMP>^_hKkP$W zli{up{?k(`>OW^6dzPzguG0-0323l2I(ti$wLEl`?y>B5)6c(3vuYDvwg?Y0mX(1R zeav1a<^bzP=dJpmiL4D_DcLPZ8lG|yn0BBG5ezQT&ILS&*H?$i=QUOqQB+TwJst5jV142nU+s?8p(9jv}=o^MyT5 zq-nzNv3Z4BaM+4`?|5s*8u zHn~w0H550+{ESPHRXk&nKsZaUSb`&C&OjPOx&ejU$Uq2cuf#z;7x66L5*kz;;_1e2 z*C1da#@AUGk_{PKSIufr6dg6G#VtBBqS4n#Ib@u4fzDUC+`do_11Ej)dP-a#!Lw6$ ziX3*$u7$~WMKh)y&qY*uCPk)juk}dpM7pC8%4cH%AQOHy&iLlhDY8}dsCZ{*BH3$3 zM6@-z=vv?Mr+dEs`uo=^>d!s-xgUAQ=Fz*a>gJ|sioIcaB@mBS1rZD~E@0S}6p)D5 z17)viM;L?jJ?B`pgb7!q(KZ16gfW;k}tjfkg&(EiA}Vprb{o*+McibFHHOzvMHI|I}=L{ncCi3^T05 zaH$b?T1*6tbnmO!CaW$K*0r@=kJ@-D{~J0x8CzqZY8_^box<9tVgzmCd`#~kWUX_| zNQR7tDb&16%M66s5143&`BL%j{%239*FMGxS{f*4MQSbXivSGEN=^?leq?006G4#> zmqy}`?wCP}jF=u6 z@Wv4rAI}T;u@v7Lq; z>S?+L_G^?ZI9+tP=Rw8>Pw+jNIs!!~$0oUeE+G=X9lmtiG^ zlIOG9ii@9t9Da(cAOAfgBC71)Bi#;vp{2ML)uSv6;4(StHV zZ`ryaboJYubX`C#0;xvLb5U-<2=P$dMn$Iu92w|^tf(U%FDl%xTnRN$auH8vR9b^C zSU~c;arRC$-YRSsg6Fe~4LTq)emmor3!x#hLcSPU3#wBCbd}%~uNMt;azqdK`2=mW zm+wk10wQv9`*U~6MQ7=co%M*fS`(zg*7PKM3 zJqXpNTHGVEgbDp#Or$eBRiX|Z;s;)Gte_IQX_gu}dH*y$iX}(Ikf4LA&XK1Mg^>+E z@%M}q9$}1PV&$ZR_6kF|3Xi8FP|K7VSaagDGNF!)@p0o$Cb%|J?Gz}{Dhci8V~ z7)OLaaF7{!_JL3C;RHE3{{nUbEbv3&;^idJ19n+@;`r=>Z@KO7?)}-bS}w5!ht@Ybo^#&56?UW>tpd_>IlxrbN48p0;9{` zx$C_qmmJ)Nt}^Vr52T;RC^rUM@L_1?l-o-27oOAT^b^-SB+v=tKO_Zo)IMB^K{E5Q zVO~B1eA1YW01x9P{*es@L*eq@VkDdp!z)>Oj*O{ClBt99ZC{dv0b3_98L5nt#W_f~ z6BhFZg+5u~LN__b+)stUD;RyDkBYHrc+4+?E+L{DP>GtC;`0gUy>xOmlbFX&8D1vG}JMj(Q@(;Uje2agdEb7l}=l|6E zcAdD@7v|iudblaVW9j4z@{^G@U=sO))<1NGCqi8*Wn!0N#qAJ1R#xqZw9~13XI(;v zoET!^g|OF;{ovxH^0A5ZR#Q7mS#^Qo_+HzSZFV6q9u6=L7GBXlyx)y{MEcAm@O zXgK?^K$ng!23#~y5&}Gvw)mZ{5(P*?!WVFOH`cn=S49dq2%@)2Z}?m6btAk2!&C3Y z?U6w%x<|61rAX~?Wnz91Lq6s#?3>XVJ?|!zv58vtr%B%M09h%+^}W&^g{|MEUHPm} z@A~e0zJ9W(@AJ<->4KqMYl?4fEBN6y!5Q~(j1i2I8EBzT41U?Bi(+3YzRKEQ)nHYL z-}X9`&;Hiq=%n-M~hlBU%6F+P~5pvOxLk|sISqee@^wM8Ols!=okpB z8ug<$dVa60C{&kTMk?mppFszqjR-f@La8|lbVPX(h>>p&gIE;Fu!32*;)u(W&Iu(k> z+{A6=&Y_MHd;EAKls~+`i$F3@f1rs%ooMsgEAoT%1FfZlXZNX_Lizo+26V!NMKz?k z&+suAmYVbe>-w}-4;i5Rb7!5>uQa#T()-8k!_fOh5^$71e@g>m^bD;@ISZ>*fI?E9 zr$ZVM=6+fj02-tTDVO<2`&;CPGlgX-Ak6m!LNJ8zu$@6FCMk(1F@Au(Qj&}!B!kZd zzBA~(j=>X+b?zQu81Fk=QfmRN%p0UDCK{*1MG^<-u}C)(=-~l^lXAhdOD{T0AM(Vf zbc^~MF8tKhU$FPcFQ~}S8vxcY2?69Bhj?aYz=ZMDQDNP%d3^$igXGj!YSy`BEkYQq7#mRUr#Sr zHRf#zTtsBTp%c@KV(T&xZu(GMICDS?S7IutEwy^IC@4--ho~7IiT_~|J$By65K*lv zQZ$W{*rnruPO1wev$dTI$sujz0_4FKL3n;>Bfc|22CmKfbjM!uQM`B{w4qYF>d_+} zBJ+w0mls_+SRSpF3H6jIQ41Ay2~TO8>xJKZt3TL#t?L}7Mg7$$F8b~_>^}LUIIxq6 z01T#7l*teZ97^hhGLsK5tuq#z3dQIRb=eSD$aB|$S?+{~6=q+t^EM)z?}?{Y4KlI7 z4lBC(DZaL>@S73pkyFRT0)Zg|fI>qW@-CIS1KmMjV1~-D9j3v?)jf}T^nS52DG=BJ zSPGJ+!P%oCHh}M-eML$OB*FT!s_hbd$f|{jJMkX)5Z^X%{}=J-bfcHh0P{GC9ms zO4*wl2FBwDiHYp}VPfn8^YMLLKd#>^sU^C8CVEuj@FzWN@F%n-Km&RoGJGy+2*M#lI;G9X1uS0(O) z3lpo@)iO(0q%bD4FRAo6>2#%Ra3~!%g?A`^(xKVSffm?$bV%olOB{HzA#QSC)C!~E zx*QG3I%|y=L>x{^Z(ab$7b>JzF1>5M+BtKGB*(Yj`aSdJ!-Zk~RbTVbjXT`^?`To~ zt#;wheR|fek3tXWVBWSu#KU65bYeItL^xw9nnAk5MHH4u*L|F?Ur0Bqo%P#9H(Wh# zjQGDyIZ$fX39~1V!sk~Y4Pt0Cp544FkUGVEi zRIVJc$D!L1%4A@L5$xFrozW((Wu-e{G+FIp=m8Ve73*irjo$ig0#|1O7+bSbW|YrU z3;wISgucg(Oz=VY8L+PLuZSi^W}mUc>;|kL^EI3z4k;}RF0&d!3N%(TnWXgKT*Rgj zRS5GQmcWx-5w#XMVcTl0?3A&CZCQ4nx_A_90CiAiW4ruZygL}^4 z9yz>6fBZ4O&5OET@YLwcs1t5|)uvS^3NWX*2^1e89xBspjp^cPYj~aD;L%pFOxQNw zNkOxYPfqUw*Y`W`)BlX@4y5afQt$8MMXa)x`nFm^SvRYmZ8|BdMsW|s7{G`G2m=E1 ze4&~H4Df!UvErDgt_4kSoTmLHfNGFdM zk(Ipp%yK~kt=Sp`NTY_h3|ivK%Vl5cf^l@KgS?lqbO5 zS8O^K4h4(Y#zK{)`pMwMPQX18eN@K6ru8C_E(Wc3^UT3eV7STLCWRS*d4<8+#POp~ zO`8yYIXRwPY`p`Kh2zoMIIm}R;)XZ-+s&Ka@`I_U|LKW~f8bpke#h$aS6RSDqr|v~ z$Km*eKn43LDFuf=pC$JCY7tVF4Y930=W%CxTqd{;CFrcrZ>i_2_LDlz&7(Q3rvMW;$Yn zi&`=!BP=2GacO9_rF{M3B9JaP7Q-m`K0JHIUz^=GwIz`!xN{Xyray|KSwVNy6@n_} z#K_{`n2RE&t?C4Au}9a#z~i16YDz@K92}>_W7+9Zx-OY0Im*tAMx|j|)=^{nay+1b zyJrcVL!7Bzec-X8-t{Wye%K07K2b=Bhh4 z74`G%(%)z*yJf}p+kC-0;)i(7vI=mC|CH0x3!=FPJuZp_aV zC~|Rt*`^#DnG2(E;mrbzj*y6={Q!%4^L$}z%)CpM9W<&^=P@!+NS>%p2X)LH=%xx@ zF)fR(n$%zs7SPdxHUM`FjqL8c+Va}rL#OLG=lxnL>c6NLKiReo=oGf#*{g%Y7*$cK zWQ(s|7^A0D^;C?s&l{G0XvfqAWF5dj$rgW|U4#X2Wr~SnE7;>b+51!ym38>?J@-Vm zh5@V%a*)LOir7^UnF5xr;I%SE`CP(GRvHH*&Xq#Ma?8(yL*a*_F2HapDp2LT^vI)j zqBdn5Yn3e97bWIj$alxba&DXz*V=HnC~AHF zLRtKpP2kJD&UL!rizu0G^mzX^QP9|9O;Iv)k*{1S>llK?Pmrg_tZ{tH|78$oNbH&+ zeZsUrDOn?sKRq7aKM$W7U*5ZI`?xglXAxP3C$s>cj8KBXK$85~goF+YglZUYwIz4? zG2gVL*(<@(!*TO@DDK_~fe;?8mMD;#;gLD`uLyL<3GxXSju9?upm^23Ev+bVJapi7 zcibr>E9azVQ4`y3#31jv*WCaLN(_sBVV*1=`ChJLW7vA(%f3WxL z>l_~T?b|1BJAUw+|6;fQbnb$Co+;i5AHd-n4{#80^zIM$yyLgN`u_a+r(v7*12kmi z0M{nr3F(Hf_2DCa|7kxMS&Le#UEg)-s9pOpBsuU|x*(X*i`sM+?y{HmWcH;+9F(ng zb#nccZs~#AD57;h>PTN?!!O-R1X5Hs65ex(lG8e6E0JjE?8kgxNSxgQwo$E~FVyEn zEA_F-(pFe{Ari!4P^3eF#g7$!CUr`}WCS9Y1jEzuVON3LxQ}32x~N62GFJx+P29 ztfxU7_xfgJzvySq<0-PTQpoeKyM8%^^|Ov%2QWmhU1K*qU#=Z#d~>85 zYVMX1M~^hj*ij;L#EGnbJihe{WKwdroDvl~=>|KLg<>^z%Z;ZeIlx=kp-X3wNhSRN zGbJCIHP_#wtpZtpTfP2cH@eyDci-Z>{%zQ|Z=byMu3=n!>Xht0Cm|!_N{ukBEa1BVT;!lqf{S>L765YIn}4bOJbji%gNY1_6Vw zo}YOJ9mKDqnfgzl%SpQTpw-xJO1*uHIK{5#)^>z!|-2qim zSsmG;Wvv1P!bC#YN%xB`zf2kkowQIA*{(~&&M)Hk0XlT=$on-@128E^lm{xKg@6+r$O-OoD&w3cnePgqe<>Sx4_U!lXy6e4PH|*QDPyS$j=s};D z*^O8U8ALkeocksYl9L@7q>%@2R>*JGfkdQh8pRp)z0xwZew%oH)~}z+`g^8Vwx%M0 z4_v43U-{cL?n8*LiU^DN!*a+SC+i4Xi~mY*3~gln16*K+a&fI-6kmNWb}`Gmv@K%l zEEHR-h1`)+s1s>C7*{8mnwQutPN;-fI6VuIgak;(J7L1TB5n&&L``ym>J<|uW?vE3 zDV_U*w;ehE-YHop7 z%pT3W|M*@tk#^Oqe|+|X4}96MZ{I%oZ9np}=MQ?ef`o>9bx*+)GBHl$ovxKla3302 zha1h3e5Q5^b$#m)@A{8_S*_o?_5)KP8l1k#?%#iW>H5*I^;;>y(p7T`8JgbQ(pRM1DIyRsGq0`^?);~M+VID%%u9?+d6|@7P$__wtjGv-`@P!OU>n1FynuU=#jFLsH4WbK^ zE|0$3=vAUH#d59obkhzTi4E6aRrDXDj7#=Whg>(yl8-3Z{b8M37$X&rsodU zK_S{YR=rqY3vU~bZ`?Mw#Ph|%r(u`i{JDiZ=bV^u&GGRy?*I_IN48#V!izgf1~iSVW2k3KJnM`yx+{ zdmv(__qU1XpIU!aY3BR$$i3X@)o441Kc(Z7!s(#0V*Q!7&gh`)t-lw|H+BB2a$xoQ zUqi=*zJ3GRtitmLGXcU%W{n@Wa*=C zye>u0A>K{6eQoQ|1`8$~I&;LgrL)F(ymyqG5uQMb-q`6Pz0slbCtbD>HqgrTOC5&J zg}=_OT2qMYBB5uNs68hhHe^>Yk4jYSD2l_s=TeP@!sF`kW4rWGPk8FEZ{I%o|Md7T zs@TjRf}j_`+zWN~&=vWFmq{;_I`&>7I_W{eJx~w~vbENrWX;m;@Oqvor?!56F8k}( zHC_i>zpc10p8ugEAY11#v=BFk5H?q%^BDcoIiI}rkTqI0l<<162@uKAcqm$m-6k?O=8c3eljB>f z-EvZR;<{UY%o0_n8NY8W?-IHZeQT`0k>k_(bmDo=U>zaB(ArtQ6AGsgZ+TePyyF_# zjr|Ls331VrbCJhB=~sq*`}WC`<>(VtWX8NqA|7e9YjhZvaW}!*4f6Y|^xX`Fc8&e} z3;3?Adj8n$4$yhC`x|trtJa^-$+Amb_w`@a>pzwAZ>MnnvpZ!E&zBBUN7fK?Nr0Aw zy#DEVh!h_n&Bj~Bw*`E#1@LvG!6g|yap!aIQyATONOSRYVK9VL%$v~)ov0h}hG7v6 zjk>%Zp9a0!7a^tB*>dudbmaDhR=DQ+9lB{jSjKsQMHr>GJ7F^jgtnwdizKWZalX4+ z&=^Okh}s*><*`rtmEn6He$Husym$7vWl_f=l2EVgDFY{N{3I(BnXBpExI)0)aUR8WT7;=;t&iyoeNN zCPFJ1NTA4I0U93~XT`x+G~p5__PNC9sS%$O^f76yq7oG;;UNbkGmn^SUp}S77EfB{kPbOoScgcRxcWfUDL?L z%EMxCL1l z0#{?;rPB(TDxc-g;74J9q<>xCxa0!lMP>?_f3jBTRceA5+{(=8J{J^=7yXGtQ%+8rE zqN}&aQ=TY7olaJZaHgW{Y{C|Hwcm=Ye2%H;H%?8IQwoM)>$flC`t=mn&lH$nit}$P zsgyh|HxFCUf}rj^J$VUPHsVr{?>m7+V%M&~{dVWHJ;c&`Vw{!7d*45W@!6$AJ5=DS zw_dm3dHe!VwCa!3J>I!6itZ|$Kv%NH`eB&K&Zl^VM<$PtJbU4@4`GzY@Oo86<|nrf z(jf$-K$nk0Z*i_NO=(dgNAG;sKN{|O?&H4xFLv+x$;uoT;_M+4Eb}a4K_3yMp)tXZ zi_m?7L2Q{O!dy>;grb?qb}-^w(!W1*51d;6lK3PvNOvvFe49Nhw(lGta}J67@Zz{8nXAW2}bIQI~5M|@5i6svjQX^&j$UR0WFyB2CLO09Jisjz!}p#0xa+=d_pS#`0~FI;%ZRK`l&vkv;IaXmcC*agX?J% zgY3rE?;RTE_P)II~Qx z9~~pBHG@%;2p1`F-uZE3%yj;lMn4zqc;>C*;#k;|1RdBhWzdM8-%}nfBt(IFoseTw z5!DP`G*Xo2q_d~%7fxZEx+u`&g|8pgsdMuD%pYamDlU!dZ;UY{#6i>h$D=A2ePZx; zbLI!bY!0HUqjSTr#@_D^^T|by-}VkK9d3KxDk#pL?^nZ0@>eFTi5S!^TKC7ZzJ*nWapJH_+A>iz3Iza=H<>h&*=_ms`r zJO7ITsHZ{b^!d-vFJa0Pb_l)BS+Pj8Omj@bxJC+T^j6o7oE^9S3L+I>p)8e(iPQD_ za*ZcD4ujI+a?c5lEEBPDb5aBuB~S#o)<8eR00~@wqKm?7V(Vv7dW;i3cfJ#0$B*n9 zhj~YXk4U%(%qL9Q+_~j|z;49J;5O|(T#n!BHh(eP_Pob`+gmp`@1bF<tPDQAXBd zjULM$bFmR$=UD#y%PsY)W3`avrk*SQ%)-xXjn^O7WD~E`)_ndi#rdCFSMNRPo&Uw- z%9`gts%qsFUcXMf|JGT59L5f)s%^4mt?QQQh7R87E*aa5TVtj$qyiKt5J`j=NYHbS zqKN$PlM{5qIP_D^Mb3d`(mF+AE`7Wg;RTf7C(Jh}CF6x`u63Xr<@`;un_*+aP0zs!Bixb?Z`-uxdn zH}1wgO1P@gXm>aLGYp`f3Z-Vp;ks&fIK6(Gc>byNGgWGD{W`g(_1F5PKL0wg{&mlP zRGP-2<*L`8?Q(^5;CcNfQXbdVTt9uSu35>s=%kb|58@zom7hnV<{=}7Y_p3$_{8z8 zgKw`~Kf)v|oMFNxF;V=4N2`@6Kkr-hIyru^6VlF(q1@NAPYN4iH|Ow659&f1rcVu} zr5dXxF&SPUI?vx5q6%4Kp=Wk>4mbZNEaGNJQ;pT7O*u1N*;f?Zz{3mPpuCP#Q zrOtje%z9m4m#O1r!q3FlI9?{)3T4gp=_z=;oXR=o9xKypT<83+dJm^OX4pAf_4;#^ z1rIgvz2`$D#Wu-2(mV=}nKRe|f`*yT2phD;$7;?gbsl~`4~2E^)%SaG z{Jckz6JCVyLNafCil2AHJM8gY2xT(}h}ii-8mNFj%A9oEPSzjauiiYP5!}5T4|4|x z{~kQPIqYgW!XfVssTZF=`1~~II}sN-@twE)%i)%ffBY@~abxq&>qNuJ7kP}xbYz^% z>R3A_PO&xCg^BVy5lPXbD9Rd98?xqlzL5V-DO|tU^RHjz`UTGMswflbdg}8q4UyIH zgVK4f@i82IQBd~ZIHQC4g%qX)VDOBFhkoK+PmvylkaT@5c!IRn>E@wePnCgzc0Oh5Jpp{4(HGhIXYZf%=&OR5Z+rW$jk{LcT1n6Y`<<@%Pfp=?);XrPhG_G;&Kj+A-`;<# z9)D{6w#NGPGCqH&dXCq08ufAE|cAHQ>a9Pq~bFVwMO zVg2E98iTO6N656`drm}H`p1X$q;A{5RsoO4KoQOBAN^?txImDL)OenBxef{T$O4H~ zaSds0QmL%T#<+8Qll-&z`ji}>+8NJ}9gk1*6lhJ-^C|yXDD1~>^IfkT?r`3DH+kE} z<~>xmzXaRQH~u|#K?*f(AHePc>VjSoWC#i`L~JnD_Os-@%$oW%@gaFQ(V8S`T1e%$Kym7%opq?weP=D z0*d=x61U@>IzASVb_&M}blwx|r^k05KXUh_)nlA=^yBkS9q(i}6FT(>AB_dDL6OGJ z*z@1xMNY_WA)OP?MY6Y>!sEN=lda!j{p|e1<2Q2hT*>E)b?sY!9>48vUom|5FPwX$ zx6C&0MLSEcT~YaW>`C9*8Le-zjoFyc>Id>OXs!3^CTWR z<2BcRS)G6BtY1&@{Er=f?9jcl!+`T-+uzy6d9{i2Uyk?CorgaS)-168#b8Odzi1jA z6E$|7(c=XY?p1T4Pe9wk-O)1=kQgn-1yAgF5kkAvEOrqE3tm`H;anS7AsBRsSm<@) zc$q$4WGh(2p>uV(Kt)X537D47lM$>Pz&$50Sfs4tE&?x36b`c7702`0TJ5B9cNfoJ zf?wk2NnvLs_4t^$mEOBc4euJfGk`MKix7s;%?~haj zynlR?4m9Bzixwq*;+^%dc(+Ai>K>0cvH_;9{QNX_JkAmtbiZ-^Ex;EJL~bSPkH=5p z=K-cl>(`0%FZn#Mc|n66)8gMcaUqH4w_(S>xDXoMZ5_MA?O!t7?HA5H`whEx-(SOr z-WFfp6@$$23mAXq;mg0q5N`1W9EV^|w$D?8G(4{J{A}A|2hLs_qv{`^_TU08P?w^WBL7$c>4Bt!9qP6dzsk1$1i;{`05NPvAY}1 zmk7>Uw(Ocy;A7`qAOy|g6fA%!4^PK$f8i7S(iwXCz^IPo5!edHj{p0a#u0I|>wSEoj zA2(}joWI`sbz=Q`itAr>{sq=Q_51?o&sID?JAUf?`x@t8pm0lgogUtQfeS+UJS}!r zap2iP8}DIY5Ib*)%n=xrb>r!zLJld&SSuc126@t_88RkHFG?>7R^TGlW!y-gozh#s zOTR$TKx|gvbVA-Q1d{0B{w10a2BF1xZO!BHLX|powtiBC%MMM+MT)GaJLgb2diT5h z;c(wyc-+`I8t`<9Kw*INdr#p$x?@x98 z?Dv<|`t20fFJHj=jhz24*ZQUN{t_Q}EM%>+CA;g7 zu!>f`JEH|QGPuR{JE3h(4wA`$lC8feXDv4axR!>WAFJmlUK|>p&m}|Z=soZL%;AS0 z`?#yVV%T#|>COa(gaX~7^t-NZr#NwcbN+h?#|S*WOgumB^vUa!iS-Lvzc}AvOs(I@ z>yPUf?3!1sfAL1II{#^?xZ?dYJm;|~CFhT=KXzgY=Z~#ldb@`3_!2y+j0|xXwJK6d zJ-o&geHovBJC071gCWw|jM(EY=!#l9ZwFf12=PeRo-3FzY3F_sLTS*|Mmn2z3apa* z1Q;hlG+rrmk-E9Sa0@g8YsS}ID3;{-CY3UYp(Ev(2zMAB-c7uZ54 z^yM&^Q9gyiK)S^4wL?KIJ0*jmJYw)!t8nDL_x|1C#~%9&yI(Twc_izyCb3g8oRWzy zP&=KM>FO@c$j$+WgT3|ZDXgD$c~k3`&hxM8a#OdgtGnD@XT0wE^)fvFdWz@&viSV; zUegjr0SOA=@^MCB0e(pr_e67SReaQlK*<|m%_xfLz%WfZ6t+NzV+@lL`n>%jFvuY> zN?>@$yj+kjS41yU;uu2D>p?jpgpJaJZ4l~c6&_h<{S+30ZoW_^JMR|?vf}#VL(Rhn zGwlSd`s#{rzuCy z(OAW%g;5pb;|t$a;BH5eQmTZ@uYCPD4~gIQIl^MP9Bw0Av+(_o;}qDve;quI>jj_4GhC*r#?||%aCkE_ly@DS+RaR z-aG4`?9^9WFj9y41+HJe$n)R5$WN?aCO$ukMLb+^%sGzE<~dQhuMRVl*tO%lBMxn4 z8BINYVIxMq;HNY34i3qRZ-`bGz|xsXWnds(k_}-aR*xRsEm#{&4FHkx5joeXD}*kU zb&m{ZMoR*BzH<@ih)dV49b1Dn*5ACsAgwbDrR#GtOAtQPPUk<~SBScn?F<{ah&b%D zdhdyfxX<_gpJ(hF_U+pzPd+M7RF@el2ov8~$+nyPtbFMs#~QcYTB(4&=TGX+iRYiX zKYM-!{&E-I(fYV@Iat3Xwqx(ZCDf@y2VR@gfiNOJzg`5<@X(K}%z zb^Kr)l&6ZUB^42!%ab1aE5p8h`{b#I{ISh-Q^31JK&h8}H{uX%h5Ay#lVj>JWkO|& z&m}}DsT1p8Y-MahsTrR~nD@(sQc~9OeqnwlD~?lCMG|G`)cO^?Pu4yEQ|C3l)_9%- z)T%Y8IIq=PRj+!WOpf6(@Lc2f3-2#{uq{A)T&{I%+wQJQe0{M+ZkCJAh+S!hD;#Wj zC3uN6C~`P(9Whx#`$P5U`1fJ?oO8xq4{(g@vLF}l5+}4k0-5wEiXH(wuvJLMTX>Cd z{5--P4zLOw@29Z-xchQ68beP704q5!`{j}L+4iBE}X zzgx74=bu`C@*4R9*RNmT`jxC-PI3L0#rZ##^@~(R=hX8rUYiKtLBwuf;QnzIhoYkx zHji@!I)CXYfbsc}VI(4|Y{1!;1eDY*2j@l_S-1EiwtnYFIoG5EcIfiTz;xpH=tm-9 zP4T%GgFV(UHZt^V1R@e*Ih%F{N;*@7VVDym{*DYO+4_^8igsv=4iJ%a;1TT9;Xt1_ zzBMxN^!%Dy_^>)T2W2R&^!&7|UG+cgQRh5k*tc(=yzub+Ug!I8?Xhc%bUdkQy|iUT z0gCs(I8N?waDRMGq*fMcBDp_XKcgm2t)Ed7*ImC7YF}^t0`yAhPz!a<^N-JOM6{D0 zKkh`^8q`SQs}j3@A)Pnd6~%7bU?&m>pK-koJCAhEG!KCjy)wLii|2x`)zqng`h_rx@cu>ykUjf?-tbYqvU5r& zjYD$Hu9_0*h|;%ka5(=X79ZCISo*mBK<~z#PGrd_3|qI>7$fW!)IkueVCRIfbc=K) z#m2A0Gj3klBu={Q#qo0oN)w?6CY#{a5$4{34zKDB-!I~inBIT2aJR`}WCeFFk&n_sgzZ791Cg8wy=oppQw#drMae_5h22JILTmG409Q8(^rH@%nYe z`n|J$@4SBPtlw9xf8F~RhsYJ@Z?SFx8-Uco_e5mCY{6kBr8_zdHJg;7Vwx97{eEh! z8;!7F;x0;|rjnhB#h-f^#5y_-O8)XiL#f7i#n4GLf#ab-HF8;tMSM}@8t|l3&Sj)C z5{ST&JB>6u#yb}xG=hP0!v0Y>(}7b`SM6lLs+{XDDD1JoP?Bla$i?x&+`_(ajRk+WP^By zqQnU_CiSA_>_XRpy~gK`7l+1+bQx+!Xc&~kXrXHX1{!(lv9oXB^eFswx>wp|V%5ar zqks$J_L>bglX({wcmgl<;2L~op0W^gZNOMx;q!p^rGkRc<~kPhlKAw$UoXS;+bOQ! z)>wc1o(vPmqh}8u-xWszloO9nvJ~g%y!TkhH)ou7nRvb9?xF(=l>iW_7l_#XGu7)7 zE+gJ74d8{yX{S~RAXaJ<_Ph~~jUDY=fCkqYV3vyviI$spxZNe%E-*MKZBuw?h)*~@ zvH|aW`y$gi6i)2y8(bHh6k?Yu^y-;lp@AApX~Miw0Uw-|>z7koe_GF}um9-XzxNL} zZ}Xl1HtgHCPd<9+$Z4-Wxis~Pa76JfVLmRQGc)M;%5V;RNDPLkvf}>Q_#jN-K3(@m z=EFknziRymcSz^?i+dy}lQj$&4P)0J+O8MXhIGexe~000{I@uF!i;K8$Muq7vm>Y?Kfvm zBHZX8(fI%pgQR1moOo5pVmF?6|BLlo?aY&p5MB_Ct9j}AtzXES1F-3!AYQKj$o=p6 z8@q4v&7T?e?b|2kA3SvQg}(O@CNdMrSR{=!i|kPhEszO%9*UScLK@Q$Obi3C(vA6& zHf(IoI^7xjn!e*j05dW03?ko^kX5`$^*Z&bPMWG%B|8+##4bvR5QweWRzN7{Dm~uN{8XVjfHo6eP71+vI(D5b=QCF(8C_^#J$%!`^d0w-#)p{>3fen`679u z`Ldp6N&T36__XBUyb1N9tMldj~%}hU5p&?_||}N(?Vz6wm)Aj)EdO- z<8Da%vkylaqvz)=Zj*^FC|L!%pfa}DfqBJF+19=1=oq{9MF>ao6jAV$@#;n1aLr1* z%|W0O*CfQF1qXq}iE?o6jvQkcoJEIj=ool>w$6yYW^9PUxf=yZ7dG zcjY8`stihdBBFRfvK&6be18N)YmEeLyUh1K?`cmE5gGRF+b1F-zj>)YaxS_jF$h57 zFP+G@B7+wxqNDhQD-MNHCFUL;-zH+xVn~yHh zx?tzKij)x5!N0vXX!d@gXPvaM*W~?fTx7x!jxds})7cALp*P_J3rl%TZYasVmP+d+9CKXhjaS$lvB31_03cCQ!k4a&y-up@}Mk`%1 zrO#x-3#l_&B=ct{7uk4`?|oLpCtNk1SSv${RY^rcrDHMzL*bH?#CIO>07E&Inqiu7 z=EjRCM&!9yzIkDF_;lh?3yy)Qs5lu8`-H_UdG0o4G)7>RNnw?0cfETS15;A8<|GNI;n0)#y*L?)`g|!^i5H2*gr;f5=@-9m+fY#QBaz_SVtGvs z2dYw|)sSZ&2c%7bZifzutx_Q!d|{gAEoFTE#^`$lzGz_8i_wCq3x+W52w^37Ck|5y z?Bz&d)qGBbz%>GT1q>nS4aSisDORDn?cb`+?&(_~-e?9lQSM z(vJz7JRXN^D+YVLuHQPa#5#1u()DZYW)lvp6GKblr6Mv7MV0lV7m4({cseXp0$KH5 zi%bN2ke!DRC@gi^ZDI(z#(;DcmD4-BkTRH;>@ry#F3FHz;_L5N0Xup9BX>RF1>wu6 ztgCBeXvPMp(A_P}pc-`c8g~WK*~a(y)>;RGy|&!Jb0NVfz-~#<1c5Rd;kCC0l=T2n zG$lI#7@oGyzz`u4G*KJn_1>Xrl7h-YN)okI$u2^scO5NQJruPlgI$2G+JWnif6uL7 zvT^6zzbzH@4;(mp*6WXN{s?yENyX?HXY9G_2@WtB9_v}jhuuC^L6WYWt(85d5&?{Q zpVqhT`VC%x@A-wrX10CnGAfz>#%n0d|Q9V5xZAwbs)`L5KXcVOBo)+_q7bf zr9OAt9*WMx`Ct63%`59AdFz0x8ZTgrU6-SPDFYH|27tSck;xQ;9@+w@*>)Nn-5s|d zaqd|KC|)6f(YIYWwk!_*Dw5qD8wh&lLWZsm`Jb9&-yHnlV;9VJ6{+wC47gcGWVOA` zYDj^^7(ZJU{1&?37O0{cBCHB8d@)2d*b%gBQ%i@_;UXH}lSs*IjEgVXM!11>LRx>o zLXi@=c)fE7xE|MUbr7B$C{>Q$_fF5)yyZa2nbeWI{jxI z+?|Cnh^$UhVqp#plkTm@Iz!C0ghMhNttM;iT-JI1way(A=E&**khR`FCF)_V!{@|x z4~>aI)4?cW>STzE#&5`M@}>J?*=-5;qL1#Cxa%6{U7lGng9B?P?n;|*kx_EqGtz|{ zfnvxIl1cR&s7>)t)y`mXLiLzZ@5ym4M8OKQNbhjMX3Lx>6oH_*3_N(%$QTofeB?JB5q;|lzk-5+s% zcHV>(r*wRHW37XOm$gXUNzgS4w-`tkL*xR%@c*%iX&^jmb><>da{!R*r`-V*e@5*b zSy$jABc1mdYl213brL)-lHVt7xriy&PKUyR%!f2zXjM$(G1*24CJZ7MWR=WGBGY^- zX$aUd$&^rQIEZ*H@=0(NX?bXlrG&~Ep%569#-gi2gg^@2vh$)^W)IOs%y{ZjxhTRg z6whCSfvHNB`$uJMyg;jx!8WWvUf5!Sx*KB}&G-Jv(;l<9_gK_LM4okFd+-t0GtrNv zhmYDC>=*YHEDgy*ok>5LC=gk}y1>XZMm@AOm^7<|G(B#)tmx{y&qtnLq!YT~#D;VBvUJWLPNlcE#s@lVWoF?^$IhG#ko!Py|7zx2C1>gJg;`jg49pQ zKwWlx=zuuU!Nmd~O~Po11yUr7;V1#XJIxX!k}$B&-0(v=mKx88>&SQz!%&_w68QM=q; z@%PonU^)@F-8+9easGOCyQ>DFPKMs@D=ui>@idpLO;~(qO=`W0&WjEmyhG$28!A)! zA|xWQfxd=15re9eYB%n#TsaRr!3iWU6Fu2ucZ!2MELJVNfH^U|N|~OFYKYjfzz{C3 zyVc_90J0Tt6erdJF-EQtA9=|;2kf>Z%SZH@V zM`#Il6?pL~7d%4wjOVvCVL{+0ZgTxM4L^R*7t^Bt_KT0-@ZBeN-41<2gwe-3+in`l zK<@9Y4qX+t(wHc(0J~t<5(l9M>o=dUu_e$_@uTUyww}TioeDJ+mY#yPN0}5TG_1S9 zb6ovQYD8QQ+QA`V>Z)7rs>`}N@4pDp2IKK9(;Y{3=RALA2F5BPv4zo^H^ID8hs2Re zS@8b&{xvBc<;seqPeB7lw)0@;8@tTbfC?G@n>W(616?i-Ut8<=e8)j4z%U83whTF- zpSp)hR0`t8qHN1S@_2z@-TdPDO^RKyOCDT0#`ndd7>aa)G)R2i0@_H=ui3XI6=bUy z2sIuy?(AG^=Kl+!z)C3O3%__6svo=KEnc$gZg+SSE$Sb+^zh!-AK!idu1d2vROTv;2A{cUUw2Ad5c|Cw#oyxlL##CKr}y&kxm?6w@Sdi~4~B2QU1S!+RgG7?w)MuSGf-DpLGqg{{7qNjTIpg;9gxadBMP z2}t!_Pu(>_XEE=zb8+$x+!l9O?j6Be+J!8-=7_p}EvSWYa1NS`@&hKqo?P z78o4PJr6(yw)Kj_BH~yW#Y7%pgSgX(s>foJi^@yojGOel+YF&Oc)1|%Pajt++lEpy z8ML99Cdfo$2&0skxrnuc=*pEu<~iZnn^a#L=?9REzAz@@dhF1n?*GWW*SXdaTGYSc z%6pIe>VNvVF1o>dPr8B7YlwhK5{<7A*>prB(&^4uN!QV9CVJPb>aNF>Cap?E=3j2> z;OV~lwPUB-n=kkZaSt0fcTK*$zZ*!esZGo-f{-RQX#Da)o7Gz+gv>&etJ=iVG8|fys!X*N< zzo^pGNcHnw99~XG$8R7F<9uv z*?M|3(h?5R2y05j2R*j;kDmObcxWo>A|fxn;NeTy!8wWgl@o!`# zNJlWl?vL0pmETLBhRD{Bu8t;ER1-h1Jw^)-lzZK^^f#%c;0vKFMp`89KD^bGqs3#i z4r@kOHy#J3o#1B;`VvM{lpak}2x~?v?Xe7z(bNs;kc9EWL~BVTC#(x!UW^ocnMPV_ z!_J$)C+M$&4u^{(J)h?S>V)=~IMx`tA=TSGB?xu8_B5o8p6p;OB~o)+(NErk;ARwD zdG0`qkBZl>e>BSqI}!!%xb|2%l0{h#6ix>UfFl$WF0c*OGOo=yJSGH=X+U9Yq!sF^ zPYV^bCPbaQ{+_-gk1>tygiJWdi4AlI1M9TtqqbYY#O?@1NVOu<0PhKC&`rmR@QDvD*~^mlz>-~uWH5)9{vjRoD(yyocleEW+x?)5#dpDgO1IB;b1^+z`E zw@z?`t)P;fO1|h+Je=~>a9QgFtEkGD^}9$N#>>S65hbvUXgogXiq z^UdBrCxckU+TmP}fd1u1<^$<@;QZSn_+%omMU=-a3S8W&E`V{>rQZxp%{tUO?tI1I z3VH3Z1CMYDZ0DQj-#Or4rOWea$HNE}EousS!X)}*MWl{G6Wik!8m+!~XAG^y_H*ay{ zf1fPs#||F&^a~E`eY9)`W=Id>AcM5zLo(5+vSFt#T=QCpcWcY5G5%h|&n>6}%H$|Agu#h(oV zFLWN>Gki`7ie-dLz~B$BGzugX3+H6taTRjjaWr7=#`? zgi>gw5K4eJV%Lhn(4!}b)LlUnh~Lu+!L-nMD;Yu-%-YFg1x|hZeS_yJK^~szmuT%< zB>E@@BE=V9D-LP#_v0|tD!h?m_;fk^9%+kVs5?GBJkGdtFd{<3_r)qqHts6O@mt3o zJMatlf7sq@f9;9MqJHfw?>+If&$fr35Iy}19g0%-K0USWx2Q5FhN7!{+Do9v8l86$ z9qD>>!S0Y#JE=s%>4*`sa_=|?PIRG0hPpNZVND6coCvCnG>HaKg_EId!osy9XwtyT z*X5tq+v$+cR~)voAvroVjx!3<^*avL0g5rC?Ik#%)gc91-fF+!#e@O~-kA|kIl|JW@)bz*kI zDL?Zm+Mt6N#ALNENKfvr6BxBm_?5GvE>anNf?8=EuNv)8IDKLr(c4`JM!onL3=@T# zLI9o4ecYWhua(a0bbunns~^6@d+eRpJ9hRyjGg#4zTQA7nWX$mYtZ+xk$BEpl}s_Uhu*mVHvz&0t=>a=v8aM zTy);cx)AP;1q6r---pokv#g~Ax$UxVF^)WoWEeRb0edfz+z{>B}@lRMlTukMqd1RYhGo1Hr-pCl?&1tTgYh zzo)pAQ{b*kX9(=RW;|erFTZdx#EoR+3!q)C1t_C+j={mCKspgq`5Lj(HLrHR3WSF# zleSgoLISQXQUy&t?tWtED8eI+5AcvisnC_FEwOj$@Y+$JGX_v-?j~7)L-9SA8~{-Q ztA$v^dbLG}Op-=8^a48#EVhcGqE;;*${+QKmt zW}DgnMmt&svep9clo`j71CO}RqxRn5>-Vo!)USW$p8Ze#5C4Vcx+xPKxO9}2+EIh9 z8cg;qTyb}R@J^3PH>E&b<#>qEXEFghE!Jlf9js1t!He&1;+D6Gp(N?*g;*M|vJe&q zmkA6Z$*|bT0Cw(Me&h=-ytnPocw55CBatEmkBAd^BMy%det}M&dB2EAS4~@XQLXMK zjOb937zqZZ8mM&^xBo2+_#*6aG8juO9{8jXtk`Ri11p9C>eSf1D|*oY4YH^-wFV?7 zDkCaNBjjV*Tc$}4cxd6n?m?ZZ#GBngz3EzaCa5+o^gp0E-&@}e#x^4jxH-1^fehwDwj9X)#C z+BC)qC}fHozt(V5IzbFl<>Rsf<}qJQGh783P4VQXXqZ#4y9YOEXmoS}KI)xgC$D=^ zcg?5ifgZXGCc|HJ2=>QJov7E zc1lJ4gZq!1^^QXucV6X;D-yJ%+Zs8KtxsK44=j)}v~?91UE1@qP8++tl=?%4sRbv7c4F=zO3^$( zW!wMQ`7s_l^DT)*m*MHmTV_;XLf0J&T7&MqX;rFv$IY@QsB+~r#%KjRp2OCmVtT!B zq2EiQUt(ts9DRo!Q?mArQG6))s^KU{e(-kB*!bS>_@`4U>cjGG%w$a} zqpbORS%DX`VC!`{^+_Ldt&E9vJMXnrw4L>oLhpS=tM@wZ3HFP0STgAQBI~>t4Lo9? zOP%sdNzj+pi;H>=iAi&q(1;F_Rn_Tz3)D&G`%}Wa34}c*P;>kok(j+AfC6^Va(6=# zgNlDgq|bT9-BVU+WR+k(r&N{(M!}6KN6KT@qN10vY~ph!K~Kv=#zwl?#cQ2oSFRkx zW*t&DF0NP9nYRp~L#CaK*W;D(>?0oD@rrRWgK+3XoXiGVhhmx8N5>96?uQ?~=Xz&f za!N)0dS~vr{{DNym^0UfJ!;_F;%GEyVl^(JA*Awd8n+-u!|Y2pM=kG?!j2!%7w27tAL zmdK+(NO_DP(kJnpXb_7v&;b+;(ZeHi1Gk#j3#K5eu=myc0;6 zHiH^G7e=3l?mFhK!WtSB`SE#M=C{XnnuFRGH4m{P){s!df~4meUXkFSIKnmL^&2u- zBwX}FXy8elr)Ueb>{dfGa0j!cd|qUlI>&Sq7d&hg7{t=Bb4T?k3Cv(VGevponHTQB zToF`p3JC>~rGeH0Rw;0V=Zl9c>8g##!67rG&=-;Z2^Sf5PMUP)2;m&4k_$|YF*kT{?WP(%D& zC1oqTzUEMvLvtD-l*MpzkT4uw{5^(Zz@MW}ddHW(ynf|_dF>3&%Yc_~=%+q+RJ0}} z{YC(C5CsV?8*)luSO^irknOw(hXoifomtfu)v6ONxq$r|C2u~PZF1zHyBbbJUQA5KbIH{7yj;xu4}&RZjE?`EdKMk(5SZvF-*E5!g1bm zaKlsph;2W=1^r4ov=uSUt+f(2cM(2 z$)dxahaqWOzHSNrEh+X*mK5VLUXff(ix>*&lwrGX!B0JD0-$abj6X#CS)g5F5lGew zSS058vlKsn@jHM}ku19QIryYRe0_{XL#IQjUF`xJkK2FR{dRm;l2?mX>L5nx#S_uu z`Xvu8TZAV7MriSI~$hUm^Ou8#CVTMj7~kJThc<~6Ao zB{pOp@8813*g)I_lQSo=ck{6&X`8Qm>iuQnHd)j~L|*cl6L-GwdAnOy+e(ZwNWH>WgSOcZP^T79f4h>HUseA^$mz|mkcx)Dm;n4Lr zCxhg5qVBxDhj3v%@l9X*&f%Q9Kj(`o>L1#F^vr)cv~j00bi_al37wjRpbFslVt7M5 zPGUes%e?EvCH9QfCPSvi2Wbh9pIHCm-`1uvdIovK3yKh*?u5NI=-4F)V`RBYLnww? z2BYvQyhZ^C1ZNmd2Bf9o$;OM)K;SgRs?lk07;@vHzfDp-jW3GsRo4a%ZJb)&E z$x0ER=LuZ$RWJpPVF3n~eJE=F>U%IUcopkgIL{Vbm+EXMKsO;|MEEA&9SWSzZX@mhEu}U>3f+TW0&OVf6%J#!mjvajbeIL5#de^-4iz@2ZyULzR zpY`$igAX@56T9yo-&YU<5Z?V2D_!SB+B)0nN&8sueKHrLY?&D1?senMRDDNGFXH#gbYi z+&i7x1V|nFI*GwT&U=Ja;zgh^MH+D9B@2eAnl$3)TJgv-goM3ny3hy&a0ArRJXTCWxba=s z$zUF7f;OaffvHdBMbWW=l{ge-{wF|7i&nHaR5T$x=O*2Fy21$; zo=WfDUw?A~C3x+^`Q%@c>YTbR#$mREA$90T$Dwu@5+dil1Z80OiSo~Ydo8H=_ffD2 zQvEofHnjc~7?KPBeCk}dnmAlUT7!8>poBK`tZ(_fT-YY~=n=2gk0cE{!?30~Q6)kr z>Y=DLskFFMV67HRnp_XR8=WV?7p6tSF&s*UPGAmd(h?9&{AUvML1BSuJ&u^={q(}l7KT9pVuRx2m64HQpuR?qrVM8Du&e$meVbLgx zD1%QN$~jOE1;U)A^6MLkzZ2n}@IvJEX=oYY8VKk}m~@lA9}MgSC~Z){O;Ky;w+QdJ zOF(#hp4O)-GO^O4D`MwAK`-}w*q$4nec@$N)NgpzJs1AohucGs&h<)D5phZ)+DhbF zTjBJ$txEOAhj-rcwix-u9`Q`668!RoMTkObr){1GdsANPOx+oGCaqN{1j8xP0F&%2 z3mLkSMjFf?tmx$G@u*;-i*SYu`>>Gykmr#2qn-=vxU~m zlB6Uffc2=`Az|K(7%{>kUI&R7DxItnFs-QNVJn7IB)VbC%orB*oJ_>X?tw92qHlbp zcs1{YZ>yBh4H`}k{_TmbDQP=#_#QWZ*2X<=`G(81sLPRqAAQ;9_x!ZD%*ytfbav{b zpnC0gldrW99}mKD7NW9r@`diDAu00>X}J&^V)rX%1gx{|+2uM4jevc^><1Kf?Iog) zJbyCPir@dnZ3yuG%C@VxTbXd>OjOiPW@^k4HLcbJrgdPb;ky%|7}1K4Bc;_~Mv;cF z;6>vxic#_$2?zM&dlD=X92<)k@qGwoU=e5@B1(E;%4MJ^HJ+~6y*haupdGgUjE2$` z8yQSCl>Y-n;>ZNT^<&H%Nhe|y#RLa2Dr1upAIIhvQ7;goD@-rKp(ik@*7;HajbZP>Y17Y{&!rcwAbB}{nq+%9Z1E3Hp*!8COi-c>i_YW`n^s@qR zQ2hKj34X~lishGG=aPqI5h5v22pQtVqBREyCpkYV{}X*munSM0AFsUi;_m{3Kf<-n zT=YgRDr{Gw)w{igFNnbKcq)`S4x5_*W*_L53IpePQ~-N5GHX(N&kJj)!TRG)i218G zk@;6&`D3R&`)B??S@X7jr!FENz39l^e?G8rNAo_F5xrhm#8|;Qr(*1!t4ERUr*SX_ z5Kjp*W^}>0jn_W)a>}}u+U0sD{tt?o$h6qz|8MWT!z{asYw@bxxkn?7azI%q3yB~= zC>S9gAaW8I5C#MWA%h<_$u`OM1KVJJ4=`YxWP;(@1Oo>AdtgM40&If>3IqcpNd##$ zv8QL|?0SE6pVL*V*1jWxq>*&b_wh06zJ2ex=bl@;_FAjfDw16#3sGpX4pwn|zCk$S z5vGGtL8B5w#Tz>E9(KVA%i;5c$=t#FMH>*2Kv0J^i?z_hXO0-RR&je|A`9o9`ts@fo&5P5q^Qqq zS%2v}elq`uT9+Ug@A)BhSsvy+Kx&p2GV;`i7JGsU-4Kzy8oJn?0PI}n1b!r1SLAC# z$VGL&E=>=Ynjr^)#i_kzbzVM}_2ULaWC%G%*u zEyA^)q%RO8Vaw9T+Qs)ckmIGjK=|o+sc~1uhLF6eSnz%^j_0d;k43;ci|o=0A;J}Q zKx{Wu$s}z+9k#=6Zn)pjqs2`tdg83J5Y`hq{HiOtf!-G-bnzBRP5~I8Iu92N_o!th zvd%x=AhNH@i1<5eJ5lzd)cxDXcBa;GkYR1IAoZt*pD;EAMlpBK}_kCZ4%BUGd2>Dl!6Hd;X=!b7#G2MVfv zj7u4FT2ChPjF5x@pJukR>@!r@J$VdW^79AJ7a6?+WA_pxerXs>gE&`0oQse^5|C4( ztdv>#7RjGy@P(l!R;b>v(H%T?wTT1-sh|jVd=%pYME-a9S}B!;*v|^cAyd>F$_R~1 z3&ps_FcxCugqR167>OG6*g2k~El1WV4>d7%U5Ue`Fv2-rv#rPMchTyXpZ9n2OB}yc zQ5O+eyMEK=PhUH8e>Its3L0N@HxxeJ?uR#uYO6jzbP*Yf3S_Ll<;YtpL6eXN)9VQi7hs?h8 z@cK%~S|JHL(&)@Zq#fMAwEYqZMsw$nrdwfB78j4o)hvQj&!~?V2b~BH!e+aQ(D8bL zQS$Zjg&v_5CA*K-=Z3kZfjF*^?nET90rn&Ck=Okr!LCddHkf@$oXYI|Q7TC4SVt;= zA6JcoO-$($WPcDuAq_PP^+h3&WU?V3ffMZfYr~qL@JI0O{!oQqkPa77v>Nd{fvAf&vk#xu3c|4MU3n_gFnn8l&O}({P(p4EVrjMp{--#Z=~(;{G;u*D_-I z)y2Uf5h?<^6aiB+d``_UjS+LLingWw>no@w2rNQeLV2C`Em8al^OX`;)mRtI4Edgcx=?6}tBp)KIhZkhwo%I*ou6V(PfMJn70N zF$K<91&BL~ArOqLWiEv+O*m?*y)@7-Kw1e|O1gIQ0Ui~824u4UF-WII{bVbFr3?vH zv{fdS4=DFcGC=n|8M@!LUc1*A3h+1ucy$AwJzTs~D#3@8_CD07$6z;VwAD zCb)~Mgb>A8w^j$6B!Lw=+Y(`bYAfCR5Mn`mR)z`AzW9M6q~cVmM%!h7ev0815Zfk> zc&(@gA>ke3_#Hm>v$O_@(=p-4Soy84*{-DRr z9e40GH%d`IZtuBk{_)$}9=?A2#C}PWzJrc8K{K{vXl7Ig#w3$0-maB<%H)VBi3`LY zQ%%VAi}a%j_STRpN(1NB?7xB&tc9FkpnDqr>_Vi2OkT+pK)%!Uq^Ku8Q&-*>+QQ@U zLig;5$tK|lad$hs7oF3i$PQu=4cr`I0YkFYEXx~&6$sK8z#_gC2nrW+^s78i3mhWUojXOcJ=CJSlHV zFnG9UO4f%YMNf+?-r;8{OWrTTj!5!OOrWzjVO~kg*t+j{I*o*=x$bZ1e4Wor-&uC< zvHeBpz;E5VE-LET75rVie3D#5-_a-cLCLnc;?B_sIa@W#C9!Y@$Hw9o3E?5r6$t0f zh-4C#F$$eDw1X9bMSNI>$IokqRaPJ{zxxO<+QR0i-Qxu_XC8O)jat;tJaFdXmwnxy zT}@}zkzFVOQ_?ju0RLZzyC@<4>&dnN28{4Ii*j7t|GPl9%shKA4idQo>fNur2~*+8O0CaI z9S*MK9`-|EMY5s>&CHm|8OkFACe6n4rSh<7#L|Vq9Vm%h{<}_y%+4<|HOe4cLMan{Cvxv-&i+w+Kyy}%nE>!geqLoV8lkCqjHNyCGi zke29KuEyOQsiK5f8EC_MokpcOj9JORl;L{-&kj_jSVP^SjrZXPoWl2@3Y~-vun107 z0*_FX!&qs7F=FK~;$G5*lo7q$NA28#2N3fLYAkp@DBKT~F$Yu6l|-c$bj4kbDwRNn zR#&J?E>^h3$BE49R5v0ypqe=@*2cnn9q)x4acCr(phr z&`f}gD*taChd4qmrQ&^jh~)JjFpKHjSyo)leE^ z{EZm94l_{2k%Mmg70j$O>%0BJV+!$imNQU8%$yKIE$81-Aq^_<2~~0&o|0V%7>hA^ zXJtDQTlxGjpd-v9tiU{GvUuIAA9nVtL-yT%lN9ws_FT373qRg^^!GMSo|wEZM#&V( zgsGQz6>ZBEnZ2(vqcGvVBs73x1fj}gYV2=4fmUR+&kB0cco|@jM#_ly1sqV*&eynP zQUIO=Qox=bZdNwSoMq@Xm3Im+JE{UB+~;rCw49rxqyKnNopG0SQMNXA4X!^S{Ce(x-Q>L_$@b^ z46TjveFFJZYZI_Iv{Rg4i}zi@>r*=k-Y)&)tj5P#b&w%;{osva?p*z6;-A}`pHA@Q z0of!*>jimgbwwO^J!F@FvQ)ogFvv9Rze>e&zz8mCs7!*5dKzkL22%T-K+S}8t@iDT#Utrk%gC=FvowTla z+Tgt&CAGxC(Ra)~=$UrG;!=8C0rA~BM!1FPNMOv-6%iIcinE8oDI?RFmeh~YMG-9p z2pLLu8xoVr)hz;D&Ex(d%tG_|hn;|t&i%Se$C_8 zF6ts8y14OsAO7*|qqLVdlCGM;05$?TQE9~FLC04KX=>!}7>QX(9%oWO5E5}zIEaz= zn||lEjLdh0O}~22ekI?Z;4#uTZ${!`fVP)38aO~oBLPWU3LkC!P6?a@0To4w_m4?V zw?ZDka?lAIo??DNRPEH@Q~Kg;6>?IcJ_Qbhk+??C6~Bw>Ed)FUTa^?w_m z;**6m=Oy72Nw%miCCFjbRbsv-20a9S7=n|dq9c6A!5@X%RWnJT5RVtlrePr^ z$p|cj=TAa7un<=zzVi|_<`vqh%FdY?g;}0XCH_6#0c*Z9_x2|~SAGM>Z=|S;h-}!n zY2Bx;p1FT9nH1Tv-D!)ctk&3a69oirkxj^!SHXWpLD3*N_mg?kSOZQO{KZ@E(N7%K z#sY-O9q^S8D3-{e&1-=EhnPtCrAqp5IOclQDg`D>Qk%3tl?p#rJsTI=5rQ!7*!WKZ--xnAq z12i7?NK=w#Rfr#akS{uK^D2bogvC(EV=$u6e?We; zKbUwCvY7hiNL1WZUEK5sr$1-r?nhs;Qx)~QA3Sr(Yrj^{U)-*{vRE{A3V@JFN~C&B z+Be|fY^twx ztrc7rD|G3y@)$qWIb6>QKeuRoTmZ@_m|o=0rwCkMHyK)LwCct0bm(d&LPLev1RF{d zaXJ`eokDhjN}~E&2~S$1WL1o~c6v`4iIxq6Jks(G$9L?(XJi-wmPpi9Hz8Wh5v9w; zu8&ab+*DWB2+pXP2oLwHu&$QCKD=W|0IT%PK5~kJP(5QL*ky zDrgv7vit#h&Y_3D(6%5frYg*JF-__&pI2QoclGSQU2vZKhK}D@Q5O-}v~lA#pS^nK zY!R8Fax&rGE7p)1mQm0Oe1M~5Y;Nt2gqiTb3u(z58&jkL;S!_Hg+dnn4#KiB!*_g! zyj7zEHQ{lAc&(~reL7A|nnlm^MC!U1W~6bEtbR$DyK(=OLUufOU-(H|1#Fvnzo2i7 zXx`nF247&pokj&B0|OZk)&VFJEof1IN}F)qjf5;H;M(Z0=(XE$<5X8*aZ8p+PbU+s zq;oX@xB}J>noxw0S{S)D7K4PrgG@7pQ^*QI%6^5GzxX~95v@_OSS=E<20Ne>DxzNA zxUk`wr#^G$%wsOzDU14yr(Ya73>jJ%Zm8qy$c1-fzH*$)FcUUFAsR~npJE!y^) zFEGk23JSr6sW+};g-AdZ>hms2!c5e~^5G7sq)5MRuT?*s z`_NOLB)`GqH(Jz1M7Az$`st^xnt7m_OroDU^EYq$mka3_e@T2)gt+Dbc4{&r5WCS~ zqdOt%#)Zh}k`D+h=7q@Mu*(+9I|2-hNNOIEB$ZSiDkFwRMhqCa=bMl$bKFsUpO^N9 z&rLJAsoLgOig3FCd_1!rP}V@~;4}4qUxDp(~L->I5|g_NA5kb5Q&fYk`j4unq+ z*Mwmu<2X3t)`^5A-7UtmF}-1h$5~^D3OjZ|64t;w#oEsiU=N7z3o=VT4cd@qBEDWB z&JKe!5WBDFN@*e{iyQyw^ry|7apYw?bx}X#keN$g|JCkso41xdTd6KQmBeHbos`oVG9t0N}#0S8r6m=8(t6Lvk7XvNQ;ez_Iv?KzBrA}TP>5E)syNl z&}70@T&y6K>K3oMVy!?^@4d>x#2_w?Ry>TmUK&B90>`AKu@25 z`?FkIAyIXN5G#$?LtzW#4&!Sg-9 zON0v$=*~Nm8pSp&3C^;`jn6y%{F&2^xZ-9})K5EP=8Csm(miIw*0MM2xEN%@taL|( zW#D#~k*zr3;t4M{rOGA|ZAb8q-`9`%LqK>r^ED+=7q*0`W6!3nbQZ}V2gmfj& zkd>?|{xwv%ZSIfbVNr9mu10r*ffcD-j+a>$ObnbaON9Oj*t#0K8td(@xo~(4_tN)qS6(x*l z4$Rg%qDv+ncIcF~?ft^+lXtj~BFQRkTVBP8Jmc`2_kr<)M(6`Ie16@^bsYSBTufm2 zZq$``p}l6@%L_YOAt9^#{qQ*NsX`=y-u|`&(o$4pdu@1^_}~Xez*fz8H4_Yk5qcmP z10+)&^dgby6_6fw%OTYMyu5|6IW3bXMmvb4^XJhS3Dt zo^sf?Z&pS9ltX5}{mx6bKj4~$a^NUQ;`MUZYmiK`0|_G|S#1Y0!%@;V7GliE$CgE` z-)tGje!_UCznQNjN~bU zPng~eCnc-pcsoX9rk{DNy~g*1k}LF&PrC&J7)7EdOzVH@RXerO4&ZKub?ufUliQEn z<3H!${+K_K8|b*@^lSk9nsMXm!_G z`E_B$s%nH)jD&;GZW&0&0Dm=xh}Z~zE0_d7GG;#l{`Jw5z16uAb1#}21ckVVOa?Ve;aYPc zGEIR9xu9l2oE>*9L=l6M$?zt_c`vSe^}X&pcl>RBakDJy$L~M)i!XeC@#ycbn>?|( z?Ikcv8KG}y$wxNAc*~$5)W$;6@?J6HL>MErsCSD<&bpM9Xf&2I+RTlU86SQ2j(N$>LS!Wm1V$5Xn7+UBdrs40~?EAf#DOR?MWxVg4r#WL8Kk z(x_(XDp8iW1qFjP@OyxP+98PuDpLh7m%%qjoPSQsd`zGF>)>~;{;LPPL2kg~ z1}*9$B1g=w{kL~qKK~3eosk`oSjGy0@HG1!nKl)F?cwj!@7xWFu!zUr3+Wh>nxv)d z0coG#Sq9$_*kM*6FpH9iKH=#=;b%mf9-K4Xz)Sx(6PiOE{3L1WysOiwqvEEnboeUS z6;(h@Q><-stePB1GTA9Rn0;u#d~6|N@CTbK5KtY7hi)pFBK8f2!fr=bhLaS2H>j=< z73gYwM}xdkqi@VWfC9ORN*F{+9MFQmT*hie_=1tGmaTEkhXs(=A2jI| z;3QqS;FX-eg0#_?zYQck1+o~GIxFwNCd>MDZ@%AY^9Su!Z`MWqpuJYrpIo!K{O8rv zr)ymzO~u-hMY$ebw6z=$B||0*!eP^<283I&(VaMwo8D){$I2lw)XyQH+|fvwhICPN z5j=G?P9I7IBGQp=g0I!(-9d*#Il2_Frb-siN^tACgtLe1T35RAA(-63HU(^UkrWl> zFC4mnxvoht|N9F9cN7SMx__)D~x`@dAkD31L-(FOoyk)!YCdMZS zM|Dy%;&*7H$^s9hMS`|MEXdzC)f1IS*lH#>ahkNC{FR)SL1)WgfJ$HijC>PN$#`5U z3>Cro7Dz3U<(U%ENSsQ;x5fL}1X5KYzK?vyr2+Lc<$?&akSIMi@!3+zj3TbpIDyLu z^U&Sbcy0>!PcpB=`?R|75du*SuiRBqVEtAS#_*9lH6Vgg#GU5Vs4tW$OoKVJp)3;A zFX#jB;T;7YA?zYNR*pEmx)>@QO`;mX%8kezQN2T_WS1Uacc1;q%qO4taJdnV8>Og= zi0IZ0-~HJ4XC7u`APKQ!V|aNTF)Y;Zg~4zKY51?yPUs}(5U~awoF^y;XhBvw=AZ!w zub~0kcmM4>I|HKE*!g#{J7+P1>QrFq+B%2Kx*VBT$l#Ug%6C>B7F=KHA zycl8)MN+I==&mI~6s0kcWK6c`T_ADTtfgQg7`R*y?-%LFjNG%B=+g0LO1CET1`ZUJy1=*jHSU9pBmxi>iCAS+O z6yXKOj1LE?YnuFH6R}(QG-gtBkYMlNH4Y)!iEz|BG~{6z1>cxL0>qQIjB*`%E3!^T z5T&EAc7HFXLA1)d_EB6*AcbrG?9tF`6y85rHqcI8mweaJ@lb`3l)`Oct>!_YK!#R6 zND{Q@%=4Yd9?`niFANx^R~y~BSzOWs(+}^>%aWM43@Tc}-!cxth`L54xw)Ci)?@a# zX#VZz{IT3f$BkChMMMsrTX*5RE}OkTOs5bhq@8y|k{CK5kOT(5l?tBPlKo)>{%*jq z-KacE9zuT^mWC9Hv^6kz$%~1&FEO6KmnSp7oP^UiQjL0rTe3$`f?o^hu7UXU0ntd( z76W1xJ!K?!-0H)o(HzTvemZ*U*hUohQQj}=u2HeJoRJ!N!97w~eyL=GF|EYt3w8yC zzO2A0)gL@8|6#)3O$L@o>q~xTb0J}guod`GRGRvd+-ZR~- z;dgG1gTU+QgQJ~fQb5&$24E?Bb?HlLstfDibk8&Aj@)PcEwZQ|x!>ISAO3vv#MiE# zK2<~}hq;2<9^k+t8L)0x!Hbi9jp}rj=xv9T`MUDo_=UF$ooyF8U}e*h(jb4`>-X~` z1t0=r?up(K0Ipxa)ZO1y2rUtaRqN%8sRJbgJyP;$zc}I+?GB0(A03UbmG?^-6^)1b z?SWh#5l*2aV&tU8=kb=zsFY%hbZPB?D(S{Cj6=xvXP)cI;lyn`=WSK z3A0W`NFHlL!j|$#9gd%4+B0b^Sj-J_TO|)gVFY0Rp~Lfb2dw(`%*P-52)U7u8@;HD zi0nPN?(_e8`P_LTGN~0NEE~fo2KKW!q+<|KrXUR)$j#+$fAC-F8iW}5wA2p#Te=k@ zG7P6dH)d`tk6U|xa~pP}b%n?@cs;8kUANp(x+putD9c93NB@2dq>lx_=TPh_zza3Q z4Xt6N zKOz6q5Abvla8cdrUqg4C?S2R18j_Uy_fb8ej3FEVH{q@#;rGLNFRpv_Y4@EwasR7t z6-E8TgXXTjC-wHcsWXyBs6^#5HIM0<>mI{aTtMz;oUlaeh~ngA{qq&J zOArSmXiV_Y23h7w+OUAB>#`LvX(9>q7`G9KV(8>*Y_y}+biqcZoNMrY3 zEbrh7d0$$=d&C!zwGwVXp!-GaUzZo4s3*(25ua_^ z)ws>8jrZzZCjFpO+GU{CFnYR+h{@uX2Osjr)h|BlEpihaH%U?>yHo`v#hmZ^`7nE2NAemqMV@0_Ce^8M~aPCw>u3N*q1{GdjOwjKvi_i8% zr$jI5>xY(v4CBhaIz9YP^QFpl^KS4x$v6|Z@C zsKRiNFWR*LH=r?;x{@KTevyQ0S9hDadg?2WyO-QV$4yq$MMUOp{Wm`P?b&lgWU3Xn zrcex6XGZf z2aJ-8Ph*oLZU<3(mkK*2C9*~8(g?#%o&zbMTr1L+GA2A5RXmm_V+ZVBB@cB8HxWzz z=0aR9mE6O%!J|mtQQ?4^UwB)?ajnpi=*#R?EiiFfg#)cC;nI=^fr77! zv`x6G!TabtX{Xj1AQ&U2UCN{AvOx%Vu1h2R$uEFTlOEoiEUf>_lOH{Mmjl0ht1Rkw zIehlJpZ(V2aaXRLysf&zUXb)-PGfu<$9U9%u!zq3w#!>;!W&u6^X=>$?ufu zNnn{$B1BGx%i!hkR>sHXP3j?dk{pSmT8ZZ1ICJ+}!i=?j_fzpW7(;Q){ zOl4wV(xpI9dSasQK>ZC|8y31SfEr;JiO=76)m_bmXK#{)mc6}D#RqBN0GnzacnY=H zeZeYx0dc`g6Q<<)AQ8Rv83Dgg z?;)>>0$+VRyv%kV;RG5@mGD?ZDVUsJMGrCZCh`D|Mz~HPj_<8$$j!9 zIZ2`yIHdn(P?-9F$IBpZmmR55PzpsnO(CKp>3BrGW+nhYi1!~E1`wS#CmF|;CCr{@ zcup83Jf8o>n(fWkEkvFG%bRHNboi0q-;(8nruv!rFypYF;q{c|rK}QKI-#C0&Nd+1 zwFYiAdTop(3sGaLAPGyq!}}LVz=9zX)reWF`E61&$`Qwto>PTO_7*}7cYX8Wz5E&+ zXi2F(;ToWyy<6)!-Kit$N7jR2vQ6{OmkRw>`fZsGk5sPvl%GFZ(#X(e?j1u{j0wd; z)&z%O_tM%;zN(I^cgu_tT?uw#?m$h0d@l4P0IXOlf%CBLCCqH~|Hpolo7Sb5R=}r8Q`wg`g${k0zbU z0rcH`q*hz(5savhdkCqE;ak)zMAKCM*PptS{oLB@2f1He9nEwKk`h)B)jSYK_;BA; z0IJG8LD!PPoo-Zi>03x@aRgRISDN8n?yVv`Aw=m?$>_I7AVUkIY>r;prF7bmvAKpL}l-R{#Ef8?or&a5ji9)>WG;FCbpQ?He3x_#MJ}zf}MDuAHzK zF^KIBu`pF$Y39)v?BU&UAj1$wOq-7Ig^eh{tEm`tul0Pd8eOwJS$Ri?NbOK_;}ank z^&{OQliQ+sE)19-Z(=x9k|-BZ+7b4Aef9{BC%{+uu!uKj$|?e`Crh03Ot>fAG}Ldd z=MdYKMV@#i3Q${6B*+NrO$zJmZ=Jm^^q8VwEf|qdC7HX0nPk2i`ve2cd=C=Dc@r8y zHjD4z18d{~kj)FHUoM}B@IiTp$T2d`h@#8c&;ROph(Y7t=O(FkU9%_)iiGMfz1C~0 z@)!PP>(%?$4()n&3XT6@f4h13Lb-;$Dkf!&7bJZ(oTplG3g|@=E1-vSW{LCMszs9H zh4CbH*&t4^8j*P)?oRzQTD-)8RGJ}2%h4y;Lg@L9EtO_7pqMJ7VTMUVx@H3v#NTf$ z%?Oxp72-fLEZ@^c;dOGG0XlQp=qhQ*M4{TY@dwoyVkl?nWJ$>Tv*KAphW1edNq<7X zzp?V4*PWtHAJTUxzzX5}9d@H)nT8v|6tu-5oWW0>I+LoHIi6a1`FMQTKK{u$GX*JX ze5vV#fX|Lz?WctM#=&4i$78~STccb*n;ZqJ*wjCqT=A@0_}6Tpf=a-MnrpDfIWJ=1 zwHs#&3bh{6n@K`erC3sSwMRQ9kCpZaGewzAmN_9G{6S>6C=PL~1yOs8$9EE^v;Jzi zhHJ@>U?xTLyn)oS=7}2#Tg+&3LTtDW$SCDBb#_$9*#R+3HDCHB%_OM;`Eq=}+!eTN zpzaDE;|R>aMZGi7xUTZP)gwZ^DRe+?H1;~AoBxI_Sb9!Io4R#CJv53wK(B(r)>~P! z*$uW?Q_)zCHPMf$7W`xzUv?sSeWOt%?d4@aDLMOUiSECcO}&@?WB23R;@Pvg{L`Nk zZlvxcv644yWEjN;zNg;lUkSutF=nyQrCmSt$SexThGrDBrBm>I2a8q?-m_Rr&=?<8C4)6t$`XofDib+oYdo-n z6Th!ac}_Oi2%j?nEiTrHu5=^@rrR5W&4FABI{XT^KSwAcl9I+{K3O5}WrDyxBL@?y z6G6c$lo3AI>6 zX9y|h=jC{yM8>0YIop$oKhk)}yyjaC9)4K*ute>KLk_zr7a1QXe#`S9798+6YVUNn zE9vU?B;tXMh~UHasBLnzV2*HdfVF# z3FDd1^Dng)oOs!3M!uih4`s)WfC+e^R!RH`znO5=0XB!x?Zy06n!gR<@ui~J54;pa zY-;VAyPeY|3!<4jbByJQ)EIfZ(7A3@VsDG@&Q{TX5wa@}n6v0zH6LsC-l%qO#k!>K~NPx}%xQbNDe%tBid+qW~)yVmPUyg{)ZvXOXvz!;p zV>>_PS1+C$?=fC&YQxFm5PYxE>mw?Xv5zGTziyncBqXEv!!pB~KD^1*;|?1okYP8$ zOQ|kOU%+h*nrD5-Eak8uBkU@TLTA(_m>P={pa&cpX1JtLBV8JVWHfK@5Cm4OQ(0kq zffqkZvZaN=r6t$%iu;LZuA=^s!gR~vhKgbf%7o;+5!Kh;b{?7#UMo~w&mWp6nu!yn zZ#JP z$bMTo{_k6S{xsRKt^IHi@-wQu(5C;a6XY~Bw1{$$vatbt4$=L%v%JoSg>K7xFS4k1 zJk=%2KL}#ec9658H5cSNoYe4Xg)uLExtIb?)BQdKgfSs}wdjVHBRvv@<+IVstWNpG zIp7@-=FzDk{GAbY{OQr|8{nB0^Yin=`JpbXUT?OHjGJ<=&*LBIraH1(9{V&?t&w93Jqm=*bLvBUM3sjBrD>GpuIZL=Mn!@u|{p0 zXRRR{b{ClL;QeCa4@3>^VNqCQHVwe+-i<(w*|*DtQYwN|`E)3?yuOG%Xz>(IKrRm8 z`d5O#@yeM5?hZZUAL*c>f)&nvrHHa9F$lz7=sFJOI8Smp6P zOiY~=ocf*4izOT5D&}p7$S;TJk+KpeAciCSFB?rj&yivkE4(IPxan*ot-V1?LEGV~ z^1279YkWDiuo%^`QbE)xQ1YS|2jjA+>~}!j84?AOhzGv;c8AU8ymhEXLQ?!(7-y&n zfED@9R}|;Rh`8m`qqgV>C1k^?q5HSomRy&b-qI&;wV?dczyak8{3Jy~+%N?tXxRd^ z9-I(V3$V^V>ET$5=Uy|aU6`u34sikPgDjuwh0!za4|2wbfxlG>P!#{k5^Y@Wyohw1 z?=I*%?3C`AJFWeW{8Cjs(4_9mZmxYot*_rp6B)Ep_y<1cfjEviAf}5eIWp8JPfY_o z`OrYaF{R&FEx@BPwVaHRPHKaIqqKpsdf*B+{%l_e46?$rIl3{BDO`Hs^EJOV|8(x* zNPqwwz5{EV&5wNfkZKtlH&!qS&9oHGT@U!}WDbx>gh3!Cm#ZSLxNOiNM@migDA;T6 zBK_@Ak@QCGs6k@<>gvT1#or!L`d$1fN-AM?6l&aNfeQVr*5D^VA}KyQhzt!O+grmV ziJ0RdQlBL%GsmM>UcKjxxi&F#+OhG!wtgtBw|5rI?cSqkoA1Ya)5fEH_~G#svZ}X} zfsN$!2Cz86CZC$E1GBh&%T$+;(U6J+_28`3o;GJPb51ntIE8TF5Lo*wza@2aSZC=o zaDZ@BS8(aA3WHHD*HB%?sHtHg@z~o^8fP6IHcV&wT&lNxnOCB%MS);AVMiX<9 zy6Fgf0$wD8GvkaCR=hqX@e!}lsP8A$ve+&F2TB;}%ObOc0e^ewZv9hYi5=Nvl zE%12CnhulZn4@5_LtD51IaxY{@{{9~OXm zag7kTiG*lGfD1az$6XV8N)yz=V@6N=qj%DT-ICojdT1f+x-hVB?y<)BA9$)=a9qdQ zKYKi`o^q%9q(Kw4T$8EBv@PZHLnc9YH!`OHO5m@}EO-x;m6I@;X=4-$(qz>Bj>a*v zU{aoQDyIKwGqjR{=<;FvhcJ%@kmMlCU<3%67RDo*q5s1E#xB=Ed;tcoq_VTxQ2XV9 zXLy_XpQ_m~n2I4+4x0PNUuZ`-7opOIA`;RmR6&z_)tT18)@w#cuC%=W@*nHHAl@l> zfim_NupXY)e4cG+z%46qRM-98p9&wY8KlW#FTQm@VsyCu6X92pfaOEvi2S7wPg^=M z&+3<-=mZL?@jQL);d}&Eue!LxQi%3owf1#!PQR%)LA{djPAp~Ii8aIKD&@(t% zhpy8pL}yS4y?#Ejxe=jSG#^Y%d7&7&WQ(E>e6vYPj#SIF5_MzTc{3ryGEmoXyZEL&+t-CxerKm{!Qs5GQ zp3XOHDn6hT9;&AwSOHdP?0nzlMl(qR7DTDA!ZB73b~@txbS+58Ns z9TV=ZGIjjYiJM3Wie*_-+$S3Lordm>QWYX+{C;YL91ylqrSp-{Ql70|=eipf{K_*tgY;8?+gZSApyP{4-z_ka8O=9M7YJz5n8P$u`L*i_c%r+J}==A z0P3-I|3Vih)>cJHviSHR;8F8?E*z+fr;Zorr}U{093<`c7C2mA1P1_d9A zqh=p@!+ljqc(Y9)zw!6@>T{e`#K3oOWkuIu3)c?t#Jw_HnBu%bgNu(Jqb08Pyk}MG zey?Std*;4tXa6lTLV8TUd9uPa_qFGf@0PZ{c)KV*JC3tc%s)x&QIcqXkz7ou_JkDyw`HYG(>KE)arS;2DkNMsMtuTwvCj`tf?CLjs|}X?BUxfXu}2x~ zy=-C@Tb>EbE}Hs$(;G27taw_0V(QjP1g+hA6d*<~m~n$#Fc8HUdSD_Ftu2{R&^lh> z4%bE6iF6tSCC=G@KZmOg5XAz=DA?wL&9P4r@FEic%VBBf)V<3PzvwvVEM!U0>2-{v z{W1gY{C^()>6I?LgQR=-ZynH7m*Q!ix`i|$C0c9R`J7O6(HYj3@L)WP_S0bEyS_Q_Og+0r}`Lm4@fxZlPHQz_;xVd>Bwjay+7rt1fU{<+#_?ucHF2x z%wZd(Hg9Zzm6dzsiu26+OuO-TKQ`IyVg-y(=ENE3@kW)X^{CDN)_v^5jd?-l`m7#<7`wgAqx$t^yvJ6MnteFBcJe~(28?*IL9v*hgbOzG5 zc@;7YAoPF$(+|H4onA)G2&VV4m=&98os{m7&KxvcDeE!rd9;PzjYnxCWsG@UxE;L6 z*MBz!Lf3pt=hnb#q`b5hIpGA$QJXlKpX;~ua>%cPg?qo}SUP!KX3Ey$Pq!>AD-yc(fF@YSGzOkuP>w%O}0D zeH~mO+vFV%nuwI!(uO`&{*~yECPV3)BIgEf)p8&VYI3fuGr4IV@fyOo!Hn>ss)?;& z+iUNkS+2u!dmZTC9Lyd`V2Qr0foj^xK(K4(bxA6b&Q^-Hnm{0`djZeKU$`p#nrICq z5?i}&^mQp3~lnW{~gIp`>r;6?qA;J_}4hxatu;JXd?%oJ@ zKo0WO3<_v#QoE_ZFwphkxqwp;k@}sJ=d|7$uGaWdc0d$7LHu_PE8>8RvTKIi52BC$ zq0-CiPCb3cj-Gg(Bgd%!Za6*inY|QLBb@rZwbf3pwH&E}HtzaTma=E^(fp;v4rkkF zj)PxXp3>U(qAte!`F9TWI3U$0MqlDCJS+FLBwcL>$PB;vs4& zsMr-R4~gB7Cw~3pNBb349mP^Y`(^26r~MsMljGn0TM8E=4S2JbQ$6h6##>wSUH$#p z(mUFN1d14IJ`1~;HQyU{4QN`ncCq#T3xn}{9@r!{d}QXno!mkE`K3@>*61H2!A-Yv^LJ+aL{*UxVuTJXzJw1D=)qhG(4@*DBECCiK>ffvq7r#ttj@2)v zpEe}#Nzg|~-~N#4o1-}T8?-j=Ll6`RT;75gV?^RL>;1+hxiYd z?1L@C(T*|{?|Nh}Fz^atc|G{H<-x|}cRm_922LSSmpxj|S9~&6E@470kROr}y2=&~ zfZg5IC5{3riq<@EIubYz4&xZ-MSkt&hUH^`GM-cJP{f9=RlnM^TD5`Zb1P5I_9Z|z*cA+(tr75*q?s5m^$vgI? z3S#R|J4n%k(F}1T1i*4x?U^YDF5x@frQ@*@8@^I=`}>htYxsK8X%4gTlH`y(WKd%; zfQk?WhZo6V_u`RPs1AoD?mxP@aoMfAH$yg1rPL8ZY_nCf#!*pRifia%f^D?u3})6a z0m7n09{<9pBIdd;kOico9_OYw1%^v4gGZWgpCSLU88T*$`JFZM7dWy1q=WRm*$Ynp}*|kN>dz`KgToW!+-E$M2~i zUE1xJg?PJ=8z2XUow-kbo#%L>e~+eU5FzM0rTsqCu=0F#E=-mlg~F_O?WR7Gr*d-oNLhMd4j0lRZf1Wjw((|`YtCb#JoFXU*Tki*0uZUUn?tsX$PQIB z>KyOvY7@H5UM9L}EEpK6$yMFyH1r-9gp`)wTTr?b?94#bHD3r$=mlI`QH$+3xD@^% z;Xu*vsXwFk;mnDRuk^HGrd$JKTii-lY-gc3fx#BXc3B!Kj?gbS>evAHXnvtnJsM6Y z@pR;FZ_Shyon%Ed6DtuDjgfJOnQ@T*y>&VUxP6hqRI}&|0s#UoGthi^qp1q@1hDe3 zfiv?r;hk@Zy^3(Z^aHl4%a|4k@2YATYCXXW0u4#)$k~;@#{{bQ7z{(O z5!{_ctp_A(=)Tqn*|jYCAb+&2!N=;D{dZ1#+_$T_*J(G8ByV$nIsE>N13&2HwcY*_ zDTZj6C@l3JdQ2ieHs;H;XEuLdJZ1`jaMPj43OK%Ff;EC2xf0&a_aV?R2AgT6j(G z0fPtG+xs&&fU5E*?34p))Nq1c4VXd@+#NJfhm8L?P%>*(Mxm75%q`cf-RXE5FG3P zwrz{q7M2L?s5neobu1^yrQd=)&-}O-q2zCEgojf422KeDkt<7=Q{9eok-#Migv4>4 zC<|V}@#W3Qn;x_XK7g{~cqhf{$LH->X^c3TkMuTn!Hx1@oy zNTTB*BVvloVc?q|bx1^f44I^iI<*Q~C~b`zi(*V#)Bd}2N~lo^5Vy^@g)j#r;ujTj zTt-+rYZlnK_h74CcN71gI&j*>!c}wB(K68JJ*EEp9!<M2_`egBWeB01Hrx)_5i z?G7n!g<^I~W!;kU?{^!t1Ano}e&><*Moev8@7OwJLs?|V+-J88oJ>~~XzL%1WAg|( zK2Y6$dha!wdPhh7@e|w{JDyY+ezEtv8J&HsEm0eMb}Q-yY|zzzip?cwo4e{C&ZE$X zrjis)v@eB()HK-Gq|g`|Dc>o$5BzL@^B}x}i-aXpOXjk<387l*ln-j)9h+Cw!0Xf4CUE z=Z*{6-H#&st+z%3qW>wF{WUF*;t3YaxQC@=uu?7ju>+f)w6zYGG2{^H<16?8yYcx{ z;Thd@eV-vag8BHF)aU}HJ!fkw5X zN{>EBjfCTRVYIus?$K;By}fI}EQ@H_S2`GbuB7k)k47CUT*FFckuc}?)V?tcV|Srx z4vX+FncWN0HVV19G?cV<1HoRHj&D{K4Txx3!P>JE;M?CQo^ybdqbyZ@vqe&8yl3#r zt1NtD{TM(=87U@4XjKAX)`Si{FhQZtZXjwLg4l zy`@a&GU1xC?&53QPb+<|di zUWZ{st&87s%o`sSfRgieD``y1zK$YqqPnn(k%S!`xMDXhK^H`=`PG4vhSLj_cb%@; zWThy4Ewg4#nGWSFo_uB={wN=}Nk6Ox@Oafs$&UQyt90WbPnFoPfzze^n~5H5bZXPA zPC(h;fw97{BI3ut7bKP(-#6x3!6&TU6V9)6bO z9pGAYs_zk^L}Gjd%ZBFX1$NU0kfd0K_!4<4P%2u`rPwl+q5fMqP%N(9U>8n^%x3;Z zJ-40UVcivw@t*QkCc-OxUZ$za0yFb#ha3<9aZxmVp{&+0g_w(dFHZuwTKM_{UXkDCW^dw;vxyM;_TxJV zw}=*Hu}1;XIe+HYPJvV4H?wDqw>$?B`)&;5;di!EAc|oovE4uP0IJejp3y%}UI2bSbA&(tLVTF&`V2|FLknCu zu8b{SIKA3zTor$23EP~nG^8@V4%LwtNSquA2pd!ZwEp3{%=KTNDqs1a{kkY+24@Ax zJlqp+j~ApslntiL@h&B!KoYrlg?P@ux;y-)BAIq@@KDeug=~chP|SF%M!R$hE{|r) zOUcFz`-Z`*K{AjD z@~^)29rpRe)t<#&|F-D8o41C4x4<`uM4FJl=jx6og~#{tHS@6BcX@7voIQEZ4QmZ% zJIVsUV)C>j$9O_^t5(o%lm^Sx#*3pdSMPv1a$v|$e#nVw;SZ)QVd8K3ZQqSh0i~E0@G9i%UN@4;dV` zZc^eL=R&kV#^pp?6tHK+Y;Jrg6cc&?L?7xYAiv_j+d$7lKbw{)V*D+{BZ2coeYcv&UhOCG0h7o{gPI2VwKGrx@TBEv>q2`Cqu*THfqqH-p@pHlmE|-M-3= zmz8N!qY_mV z5vJ}-X2@DaPx_4V1eH3;VQDOSWj1>iuC>jL8aYkSxuZ{(V;IX{GRM z2op%}d0=EUayW@!1Sh`r7s%1J&$cBAh?kQ<$; zsJhg!T$4}=cF`Uw0a!TI(gFQ7HM_s}+iy_=;JO!6#;u-8Wo`!S8Eq&35TuzRg3g8h zriklEj>T9`(@BNnudgl7-g(NF{?Tp!xW3@?Tu`g9X)+o(kv2l>zA53ZkLHicWzdco;E3%9*I=R)t5es$+Tn^wa6J(A{%fpM^vt-ce=qIHqIG>Y-!O zC$#$}q1Jx+F>^CZP}Wp-HYe*PSbB+Ui2kI66%H;!wHNh(k#7`JR%I>-C0hqD729y3 z$9_TFX#xCEO@B?Cs_^|GrMsH|WpG)RRBJ7hOX@xGL7&&fEXBt*A*kSLN%R^4YZ)*c zF2i^Il^Z?$`F2;Ei(d^4f~EGK&MiZQ!iqX)u(YU0q_f&romYLnm-)b9P#qc!fpNFb z`uLaOHNIi?(Xo5N#(W}he?1)b!}sZGVBupmwVT~17Kvc=#Me+Zdw}Aef{Z>T4$E4X z;bI-Z=g|)Qt4ZM|ZLM0GHky(s<&DGQ4@ zCgT3BcyS?n?&U9L3f1nCUT8|%*5bAuvi#`NC9lvrxtw^4YM z^t`Y4^r}vh;>T1Ju4Sjbz1s6M*m22&4dTaJF)f8`ufvO?CJ5Np4lB?3+FZbjvprH) zaE6OmDb%!2s4^T2+Av>O_9sU#zwO$bl{msA*}#Rc%W67=goNmD=& zmm>G&0vkr>tIXXVH_RfRgTQXH<$IN23-3@~-oxj9LB)hl6+UlP!+UP>!^Cn;PV5=q z7+|pG1H9pVKNFO2oGu;ZT=Bpnc>u6a%A-9HR%-i;59#$WsBz zdQS_l-Qf81T_L2wJnx)TmlJs2(ib2N&F?Z5mbRi?rK;n<~mou6&Pa&Hlun4u(tseL;){y3~`Z`vE z$epIDxUCY-Onyu@AtTB#6d}hNS5avGY>~SH;FNmKOH$+&45{WXoilwei|m{<*`^6t z`za27PkHxsGH&gfk8!!bpJsn3W%<1_`w6=5y?KoJeQmE6sJwK-_jY-5Mnlhap8ENP zN{vQm9u>-ArI`ge_<5sfl!p%&Rd2d%l%!60TOSy4e2L`zc20tGuXE@4`Ksi1Ky0CR`;SCd z3%Tp2BM}riA`vicZ)P+l7XE8900A{utWITDwL8#2A#TX1)d}p`UhaTj+kK{U$4$AK}#l>*lk(H5}HOC9oiUG zf86_HR&n5#5IbV#!@b#WgIP=fd(w7wq4DqA?F&z>fXTSpqPNqV?SCSUJ5Gt-uD8Wz zdw;5cs(e0+H`Cg0xfWBpA{lqj$Kdm}BQ6kH9~E!1cdv|0;+no!0L*yH=CO7i;$cUY zlg^}LCgO0zG*BO=+|r!kYyT3t->jT;hOihm%~}lnAou6kw{p399*TWx+v4MTYqPLvzu2Sw{_-4j&~e@3{dK&_pli_N`&qdX zgS~FopY_FV*XKDR?kbj!6DP;VJ?ef^u$3u=1oknnz*fka5v37o~>-E~4mGQW4xELU!|Z9w%mTAr2wu zx$5q7JB09N9jiG)9NO{uO^w+!@>zG+RUnem#{K#2WV(Q_9U%)3^U1Eb#9mG5nD438 zB(0x-K*z_;Xt%KE%>iIEfG|Prpqzien7f>(QPub-m2%nA-AhCrJm$8KAEgu|> zY6GHwWN9B<^w(BO6mQt2+T)2mdV(|%YRnmx zCk>LtQACaYQfsSxg<~A3_3wT*z=<$aWF=J&@V^ zO?JQ!NXG^c1y1%>liM(8;iy2uuZ+|7-U*7?5*exOHkE}et)AHblyE5!w5bdV*N6O>@T9z zYh!zgcMF7teM5Gmy~e!H{e(3>TZTg~{VrD%LG~+}>XpMq8l9L&HR54qS_i59iOIpV zun}_{F@^2L}cYWgga@l_z3Q20r8a2>WAU1^TSKaGH7zsbu@nqeCneP+jpUvZ%#rmP|%|L{B?ej74!?=EeWq?VJ7D0nJwkgvLC6`sn zBP<~p`C`8j#I~u1EUii@kgOOo?5oeJu=m|og=tupp7wk;gdekhx#zZ-zA+Kv++RCF z5VnYTKD@>X`0dzA6Z@Ta)O1KazD++;$DmJ-%!LrR91Ky+!Eg0*{#6Kn(2)ry2*A)5 zXE;*YAtMRsAIicKIxag}6q8XxDcstG0Z;Ylq12QxE`!E?Iq6iZsy})@#c8+3os_m@ zROnKF(ghf3Q1xJ>B{gpo{#KdL_ICF?e%ai({MFHEoSJCSBl5BE6-9VzMT;qn$?kaA z?%{auR=aQTjJxZ&gGD53$!{4PNFk-+9v%oNL=$*)8 zSfao%aWiv=iSW}>0gtNr&R5u;+YJ`In8nkspR7s!tQ%9Hp*EX!@_=&A#?LDL8+Ulq zCv?Q7A1KSd$8)nhLYH~56M}#4#Y=_TN6Btihc+u5RY*t#MjTr>ESP=YJ{fBT&RUy4 z8(Q;bHGKSbWGd-bD$T>4DUxT7k9hy0TAxMk1fL#+*OYH{xt^ z-}Z0|e&j7y|GBQQn9vpcc!>TwzNPg1^xXsBYk%nW8T&`bT>*@nxN+#hEw z)EL%lxt%|Ea$p?-VXxWa&)DhynWb)wt7JDCO`qxL<9dJJ%Se*=9jt(Gjhy-~tQ81l zBVQ=4-h2OgTaJY8qFGMpd6vx(wwXwj7;|OY_lOqVsy^Yq3S`si;r+ZDXAyj(;E2_~ zEgM0p7Ph;<*|q<2t72m_mmLo|%)3915U4ktcB~fP&e!O5J{w7t2s`V_&t`N!L#w;@ zM6nHqlOgGGX6CIam}~t$SXmn(*48=Q`@on*V+kXC53AHb69TR$3+lio=#-;V4=u{s zVsUHLQ|-&)*AOVFVCaeZ_JZW2f&T&hMx7)o#c6+zZE^om1f(jaHM{5aZBr9zs-?=ohpyAcf|$k7}PyI7D(@aG0Wu95&H z1k>9hZDK7vJ?%*{kL@=V@Sc_S4`n~8K0BURKN@=i?m;y6FrBd7^2Oh?<#&hqftI)R zj6+-R6BYY(zYl$s>~@Ei`arY)cB#6qmxRZCJRK$H1!$71_i^yoz5T(~=AlAlqf=C) z_KS`S7tBQ5X5;a@jK>7QVUup-7a;K&Qq&pK{#glCgnk7BFIBF^9f?Xf8=g@w2r|id zsIrBXsy?Smd;%MhD}?rL(v)aFE^P5JyD$9vHl87}d^KmXS$E=he!o?&bmq3U#Wmrw5naPdQwNw!X{fpFRg{ub&%0ku%qaJDf#At{yw@$C%jved~gX{5}T_ zUbzC#wTB-OANTn!JqPDr8zmp^=MoF=RcAV0zF%CS#M1%FslyUi$3)9(EocvDo z44pZq7UZl%O><5|rjvESuKi+0da%x$Gj)HAAn;%8ju`2%B?lzlE?koDL z8g0Qs;1;n_S=l+l?!J;DHK9rA5-Z}twG3NcrlJblYT1GW#6L2i%F;%x=`mKG ztmr9j{Mo)ZWb8EG6j{1E6X^E&;DZsi+R1%rTf9qk7y0wieyztVJoH76)*O__zp#1Z z*iXT4e?uwFdy(Qp)4=!6{(Wa2X4CE!NBwg7eTlz*d@)6+TJ2Xn+zQs~cSQ6%vg*5h zDQueAe0lM~0s(&qhq3Mu&r(Nkh(!rqW%V5UOvR;?Hj}@8o{wJ4-4?kZmbZD^oQ~~d zn$P!&RKmC55%+WV+Vt8pHflZ)=zp+sv-COjJh-cv{=88BrNvj>I0~KnXe?7bf^Ty+ z`tHNBtHO=1AM5TG2m9@|nXY!L=GnjEYZgZy7yYx3$0HB|{IV^}P zMw3)^xJ(0dQS>uE&b9m+R=?iR1roy9Y`kpCH1M4wvGYElv)8{59AHWF7!5$ld^r*> z9rLys&%ce@?XdhxS$#opc`O8S?xy$H7olt)4Jr}wjJ>7acBiL*Q~aqpAA` zTutEwSY?|gduF3y!@PPLyt*sffX8Vxo-nw~rsN^%Y2Xpc4g<=1vH}`0i_>SE3 zI>5c-z*RcC`CbSnxAVT=CuaF0c^zf>1MthsRU}Qzb`d+d+Et~rN=@tHA(b)}Ku%1) zY3f1?9aj+beygOgd~p1=Dh-kaADv&g8x{km{)Bhi~4o|c*@a;fcDdT-) zx^z<4ZO5my$Kht6^yA$wHuEiYlizQr+Cr$Y^I+r4>}?!|+$4DQDC;}*ri*-Tf`mP; zk)(wTM>AtPCsX_c-}H4hJ&%O`b|3c6{`J1fn{Dwq`ugR2#qGZO;%D#NV*B~&>#p_o z2%)t3&c0=MJQ3c^kJS>9}er z%>61*d-R*F5a~Gmf-865?(VyoNyggl^=Axwp$EsrPp7?sQemg1|K#5~=1BdjAUIQc l5H$9keNrPJ5tzOH{Pt?Q25x(6p!V(Sk(E@Gs1Y*^{6Cx1-BSPn literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a5f42597f548489ab7d59ad55b5f9f2494191964 GIT binary patch literal 8385 zcmYjXc|25a)W4`y7-XlRWJ{Lpeq+xb(b$)eEg`$HZ>6lEB>NW06h@MzVGza|!r0gB zX2xzT!|;yx{pbDTe(wFA=iGblbJpjc=f*!a(5Ac2c^v=%I$a$NBLJX)T^v`hkST1W zkS_9x!(Y?F-`MM!f1tguGoa?=<=}iv*Tde$*~r=6DcGmmSrGtkIqGVtnFLL4%!EEk zbDllg3C*OUq6I-}h2VUA+(vA_slGC1)n=FOzB3Xjx_rCnSr(^K%9NVP&(F-4_jaa* z6U6w~-MD3qx(S+Y6`u*G5fh^Wt5C%p@pj*pK)Q|W3PF%x{Z^=QWMkd5OzT#7-zscF z=5Sg^Hs=v#+S=B~66Ix=+Mh)H6WdPIs`(i~)`=c- zZh9;n16UsKx5uWloJcy%3f;_*JebkW*w2~vbje`sYr4L^9w=K_gP5GJta77Et?1RL zEV%Oqu4|QJD2$hr{&RVMxVhK5N*1;0(bO z!swCL+B)-hes1jHiSa(uqb9xJ;;9%@2X4FX4b;%s>5m0xWpiBCg6;I(c;tU!{w=!E znvR6Dps|n8KWMu@r74-ii4L~+(9>s?nLN0w8eq?AgreZ-8yR&M%|~uKZz8QL3$6yW z9mO5jF!Hnv32aQ8Hzr&jJ<_@{*J>swNq>0>b*U>J)&i=!Ssg0@lzjgKHHe%a{6b!QNcLK zrmG)1`<+Y1;eeaWbXX6!Pr%}?(~U7S_i@vmKcy?AF`gfw1Y8I4GE_Usba?_y{Y`cvv^z50^PlU-6!%-P%Y^lZY;lmxbI+6noBh!Ye{^`VKuHs!_V z|Ek(Fz?)U4-kvAaF0Z-&GWg2NZ+~bXx_B2N{2a7e}OC@BG49OlQg&u<~xAAJt%yk<(6Gf<44QX})T9JBEjFBECz-P6uud zI^?k?5PERw@I_exuN?MOF840x_S->gdRi4xhh!SCx_wEj*eQ`2hteqzwLRCcF&#BK{jXh7aX!sy=?!S$ z?a8+NiZP4!Sj=ClB1901P5FnFq#uSdvoDo^3Jk6MLZe~xer2;@uI44bs~ zFxOZ5L)kNnTDfZKyj$3W!JUe@jrN=MdebDnDeFjVeV#1?%rexqbN~G$D8~H~7;ZDJ z@N?L9YG+XI&N?+TBk$c^`Y?k(FNx^zhgMyy{;%P^4?3EHC6HGgWz?uSSr6ipk=XD8 zr}n=rMVqopE1gSBel1l#1uA9Q%Hg-MVjm;RZ~c{qcU!&!$qVA6x#jYd4h~OML)0;O zo+h>n(n;vVlYR=pYUxpnJ+q{2t-v_s@TJn2aP;O)?+t_!?8&zIek@!8GntTdJLb9Z zN2lF|H&^O!;|Jfzd`nPQd=>>)Q1u;5)a6V}Uu0Fi(kY=C+^y>$4hg#Cz#jkfa@v}B_u}i~kw(#; zOWgiIv$Hf@0gqMmwan;wPZQO!IX)(CvI>2BeU3S=Bc}*(V>x(rIC8l173pa$5-dd) z57!&73ok@Wflc?Qb>~PR9udmNF3(iDkqUN7JdcggJP!S5B`Ch?d@^g`cyGeUjt&L- zoFbijcHEZ9iEj<2ZtNx39oS3Y)@nhk#z*N zKQ9kbV}=Ia_lWHnvv>+je^RH}kSW?!O)3c9rVdyKrhi#S3e@h72V8>t+_AkMU?LT?D7wIC-b4ssW(T# zjT73Om}Iwced#7R%4mFGEM;SWo(~)Nl#@9k{SBq6?iJ1K{u_j;HRbcHuw)xRXovk- z#KXg|qKFS~!^<46LID2Q@VSn+>_umW$ha0a)++#i;`6U%0@w##Y03rFdent6GsLvp zw+ll3F?N$x-h67*g!tbyg(sx zhFE@Nz|YM>`13>M@YWiDxq0y8^ba>T6KpGX>-;?py=otKM9WdJwg&33b=90KYyMgT z;muc+c^L%jelH+K=b2aj24%~g%%s#BhdTEH)aDR8CssRm;Q`e)UvUF7VfldDs~?*WacPu{`L*tDP~~PAqI{T+#2;8A})R7#h%V-0wGqiC)JsUF0Zzf=jy#8*@~#eBudiPwNvP{9e% zizf^vA>Cm!j4#*GkcnM|j~}Ula!ye9@CDlGXU@IpAG4 zgS7p@($ASAd;-Tc%-NwYQ$>a1Sj#I@VHoXYXMM*E5KuE$v09RnEieUlSCC$%)}>Mf z`#;By^O$UW7iVsEon`KZukuo;g2z>yk*?29nI|-7*r)POhA0ZT9kv3e!*QTv-r+z5 zXS*c?z@(5~gqt6{Rr?Vi^5H0R>(_nYapaCoc9?h~eD&t!Y`zTykPfShsJ~T*nkt?R znT(5m!T>z4cTK5LUK@pHm_;mhih+Tfb=H-qMVJ8(XiE0U0}3`u;HJxF9GtRF(}oF? zS)gRw4PZK3pq?AN94wC;|C*q^r-`_Upfjr69e|#n|crU_OXsePZkFieclK z9Lyq%miMZQc)qyMFP0e6kmY!AKM3&7&x(9r*Xax$v(Rr;yABvIFIhLs>Em`jB+cgh z8KeQ^GrG_AJIt8`6qK+O#g2xO-hg-0;0C1uLsC zgGDpcsG@L7eEZ!nD-7M>#?hxCVE%y;6`gtR4Z?I==;Yp&yFh(9iEg-!%l%wu)=C@Y zzVf+`mK}H^?x!=>2TDPT@&3&IM;V3FlpZuykj73dH$Wb0QMFwL5DGvJJERdgavN&rvo!oT*%oL)y|qo<=(015k(I}i zGF+S_9s}OZ%kiXY&YQ5kIBi1-eKP)6(N{{w-AirvDO9iMTZN``F%UkB-un;-0lEaS z)R5!KA@}fZN9xTAsK0oTN&fv1-i7|?J9AE1Y&~tL9EZcJ3yCSUq#aK zy$86Pgx_Ve`E3A&YJ`~pDBE}yE*EOwK1NFqEUmr)^)(^k$n>2vS~ZrQna(B+xp;MAo`p=qBeqQXjG*Ojes@X$9k zM_Cv6&2bRvNg13ie6Pe(@>o(Dcqei4izug%_~-B~@pT1mfrB0BvhyLnJ_^-Ra@%}M z8FLxf&6udft&s84eI`K;R-kKc&5S~DivyN~{u7%Fs8Wa^tyNy{=h!XrC@>3gpvWvj zQKWyioe8^CTkM2uXk73IW`Ox~P>0u?2TSx)lWx#pR6@T3H2$PY%MK6d23Pr9k5_V1X+PvaJ z9ztg=u3Q3os$p)}OzWaEi%o?IT52H8WpG~G&oe$Gh`5Bhz^lIkDwLb~u}S%y-r4_v zs9k@#lP8V**z9z*F%A$Qlwx^;lX@C~qKk290-|_l!mJ(pB3~#T@YC;70wr2D@@7Z9 z(I~f~{3@?N+Gq-3c~Va0&WaYMlVzpkJ~Qwb@oHz$$WsI5WiZMcLkaW{HlwsNrsG0l zGll~sFUEEArZ$=w3D1gSz>Y#d;gdU7m$;i5VZ&|odCnIYMS0pk8;2B={+#^@i1MBB z`fJm`2*7#3cJ}LlP^KDj*|MarhzlNDhTq_Qe; z7q{?Bjg|^X+gfNXS2OBB`xUca0pPc=eo|VxUQZweEf+V6p$J;9r1yr<8Zi`ra2ydQ z#Z=O5$Mb)KO<9t`ul7%0Qi)4lh!pQkiG(IhHIY;}t^h)Ff{~|=5Cs_Uc-SC(cWmyh z3p-F4CTN$HFVc4uDOlim0W+R8dOwr?4sbr%p)#?IDOqxnTY4;g<{PW|2T7*HLA%AGy2M2>0ym}swz zhg|T;C|$T)*cDwzvMrLj=X%I&zfNU1aY=A@>zbyH3-|yQgXMzCX&x%KT|jOL8AKx^ zVWn+R_`+6W)qUz`5qGc~Ms}x}7lwVb!B9og!tnHk1zuAp`%%xj!t=o-cuMa*eftYP zc(Z6^?5UyTc-X{#;YT&%juC&7;E_jt*AhRkQt1GN8Uo$D0Sj$6dXwN|r*u$i0IfyR z>OCjOar!wbn_dU5V!W#n!(o=LF~X|){{JO?eq$|27c`H=vAQS zEzt`Su_yjhGzdY~l5QX>as*t=tthY|q)rJe>(F>c?k7XHNTaPI{~PG`TQAGVfgXQ6 zwZMK6*xl{>^$J>~wgfNH)XI1@iYUs{-CLF5bTTc&rNtuX3N1N>XckwWg6E*-hw5XHGx2K3Y^~ih29XS9$C-8iXXtcZz z>^@8VS=-ahz1`q~*=T$)dDi|HP;HtFIX?4mh?tYbiY^F7{JtOw)UKUsRun7m&&X7> za{^ss*`F4ljXv}N11JMrOo+?|puL!&=Fpci)|LTV^$1B_rKK5=V-xW_f+rM*fSDl>v zvrk5H>YDl)C{&eO8^a=-tn0Qo3EzFBdf3TDqx0?ed~y*9+3hLf>rS!eqEH3l>m*tE zO9e+1urkdr{b0bm%O}A^rJV4}xu+5SM|Wec0h@Bu(?pZ#;#n2PVAi%vz@hc5ibUCO zsGYGHV=E&qP@kbYG$B0t;+m^BW@F!@!BoNo@GkHS(KGc3u_=RVH>cJlf1->!aZ-|Y z$ZIRgN0l`eJ1vphf78Ds_KosUP2|ezSxS=xe^w97hcF@qMru4@6~(g~=;LErHsFa@ zM4jLsn46HBxBTzsZy?HjGD7TFIq{3E9G zF)a9|I3WMQa>$y7>HN;fI<#(B8pMkQ<~7tf?cBqOPb%ScTvC4Y>eRq$*2E@#=o3}~ zenU|f0CLfM>mJJ!!C)I!m_jrB5i4tr)YWqC-pb- zwkOdfgKT!XVFA%fKSrR%$I4BAjB9B5iY5wo6rA(xDljjE?K`;-h;5--ih2t>$~Lsy6U@d)GMrsut%`Y)a~W<&g> z`6iEr{C2Aq^#6i!z*9LT|9J`*xv_QVTqORd?XXasVHV}~b2ZLL_vJIk5VZCT!qCb< ztn)sgcs$NuYG{SH7lKPA>md40rLPY~P?1jfwyAl|s56wO`6-S)00$`gWHiCTM%hO$ zT+DZ0S4NRx z*{L;yfHk{PUsC{NE`?j+NXo+_wSM30_zQqUTfTk2qqkj5CUliY&Ni zrX-`UdrK4Jbpu>bV=&|=M+-Pt&26NzdHzjv0-ES;otwkICOTV)f>e&{mLY zznUQpcbG{sDb1N2=6%Iw7K*@<(B$7Q4-p$_9+lDOYy4zU7 zyVGaT8)Pv{et3tUEd1iSseW?KU|2)kr|Lw0us!wsS>Zskj#zrAlrs;kK>)niEQklD zIrfhP!kf$=h_f(~eWT4HNM9T{jQd-IFnf59g^6(49i*Wfl21?7Qu8OZlF;&ML8xf+ zQhX)LXJ1;XmXDocmmM=c3w`~Nkbs=Ivy+&?7yuxy5*M^>ZNB`}5*EV-csL9n`Z80s zWNC}7dvxGU9e7wcU=3gB1;RR$!BJ8HYu6s}oEv=gFnNL52(#L6=;FOJuR{te5)=NF zn2;Q@{%Kg*$}iUaqF?e?Z3=7Uyk4iQF_Yvwni1T;z zp4zXi48jn5&=Fe{vFbUeW$y}W?}E$Q8-&P*kuHaTZYNj*z;=inTLzY{(m&RtF=c`^ zu(@oo>yA@k_}8Wc!Wl}xfW8T10~WuqebKS=r z8je6K|4ZO#j^I=X01m)JVkukMZWp?^$aZgK9n;DjfG2T}QJ@C%&msGdUw zwP?nG7OChakD(CLnOYsp`TEFz4OgD~hwUYaaD>s-A-xbmDcdpqy*GM$Mkotoiu;%A3Q2S#XMp{&jD;SWdZ zH1PhuEEDswlx95ggQBFN`V;>rBwfx+S*6RB7a`WCuWwX6TYtV(MP%+6}1J_ZqHy4`{!v2?uOM zDFm!W)IL{tGDT0S-` zab8_s=b<0w;QjWWJGEP20QV=H32CR7zio}&!mcr}k$iYn!TYdq0J|S@4MlE)zdsJJ zr1vU_jpW;G>64I~;6B(SI9jgEa{Ir6-!t0MW<{)&gTEK#q;Gbs{?itXCdK9+>zBLOj%k2f+pnQ_B09!<+rbYLgWp=zS+^6HVfq*!uCLvi zx?1Y~EIwrBcmjvVT5!qZa&y}{4RFnNn1k9k=v-30dVoaA4V|kai$^SnpR^QUP>s zvwUZv3m})yu+J7Q{0^ucze1eTdn@Hl%kJ5zQep{D+u&A;%>+s0z z!NtPW`?aMK>0z6ro-5o+4S}azc2(Sz(yTZ=hw!v`SS#)gT;1M?N%oN^<9#AuLtwyi zG#X-oCM|1#vELnguk{*-`}$JRDph_DJd;d6+r zoJYtwH}Qb&Zw?G&)fM%K$^@Ks2UtV{obO^95Zw8a-nl{w*I>#Rv>bDKu@#qqvk*oI z;Cdh&tYS}`gin{7m(uwmND1-dfOB8n;>V>EBIo*Z7||K zKjej0R;4)(hhLa!=JFClwCyc~lrxOIAzUj;zS3 zKbT+S^~XzpoKxkq`^w68)Sw_8XX1FDpOc?Lhy+`tM1it{!H41%=5l5~1(B6b2qiSO z++#q6^=S0_sB2F(E<0s_uvKG@am zCMvs(&P4VV?$o)V4bJUy8L>IdP0-U5k;#+F8piXpwK*jM;cu;LsBL)IMC)PuVV!PR zL4k+jY%cCf5lFrzqog#vC$YblD6;jW6LqhjaOB?qrZd3V=H^e)#a4K#oEU%FpT@MK zLHCSQ+2+&cuf3_sjk|0+V;&1*3hj~2#;02i=&ciz(=*AP0WkCV>Fpg@6SLh`<`MD_ e+e5-RgBOQ|Ecu@VKv&a11M%SLtN#HT7M&0P literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8cca49ee39177ed6d003f56dc2e7d2677e71b78e GIT binary patch literal 2013 zcmV<32O{{1P)rmbzY4FVPf;l-dq3=cjMVA(fWBiCd`9M@a zc+f!o03uB-6xy-Oluqf~nYrg{fBA6s+?fGX@P(VK?2~(w`~U5={(G%`Ln zJhJ*ULowpKT4G6_<#lzASua>rr+A;A5?%}sEHHUPBbRQ`a^sp@ln18>GXoFujX;#5J64@j=@Lo-2!;Kj}9pUu3C{R zpDoqW=U!8*S5E`G(PU^O3I!WaZ8Q^9%^&7&HP+L5?OTi4cMu$O+`w7%c@2iOHbM zpc;~tuO16+K4{d<$FX7gKLYfFP9M`}zV(-M`OaM|FhJ19QD7)=WN0!na#C^>1(IS1 zfT5s8hZ^b(>I7;DwIp4A@iwpe!+Pq|_Yl~43xE!a6Z+h-KW4ApJzx(56caf5+iII3 z$jKu>LXM0X@MD0S2H9w+HpK1yDIwOJF-RYn zz{kduP$1Bug}Ur|UFl%d!YGGP4I7;x>nW^j*icXwsDG_|XnYEWVsJ1cpyC$^?0DV; z(lIL&V+cWpK(tc9TqVh+*GgK-4#fQw;)7HC6f@)XEKg06ee8ZZ{D1LwiJE`r|{A^xc$ zke6Z;U@-KH7o0q7#g?Gm9syd>2{!>s55j>?yW^f1jVueOTWH$|V>%eS4a!;Y9@>g9 zId^fKfn6i_;@K+sgcIEkEnq|^*3zvFPzF#Qf&nRFHUnrY$?Lpxf7wD~x@c_&WL*R@ zU_F#Q{QLKx-1HV#TKB|>%iP__ooQ}kGt&XmD2{{RAlKco&j9TpZBta4!>EZJuZ7w` z(?VlA0Ao8SJAwV+l~1Ib00)&lvAgtVhqXM^SDk1Ug*Bb9@Lg)G10|!^;;hjQbSvmJ z8I%Q#ViT&&7D#QnY^;y))B7&E0}D@&OVDnJbJwc&C%;?Czfq-8I6x90iQ>Y6x8MWx zbT{yJ02t6sO0rpsQL_b78>nJdhB@Zrdw)fny)*`R;O0qp&u>S+*zepOD{rVHSqg~* zwV8I`iCY6n(w(*{fkHwBXb;*#)q-?KR=6qOzAlA>RH{DuA*T%UA3*$E)*V{oLu~ zuDXTU6nYu7b=-ZrZR`_G>pCB31GE&sveLzLWt zXpC6izsDY*_WtkZPA2!RF3CehA13=<2C4)K1(k>%2wOhTEuX-2tAF%W-hLn^!XcV+6q8=4Smryb2HRyPA(ROY)Q1NFMdISa8s{0c@c3y>NjU ve^M;?r@~M^<){5CT%r=@e@xT&`t|(ZMHlD%K~&Wr00000NkvXXu0mjf7LB_g literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f580569d988c4a2e4b0b4cf8b578a09d8e378fb2 GIT binary patch literal 1869 zcmV-T2eSByP))q?(Ga~Sr+;~!7>bk`op|J9W$|M zOx3JI;}+HK8__UhZ~2K?dy20v*p*Dbx+|GkzB_q+)xNTmYa54e-+b_i*SG&L=F#2F zqeJDdJePj9(tb-W}asTwh;g5}sEo?~Mi%aogz{J3Uz z&Xu%3KD*g{y+u`1o0^+PKi%K@cNOsL(OJUS15d5!lyC05XtXcOv&zsQDnb!dfP z0(jgPFjs8HSjZ?t=H(^1Z1;EjcRu#P;cuUeJ&=I=j5kwfH}2c?M&hml zPTe~H_GznoE+I|goQn|D9UKT@0laI!BgBI<2a(ajlsrVDN(FVEt+RU1zjH?cvm4h` z|DxYm$}&+diUkDi>|!=?*cOnmv-Ow4v)!|wGclP)p<)4AkODiQij02gnHRP z@Jizb{<j=UB2F4R6zI(+&7Q8wZV9d!W(}fs#x(x|p{96u6z?xx?7_wKyzQhF_ z^E|mOaL8!C>Iq0&d=)Inf{heBjo!8+LV`XQ1nPpFJ&-Fj>jF5;Ag$qJPb0mK2;H}-?4y%C~90@NwH@f4@d0wu_ePBqG8A2-IC?OK@oRzbJ-Z`L&ME!pNqtZr$HFW55 zfk5@aKd1TN3dl1#6V%BBmIH~vq%bga3N=TdgT=7TV9)E=4fr2m;%NDz<-`b`4};T+ zDi!1vftamp1C z*O)d~3`liK4ul%L*63KlC}46qO&y@~nq60C+xbM;LIPAo(2MvPrl|CSD_|(YwIE6a z8AH^wgdB*pEXmr=9HW4*HC!S!OGLr*roGMR*0WDMk(>v%2$47f0_+$>+>pvvS3r4y zJrc_my5tPaI7>6k5&$7&p2w!iDJn|xK%9WChb;&q=s~24-jVE-2Mbjri8Na_pxG6m zO6IwTqM`30JEysv?3~PP>tUSrNc%tr_oxdXB<~jz@OnfNkvOcf$xVo&mSsCy+}O&kwTC`x zx#Jtr=!)RFN0Ml-)JsSq^Fo?r4nj1VrB`>4SfgbCcPvLhp6(3TAz1-gBT8F^ktJ*H z`bxHL`IJo6V0PJ%xb;(}2ccXqvHtePyWRdiA|$#kB`QK9~ zL%}LxWxO;oWl%}kqMC~}E&YBQ-p?oWk&{ykKcAiQ>z-3JYnv`luixK2W7O`{^8>b} zXGS+;tk29WS>65I!z->#pZ3~s(^kLOHtG2I%#9J*ZFxJdi`6+00000NkvXX Hu0mjfr=x{$ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6b3e348c109e897f721c798056e62367d34dd77f GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{H!3HFK_`(+gDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9Mf#pDjv*Y;$v^m6cpL;yY)L;aSI4GszK`?7UtaZp3pQ;K ntQXXoz{sN@b|fH8fRo{;qZIqkXD;7?S{XcD{an^LB{Ts5vIr>E literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0f35e8c4b0a81e3e34eb23cd0f692519f9eca7c8 GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{H!3HFK_`(+gDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MV6i}jv*Y;$v^m6cpL;ye0gmdKI;Vst04uyOvYYu$Oo#A}kbI!d}Q&Tg1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..809339ae4912c4d3751e73c64d43ce2db2ca7c64 GIT binary patch literal 566 zcmV-60?GY}P)*9S_4*@jC)oM48TLhvZTC~pvf)9j3p|sIx zd_goui*~p`Zrft9cm`iuB&09-#-5xDv)MeJ z$zPSiA0`|^eL9* ztrPg&53=JCf+aBDN_wtvt5>h;{`m3Z_{WbQj~_dBtf#ZHGnb2tD*z}5!hukXF#Yb`yB^=a zf4{P5(V~1WFE9W0_V$P+OP0j!*|R5c@7}!$Fbuch=+UD_Kn+(@Qc{9u&YT%}TOzynXxD<>$|z4nSAg!7xk{H_-j37B60$H-G+ozuUKOy8@kP4OC!>4TGI^=FFM! zckkYv^Y-?(yK&=&!|&g}O@WdoxG>n3=g*(70(yGFlqpjzflf36N*Lh7AWh;xg-`11 z>qCJWK_+Pv!XQnGfB*jdt*)+a^5n@AU7(;kAq>)_2K2+%h=>Stpubdrg35$2NR#U4 z&z~OwgV`UL3S@zT@`Nx*lL9bOw_Lh(scqlBed0htX+jtr5KEUXE&TA|!VgoAR0Ag++=0(Qv1PjC<6LhPpsv?1*dH&nCZ--vLeq9I* zQBYcA0%ao@M#&mbjaoqLux#0~GGJtH0BXMW9}Qq+La0;aK!F3q_CV|j#C}K_Fc4i6 mvaKM^px{*iVo=i2fMEdm898>)oF9Jx0000k}@P)TsD{``6A%a<>UUcY|r z%fP_E%zy&~B4NL-uCCnU$B*}X{P^+s_wV12U%Pfq7bwn%qGQjVJqdgF?ge8YJ8{X9 zB{A*o?GfJI-u{agEz1A#4$VW0ulckbMAoj-rR-{QrK^ML+51ys%r(`14R|Ni~k^u~=F z4qjefc0d=LJ9FktIM|s$NdtTs7#K!VrcAK}2F`?M&z`LU+Xj@-CWL_+Od1**LV*T6 z0csKlX;LSIA3uJqtFEqY^6%fj-#|@@AWh1IFfb5QbaZs||Ni|8(xe8`Bu@wfBU*OS zq)8sYpnnF_BuxnK+qX~r^5x5|z)0Q#bDlUM91;>D{{H>@Gs~7OD})7v2tEunT?m*O z!h!L05vais7UTlBFwk_~<;#~Vef|3NMrCDXG*E*qEOL3#FgFl$OrAWM?f(7y?!dUY z0!l_e#ai%Wga(*izI324#W!JV1+2gn%x1jHZUVs;vZB10000< KMNUMnLSTYjX#|D< literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9d33b4a521b7df3cf121275bf65726825a4e2f89 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JigZ0)978ywlW*-V*PlFfs_5nI`S)l1`}_O&m;e9k4SIY2 l|NGlLwYRrF=U6MZID>zQ^IIz~m#ILF44$rjF6*2UngAHeF>U|= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0d03b41de762897185f1e0d86faac98b89364b71 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JinKgk978ywleKhpQ#Wndl9H5?!jde|aM7UQTzXpCF-`Wz h-X0zXZ}07uX1ITXRrasXfi$2l22WQ%mvv4FO#o3eDO3Oe literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1f0dfad7fc06dee61cef295e22d897e6852a0173 GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6*YUhIEF}sPwm~vd&oh6<@vYs&o2mGI=RD0$@@w|Cx?q- z$oGfljxHaV81EHq*_?fQ8*2e;*n<~oW#`YFwmI*@qW5x-4)mdKI;Vst0I!5ujsO4v literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ee90e9450259e2159908d5fc81bd939b1e71f71b GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6?J&JIEF}sPwm~v+Z-Ume7-I|Ajs8;tJ}aoZGlp#+QL&p zXN12j-OuP7)T+k8I{n(*wTTk<4sg$CaDVlCUTN(5)0=uMpKnlkwQJdHtDO6jR2WvR za=N5?^O^MRoFid>1lnC)=G^V*kX2GTr`5jw_o;g6ZJiuB;@fk*FPlsWnqacDavr16 dhb^`L8BCr^`uuCSv=Znh22WQ%mvv4FO#lEuSwsK; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..43b127cbbcdc92b203f04bf7ff2fa7efb255f30e GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6_t6qIEF}sZ=GPs)nLHm`d^@^IVdy#nMwtx`qAc!Df5;) zf7e^O_T+*EixVE`+Us++IC1bKh^ie7eqURDPWN85fw9SqwOdzgReH{owN{cbd?n*k zzAe8E?AWS4{ht_Lwnu)7mu6c>-s28KyGUY^s6RHCQvD<3?NOi$7(8A5 KT-G@yGywodO-*nB literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b7d5b55dd5e2b08262020420bc5c4d01cfee254b GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6;*n=IEF}sC*Ry%{=S}#t!=r(9)^zD5o^}0k*NFoOZD%U zmzQ6qpPy&Ax#st`-o}X&CpyN&%wg1+apu$e`}S-S44Ygd|NZ~ZFV3*>V(0|b58vO% zTV*Wll$2oF!0_wybAFA6xaQCX3;p8U}fi7AzZCsS>Jiex-p978ywlW$c2F*@Aczh6>r-(P2;egFQLYf3OwpLY-V TSQ0u1sE)zY)z4*}Q$iB}rM)HL literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e8fd934201a65432d0b76dae319154ce63da5a94 GIT binary patch literal 617 zcmV-v0+#)WP)Ymx+cY|)ml;t|Yno#ndRmb+&isF1M7Xo2t92T+eS z_JuI|>f5UP(M9AQuECCyI%L^YTAAbg~iZ1J%f` zK94%rfIO!jJ9j;Z{<%fC!%--6^0B-81bojI#7w%>3sqq`vW}Xt-{gRI_KTPk>ajCd zN6-`b49ma+Y(J>S)*>y6rDpLgs{9gUYU`0_Xu@TFIOP(k$0WBOo|*T8)D=Kxf<9-yyW*3?UCsyndsK<_3uf^Mg5!lD(){OGhW4e}Z zo76o5%kT`W!P$SJ9OZehgH>E~D>x_jmBSiPj`E7X*#V4Y@%B(rY+* zogSlwQs~?p6nYWQ;E*c>QpxNPh?@78bZgPnp~Hs~zE9;5N-2q7A!AI#T$!Fp1@x=m z5T9_7QXZ93d#$y|0S`Vp3LzZYwiWX{3-5gvc<|9tjB&@C*GH^5-X1zC3BFMu<0)II zk4p#jX>fmhcI~vsX__`gt3TooyAQ)4N)LbspSuTcK0D`bUDrLWwIT;R_}rZq9n7X% TlJRy400000NkvXXu0mjf%1LK1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..73f7c1e34d2f0c50efa8719b9b95947d9c35987d GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JicCFS978ywlV9B`=+V4!aLUVb?eRYU|NUiuRPR&YDB<&; ub>n}h3=8RF?3XgKCVXu=v#aWz3WM2a=UFd$Uf%;6z~JfX=d#Wzp$PzqN;M?_ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1c064ca45bfd811bfbb7cf85b2bc786e0a1cf94c GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JicCCR978ywlet#UJh3D<=iHGaCyubF&X{pfWkMR;#+eIE sI`~tYGiF#!l1kaT$|=Vu``cV5h6g>Y+O@io(LntSp00i_>zopr0E)RTg#Z8m literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0b0ab90cdc416cba534ab847e604cd1596c0711f GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c70vK;aSV}|n#{9$=80nm4g|0t;dIbBd+5lKD;g?Vaf&*6 z2M-)Nb?m^Q6DMZqsA(QPaOTh<1||j3MQd`_@E9-%B`_q4Fs79-iin;$bB5>48HuPF z6Im~WG+3OOk!G-X=E0tLR^wH=3C@9c8?Q#y@F~BjRha+MRNvrBMC1&~1*>L0+gJ5< ul4DnQqhlzC(21|*^Y)}LKhjvh$H`#tBNVW?dezEwQ#l;=( zwf;f;_r4XBxgcq$PBo)hf$cU&(kv~OD}W6!kBIRNbhH{;p4&hn00000NkvXXu0mjf DPuFGX literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fead58088616492e8c0996a1705f1208b0824705 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6)pC3aSV|NPkwo;pr^O7aUoxaa6`nbr}y{Q_paI`B>Jjo z63?7BIXpW5|Nr+Fn=X)E@pJOThv&b?^C*ZenqP0s6#74zfpG!@Gsj_uhzI(+7-n_t z=c)g%#Mxj`-`KcI#pEW#Mk_I+jQnf8Vi^>85mP03oXxa`3rO|gQu&X%Q~lo FCIAWaWHbN( literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9e3a174540fb0d09b588ea30660ee4dd1804e776 GIT binary patch literal 254 zcmVY zC%s)+Q&f&*kPt!`dMQvVP~(u)_mX&yB)oOOr(rQLyvbg`?5h!hyAiECj5x!(8Tw{O zziQuF)V;&_<9%yeB%Qq!Xq$#hks&Gd>(vq<2WG(N2E=-!z8{At!~g&Q07*qoM6N<$ Ef|HtQF#rGn literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..67f2ec8b85626cd934166b3ec08ba92a6e00cc20 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrF!2~3^p9!7-Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiX=Q;978x{li$66pMLJ-$wWOZEvCmUEi4QkUTkN#&Gixo Ps$uYS^>bP0l+XkKp9dj> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bf628c570fe0501b1acb39facf766664d155ebaa GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jib6bH978x{lh>?SGv(Q{XY-C7JNE4Cp+kqx+_-#svv)+q zjj7Y8PiNFPalj(~-k$S9LP9ow{`}zqs^;nOp00OSRaf_|mWBq0Aj7H&%&TT_hCE~p bVq`e8kpF+l=_RLu<}-M@`njxgN@xNAv!6o+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3255821605895cddc6ee2a6bec1882c2df72d06b GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c4!3HFg*81KCQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jib6eI978x{T~8Tu9Z=wLxcFpCtK6}}EL^d>s~GYHE;wFb zX?N+;js11}_;GsuFt&&sr}0&bL(L_>@cRYfTfL{TG;M c{Ctn?(Qb$0gRx6pffg`$y85}Sb4q9e09SWGumAu6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4154b0fc5afc832c95ac50c3ff79df75cb29fc30 GIT binary patch literal 947 zcmV;k15EshP)ch7YRTPvh`)Z2j@9TePp4qJ>tTXwj-g)IV2q^M9SHwvpK`CO?B|_LpF3On!<} z9_GJBGI_^TA}3MYj!(c|SZr`IEqNPSiR45aDWp|-~iPv3lnI@1?fC|=!Zf{gkuu|)T{te&Jx z;>(b2NHQ{+-#QHHW+T*%&Vp|ElT9eEpt%R~+eS#-#6Q>vaVGHn%o(+ND@n~45{lR5`t7xFtMZoG=@q1QSav27ZD8` z{KLU3_>^Gx9F4MyYdR+&Nz*8bSMX(XC-F7N5u}EK=kv5sg5s8J35tZRC*ome)Fr`g z4v4Ud7o&J=zD^Xc=F7GEua(E>Q~6NGn1Ulr_uGbvW_+}06@Ezn7> z+^XiuWqL@fGeA!3=sYwINxCfvla-3oJgJ&no|d;+O-6_>dIYMLm;cO#!g|Qo_eq`> zt8-r2Hv=)b)sR^J7&7z&Hc@JtAOR17+&LF-s4w5pS4CLIs9PF{!xg197-gY2~VYiL@~%SB8aS8~2=KbLxmsCHre_f>p;YuKvTAI5n$ zUn0vl)QNZD$;ZkM3Fey@%wr#pyK%nFH`Ee4KBmrm(cHOJxbxVV<94#IKLGqUego9K V5T3VXqoM!+002ovPDHLkV1jU&zV844 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9272760bb06435ae51b46127d5f1eba3d6968ed1 GIT binary patch literal 813 zcmV+|1JeA7P)8g_#knRJV>2KY^Dyf1=tJ+g&muKsDwoI zf~{9~UcCSR=;JT{H{be*6NBWpp1t$GeD?Z1K)u4yAY#O3I5QCQB{xngTDbqh|E;&) z{a=6mEkO)Yw_yMI|4EG#^MU$#L9WMUI2#a)7ffDuWa-H}|5sgp3CFVzT>0-Do%vr{ z-x5rN_{j3B&fNVE(g)HHG6$RCoItElJY(I5g{L0*Yv1g34m z(@^9Wo_zQpsP8REKgb+xhJ%uoTG5Pk{}%uaN5(qdvHwlt%l=!W)q`m*&nOi6`9Q-9 zr?34D)UOIM2bR)WXWnVHs0D=|R<_m zP3w;TZ{2hnOoR9!agaPvT?A0Q4xt&HCT*L*@99kLR|v#swvbEKOhc-(k@VO6{tF*N=5YYoEPdUP$~cwtr}2T0V>W* rYI%;WCgOzV170Z2Nm5NT|6H_V+Po~-c6}5W0IEHXUCl{Q|G%Gll_wU)HyMOLWb~)x4oMY^IZX#{` z=l}osigUm28c$F;AhD$4*Q>Xi8$T&2xGJoPv9A3Y){!C{5%_e9>h8uzs}w3{D7EF= z*UebI#b-Z*k?z96S6hMHsDn=)bT!QQ_;7Q$W9C}pb9XEM*vK3?zKo;gX2T8Mj++yY ZGERToSE00he>>1Y44$rjF6*2UngGNwUorpy literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..16abca262db5864a0e314663d4f4cc4c78a8f534 GIT binary patch literal 307 zcmV-30nGl1P)S`2YVu0}Q)lH}kmUG_M2F zLdfC_$Q-xa*3Cdg|K0LhcRFV`Gh-+M3O0fi0BJA=vb#_e0R=*kB$07ASP@Xdz$K^U zJIoZYB$RfAh#P=R5(eTVAWp-ALE^$F4#$P5s0idRpo71;WFvV$8}9gTKx_g}_E@**%Jm20Oj-wKgz0xPPVvSc?4 ze*Cn;=5WS`&t3(kwaz$q=kaq;NHgN{9UBn40WmwWH~_w!WsoXuAK?H1002ovPDHLk FV1j_le2@SD literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dde750ff5558e94133875116d062c16e77fc9e6a GIT binary patch literal 464 zcmV;>0WbcEP)?v|e(MT-L$Mfrzvv%C4m?7PC8EVrT8Fneogs z>n&xTq4CtG-^}ytH{ba+-{*P8I<>T|n9K#iO-QrKvW%Ygdei7?s>yd2 zz|T~#>M(W2aS^PqtpgT(9YlC@W0U6DJJTW0mV=3*ez=DR;2s&!V(NN)u#e_ho}+c9 zgCHj1k38ap`;I!V=JlSD>P*6ap{+AUNBsqAeU>-kc^-=k^O*B^zA!)Qq4Uvbl&v$( z`afgO$wGH$8#SQijg&LHI$Drx%humTSgjv>P9idBH>Z*}pbI?4K^|ifG z-;uYmI7*yOl$RFK^;K4w4`*c+_@_8i{ikon_K~md1-Kd;P*GNl)@B#NcQFGdk&JJ| z;fFYyU5&UT(exume32039%wZEi1`gkQB-5Z{NI9vh@0@GDmFuZc#aNsP2=S7;F{;I crisqjD`@h*0H?HsKL7v#07*qoM6N<$g60Dl*8l(j literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..96fa554a6e0979f4d97f9d79b48d51236bd3e577 GIT binary patch literal 698 zcmV;r0!96aP)`~uM+K1duS&wvkPwoR9AUa@z}(!*E&AHMnY|Mlk||G)nF2TX(bAaRg9NF6r) zj5*zNb(&V}d$r@jz5jRL|N4LS#rOXQAAkG5{r(p)4dR2uLGmDVY0XpQLHgh(s2f>w z)h^m`Y3IfJ|BpWY@_+NKk2o<%e(Tvg|EuP0-T~Cg1`mUrz6BWz_h0zG_13%p>#x5h zh(YQW>_7iMw|`*@EQ~mdrmZ@#^yHoYt1iEU<5>r;{CAGd{4cF<38q1OWcgKR?*0eq z1L+4DB3LqW{riQd9{pc>?in0AL}mV0a}E2i?VkjuZNk$~D(><-4gQaVPV3_&dIGCQ$P8B)so%+dv{(Uh$|NE z_#al@bpohY6Baw5cotJLwTp^wnDU_nXhY|=b2u?b9;8lI)4&&~PXswHu>-M!xT0E+ ze?imftVt{WS1#G}ziHj^|E-%&gJ}>SBo2}XsROE)Lr$>_&^*8im9R4Ni|X>tZ@3Uv z)Bh>5Vak6H4dR2uLGnN>3&b2Kc?SuwL7fQls|^sl1F;vBwt1r;P)+l}d$r zy&jFnV_GhkQbdkA`j}hAUkd~RCp_@fY&L1JSkQbvr`c>qlgUJi$Wcchb3UK%@Qo{z z$+X2*AKUFVO{Y^DjYgjW{YIlf@p$|XQ#WLd^To!mgL=Q;SBzGxMc{!C5lt)>n{~Tg>GG7K)9DcN#^6I_CmM|sM7{%vL?V%Y;6r4W z@8r2&uS*t{qE@RB^CsX+PWZVV3WWkeNGUK6p6oZCacwYCEtl! ztJNNPJf03Ok+hXxA(cvz)9Jipu1&nFsYT=1VzJ!V?e>Dp<(j+Q zZbC$kI{J(s;^38k^oFpg6T_#BGZBwPefzzGm4CEwr4i4!E22i!Kb-yo+AMXDGpG7) P00000NkvXXu0mjfk|+z8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f6f3020912a969eed964b634c6344472a1de200f GIT binary patch literal 426 zcmV;b0agBqP)+Sm zAwWrhf|!Yf(j#6=n?jT`$1n_|D0;s&BE*9r;DP6Pj^ph2`|WmX z+qNJ?Vu{^jHk*y`eScMI$?SGJL@dh^-eeM6Whm;pt`q?@2{#KI!Hj7BW zFpM~kMV4hG&?P}hIoq-;0A1H{x~>xxXqtu`juiC14WEcq&@>IF@B2K@1!IwD+xB!i z;gg^k-Sd@OVgMBA_HwxtMe)Uu;}L%lO_D@v@{|;fozG|D6#ba&hmp0JhY$^n<9NMZ z`3}QS*EKVENjVgLXD literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..00f3466ca8e318a75f86ddd5886b1f553f3ce1ae GIT binary patch literal 733 zcmV<30wVp1P)Klif>GVI0RF6+@#y5lRw- zx)h`G!tM;x3;zNsL5oUZ)K!T0WdqZZY0wgO%D{wyQ<3@BoX%FZO`Kax-FD{Yrp}}8 zG&fD1U3`0vJi;nj)}7SFhx0tYmk-a|Ar}fRCo#xuFif1w>%=8Q2)`O7p0y3)6~7YS zmo4HCZl9GZg(+7+p)T&OrlLbhWgE$u3gzSyMin z7hWkYEg2Xyac*%ZHWJvv@V-ReJApjk-z}q!#W$<(l{LM1 zRihiXs`=H3Xce|G(KI140sbrnsg348<~ajog1ogFWM}Av|E>;whPcqhtT5;|CjvZ62+h$b)80Bs;I^J z>-T@5pt2U6(TTo9k|#rUyfN{3su?{{q8c(`)JI>f=Qk_i-n(GrSMcCv*AIe*b}j77 zv~ezycqP)AwCF#h!|cTb{daEFDfa}j$0|62QRqBj^tujtuu6jy-L?f-<^;$ZI9UB5 z4D%v-X2d_c9qxk%{nN`B_leNCL(n)@{_cujo9CgPT7=pbJc^I)=u5r>I=_PZ!;W-; P00000NkvXXu0mjf2WeV~ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e5a516aa6cf7b9d756703227c7f8421ee1be8f09 GIT binary patch literal 589 zcmV-T0QDrwgLGb<^aUI^3t~VVIO!`m$tZb%dMg=}v^WkSlaNWO5Ms!MTnGs#=6Yg6LJ}pg zT>oZSBCVHnCb;2epS{-lzkNGfTmATHNTdGJM@`_g3?Iy>!j(@aS}h6J~*ZU@eGY zM*0PbBX34M1Fjp525BCThXR2BHJiq@?_YQK_BYwMjviygJDrZf!s@ABuRnwYgF%W!B9u%f6%2*F zUXRew^TgC@wa73GrCP1_I3yN}Q6iC`bUICZ=#SH+0E_+aq}^Z7g#i$!uc98@ls)uTi|(Cy%Ca3d&&5y1btVr&a5f?ny* b_PQZ=jmrNUdH?)@00000NkvXXu0mjfV>%CR literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..514e235f743846af7ff184685699182c285145f7 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrK!3HE%<(K{hQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiZnf4978ywlYjBE_}t%LpPs;Ev_bg)zrTkQ{{H(b?e&AT gP1VTIz(9t9;YzROb+_*L7N8~uPgg&ebxsLQ0BWWw!TS)HgC`zyg?dY};rpC@5IY z%EDsC#Ka^D5@bYE%-Gh_$ZKn3)x^ccmHYSaU#5Tm{xSUj|DOSyVzwg(_pD@RXAk)O z`!|Ml$cmX)EngfdFE6+F&!0cooQ9&9d(Y0TJ2*JlZLq3DQ!EN}!Xu#jI0z|bG&Imx zoiw56Cd@N<6$7!t-d$U-F*7q0HW`RzS1et)L0nwSkSI47735}ndwJ9oqnI0r)#uEb zHbX&P&Xka1W{~MXXBZde=M?Gd={n(43<7LGEDppf{(jzWE>4a<5)$Hyz!>F*DF%5C z7G5AW3lIwcu@n$XLfPyfIdsJ^zywtQGLZx7L`DD!OiDliU;T6d0000X* zQ0Sr{Vi#Y7n>aa$;Mm2NpwO4$AU;i^qP~IZST_?4v5@4#&(Gd0Yk8%&+QKcS;GD56%Sb^$Wm&2?=R7>Ze>L~RyD5t#%*U?J)-Aq1Il&IO`57KS02IF9pF>9 QqyPW_07*qoM6N<$f;rTnumAu6 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cd90029432d91eaa84588f87f0df366554e7cb1f GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{N!2~2HFAQ`AQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiex=q978ywlXq2r*Aq57aN|34wYApV>0 Uw%faeXrMv{Pgg&ebxsLQ0ExvW761SM literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3043f2628b8f2cfaf024d345c7cabc99ec8788c1 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{N!2~2HFAQ`AQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JigZ0)978ywZI5%A_P)Rb#a#vH8jVKKYPCSu^?wTwt-(j{i<`}0OsDSmoIp4n-dl8Rz90yapN4f6NTpJs zswzYx5l;e=B%SfoMIs>{3ygmOie8pwD3{9+kH=jlaP9^EO|eCoFw6KCz_-~7>}-k_ zN~IDclgZU@M-oV6G8vMHAqpb1h@*sS0#uBif0Cdy3WdT^0V0>n-Ei?!B+g?;3D55V zDoO$*;wGRdiki>ot9XCvhXiuYB2imkfVhd-3zP&&(5KtnY&Ls~M{$WYP8h`|uugz> z6a*+K<8eJ8RgOPuJBAe^?Iu8C>2&(BQmH%@i^Xf+xwzX0e^7eocS5Fti2wiq07*qo IM6N<$g6H%1ZU6uP literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3c88f8e386b629868e3908406afbb504ff32ce3d GIT binary patch literal 774 zcmV+h1Nr=kP)YBPzHWnCVGa;i%%|e+4CMj81m{6jIrBWnBqM6P3C^U_Q*f3&>$jZl^ z7@zlZ-g_+OTrS=DDs$>r&*Fc2|L1xB=e*K&`>CBSPTd)>7y1X&oo6n0#1qNI@kFvN zo=8UGiKK}qk}94^BBB)2ff1oD>ZkjAt{l96=JX>#7+ux@fG82BgPAp99^dUf`{>@S zw?GjXaTNbDphfuKL_;1whu%NC-+lE7kOwkA*406I7eur$B?S8V`tUt7rlvL;qW@-h zFOUYl13z4y2ZGLX*UCGfnG8lWBe@*i-8~Gxd_^qmSJe5&U<>�}mg(ai>nZ4&;I0 z$ocD5R4EQ1S_>258O`TUDK1{Q%Daz407ODwMQzwO45vQ4cJs~yIiOH#eQ8W(1~lX0 z8^hp>=Ul#agLEeQd!uJ6>pf%0{QUmag)MLt0ek#Xk1dVqw*jLy<5A@s>T0WzGS>iF zq@sSbW1gnMDi7+UJD{~@b>j+7?%T<%+L}KbMJj5Q5~4M+7^C-I1IE>Af6FE%B7Yrb zLIXvFui1du?74IuXlLnydS_s4{hWFA4S)yu4$qlUA{r4rc>_v>Y!OoFfUJpdY~N1S ztXz%~RZ))!p=kAt#x-jjfGQvYgq;!Hv1NnOdWyF|L>RF!oDE22ENv~DDOkqTX9LUn zEiD_}$7_IUSNnk8-MmgsDFa$-L~8N&c-y<>?xxi|y-0v>(})o5`UK>z>%07*qoM6N<$ Eg5v654FCWD literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ff8c1459a3b5a4280827138a546d6b5f447360a7 GIT binary patch literal 685 zcmV;e0#f~nP)|-65ON48-dt}Q zC2^ZH<9pk;vXNxziW&HjIlP(q?04P}xmK%*Nl~xYMXS~7n9obb`Q(K&$T37mR765R zmLv%#fh@}qjYd09H_UqvA3c5#05Tj5!8l`L0(dyQ+%7-aDOWz@IRm8642A^A^nasi z8d%oX56?Et2A;8pbdg^?-}j~vSb#>gS_M^A$JXe&4y6~H6)f!_Kaih1cLXXsoBx(T zx7!8NG@;pSLO2{ASwmvBz4z_S+jpP%t2>;4bNFs~OVAYs5>ONcBekGVC^)|~LZQ&e zS`zzWSs(en=};T#xzT%*Jd^+(-e@$SSS&gTcovSWZ@1gux!Lv^r}19zZVR_b4=q5E zMk0}+MScQQhieoVF}$zj&pu@A2W^^4r68BfK`a&<5*Sy16bBrAQEA{+D>nwk{%mVNmvzrkt TK=!U%00000NkvXXu0mjf4(%$` literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2d154f20317578ca668e12001a0f7e6c642e6cfc GIT binary patch literal 549 zcmV+=0^0qFP)?f}$1` z)FP;8841~8DzXO zL6h(UmBak+Id|@ii-=r4pKk^hU>UX)ML8{(%iey!{|)36mmz!}mS7VO;UXT7yL-K! z`XAwQun6n04`*;2i9|eDz(CV9`fJ8;y?Y-0Hk`l}Jmqq^FDJuw`T|yAchvozBuOu= zR;!K)kd<^gZCRt64A&RH7V>%8ptN+cOf2yiVBF6AoEH>N*{*Qyq z>h0X^H+;8evss1rPlU(I!O3KDc#iouhfJ%td(L0+tgqukB0OF`=N!!6IY3lz>j{@i zrKDP|Mpn2>eSi7lR`r(8_FypRLDz#yr9xJ!)#{j?df{6w6biYE#iCj&mBE*nL=2ME<|pl3tNJsq()oQ)zmX*c(#%*AkOL8 z&RTBsmO~w9n9aXHQ;)Wu z8TngB55m*#?4gq3tI;~N741bwD(`4i&8`t%Zyy3J?am4*d=*-YHly9>5GuN)s;Pb5 z&n@a59?|yxPvqK+C`+5%y*Tm)w2=z3c>7 zJk!J;>SG|9Lb~Qxt2H{Bn}s*-X(H@T1z)`P9M~xyn9(S_8;%frC??3KDE`0O3sA*N zbC08wn*-DE3=#H=!8f!`z(o?^3h~h4odvT@59JESL<+)luFT7?q}i!xhc5~i?;H^m zib0j(E&P~U04M%_&&k&dmVCqMTR*frf^o3=d09fu*U5QsjwQerh%H$!kbSpbuhG;p z;rL=_AdY`1ulr{l?4t?sxKyo#_*GLs(5skWjPDN4L)U0_q=$>&^Maz{{iaVIEi?Xm f!5;bpbQb*seaM6{;bD)S00000NkvXXu0mjfcu-~M literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1ad602ea1c80e7e8f14b92386950cfb1c605e216 GIT binary patch literal 674 zcmV;T0$u%yP)kGjLA}DpC zf-VFV5dK*45wt;yf@G`UqC2H&Y)py)F|CVaou#7Ec2g0g{sHqM3CZOBerFiS zLa=Z==Q1-)#5?1{S$rg9?!9NuV=Q}K%b83DQmK>>T@QsqV71PO zwOTEmdIMDcW9U4(fgXSQyuMW`mH5FT`FtK+E*AuYK}e_5rfW5<)9L68*&jh?kps;y zE-kM%8V$fFK&V=+^5Deh^YP5g))Ut4b|+x4-RO{7`f22xd+_jiyWIv!l7#B@x*nXk z-EKZqW_wt#*PEaQr@=d^_I(cf{tT}H4W0(H=G$ zjdXvR_M0^ATVK9@!-3=niO|ha;BYt$ilP8jidtc|hsmnx@k*rW~1vdr^Lx)Vm+eczMSl&rWg-4As*8^B+>erxpfestgHIFof<>6mTXp6B_# z?>Np0GYkXK`erch1Q^vdO#>DL!4HEEfKe$$VtpIJtT%&1ieVTM^U0825+9iDX6#6P zNM1)2MT%qs;Da&sBF7_C|7^gh{wuMrBR&zBl+tRHB~Rmy!L-J8oOlV-urjrH`p#vP n0I6^NmhGwCeds#bi$?GjJRa6RqYE>#00000NkvXXu0mjfeTuJ- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..52c58d7939e8dc009385fab8a2ae636091a690ce GIT binary patch literal 681 zcmV;a0#^NrP)Eu{#F)C%UgjD9&Zl6_nG&8%!u1yrlkk9f3e#^+?dxbaZx-8XTf>+g8q=ISo?%J(6cx^!Fv{ z?oE=7+QZcxs6Gf%{u!|?&BVws?N6VvG|r!EAiBK*DOW(W)?{X9c+}dC<79q8Y|G-x zr6!6?N|DPUwxubK zp>X84hy-`|h4i!cUPBdMusoH<2&eB>fBEt8+_jk43 zP4&J`0n@+?kOmyU10-MpK_CQ#_Z>YMt-o;jnjHufid(Hc&Zq8Hu!eI?7Cw4-}ZHuiv@fD2^OE zwPSpABx9P=W|esZcsW0@G>~mp3IbMX*+wm5@kEJvn`4^i3_xG9$Il8ockLDCQJJ-D zGno*vcp_vFH=DW5OT%C)CxwW`6P7`Iz*`Ae0!edMLd4<;k$Yej$YT5idfNSVIRn*x P00000NkvXXu0mjfSY9ym literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ce98d9f08d85a2bef7150746e68e65b5d0b04000 GIT binary patch literal 627 zcmV-(0*w8MP)ywTD1XMyX`66mtt z>Y`q+L%Cdr!6+08kV>WgEon3wP%IX``xp#WRlzh(h{a-COG2R#(6eC}UiJ_9(dl$N zx$C;ycS3I?8Qn|pYY@TMTl-xrX|>zyw!QNH)8f+d>T3P#XM5$_Xd-?vk%$i;8y`EI zP9Hfwr0dbYN|5ft$HiAqr)R8Yv$=t*(5C%DdbAdZf@lY#QRAk0J$vT#sq?r?a$kZA z)_n1D_Wql>c^eOYM}8oi2<^U$(59(K1ksV9iHjHF=8bE&u>1X@TCF;B^KWm@zP3p4 z3t4ATi#zcp)Jcd0NE8WQnwpGXy>j`En11&B;oW-=X1L%dvcZ|U=my4-xto26!C86o z_|cR&du}56Wo@m)MVmZIn+0y*cad16@klh9Ix=!d5$UlL!~8afi(4#!g%9s~zTxQj zN&k12c`S`P6C}}D()9@z4+hKR0G>o;3E^%h7!XN(SDr)!59~nFkKg*_{a=G%B(VSh N002ovPDHLkV1n2nC6fRE literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..93be3702c19e4b75d4350baf62cb26d34c1d89c9 GIT binary patch literal 369 zcmV-%0gnEOP)^(Z5Q=P!z}UP;lrTTrB7d zNWsOiD3baJF1|z;5lX-ZQ2GEOzD00rYVA~^K^^L#$;ZSdRs z#}xB$z#VRPaH?sB@nrA;)qj|)%-OSXa(1p^9u64oaC_X~>Uyj%m#@}l<0inK=OwF^ zWsUV49pB{~=9LCF2dLa3H{>q3OSul^zS_XQxVb`C4)yRmpgW literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0e71759ec92ffabc4b9555bf174ee478ba51cf7a GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^{6Nge!3HAle6a#jk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XG(BA$LpY+7ub3N!-`G-jwKgm)j7=adB_$;xDamQ!MMHIU f_2$Nntx616typ$ddusj%YGUwo^>bP0l+XkKB$Fr3 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..297b28ac0cdf060e5e3969f4cf6fff521f09b215 GIT binary patch literal 314 zcmV-A0mc4_P)Tr!FnlIyAIR{~Jg@^A;3wkOo4NG|!vl>rAHe&R5s&t~)Es z@*t&rl4|&3j&=P1-v1daSL+^QY{5AfQ4~=ah7`v!<#~<(s_Po-i|uYd_{H7F!`t}2 zPbz?dAZV}(Y66lZAt3}VLJ{X1?0;kJcs%Kz=g~i$rYTib)dXCwHysYRe>P2{4bHNx zd4kWF0S7#^EQ__pI9(Nx!2yqK+m>x{Q4}bigaaNsjzeuRs*eWu0xeo=!j^3#{{R30 M07*qoM6N<$f+8|~I{*Lx literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a3b3544ef37fa7c872151e80a98c70c7175c220c GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^f|6H_V+Po~-c6-juyIEHXUC)a#>!l}$-pwRf=bP0l+XkKzDXf> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9a2c7d9cb93012e87f85d658d37d29d26146b8d5 GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^f|6H_V+Po~-c6=`_7IEHY@njUQAWH8`iGKl(Le|q_{JOv%eNepG;2d?Pe f_RLv*PW>h0l1<9Yp%qaEKs^keu6{1-oD!M<`#vWK literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f45b3fa313332c6cbeed864212b4a48a75e3bd2c GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JigZ0)978ywlW*-V*PlFjvhd~Y`S)l1`}_O&m;e9k4SIY2 m|NGlLwYRrF=UAt(Iz#vt=eHe|^A-X%GI+ZBxvX8U}fi7AzZCsS>Jic~yZ978ywlW*-V*T4M#|NnmdKI;Vst090%(5C8xG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..15a88e7043507b0b59ae8e2444a8ba2fe992365e GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JicCFS978ywlV9B`=+V4%v*+cl+w*&E|185YvV*e_*dP59b$W>?ia6$W!@=UGPOp8|mfFnGH9xvX8Z)N= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..497350b08d8223d97aceb9efc58bb91199cbf6a1 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JinKjl978ywlV9B`=y`d6f4$HD|Nq%9ulS*V`TqVFU*b2& jbhLFI{PE&fV;U2Kpr6~UCb@+yKy3`3u6{1-oD!M<#j`M5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e7ec7cd4933477e7f75159a09b29d0ad20abb3e8 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6)o~~aSV|NPkwo;pr^O7aUoxaa6`nbr}y{Q_evEBiO%8* z;)!{a!=v;6|9^k6=@SwvKJ_*}JU@LtkAmnT`8q~X<3G%T35;w4ZHyZZ#FsFdh}KK~ z`{ydeQ239Dm2<_9?mV_l)ArXpMg^St(VoXPi>qVn4;i+P+- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6a7b478ee8ffea9a5b2a433a111c57fd257a0f40 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiu62P978ywlcP2yFi!67=Dyr5u0P}7|NrN|yuWWR^5^^e nc!Rc$8#@o)c=6-XQf~&$7tW2&w!BY)IvG4&{an^LB{Ts5`QI@v literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..74f4ba883892faa7db3aee924c1811f0f2a8c737 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiqt(_978ywlcP2yFkaqY|9{56|Nr@yUHo`|fBnW!jwYLA fI(qZiCh#+`U3Y5?cD*(asD;7P)z4*}Q$iB}ja4h@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cac177496b10a6db81cb8f745d6ad6173f29f5bc GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6}5S~IEF}sCr52aV3Zcv&hSxK;otc$@9*z-i;TRPB`qzT zDK0L~w(S4^|LWbHorX34{>*%Mv|F4gTe~DWM4f*ehA# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d04835db2f5447a3af48695fe98e7f3287072a67 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6}5S~IEF}s&+WJ6I^-bIvj0Tf!I%r#5s{TWYi$DZHcU8h zXxi;175Vd~E>h93dV2hif%7@b2G$b?QfEB3yjHq&ij(Hksuf!=Rj13iD?OT`#AJN< z%!Cr3NfjPK{~5~bnab|6H_V+Po~-c6;*h;IEF}sC*Rs#t}iXHo#CUf!oTxh{{R2)CMh{HD?2+o zQ(ax1ZGwYQK*PiP`|Ek`@2gEtU@~%XoU_0Fe-o>tmc#@@4_0O)wQz8U}fi7AzZCsS>JinKgk978x}CeN~|G@9Jn$||g^tSroNAS30#nKM0;`}Nq3 go7>ylGvD9a%fQ6Xnwo211G0<3)78&qol`;+03_rmE&u=k literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f9f6a6e4e38d57508c56a97c8e0f2984f0b0f8c9 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{G!2~3?tYhc}Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JicCCR978ywlet#UJh3D<=iHGaCyubF&X{pfWkMR;#+eIE tI`~tYGiF#!l1kZYwdjqHclmr4h6g)XwKYG4)B*J~c)I$ztaD0e0sxXtFB1R& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..aca1e6a6cebb8c128ece5645fbf1449f04a9cd3d GIT binary patch literal 247 zcmV*-g7)8JTV`BL8?>|^z x?(3H?Dzp`)893P?fn0y{@k=%!jsohC000!c7S=)xafSc@002ovPDHLkV1kEDUey2q literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..07b36cfa64e32733da3ed799c22114e63126b1d2 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6)o~~aSV|N@9jUx%g89;djF4P_mNUnr$r2Td{!45jNW*% zTNNzi6xDFqG@F-I!GiOe*O`w`&;B| zMe_e%d81pq6jxrc$TfN+kvdU1Q+D=UIR*A@Y13>O%K4?zHpyiv16|AD>FVdQ&MBb@ E03|6H_V+Po~-c6_t6qIEF|}O`c^_X(TPMo#CUf!oTxJPMo-*p{W^}o06iE zo0xczLC9m;v}tJx>FMbVn)*%6`+xJv+x|~c)I$z JtaD0e0szCwMos_# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f3371171d6b4d7eb200f88bc685396727192e6b2 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6;*kZ>+3+SsO(B6Hae~4GG1k=%#|lI}W~4BtrKPb+EL$vjWrLVA zgOtVwhN`ni4j(>z;MA#8AKu(Fo^XU|+1~2!MlyCaKaM^=-v7HnD~mzvqfC`|`FS;< PD;PXo{an^LB{Ts5_UchK literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..27898baed443beabb73c21c570d23c19aad4f992 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^EI=&5!3HGnK8=|Nq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6_t3pIEF}sC*Rp!{=S}#t!=r(9)^zD691VGo}X_oDQ8!6 z;=_-RkNKA6-`{8W=lA!1M>n@NMvdubm>wNqn4o)#Nu-s#;l>NC6GA_Jf7h4Ya^VOM z4`T$w-+zClMI6>2)N+`UetuqK$eC2j!bdC~2e}pE*p7T<_{FfWD{8rICD48bPgg&e IbxsLQ0CzJ`O8@`> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0025fc9a498116223e1b5e512a10bef6c623e66e GIT binary patch literal 1013 zcmVRz{s)Cz0u?Nt#6o*$3dM>&3aKrK5RGqCv>^CE>-!mls7XbMqCpW+@qrH% zK|>GHF#Uap5v=U4iDn^z4~E&_e81n!&dkorIOi-Lh>H;M86=udb8~ajz`#Hj@s4;e z!S^g&8y_EMk#d_LN>5LZZFqS2*XZbI$nW>_rKKglyu2*HceLReYEX+lV`F1Xk7$A@ zot>R8hlYlJ&&|#8ot+(ietynFp^*4{c6KJX+J+j`q7V8)g90)&A`N1qU-pT9;l<|W zrZ71@J>|#8$GV^fwdjMs(16y+$OyYmBta0uwYa#*4-O85!O_uCRG<&~LIYaRq)}p5 zxhaULqoc#Iu&}^SPEPpY;o+Tt2DG3F?ZLr8c8OjPrKzduRbOA<#rF0#-{0Sl3DANj zwBga;-_L+vki_opZvX1)D&O1Niz(2AHasX416o0p#>Phb)YKH;-Q6_=Xv0Hp2bw_= z+uGVZ!C+7fr4c|I9&+T>gV=1ghh1G=f3fVgwzdob+VGHGszH>pva;8-w)w`!hM~X% zUhq^4l2BP$`FUbug0HWy8wxzCs;a)gQ!R*@f_(FOy?kwL%~0S0FL(h6cODk`$mOcsxHBY_9Jv~Ep8W@csvZNXtY z7x17m0%*enURsk?AuMjU+c!Bm$pe9aAwU}*@X}ho_#_t=7Ji_^44s~4O=!adUiJ0$+7CSJ#$7{fR_I~xpDj zXg~{^Qd_C6u4drIqatyi$S5c%_(8Kg+}qpBr>Cc*f(|}dAz^4hOKO^EduNwKba<8> z)3dX)-_lMPY-wrXbi5Py8wVUUa1Ax6MW39UoLo5)A_N6vSBdy_LJlSF>$AMPypK+& z)9Z4%{?O9nt*x#9fi_%24Qi>+b0Sr0m?|nN*ma_M!IBdgGu=u&wOA}K>~?#u!{Kle z-z848S*_MA)X3Tt*;k=u%hb5lE2k7qCLYL9N+X^~(qx-O)`$Q!LQIc4y@bn9333BW jl9*+i5{*#Y{afN6yV{f?|C8`a00000NkvXXu0mjfq*>Jl literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7d9fb3bbb781f8f92a1504f30bfdd89dabcbbed7 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G(Vi}jAsn*F0l~qOuU)@>KO-yam#|Co51wn+uI+YmcK)xf zruL7YoBKEa6Zr%NBfII-ru|#Ldi8JqMTZX`t~XLqRej6EX<};Hs5)u#v>ooRQQFbk7E_K!V( z{?5!fpZWgIZ%*d6t%i*j24bL}AZUJm9)h6R*;%L4IWse3G#VWaN1#$zSSXcBhlYlH zJ|D}n{r&w2f+Qp)SS*&n?*G4}{}!h?td_mjU6Kad-rW*QwWYCUk7d^e+sjpZAn6kT z5rM;`{~_}-wm+L@%+E;JphLm}C3WzQAQD0wBoY|rOTQX{(@pp-WAA8Iw0HKl|15j) zhGh(SFWu#5zUCw^T!}C~eC}~?{xG-r7ugQC>taC+|L^xr&a%{#cgUOZXIM&v?)k^2 z1i5%0!U00wq)r4vlAwXBA_m5J5WNeuBm-XJQ5pG4GD%vc|K){+TJ{AkHqN@SJKczX zU}QRd9n*_bf^h94)6Ctv{CUfz_;qs#RDuQ$DR%y1&5G-a6rhf*4Y zl+UOD1*GE{GQ7vv;c-tTIMkz0ovO>9j%b5hpa@a*CBJ#W!0@ndSwF|%hMkdFtXiU) z`BEp+yhkt8ZY>tg&uyH@%^%K4jDrbA;et&vnnzZ3z22@e6<27z2Vk13kb7OtISyxv z(XoO-LNQCZe3lfzc%*pNqU<9T+p~teThOEB+~e&U0mC|zS{Q)dJZ)!^1f7L(zg*L> z*vSW%?dR~@@0(}x6-V^A`~ImD;)NaBUnP8;RH=bS2@pk`wp>>8r&jGjmGPy%1BW}v zoPo}ca$~bze@efc3kapuEVW1!%teOZT3j2Tw5=hjiAf02d}7dL0oFC%@=RXp5Ow#% z@a>+AM|YWt$n&e`>sB-32gBcuTi>R>*|8@lp`y6thc7ydyqDsuUn~YzZf|{-R@-3y zL#wx{Ii}xxL_csiW*LBn0-A$>zp4WOmkf6=ilrjlW?-l9+bCd7|i?*b5NTmy<<6NZ0T8$SN@mwdC2f z6jqK=N@bS@!=YSj%>h0}*4p+%0HbTIrE$w7UMT6+AZZ&DAo*qZAAi(OtNbIfl#Dw^ zJWeiCp~zi#&t6x}m9)O^eR4HiLV3QA<<0>HZ8%$^lrSE94Wb}=+MM^!b>n#5&-JQR zkr-CEu9C;_F*7DqDisulV6Pmg$nFL0TPn%~*m^-`Z3^BgU(sNpnx%nW(!eV9A&FvI zHL3X3lw8Wji^6=8KbQDE-e%b?svdFxxdh$8r97@7$ojeI`6AL8Ob6QC$qh&>ZWVDX1F{0vJnT%%mE;GveKWR%C} zM&4d;Jf3s9|HAA)yVUPo`Aq;0do#)uHSXi5*QF*)x@MVVHr+cN)uMZ__F|&Ta#p8d z53TOKtce!PJUuie8UWol-S(`c2nH?UGqJP{!4RR4u$LCfn)q-hj0^f=h(VYy)T6eN zhRO!ja-aDBTcgeyP(8Ua4IdiOog^*CQa?R(cP#9AgL9`j>EX-6Yf1lzX(!~``M1XC zNmM<4<6d~wWZ$Xrk0K}UteTrq@LBBk#MsjkK;pbuVhe)NI7(7Pf(l?lxC7=1Z7Pzl zMbS;nV4NI5_N{1$P)&XC)huOGQ+h^zpYUZfb*1n6>!`#*b3y52LGmi+<4sY5jyD#- zw&$d}DTguLAfnRtjrM*JfqtHqUu6rQoU=g%1E9xk%;)TDm^2<8n-0IhTsQFaek)MY}>PK4;nBk=ow4pF>vzkO& gna%Org-kgQCf=+BeMi^RbuY;YE~rTjend;_cdi8t>i_@% literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2ffc73c8b44af8d784c58b18da775a3cf84b7fb9 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{L!2~4xmL&cKQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiex=q978x{lOwidsUL1#T`pl)^XJTm|NrY(B`k4LXKcGSePgg&ebxsLQ0L_vntpET3 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b5dad6f9f1f5dd9a65b9e113e5582f3fc914ccb5 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{M!3HGXPAxeOq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6`6awIEHY@CP!4fnrOp3p@UuUx5JV8HrLhVf731Mzn-ga vE0?$XoBreTclln94IdM<6Q?!LUC6*tW|!kH@iH+1Xas|&tDnm{r-UW|lW8&? literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b44bf2c1c8b8cbaf9bdc9dfa34156d901333e9a3 GIT binary patch literal 757 zcmV?O9fwiGO& z^!ECm;WRXp>2;E4Iq#hBoNvCP>zWDZ$~Zs==`bCoM$*#>I!UL>y?ls{P!pY{i*%K4 z&@H+{cZ&toQN8@)d1|5i^n_kgFZI(9jc5gkuQ$+XxZE{i+J{by4R78LG@m!_$~?F2S=JL@*S^uipv86PrkEB(brXL}3|v zxd);IzX&jW7{|nvOL;jOOCY(ugWXgLnM@YBTn;(xJ^2u^ie`F96GodKJ^f!{opr+( zjNngl8|idLc~R@p$wq3D=l_gS#vzBY0uiva{TG>R7TT}xhlox*L-%OZIQ0XT5gR<- zfU*J+Q0~#mR=z-w=x5iM8#c$1vUy4gWh3@NL|RhfVq_J>g zKhJt^KE}kwtd=SUsZm%YMQO^2W;CL zLVh?r!K&I`Jqp^zFzT7{Vc8$9_y;UDl;S1^&98+k8U^a{*jzXsyII=sd;p>7`uO%hyQ#D$pFhPfE00000NkvXXu0mjfP)S?& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..aeed868998a5331cfa617ff6588fbdd8841208af GIT binary patch literal 735 zcmV<50wDc~P)n zbYt9zTR#9s-I`#GiN+0X{1h(r11JO%(-t8%h8iLzvDhM@rBC~ihiNUf57XA#Qfe(m z`WXLH&#e{d<(8i0cX#)fnK^T2R61wu3^)x=0W}x^eV_+)f)1dPgFkn`ZEzD@1DC-? za1NXR$3VB7j6W8z0Oo)mjDq`M1Y89dM1;MdtC@rjAPJVhBXAE4fwQ1rMD?#^^0|q0 zK%;*}Pi8DMKJ$jg=Ut>(4YRBSR=@)=49Mu@!YpUCYGkj=e8i|;)2(qyHl z1~W|<9i+8KSQY~l;Fb{eH>RfA$rmWMQ=n`vPhY>~D4s}DU@J~e??;+9+e!0ci8R&_ zi!wqqEK=*0imf7?DpRdexm=-NdwWzU?ov9FtI3vaKAN7bi=ra6AyMq^x@7-hVX0K6 z?}Z{o;wiGa)@f?)EomK57A=cn4~pyWI8Y)*SFTj(NAYJ(#1Uy1JW{dw)~<*?>TD{J z4vRP3Z@T>pq@$eu$b91*9+HR59HEPj@xL_>0C_Z=#cYQ)73A{xV@M{3A1 z@k9m`N%-)seZlpcSN)PiFW#D3v4m^GDcRm{N|IS{1DsSWsUW4ycAlK*?6xIVZ%~pv zYdsxwGe3*hu6iV+M=q?v9+XDK(XMzi6sJi?q`hV{y0_YEdrtsSIBO4ZaG8%8tiSB1^t-icBA32*37oS=4}2 zxGn_$59%f>BPAx-V^PFQvMZxuc^Spa921Rnx0U53w?@@U*Qne=?^3eRe*?T2TJD~< Rp2q+H002ovPDHLkV1hy0KmPy# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c4d22bfc2e2876806b7ff0085afabc86ef1d1e22 GIT binary patch literal 559 zcmV+~0?_@5P)R5;6(l-o-JQ4q%GDd;KaDG2(* zg8qP@w~C~C=uSvCqO#~lN|}a{(ao};$jn^QKuNnmr9|1qwN*>ob((X^h%#IU_U-)6 z%zWqj7HV5YAp6y|>Y$;044S(qp>x1c+Ba&h9+_UUPRyRNpqrZ`TeR%chL$u2uUX9(hhN zcp1XbZ3OQhqWBbzVN{e*j7i8lFrY_gDxbA%UGF-*{BYzkic%tpsdO4;S;0&ugBkoR zK9Y9GSVVx!;r8KG=nh|`1irt^{9vwv_I^FkNE+6G0rA8u%8G)ykAFe5bjhmS`4qgk z;T;%|uYe@1bRD1aW%)>$zrecTu(B>vJo)bqe;|5?0F(7Cl}5D%2ZCQ@qcK@kLvC+C ze0+|fqH?q>6et*?@vH@pM?zFFA(&lMLnL_#c}*-xa{Yo0$k7^RP}Pr1HUf%55p@$( z+lWHP3=4bClk)5EU09W2c{GNNFt=!j1Gle&Kv&*qWJB1iGjWhQ7SpIrw4?YPLgiNo xf5jc>2Lfx`hfJK(v&&FT_%^aa7kGZg{R0EJ;&Z(8LHPgx002ovPDHLkV1kHp0f+zq literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8281342b392227e04a46bb724d3ddea9d7dd6bbf GIT binary patch literal 531 zcmV+u0_^>XP)l-o-JQ4q$@Q{YqJQy}#J z3B6Sm)kAk8x)G&DR-~9+C^9s$tSB-yEfuV^3lvIp(Olas)Lo~UEu*4x?ZDZm{p~mN z&3wxY^A4ECJ2h(;^d_rcGqr3P(9Ns6hK$OVo(a~_F~;iJw5+yOBV7PsEO>Mdf$$ml zLs4-1k6?565LO&6FfOcd!}`U>&OxK1se7E&zk?FQrFlqkJS0gfl0I7+dFEmBGvkK-5Z1tD9|kwKoCU8=5oMip5ZQ$lHhH35KN2fSAE(!6@een z_d_4Z=LLA=GjJKZ0hcdKptpC#T=6SZR2M`Mo-!{INQzi$U{+#wY%th{I-;NA0u zt7n#+48!R8SDmubpEbA^aS7d@+EwT5&OJuxaJ$hKJz~M^gA4_gAsN V^6MoiJhT7+002ovPDHLkV1flN@Kpc+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..adb302c44672eec5e3ee70e1c6733d274e3060e9 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-c0V2&hJg)&M$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GGM+AuAsn*FGmX>v)Ya9ydwO~{Y%t&!@b>azV$eCu%=_fW R>1v=l22WQ%mvv4FO#sQPAhiGh literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e1444f41967edf7b598b0e1bda4304ded2cf4dd8 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrH!2~4l?*DWZNJ*BsMwA5Sra(P@cil L)z4*}Q$iB}d}<-9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..549bd1ecfc443d34b7a853c13b6660d1795137e8 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-c0V2&hJg)&M$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GvYsxEAsn*FQM*cB&ao_>aplUDl$4YiDypijt*wkcvsp#% T?&>W7DrE3<^>bP0l+XkKV1Xn( literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..204fe57df322fa1137fd5394da5465edd594bad4 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-Y0V1m%Ufcyzk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X_&r@5LpWrUcN9H6b-Z7mQAmmdKI;Vst E0Epuq_y7O^ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1f343f5f82f8a223b1121eea63c71e0d247fcf6c GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XcsyMkLpWrUfBgS%&%pYR>EHZQy23zl22WQ%mvv4FO#mnv B9YO#A literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..168ffa240c122234572b5d015e62d961ba64b7b8 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-Y0V1m%Ufcyzk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X_&r@5LpWrU|NQv)`0??6M&WwaIvF1Rr$8wNPgg&ebxsLQ E0I5SB-~a#s literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..733370f793b7a68753e358645464b9ce2951fdfc GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^Od!kwBL7~QRScvgOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5i=adAc};aL6X_DSFzqW{u9{mzS5Ts;V;T*0MH5-cd{is$lSR L^>bP0l+XkKv9%%A literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8b3c225938cc986899836502850f9265fb8f1948 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr9!2~459xE0ADajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MFO5Kjv*Yf$v^)8x4*pHe?EiwD%NW8U}fi7AzZCsS>Jiqt$^978x{ljAC0O|&Ua$XaOM@q$&5d*U7*zrp00i_>zopr0J$Pb Apa1{> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f7474705b885966c4f9440aeca5635c840341d7b GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ&0V4mNy#E16NtU=qlmzFem6RtIr7}3CEHZQy23zl22WQ%mvv4FO#mnv B9YO#A literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..438c5b2c938758cd166c27809565b1dd6dafaa7f GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ&0V4mNy#E16NtU=qlmzFem6RtIr7}3C>;A-7yb|Pi&;F=FAq;5JM4|oi T-JRcn3K=|I{an^LB{Ts5MW`q5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..98b3c50ba49701890e50856e12bedc7f4adb3363 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ)0V2~P<~{>bk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X0z6$DLpY+7BPw1^v=FFf_?V*bukhEGm;e3e+59}u@PvbD zqo%-frjLFTR0Nt;EgB=_I%F42QkeVNK}g5p4F6PFVdQ&MBb@0Cq<>*Z=?k literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f9e23aab16e6804f1a211c0e7eb2d8a2e9dbb81a GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrF!3HE-TH59VDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MN*zFjv*Yf$v=L4d|cnwx?HZY(^er®v-!})jo_DvVn R%7CgEJYD@<);T3K0RS9yBXIx# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c9148da31241e86afaca82342f2de9da2cda6405 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ)0V2~P<~{>bk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X0z6$DLpY+7D?U9r`Tz2A|Nrq7uP*W{%;PyC=b&?rK_#Kd zy3s8fo3y!y85}Sb4q9e09B$lga7~l literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c43104a3efc6f68fdac1feac2ba46858a4a7fe80 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1d!3HGVjK4YnDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MJ}E$jv*Yf$+z}Ye*S-Xx&QzDb$_j9uzj5Q@Bjb*+#Qk= zKEyAJ-(M&D=kITGW+A&nUw(dmKBZsY{@src51E-e{(X5FEW_|J)A6%Z%JbJi^B6o` L{an^LB{Ts5v%^49 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..13b87439290f1ef41ebe3b9e14af7175cdcc5e6e GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1j!2~2{&iT9qNJ*BsMwA5SrDSr z1<%~X^wgl##FWaylc_d9MbVxvjv*Yf$*b0^nUa^6ckjlvYu|)jnt%8lI&|ps(xprP zK6(1|ri00Z{URzE`ihDN8AK8oE;{Vv71r0+m$tXJZ(guKfw|+^veYB zwVmRms*4jly(mdVQISA|m)c_&+gehXJ-1a=WNdLHRgqpKF!g8M&I}UF6WyWVT|Gb zIcxwS#I76PhGH9@N!s=cNO@Q*)vvVfv7~e?DVL4b^PW;?1WbJ$ZttcqbX*u?b|ml? zjM|p0LJ+KpyNK3uy2O?R^=8^5y|xNn%YCHd%gzjs$F%NMmV zPd*FFcSYbF6oe2nBje+Pho3)bbNMo?t?y_wR2D1eeSL6vge!0U$-gmw`KDvcLz7V5 zk-!^Z^$PLNk+HGkqbI*j>ZH;Mk#DQp%r4BOrs^_i1A$?tS(tOWj!5 z*6^lOMAyR91i0EjL|tFx-lx81D`TFUf_#iX2A=6J7L-s5-D<}TN4(Tqc-h5;=tv~| zA*Q56wLOH8^yPcC2T#NZB!u|R;OGN6wX%kZDAA!3DKS!Z6`BCkmW8n_jFgxNu7dqt z32^`RI{hODbG8sK#LfZ(W7&fT(2Yh{5kkQ0ug5DkkiCrNSF?mFk2x z2;FW&YmHK>TWBE(r4+vJqqXkTN>~fVkm$>yjp>aMkV4ekj)P7l@8o+I0!pc_=Q|N> zT)2R@veK!QL;|;5K?qTc-v{7Uvr_5nNhi^*)~-r-GaMt@XyDJzBC=T$_YdP54*``J z0pL>o>b23HV@EMHr&EA{d+Jmtw8r3<%XrtXV;ra3;mj6YG1@(2xZ_~C4vqCX8s=gI zd}Gd(XXj3ozHlrTE1G&8RjJ@FE_VKqZCdR{Y$L&NO%4^QUcOe-#+-=}aA9h_R=3&< zpWyvx9%DeaS{T>e(#yN?K1RqGWHyCKNF29icW!u*BAkS(5aR68zo&h9-w83ZdU=?Y#8(VXTtMGgX@Wi15l;5BCrQr_~P>T@&aJ7DAX|Y^4`7EN4zhf+N(5P+B z0tI)B1q7qSWg!RIBrCU8>puK&(_sW~5|$9+wX1)9zma-$43kdo>b=_LjEJt8Op46$ zQ5OC_?MNYBoq+O|1OVz<|JZ4|)1Ut1126sf!D7jA2mIy$fE0#1OnHg?Oc=;`8?B!h`fE>^R z<0s}3I|N*)5f24H)zGS>q%V;)vRVQKmr~SLRhzU@)i0Iu0irfiN}_ydYZ4Syl~S-s zA0jm+rU@v`gAkGsuuW_*U}IlD?)81{-PzalLoX_IYw%4Ib)~;{G`pJrZ_b>VJxfX{ z{68;kwg*J?AARkQJQ9lJu!Ti%tAbh!&#eLg2rWsVGrng%pD)9oy7uoc%r@@K3Day5 zmlD$o7t!DpW6{73-W z+aEQeF{`V*y7qHz8@5ECmmxl#M>221aczKn=o-)v3!}9uhKLUQ_2?hX`0&-9>~yfb ztLstwRsh;dHc=^7*v!}ZN+z(*ZM7w1Kc76LN--*^OexmJD4}=Fs3us-ap`|ehO~7X& zj|d(SeC0!VNy1rh3h!I4d;PBYv8te<<$}zGhN`fZOlK`-ZLnkj&nx_DWZ>QGqMC9~Xk=fR%1^Jn zBi0l$NF=k?Xgcd$n##$(@#(^uoayxHf)f!r@%h~N;1>eAW*P>Ych<)m-g^7(ysMn& zO9puE!2Uyt(V^i&deUD~UnvBWJ(e`%i)x~cYg%IWHdOGcDBI1tn_8-Ssr3<+-quiC zy~6R;<$ytEOKohSfEPX4^OC3g+254D4FN@t+;XPp4^nrt!Is*}$eF=JuW5UU-fO8p zgH>i;MYv^Qef9e4%4n+qO+#q!L~8EnY^thQS`{@`KK;~_Lb~40&dyHrLmkBcuw(ZR z+d@X@Zx8PHmZ|i};QXq9A|c{t!M+d)Y183=$QVL5b#hja2>KbzMKoZ1Z{NPh^h`Sa z-Gc{ydE{0fBfee1@Y`peI_EgnH(q=BCB3>l6pJUVYtl@`n3Ssvwhf`1#Eu*o=&N=- z`(jx@U((mxTS%v}oioi#U4nl_!>2dLM@K5cx(K<-vqrCvWfSA0)x_+wp`2Gw^fZo+ zjSU)_o)g6NSFa9}f_ru@W6ufT*=P4BUDrQ%edIdLD+@N8cCO;Rw@!R{=z~|c4xI1V zd7<~Uhng2f4FbgkaqAmzyk222UjLs;vYD533VU8S^t)5v+`VIQQ*E^|IjqB$=})i% z?piV*(TeD29Xqd%zIc4ZcI>VLollOpPcKMB>{|H&x!LF`q9zxRjl7|HyqbPaw>)KcpOSu=*s)*Oww(r$FPi6y z?HlGc0IL)L0HB*@uNS4=fN5-Otnqzc#N+Wa0KaG^i*k#y0azb)3I46Cn6z3k!T2Vj l2yjDgF$a9i_${01_YXwLbU*)u?alxI002ovPDHLkV1i{hj!^&r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..47d84e49d3ce9dd4ecc09856fba2a27325dedbac GIT binary patch literal 1399 zcmV--1&I2IP)ki`0G#1LCVYt=U3qabyHld827KeUCyR1~L`>fFXYh;;knm%W+$&@W{Q;sc*3 zC?bMITEQn`9|&`4+BI#=&Hm@sW?5{v*#|xF=bU@aJ@^0nzkcT)A(>2KDjUO8xAAzO z84!;E(s*=_*#qAJd;5VuJV5kE;MiEdBXAUgAiUQmQdn+uIDQLNR*Fa@aQD=ycq|gB z{uuam(mlZ4PJo*hZQaU}4;}!I9${fcg+w1Z{taN9^d#&BsvNm)~dQ}v~ukzQfm3q#c0n5$?NTTP@V_rCHV1jV;2f#jQ0R9B(XB8Ju zm%F<$K(1E~9)x=IC}M4GPzDCz3Pyo5S9ENZh z(vl^JUc3ljaj}6((kI^oc@qv`5NOCND>G`8c=66oDEs$AU_;y00|zkp@+HKM4!A-g zfo8v)PypN_qs>F+cDM@*HQIAxLI8XV6sR+1RJ!u>rQWMoVW_Bp zG=DzvPXawXJ%~gi&@>IA+YNR5cJ$r84VT|9Nj6(4d9HNa0Ep;M_{z(ZF{*jaTO!f6hiX!6o?!jAB#P>GQNh6FI08ws<#p^B0b~r?CnQ_MsFqcbL zW;UBs@9{C8V-5$*b#>@(ZAErg7Be`V^XMBNjR`yXi>nTX{`VLeHd$N!R+>wB2`sEtf-5k zD5;8ICKJqi_hR7jW7rrI%(G`Z`+(Z_0&s*v&qVQfemKl}&z;lVu2fZ}l%z7BlyOO) z*S)ZLGvv8*(NA9R1_H9k*k`{0*8dH_4eW9*U7Blr^-36c@&xLhJz!*IdfD;bYPIT; z35?hf)`kYeySkuKmDs#qB{2#`zXRZB3MoXO2OTqTEacyq!LMT9?ca42!+7 zQ70#fC_2aQ=ZXFKzXBlQ$T8S#2i&2M%+Gn5ERa{M7*RRztE;O~^)@%s*N4TpcrnZy zH)7!7L*%+#1`1;pmF2=w0f@li*=1#tcIOTfy}i2iqgkh)0kTZaVIwLZp0gi1q!XC% z{5fX%{p8?(QZ!4m-b=($H_PXfdvDx;al;14fxxKNb7^jFMoUY}sLHt*JRVqg?!@5J zr}^C113)9jDid(g85qSnl-sr0C_#`b2~dmWghO*RNsE%M+ggA>tZd*Rf#$ zrZ+%W=k@E;KG?R6F^Vk(4oN!k=%~|seaw4$#@pxg@jGjobJTOscD;DPuR^~Q0HG0o z-wVw2J6jr})0dLMiAih(=T$3E(*&F$-SPB`2`BpL^MIL@4~jO9E7u6M{)QV%K8dvh z9W?GH>DP5<+>A)K9vdSj_TtLRFAn|JQWrgEQvjy2{RM~kz?_asK|cTh002ovPDHLk FV1id7oK64$ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..058a6caa45a0c9f650d225cea4b6e56c756b5a5f GIT binary patch literal 497 zcmV%ET; zG4Im{Kkndr@AtiT-+dAQNEkE79I}8cBQC^?Y$Dsp2C{_AO5?!=RP2J0=yW<@7zTUC zwKHT#DB%Lyd5e;3wHl*PC_o~S7z%OyS}5THYTHkVx~?;d#UjYEJld34!UZ&QfRd2qq9~9` zrC4{EyN9d@1+7+#VcRyCrpXHG^*U6mRraLQ!Q6esEflod?Wyn)0=&j4=ytmkIm!ef z@)82yt@~@Dpx5h7@P) z*B<=H!M*ppckglv04O-tkPRe;BoGzZMfQ< zmbg)ag@sLGVWk#+BmM>}e}Pz7o8I)IKf^yD#1tAt5b<+~f{Mu|yU6aldB5%*i|pnN zwwdN~Vdk7OXJ*9AI7}#q3;~YJHk)@(pIKN8Art_+!(r$9#>RS@?sonoQD7JN37DDT zf#X+i+`j+d;iFsqq#rRDCWGYdo7e4j`|FN#UdB`^sv(ACZFTj+KFiW_v$JhUVUp(sGGg6p!H8yr5D^h--eG3+vy%QG$pL&(mbUY^PZsNx zq1^Y)%rG-lb^kwZuQVl1Gphi)JsYMbp)9Ml85t-dSgibr(MX0VgJc*1yox$S)VTvU zVTL*#sfdV(5pML>} zbADlBa`FO*2a8qmsBj;mS|<@|d6s?3v-F)D_MHC#d4&{7gzX`w00000NkvXXu0mjf Dcjy)Z literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..17b5a2b9e8b0153fe5e3fa556016204ec251d5c0 GIT binary patch literal 578 zcmV-I0=@l-P)VF_d9b8)F_Sp z5kv$LMNqKT8{L6dq9Cro{pczLy;Bzs`@z?^xvnH20-ALfD-ry)V7Jh@~xHCrw<-IzFSo#*i>aX z{rcte#$d3u8$u!ekQB1>_|w|j+wFe;8IU5Nh2DH|VX4Px903tRuXE+{rK@0$2?3|O zr+M}A<@}r1Z=TbNK$e{BjC1Bdlc7lo2{8ZZoQl{U87Ep12>YY4c80r*$0KIMjF}OC zO;bZPnM9xqjN-!L(*1?=7jJys=+mScBm~&B3<3-WBoQ>^+RfXm-#7a&fQPZSuz2yt z%AK=wb6s-IAh1oLfP$z~B4;CsSOhS1&z>pP*FK)373;cA!`(fq1WigDk_dn?wrR4F zpa=!Vl&PUCs|l@`Qsez!CAA|tXJ(9P86v-e zb4Y@0m`tZs)g;r3A{3Gcfg`pF3K(OX5Cj6UDS{9XLO4Y$?(YqMeEYJ#(>u3VlRqVYp=0gXf0Nmz3jTl)$e_~AK|)9ttD;eR&uyP*rKVsn9PZ0~_niCjh&mpR zbdOnK7|KB@byD(uU+~kSD1v+0@Av(~;qWE!eb?`HyR_TwAVke(Qvl1djN&+^PNzfd zcAHkK)$?>Z9r6`G2CEUU*=%UJT#7eMlN`qpFhSz*xI?bzd2h^pln$z@l1iu!*tRWI zCzFZ9*Xy;!;n5w=jYb1P5ExzwV7A3#A8l7w2V78!;i+Z_xBwNHp#yjYs1q&Vg>JlA!f*gK2|hWXnBj1NXRpU+>} gzpHzH=T89!03`|u*fZPjrvLx|07*qoM6N<$g1ptjNB{r; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cbba05f64f8d646e9d1d289519c64402f917d886 GIT binary patch literal 462 zcmV;<0WtoGP)M6k!Br389lGi^i|%`b9-suW%TgL5E>sl6|Hk(XJc)?Oq60r(ocX?a zGm?lr&*?vi;c!T`T8(^8LsPoIgUe?Wsz;$)NZ$_ z)oL;IdYvYd37@Dno6YxrzyAs!LYz(~9_4U2(003}{eDkE2x>GM%x<^iJWkZk=QA0G z@$Gru8#g!}kDSB_Fxqmtq%=(#n2^Vb8lG{1yzm8=a|1jm&}^|-P?97}mSv>tI-jT& zwcM;Y0oGWpR;55w^av!>kM(*@rfHS}jcNez-3r}qx0Ht~s7b1#sJ&T1{ee|c)ZVP1 zCaDT_^L2&!e11*hg{lf@)MfCBIF4zv+3?GuX&OaQR0=fE!UHe9g{SFs`uQtECXz4= z$CAGXjG=)R9(aWuDV6-lah_+hSw~_^%m<*>ffgQkFNuc%57ooBR{#J207*qoM6N<$ Ef-&;RWB>pF literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7b1d88f8b7e4c4650fa45caa4f19cc12ce73e9bc GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X3OrpLLnI_i4?6N4bP!>e zlY3i%LbG{xEOK7W)$>E)ajO{bB&~o66F+`E&d;$}UVX;@lysoo44$rjF6*2UngAYY BOA7!1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e9d60da1d07945b47804fab97fd26ffbc0608492 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X3OrpLLnI_i4_b3E8Hz9*;M}vjLf2Y9TT#w|MLJjHNa|gG zA=Yk=UB-dgU;Vu@du96)BOSkrP2)YWVq#EKCYM@IMS=rgPEE*{9gljLtDYPPGhTF< zSG;5fbG7fW7CG5@8jX{eEmBB!bL719ch$Z<44SdJnvdVdJO$d#;OXk;vd$@?2>^Ky BL+Stk literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6500896891afd6e7aa665e3c933e2009e6630fe2 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrE!3HEhySY69Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JisU_A978ywlYjjGZ_mu!#K2T4aFJbUkwXh##{+i39)_Gm VE@#_f*-)TT22WQ%mvv4FO#p=BA>#l5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6fcbb9694db2e1edf337da5d29a544a7845a7935 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y@!3HFyABb!LQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiiA8}978x{lM@mW1Q?Q-75spPyk%IpOJ;WDSr z1<%~X^wgl##FWaylc_d9MPi;Vjv*Y;$v^)8w`VrvVc~ShVK~CXaO9Fuf6X86XrKxP MPgg&ebxsLQ04k;*S^xk5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..71857276c74f598749a3e255b3d465a4b930d92d GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XB0OCjLnI_i4{qc=WFWwB;CKCLi78sVzxmxx%J?-(FZrSO zhufT~(PiPn2^`+ei;^F-Huh~Y5n=PInds57bm7AT)#rW|DhF0P+A`6jM8-_0@z7zn dUz{zy+|R36XZbH-;RD*i;OXk;vd$@?2>=HBJ<0$8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e597c5e7a08df22cac4891b29e04c1aaee539887 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X5v<)~x9#sB~J=qKT*wn?79Q(b>UKrmcn&*Y8Vd^09( mR4(&4c|%TENs_x|zW(1@37>?5#6Lj07(8A5T-G@yGywo_WkMhT literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..483e391fa1229cd9c441e85eaaa14e6ab96a71e0 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr7!3HG#Z-iO_DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MWUWAjv*Yf$q7KflElU+u#j1)f|2nhgSR|4OFB>igQu&X J%Q~loCIF#!8ub7G literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7ea275e0724848ec35f6192dcea8f5d93d8a9f71 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G!JaOTAsXkCfBgS%&ulp(kt4gMsYs!Y{fI*2Oa~nfA(bT? zWmYjtzE^X5Y^@{Zcw@$dWB)BSa4Ys2Z_L=`-4o2Zu+HgPicgQ51cPRoqnN}ZO?C#a Xn5!GwW}0dMjc4$5^>bP0l+XkKM9Mdh literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..78f90eddb5d2f68091aa41ba99e6095970241256 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Go}Mm_AsXkCfBgS%&ulp(@kO={`=j#ziV120+(L^t{;^lP z;oEbp{QpMgWGAUYMsX*p^rVX=(|6H_V+Po~-c6={09IEHY@CUbD={W;H|@~^SuzQQBxjvpLKaZMf73XhaJ gELfDx8agZ)V%kOf`Bt0118QRMboFyt=akR{0DLGYIsgCw literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5bc78a08a68a0433061d3d52e32b15b7a37e73ca GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrE!3HEhySY69Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiex=q978ywlYjmHU#}y~%zQZA;v=hH4Xfb&he!As8U}fi7AzZCsS>JigZ0)978ywlM@;k)_wZ)>Hi6yashX~QyW+Tmwc+hG(CZ7kd7E#SPTR;OXk;vd$@?2>?^METI4Z literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f555903ebe22bce76815622cf3cf34574834c2c7 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrK!3HE%<(K{hQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiex-p978x{lQs19|DR`IX;g4(e)zv$p+ABtRG;C+OoavU T^}Zi~>KHs-{an^LB{Ts5`H&(r literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..81e575fbd4999165d683fb9916f82ff754e4c020 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y~!3HE1UzHvKQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiu65Q978ywlQs19|DQi_;J{G^)^{hEwgvRbbS!3knsK3* nId#Y3m8U}fi7AzZCsS>JigY|(978ywlM@;k*8O*AI8(r0_+)`hw17MFsf!EL-T6B1 jKFn+GYP!oNJb{_vT9ZZOZN3BYKz$6Ju6{1-oD!M<=zS__ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5f8f753b66a021cb6be160441ae570610edae4dd GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrK!3HE%<(K{hQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiX=Q;978x{lYj8D@Hhx?D49qcuo2==*~?J4L-~T)6TiJc OH4L7velF{r5}E)fG#)+x literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..612a5ac4a8c91a2ff8c304dfc397cd13a631fc5b GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y~!3HE1UzHvKQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JigZ0)978ywlYj8D@bK`&@B}>Q(@EfddZN)nDxi<;u0=qb k^%>T80jdexPac$Dke0NFe9^Cv2-L{n>FVdQ&MBb@0F!zs00000 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0d2567cd01553badc23cce79cdaa7bbd95178927 GIT binary patch literal 4481 zcmeH~`#+R<|HrTEn)6@`GZ=Ch8XCe5Qj?o@Cejd^972(C$hkr})T*v)q6QsC5-J(V zX)GooI_M&Dh{&O3Z;DE*wl-9|wY$|lJ?`)QUHknLzK{F*<@)*ke7|1r*Xy&<&6T@0 zln3yD-vHptmoNSO{Y6DZk&%&hc6K*z+>p!V5{V==HPz40&&9L#x>Zt}09!SDtaY6tT z=Ry>=Qy>o>sa#`ZD3J1a{4!T7i!Me}%@6gWJJ|+|q*wkY48E=Ki}|(G?U?bd<_+BZ z%CSt(lD^_NDt`#X;KSa3^m&2YNT;pb(cg0AX}46j?8NZ|Tlc28R%;ZxZ)H0b zVK zrQn2(EzQ+kWyBnEfV^?Ji)>RdBt5@qF3dcjp{G`(c;f?l(=1IV=jFZ-xzBb7o7W!R zo2R3B*`d|!{$P&o-uJ)TUybRAT`A72I%6izj;DQ?B-+FTHwr@Q2OMl7Mj9+=4}%@G z`O!^n;GBK-ve4+GgwLO?vutPgN*?gtDXM<6?;A1ckm~Ac;qJEz$h{+zL0t-nqQqnN zA3y>j42p>~vsE%#sTjoJEttGSxFZK+8#~EZxYV6Npi1a#rvVr;_*RZ(PQ#l(9Il5I zfWiZ(Ahvf#>teY0DCyARE4Rj~^&pXQ87o4|HzBrBwoUto*nEs_joz3Wuf{JE-(vFN z05G>1M-rJ;eXutcW5a9Prdn)}u4d6j%6#lTRFLba!ksnGw+K096+$`gFgib+Y5mc5 zM_S=Dke#?-azS8&JkN+Tw}}3S&dkmSr~IL0#&7Wb2O)&QT`j-8_z4rGrTVG=JL{?A zDGQ$;_58sWPo=5+xk2IoHt9Bj=HFbThlb=~iVY=(ezMR@KkB6F{N|OsGi|}U_wlkb7FJPFOw4Z1;GY+E;aArA@mF(lBFmxh8jpPrQb5OEcjH3(aAdE)^=CL z!GF3of4|K-4ym(GIdp!F>0A*$BcoE{PpwFC# z#aJ?(F6tSA0f|0=BIJm|1!BCn*s-^v^p2QjPO+3Om~6xll3qG07GM_;uMu%MIv0LW zMsgwt^fkuZtF-W2SL|S4(UEVZ!gUd8!efZNR>mZ0-}F`)Mw2CD)5FCGUQ^#x*gSpz zLa?r3;U*qG7;!&uUGCn(8H2X?Jhu;`u6){!9jVK-6rykjXT^^LlGa)97{Me?dw(u# zZ19`qC-Kt{-wj|6g8^Qjnv$a?oJo(IfMIlJhI~y}e?STl0-eOY!k|gJqlRhaG0&zZj_ls!AnkE44KD?-*vn7=n^f zG}X8RA)1&_+01r0N7W8u%QV8oSq20L4}s962hp*ywq(l6H-U5wz39T}<#0BcKHBeQ z8zI19m2NwSt^o4zDhaC&428O7VblWjrK0B@1zT|^FJ!$#M?s8=YEO~f&uD>_GkK_p z8MURt^#@JndAlm;s-C*bD^h_BEW+h#eqRXJyMmO^^%*a7U%EAA>1=e_|G>=oY}ywG zr#|k^8S%-%OTpWiNk}hH<((;Lt`&>%L*&BhRb>I!>e_c4s%~zYX+w{EgLP>9uziM( z44WQW^M8!QUV3Vnd=OF&-=iEJg46|$%ppLWLuAC#15ngeOu!5O6nH-cAvP((vbSN@ z^%#loWhqIVb;WS^9>9vGOZgzig{&`SvLApp;J(q`eNnww@+J3T2h_9|H1~06>TCMB zGdK9K!x{5L5ps^Y=efs9s##|}fE{H?n8*}1UTyWk*v7f7V$Z$TS0!AVpSl@JOZAj$ z?G)e6Uglb>*V-`K2eHgf1feSe6&MX>(~q>7tt}XJ5q6;AUF0Yb+Ym`?eH#E&*_U-R2%?~T7bK9CpUYbJmA?kcKFed4sMDYsjA?x0~IMgIANL7CVn$OWP<*&M|D> z#{4L3B_7w?^P+K2-wli~yXlb*xA)ZwT@^nKYETo^p-BGQ6^Q4aCJ!^NVYCh^+fIrzm7p>Au4FEMocST~>csuf z2X$7=l=uk=qg`(0IfULn9yQX?O!TjdYms%o^myI6X8m>kYccK@AMQZa-8Xu3Iq>p5 z8O9{l54EG^NVPX@o%UKMI~e2TuW1o6ndrc8_q~OgyFPq#M|;XxrCPo2ObS#yYouMj z=GvjI!CStlI~Yk{QY9(MuKl-AQ@)#UYE0$3$#^|TCJN4^p`i$dVdtPeNg!@(lU`Uzm0&qnpg)Y5fa_1s$!^tyl z$xrVU_?3hWTpzCRKPMz&U1iLHs zk`}5P^$62Q(vvu8g@pj&l^0jVO|R}b*}C?#2OMx2o$1BdS~*EyExx>8QsP@Xd>~Ld dfit9yThsU(e{sH}?!sX@gkN&4QHK9N{skH~$IJi# literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..17398406c1d6b304bcbb3d6aef008d048860135e GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{N!3HE{4j&T&Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiex=q978ywlYjjGZ_ms;lSSZ00|&2wBBN4;0}D69`3)+W URwo>802MNLy85}Sb4q9e0Q)2$*#H0l literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0fa178fb88018d913d50feb3af6c3b1003b9fb73 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gt36#DLo7~jy|kC_kO7a|#cYm_MiA&!f0ih?-G2co$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G8$DedLo813oqU?FMS;gv@!{q_D}KI++)HK!C+86YwNexyV98x`Cbb4vy`7MxF|RM4U0hNq_ql6Yg1GMQUqS>b;BW9`G%%0TKT6Eyy?2H>u3r>1)o8S8K z`0&2X#xGk`I(Oul{(r4|&rd(eJ8+V#Vc8G=8plJaFDSr z1<%~X^wgl##FWaylc_d9MM|D7jv*Yf$q7Kfm?Wn#jUkCwVH@Kk0R_Du|Nq-F8%i*2 XoGWj9V|8x@P&I?6tDnm{r-UW|g!>}W literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..aec43cd340fb6f474291fd35fa1361881025c73c GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^fDSr z1<%~X^wgl##FWaylc_d9MGBrSjv*Y;$v^)8w`Vq#;NWVoVCl$hh+yteZJ5E{5y^1z Wki2p84W?9}S_V&7KbLh*2~7ZR-y)j; literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..039ea0815237092a8d5ec9e98c794eed0919066d GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{N!3HE{4j&T&Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JisU_A978x{lM{e|F^Nr1K#@_&#G!@v@c;k+B~Pd@WW}pw Un(WyU2UN=7>FVdQ&MBb@02-G2co$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GQ$1ZALo80Ooy5r1V8G$JJuSEQ#lP~`2HA~m#?4b&_z!>h zy2epLTkH9cPk;0R*ecYPes5^3IIS|tV2`+|he$)qUu|PHmK=u04IUO-61c3J8}>Re zuowB~u9bc0e6o}ysCt_|L*AiqO^%zo0!9z-Cx4xBqV&Wu)`j<2oK!PC{xWt~$(695osT~+`9 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4914a6a50ed834be54b7a75f40366d307ba28b66 GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2co$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G8$4YcLo7}&otVhiWWeKQEz{H{QD4FOzMgY^N>kTr=}gaH z?v0yIayMT%eqD%Bp(!?F&f4_N3*s}~T!X%!{_SccA(WSN&m~Af-7=rU>+zIILE(c_ zBZ>lrZpKsyDaSVd%Wyd&{U<=NWwpSGBdhC=t#ah3aCeomnKaq(mCk3iN`bXE`n69Q z7N38U$;8U}fi7AzZCsS>JisU_A978ywlYjjGZ_mu!#K2T4aFJbUkwXh##{+i39)_Gm VE@#_f*-)TT22WQ%mvv4FO#p=BA>#l5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7b1d88f8b7e4c4650fa45caa4f19cc12ce73e9bc GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X3OrpLLnI_i4?6N4bP!>e zlY3i%LbG{xEOK7W)$>E)ajO{bB&~o66F+`E&d;$}UVX;@lysoo44$rjF6*2UngAYY BOA7!1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e9d60da1d07945b47804fab97fd26ffbc0608492 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X3OrpLLnI_i4_b3E8Hz9*;M}vjLf2Y9TT#w|MLJjHNa|gG zA=Yk=UB-dgU;Vu@du96)BOSkrP2)YWVq#EKCYM@IMS=rgPEE*{9gljLtDYPPGhTF< zSG;5fbG7fW7CG5@8jX{eEmBB!bL719ch$Z<44SdJnvdVdJO$d#;OXk;vd$@?2>^Ky BL+Stk literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9e2c8e3714178c3e31a483341416146d1562825b GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRT!3HFG4z<(*DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MG~Gajv*Yf$q5Mw0t`va3VuKS|F>s0<6-zEE!5wz?dmO{ O8U{~SKbLh*2~7Y~&>$!P literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7b93553ffe511430568d1adff04f285393b5dce9 GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRT!3HFG4z<(*DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MPi;Vjv*Y;$v^)8w`VrvVc~ShVK~CXaO9Fuf6X86XrKxP MPgg&ebxsLQ04k;*S^xk5 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e930dc7d95cb687048207f8fedc8e3b05d4ed33c GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrE!3HEhySY69Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jiex=q978x{lM{e|C5equU?H1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XB0OCjLnI_i4{qc=WFWwB;CKCLi78sVzxmxx%J?-(FZrSO zhufT~(PiPn2^`+ei;^F-Huh~Y5n=PInds57bm7AT)#rW|DhF0P+A`6jM8-_0@z7zn dUz{zy+|R36XZbH-;RD*i;OXk;vd$@?2>=HBJ<0$8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e597c5e7a08df22cac4891b29e04c1aaee539887 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X5v<)~x9#sB~J=qKT*wn?79Q(b>UKrmcn&*Y8Vd^09( mR4(&4c|%TENs_x|zW(1@37>?5#6Lj07(8A5T-G@yGywo_WkMhT literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6a016f697e82f5d1c7f7929353faa4b1af196900 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y=!2~4#xfUw`DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MM|D7jv*Y;$x&R)J_`*FeBo!C@$V4BWqApQq{PXt9kNY~ Z3^rSRAL+XMoC;LU;OXk;vd$@?2>{MnBrgB} literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ed3225ab5284a075f6c05601a3d15a6fbd5f4eb2 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^AT~1x6OdGm=Trhxk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XlssJ=LpWrUV|JCS?Cs?h78W)(Hs=Z& B92Wop literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..722ba600101087b71ffa9b9eb5e49b77fd3bbd9e GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XcsyMkLpWrUXV}$RF);Tr9`gu^T@Dmy@O1TaS?83{1OV~= B8s-21 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9ea5bc23b5b987ce28a074f443b4ee5892508b3e GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)O!3HFSxVM}GQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiX=Q;978ywlT#8B655i&G}71~zP!BLo`r$^4bw4Y_P_6d PY8X6S{an^LB{Ts5Wx*iI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0072a2206a89e285c2b2ee3b8aa9dbd4e2c94fa8 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)O!3HFSxVM}GQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiljYV978ywljqpg{`!CBj87#STig7AKhjTsdq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6&ZNCIEHY@CP(e9`dY7+o}SLOtp5K$$Ik!%{~H_p{rg)y ol1HaofO)e(jESt9n_CaVc?(0Oqmy=b0QE9>y85}Sb4q9e0QMg(asU7T literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2536791f7e2e89ca1a5c6db15ffdcbac37112a7b GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol;0U|59*B=E^k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XrhB?LhDe0x26%HhEAsd#>%aZIP-~p~`WMeF zotkoGJ0AHMc|I{@n;I17QgXJ!$hdLxoX^%RA36;ueV^x(u{KsywdkDgqVIkUXO26& zh;=dqsGbO5+8+6EMw#~w#jV$#uD+?(V8gY+vB9OO%lm?0`3%tyrh2pFm*1Mryp8=t rGV6)I);<@y_S^aeGych5xP$SO?-cI`uO>bOI+4NC)z4*}Q$iB}I7VHU literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1878fd81ec239243d80c398fc86841198728be3f GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Ol;0U|59*B=E^k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XCVRR#hDe0h_8;Uutia>?R!e4QImflc4xfvLRd46|?qV`- zIKuGY$zrLC98WzDHnrFDvGG>&;#KEJ+rtJ{yPwJB>= zpUZsvUA9fxY4Hh(=3g>Sk4+MtS@<>v?wY|b5);=Y$ofToLHU{BznnT&Q?Dtm<1xI? ncDm60ikFV{fwd1_OHX0G9x#PFcy5w5(0L4=u6{1-oD!MDSr z1<%~X^wgl##FWaylc_d9MGBrSjv*Y;$*0brPv_#|N=iyeNnv74OG~rp8U}fi7AzZCsS>Jio!fy978ywm-cStJ)j`Kth;;BKiiC%@7WiotWD>imdKI;Vst0M=kU0ssI2 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..5180605b257376753dbeca88b83ab830ef0fcd7b GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^%s?!}!3HGfElOzwQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jio!iz978ywr}l2-J)j`Ky!Ln3EZdBk{f-)u+}{@b6zO0R zboHvVJH2emqqU~xpD_c>U$? d^y~W`GQRH-OJL)-)dE_<;OXk;vd$@?2>?n6KDGb= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e037d82b5b4caf970bb111a62207578a38b411df GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{K!2~3KrY&p(Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JicCCR978ywllK)oWGYTeQ!93JW0QIOXz^tOv!40$=AD}} tZQ8LpQ>L&SD=aKLvvK3bGhtz241aVK!Y*FhVFA?7;OXk;vd$@?2>|pKG3)>U literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9ac0cb8c32f855040ca3dbb6fc31030d3ae10bbb GIT binary patch literal 322 zcmV-I0lof-P)~0kTBD z-K^iP)qk==z8N8Q3RTV`nAk=_HufEG(Cz!~w9WJE_}zOyQ23$ylg@!+*Ez$EBqN<) z0`&~!H+GY7*qgjZz$7-4aD2W{4HarFJ&;xEELF(vml|Xnnsg}|Bwe{QrL0nu22CnW z=|l$UvL(4)#8nN=W0jlL(<*APNY$2f#io|3Q?eG8_Mq1fo2IErgSUjkwFWOwNx&In zOaux3JAWc8?hu`U@dn^Yv;n@cZ`+o#G7$;1hC~1`gpf#b4<|7BeOVT_u4}f?ACL&p UT9&6-)c^nh07*qoM6N<$g5=kTj{pDw literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..fa36e515edc4b84809f936b3def66bd09a82e173 GIT binary patch literal 339 zcmV-Z0j&OsP) z7D$spSRtcj0h%yDwg4wGXZd7fDdF#Y67a8=WMG=655gec*4ih=G34=`>AKEv0DVAQ zFu!9QP2JP$m#svwdwpwnOkKqOFg%1@MwEpd?ss8m8U}fi7AzZCsS>JiX1#$978x}mi9MtF&MD0O3wcOKWX;W;8~ix{0=E7m6b~} zs_VOGCHzZt6?8DXHhbUH$KPh`S}k$(Y-QG8rKZFRX7LBiPZ(BTl?Ix{;OXk;vd$@? F2>_x;GoJte literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d3e6f1fc40b3a753aa0cc363b5305b847bcf8b1d GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-Y!3HG1DAjiXDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MS`9#jv*Yf$tej52LJy5->=WW70O&MuWcj(lw|O9^>bP0 Hl+XkKn64cG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9fcb6952552cd4c9745baf09aca680a26c6db064 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^Oh7Ef!3HGf8uwlTQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JitIgI978ywlamq>4F3K9U(YPe%<_lb@Sn2rzohg(%#ZG~ zNYpp}5chea-gP2=28U8U}fi7AzZCsS>Jil%$IIEGl9UVF)#uR(!_C4jvuH%vxGIBe@np7|M<7`)~; z3nuqGKhM3Kckg%0ZPyC8AN9BFczZC7`H0kR=}2Yiud~G*%;smyEJ^%&vz>KXqw7PS zo&e8hnmuQgtB!=XY~Lq(Sjk7&?M(C4yQ?L+CIu~BwQgF%w7x{aX$fUM{1Tp82b~;> s7wk;m?Ekk|Yp$xM>I~H_tQO6C^u5^UK1e)o4|F1fr>mdKI;Vst0Pwh4N&o-= literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..109156c56dddeb44fe18147a4fdc1ada77ecf30d GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{R!3HD)xzi+$Q1fH4B<| ze_kw<5V>Q?f)_ga4V#VF%FjsV$VHmf9QJBhmn2mzK7GIR8U}fi7AzZCsS>JisU?9978ywlT#8B5>gr%+%(dh4xh=G!OCl_yfT%Afo&^; V;pMLii-0N_JYD@<);T3K0RTNWA+P`d literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c8ebdd586c72441f3a527faa8de5461cfb84cc10 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}bl$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gyq+$OAsn*F2?+@XK&~l+;Zb(A13(sor>mdKI;Vst0K4ZI A7XSbN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..239b4038b261ecc595ce30a01e03465bf5d7cc2d GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^!a&T(!3HF4{HDeLDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MRJ}ljv*Y;$tej57uX-w2mBH5`oG}eevcpWQvdi5Gt_(( VVs5$PX9`rw;OXk;vd$@?2>^tMB|rcG literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..624d9987a586a1e7fb4aab4cb02d0312fd4bc4f4 GIT binary patch literal 258 zcmV+d0sa1oP)Mj{N9ajNO7-mr4{{XFE$;aP*1+HwrU=h$BKtaF>3IpCBm$+W-In07*qo IM6N<$f&&X>m;e9( literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..80b9a7523d70132c7565cf6284a80e095739379d GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{J!3HE}g>Tsdq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6)AbTIEHXUCnqH&7$h(W{dYVPAM%J_t5L0O*$??UA_m=z Z49C6;sJ%GwB?G9M!PC{xWt~$(696IYCKvz! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..eb82b4b21f66e1e00284025ce64332b5fee155a4 GIT binary patch literal 260 zcmV+f0sH=mP)+5fDM43TrO;)`}B-x$WD?V7~B3dGW6}@fg!-IkyEac8J}KZ zx|s)n)RLYL?9JGLr2)TSU#^M_#tm#z?a<7=ovyNBH7~R14F$DbdQISM*FnyBttA<3 z`WLij7()K6EDQk*9V9Z_S#>55wNhC15K{{asm#h2K`iXkfvVjh(a43f`#E<20000< KMNUMnLSTZB(P@DI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f43a3aad245ef5ce1ba726bcdeca66d9c5ffefe9 GIT binary patch literal 311 zcmV-70m%M|P)DFc3^a4!wq4ZB&Hj zBO>%WeUtdC-g_!ESDQ5}6@#{wm9$;hONO199g;})t}JvF`W*Twhr^Q);%comd7ewH zwLl;XhqtmU51e!6oP)Zq?+8>yQS5N6X&V3HMc`tLkzLn$0AMk&S4#1=ZCP9h2;}bj z9zKE5dIHED^Zy2Bse(A$MBICi6F{Sy5(oO`v_0sqX2o&)DGk_ck0}jUL1Q*uNSE&7 zc1I`ZcXxOnYq(l8-Gp}2-z#EPwD&>(`slIK?f&;)rOWDz>H#~c8*fMHB5?o!002ov JPDHLkV1n}kgg*cP literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ee4dba58ae89cb504bbc985a81899468e1f03cd2 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^j6m$i!3HEBO4k?wDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MWLQ9jv*44Tl*dP8XP#7rTgk8E-(Hhf2k@$IQGa_CyrpX z1ctKW?`M@B8F)&tGW0BQ3wKCc#5(EA3||Iah03+1JMYg-JFUG*?2fs(xB82Jv8(Nr aMCWw3z!9P}J$0fVQjpUXO@geCwO{5&QA literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..76f41a64e3ffd9b95e8b1624c8dc376fc3edb364 GIT binary patch literal 331 zcmV-R0kr;!P)GfH;@BJ+qU~@nk>)rRbAI_BC-Y6qN)tTU|rWKKv5L0z^9lQGyA^REX!6v zC3qOeku*&cU?Zw(Go5pmBng0=O!zp_n0fu-;wtAHK5tJ%6t^>|YM{n7R~9=*xT}le zs)|p4)j4=tjt~udg2vyKJl5{wcJH1DZ})f~aa}Fm?t&#oypP+-!|x;f>kF^_al8Kt d7_ln=egRV}(3a(hmM;JR002ovPDHLkV1hgFi4Fh& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a38e4dad1b09bac67f1faf1737e41fe30e206010 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ&0V4mNy#E16NtU=qlmzFem6RtIr7}3CAUyy8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a2cebe44fd81c03b9e001e7b37b39fbe7b932a1c GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^Y#_`5A|IT2?*XJFOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5ip#sYL(s7XV2FVdQ&MBb@0JLL3qyPW_ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d1b3faf370e12a8a129cf334a684fea400fcf617 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MWUWAjv*Y;$q5Mw6(<_pBqStkm^U+czh%ACbhqUwPyvId LtDnm{r-UW|&*C1@ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..60e25e8e0b844ac30a4c926926d4e1757e139e7e GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^Y#_`5A|IT2?*XJFOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5iuhQZU-&t;ucLK6ThXgIzA literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e2cf52ed19e9a1665df54d2f04130f2f7550a8fd GIT binary patch literal 589 zcmV-T0bBMC9rW*W>Z{K_-)V?|Ggd3vh9=y*3UF4_-24Y4D^}Dt$*N7K?`Mc58v< za%teeIUO$ b@pt|QBtgxP5EWI400000NkvXXu0mjf9YPDO literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cd922a599b68d376da47c00886374b50e8fa138e GIT binary patch literal 608 zcmV-m0-ybfP)dUtSQ{!rV<^S~8kRsn3vB2HNAmeSC-+X6Imw%R zdAEDcz2}~Z$k_?byWQ@SKp=4G@p!JBPUjIY!=d3h&76iGq*AGmUa$AJ%jFUciOvSh zaAsd$Yk91cq&k&tvc zjnRM^4$UgMCPS8j$N7Bzo1Rgk(WvMag|%9(q+Bi=tk-M9q2a+xhAagy;_>(|1SKVx z%gJ`THG$=FX~2R*!-JO$Sqff9B9S9oEtN`AEEXl1Ov-#dH$fIN92y?Hu~_V{N)8I% zW-^(ZLZKk_dR>~$rZFuRi`xQbI5a$X^}XDv^u`oatJS@2Xt&$4+wDwnGMN~#;Lz*` zkg*FK!{P8}rBabrt0lEs%>-t%nds3Bm|19e@RA{GUgCbgcdK}`3wYa{nI{2eIJ*EZ z8M5XxDn95_ey}|ZoU_qrNT<^=V1`4(gO?0hbCDF!6c_rbt_Fj_vDfQKzu&(DIJC`X z!`3gXjJZhWDl1+pJ{=B+>U28&Ga8Nl5dzF`s(n|_XUltgm2L2YJXO3`d{yKXeGANR uXn0Kcet~_QM~dePhvJ|4*$;J)h=B?K00000bw z|9Wd?p#(;*rjTt$3mB)pzrWxA*@FiOhbAPXrCoCoXYp=exKQK6nbV}~{OJDv`o+^O j-~Xhj))+cPN0woYK`Fn`3E5>pix@mz{an^LB{Ts5P8346 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..05e7096884bae4baed030012b7ea7110b6efdf2a GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^j6kf(!2~3$JFc_>DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MM|D7jv*Y;$yHxpiC+Hy|Nl%035kG=q>uaS|DO;$+&=LR ZGefU^-ki1*C8a>s44$rjF6*2UngGiLDh&Vt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f0bafb8d1ba2f399c4023202f0cf83342803a930 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^Y(T8Z0V2iBB31(_$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gah@)YAr`&Km0w?7t!HCvTkcRJ*73XHhk}6dhCl!Lh0-Uq zCD|*iV|m0U#^!T@>xg@T)da@N{qpu|$(IivICExAvoAX{H%G!`hq9|5rvCW;{{D)m jU$)nDcqWLddb2ZR%T?ADyxnpaXcL2{tDnm{r-UW|A6-L1 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bac884dbb4a0b725f40ed5f05897a47daaf776b0 GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G@t!V@AsQ2tfBgS%&%E)*jT;t|RE|2_nhGS&_)kg_n6Gm5 z(xpp`Dw=GU&H;&}$Vno}KN=?_v9h)*OcFW#xH00WgU(3?mNJJnULQkt_IB|J+nP0> iJ$m%1?USlw4THwo`UxUg_C`Rf7(8A5T-G@yGywqV*+Iqt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..2b3e46c558fc0078bdaf0d2ba7abf49e271ba020 GIT binary patch literal 561 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+7%zLeIEGZ*dV9yw|B!<~+rzs{8!9eWeEk34Hu*|N#|6F3 zC)fC7NB1bkJ)8T)J35H3*641I{^cign7@9{QrIDs(6ez)zDl;|B^TlKQ+=&GwSP`} z^W?4VEk2zJ{z=uYFOZNRd&i_Zo^q<&CrLNYn4@%So%NJ;lXJdq z-~Lc)#+RzK71FFZGW(Bxy=t4KeD!nICFY*0%a>A?epe~(SKqVXZrJ?&k93bQWQ$)b zU2pjDPNV30Q?txf%-NTYTzoAxgUx#K$=U>&o4YFRpE@!z`OjN7tGFHCHn5$uvyWG* zImO7K&>+&lz{H`zssN-sKzxQE5T6KPESj!-W%%5hoj+Bd@tNbH2X~YszB z?~D8Xsf(X;PMhmF@AUyI{Vh)<&K+i-{P_B|;O=Wrq>FAemfpxZ=~SQ3%q;Pm<$m+Q zKa4kC@>a8MJ{-RHe8Ae?uPZHk7{i|OU*1;sVAXTe4SJcZ`OE#@3T#-h?}dCA+xg`0 zXG;?gR$u)r_aKgOd!ylp#I)+`vzET&iFkG>dv;LGslV}a8QxBxu=|3sf&(xOFnGH9 KxvXlxlyW$00000NkvXXu0mjf#G9Js literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f4228235806c3e79259c5bb45be04d142b25ac31 GIT binary patch literal 663 zcmV;I0%-k-P)(4hBYnK@7#}JUF_9&HDGxT$Uq4!HO0%&I+s~% zcd%#JC%wTtER%g7JTd-WbVjJqi7X)sL2j!4u0(TQ|F${LDKIr?Ybz;zfW$MrXcXaW_g}hSTC_&!It_yV^BHg z_FJILv`|rqFvZ_?!V%K~5?-zi`|I#skxuNs$XF;Xh* z^r!atb}uUM#R(8nW0VG~=?g&4R25ya3~yUFimsaN?SOT^A!6P4*Sv>6m8k8vLFqrZ0aiW9M3yn)=qg*iOr#LGa6~Dwnkazh z%=dEc+isxuy3K$mNjug}nKr(2KsfcO(}sm3XQW4wB{HST*0c%dp$6_L(Wy$Jw$!xd xVK{KZ@pYcM*Cw`R5NQ)MCU$sN0`l>n_6?f=+O<2YVG#fT002ovPDHLkV1f$hF&Y2> literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..00656af1790b7c7b6a3190a7688be7c690c80961 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{I!2~4r?VV-=DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9McSS&jv*Y;$ypKAb2p}V#^CAd=d#Wzp$PyCIVY_E literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9055cb9c898dcb3191f68cc16b3361de335a06db GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr7!2~1^>^hVSq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6^VJeIEHY@Cg0ec&VTs-|NoNvYJM^uVhCQv^=joR>E%Eb N44$rjF6*2UngGbbBennl literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1ec560b3b606b0e11c4b2a7bbf4cecde919065c3 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c2!2~4B;%3YOQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiugTU978x{lW%NJKQAu9z~HRQb@Ilti*JEa44$rjF6*2U FngCsd9i#vN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0d46be367b2e8bfe5ea260f3fe1a22713a912772 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XcsyMkLpWrUe|&n%&A_^c>2BxeX{tbR22WQ%mvv4FO#mRP B9TETl literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c70019c3a603c2e7e942ee3012605c1d672492be GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c2!2~4B;%3YOQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JiugTU978x{lYcNVSAToM$lxi;b@I>=B|)GRgQu&X%Q~lo FCIC)b9C`o% literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..82c60c2128834090a71faa0481f957d19918e1c7 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^j6lr7!2~1^>^hVSq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c6$yE|IEHY@Cja>Kl$)97{msqn3{ehTC->G|t^&$3c)I$z JtaD0e0ssrUAUOa4 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6a093be1d025153b9d95db1bb5d3f254f02871c1 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^YCtT+!3HGFudNXUQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>JimE(a978;gC;#~W-~MpIk>*Q*i}|E)@^$z3A8&14DB+y9 zKz18T7yH!1pBjJIi#+EQYqw0dmLdncF8;X8U}fi7AzZCsS>Jit0UG978;gC;#~W-~MpI5uU|-(xo?69M0%?{P^+A7mo}U zxUxF@neV|9blO3`z41ecl8h`BBv&BoQM}k4=SK{s3 TV|=MVr!aWB`njxgN@xNAABIr* literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..34841cb3c750723a6dee3002b3050652903a0e91 GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%nR&W6hH%KT9^A;=U?6bd!1@_7olEz4RB2_od!@f)+tDCh t(a2VDEoyG@Dyav-x2u<%Ib>yJ*{( zJaZG%Q-e|yQz{EjrrH1%nR&W6hH%KT9^A;=U?6bd!1@_7olEz4RB2_od!@f){( zJaZG%Q-e|yQz{EjrrH1%>3X_2hHykD-`Jdf{=a_wz5|BL0S~VJ{{B9Y<<|O`ouA~@ lID!tc9og&fM`npELwkf-_opj|j{r3?c)I$ztaD0e0s!>BFaQ7m literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e2935bb7a2947f8623ca91d1800347a164cf5136 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%8F;!lhHykD|M>LubiKsA&FSas*(9F-{rz2`F`UQX+*Ivw n2c}pag;a+>G9A^8Gk6)c#F_P7_ikzj>SgeB^>bP0l+XkKOG_?+ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..25cfcc4840a24bec34fc0e4c6146c686463624a4 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^j6iJ7!2~2trDSr z1<%~X^wgl##FWaylc_d9MbVxvjv*YftOpqx4><6&81VfMio4n}MYZm}y5eCkhf@v* zwAtB;)Mrnfm|XU}ky(-Z{Up^y)kNo0uVprGnzUh3YNG04Jw|P1PR{-%ENfa?DyQ>l gGcz(ObKbAEKVuYeVJ274VxTn)p00i_>zopr0F{$D$N&HU literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..17e951c446b4841a71aa0fdb7dee8d539b2912b4 GIT binary patch literal 419 zcmV;U0bKrxP)S(9qCWp{AxL_5c5W27H*o z%*^b+k&)3Zpavbh3SC@W{=2%m{x>x>J+G;$>4sCGx3~BI;Nal@9v&Y5Ei5daXlrXH zsH&>6U?}wR@;Vj~5%E7HB;-Gk{omT!`jf7%ZWGYmd?*T?oSe9TCV~}*g@yh1_4WO4 zXJ_|UUtfQ=y1Kd&Tp@@6x|0*A_%KLuczF2#fPjGiKm-088yoKiy4w-x6hXMrKo9W% z6+e%RjQkJM5EK*y_9QS=wrXi<*}xTASy}b^`}>0x!4w1eXYK9nLx9eZ0V~qe)9ZC~ zbOf6MQv@`9o4dQa9^8!}MGg)QV0VEO0P(NDz`*H1cT1x9+Sb+qDvi_HqmHkgmP5tlh@BhTs);7V! z#DoPyVPQlaiAD`}p{5wE+US!l0m_-hzUH{~%Lgih=yIk&%%hPEJlT zU`0SiZ%j iJ$m%1?USlw4THwo`UxUg_C`Rf7(8A5T-G@yGywqV*+Iqt literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3848c2c17841228e58266b9681749f0d957a9d65 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0y~yU@Qf)ML5`iWRcR^W*{Y5;u=vBoS#-wo>-L1;Fyx1 zl&avFo0y&&l$w}QS$Hzl2B@gZ)5S5Q;?~JPsFm_Wqw*DzM#2I5XhM-le%r ze0=pTM+B$;?m3#X?fe_7bFcDDU+)SplYQTJbN1)uyYJrreQW|6H_V+Po~-c71esWIEGmCzP-GWvsqDu<-zgLT@9_(H*Tl1#VSZI74+sl znZc!`qWH_mr6TPA_5+0l?GlfD<2V@ieh)eo9JF@p*0!x;4eOWe-F{8V<;z5O7llRJ zZPM(fl_|?Qn&yB literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..602d7dbb071493fe21afaed56ddec5bdbae09e98 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G^F3W0Ln02pogT<_K!L}(c%JO}-M{Dl^|`Riaq6_1GmZ%w zm)e&JItqC`WVq27#8thN`9_m};G`$FW42rn&vCu~&v+l>0;V+wSS}n}T*{!vu#$aA ztit)mtE?9rZrt2JVdER2D zYrW46Uo$WqImLA2C-Vkb7frbdWsNrMb^k5)GTxC6Nb9#;Vgz(5gQu&X%Q~loCIBcg BWK947 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..1f493e372155849947795ff83d91aa79aba133b8 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1G^E_P~Ln02pogT>5pdjG#TTlb{xA3ss?O9Vcvp=jt z!0X3>LZv5j4zegNaQD*OexUjVFSk;WLDXipw{4}DFK%X^dtle`g$r0;?J-p>5L%Gd zP{sYi_QO{5n64LmrbIHU3AcN4{eNS7%*0r`x3*7k90x{wD{L8#d+^?LbW;E~uUCQ9;>gTe~DWM4f7n@>s literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..81d06b2447ad84c8af4863d644b354c3a697cbb4 GIT binary patch literal 81812 zcmXV1Wl&sAvqpjw++Bl1fFQx$gS)!~cW03x!JQD?0t9z=*9C&RJ1ow^0(*JCx<5{x zs#9lbx@UTxmZ#^ZsQ-i!zOG|dLNKtRyz)}wnm()NUA~=`dTMNB*bHZze@~rk zZLtDT;~0^n@~Ot@!e~S?Ej?hw@v!aGh)c4>Com~@KQN<;1Rx_b7opP>28Rac3t{^( zQZ>ZRNqTxuNnV2ATKQCDDs>^21YhJ@_?~#QJV9fVISkx;gT{3ceH&I=-GPG8ix=-U z2&fwqnk$SMv@Q%CQOSnDF9poBc|Sc<3W6Xtkl@?yBbi50Q1g}-^wtTGLK*nty>b3_ zv~g(t2zYVq-U~|TS@0IwzHaF{fuHW!Xc4*U6kOjIKMDlKQFvUEJ71+7ZC;$`2|VVS zK>j6kJn~HYt|u5C?DSk&bWmO|N0I}EYoN1ZIqsdeTL;%YX76&p$T zsL12iL-!pgGAPx^3VWuojC<)h1l?J z1}y=dI``P~HhdsPqAgFD-doR4TU%%UvYfktrCvQdZ+YvlI+)Mk%O3EU%DL~sSIV{9 zWZ57e&@JVy%FRB*TZ+)rPtZ-N$V1l!X3%cfE#c6J ziIDv1*e-)i0D7$FU*m3hl=DAry`rC|FD8QgA<{MN4;}G654_HK&=cXU<=p$dn(NYR z2$$gFl1X_F7}{kI$`g7H>@az)#dPd`>dspQ_iXvURX=XILCeTg{&%Ex9ylGoV-qm(N(z1H zI&$tl>CW4D{TmtJ_CD3F@Vj>1K)`JhG-x;c5j_8MY2&70WHTrXEk0nIIfLTu<+|dc z?QKX91fF&*Ed#ArW3@p2cSx(BRTzu|Bl#wwz=Up@ptB>BN)?~en7d9B$dNEdAQFYtW;* zmMs_PPQtmc$MJT!&dSN9x09fB;L$@`fdA5yv&aSIVa-eT(sbTa3gEEkE(X{lE4)|b zZ*sK^*m#XV3Ub>MZdnrzczzzaAI(${aM%cnt=eTRlVReX(%v z>7$nwsq;Oav&icnw_6gayOm#UyTH58Sp$q+Oc8eN3e@C@LS>Ejdv02x76~sKe7SGg zCVrs9Gs>$mBT&bE-%hCg&+&+;>Dbf>=~BnyZ2cqPkno4gHpaq%583_szsz>|gRm3T zcdKr*Khfk0yt=vmE`OFGWp7~?WL%T>TN!iS;>J%_x6l&{-*kr-sJ z>sk*%|L6tt2LE5Uz7|5mo3lrske8a-dffN)i9AKeylT*TN5G z)yq@v^5Udbnjy=`7IMs^*wJ;Gm4tj8Gm*$6J>ht+DnlLBbv>6ux4!M58}Ar%_I=mg zo-Q#V8Y`6sMbB=?{&~ZaVEy%jph^4V&{4qO*F~U_%Q+ig`~FO6M8!q-6vSJkK(HmJ zu-n}Lw*2K_>DAYNQ8Gw{5@OIJD75_=Wswg z(4hZj>@iPDx%su51uaPXVyW*>B*Bnf=vkwo)aNiM>{i9t7kJOU z@$><-{vYssGwy*NY~A%gkS07g?U(_dCjPx0qfjn`O9d&3*gOA3PbzunAflLGb4D|u zd7O6Qn($;B5^P0%dlUqr#!yMoet4+mDN7)hB!r_FDzJ-iqVsrCfEsMBA?G)oKi|en zNO@(BIyey;-hzikH%?}93126V4uO7GC9=?q3Jgl2rxO-X+fKM(-uZtk1_5b~a`+8- z=I-_QZE8eBzRjLJbYIO)polRfFkgG!M%`L(4Nx~XtVuE1z zg@lSS=O_8s+x_atfTaRq4*yYvi$@B-v7|?%y(`$K{;h3|lT=QdQ{WQnWL+&=#8z^6dEwH=WhazdL1!&2#mzM z5Dhq(0zEI~I1m2^4o2}#fHtVr)}6r(7VP0%+hfk18OU8M-({G>i?$(VSAR2(3-a2pNqpOgWp1iuS z9?*X%s&jd9f)w-=qC!M*)0vU?kj)V2wj|r#V7I23WaN7lu~Cjq@mQ}xIOoW|&x81S zkSL%=A8@<8;0JE`QOJt$w~XwnD##}-BSx8wgGTCMOD7ez4Y28G>1RO^&#acE@SB@R zt&$zk6EJxoUGBN`Jx8Y_u-m)5d5RZuHMN?XA-tcA%hCE+FaSv~w7Y!(tvn(A58ZWo zFUScyt$@y_DY-YJEAYlQ30cnVOVol_o;18MR-TM-RBLZ1ST1HP8+mEFovhrF#|SJ7 zs>9&3TS6*lOo|k#!@y+rJ!y3DO0Ob|5qemwHPO>0rl{k?JRWOqXHA`iiS{wv4V` z)oG)_U4*j2YdHN!0|_rmn%ExEOFnA>!{>$Wr$_JZLBPdqWJ1t(rDTTTMO7(C7_vXj zXaAos@1AT~GQ2xldbRT32MN8#1_E9{9dGx|)sByFEIL@{m0_O@n4BlzoKj=D$rvz7 za2Mb>Y<24MIK9xiSPe4NR=511d+hP*s4rr62@*>e(ow~Y4SW)4Q-Tqb$743)qkBY| z@^T^GMD#qg&osV6?MMr5HU1ABaJJsS$u?UL zoDYdduh%EQfbmjm%8v5W!bG%_$|9vGNRDpCj*;so>Y~(5L29*L)HEJ~Sh|bN+q(L3 zQkuI(v876!FVgBPNf)wQf7#iSLBC-7l>`0J2M#(Jj;{f7_E$cxL|IFD(5 zPDTJt*1Vt#n3S2&*;h<*0hckmtQLRJG@tALwr_Mz1M}Q}TjjhRWWU)6aSqx~B!4*_ z+HL?fB@6PS87*V^37_GK9a`lMaY&4-9;8_&#WEbqTH3Kve_%S3sYwkXOTZI@r|9sA z^UZ9kfhn%L^COPRi$nJ7ak(#xHKaK40IJi;B{fGGbK_9Z!f|S|OLG~UDm@#2ne9M4 zNn);7JfEvrJKWkju=O97#3UE;*xAe}IQ?HJL7nqd^EQ(J3_4zLUVY^gbu&!JX~IL% zdd|TvqvoTy}(Vax_cCy-Ra67z{y>BaXxNIc^gwchFK@*W4MjYrN( za_F2W1u|n6x?oN+jM}<9CCy{@&ISAC3fXuuf18&Zi_`+G zzD9toYLf@MUeC`=f#eV3w=;*CA{`Rmt!L4Msl0pKNKA4lP*^bF@qcbS5OSdi*rUMw z{d!da^?S6Z@EF7}37i0w*nn0e$%wcG1@OMZ+ASwmE%C_4D_n#|Y8uxG-Vb`_#TPZG zo6Z>hIYRnJnX2&UbJ(=WATe&4i0B1DH0qhzAShCO$flrQ!QN*Vxm2YS7l4CzDUkRS z@P^DeR^5kTVznIbZzCR<_u4CobdT@NTI`)+D!S84P{Qx3#tTey2I|UnZ-f=m%${fcC8X>b6#bbus z)ii?Ip|cu7R9J!H*`Hzblm2>)8Nf4?HG5WPzKKBu*{FZ?IvLT(IXF_kl(z3V z+RkX;WX#upDa~2+PWUy?|Lx%2@&WGM9&LiQVV{H z6#P5mGVmJcY<3u9?vz9G8_DanI=e!=*+Nf+9Tctmr_O5)M_C-pPuB150qWJ#VsiB` z6^ViAy9vsE%j)s3GxBKuImx_EHOR`+pphsml8T{e>cg0-z(>cbB_QGd2k%}&9#2A$ z3@5bev()}ZAU@8CLWAL%7;B)9Oj#CfhZuj;sI)UF=DKINcrmuvNZ43ycKu__j~t@w zAg1xfm(}cE9yD5Rj?W2-_eiLa%FGpMlNNvA1mI?Q76AUE$o>|wbh+U_^)$^F_}>b) zzE1Y#`Mwm@yp-t#T0YEXahMXwV|EG4 zA&U2VSsl(z+)5ko@@22tbNFp6ZTLTg)%eeDX1u+)3cD>-T^gczvLbe~(SaLq{x+Y# zAnq38z$Q>IJAbMCrkJ4{NW{`;woPe)P{z3nY1M*>y!y^oxs`0E?PWfhgcp@3>r6<< zM3Wox!9o)+E8ONP@f_R(D_0zo%!j2_omy>dW?fG-jmp2P%c;rzS-ZCWGGv3(O{o&a^kN>S6)U!X=0QCcIo?Q-JzK04Ej~AsFdAAcs zIoE@PMxPC@?wJKNzbai+e7S01k?VbyrBvLQNg5w9<;g|(ub#h)U zM;DZSb@TS$k>+?_>~LH^`sTdx64~*0+zGz3d0h9INu(?9qx`Y@fm|iYSh`)<((JMXTujtFhYxYt?F6xQPR2KvmA}dNS zCLJvk#_-nbjY^40p9!fgE@;OZfDO?WQ)Cd4o6^_X>dte14Xh|j0M^ye+2U=MEvAILwW7DM>j4p|30#sZ(^BtweV3&O$IT_lc?Ns zy6($W@+Cr4huWc~4lTwVs?hytpAEP@U8#(jDkhKb6MM{_+lkcef#C}MnS2FlnX~r^ zJI!C3sg}3y`-aT1zKV-Foj34o5$N^z$|YsMh4Roc)2YdO^`c{cWy?Dwjxu1v-|Mx< zAZGcGe44**WJD=Fr(DQ4HQ~Od&r9KWFIHy1!?{S3yo2U8*lk!- zX}pHpCenf%nz&p*rL)+neGRAZg+{jOJ(M1A(W?!19*ciWqf z7n=}r%9V1ecWYod^(wV^447?Df$W)x{22j$sna`eh`@?cjbU)dFic$yA(=A&;(o7J zM>9PO^EFBiHDCAni@9oenqqvP3$KYKIvn54HP5E6JsWqv%Uc*k1EC_|*OFHS)gV45>V4CGS^k!@s zyIjXO2bIP_-u95Z0J%m2;>ZII2gc&TCdVxZ#3lwpY#d*r zIG_$ETMd~3FYOmsAmO`YNt4&bjna*MZoxFG|D<0Jdbt7$-ve^4*MK5_N2=Qo3V-=G zP@63Wf^G{W=^F0@<%R9y)v6aOGo)i9;&|DZX*;(?(xNOBASIA{ ze!&Oggct5}&7s`xVO}xj+WLNtXP;(>xH^Up3B{{KM64B^`5<6bBg3MBVm)e2V|4#_ zmKfoZx-%P)L6p+6zQeX;6j_J(;omt+s;Su4<+V{iAl)p3pq0l_4eS}x0&FDjnsW-g zhsUG@AD?t6_l%HwF;6P1LF+d*U3Ri+g5Hh)6~gD-{d#Gz@pbQ9Kaz{#MGIVt&pg+(-WV z%7!7wwOPwlDV=)usqwsnb$bIl>{1pTbtBX6Gl|CYo2%g_s+Bsbw=iVo$hY@%&}v1d zev@C6QpVNRavFp;o_!+3?(}dEWZA5^>3^Go1ihnxU>ZU3{Z)FVcXFZ|H0FDXTTBG5 zNHL#RSVXU#*~uRA*l4&}(9OTOAT;d$Ex*-&LHg*T&YpsuO!+&~T4u5-J$y*e)r;#S zPJQT_SR^^rMpo7}+)+5?iw1|uGD>ejFtJ6CO7*i*T^lgY@6L#q3ES`)PHA_nh=W#0OXbRbUY}yktQmO!J z^`jindZR&FsfON-KTf+uzq+CRNbNh`<=G6@TelpGb6K&%kPc)XEEpWm*I0wWTT8F#{q}P zm>>_sGP*BlpHUZz;h*m8Y++P4sAz@|B8}GrAx#|7ZYeM|rc2cZ@N)=Cw9P+kzliaf z(|nWea&%~J34mUQIk!H!3@7y1mcsq#K+hjmV>ZE_EnDCMz|(ehLQqz;<6@B0Y#!u; zFdOREQ-E)98J#t&#nv&<(ZXRJW;zI`vmcvcY$mL9xtX3GqpFGyoI_e`_dVNFD^S0# zcF6JV%h4)ooSK~vkBF#F>mr1d*z^W+bh$bLgC1L~fof$ICB2`lc$1Q3N}O+|dOCEC z16*-?{b&szv!$1>clfB#53_)Bo-9*Gk)JvfTN+Bi>0!GnEoHfR!{|dAPrRS9lna7} zQTBjGKfVP3i3NG#-w`#Y^Yys|-~w{5eo=H5vW={%BZ_e2b3Q?r{H7 z>Z}CbSYZmgxGW*@)p(pef;9iU8yUhz(Ecd!bsCiO)?XUkydh)wP^jroHSlS3B_CRd z71BZI<)#$YGDmMvAa|%3^~VMNu)Lq_-|V^0KkW^LV#CWzbjE~q0W)}lpGn8OCq6yP zo0eHce!!4re~?*SLRk98C>Lw%f_#PjW#e8R+wT4j&ff2s_M_dL zS|6clt7RSlv?aF{4D9i49aj-`E>(X&4{0rgMt6jK?E{Blo3G_7N7WUDS#9WFPmJ8! z2>Tp$tTWP+s6^fV31vjqYRZ-Q%Pwcrm>R8V#JN{-?S@?e z$Hekf`70$l9X}M<<+xgcb}WU>g%WPuQb3%<_I)pTr~Z7?0^3A_edlOxgoBv3p$`Z> z_38uVx?d;#7aFHI-96=uH)+hDTrg$4^1alg)zoDtdF{t;jF?<+ z!y`pvI_5qZLEAO@yrTWuU+)S6d%$FpZ&pg3t%w`t5h#2PQ#*zOZBDY{rmHlJ9-xj`mp83eq|*L= zoggko?cZYx6ivj~93A?F?+0oX+7+bNq#GKNLU)-<#$|!Y`&@$`7UTaXUk1KODKnKz zBF^Y#?tCK3PKP{=10)#Ld?6u}(JQ`nxg1D}`xuom5+CUAvg+{!x=>lv#wJYSWwndP z!7tyT+1`t`&XR>bAYqV$W1S4|tDQH?Ed`~Gq@*t0?y`@10zjk`pJ=kW*fo(2;4<-7 z6pNzur2a;8`2F(FFP1;~^<%q#bo=tBYaz5TJId>PsRv^9jefQ4;V)oODBxv}C#H+ECj?~B zaj9cF!+t`cp~EAR&K45ZCaUM1i|aUuH%e_2nT~j9tI5fO%06}+4^HK_JSy1ay(dP{ zZ%#F>$M;KJTUtRU8-y5;nl8Cdr}$(iALs^M?Jg%WSP6#Ndi(z3%ET(~kLe5*rIuOK zDv^KLk~Y}rcC7Jq^DQP5{sBi4XyAsk$yz_GUEk>zcptk=uMnx>9`Xz zv}@MAM)D9COR;@qEv+wl7rZH-Z;?QvL0vi*UvCi!-$9rKd=XCAb7+kza$D{!_<5Pr_rTC^XWMTD=h z5gI(=O&CIscco)D#niCsr~)&qCKy&gGkTXW%&%3)hSJ3|gjFA4N!YfN;s#g&CGM2$ zq4iu}WZE*50=Jnx>ykHO`)Ax?CU{wft+Zb*EEcP}|5ll>%PhrLeVIBXuxUM{RH1CyyL~j04cI<JL?P z_MgsFfvmOV3K>mM#jG5eFCEd9;OyajLI3;wckm@!+lNRZz_O5UQXMA6>W1`!x(K@j1D60!3QXj~go7Dnseds=nkJ+d&B&C^04kL|MmI?&#Uc;&jHAhRhB+ z)O>U}56fKGytoSAJo00#`CYyqH|BeIBF}Ay%q4wnxbHwL3R;QKbxCAun_w?2aM7Nl zTDZ+a^O`Iy<7?&rf_a%hlX}LEy``g;>Fh)SjzKbXJFnQRhy3M(3@WSjgl+^KC5v|4 z7FEAMYP`~f5#vd^%0iYEKbj(RoEOsua(0kokju2mv3vsnoCcH0H z)LJ&OJ-w*AQ;5zN~5c~oz&DNAxiG;`H3n_aB?XiDZ)K$VE!NvbEw z**i!jM~CR4=^#9EV>i;us?T&w1$rsB%H@#AaigKuOtxiO6OXmwzz`#3%}6RKB=(Z8 z2Yi$<0Yk2SQ8>a$4elw6r4Jdx4_N<=!IadzZ??aku?Kmd%(8UZKWaH&7vvNMA+)`o zmH;6IBPJ)%PB|@a9i{oQn8IKxW2sN_0Z$+daJ9VW_5|$ILXj0dJy5}?|0Z;=7%X>f znlbom8&8gvL3^^MlG`7PCTpo5t~@?@j%jd?hh>{{(-3FKh};SRF;A3<$IEHO;rAW6 zZDqhJozbswbj|Qz5Oxb#t;QdLw%0**bU#ug3{t-&o17yz2r8Sm#v*8@?-1U?lv2IA zs0AAk`Rrmf`M!1Zs}e-k;zYOmkaxyo#Yaa^@?t`#0x`&b2io3#*9l0P!|yH=J?Vu8 zUDX(#gad5bYbTA;#EPUI3dw&g2r!BAa>Asd^dzzV1%}M2YyOcez@qttltvL;-W7fv6YJ8ag&Fj|6AM7D>Y0Cu9I@LCVncC zt{H`2hj+1~KMeou4o#Q=i-xLc^f6+!VJL(QQa{KG)|&}=&r!gA`O?dm81b z8cuKYWt+1ZP*dG7CHYRtD`HYW&kq-RASUnp`@!AAaaa#zv^4Mfrj(5-rmUeN!T?TE z(S!MfSjA2r+vwp%l4)*bweg`py?L0?3&)&P`*l9pCY0vYLl1CUr7|AP+^1qQE zSg*zWtkI^QYZ8h0!rs;-_v;c{c?eJ)U=FCdnLp&oERT$CN{tWIxB+w>va#KYe@yFY zUna(4Xj(x+X~YInB|a=jlxnIU78`8SyEa&e6PR073@XZwW}0=gtZE@YzK9eRsRlWJ zpd!QkhsV-K!-eRy>?0zK7bw3tIQz?9t&DS0f_vJS|4==FgIq+NqCjy3T@$-M15))`U9dIfeao015g)T;umU+A+T#2zT!UGgqK)+Z(Mr zIG&;K^PjIL7WS!X?uIH&BUf>?m$)NYey;*@22tn$s{3cN&A6uCD+yKP3s4S+gdL&8QxJD#+3gcuJ|b>;#0bA)d*?|Fv$z!B-k4P@|!&ynjm>iAm{t(gqecdTW z@zH{Lj?+A2ehJ=UCiC1T=iPW`TDNShM<7=dI&+1EK*H+YCWm^v^#$r$aS>yhSWYEI z0rurY-pA5BN_b!fSr9gLlFQ(F#(Nr%&K03VJGonIAIaVso+Bn?yE9)lD*!{mfto|Z zD{6j`n_%Ge_3BT*-5A6vRY{}AV8M6Ixh@v`lmk0~kL);5hf?9KIbtd)$^+*NPr^z6=%*L;?K zT_NmwZcb>wq3qJv@}l)(HX_pz_{o1hG4a_lRwKp9L3)Egu}^wd!@yEN|64m244Uua zRk+NAK5SOl^J*-5bezXUY_V;Q`{*H|2_d=%qrS|B5kQ=4@#EV1x@Q664xHWME z&-r2EfD956Jm!%XViq6P;6lhcQ$tRlIGdyR8>SSE0X2%shI?!sHC{tlj7HSa&u9E-#w<~}OW`8i2qTt_=gGiVd(ItO{g5Ed=oE|)!fk@hv5I`MUl>}8KjHjCkEg0#>CTMuQF#R^MULh>7hBAJO>m zWsE|4A@h;;4y?7C_=+dI5Cn~KkC#|ByXfrAUk$P)XbkKeUKUAOSOh#kgieI0VHA&0 zCRvp6Yb!!>G*6U5FQPI;t<$KC7Q^+Te->>+o(bCh9lRWY8<-|sJr8GId7e)#c&+P% z_d14mk4u49TDkYlZOxxMPSrEnIOziQjaqbH*18Lek4rc7D?z$EB$)i=SwauS6+ zh2P=Gu*GqfwywwM2(jdc^;_t=S(Fbfc6Z~C6saTDwo!2))`10LeW(xpiSKR42+7wD zafp3i6!aTS86C#FR*(T(#ls&+daYP7lw;IWzoNPVytB5q_M!v`UciA@F#M zKl8i=PJEWPjS5Z_C&Ew&cW`C9z)!ua^~|6`(XYpfn7Oq`4Q5zc#$f4=s1J?Msro@n zD_PdrbC~cO`9A2U|Ky^U@=sa!7)C?ghQixj{oIo$PU!Xk zF)~ZhXK1W802z+9ByX?%EILmV8_D0O7)2i}=&=|y0H){{s)|5!k7bD@rfK2S#;+}=t-4Wl4J(4{PBYr92o&{XNKF_?~m$IcU8QD zwoJI>^;fcdi^?4W_2)U*bt*QGh}kJCDjEisJx$p5J=N&?VqLx@huiaxpmz%$(Tkv%sw;EV>vbLWD$0az$8^4+tp6!~;t*v^^lBcW2u(X+wt;_J( zHt}Umamsw}%u3W^x@LTW`QG z~D*~~ka*-<`iH}&^R$8q0T|~G< z-k&B-$WLO-L|2*z@-&Xv)DPaww#yk|`jt1}N{zSPc6;(Ux=_Q`bPQgJo&ZIlpM^VL1Y&8vdJ ze0rcQj@L{7^+-e?xykx1x?CG={a(Gci@>t+a_CaPw+GqPx>3wXiuWV9L9o{T(3OH} zh0&qn3K+4M2VE_KKEA+O&qI)8(L&*z>Z59ua|tC>X670cS}3fo=Qw z_N>+%Iuv^Dw+oObu9BHAPnY2MGhd_*-m`^LrFPqq|6`{WtYxM@^Sm7R0eYtT`aAxs z?(RBF5m6CZc}TeAZl){|e8-;j4(S+6k_m;+9_^rbyY0trHtc?4tv|nsIZ<#Qm5LmS z2NEWKnS&Q3W)o6nn`viO&aY&v0mr*4Yr{OC=fnTFg?8bCxr~>Ye?ahAsXXIxAo#}t zy6bA;H;46-hI_tp-`wSdwWvhvQA;gDW9^JZ@iHZ!@Y=4QQFxtt9eATc2w0}ML`=p! zne+MC@~+a^H$mm$z_1LoIoVQ+D?i!H+A`ZeOz9UfdQfxc6j&lI30C+nIt#1_WQ{EI zQu2E|VTdsAFB8Sd*9JE#_>^k?_!ScALmsk5IXA$ zoEjN>Vc9wtXMar6%bvywJ*^Cf0NNJlWzQu$pd*e@&-c`KxP{Q{J>yjQy~bKX_E;1NUB43i8%1L**k0vayk{cI+}l zMs@I?sV8IO?VS3HVYqe z+WIEbk%#sYfE;U2TT+MEjI8!m@u#8Q=NeXz-HD^v$=r*PpLn7uVFTe?zQn=$Y`=BE z!hd;7{JLX@w$eiu)ab_HzDmL5MJjj0dUB}~k=tc{F7vF?lv{QwYgsvz2KcLV^>Mr` zzNh!G|CR4M`2gRWq3xe|Q&0r-&UIL4u<*?fVe!s06fu7)-Nz4YI>BOzBGA~pE`CTD!<21+58FCA=*v`#fDg}X$_TG=!1+5V0REE~ zwE2$zG|r-K``&<~sVvH8SaMen`HkjkQzoL5rIlWX@jUo0RpvN{=(9PrylLPW3)@E* zQ6mRZRN~fG9AX^-gx#Wz$%?u=bis+Y!XIqxU4%ToN ziki3fA5D4}?HYn&PHhr~fzEKhfo(D-uf2u0ei)6dW;hr1R-OQXEKTerF`I10A5<98 zMoqm`+~ZF%M*?y$S}Zb`#-Ozy8kD%2jjv=y6U9qkCGdC-jD{Wf-=1njZk_-g&(&w^ zN1pGj4BCHOSxx8TJE!!g^zU(mXT8-8lA$&@+)_K*163?s?C+yuJnN`|mr9sqh&t^% z4LWwEiJSmeijwRw@v8=j<{$r$D)vzI0L56BXKsAp_@2F5s&-lAb!S|Dp9Y}|YpK!< zZL(JHWYlE4v|fi-n*!XIABOYhGl;((ewtF)v99I@F`Vok3`P*g4RWQ1U9ICNA~o5d z#H1@2#PYW)V5B<5;W<#B$S1$fhZDKC9f^PMRIP>UY(1^*a~ymfk=WvDB{9)(H=J-- z3ITMSl#F;o*AAhr_mKA@F4Ly5|EyroWj0F>IIggJ4Y`LOchB&13Izh8%&-Tysv~nR z3NLJrR8u*uuY-)RDi@j`3OqWKT>p3?FW2d9uX;$~SF9Gv0*Xk*V4GlvLi$FY#9$Fa zop8<%h*^qYY17ta?%tstIvMZJX{@WL=qyyk@B)@Uk{iiN=+ui9+En$jhvZ$oe|Qaz zVvyjFcKtP>1zXJ9jP#yx8nTXr5@gb0&%xwnEcekGabB;4`!tTu8N;x7AoOz?HgA(K zh|k4)$WBpkRUItN^O*upMgmpSDOWyYq&*`1H zodSHd9H|a*3R-ksJM#^&EOpYOX2c$+Pw*(EU^L$$Lit&ZPB(~apJxGUj=-pf+t~JUT zm{tr;FThA_1E6y?cY>SkZDnt56j0denGG`tkh`aRlGcf3(-`ImEgA&9iEO|7FkYGb z)NWz(c!neQ2sILl{GKY#w0e(75YymfawA>*l~F$=aDZJ-|0Lto(PHm~Z*#!u?s)6H zBh7x($@`_e=DD}}*7*+&JP7FK?GP>-XTjfD<9W3hiw9ZmL*f53cx4;5N%+m0m>vTn z%KM?|(pEEuc&XkXTYMW{;PXQlL%0}r+PEG4BDHL#R%AxVXq9Fv2EK)%Nd#%7lpXTN zOrmjgsj_D;we3iJ4fL>ykUpoVHZ29&^X33bx>~?Z`1+jkjNmvLOKYbbkBy>>-oL8Q zT$f|&!A@A9HG456{XneIDq~<>&wi+ly!ILLjT!rmM}9TauQvAL)Wy%?kI z!X%`%uFrW@`4|`ooK^5VNybh|!T6tXV2QtJMA4{iuLv{hwGk;OMA}nLpK4H5wbl{E zX*5*Zm~SR2snLBarlrTNmo#|JMkoJxs(BoqTCKxqhAnunC8=DJd!UG&)_?0q;`V(! zcVQQgNnE`By!Tsc%pur)a8yHzj4Ar(Ad8-rKF#4SfFPPjf--m`VWm*nO_mubegkv#^Lk0 zKpAv60hJl9MKdVimlA4<=RrFCW*kPU8l22I!~D%0=UO*gui#74&m@DX-fZ nNk~ zf${MVB;$>yE23_k*pzO+^IPR@F>_r5=z|h}*B)3API$4bqTs}e`z)X#=P*Rp<1l?t zq|W7Gy(#=1kMfk`sr!}Y*L)f=`zxA?7GKMt31#!^Y(q~B7B&W+F!dayU%OALP%PMt zJYaAicW4$CV1lQ8qz-Llnd$s@1p}HSRmF#mNXq|>UzH9YC&sT&B-Rjz_O|2CA@E87 zXnm|aBYW3w-)kw(=Iu3nAgRHzUkCeR<6r#KR81klUzi&;4%1j#{KmtIhzTCsoMwul zdL>oFX3!N2r3%YDwycL}E%HVLS43VL zFy^Zm*t3hgyzD+B-fJyFFDru5%v3IK=${+i~MR=MGc5cp0^4_88fR1WHpLu2&Ktik>#UZ5?7uEJHcS@bOR z(DnlL8kM@O8#f#uD`IGJfI90(yGT`37R@GI&=to0Z0q8agtGE)N5hxyEE6F^NR2mO>YK=WFP8MaGAZCHLH2G?3&I}M z1)Jq1EMD(3M2{x;BbE*#$;I?GzgaM$Rf7rt+W`NsZNA`xF|oT{WiF$hH4P1}VDR^N zmJfV>dMet>v-uz>+#8aU${Pr zyQJI#D7{gFI@`&p@7@ALEXHA7b}5BDRsZoGdSj%Fr zN+VZse&sT^B)_&-Ng!=|OfHXu8`>Bn(Lkp-CmJS?1M|4p2sLv%aqsRGJ43`6VxkzjkB*-tO9;=E)w9s))5(iNn7|KYB&{R7N zW+II=O*Y_oV<{uo^2iB*))4!BuyG8{!mUrkZAocca{7I6hAZK6#TJT$0qyA-$$c$Z zk@Lg`p88}RuE5G)*tdwI)Lwl=o2-&=-e?;&QbYskVUu9~Wa_w*vqD79BqR_abpbJT zr5}ce6#9kjZ%Hu%BENw?rfQRh<-crZ%)-7Nx66Re1DOU=k!>reW6U$i=w=w?|6m8b zn^>XDDQO@55GfXHTxuC}mZK{`ZBhR$M59jB`&3bZ+n@XH^Zp%Fo)g8M(`XNEGHuv> zt|2P&f)fV1ru`PHvCkH##{E!a%&E_cG=tgQ{b-DsE5k;b%4JuZMNod@$DpYX-~P!R zu1XuZ3t6-TKmx8KJ&r@r)wV@VNBV&yCA}}|A#2%(E8kvI%ri|IybBvvNF|QxxgRU& zF{-~rv(J;JOj5@3&AyVNn)9O{>D7V!)x)C2lr@rw>xSYBGid$QbL%<@nlAl1O$zj# zaCNj~7j+yiw@FWXgN%Uo@xQqE44!e_6&xY&j-V|Ir=zaE=KIfNk z!MV@?PI7d(2W%d{p$t@FlA&q$cGrmN!+j5@@@H4`; z_v_d{e*GT+U_hV0C(G#M7zd(0o)_sj5P5ojfpdn!qGg!5kk5=3YiLUl$~LQG4!E#{ zQ0Jzd>`!L6B~Wa^0WmUa7^RUhY2p)O2R{C)!J2gGF@x|@HRM&>i0eR+~0riuFv1vL}$pN$ab~{nnvmVrZO^W zc$y~&heb~4wjYcH?~sV`dg?caqV%%>cc9g59#*b`FSHCYV@!lm`{5xyQZ{`Zq=rck z098b$%n)Ar(D67?!s16TDtqck0mX(gO0H%Q)yst|V@QJXB)^KVk6w64RoU@&bCdfwTM>mdq z`n}iKb;BS0tN%7d{ZID4{ab(SjJG~hMK-ngwpho7PbST61uRX4bi&mu#Easv*P(kt z#&g#zov;K8W@9zmrg}H#3&vvW?_{{P_*yvVYMl%nrG#S`42`)}u7O(C347j2I)-r|6;hUPN>tsZpA)XWNIgGGD&=g~B_FuS{>|&WX3y8$_;dd) ziu&C){`gIY?8G%HlOsnUFtm1nub-qMxQtU+^1Fx9t%*qKbZg&j>He{+jn03$3(g(- zP)2j;36hc5fuObn-H%A3M-H&VVe!sJggn`&W+-&eyhj)c4H5T317ZIUG7|yd#zn}! zYq6#Qbejgo1oh&Ry;u-ZvyL^dQT>5X>)_?3&C2;Rpc%#hasdM8GI%3vY%$6O1$EgY zGulF=os2Jnq)n(w5}}k9Xo`uNC?fMAxH3WuFmKRV>k{T+9e3)4HM=4v?-v}zdi`B9 z9)~ADi%gt)4Ymfc&`VXuqPL7&zUYk?2m{tmnGei1KL1a5u$w>P_pb0o{ihDU_?O?h z`N_NLHtfQ!l%z<~`?N&~8KpQ_(qhoX25DFbgmmmI9HHW}NFA($TcQ5kLc~Ot3QaFs zn?GXC+mte^h#0k#P--EGoQtpZKnxeEZ+PYnN$TbYqKuXDK35{Ah*CyW7E1Nq8o3cM zQ-Hb%4Ox*w>vR~x*P!t1{Zij4hepQWeCAj>1-t1QyQpNa7*l~DX=wCG5k7Ea7GY(V zwc{ck$$O3%6Qa@V2Ss2ou@Lc;6h);QVUvseTTGJPtiML-}U)ENeY z?*gSixgG`nb3WkHP~uB;wR1!~$^cCb`(6!ZgA! zBH5J@eO}m(B{?rjO?qmcEqR-h;1BQ50h-Ka=fCGW_MdsP=kNKdFQ51Nm$j(hYk1M? zE|?wt`Z^#oTGVZVY&Vp&oGR+KBDR)pmziVcP&t@8XY?~c@?tfd>W8~&+O|8eV3>ai zvuj1Ey>*C&Le7l>!$!!!ISx+^z!WLqjuCa^dazS{|MDN$e)X_@Eq)iA#(L0{>C;~$$%0wGj*J4Cm=_=tOFc%Q(;K0xcCJ%D|Ib0wVx?t7( zSj`C(;x)|L2^L;_)4eip92KJAe^X-b!bPBUtPD_5nj9|kPDb5#4d=i6JBDw6*mJLN zMg6xf{o8xIc<%>(Rz}!`WnU`Igw!C97TC(O;ntEv?xfeO(QL6(9ZIhzrAUZK2|O^t zsJQ6up|rc!34XOD4;x$2fhxt9r9cC904O3Wt-!K~iM!Zi0nZ)15eGyUo{wr>Z#p^EywcD>}UkLmm@6oN4Fmr+5F z5qe*}JS{{IU^pBCk?BAkuYTlWkwE+&7MKh$+gxd$iqCOAj zXY281yFUM}Tj{MH^V?ULqJGYyS3L1;o1eL}ip-|tJUodOsaZyND~hsK9B}}l#!Y@bcV|sd{_n%8e9^i@nVit4wmK)jz*?H60VW`@*#d z*;5& zYM@anQXOH?+F)>7Ufbe6EqDBi&XELm5xA&$cr3C*QE!`e$tSKoyXlX<;&NNmU$XyQ zH~P&p{^c240n)l6$$k1u$kU8;>{r=ftWxiI(H*28|CYVDrMs4Xe4KQ~V0~QJCP;Wj z3y2YSz{>QoP9)v{=A-S37#6ugM6RRHa4^+Qcj8f}(oC@4+=TVL{e= z|1muYVJe+)n(X@kX%NB*>=wPiPwD2(R#9 zzRXJR6<{gD%hl%*Eh>h|&R!5D}i5XES+{FMgp&u(La%p=B1;Tw5|8VO&`W0VgWP8 zOQaJDs?eQ@1$S_fUe+fYT1(eKGDiD38N*I>=dyA~DCrU+lVT(uh7yOTB2uiOwY;Y? z7Vd?=OMd_Gd*jRVP(mpzKnPYlP;ow#6yZN>Ud2T7w!B#2@rwWo@k|*^7m*0e6YJWs zFk*}xKtJOE)WK6dLQpLWtQJs=YKDk#$UI{F7>FGp8tHKUOIU|fzWi|HqN`mjXS{3o z*Wcnpm#d=wBfI|URR`_lS8Jf`@zAqc#s)G79m;lI=@?MRa|j5OYz1^;C90y1;Bq)d zcKsW`F;RjLe4x}y<{cOZhWQl?v)(~p#smq`3y72uswcGss z?_X|;`fptFmV3Nn&&M9Rg{8{`j8F%St2!zrUM|(aystKl+S1;a+-ZP=kWk_JGcAKH zDV@KNV?1?vecEMpjNz|82NPTIF2Qa;yM24XkgEeF?lL0d!#Z;b0ov*Eu{;UAq~oEFs|8h~(e|Xnlz51}7xcX`wy+53k4zA7E&(;}$8sRw0ih&rW zCiS2cT{&=*4r5!om_6HtOcf^nnmPYHGpjLuC(}HKuCT{C9iu_`sPtJYU&|$tzISBTi-8x<;Hu{?zy=VwRQo#6odRp4GDM)u5|^psN=FIClG%O~4krhz4}iCSpeqo_=6H`_Sffzw2MW zqKoWVC~{Moqqt?(39l4RO_Mc-rqym$CJdzN zMGjvt%Uq4eGN?&`tB?4!3;IlAhbg45&aYq~XU!-VNG4fN0#k}*tQ~f@eHEy6yR~ELk4Z<#pH7*8=f>0^K z3-M3J_yBr(W}SHGcBO_;B)TLhIE&k3Sl9Sk0rT*%`-qf7SG{|-8{{-Ucv^W-87a~v+qo$pqtER!5LRJ!{*-!JSMR-&jqTE@@t7PR`To;j9 zKEP{H==w2UFP_mM+#{1CHF&Et=T0LYGXn365~t1lIY6B<^6dxV5!p(#(CCsGjg*bJ zDO%cd^gipk=`i13(PCH^2Zl|mZR{L6b)SGaP)y_yuF;@7kHgIo4vB_a6VY}!q#d8y z^8MxxkV<^LkmS_h;?uT^CJt*wfgJ>cPKg&B=$swCk>o5zs>L)f#8k z_nQ&HSUC;}C}H}b&xv*%D>L(h(I_PdXr$2hvI{upqW65y5d!Nm;Z3I8=yNG&dRCWZ z$OP(HSAVvo?7S+oUdZl5!RRaxMf1>Gy8F82YjQ%Hjb~o7Cwg%j3<*7>e|n(tdBm6l ze_R9Au+Z}qtZX~ccvD>|V$X@kncb#6grdFE!?l zaoN+%!0ThQxT{F#Vz%qE@BL1_<7F3AeVG;YCm(q0kN)-U&-{pq3_bi)L}=F&OO}fU zN}v@hTnvMbQDH(lMdp8E#c3U(6YI*ug?hCs$nuRuCM&1}>q-T>RP60tV&qw-P!7p4 zQMX+tGxSiUN|MfT^-APYA}M>L0Z51OA~19udN97*Qt2N=iux1-{FwKPlAV(gaLfux zF*{G9hl>$QUJMeK!1ZT4D<2=zQ$e?MX_LAGSahj#D4MF-IdLB1*E9xXgm8=?gV%>pM4;$-rf}SpewS&*E z)5`M-QGhCe(CP)Q8sAnpLObb65(;acCgk;ddOz7tM>?|#rE`x;KV?DExRXIF+^86= z`Wmt4#V&t5u3*TLhk?j)i8y&=fv6I%a)M>20v`vR0SBi(<&5%3eA1H;39#}wz{IeO zgp;!X=?+9BQz9iqv#L2!(j=MEMy-SXzsH5>a_4w$3{V zQP|~6ri#v&lu0{!;7XTleAQcbU+3FD{uNQwA3D6{xt|}7f8!J;%12&W7#LHsZlhdo zfsxwM%Z@Q1rUs6E3xNJ!17jO3DL*a;G3@+K3lQTLi<>qV4Jh9 z-Kggb1HCf8eTnW5kQZfXh}ts;!?+Xe`uOnJ#LNq_NshY^0hR>asX(zu51{4qM6uS8 zRJe-)=_1ugzzWxLVo#CdcZyRHBq?;3ku5`VOBt{QvTz{_+docim^6 z{^6%A12DKZhK$j2%$tNOFY|xd8W!^+nOKRX$q4Y@tvkSE-7pR}r*(*0XmD{`?gf@H zSgQiuz`MLv?w5=3GpDplJ`82*SBC=TqLk(-gx7Ax^mySfE?wc4NH2a68vyN|iQe%{ zO`0=bg}7nn>5zl^RXaoGsDZHYy~po^5k<0kZ!jmsqzVRh%Ag9Z!@pFNj4M2mdMLz} zHet~~Z=?ku=z%z-Oj#A-B2)ZT2#perv^*AaR`g+Rz|IjqZ={WuiwjYG;TK8U~^t`4rw5c!^&ZFOA%_?mEjzY?Q=snA^thYPjR3r=1cCd z{fY+iiCG*q3;PdE>>b(uofQk?EpM0Q87MA?3!0)@4#S8}gc1g(i#R$l*_NUPsKAy( z$;dQW;N@+Ajz0`L=L(cR43ub+92*nmuPt{NI80Tq>dOXQ@Eqg#bjc`*PLPXYJ#UrH zDFLo(1VV|-ACDB#?c*EJ9Z{S#k2FWm5Yb78b0cAh?K3-c;aRg=KH$&)%ZmD2F8J_i z`_A~c=cz877+J@y;AE$zgRi0s1#w0W>y@$tm_~l3ucgC8qRuL(bx#jtEGH^p^Na%ppB!+JEJPFxgug0$-M_apCb%re*UcVJ3D~Gmp zjUCoHR9ZGn9f;z&cH_%|dv$D7=)mi6UCL+1;d3qhu313Bo}3tgCYb1T0KYU@3SpAg z#(>5LkC7Ca#0?UijU1_vQ7PIgZtlwA3dgP-p^V6~X%){GI8U(yZ_M8XAeQ2~2-H&a z%)xa#c@I6FGMC|kk6rJ=v+wZqz1KMV#D7Uqf0DlISO0a_f$z#@|I?gr5gz`aNwTpD z*3d*Xvk7x1n_$-%xNca<;$%Sw+GSew2E$rJ@bPuz+(|wl&Q=3XhPfg&?yrB&r>$p^ z!!4;x76NK<=*bGk&4$yK9-VXDdlW@0^Awf!{nT?LwiLON(9e%_loAd*2xM+a;k6sN z(CPB~9pwLBMLbOCqKH2WaJ@AT>tcaI7{`S$N^npLIJJ_ChDeqF7l=ZuAAGMkMnTkq zd(ZIeaTg*LzfZ|TEbIdqG|>u}QWmvdAjXS;!|<3WZ9{yYy3F+C@y%V|e$T)8FDdE| zn7!?#O=T1DNbPpO(j7{&PH})D8NYZ~MA6@c6*(!eime=)B0h~7^u6JoOZL2}iKyCj zMNwimJCxUt!$1=rv*xK$QoVhdIL}Fe67p8kDad5Eq?FW5Z;jjOJo<7foKB;fC~BwROVBI;DEz= znCdk%;&YgW6VX58<_pM;G9PDyBX&m0`f;8rul!{DjX^>2%j=1mS9Z~w7*!`r{-%UaYQGW_Eo zUuq}6R?~RM=tkW-DohbcyluW6?Prx{ez<@ihjoDg>l!y@UU=@#C1sgfQ7B4@Owew; z2Clgh{jy7lg|cGA#@0kSw!e!meklGYDuej=iU(N#aUaPGb1%xT5ipi(xOWJ*Yuu7QhZ*x9--OUnYvXtqog ziXHQUTO9*3S}4pXO-fGaBH*HQmR2$PMiinF{ZzaIV?eZ9RHdp`C}SM%Mp#HhP6`Rt z@Cwb$iR+@U?iulN4GLXdrW!dgRti_$VTJ+gY=NnRzBx(Zy8RsU7B1e&H)l3n_=#_@ zJN?`reA$Zn%l5zj27h$ge>`CsRmc5ExO<`$10|()szN*asd1Rm`^!qY;Chx8N`nPII=>U&v@-q??N80V-Q%KgsZ~FixC@mufxSvq^5T?&DGrugRKoGR%ZK@wib82d$pc;)zVK2q{ytGd?? zUwr2NtKHz`d#-iE3%)Ex{qg#qr+jF3_&byk&Ib6xiU2NU&fyLf8wgOT7XE*1uwEl0COC1fK* z(o`^YxmzgV*RZbSQ*MB%2Z(7Nb`ApUn1-)gmfY`=W*FxHzEqK_20>GxN=6)}Y1f-& z>E4L1&0$E}vhPfEfox8Ovj8u(7NMA#9zU`%yVVc>#h0b1|HSZ5f95J1x`th@5!XKH z^vJveVrf7^LLjC^I5y!kvW^=h^Ml9ex@s%N&V>-QDBsaYhh~R<>UdF*Bz)mgntnKk zbg7(3=aY{2c;C6PdfH%IMjX#dm$@RK(v&g;US;brNY5ibchG}qXNIs)fue;&mWvq? z*dYyd3riP{?JkOh5;~yhL}$zVVy1*kPL!2Qpd&R9di;w4?N7>HWQ1oFRjN{{icO^Y zws@r)qWaV!gc_pcvVAYe_Z!RvB)Ub0libKL=+>CtH?Qzij|#c{=WxNtudDZX!c)KG zMg1uU{`r1?x4HkGDl$V{v!AOuMNX712w=rdRtm=HlnN*%0SNoy9{$Yjwt8D>1qqB& zdZ7@Pl-kMG^;_4LpgLDtDaMu8!ge=o{kiAQ=Wi%`ElE=q?NC-3HE{s3SzhBXad9*t zq#C(!^3R`jyvvn}*K#0-gS0BA6;;T}s0kQAGuuT$8)LZu3kFr2QNW_HAX{dxh;j>D z2WP@2*@m{jHsBrJNKtcwagQD?kqYUV5fT|XDDh9M8lWEHfVN4-=N(PVtPWmX3ICi> zLkp*UTihhrfw!uPMNgc#gJ}%6SJBqwKpQ@~dBgAee_zs~{&0KuGcOoUT!-0q34GP6 zSr(%ZTA`2i&Au#sxgkjSN2G}|lZs{aAxpRg~F-rq>jw;D0^}4$$_5d*yMDT(# z(~CZLjp6$q_S`R7QGeqFAHM3-&-jnuR*``ZhP*%%=$BDH{BdyPM5U-iJ&If8ym#q6 zzXmH_p>#7Rs@GLJjl8WF>F0T_f}NzZOF_SxSR|al21<;sL}Hev5^E~V*&>8?V`fWKZ|t49mwiRxJ3D`}J!e=Srw z$=$U=fg6vvO6y~BZKKMv5%s0iE5;b60hyi)p0{??qYlYIK0y)GiGo~IqMiq|u7v97 zRRDxBb&PhI{Nu@l8H+p3Pz{RQruiHcHV#l!%SEFW{o%m*UvuHt-}?9W{*UV%`H~d% zr}@7>@}D;jeQ(xX#$1{K{6EmS#9)lZX@60F=Y$lfB!+I`RuX%{WskKO#Gzk_6={t@ zWE%GGR$vFAS(gUP4J*Kb7yp?GZFr#l<>9Z3gkfkLWDaQ{JAk80j^WExMU09Y0IIPt z(sZdoC&TvpAK5B4z9;c~Ery~)c{heID%DPZZHaM{Sww^MQj_o!QO|!>S2$eqYM2K4 zZbsUoB)nh1EoS?XM~Y%-Gc<1VgGWnrT%Sir!0qD{m@{*f=cC^W23&y9sD*X32m@)Q zS+>~u!=N-$`xY0JlZ084`0u(LfYKy`@WMZPD#plN1 z{JUT{HVBO3WyynkAnIWjg}Tt~q!te$S(?QgJ#?r_hN{Iq5ov?1(*8cCHBEBp5ySZl`ya<6|vq zd(<;7^P>Le7ybKnpMTot9=Bz&o1u{*^pDFgj}t_8+9N&tsj~s7QRLgGe+NT(d*eYP zYz-HYQwzdI8-t!9U!b*kl>@TwxLGUZjTNr5VLM0#>&| zd^O|i8WR1_%23lfMH=adBDz9_(08A~_s_{t9EYdqz9YmEAReE6(zQh~k>qZ*S)bhz zDTk>@f@>pV!!+;M#3Jv!)#5AA1s4dx$zZahHjOZYqKyFYODRK3?R&~lZx*S8TRcDM zqUgk*Myq->#o597Sut-oDD6;314G7+9yT!tOWw7M`cv8m&i&VoBe&J! ztszuKQu!3w%cb&%6}()O4$PR8-PVwbD;;!M*~ByH|3F58SwU!JKxailC6u+oFJ5(g zD@9A0O};WZ&GIp|5_!oal2aCGBV_j>(hTGW4f_TE1_s(vL6J|?*XacZZUnGG2BAjw}tq2ssI@o|nb zXLU<~ene!&uv0*_X^E?>1uE!;y4668Xz}YJT_;8*YFrg&zpEW;B@!{EgT6tSrG@CGNu&q*S6f%c?YKQ z#NQVY(P(UiOo)aM02J&w<9>U!s}&f!wooLr!#@|oTVHgn>H#+mF1%cL*w)}#)LdxJ+jUkJ%G?_(zM0v0Kl0;y3FshfboD><$VY2!J|yNcOG zpFUgf`PiplW<~ww`#=0mFWh^I>4|fH7p1oREW82<0fK8 zYzK_ODVY;5H1KVTks;(9=@|WhjFPIQ&8+SLhQdlhL#%`@=)=S36a(S2YllCtBph!jfRBXn@zy12 zAXXS6CWCKZ!lFWSp_tUru`dEHT*Bmp@SKw^Z-hby7#I@U-o!N*5~3`5c#2{lSBR%W z{ySmM#9?rA5aPhFR3Km@GG~zOlm2w#9j~2%YKXO4Kr3@6LuBbtEq&?V;xN!{aDix@ zL2ra=npB(P?PK-$kv;pr=9^!#=jC1y0gciQ1$uV-L!i^17+NbE$zA(i!#%9VAO~$AZ4+w0lRkpciArjG1@DM5%zbe4ogh_eP34 z@pKn5Z0&j0IKWNKI|^EaWPtjaJl1j7(&?_L2+E0?wa35_Q1KF#Y&qTs-`sQQu3P-T z-(Ds~{b9quJ?DtYnb}=KD25!raz=pyuKA1jvK7B{11P|xMowVYU;A?*<3{a>psGuZ z0!UEFk+Hjz)Ya8}1X3#5{p*e>{*;9*OQKUMfjQ7AXGpJvxuO^hGKW;U@}5kH>rQ<2 z5}aMM#203oqZE-+<=*3&(Bc`yeTd@cr=I^Wjv*Cq8ObkevM5$NWnqfm`1Q>(b}=!zH>sVxtBMVB7xse|`y zX67Al7U|&m?gZZt7u3|{w|t?D0wxbi(ezrvJY*ia_{M@Y7%v}&rz3;|-Fp+U3qEzW z-TN`W{Y4k`*Ie|`YyHt_=ReUzhE-T}FKnXXnAH<}%B8PInZz!5==R`TjoHJfwIllJ zMbu6CcngSz(90#h`hj%b61u?t`IoNY0iOT*KNl8Mop%ww(n(PWbuj0&^0UOWw1|;Q z#}r^;16QqgmAJ`QO@Majl-dz^#a+qbcrR=i0m|gkq*xP!1hPflv(!Is_ZOm{BuDpZ zw8fO3v3O`tiP<*vj9}zG8aY~jVB>9l~5m3 z(It_8bl@2%P%n*U}9;E0o$$X+aI{10R<29g6 zrVf@^+%n4niL-(2OJE7)V3b4<1I6Iy1yiRX>hr>$U$)r{8G=~8{y5zA&i(TsP?Ne4X^GY$YgSdR zl*xn;07j%24UNWAA~l0k0cp(_FPG|0V-)zQVxD;6$>vuBU89AIRHS$s0A1F3{fm_h zbaj>QuEmh62}bWNsjr?2ejf9;@z?}`Gy;>LAjdlew?Hj`xue-s0`thwuZUp)=0Lck zd8R9tVc%l?T0LQ6ICc>THNejWhOAoGpQwzj4oG|ApaMU6#?b}4W_YcFF?C^w5#P9m zcE1?YC$Ou~`abCL^$eF@_*HWMC;iG7T-1NHO}h`@Tg7Hp0wOYvtlhO0j#DV7=#>`kUymQaBW6fH!*y7RbHm^@1Cpc^!40G3 z195EUd{z;GJ3kNwYFIHZl%gC|9NH zvBUg&tn9Xo^3^pdWQQ`&)k4FKX|cI`_wCG4+lrHmUM>d1zPT+6VM@la3{5Q9F%t0k z2KP%IC|cE$a{;lDR|+HZ2S=Jt77qIR{w7uA4DOZcP1EKhDuY0pG)#gQSu-AT{LGB5sB7H zF4b|b3S?>kH4YK`!&jjKBcY-t7F5AJO;9KlA)~r0u|iG7ZncJnFngj!LG4eMtY%gEE|{8nv@XjdBo#kjftz?u{=n)J`ww1hh2uLgkG2! zNfDA^>u>ozMaBzK9lhh-<81vh6SJeUJKq15UrVWvqq*Fi_ z@9)qlqReEgckwXcA;XA2TjzMj-VxE2A=ptWj-DVwiIaIT~MR znxUQ(D}^{ey9arYk-=&PDR9pb1v_X3G0?26jBHyu*I2}@Yi3{_7ki`H15F&5UI>f? zyWR2pdjzS-P!2oZ2Hf-5Wj3uic!MrnNNN&74k$JfuoEa)x$*(66A@2ZyW{~QW6n5Q z1}nKh2(hb`&fu2N6a}K?n35FFe|NANhT6&Em%&~N4vfO%`^Ggkasld5GF9w?&saN&%ObO#IXZUbmbd0&(4i@TJCNF^kWvI*EV09n z@_pn;tRh_;}Jf5uab6dGC-m#tvj3hFk$pCL3hMP28L}pvQHi0SkSDhR7E;gy+px^u8Uaw84QtvKB9-qyiyK@ z_^B+;Tk?#F!%E3sDU|mPgXrd55TxKEGjF*|R(LFB!)5SHk8@K+Y9qXVCGf<#UchBI zdFEGtbn`p!^iQW$)c46Jf9W&B{JL6HcYXg6RQOr(dC5O_7`)-Yan*2>^^Mvc-1bAM zovJfgwy2Wa`K@<)Hu3vj5VmyWKPcXr>cnw(Fu=v52SH^(C=Z?m2HQq@ax0-4R@AC2 zO;po+hJ#Nb;TTzg8*P8JOKzssh&CB&nl`Vtv1iycF2xljtINLxoC+KBqILH8az>8L1G7yzmP z7aWGd4xTF*_JQ^Z%?SrQLRkQ7Gz_mm3MWyCHo)rVFi4HiPLrBQ6$3ZMP>^_hKkP$W zli{up{?k(`>OW^6dzPzguG0-0323l2I(ti$wLEl`?y>B5)6c(3vuYDvwg?Y0mX(1R zeav1a<^bzP=dJpmiL4D_DcLPZ8lG|yn0BBG5ezQT&ILS&*H?$i=QUOqQB+TwJst5jV142nU+s?8p(9jv}=o^MyT5 zq-nzNv3Z4BaM+4`?|5s*8u zHn~w0H550+{ESPHRXk&nKsZaUSb`&C&OjPOx&ejU$Uq2cuf#z;7x66L5*kz;;_1e2 z*C1da#@AUGk_{PKSIufr6dg6G#VtBBqS4n#Ib@u4fzDUC+`do_11Ej)dP-a#!Lw6$ ziX3*$u7$~WMKh)y&qY*uCPk)juk}dpM7pC8%4cH%AQOHy&iLlhDY8}dsCZ{*BH3$3 zM6@-z=vv?Mr+dEs`uo=^>d!s-xgUAQ=Fz*a>gJ|sioIcaB@mBS1rZD~E@0S}6p)D5 z17)viM;L?jJ?B`pgb7!q(KZ16gfW;k}tjfkg&(EiA}Vprb{o*+McibFHHOzvMHI|I}=L{ncCi3^T05 zaH$b?T1*6tbnmO!CaW$K*0r@=kJ@-D{~J0x8CzqZY8_^box<9tVgzmCd`#~kWUX_| zNQR7tDb&16%M66s5143&`BL%j{%239*FMGxS{f*4MQSbXivSGEN=^?leq?006G4#> zmqy}`?wCP}jF=u6 z@Wv4rAI}T;u@v7Lq; z>S?+L_G^?ZI9+tP=Rw8>Pw+jNIs!!~$0oUeE+G=X9lmtiG^ zlIOG9ii@9t9Da(cAOAfgBC71)Bi#;vp{2ML)uSv6;4(StHV zZ`ryaboJYubX`C#0;xvLb5U-<2=P$dMn$Iu92w|^tf(U%FDl%xTnRN$auH8vR9b^C zSU~c;arRC$-YRSsg6Fe~4LTq)emmor3!x#hLcSPU3#wBCbd}%~uNMt;azqdK`2=mW zm+wk10wQv9`*U~6MQ7=co%M*fS`(zg*7PKM3 zJqXpNTHGVEgbDp#Or$eBRiX|Z;s;)Gte_IQX_gu}dH*y$iX}(Ikf4LA&XK1Mg^>+E z@%M}q9$}1PV&$ZR_6kF|3Xi8FP|K7VSaagDGNF!)@p0o$Cb%|J?Gz}{Dhci8V~ z7)OLaaF7{!_JL3C;RHE3{{nUbEbv3&;^idJ19n+@;`r=>Z@KO7?)}-bS}w5!ht@Ybo^#&56?UW>tpd_>IlxrbN48p0;9{` zx$C_qmmJ)Nt}^Vr52T;RC^rUM@L_1?l-o-27oOAT^b^-SB+v=tKO_Zo)IMB^K{E5Q zVO~B1eA1YW01x9P{*es@L*eq@VkDdp!z)>Oj*O{ClBt99ZC{dv0b3_98L5nt#W_f~ z6BhFZg+5u~LN__b+)stUD;RyDkBYHrc+4+?E+L{DP>GtC;`0gUy>xOmlbFX&8D1vG}JMj(Q@(;Uje2agdEb7l}=l|6E zcAdD@7v|iudblaVW9j4z@{^G@U=sO))<1NGCqi8*Wn!0N#qAJ1R#xqZw9~13XI(;v zoET!^g|OF;{ovxH^0A5ZR#Q7mS#^Qo_+HzSZFV6q9u6=L7GBXlyx)y{MEcAm@O zXgK?^K$ng!23#~y5&}Gvw)mZ{5(P*?!WVFOH`cn=S49dq2%@)2Z}?m6btAk2!&C3Y z?U6w%x<|61rAX~?Wnz91Lq6s#?3>XVJ?|!zv58vtr%B%M09h%+^}W&^g{|MEUHPm} z@A~e0zJ9W(@AJ<->4KqMYl?4fEBN6y!5Q~(j1i2I8EBzT41U?Bi(+3YzRKEQ)nHYL z-}X9`&;Hiq=%n-M~hlBU%6F+P~5pvOxLk|sISqee@^wM8Ols!=okpB z8ug<$dVa60C{&kTMk?mppFszqjR-f@La8|lbVPX(h>>p&gIE;Fu!32*;)u(W&Iu(k> z+{A6=&Y_MHd;EAKls~+`i$F3@f1rs%ooMsgEAoT%1FfZlXZNX_Lizo+26V!NMKz?k z&+suAmYVbe>-w}-4;i5Rb7!5>uQa#T()-8k!_fOh5^$71e@g>m^bD;@ISZ>*fI?E9 zr$ZVM=6+fj02-tTDVO<2`&;CPGlgX-Ak6m!LNJ8zu$@6FCMk(1F@Au(Qj&}!B!kZd zzBA~(j=>X+b?zQu81Fk=QfmRN%p0UDCK{*1MG^<-u}C)(=-~l^lXAhdOD{T0AM(Vf zbc^~MF8tKhU$FPcFQ~}S8vxcY2?69Bhj?aYz=ZMDQDNP%d3^$igXGj!YSy`BEkYQq7#mRUr#Sr zHRf#zTtsBTp%c@KV(T&xZu(GMICDS?S7IutEwy^IC@4--ho~7IiT_~|J$By65K*lv zQZ$W{*rnruPO1wev$dTI$sujz0_4FKL3n;>Bfc|22CmKfbjM!uQM`B{w4qYF>d_+} zBJ+w0mls_+SRSpF3H6jIQ41Ay2~TO8>xJKZt3TL#t?L}7Mg7$$F8b~_>^}LUIIxq6 z01T#7l*teZ97^hhGLsK5tuq#z3dQIRb=eSD$aB|$S?+{~6=q+t^EM)z?}?{Y4KlI7 z4lBC(DZaL>@S73pkyFRT0)Zg|fI>qW@-CIS1KmMjV1~-D9j3v?)jf}T^nS52DG=BJ zSPGJ+!P%oCHh}M-eML$OB*FT!s_hbd$f|{jJMkX)5Z^X%{}=J-bfcHh0P{GC9ms zO4*wl2FBwDiHYp}VPfn8^YMLLKd#>^sU^C8CVEuj@FzWN@F%n-Km&RoGJGy+2*M#lI;G9X1uS0(O) z3lpo@)iO(0q%bD4FRAo6>2#%Ra3~!%g?A`^(xKVSffm?$bV%olOB{HzA#QSC)C!~E zx*QG3I%|y=L>x{^Z(ab$7b>JzF1>5M+BtKGB*(Yj`aSdJ!-Zk~RbTVbjXT`^?`To~ zt#;wheR|fek3tXWVBWSu#KU65bYeItL^xw9nnAk5MHH4u*L|F?Ur0Bqo%P#9H(Wh# zjQGDyIZ$fX39~1V!sk~Y4Pt0Cp544FkUGVEi zRIVJc$D!L1%4A@L5$xFrozW((Wu-e{G+FIp=m8Ve73*irjo$ig0#|1O7+bSbW|YrU z3;wISgucg(Oz=VY8L+PLuZSi^W}mUc>;|kL^EI3z4k;}RF0&d!3N%(TnWXgKT*Rgj zRS5GQmcWx-5w#XMVcTl0?3A&CZCQ4nx_A_90CiAiW4ruZygL}^4 z9yz>6fBZ4O&5OET@YLwcs1t5|)uvS^3NWX*2^1e89xBspjp^cPYj~aD;L%pFOxQNw zNkOxYPfqUw*Y`W`)BlX@4y5afQt$8MMXa)x`nFm^SvRYmZ8|BdMsW|s7{G`G2m=E1 ze4&~H4Df!UvErDgt_4kSoTmLHfNGFdM zk(Ipp%yK~kt=Sp`NTY_h3|ivK%Vl5cf^l@KgS?lqbO5 zS8O^K4h4(Y#zK{)`pMwMPQX18eN@K6ru8C_E(Wc3^UT3eV7STLCWRS*d4<8+#POp~ zO`8yYIXRwPY`p`Kh2zoMIIm}R;)XZ-+s&Ka@`I_U|LKW~f8bpke#h$aS6RSDqr|v~ z$Km*eKn43LDFuf=pC$JCY7tVF4Y930=W%CxTqd{;CFrcrZ>i_2_LDlz&7(Q3rvMW;$Yn zi&`=!BP=2GacO9_rF{M3B9JaP7Q-m`K0JHIUz^=GwIz`!xN{Xyray|KSwVNy6@n_} z#K_{`n2RE&t?C4Au}9a#z~i16YDz@K92}>_W7+9Zx-OY0Im*tAMx|j|)=^{nay+1b zyJrcVL!7Bzec-X8-t{Wye%K07K2b=Bhh4 z74`G%(%)z*yJf}p+kC-0;)i(7vI=mC|CH0x3!=FPJuZp_aV zC~|Rt*`^#DnG2(E;mrbzj*y6={Q!%4^L$}z%)CpM9W<&^=P@!+NS>%p2X)LH=%xx@ zF)fR(n$%zs7SPdxHUM`FjqL8c+Va}rL#OLG=lxnL>c6NLKiReo=oGf#*{g%Y7*$cK zWQ(s|7^A0D^;C?s&l{G0XvfqAWF5dj$rgW|U4#X2Wr~SnE7;>b+51!ym38>?J@-Vm zh5@V%a*)LOir7^UnF5xr;I%SE`CP(GRvHH*&Xq#Ma?8(yL*a*_F2HapDp2LT^vI)j zqBdn5Yn3e97bWIj$alxba&DXz*V=HnC~AHF zLRtKpP2kJD&UL!rizu0G^mzX^QP9|9O;Iv)k*{1S>llK?Pmrg_tZ{tH|78$oNbH&+ zeZsUrDOn?sKRq7aKM$W7U*5ZI`?xglXAxP3C$s>cj8KBXK$85~goF+YglZUYwIz4? zG2gVL*(<@(!*TO@DDK_~fe;?8mMD;#;gLD`uLyL<3GxXSju9?upm^23Ev+bVJapi7 zcibr>E9azVQ4`y3#31jv*WCaLN(_sBVV*1=`ChJLW7vA(%f3WxL z>l_~T?b|1BJAUw+|6;fQbnb$Co+;i5AHd-n4{#80^zIM$yyLgN`u_a+r(v7*12kmi z0M{nr3F(Hf_2DCa|7kxMS&Le#UEg)-s9pOpBsuU|x*(X*i`sM+?y{HmWcH;+9F(ng zb#nccZs~#AD57;h>PTN?!!O-R1X5Hs65ex(lG8e6E0JjE?8kgxNSxgQwo$E~FVyEn zEA_F-(pFe{Ari!4P^3eF#g7$!CUr`}WCS9Y1jEzuVON3LxQ}32x~N62GFJx+P29 ztfxU7_xfgJzvySq<0-PTQpoeKyM8%^^|Ov%2QWmhU1K*qU#=Z#d~>85 zYVMX1M~^hj*ij;L#EGnbJihe{WKwdroDvl~=>|KLg<>^z%Z;ZeIlx=kp-X3wNhSRN zGbJCIHP_#wtpZtpTfP2cH@eyDci-Z>{%zQ|Z=byMu3=n!>Xht0Cm|!_N{ukBEa1BVT;!lqf{S>L765YIn}4bOJbji%gNY1_6Vw zo}YOJ9mKDqnfgzl%SpQTpw-xJO1*uHIK{5#)^>z!|-2qim zSsmG;Wvv1P!bC#YN%xB`zf2kkowQIA*{(~&&M)Hk0XlT=$on-@128E^lm{xKg@6+r$O-OoD&w3cnePgqe<>Sx4_U!lXy6e4PH|*QDPyS$j=s};D z*^O8U8ALkeocksYl9L@7q>%@2R>*JGfkdQh8pRp)z0xwZew%oH)~}z+`g^8Vwx%M0 z4_v43U-{cL?n8*LiU^DN!*a+SC+i4Xi~mY*3~gln16*K+a&fI-6kmNWb}`Gmv@K%l zEEHR-h1`)+s1s>C7*{8mnwQutPN;-fI6VuIgak;(J7L1TB5n&&L``ym>J<|uW?vE3 zDV_U*w;ehE-YHop7 z%pT3W|M*@tk#^Oqe|+|X4}96MZ{I%oZ9np}=MQ?ef`o>9bx*+)GBHl$ovxKla3302 zha1h3e5Q5^b$#m)@A{8_S*_o?_5)KP8l1k#?%#iW>H5*I^;;>y(p7T`8JgbQ(pRM1DIyRsGq0`^?);~M+VID%%u9?+d6|@7P$__wtjGv-`@P!OU>n1FynuU=#jFLsH4WbK^ zE|0$3=vAUH#d59obkhzTi4E6aRrDXDj7#=Whg>(yl8-3Z{b8M37$X&rsodU zK_S{YR=rqY3vU~bZ`?Mw#Ph|%r(u`i{JDiZ=bV^u&GGRy?*I_IN48#V!izgf1~iSVW2k3KJnM`yx+{ zdmv(__qU1XpIU!aY3BR$$i3X@)o441Kc(Z7!s(#0V*Q!7&gh`)t-lw|H+BB2a$xoQ zUqi=*zJ3GRtitmLGXcU%W{n@Wa*=C zye>u0A>K{6eQoQ|1`8$~I&;LgrL)F(ymyqG5uQMb-q`6Pz0slbCtbD>HqgrTOC5&J zg}=_OT2qMYBB5uNs68hhHe^>Yk4jYSD2l_s=TeP@!sF`kW4rWGPk8FEZ{I%o|Md7T zs@TjRf}j_`+zWN~&=vWFmq{;_I`&>7I_W{eJx~w~vbENrWX;m;@Oqvor?!56F8k}( zHC_i>zpc10p8ugEAY11#v=BFk5H?q%^BDcoIiI}rkTqI0l<<162@uKAcqm$m-6k?O=8c3eljB>f z-EvZR;<{UY%o0_n8NY8W?-IHZeQT`0k>k_(bmDo=U>zaB(ArtQ6AGsgZ+TePyyF_# zjr|Ls331VrbCJhB=~sq*`}WC`<>(VtWX8NqA|7e9YjhZvaW}!*4f6Y|^xX`Fc8&e} z3;3?Adj8n$4$yhC`x|trtJa^-$+Amb_w`@a>pzwAZ>MnnvpZ!E&zBBUN7fK?Nr0Aw zy#DEVh!h_n&Bj~Bw*`E#1@LvG!6g|yap!aIQyATONOSRYVK9VL%$v~)ov0h}hG7v6 zjk>%Zp9a0!7a^tB*>dudbmaDhR=DQ+9lB{jSjKsQMHr>GJ7F^jgtnwdizKWZalX4+ z&=^Okh}s*><*`rtmEn6He$Husym$7vWl_f=l2EVgDFY{N{3I(BnXBpExI)0)aUR8WT7;=;t&iyoeNN zCPFJ1NTA4I0U93~XT`x+G~p5__PNC9sS%$O^f76yq7oG;;UNbkGmn^SUp}S77EfB{kPbOoScgcRxcWfUDL?L z%EMxCL1l z0#{?;rPB(TDxc-g;74J9q<>xCxa0!lMP>?_f3jBTRceA5+{(=8J{J^=7yXGtQ%+8rE zqN}&aQ=TY7olaJZaHgW{Y{C|Hwcm=Ye2%H;H%?8IQwoM)>$flC`t=mn&lH$nit}$P zsgyh|HxFCUf}rj^J$VUPHsVr{?>m7+V%M&~{dVWHJ;c&`Vw{!7d*45W@!6$AJ5=DS zw_dm3dHe!VwCa!3J>I!6itZ|$Kv%NH`eB&K&Zl^VM<$PtJbU4@4`GzY@Oo86<|nrf z(jf$-K$nk0Z*i_NO=(dgNAG;sKN{|O?&H4xFLv+x$;uoT;_M+4Eb}a4K_3yMp)tXZ zi_m?7L2Q{O!dy>;grb?qb}-^w(!W1*51d;6lK3PvNOvvFe49Nhw(lGta}J67@Zz{8nXAW2}bIQI~5M|@5i6svjQX^&j$UR0WFyB2CLO09Jisjz!}p#0xa+=d_pS#`0~FI;%ZRK`l&vkv;IaXmcC*agX?J% zgY3rE?;RTE_P)II~Qx z9~~pBHG@%;2p1`F-uZE3%yj;lMn4zqc;>C*;#k;|1RdBhWzdM8-%}nfBt(IFoseTw z5!DP`G*Xo2q_d~%7fxZEx+u`&g|8pgsdMuD%pYamDlU!dZ;UY{#6i>h$D=A2ePZx; zbLI!bY!0HUqjSTr#@_D^^T|by-}VkK9d3KxDk#pL?^nZ0@>eFTi5S!^TKC7ZzJ*nWapJH_+A>iz3Iza=H<>h&*=_ms`r zJO7ITsHZ{b^!d-vFJa0Pb_l)BS+Pj8Omj@bxJC+T^j6o7oE^9S3L+I>p)8e(iPQD_ za*ZcD4ujI+a?c5lEEBPDb5aBuB~S#o)<8eR00~@wqKm?7V(Vv7dW;i3cfJ#0$B*n9 zhj~YXk4U%(%qL9Q+_~j|z;49J;5O|(T#n!BHh(eP_Pob`+gmp`@1bF<tPDQAXBd zjULM$bFmR$=UD#y%PsY)W3`avrk*SQ%)-xXjn^O7WD~E`)_ndi#rdCFSMNRPo&Uw- z%9`gts%qsFUcXMf|JGT59L5f)s%^4mt?QQQh7R87E*aa5TVtj$qyiKt5J`j=NYHbS zqKN$PlM{5qIP_D^Mb3d`(mF+AE`7Wg;RTf7C(Jh}CF6x`u63Xr<@`;un_*+aP0zs!Bixb?Z`-uxdn zH}1wgO1P@gXm>aLGYp`f3Z-Vp;ks&fIK6(Gc>byNGgWGD{W`g(_1F5PKL0wg{&mlP zRGP-2<*L`8?Q(^5;CcNfQXbdVTt9uSu35>s=%kb|58@zom7hnV<{=}7Y_p3$_{8z8 zgKw`~Kf)v|oMFNxF;V=4N2`@6Kkr-hIyru^6VlF(q1@NAPYN4iH|Ow659&f1rcVu} zr5dXxF&SPUI?vx5q6%4Kp=Wk>4mbZNEaGNJQ;pT7O*u1N*;f?Zz{3mPpuCP#Q zrOtje%z9m4m#O1r!q3FlI9?{)3T4gp=_z=;oXR=o9xKypT<83+dJm^OX4pAf_4;#^ z1rIgvz2`$D#Wu-2(mV=}nKRe|f`*yT2phD;$7;?gbsl~`4~2E^)%SaG z{Jckz6JCVyLNafCil2AHJM8gY2xT(}h}ii-8mNFj%A9oEPSzjauiiYP5!}5T4|4|x z{~kQPIqYgW!XfVssTZF=`1~~II}sN-@twE)%i)%ffBY@~abxq&>qNuJ7kP}xbYz^% z>R3A_PO&xCg^BVy5lPXbD9Rd98?xqlzL5V-DO|tU^RHjz`UTGMswflbdg}8q4UyIH zgVK4f@i82IQBd~ZIHQC4g%qX)VDOBFhkoK+PmvylkaT@5c!IRn>E@wePnCgzc0Oh5Jpp{4(HGhIXYZf%=&OR5Z+rW$jk{LcT1n6Y`<<@%Pfp=?);XrPhG_G;&Kj+A-`;<# z9)D{6w#NGPGCqH&dXCq08ufAE|cAHQ>a9Pq~bFVwMO zVg2E98iTO6N656`drm}H`p1X$q;A{5RsoO4KoQOBAN^?txImDL)OenBxef{T$O4H~ zaSds0QmL%T#<+8Qll-&z`ji}>+8NJ}9gk1*6lhJ-^C|yXDD1~>^IfkT?r`3DH+kE} z<~>xmzXaRQH~u|#K?*f(AHePc>VjSoWC#i`L~JnD_Os-@%$oW%@gaFQ(V8S`T1e%$Kym7%opq?weP=D z0*d=x61U@>IzASVb_&M}blwx|r^k05KXUh_)nlA=^yBkS9q(i}6FT(>AB_dDL6OGJ z*z@1xMNY_WA)OP?MY6Y>!sEN=lda!j{p|e1<2Q2hT*>E)b?sY!9>48vUom|5FPwX$ zx6C&0MLSEcT~YaW>`C9*8Le-zjoFyc>Id>OXs!3^CTWR z<2BcRS)G6BtY1&@{Er=f?9jcl!+`T-+uzy6d9{i2Uyk?CorgaS)-168#b8Odzi1jA z6E$|7(c=XY?p1T4Pe9wk-O)1=kQgn-1yAgF5kkAvEOrqE3tm`H;anS7AsBRsSm<@) zc$q$4WGh(2p>uV(Kt)X537D47lM$>Pz&$50Sfs4tE&?x36b`c7702`0TJ5B9cNfoJ zf?wk2NnvLs_4t^$mEOBc4euJfGk`MKix7s;%?~haj zynlR?4m9Bzixwq*;+^%dc(+Ai>K>0cvH_;9{QNX_JkAmtbiZ-^Ex;EJL~bSPkH=5p z=K-cl>(`0%FZn#Mc|n66)8gMcaUqH4w_(S>xDXoMZ5_MA?O!t7?HA5H`whEx-(SOr z-WFfp6@$$23mAXq;mg0q5N`1W9EV^|w$D?8G(4{J{A}A|2hLs_qv{`^_TU08P?w^WBL7$c>4Bt!9qP6dzsk1$1i;{`05NPvAY}1 zmk7>Uw(Ocy;A7`qAOy|g6fA%!4^PK$f8i7S(iwXCz^IPo5!edHj{p0a#u0I|>wSEoj zA2(}joWI`sbz=Q`itAr>{sq=Q_51?o&sID?JAUf?`x@t8pm0lgogUtQfeS+UJS}!r zap2iP8}DIY5Ib*)%n=xrb>r!zLJld&SSuc126@t_88RkHFG?>7R^TGlW!y-gozh#s zOTR$TKx|gvbVA-Q1d{0B{w10a2BF1xZO!BHLX|powtiBC%MMM+MT)GaJLgb2diT5h z;c(wyc-+`I8t`<9Kw*INdr#p$x?@x98 z?Dv<|`t20fFJHj=jhz24*ZQUN{t_Q}EM%>+CA;g7 zu!>f`JEH|QGPuR{JE3h(4wA`$lC8feXDv4axR!>WAFJmlUK|>p&m}|Z=soZL%;AS0 z`?#yVV%T#|>COa(gaX~7^t-NZr#NwcbN+h?#|S*WOgumB^vUa!iS-Lvzc}AvOs(I@ z>yPUf?3!1sfAL1II{#^?xZ?dYJm;|~CFhT=KXzgY=Z~#ldb@`3_!2y+j0|xXwJK6d zJ-o&geHovBJC071gCWw|jM(EY=!#l9ZwFf12=PeRo-3FzY3F_sLTS*|Mmn2z3apa* z1Q;hlG+rrmk-E9Sa0@g8YsS}ID3;{-CY3UYp(Ev(2zMAB-c7uZ54 z^yM&^Q9gyiK)S^4wL?KIJ0*jmJYw)!t8nDL_x|1C#~%9&yI(Twc_izyCb3g8oRWzy zP&=KM>FO@c$j$+WgT3|ZDXgD$c~k3`&hxM8a#OdgtGnD@XT0wE^)fvFdWz@&viSV; zUegjr0SOA=@^MCB0e(pr_e67SReaQlK*<|m%_xfLz%WfZ6t+NzV+@lL`n>%jFvuY> zN?>@$yj+kjS41yU;uu2D>p?jpgpJaJZ4l~c6&_h<{S+30ZoW_^JMR|?vf}#VL(Rhn zGwlSd`s#{rzuCy z(OAW%g;5pb;|t$a;BH5eQmTZ@uYCPD4~gIQIl^MP9Bw0Av+(_o;}qDve;quI>jj_4GhC*r#?||%aCkE_ly@DS+RaR z-aG4`?9^9WFj9y41+HJe$n)R5$WN?aCO$ukMLb+^%sGzE<~dQhuMRVl*tO%lBMxn4 z8BINYVIxMq;HNY34i3qRZ-`bGz|xsXWnds(k_}-aR*xRsEm#{&4FHkx5joeXD}*kU zb&m{ZMoR*BzH<@ih)dV49b1Dn*5ACsAgwbDrR#GtOAtQPPUk<~SBScn?F<{ah&b%D zdhdyfxX<_gpJ(hF_U+pzPd+M7RF@el2ov8~$+nyPtbFMs#~QcYTB(4&=TGX+iRYiX zKYM-!{&E-I(fYV@Iat3Xwqx(ZCDf@y2VR@gfiNOJzg`5<@X(K}%z zb^Kr)l&6ZUB^42!%ab1aE5p8h`{b#I{ISh-Q^31JK&h8}H{uX%h5Ay#lVj>JWkO|& z&m}}DsT1p8Y-MahsTrR~nD@(sQc~9OeqnwlD~?lCMG|G`)cO^?Pu4yEQ|C3l)_9%- z)T%Y8IIq=PRj+!WOpf6(@Lc2f3-2#{uq{A)T&{I%+wQJQe0{M+ZkCJAh+S!hD;#Wj zC3uN6C~`P(9Whx#`$P5U`1fJ?oO8xq4{(g@vLF}l5+}4k0-5wEiXH(wuvJLMTX>Cd z{5--P4zLOw@29Z-xchQ68beP704q5!`{j}L+4iBE}X zzgx74=bu`C@*4R9*RNmT`jxC-PI3L0#rZ##^@~(R=hX8rUYiKtLBwuf;QnzIhoYkx zHji@!I)CXYfbsc}VI(4|Y{1!;1eDY*2j@l_S-1EiwtnYFIoG5EcIfiTz;xpH=tm-9 zP4T%GgFV(UHZt^V1R@e*Ih%F{N;*@7VVDym{*DYO+4_^8igsv=4iJ%a;1TT9;Xt1_ zzBMxN^!%Dy_^>)T2W2R&^!&7|UG+cgQRh5k*tc(=yzub+Ug!I8?Xhc%bUdkQy|iUT z0gCs(I8N?waDRMGq*fMcBDp_XKcgm2t)Ed7*ImC7YF}^t0`yAhPz!a<^N-JOM6{D0 zKkh`^8q`SQs}j3@A)Pnd6~%7bU?&m>pK-koJCAhEG!KCjy)wLii|2x`)zqng`h_rx@cu>ykUjf?-tbYqvU5r& zjYD$Hu9_0*h|;%ka5(=X79ZCISo*mBK<~z#PGrd_3|qI>7$fW!)IkueVCRIfbc=K) z#m2A0Gj3klBu={Q#qo0oN)w?6CY#{a5$4{34zKDB-!I~inBIT2aJR`}WCeFFk&n_sgzZ791Cg8wy=oppQw#drMae_5h22JILTmG409Q8(^rH@%nYe z`n|J$@4SBPtlw9xf8F~RhsYJ@Z?SFx8-Uco_e5mCY{6kBr8_zdHJg;7Vwx97{eEh! z8;!7F;x0;|rjnhB#h-f^#5y_-O8)XiL#f7i#n4GLf#ab-HF8;tMSM}@8t|l3&Sj)C z5{ST&JB>6u#yb}xG=hP0!v0Y>(}7b`SM6lLs+{XDDD1JoP?Bla$i?x&+`_(ajRk+WP^By zqQnU_CiSA_>_XRpy~gK`7l+1+bQx+!Xc&~kXrXHX1{!(lv9oXB^eFswx>wp|V%5ar zqks$J_L>bglX({wcmgl<;2L~op0W^gZNOMx;q!p^rGkRc<~kPhlKAw$UoXS;+bOQ! z)>wc1o(vPmqh}8u-xWszloO9nvJ~g%y!TkhH)ou7nRvb9?xF(=l>iW_7l_#XGu7)7 zE+gJ74d8{yX{S~RAXaJ<_Ph~~jUDY=fCkqYV3vyviI$spxZNe%E-*MKZBuw?h)*~@ zvH|aW`y$gi6i)2y8(bHh6k?Yu^y-;lp@AApX~Miw0Uw-|>z7koe_GF}um9-XzxNL} zZ}Xl1HtgHCPd<9+$Z4-Wxis~Pa76JfVLmRQGc)M;%5V;RNDPLkvf}>Q_#jN-K3(@m z=EFknziRymcSz^?i+dy}lQj$&4P)0J+O8MXhIGexe~000{I@uF!i;K8$Muq7vm>Y?Kfvm zBHZX8(fI%pgQR1moOo5pVmF?6|BLlo?aY&p5MB_Ct9j}AtzXES1F-3!AYQKj$o=p6 z8@q4v&7T?e?b|2kA3SvQg}(O@CNdMrSR{=!i|kPhEszO%9*UScLK@Q$Obi3C(vA6& zHf(IoI^7xjn!e*j05dW03?ko^kX5`$^*Z&bPMWG%B|8+##4bvR5QweWRzN7{Dm~uN{8XVjfHo6eP71+vI(D5b=QCF(8C_^#J$%!`^d0w-#)p{>3fen`679u z`Ldp6N&T36__XBUyb1N9tMldj~%}hU5p&?_||}N(?Vz6wm)Aj)EdO- z<8Da%vkylaqvz)=Zj*^FC|L!%pfa}DfqBJF+19=1=oq{9MF>ao6jAV$@#;n1aLr1* z%|W0O*CfQF1qXq}iE?o6jvQkcoJEIj=ool>w$6yYW^9PUxf=yZ7dG zcjY8`stihdBBFRfvK&6be18N)YmEeLyUh1K?`cmE5gGRF+b1F-zj>)YaxS_jF$h57 zFP+G@B7+wxqNDhQD-MNHCFUL;-zH+xVn~yHh zx?tzKij)x5!N0vXX!d@gXPvaM*W~?fTx7x!jxds})7cALp*P_J3rl%TZYasVmP+d+9CKXhjaS$lvB31_03cCQ!k4a&y-up@}Mk`%1 zrO#x-3#l_&B=ct{7uk4`?|oLpCtNk1SSv${RY^rcrDHMzL*bH?#CIO>07E&Inqiu7 z=EjRCM&!9yzIkDF_;lh?3yy)Qs5lu8`-H_UdG0o4G)7>RNnw?0cfETS15;A8<|GNI;n0)#y*L?)`g|!^i5H2*gr;f5=@-9m+fY#QBaz_SVtGvs z2dYw|)sSZ&2c%7bZifzutx_Q!d|{gAEoFTE#^`$lzGz_8i_wCq3x+W52w^37Ck|5y z?Bz&d)qGBbz%>GT1q>nS4aSisDORDn?cb`+?&(_~-e?9lQSM z(vJz7JRXN^D+YVLuHQPa#5#1u()DZYW)lvp6GKblr6Mv7MV0lV7m4({cseXp0$KH5 zi%bN2ke!DRC@gi^ZDI(z#(;DcmD4-BkTRH;>@ry#F3FHz;_L5N0Xup9BX>RF1>wu6 ztgCBeXvPMp(A_P}pc-`c8g~WK*~a(y)>;RGy|&!Jb0NVfz-~#<1c5Rd;kCC0l=T2n zG$lI#7@oGyzz`u4G*KJn_1>Xrl7h-YN)okI$u2^scO5NQJruPlgI$2G+JWnif6uL7 zvT^6zzbzH@4;(mp*6WXN{s?yENyX?HXY9G_2@WtB9_v}jhuuC^L6WYWt(85d5&?{Q zpVqhT`VC%x@A-wrX10CnGAfz>#%n0d|Q9V5xZAwbs)`L5KXcVOBo)+_q7bf zr9OAt9*WMx`Ct63%`59AdFz0x8ZTgrU6-SPDFYH|27tSck;xQ;9@+w@*>)Nn-5s|d zaqd|KC|)6f(YIYWwk!_*Dw5qD8wh&lLWZsm`Jb9&-yHnlV;9VJ6{+wC47gcGWVOA` zYDj^^7(ZJU{1&?37O0{cBCHB8d@)2d*b%gBQ%i@_;UXH}lSs*IjEgVXM!11>LRx>o zLXi@=c)fE7xE|MUbr7B$C{>Q$_fF5)yyZa2nbeWI{jxI z+?|Cnh^$UhVqp#plkTm@Iz!C0ghMhNttM;iT-JI1way(A=E&**khR`FCF)_V!{@|x z4~>aI)4?cW>STzE#&5`M@}>J?*=-5;qL1#Cxa%6{U7lGng9B?P?n;|*kx_EqGtz|{ zfnvxIl1cR&s7>)t)y`mXLiLzZ@5ym4M8OKQNbhjMX3Lx>6oH_*3_N(%$QTofeB?JB5q;|lzk-5+s% zcHV>(r*wRHW37XOm$gXUNzgS4w-`tkL*xR%@c*%iX&^jmb><>da{!R*r`-V*e@5*b zSy$jABc1mdYl213brL)-lHVt7xriy&PKUyR%!f2zXjM$(G1*24CJZ7MWR=WGBGY^- zX$aUd$&^rQIEZ*H@=0(NX?bXlrG&~Ep%569#-gi2gg^@2vh$)^W)IOs%y{ZjxhTRg z6whCSfvHNB`$uJMyg;jx!8WWvUf5!Sx*KB}&G-Jv(;l<9_gK_LM4okFd+-t0GtrNv zhmYDC>=*YHEDgy*ok>5LC=gk}y1>XZMm@AOm^7<|G(B#)tmx{y&qtnLq!YT~#D;VBvUJWLPNlcE#s@lVWoF?^$IhG#ko!Py|7zx2C1>gJg;`jg49pQ zKwWlx=zuuU!Nmd~O~Po11yUr7;V1#XJIxX!k}$B&-0(v=mKx88>&SQz!%&_w68QM=q; z@%PonU^)@F-8+9easGOCyQ>DFPKMs@D=ui>@idpLO;~(qO=`W0&WjEmyhG$28!A)! zA|xWQfxd=15re9eYB%n#TsaRr!3iWU6Fu2ucZ!2MELJVNfH^U|N|~OFYKYjfzz{C3 zyVc_90J0Tt6erdJF-EQtA9=|;2kf>Z%SZH@V zM`#Il6?pL~7d%4wjOVvCVL{+0ZgTxM4L^R*7t^Bt_KT0-@ZBeN-41<2gwe-3+in`l zK<@9Y4qX+t(wHc(0J~t<5(l9M>o=dUu_e$_@uTUyww}TioeDJ+mY#yPN0}5TG_1S9 zb6ovQYD8QQ+QA`V>Z)7rs>`}N@4pDp2IKK9(;Y{3=RALA2F5BPv4zo^H^ID8hs2Re zS@8b&{xvBc<;seqPeB7lw)0@;8@tTbfC?G@n>W(616?i-Ut8<=e8)j4z%U83whTF- zpSp)hR0`t8qHN1S@_2z@-TdPDO^RKyOCDT0#`ndd7>aa)G)R2i0@_H=ui3XI6=bUy z2sIuy?(AG^=Kl+!z)C3O3%__6svo=KEnc$gZg+SSE$Sb+^zh!-AK!idu1d2vROTv;2A{cUUw2Ad5c|Cw#oyxlL##CKr}y&kxm?6w@Sdi~4~B2QU1S!+RgG7?w)MuSGf-DpLGqg{{7qNjTIpg;9gxadBMP z2}t!_Pu(>_XEE=zb8+$x+!l9O?j6Be+J!8-=7_p}EvSWYa1NS`@&hKqo?P z78o4PJr6(yw)Kj_BH~yW#Y7%pgSgX(s>foJi^@yojGOel+YF&Oc)1|%Pajt++lEpy z8ML99Cdfo$2&0skxrnuc=*pEu<~iZnn^a#L=?9REzAz@@dhF1n?*GWW*SXdaTGYSc z%6pIe>VNvVF1o>dPr8B7YlwhK5{<7A*>prB(&^4uN!QV9CVJPb>aNF>Cap?E=3j2> z;OV~lwPUB-n=kkZaSt0fcTK*$zZ*!esZGo-f{-RQX#Da)o7Gz+gv>&etJ=iVG8|fys!X*N< zzo^pGNcHnw99~XG$8R7F<9uv z*?M|3(h?5R2y05j2R*j;kDmObcxWo>A|fxn;NeTy!8wWgl@o!`# zNJlWl?vL0pmETLBhRD{Bu8t;ER1-h1Jw^)-lzZK^^f#%c;0vKFMp`89KD^bGqs3#i z4r@kOHy#J3o#1B;`VvM{lpak}2x~?v?Xe7z(bNs;kc9EWL~BVTC#(x!UW^ocnMPV_ z!_J$)C+M$&4u^{(J)h?S>V)=~IMx`tA=TSGB?xu8_B5o8p6p;OB~o)+(NErk;ARwD zdG0`qkBZl>e>BSqI}!!%xb|2%l0{h#6ix>UfFl$WF0c*OGOo=yJSGH=X+U9Yq!sF^ zPYV^bCPbaQ{+_-gk1>tygiJWdi4AlI1M9TtqqbYY#O?@1NVOu<0PhKC&`rmR@QDvD*~^mlz>-~uWH5)9{vjRoD(yyocleEW+x?)5#dpDgO1IB;b1^+z`E zw@z?`t)P;fO1|h+Je=~>a9QgFtEkGD^}9$N#>>S65hbvUXgogXiq z^UdBrCxckU+TmP}fd1u1<^$<@;QZSn_+%omMU=-a3S8W&E`V{>rQZxp%{tUO?tI1I z3VH3Z1CMYDZ0DQj-#Or4rOWea$HNE}EousS!X)}*MWl{G6Wik!8m+!~XAG^y_H*ay{ zf1fPs#||F&^a~E`eY9)`W=Id>AcM5zLo(5+vSFt#T=QCpcWcY5G5%h|&n>6}%H$|Agu#h(oV zFLWN>Gki`7ie-dLz~B$BGzugX3+H6taTRjjaWr7=#`? zgi>gw5K4eJV%Lhn(4!}b)LlUnh~Lu+!L-nMD;Yu-%-YFg1x|hZeS_yJK^~szmuT%< zB>E@@BE=V9D-LP#_v0|tD!h?m_;fk^9%+kVs5?GBJkGdtFd{<3_r)qqHts6O@mt3o zJMatlf7sq@f9;9MqJHfw?>+If&$fr35Iy}19g0%-K0USWx2Q5FhN7!{+Do9v8l86$ z9qD>>!S0Y#JE=s%>4*`sa_=|?PIRG0hPpNZVND6coCvCnG>HaKg_EId!osy9XwtyT z*X5tq+v$+cR~)voAvroVjx!3<^*avL0g5rC?Ik#%)gc91-fF+!#e@O~-kA|kIl|JW@)bz*kI zDL?Zm+Mt6N#ALNENKfvr6BxBm_?5GvE>anNf?8=EuNv)8IDKLr(c4`JM!onL3=@T# zLI9o4ecYWhua(a0bbunns~^6@d+eRpJ9hRyjGg#4zTQA7nWX$mYtZ+xk$BEpl}s_Uhu*mVHvz&0t=>a=v8aM zTy);cx)AP;1q6r---pokv#g~Ax$UxVF^)WoWEeRb0edfz+z{>B}@lRMlTukMqd1RYhGo1Hr-pCl?&1tTgYh zzo)pAQ{b*kX9(=RW;|erFTZdx#EoR+3!q)C1t_C+j={mCKspgq`5Lj(HLrHR3WSF# zleSgoLISQXQUy&t?tWtED8eI+5AcvisnC_FEwOj$@Y+$JGX_v-?j~7)L-9SA8~{-Q ztA$v^dbLG}Op-=8^a48#EVhcGqE;;*${+QKmt zW}DgnMmt&svep9clo`j71CO}RqxRn5>-Vo!)USW$p8Ze#5C4Vcx+xPKxO9}2+EIh9 z8cg;qTyb}R@J^3PH>E&b<#>qEXEFghE!Jlf9js1t!He&1;+D6Gp(N?*g;*M|vJe&q zmkA6Z$*|bT0Cw(Me&h=-ytnPocw55CBatEmkBAd^BMy%det}M&dB2EAS4~@XQLXMK zjOb937zqZZ8mM&^xBo2+_#*6aG8juO9{8jXtk`Ri11p9C>eSf1D|*oY4YH^-wFV?7 zDkCaNBjjV*Tc$}4cxd6n?m?ZZ#GBngz3EzaCa5+o^gp0E-&@}e#x^4jxH-1^fehwDwj9X)#C z+BC)qC}fHozt(V5IzbFl<>Rsf<}qJQGh783P4VQXXqZ#4y9YOEXmoS}KI)xgC$D=^ zcg?5ifgZXGCc|HJ2=>QJov7E zc1lJ4gZq!1^^QXucV6X;D-yJ%+Zs8KtxsK44=j)}v~?91UE1@qP8++tl=?%4sRbv7c4F=zO3^$( zW!wMQ`7s_l^DT)*m*MHmTV_;XLf0J&T7&MqX;rFv$IY@QsB+~r#%KjRp2OCmVtT!B zq2EiQUt(ts9DRo!Q?mArQG6))s^KU{e(-kB*!bS>_@`4U>cjGG%w$a} zqpbORS%DX`VC!`{^+_Ldt&E9vJMXnrw4L>oLhpS=tM@wZ3HFP0STgAQBI~>t4Lo9? zOP%sdNzj+pi;H>=iAi&q(1;F_Rn_Tz3)D&G`%}Wa34}c*P;>kok(j+AfC6^Va(6=# zgNlDgq|bT9-BVU+WR+k(r&N{(M!}6KN6KT@qN10vY~ph!K~Kv=#zwl?#cQ2oSFRkx zW*t&DF0NP9nYRp~L#CaK*W;D(>?0oD@rrRWgK+3XoXiGVhhmx8N5>96?uQ?~=Xz&f za!N)0dS~vr{{DNym^0UfJ!;_F;%GEyVl^(JA*Awd8n+-u!|Y2pM=kG?!j2!%7w27tAL zmdK+(NO_DP(kJnpXb_7v&;b+;(ZeHi1Gk#j3#K5eu=myc0;6 zHiH^G7e=3l?mFhK!WtSB`SE#M=C{XnnuFRGH4m{P){s!df~4meUXkFSIKnmL^&2u- zBwX}FXy8elr)Ueb>{dfGa0j!cd|qUlI>&Sq7d&hg7{t=Bb4T?k3Cv(VGevponHTQB zToF`p3JC>~rGeH0Rw;0V=Zl9c>8g##!67rG&=-;Z2^Sf5PMUP)2;m&4k_$|YF*kT{?WP(%D& zC1oqTzUEMvLvtD-l*MpzkT4uw{5^(Zz@MW}ddHW(ynf|_dF>3&%Yc_~=%+q+RJ0}} z{YC(C5CsV?8*)luSO^irknOw(hXoifomtfu)v6ONxq$r|C2u~PZF1zHyBbbJUQA5KbIH{7yj;xu4}&RZjE?`EdKMk(5SZvF-*E5!g1bm zaKlsph;2W=1^r4ov=uSUt+f(2cM(2 z$)dxahaqWOzHSNrEh+X*mK5VLUXff(ix>*&lwrGX!B0JD0-$abj6X#CS)g5F5lGew zSS058vlKsn@jHM}ku19QIryYRe0_{XL#IQjUF`xJkK2FR{dRm;l2?mX>L5nx#S_uu z`Xvu8TZAV7MriSI~$hUm^Ou8#CVTMj7~kJThc<~6Ao zB{pOp@8813*g)I_lQSo=ck{6&X`8Qm>iuQnHd)j~L|*cl6L-GwdAnOy+e(ZwNWH>WgSOcZP^T79f4h>HUseA^$mz|mkcx)Dm;n4Lr zCxhg5qVBxDhj3v%@l9X*&f%Q9Kj(`o>L1#F^vr)cv~j00bi_al37wjRpbFslVt7M5 zPGUes%e?EvCH9QfCPSvi2Wbh9pIHCm-`1uvdIovK3yKh*?u5NI=-4F)V`RBYLnww? z2BYvQyhZ^C1ZNmd2Bf9o$;OM)K;SgRs?lk07;@vHzfDp-jW3GsRo4a%ZJb)&E z$x0ER=LuZ$RWJpPVF3n~eJE=F>U%IUcopkgIL{Vbm+EXMKsO;|MEEA&9SWSzZX@mhEu}U>3f+TW0&OVf6%J#!mjvajbeIL5#de^-4iz@2ZyULzR zpY`$igAX@56T9yo-&YU<5Z?V2D_!SB+B)0nN&8sueKHrLY?&D1?senMRDDNGFXH#gbYi z+&i7x1V|nFI*GwT&U=Ja;zgh^MH+D9B@2eAnl$3)TJgv-goM3ny3hy&a0ArRJXTCWxba=s z$zUF7f;OaffvHdBMbWW=l{ge-{wF|7i&nHaR5T$x=O*2Fy21$; zo=WfDUw?A~C3x+^`Q%@c>YTbR#$mREA$90T$Dwu@5+dil1Z80OiSo~Ydo8H=_ffD2 zQvEofHnjc~7?KPBeCk}dnmAlUT7!8>poBK`tZ(_fT-YY~=n=2gk0cE{!?30~Q6)kr z>Y=DLskFFMV67HRnp_XR8=WV?7p6tSF&s*UPGAmd(h?9&{AUvML1BSuJ&u^={q(}l7KT9pVuRx2m64HQpuR?qrVM8Du&e$meVbLgx zD1%QN$~jOE1;U)A^6MLkzZ2n}@IvJEX=oYY8VKk}m~@lA9}MgSC~Z){O;Ky;w+QdJ zOF(#hp4O)-GO^O4D`MwAK`-}w*q$4nec@$N)NgpzJs1AohucGs&h<)D5phZ)+DhbF zTjBJ$txEOAhj-rcwix-u9`Q`668!RoMTkObr){1GdsANPOx+oGCaqN{1j8xP0F&%2 z3mLkSMjFf?tmx$G@u*;-i*SYu`>>Gykmr#2qn-=vxU~m zlB6Uffc2=`Az|K(7%{>kUI&R7DxItnFs-QNVJn7IB)VbC%orB*oJ_>X?tw92qHlbp zcs1{YZ>yBh4H`}k{_TmbDQP=#_#QWZ*2X<=`G(81sLPRqAAQ;9_x!ZD%*ytfbav{b zpnC0gldrW99}mKD7NW9r@`diDAu00>X}J&^V)rX%1gx{|+2uM4jevc^><1Kf?Iog) zJbyCPir@dnZ3yuG%C@VxTbXd>OjOiPW@^k4HLcbJrgdPb;ky%|7}1K4Bc;_~Mv;cF z;6>vxic#_$2?zM&dlD=X92<)k@qGwoU=e5@B1(E;%4MJ^HJ+~6y*haupdGgUjE2$` z8yQSCl>Y-n;>ZNT^<&H%Nhe|y#RLa2Dr1upAIIhvQ7;goD@-rKp(ik@*7;HajbZP>Y17Y{&!rcwAbB}{nq+%9Z1E3Hp*!8COi-c>i_YW`n^s@qR zQ2hKj34X~lishGG=aPqI5h5v22pQtVqBREyCpkYV{}X*munSM0AFsUi;_m{3Kf<-n zT=YgRDr{Gw)w{igFNnbKcq)`S4x5_*W*_L53IpePQ~-N5GHX(N&kJj)!TRG)i218G zk@;6&`D3R&`)B??S@X7jr!FENz39l^e?G8rNAo_F5xrhm#8|;Qr(*1!t4ERUr*SX_ z5Kjp*W^}>0jn_W)a>}}u+U0sD{tt?o$h6qz|8MWT!z{asYw@bxxkn?7azI%q3yB~= zC>S9gAaW8I5C#MWA%h<_$u`OM1KVJJ4=`YxWP;(@1Oo>AdtgM40&If>3IqcpNd##$ zv8QL|?0SE6pVL*V*1jWxq>*&b_wh06zJ2ex=bl@;_FAjfDw16#3sGpX4pwn|zCk$S z5vGGtL8B5w#Tz>E9(KVA%i;5c$=t#FMH>*2Kv0J^i?z_hXO0-RR&je|A`9o9`ts@fo&5P5q^Qqq zS%2v}elq`uT9+Ug@A)BhSsvy+Kx&p2GV;`i7JGsU-4Kzy8oJn?0PI}n1b!r1SLAC# z$VGL&E=>=Ynjr^)#i_kzbzVM}_2ULaWC%G%*u zEyA^)q%RO8Vaw9T+Qs)ckmIGjK=|o+sc~1uhLF6eSnz%^j_0d;k43;ci|o=0A;J}Q zKx{Wu$s}z+9k#=6Zn)pjqs2`tdg83J5Y`hq{HiOtf!-G-bnzBRP5~I8Iu92N_o!th zvd%x=AhNH@i1<5eJ5lzd)cxDXcBa;GkYR1IAoZt*pD;EAMlpBK}_kCZ4%BUGd2>Dl!6Hd;X=!b7#G2MVfv zj7u4FT2ChPjF5x@pJukR>@!r@J$VdW^79AJ7a6?+WA_pxerXs>gE&`0oQse^5|C4( ztdv>#7RjGy@P(l!R;b>v(H%T?wTT1-sh|jVd=%pYME-a9S}B!;*v|^cAyd>F$_R~1 z3&ps_FcxCugqR167>OG6*g2k~El1WV4>d7%U5Ue`Fv2-rv#rPMchTyXpZ9n2OB}yc zQ5O+eyMEK=PhUH8e>Its3L0N@HxxeJ?uR#uYO6jzbP*Yf3S_Ll<;YtpL6eXN)9VQi7hs?h8 z@cK%~S|JHL(&)@Zq#fMAwEYqZMsw$nrdwfB78j4o)hvQj&!~?V2b~BH!e+aQ(D8bL zQS$Zjg&v_5CA*K-=Z3kZfjF*^?nET90rn&Ck=Okr!LCddHkf@$oXYI|Q7TC4SVt;= zA6JcoO-$($WPcDuAq_PP^+h3&WU?V3ffMZfYr~qL@JI0O{!oQqkPa77v>Nd{fvAf&vk#xu3c|4MU3n_gFnn8l&O}({P(p4EVrjMp{--#Z=~(;{G;u*D_-I z)y2Uf5h?<^6aiB+d``_UjS+LLingWw>no@w2rNQeLV2C`Em8al^OX`;)mRtI4Edgcx=?6}tBp)KIhZkhwo%I*ou6V(PfMJn70N zF$K<91&BL~ArOqLWiEv+O*m?*y)@7-Kw1e|O1gIQ0Ui~824u4UF-WII{bVbFr3?vH zv{fdS4=DFcGC=n|8M@!LUc1*A3h+1ucy$AwJzTs~D#3@8_CD07$6z;VwAD zCb)~Mgb>A8w^j$6B!Lw=+Y(`bYAfCR5Mn`mR)z`AzW9M6q~cVmM%!h7ev0815Zfk> zc&(@gA>ke3_#Hm>v$O_@(=p-4Soy84*{-DRr z9e40GH%d`IZtuBk{_)$}9=?A2#C}PWzJrc8K{K{vXl7Ig#w3$0-maB<%H)VBi3`LY zQ%%VAi}a%j_STRpN(1NB?7xB&tc9FkpnDqr>_Vi2OkT+pK)%!Uq^Ku8Q&-*>+QQ@U zLig;5$tK|lad$hs7oF3i$PQu=4cr`I0YkFYEXx~&6$sK8z#_gC2nrW+^s78i3mhWUojXOcJ=CJSlHV zFnG9UO4f%YMNf+?-r;8{OWrTTj!5!OOrWzjVO~kg*t+j{I*o*=x$bZ1e4Wor-&uC< zvHeBpz;E5VE-LET75rVie3D#5-_a-cLCLnc;?B_sIa@W#C9!Y@$Hw9o3E?5r6$t0f zh-4C#F$$eDw1X9bMSNI>$IokqRaPJ{zxxO<+QR0i-Qxu_XC8O)jat;tJaFdXmwnxy zT}@}zkzFVOQ_?ju0RLZzyC@<4>&dnN28{4Ii*j7t|GPl9%shKA4idQo>fNur2~*+8O0CaI z9S*MK9`-|EMY5s>&CHm|8OkFACe6n4rSh<7#L|Vq9Vm%h{<}_y%+4<|HOe4cLMan{Cvxv-&i+w+Kyy}%nE>!geqLoV8lkCqjHNyCGi zke29KuEyOQsiK5f8EC_MokpcOj9JORl;L{-&kj_jSVP^SjrZXPoWl2@3Y~-vun107 z0*_FX!&qs7F=FK~;$G5*lo7q$NA28#2N3fLYAkp@DBKT~F$Yu6l|-c$bj4kbDwRNn zR#&J?E>^h3$BE49R5v0ypqe=@*2cnn9q)x4acCr(phr z&`f}gD*taChd4qmrQ&^jh~)JjFpKHjSyo)leE^ z{EZm94l_{2k%Mmg70j$O>%0BJV+!$imNQU8%$yKIE$81-Aq^_<2~~0&o|0V%7>hA^ zXJtDQTlxGjpd-v9tiU{GvUuIAA9nVtL-yT%lN9ws_FT373qRg^^!GMSo|wEZM#&V( zgsGQz6>ZBEnZ2(vqcGvVBs73x1fj}gYV2=4fmUR+&kB0cco|@jM#_ly1sqV*&eynP zQUIO=Qox=bZdNwSoMq@Xm3Im+JE{UB+~;rCw49rxqyKnNopG0SQMNXA4X!^S{Ce(x-Q>L_$@b^ z46TjveFFJZYZI_Iv{Rg4i}zi@>r*=k-Y)&)tj5P#b&w%;{osva?p*z6;-A}`pHA@Q z0of!*>jimgbwwO^J!F@FvQ)ogFvv9Rze>e&zz8mCs7!*5dKzkL22%T-K+S}8t@iDT#Utrk%gC=FvowTla z+Tgt&CAGxC(Ra)~=$UrG;!=8C0rA~BM!1FPNMOv-6%iIcinE8oDI?RFmeh~YMG-9p z2pLLu8xoVr)hz;D&Ex(d%tG_|hn;|t&i%Se$C_8 zF6ts8y14OsAO7*|qqLVdlCGM;05$?TQE9~FLC04KX=>!}7>QX(9%oWO5E5}zIEaz= zn||lEjLdh0O}~22ekI?Z;4#uTZ${!`fVP)38aO~oBLPWU3LkC!P6?a@0To4w_m4?V zw?ZDka?lAIo??DNRPEH@Q~Kg;6>?IcJ_Qbhk+??C6~Bw>Ed)FUTa^?w_m z;**6m=Oy72Nw%miCCFjbRbsv-20a9S7=n|dq9c6A!5@X%RWnJT5RVtlrePr^ z$p|cj=TAa7un<=zzVi|_<`vqh%FdY?g;}0XCH_6#0c*Z9_x2|~SAGM>Z=|S;h-}!n zY2Bx;p1FT9nH1Tv-D!)ctk&3a69oirkxj^!SHXWpLD3*N_mg?kSOZQO{KZ@E(N7%K z#sY-O9q^S8D3-{e&1-=EhnPtCrAqp5IOclQDg`D>Qk%3tl?p#rJsTI=5rQ!7*!WKZ--xnAq z12i7?NK=w#Rfr#akS{uK^D2bogvC(EV=$u6e?We; zKbUwCvY7hiNL1WZUEK5sr$1-r?nhs;Qx)~QA3Sr(Yrj^{U)-*{vRE{A3V@JFN~C&B z+Be|fY^twx ztrc7rD|G3y@)$qWIb6>QKeuRoTmZ@_m|o=0rwCkMHyK)LwCct0bm(d&LPLev1RF{d zaXJ`eokDhjN}~E&2~S$1WL1o~c6v`4iIxq6Jks(G$9L?(XJi-wmPpi9Hz8Wh5v9w; zu8&ab+*DWB2+pXP2oLwHu&$QCKD=W|0IT%PK5~kJP(5QL*ky zDrgv7vit#h&Y_3D(6%5frYg*JF-__&pI2QoclGSQU2vZKhK}D@Q5O-}v~lA#pS^nK zY!R8Fax&rGE7p)1mQm0Oe1M~5Y;Nt2gqiTb3u(z58&jkL;S!_Hg+dnn4#KiB!*_g! zyj7zEHQ{lAc&(~reL7A|nnlm^MC!U1W~6bEtbR$DyK(=OLUufOU-(H|1#Fvnzo2i7 zXx`nF247&pokj&B0|OZk)&VFJEof1IN}F)qjf5;H;M(Z0=(XE$<5X8*aZ8p+PbU+s zq;oX@xB}J>noxw0S{S)D7K4PrgG@7pQ^*QI%6^5GzxX~95v@_OSS=E<20Ne>DxzNA zxUk`wr#^G$%wsOzDU14yr(Ya73>jJ%Zm8qy$c1-fzH*$)FcUUFAsR~npJE!y^) zFEGk23JSr6sW+};g-AdZ>hms2!c5e~^5G7sq)5MRuT?*s z`_NOLB)`GqH(Jz1M7Az$`st^xnt7m_OroDU^EYq$mka3_e@T2)gt+Dbc4{&r5WCS~ zqdOt%#)Zh}k`D+h=7q@Mu*(+9I|2-hNNOIEB$ZSiDkFwRMhqCa=bMl$bKFsUpO^N9 z&rLJAsoLgOig3FCd_1!rP}V@~;4}4qUxDp(~L->I5|g_NA5kb5Q&fYk`j4unq+ z*Mwmu<2X3t)`^5A-7UtmF}-1h$5~^D3OjZ|64t;w#oEsiU=N7z3o=VT4cd@qBEDWB z&JKe!5WBDFN@*e{iyQyw^ry|7apYw?bx}X#keN$g|JCkso41xdTd6KQmBeHbos`oVG9t0N}#0S8r6m=8(t6Lvk7XvNQ;ez_Iv?KzBrA}TP>5E)syNl z&}70@T&y6K>K3oMVy!?^@4d>x#2_w?Ry>TmUK&B90>`AKu@25 z`?FkIAyIXN5G#$?LtzW#4&!Sg-9 zON0v$=*~Nm8pSp&3C^;`jn6y%{F&2^xZ-9})K5EP=8Csm(miIw*0MM2xEN%@taL|( zW#D#~k*zr3;t4M{rOGA|ZAb8q-`9`%LqK>r^ED+=7q*0`W6!3nbQZ}V2gmfj& zkd>?|{xwv%ZSIfbVNr9mu10r*ffcD-j+a>$ObnbaON9Oj*t#0K8td(@xo~(4_tN)qS6(x*l z4$Rg%qDv+ncIcF~?ft^+lXtj~BFQRkTVBP8Jmc`2_kr<)M(6`Ie16@^bsYSBTufm2 zZq$``p}l6@%L_YOAt9^#{qQ*NsX`=y-u|`&(o$4pdu@1^_}~Xez*fz8H4_Yk5qcmP z10+)&^dgby6_6fw%OTYMyu5|6IW3bXMmvb4^XJhS3Dt zo^sf?Z&pS9ltX5}{mx6bKj4~$a^NUQ;`MUZYmiK`0|_G|S#1Y0!%@;V7GliE$CgE` z-)tGje!_UCznQNjN~bU zPng~eCnc-pcsoX9rk{DNy~g*1k}LF&PrC&J7)7EdOzVH@RXerO4&ZKub?ufUliQEn z<3H!${+K_K8|b*@^lSk9nsMXm!_G z`E_B$s%nH)jD&;GZW&0&0Dm=xh}Z~zE0_d7GG;#l{`Jw5z16uAb1#}21ckVVOa?Ve;aYPc zGEIR9xu9l2oE>*9L=l6M$?zt_c`vSe^}X&pcl>RBakDJy$L~M)i!XeC@#ycbn>?|( z?Ikcv8KG}y$wxNAc*~$5)W$;6@?J6HL>MErsCSD<&bpM9Xf&2I+RTlU86SQ2j(N$>LS!Wm1V$5Xn7+UBdrs40~?EAf#DOR?MWxVg4r#WL8Kk z(x_(XDp8iW1qFjP@OyxP+98PuDpLh7m%%qjoPSQsd`zGF>)>~;{;LPPL2kg~ z1}*9$B1g=w{kL~qKK~3eosk`oSjGy0@HG1!nKl)F?cwj!@7xWFu!zUr3+Wh>nxv)d z0coG#Sq9$_*kM*6FpH9iKH=#=;b%mf9-K4Xz)Sx(6PiOE{3L1WysOiwqvEEnboeUS z6;(h@Q><-stePB1GTA9Rn0;u#d~6|N@CTbK5KtY7hi)pFBK8f2!fr=bhLaS2H>j=< z73gYwM}xdkqi@VWfC9ORN*F{+9MFQmT*hie_=1tGmaTEkhXs(=A2jI| z;3QqS;FX-eg0#_?zYQck1+o~GIxFwNCd>MDZ@%AY^9Su!Z`MWqpuJYrpIo!K{O8rv zr)ymzO~u-hMY$ebw6z=$B||0*!eP^<283I&(VaMwo8D){$I2lw)XyQH+|fvwhICPN z5j=G?P9I7IBGQp=g0I!(-9d*#Il2_Frb-siN^tACgtLe1T35RAA(-63HU(^UkrWl> zFC4mnxvoht|N9F9cN7SMx__)D~x`@dAkD31L-(FOoyk)!YCdMZS zM|Dy%;&*7H$^s9hMS`|MEXdzC)f1IS*lH#>ahkNC{FR)SL1)WgfJ$HijC>PN$#`5U z3>Cro7Dz3U<(U%ENSsQ;x5fL}1X5KYzK?vyr2+Lc<$?&akSIMi@!3+zj3TbpIDyLu z^U&Sbcy0>!PcpB=`?R|75du*SuiRBqVEtAS#_*9lH6Vgg#GU5Vs4tW$OoKVJp)3;A zFX#jB;T;7YA?zYNR*pEmx)>@QO`;mX%8kezQN2T_WS1Uacc1;q%qO4taJdnV8>Og= zi0IZ0-~HJ4XC7u`APKQ!V|aNTF)Y;Zg~4zKY51?yPUs}(5U~awoF^y;XhBvw=AZ!w zub~0kcmM4>I|HKE*!g#{J7+P1>QrFq+B%2Kx*VBT$l#Ug%6C>B7F=KHA zycl8)MN+I==&mI~6s0kcWK6c`T_ADTtfgQg7`R*y?-%LFjNG%B=+g0LO1CET1`ZUJy1=*jHSU9pBmxi>iCAS+O z6yXKOj1LE?YnuFH6R}(QG-gtBkYMlNH4Y)!iEz|BG~{6z1>cxL0>qQIjB*`%E3!^T z5T&EAc7HFXLA1)d_EB6*AcbrG?9tF`6y85rHqcI8mweaJ@lb`3l)`Oct>!_YK!#R6 zND{Q@%=4Yd9?`niFANx^R~y~BSzOWs(+}^>%aWM43@Tc}-!cxth`L54xw)Ci)?@a# zX#VZz{IT3f$BkChMMMsrTX*5RE}OkTOs5bhq@8y|k{CK5kOT(5l?tBPlKo)>{%*jq z-KacE9zuT^mWC9Hv^6kz$%~1&FEO6KmnSp7oP^UiQjL0rTe3$`f?o^hu7UXU0ntd( z76W1xJ!K?!-0H)o(HzTvemZ*U*hUohQQj}=u2HeJoRJ!N!97w~eyL=GF|EYt3w8yC zzO2A0)gL@8|6#)3O$L@o>q~xTb0J}guod`GRGRvd+-ZR~- z;dgG1gTU+QgQJ~fQb5&$24E?Bb?HlLstfDibk8&Aj@)PcEwZQ|x!>ISAO3vv#MiE# zK2<~}hq;2<9^k+t8L)0x!Hbi9jp}rj=xv9T`MUDo_=UF$ooyF8U}e*h(jb4`>-X~` z1t0=r?up(K0Ipxa)ZO1y2rUtaRqN%8sRJbgJyP;$zc}I+?GB0(A03UbmG?^-6^)1b z?SWh#5l*2aV&tU8=kb=zsFY%hbZPB?D(S{Cj6=xvXP)cI;lyn`=WSK z3A0W`NFHlL!j|$#9gd%4+B0b^Sj-J_TO|)gVFY0Rp~Lfb2dw(`%*P-52)U7u8@;HD zi0nPN?(_e8`P_LTGN~0NEE~fo2KKW!q+<|KrXUR)$j#+$fAC-F8iW}5wA2p#Te=k@ zG7P6dH)d`tk6U|xa~pP}b%n?@cs;8kUANp(x+putD9c93NB@2dq>lx_=TPh_zza3Q z4Xt6N zKOz6q5Abvla8cdrUqg4C?S2R18j_Uy_fb8ej3FEVH{q@#;rGLNFRpv_Y4@EwasR7t z6-E8TgXXTjC-wHcsWXyBs6^#5HIM0<>mI{aTtMz;oUlaeh~ngA{qq&J zOArSmXiV_Y23h7w+OUAB>#`LvX(9>q7`G9KV(8>*Y_y}+biqcZoNMrY3 zEbrh7d0$$=d&C!zwGwVXp!-GaUzZo4s3*(25ua_^ z)ws>8jrZzZCjFpO+GU{CFnYR+h{@uX2Osjr)h|BlEpihaH%U?>yHo`v#hmZ^`7nE2NAemqMV@0_Ce^8M~aPCw>u3N*q1{GdjOwjKvi_i8% zr$jI5>xY(v4CBhaIz9YP^QFpl^KS4x$v6|Z@C zsKRiNFWR*LH=r?;x{@KTevyQ0S9hDadg?2WyO-QV$4yq$MMUOp{Wm`P?b&lgWU3Xn zrcex6XGZf z2aJ-8Ph*oLZU<3(mkK*2C9*~8(g?#%o&zbMTr1L+GA2A5RXmm_V+ZVBB@cB8HxWzz z=0aR9mE6O%!J|mtQQ?4^UwB)?ajnpi=*#R?EiiFfg#)cC;nI=^fr77! zv`x6G!TabtX{Xj1AQ&U2UCN{AvOx%Vu1h2R$uEFTlOEoiEUf>_lOH{Mmjl0ht1Rkw zIehlJpZ(V2aaXRLysf&zUXb)-PGfu<$9U9%u!zq3w#!>;!W&u6^X=>$?ufu zNnn{$B1BGx%i!hkR>sHXP3j?dk{pSmT8ZZ1ICJ+}!i=?j_fzpW7(;Q){ zOl4wV(xpI9dSasQK>ZC|8y31SfEr;JiO=76)m_bmXK#{)mc6}D#RqBN0GnzacnY=H zeZeYx0dc`g6Q<<)AQ8Rv83Dgg z?;)>>0$+VRyv%kV;RG5@mGD?ZDVUsJMGrCZCh`D|Mz~HPj_<8$$j!9 zIZ2`yIHdn(P?-9F$IBpZmmR55PzpsnO(CKp>3BrGW+nhYi1!~E1`wS#CmF|;CCr{@ zcup83Jf8o>n(fWkEkvFG%bRHNboi0q-;(8nruv!rFypYF;q{c|rK}QKI-#C0&Nd+1 zwFYiAdTop(3sGaLAPGyq!}}LVz=9zX)reWF`E61&$`Qwto>PTO_7*}7cYX8Wz5E&+ zXi2F(;ToWyy<6)!-Kit$N7jR2vQ6{OmkRw>`fZsGk5sPvl%GFZ(#X(e?j1u{j0wd; z)&z%O_tM%;zN(I^cgu_tT?uw#?m$h0d@l4P0IXOlf%CBLCCqH~|Hpolo7Sb5R=}r8Q`wg`g${k0zbU z0rcH`q*hz(5savhdkCqE;ak)zMAKCM*PptS{oLB@2f1He9nEwKk`h)B)jSYK_;BA; z0IJG8LD!PPoo-Zi>03x@aRgRISDN8n?yVv`Aw=m?$>_I7AVUkIY>r;prF7bmvAKpL}l-R{#Ef8?or&a5ji9)>WG;FCbpQ?He3x_#MJ}zf}MDuAHzK zF^KIBu`pF$Y39)v?BU&UAj1$wOq-7Ig^eh{tEm`tul0Pd8eOwJS$Ri?NbOK_;}ank z^&{OQliQ+sE)19-Z(=x9k|-BZ+7b4Aef9{BC%{+uu!uKj$|?e`Crh03Ot>fAG}Ldd z=MdYKMV@#i3Q${6B*+NrO$zJmZ=Jm^^q8VwEf|qdC7HX0nPk2i`ve2cd=C=Dc@r8y zHjD4z18d{~kj)FHUoM}B@IiTp$T2d`h@#8c&;ROph(Y7t=O(FkU9%_)iiGMfz1C~0 z@)!PP>(%?$4()n&3XT6@f4h13Lb-;$Dkf!&7bJZ(oTplG3g|@=E1-vSW{LCMszs9H zh4CbH*&t4^8j*P)?oRzQTD-)8RGJ}2%h4y;Lg@L9EtO_7pqMJ7VTMUVx@H3v#NTf$ z%?Oxp72-fLEZ@^c;dOGG0XlQp=qhQ*M4{TY@dwoyVkl?nWJ$>Tv*KAphW1edNq<7X zzp?V4*PWtHAJTUxzzX5}9d@H)nT8v|6tu-5oWW0>I+LoHIi6a1`FMQTKK{u$GX*JX ze5vV#fX|Lz?WctM#=&4i$78~STccb*n;ZqJ*wjCqT=A@0_}6Tpf=a-MnrpDfIWJ=1 zwHs#&3bh{6n@K`erC3sSwMRQ9kCpZaGewzAmN_9G{6S>6C=PL~1yOs8$9EE^v;Jzi zhHJ@>U?xTLyn)oS=7}2#Tg+&3LTtDW$SCDBb#_$9*#R+3HDCHB%_OM;`Eq=}+!eTN zpzaDE;|R>aMZGi7xUTZP)gwZ^DRe+?H1;~AoBxI_Sb9!Io4R#CJv53wK(B(r)>~P! z*$uW?Q_)zCHPMf$7W`xzUv?sSeWOt%?d4@aDLMOUiSECcO}&@?WB23R;@Pvg{L`Nk zZlvxcv644yWEjN;zNg;lUkSutF=nyQrCmSt$SexThGrDBrBm>I2a8q?-m_Rr&=?<8C4)6t$`XofDib+oYdo-n z6Th!ac}_Oi2%j?nEiTrHu5=^@rrR5W&4FABI{XT^KSwAcl9I+{K3O5}WrDyxBL@?y z6G6c$lo3AI>6 zX9y|h=jC{yM8>0YIop$oKhk)}yyjaC9)4K*ute>KLk_zr7a1QXe#`S9798+6YVUNn zE9vU?B;tXMh~UHasBLnzV2*HdfVF# z3FDd1^Dng)oOs!3M!uih4`s)WfC+e^R!RH`znO5=0XB!x?Zy06n!gR<@ui~J54;pa zY-;VAyPeY|3!<4jbByJQ)EIfZ(7A3@VsDG@&Q{TX5wa@}n6v0zH6LsC-l%qO#k!>K~NPx}%xQbNDe%tBid+qW~)yVmPUyg{)ZvXOXvz!;p zV>>_PS1+C$?=fC&YQxFm5PYxE>mw?Xv5zGTziyncBqXEv!!pB~KD^1*;|?1okYP8$ zOQ|kOU%+h*nrD5-Eak8uBkU@TLTA(_m>P={pa&cpX1JtLBV8JVWHfK@5Cm4OQ(0kq zffqkZvZaN=r6t$%iu;LZuA=^s!gR~vhKgbf%7o;+5!Kh;b{?7#UMo~w&mWp6nu!yn zZ#JP z$bMTo{_k6S{xsRKt^IHi@-wQu(5C;a6XY~Bw1{$$vatbt4$=L%v%JoSg>K7xFS4k1 zJk=%2KL}#ec9658H5cSNoYe4Xg)uLExtIb?)BQdKgfSs}wdjVHBRvv@<+IVstWNpG zIp7@-=FzDk{GAbY{OQr|8{nB0^Yin=`JpbXUT?OHjGJ<=&*LBIraH1(9{V&?t&w93Jqm=*bLvBUM3sjBrD>GpuIZL=Mn!@u|{p0 zXRRR{b{ClL;QeCa4@3>^VNqCQHVwe+-i<(w*|*DtQYwN|`E)3?yuOG%Xz>(IKrRm8 z`d5O#@yeM5?hZZUAL*c>f)&nvrHHa9F$lz7=sFJOI8Smp6P zOiY~=ocf*4izOT5D&}p7$S;TJk+KpeAciCSFB?rj&yivkE4(IPxan*ot-V1?LEGV~ z^1279YkWDiuo%^`QbE)xQ1YS|2jjA+>~}!j84?AOhzGv;c8AU8ymhEXLQ?!(7-y&n zfED@9R}|;Rh`8m`qqgV>C1k^?q5HSomRy&b-qI&;wV?dczyak8{3Jy~+%N?tXxRd^ z9-I(V3$V^V>ET$5=Uy|aU6`u34sikPgDjuwh0!za4|2wbfxlG>P!#{k5^Y@Wyohw1 z?=I*%?3C`AJFWeW{8Cjs(4_9mZmxYot*_rp6B)Ep_y<1cfjEviAf}5eIWp8JPfY_o z`OrYaF{R&FEx@BPwVaHRPHKaIqqKpsdf*B+{%l_e46?$rIl3{BDO`Hs^EJOV|8(x* zNPqwwz5{EV&5wNfkZKtlH&!qS&9oHGT@U!}WDbx>gh3!Cm#ZSLxNOiNM@migDA;T6 zBK_@Ak@QCGs6k@<>gvT1#or!L`d$1fN-AM?6l&aNfeQVr*5D^VA}KyQhzt!O+grmV ziJ0RdQlBL%GsmM>UcKjxxi&F#+OhG!wtgtBw|5rI?cSqkoA1Ya)5fEH_~G#svZ}X} zfsN$!2Cz86CZC$E1GBh&%T$+;(U6J+_28`3o;GJPb51ntIE8TF5Lo*wza@2aSZC=o zaDZ@BS8(aA3WHHD*HB%?sHtHg@z~o^8fP6IHcV&wT&lNxnOCB%MS);AVMiX<9 zy6Fgf0$wD8GvkaCR=hqX@e!}lsP8A$ve+&F2TB;}%ObOc0e^ewZv9hYi5=Nvl zE%12CnhulZn4@5_LtD51IaxY{@{{9~OXm zag7kTiG*lGfD1az$6XV8N)yz=V@6N=qj%DT-ICojdT1f+x-hVB?y<)BA9$)=a9qdQ zKYKi`o^q%9q(Kw4T$8EBv@PZHLnc9YH!`OHO5m@}EO-x;m6I@;X=4-$(qz>Bj>a*v zU{aoQDyIKwGqjR{=<;FvhcJ%@kmMlCU<3%67RDo*q5s1E#xB=Ed;tcoq_VTxQ2XV9 zXLy_XpQ_m~n2I4+4x0PNUuZ`-7opOIA`;RmR6&z_)tT18)@w#cuC%=W@*nHHAl@l> zfim_NupXY)e4cG+z%46qRM-98p9&wY8KlW#FTQm@VsyCu6X92pfaOEvi2S7wPg^=M z&+3<-=mZL?@jQL);d}&Eue!LxQi%3owf1#!PQR%)LA{djPAp~Ii8aIKD&@(t% zhpy8pL}yS4y?#Ejxe=jSG#^Y%d7&7&WQ(E>e6vYPj#SIF5_MzTc{3ryGEmoXyZEL&+t-CxerKm{!Qs5GQ zp3XOHDn6hT9;&AwSOHdP?0nzlMl(qR7DTDA!ZB73b~@txbS+58Ns z9TV=ZGIjjYiJM3Wie*_-+$S3Lordm>QWYX+{C;YL91ylqrSp-{Ql70|=eipf{K_*tgY;8?+gZSApyP{4-z_ka8O=9M7YJz5n8P$u`L*i_c%r+J}==A z0P3-I|3Vih)>cJHviSHR;8F8?E*z+fr;Zorr}U{093<`c7C2mA1P1_d9A zqh=p@!+ljqc(Y9)zw!6@>T{e`#K3oOWkuIu3)c?t#Jw_HnBu%bgNu(Jqb08Pyk}MG zey?Std*;4tXa6lTLV8TUd9uPa_qFGf@0PZ{c)KV*JC3tc%s)x&QIcqXkz7ou_JkDyw`HYG(>KE)arS;2DkNMsMtuTwvCj`tf?CLjs|}X?BUxfXu}2x~ zy=-C@Tb>EbE}Hs$(;G27taw_0V(QjP1g+hA6d*<~m~n$#Fc8HUdSD_Ftu2{R&^lh> z4%bE6iF6tSCC=G@KZmOg5XAz=DA?wL&9P4r@FEic%VBBf)V<3PzvwvVEM!U0>2-{v z{W1gY{C^()>6I?LgQR=-ZynH7m*Q!ix`i|$C0c9R`J7O6(HYj3@L)WP_S0bEyS_Q_Og+0r}`Lm4@fxZlPHQz_;xVd>Bwjay+7rt1fU{<+#_?ucHF2x z%wZd(Hg9Zzm6dzsiu26+OuO-TKQ`IyVg-y(=ENE3@kW)X^{CDN)_v^5jd?-l`m7#<7`wgAqx$t^yvJ6MnteFBcJe~(28?*IL9v*hgbOzG5 zc@;7YAoPF$(+|H4onA)G2&VV4m=&98os{m7&KxvcDeE!rd9;PzjYnxCWsG@UxE;L6 z*MBz!Lf3pt=hnb#q`b5hIpGA$QJXlKpX;~ua>%cPg?qo}SUP!KX3Ey$Pq!>AD-yc(fF@YSGzOkuP>w%O}0D zeH~mO+vFV%nuwI!(uO`&{*~yECPV3)BIgEf)p8&VYI3fuGr4IV@fyOo!Hn>ss)?;& z+iUNkS+2u!dmZTC9Lyd`V2Qr0foj^xK(K4(bxA6b&Q^-Hnm{0`djZeKU$`p#nrICq z5?i}&^mQp3~lnW{~gIp`>r;6?qA;J_}4hxatu;JXd?%oJ@ zKo0WO3<_v#QoE_ZFwphkxqwp;k@}sJ=d|7$uGaWdc0d$7LHu_PE8>8RvTKIi52BC$ zq0-CiPCb3cj-Gg(Bgd%!Za6*inY|QLBb@rZwbf3pwH&E}HtzaTma=E^(fp;v4rkkF zj)PxXp3>U(qAte!`F9TWI3U$0MqlDCJS+FLBwcL>$PB;vs4& zsMr-R4~gB7Cw~3pNBb349mP^Y`(^26r~MsMljGn0TM8E=4S2JbQ$6h6##>wSUH$#p z(mUFN1d14IJ`1~;HQyU{4QN`ncCq#T3xn}{9@r!{d}QXno!mkE`K3@>*61H2!A-Yv^LJ+aL{*UxVuTJXzJw1D=)qhG(4@*DBECCiK>ffvq7r#ttj@2)v zpEe}#Nzg|~-~N#4o1-}T8?-j=Ll6`RT;75gV?^RL>;1+hxiYd z?1L@C(T*|{?|Nh}Fz^atc|G{H<-x|}cRm_922LSSmpxj|S9~&6E@470kROr}y2=&~ zfZg5IC5{3riq<@EIubYz4&xZ-MSkt&hUH^`GM-cJP{f9=RlnM^TD5`Zb1P5I_9Z|z*cA+(tr75*q?s5m^$vgI? z3S#R|J4n%k(F}1T1i*4x?U^YDF5x@frQ@*@8@^I=`}>htYxsK8X%4gTlH`y(WKd%; zfQk?WhZo6V_u`RPs1AoD?mxP@aoMfAH$yg1rPL8ZY_nCf#!*pRifia%f^D?u3})6a z0m7n09{<9pBIdd;kOico9_OYw1%^v4gGZWgpCSLU88T*$`JFZM7dWy1q=WRm*$Ynp}*|kN>dz`KgToW!+-E$M2~i zUE1xJg?PJ=8z2XUow-kbo#%L>e~+eU5FzM0rTsqCu=0F#E=-mlg~F_O?WR7Gr*d-oNLhMd4j0lRZf1Wjw((|`YtCb#JoFXU*Tki*0uZUUn?tsX$PQIB z>KyOvY7@H5UM9L}EEpK6$yMFyH1r-9gp`)wTTr?b?94#bHD3r$=mlI`QH$+3xD@^% z;Xu*vsXwFk;mnDRuk^HGrd$JKTii-lY-gc3fx#BXc3B!Kj?gbS>evAHXnvtnJsM6Y z@pR;FZ_Shyon%Ed6DtuDjgfJOnQ@T*y>&VUxP6hqRI}&|0s#UoGthi^qp1q@1hDe3 zfiv?r;hk@Zy^3(Z^aHl4%a|4k@2YATYCXXW0u4#)$k~;@#{{bQ7z{(O z5!{_ctp_A(=)Tqn*|jYCAb+&2!N=;D{dZ1#+_$T_*J(G8ByV$nIsE>N13&2HwcY*_ zDTZj6C@l3JdQ2ieHs;H;XEuLdJZ1`jaMPj43OK%Ff;EC2xf0&a_aV?R2AgT6j(G z0fPtG+xs&&fU5E*?34p))Nq1c4VXd@+#NJfhm8L?P%>*(Mxm75%q`cf-RXE5FG3P zwrz{q7M2L?s5neobu1^yrQd=)&-}O-q2zCEgojf422KeDkt<7=Q{9eok-#Migv4>4 zC<|V}@#W3Qn;x_XK7g{~cqhf{$LH->X^c3TkMuTn!Hx1@oy zNTTB*BVvloVc?q|bx1^f44I^iI<*Q~C~b`zi(*V#)Bd}2N~lo^5Vy^@g)j#r;ujTj zTt-+rYZlnK_h74CcN71gI&j*>!c}wB(K68JJ*EEp9!<M2_`egBWeB01Hrx)_5i z?G7n!g<^I~W!;kU?{^!t1Ano}e&><*Moev8@7OwJLs?|V+-J88oJ>~~XzL%1WAg|( zK2Y6$dha!wdPhh7@e|w{JDyY+ezEtv8J&HsEm0eMb}Q-yY|zzzip?cwo4e{C&ZE$X zrjis)v@eB()HK-Gq|g`|Dc>o$5BzL@^B}x}i-aXpOXjk<387l*ln-j)9h+Cw!0Xf4CUE z=Z*{6-H#&st+z%3qW>wF{WUF*;t3YaxQC@=uu?7ju>+f)w6zYGG2{^H<16?8yYcx{ z;Thd@eV-vag8BHF)aU}HJ!fkw5X zN{>EBjfCTRVYIus?$K;By}fI}EQ@H_S2`GbuB7k)k47CUT*FFckuc}?)V?tcV|Srx z4vX+FncWN0HVV19G?cV<1HoRHj&D{K4Txx3!P>JE;M?CQo^ybdqbyZ@vqe&8yl3#r zt1NtD{TM(=87U@4XjKAX)`Si{FhQZtZXjwLg4l zy`@a&GU1xC?&53QPb+<|di zUWZ{st&87s%o`sSfRgieD``y1zK$YqqPnn(k%S!`xMDXhK^H`=`PG4vhSLj_cb%@; zWThy4Ewg4#nGWSFo_uB={wN=}Nk6Ox@Oafs$&UQyt90WbPnFoPfzze^n~5H5bZXPA zPC(h;fw97{BI3ut7bKP(-#6x3!6&TU6V9)6bO z9pGAYs_zk^L}Gjd%ZBFX1$NU0kfd0K_!4<4P%2u`rPwl+q5fMqP%N(9U>8n^%x3;Z zJ-40UVcivw@t*QkCc-OxUZ$za0yFb#ha3<9aZxmVp{&+0g_w(dFHZuwTKM_{UXkDCW^dw;vxyM;_TxJV zw}=*Hu}1;XIe+HYPJvV4H?wDqw>$?B`)&;5;di!EAc|oovE4uP0IJejp3y%}UI2bSbA&(tLVTF&`V2|FLknCu zu8b{SIKA3zTor$23EP~nG^8@V4%LwtNSquA2pd!ZwEp3{%=KTNDqs1a{kkY+24@Ax zJlqp+j~ApslntiL@h&B!KoYrlg?P@ux;y-)BAIq@@KDeug=~chP|SF%M!R$hE{|r) zOUcFz`-Z`*K{AjD z@~^)29rpRe)t<#&|F-D8o41C4x4<`uM4FJl=jx6og~#{tHS@6BcX@7voIQEZ4QmZ% zJIVsUV)C>j$9O_^t5(o%lm^Sx#*3pdSMPv1a$v|$e#nVw;SZ)QVd8K3ZQqSh0i~E0@G9i%UN@4;dV` zZc^eL=R&kV#^pp?6tHK+Y;Jrg6cc&?L?7xYAiv_j+d$7lKbw{)V*D+{BZ2coeYcv&UhOCG0h7o{gPI2VwKGrx@TBEv>q2`Cqu*THfqqH-p@pHlmE|-M-3= zmz8N!qY_mV z5vJ}-X2@DaPx_4V1eH3;VQDOSWj1>iuC>jL8aYkSxuZ{(V;IX{GRM z2op%}d0=EUayW@!1Sh`r7s%1J&$cBAh?kQ<$; zsJhg!T$4}=cF`Uw0a!TI(gFQ7HM_s}+iy_=;JO!6#;u-8Wo`!S8Eq&35TuzRg3g8h zriklEj>T9`(@BNnudgl7-g(NF{?Tp!xW3@?Tu`g9X)+o(kv2l>zA53ZkLHicWzdco;E3%9*I=R)t5es$+Tn^wa6J(A{%fpM^vt-ce=qIHqIG>Y-!O zC$#$}q1Jx+F>^CZP}Wp-HYe*PSbB+Ui2kI66%H;!wHNh(k#7`JR%I>-C0hqD729y3 z$9_TFX#xCEO@B?Cs_^|GrMsH|WpG)RRBJ7hOX@xGL7&&fEXBt*A*kSLN%R^4YZ)*c zF2i^Il^Z?$`F2;Ei(d^4f~EGK&MiZQ!iqX)u(YU0q_f&romYLnm-)b9P#qc!fpNFb z`uLaOHNIi?(Xo5N#(W}he?1)b!}sZGVBupmwVT~17Kvc=#Me+Zdw}Aef{Z>T4$E4X z;bI-Z=g|)Qt4ZM|ZLM0GHky(s<&DGQ4@ zCgT3BcyS?n?&U9L3f1nCUT8|%*5bAuvi#`NC9lvrxtw^4YM z^t`Y4^r}vh;>T1Ju4Sjbz1s6M*m22&4dTaJF)f8`ufvO?CJ5Np4lB?3+FZbjvprH) zaE6OmDb%!2s4^T2+Av>O_9sU#zwO$bl{msA*}#Rc%W67=goNmD=& zmm>G&0vkr>tIXXVH_RfRgTQXH<$IN23-3@~-oxj9LB)hl6+UlP!+UP>!^Cn;PV5=q z7+|pG1H9pVKNFO2oGu;ZT=Bpnc>u6a%A-9HR%-i;59#$WsBz zdQS_l-Qf81T_L2wJnx)TmlJs2(ib2N&F?Z5mbRi?rK;n<~mou6&Pa&Hlun4u(tseL;){y3~`Z`vE z$epIDxUCY-Onyu@AtTB#6d}hNS5avGY>~SH;FNmKOH$+&45{WXoilwei|m{<*`^6t z`za27PkHxsGH&gfk8!!bpJsn3W%<1_`w6=5y?KoJeQmE6sJwK-_jY-5Mnlhap8ENP zN{vQm9u>-ArI`ge_<5sfl!p%&Rd2d%l%!60TOSy4e2L`zc20tGuXE@4`Ksi1Ky0CR`;SCd z3%Tp2BM}riA`vicZ)P+l7XE8900A{utWITDwL8#2A#TX1)d}p`UhaTj+kK{U$4$AK}#l>*lk(H5}HOC9oiUG zf86_HR&n5#5IbV#!@b#WgIP=fd(w7wq4DqA?F&z>fXTSpqPNqV?SCSUJ5Gt-uD8Wz zdw;5cs(e0+H`Cg0xfWBpA{lqj$Kdm}BQ6kH9~E!1cdv|0;+no!0L*yH=CO7i;$cUY zlg^}LCgO0zG*BO=+|r!kYyT3t->jT;hOihm%~}lnAou6kw{p399*TWx+v4MTYqPLvzu2Sw{_-4j&~e@3{dK&_pli_N`&qdX zgS~FopY_FV*XKDR?kbj!6DP;VJ?ef^u$3u=1oknnz*fka5v37o~>-E~4mGQW4xELU!|Z9w%mTAr2wu zx$5q7JB09N9jiG)9NO{uO^w+!@>zG+RUnem#{K#2WV(Q_9U%)3^U1Eb#9mG5nD438 zB(0x-K*z_;Xt%KE%>iIEfG|Prpqzien7f>(QPub-m2%nA-AhCrJm$8KAEgu|> zY6GHwWN9B<^w(BO6mQt2+T)2mdV(|%YRnmx zCk>LtQACaYQfsSxg<~A3_3wT*z=<$aWF=J&@V^ zO?JQ!NXG^c1y1%>liM(8;iy2uuZ+|7-U*7?5*exOHkE}et)AHblyE5!w5bdV*N6O>@T9z zYh!zgcMF7teM5Gmy~e!H{e(3>TZTg~{VrD%LG~+}>XpMq8l9L&HR54qS_i59iOIpV zun}_{F@^2L}cYWgga@l_z3Q20r8a2>WAU1^TSKaGH7zsbu@nqeCneP+jpUvZ%#rmP|%|L{B?ej74!?=EeWq?VJ7D0nJwkgvLC6`sn zBP<~p`C`8j#I~u1EUii@kgOOo?5oeJu=m|og=tupp7wk;gdekhx#zZ-zA+Kv++RCF z5VnYTKD@>X`0dzA6Z@Ta)O1KazD++;$DmJ-%!LrR91Ky+!Eg0*{#6Kn(2)ry2*A)5 zXE;*YAtMRsAIicKIxag}6q8XxDcstG0Z;Ylq12QxE`!E?Iq6iZsy})@#c8+3os_m@ zROnKF(ghf3Q1xJ>B{gpo{#KdL_ICF?e%ai({MFHEoSJCSBl5BE6-9VzMT;qn$?kaA z?%{auR=aQTjJxZ&gGD53$!{4PNFk-+9v%oNL=$*)8 zSfao%aWiv=iSW}>0gtNr&R5u;+YJ`In8nkspR7s!tQ%9Hp*EX!@_=&A#?LDL8+Ulq zCv?Q7A1KSd$8)nhLYH~56M}#4#Y=_TN6Btihc+u5RY*t#MjTr>ESP=YJ{fBT&RUy4 z8(Q;bHGKSbWGd-bD$T>4DUxT7k9hy0TAxMk1fL#+*OYH{xt^ z-}Z0|e&j7y|GBQQn9vpcc!>TwzNPg1^xXsBYk%nW8T&`bT>*@nxN+#hEw z)EL%lxt%|Ea$p?-VXxWa&)DhynWb)wt7JDCO`qxL<9dJJ%Se*=9jt(Gjhy-~tQ81l zBVQ=4-h2OgTaJY8qFGMpd6vx(wwXwj7;|OY_lOqVsy^Yq3S`si;r+ZDXAyj(;E2_~ zEgM0p7Ph;<*|q<2t72m_mmLo|%)3915U4ktcB~fP&e!O5J{w7t2s`V_&t`N!L#w;@ zM6nHqlOgGGX6CIam}~t$SXmn(*48=Q`@on*V+kXC53AHb69TR$3+lio=#-;V4=u{s zVsUHLQ|-&)*AOVFVCaeZ_JZW2f&T&hMx7)o#c6+zZE^om1f(jaHM{5aZBr9zs-?=ohpyAcf|$k7}PyI7D(@aG0Wu95&H z1k>9hZDK7vJ?%*{kL@=V@Sc_S4`n~8K0BURKN@=i?m;y6FrBd7^2Oh?<#&hqftI)R zj6+-R6BYY(zYl$s>~@Ei`arY)cB#6qmxRZCJRK$H1!$71_i^yoz5T(~=AlAlqf=C) z_KS`S7tBQ5X5;a@jK>7QVUup-7a;K&Qq&pK{#glCgnk7BFIBF^9f?Xf8=g@w2r|id zsIrBXsy?Smd;%MhD}?rL(v)aFE^P5JyD$9vHl87}d^KmXS$E=he!o?&bmq3U#Wmrw5naPdQwNw!X{fpFRg{ub&%0ku%qaJDf#At{yw@$C%jved~gX{5}T_ zUbzC#wTB-OANTn!JqPDr8zmp^=MoF=RcAV0zF%CS#M1%FslyUi$3)9(EocvDo z44pZq7UZl%O><5|rjvESuKi+0da%x$Gj)HAAn;%8ju`2%B?lzlE?koDL z8g0Qs;1;n_S=l+l?!J;DHK9rA5-Z}twG3NcrlJblYT1GW#6L2i%F;%x=`mKG ztmr9j{Mo)ZWb8EG6j{1E6X^E&;DZsi+R1%rTf9qk7y0wieyztVJoH76)*O__zp#1Z z*iXT4e?uwFdy(Qp)4=!6{(Wa2X4CE!NBwg7eTlz*d@)6+TJ2Xn+zQs~cSQ6%vg*5h zDQueAe0lM~0s(&qhq3Mu&r(Nkh(!rqW%V5UOvR;?Hj}@8o{wJ4-4?kZmbZD^oQ~~d zn$P!&RKmC55%+WV+Vt8pHflZ)=zp+sv-COjJh-cv{=88BrNvj>I0~KnXe?7bf^Ty+ z`tHNBtHO=1AM5TG2m9@|nXY!L=GnjEYZgZy7yYx3$0HB|{IV^}P zMw3)^xJ(0dQS>uE&b9m+R=?iR1roy9Y`kpCH1M4wvGYElv)8{59AHWF7!5$ld^r*> z9rLys&%ce@?XdhxS$#opc`O8S?xy$H7olt)4Jr}wjJ>7acBiL*Q~aqpAA` zTutEwSY?|gduF3y!@PPLyt*sffX8Vxo-nw~rsN^%Y2Xpc4g<=1vH}`0i_>SE3 zI>5c-z*RcC`CbSnxAVT=CuaF0c^zf>1MthsRU}Qzb`d+d+Et~rN=@tHA(b)}Ku%1) zY3f1?9aj+beygOgd~p1=Dh-kaADv&g8x{km{)Bhi~4o|c*@a;fcDdT-) zx^z<4ZO5my$Kht6^yA$wHuEiYlizQr+Cr$Y^I+r4>}?!|+$4DQDC;}*ri*-Tf`mP; zk)(wTM>AtPCsX_c-}H4hJ&%O`b|3c6{`J1fn{Dwq`ugR2#qGZO;%D#NV*B~&>#p_o z2%)t3&c0=MJQ3c^kJS>9}er z%>61*d-R*F5a~Gmf-865?(VyoNyggl^=Axwp$EsrPp7?sQemg1|K#5~=1BdjAUIQc l5H$9keNrPJ5tzOH{Pt?Q25x(6p!V(Sk(E@Gs1Y*^{6Cx1-BSPn literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a5f42597f548489ab7d59ad55b5f9f2494191964 GIT binary patch literal 8385 zcmYjXc|25a)W4`y7-XlRWJ{Lpeq+xb(b$)eEg`$HZ>6lEB>NW06h@MzVGza|!r0gB zX2xzT!|;yx{pbDTe(wFA=iGblbJpjc=f*!a(5Ac2c^v=%I$a$NBLJX)T^v`hkST1W zkS_9x!(Y?F-`MM!f1tguGoa?=<=}iv*Tde$*~r=6DcGmmSrGtkIqGVtnFLL4%!EEk zbDllg3C*OUq6I-}h2VUA+(vA_slGC1)n=FOzB3Xjx_rCnSr(^K%9NVP&(F-4_jaa* z6U6w~-MD3qx(S+Y6`u*G5fh^Wt5C%p@pj*pK)Q|W3PF%x{Z^=QWMkd5OzT#7-zscF z=5Sg^Hs=v#+S=B~66Ix=+Mh)H6WdPIs`(i~)`=c- zZh9;n16UsKx5uWloJcy%3f;_*JebkW*w2~vbje`sYr4L^9w=K_gP5GJta77Et?1RL zEV%Oqu4|QJD2$hr{&RVMxVhK5N*1;0(bO z!swCL+B)-hes1jHiSa(uqb9xJ;;9%@2X4FX4b;%s>5m0xWpiBCg6;I(c;tU!{w=!E znvR6Dps|n8KWMu@r74-ii4L~+(9>s?nLN0w8eq?AgreZ-8yR&M%|~uKZz8QL3$6yW z9mO5jF!Hnv32aQ8Hzr&jJ<_@{*J>swNq>0>b*U>J)&i=!Ssg0@lzjgKHHe%a{6b!QNcLK zrmG)1`<+Y1;eeaWbXX6!Pr%}?(~U7S_i@vmKcy?AF`gfw1Y8I4GE_Usba?_y{Y`cvv^z50^PlU-6!%-P%Y^lZY;lmxbI+6noBh!Ye{^`VKuHs!_V z|Ek(Fz?)U4-kvAaF0Z-&GWg2NZ+~bXx_B2N{2a7e}OC@BG49OlQg&u<~xAAJt%yk<(6Gf<44QX})T9JBEjFBECz-P6uud zI^?k?5PERw@I_exuN?MOF840x_S->gdRi4xhh!SCx_wEj*eQ`2hteqzwLRCcF&#BK{jXh7aX!sy=?!S$ z?a8+NiZP4!Sj=ClB1901P5FnFq#uSdvoDo^3Jk6MLZe~xer2;@uI44bs~ zFxOZ5L)kNnTDfZKyj$3W!JUe@jrN=MdebDnDeFjVeV#1?%rexqbN~G$D8~H~7;ZDJ z@N?L9YG+XI&N?+TBk$c^`Y?k(FNx^zhgMyy{;%P^4?3EHC6HGgWz?uSSr6ipk=XD8 zr}n=rMVqopE1gSBel1l#1uA9Q%Hg-MVjm;RZ~c{qcU!&!$qVA6x#jYd4h~OML)0;O zo+h>n(n;vVlYR=pYUxpnJ+q{2t-v_s@TJn2aP;O)?+t_!?8&zIek@!8GntTdJLb9Z zN2lF|H&^O!;|Jfzd`nPQd=>>)Q1u;5)a6V}Uu0Fi(kY=C+^y>$4hg#Cz#jkfa@v}B_u}i~kw(#; zOWgiIv$Hf@0gqMmwan;wPZQO!IX)(CvI>2BeU3S=Bc}*(V>x(rIC8l173pa$5-dd) z57!&73ok@Wflc?Qb>~PR9udmNF3(iDkqUN7JdcggJP!S5B`Ch?d@^g`cyGeUjt&L- zoFbijcHEZ9iEj<2ZtNx39oS3Y)@nhk#z*N zKQ9kbV}=Ia_lWHnvv>+je^RH}kSW?!O)3c9rVdyKrhi#S3e@h72V8>t+_AkMU?LT?D7wIC-b4ssW(T# zjT73Om}Iwced#7R%4mFGEM;SWo(~)Nl#@9k{SBq6?iJ1K{u_j;HRbcHuw)xRXovk- z#KXg|qKFS~!^<46LID2Q@VSn+>_umW$ha0a)++#i;`6U%0@w##Y03rFdent6GsLvp zw+ll3F?N$x-h67*g!tbyg(sx zhFE@Nz|YM>`13>M@YWiDxq0y8^ba>T6KpGX>-;?py=otKM9WdJwg&33b=90KYyMgT z;muc+c^L%jelH+K=b2aj24%~g%%s#BhdTEH)aDR8CssRm;Q`e)UvUF7VfldDs~?*WacPu{`L*tDP~~PAqI{T+#2;8A})R7#h%V-0wGqiC)JsUF0Zzf=jy#8*@~#eBudiPwNvP{9e% zizf^vA>Cm!j4#*GkcnM|j~}Ula!ye9@CDlGXU@IpAG4 zgS7p@($ASAd;-Tc%-NwYQ$>a1Sj#I@VHoXYXMM*E5KuE$v09RnEieUlSCC$%)}>Mf z`#;By^O$UW7iVsEon`KZukuo;g2z>yk*?29nI|-7*r)POhA0ZT9kv3e!*QTv-r+z5 zXS*c?z@(5~gqt6{Rr?Vi^5H0R>(_nYapaCoc9?h~eD&t!Y`zTykPfShsJ~T*nkt?R znT(5m!T>z4cTK5LUK@pHm_;mhih+Tfb=H-qMVJ8(XiE0U0}3`u;HJxF9GtRF(}oF? zS)gRw4PZK3pq?AN94wC;|C*q^r-`_Upfjr69e|#n|crU_OXsePZkFieclK z9Lyq%miMZQc)qyMFP0e6kmY!AKM3&7&x(9r*Xax$v(Rr;yABvIFIhLs>Em`jB+cgh z8KeQ^GrG_AJIt8`6qK+O#g2xO-hg-0;0C1uLsC zgGDpcsG@L7eEZ!nD-7M>#?hxCVE%y;6`gtR4Z?I==;Yp&yFh(9iEg-!%l%wu)=C@Y zzVf+`mK}H^?x!=>2TDPT@&3&IM;V3FlpZuykj73dH$Wb0QMFwL5DGvJJERdgavN&rvo!oT*%oL)y|qo<=(015k(I}i zGF+S_9s}OZ%kiXY&YQ5kIBi1-eKP)6(N{{w-AirvDO9iMTZN``F%UkB-un;-0lEaS z)R5!KA@}fZN9xTAsK0oTN&fv1-i7|?J9AE1Y&~tL9EZcJ3yCSUq#aK zy$86Pgx_Ve`E3A&YJ`~pDBE}yE*EOwK1NFqEUmr)^)(^k$n>2vS~ZrQna(B+xp;MAo`p=qBeqQXjG*Ojes@X$9k zM_Cv6&2bRvNg13ie6Pe(@>o(Dcqei4izug%_~-B~@pT1mfrB0BvhyLnJ_^-Ra@%}M z8FLxf&6udft&s84eI`K;R-kKc&5S~DivyN~{u7%Fs8Wa^tyNy{=h!XrC@>3gpvWvj zQKWyioe8^CTkM2uXk73IW`Ox~P>0u?2TSx)lWx#pR6@T3H2$PY%MK6d23Pr9k5_V1X+PvaJ z9ztg=u3Q3os$p)}OzWaEi%o?IT52H8WpG~G&oe$Gh`5Bhz^lIkDwLb~u}S%y-r4_v zs9k@#lP8V**z9z*F%A$Qlwx^;lX@C~qKk290-|_l!mJ(pB3~#T@YC;70wr2D@@7Z9 z(I~f~{3@?N+Gq-3c~Va0&WaYMlVzpkJ~Qwb@oHz$$WsI5WiZMcLkaW{HlwsNrsG0l zGll~sFUEEArZ$=w3D1gSz>Y#d;gdU7m$;i5VZ&|odCnIYMS0pk8;2B={+#^@i1MBB z`fJm`2*7#3cJ}LlP^KDj*|MarhzlNDhTq_Qe; z7q{?Bjg|^X+gfNXS2OBB`xUca0pPc=eo|VxUQZweEf+V6p$J;9r1yr<8Zi`ra2ydQ z#Z=O5$Mb)KO<9t`ul7%0Qi)4lh!pQkiG(IhHIY;}t^h)Ff{~|=5Cs_Uc-SC(cWmyh z3p-F4CTN$HFVc4uDOlim0W+R8dOwr?4sbr%p)#?IDOqxnTY4;g<{PW|2T7*HLA%AGy2M2>0ym}swz zhg|T;C|$T)*cDwzvMrLj=X%I&zfNU1aY=A@>zbyH3-|yQgXMzCX&x%KT|jOL8AKx^ zVWn+R_`+6W)qUz`5qGc~Ms}x}7lwVb!B9og!tnHk1zuAp`%%xj!t=o-cuMa*eftYP zc(Z6^?5UyTc-X{#;YT&%juC&7;E_jt*AhRkQt1GN8Uo$D0Sj$6dXwN|r*u$i0IfyR z>OCjOar!wbn_dU5V!W#n!(o=LF~X|){{JO?eq$|27c`H=vAQS zEzt`Su_yjhGzdY~l5QX>as*t=tthY|q)rJe>(F>c?k7XHNTaPI{~PG`TQAGVfgXQ6 zwZMK6*xl{>^$J>~wgfNH)XI1@iYUs{-CLF5bTTc&rNtuX3N1N>XckwWg6E*-hw5XHGx2K3Y^~ih29XS9$C-8iXXtcZz z>^@8VS=-ahz1`q~*=T$)dDi|HP;HtFIX?4mh?tYbiY^F7{JtOw)UKUsRun7m&&X7> za{^ss*`F4ljXv}N11JMrOo+?|puL!&=Fpci)|LTV^$1B_rKK5=V-xW_f+rM*fSDl>v zvrk5H>YDl)C{&eO8^a=-tn0Qo3EzFBdf3TDqx0?ed~y*9+3hLf>rS!eqEH3l>m*tE zO9e+1urkdr{b0bm%O}A^rJV4}xu+5SM|Wec0h@Bu(?pZ#;#n2PVAi%vz@hc5ibUCO zsGYGHV=E&qP@kbYG$B0t;+m^BW@F!@!BoNo@GkHS(KGc3u_=RVH>cJlf1->!aZ-|Y z$ZIRgN0l`eJ1vphf78Ds_KosUP2|ezSxS=xe^w97hcF@qMru4@6~(g~=;LErHsFa@ zM4jLsn46HBxBTzsZy?HjGD7TFIq{3E9G zF)a9|I3WMQa>$y7>HN;fI<#(B8pMkQ<~7tf?cBqOPb%ScTvC4Y>eRq$*2E@#=o3}~ zenU|f0CLfM>mJJ!!C)I!m_jrB5i4tr)YWqC-pb- zwkOdfgKT!XVFA%fKSrR%$I4BAjB9B5iY5wo6rA(xDljjE?K`;-h;5--ih2t>$~Lsy6U@d)GMrsut%`Y)a~W<&g> z`6iEr{C2Aq^#6i!z*9LT|9J`*xv_QVTqORd?XXasVHV}~b2ZLL_vJIk5VZCT!qCb< ztn)sgcs$NuYG{SH7lKPA>md40rLPY~P?1jfwyAl|s56wO`6-S)00$`gWHiCTM%hO$ zT+DZ0S4NRx z*{L;yfHk{PUsC{NE`?j+NXo+_wSM30_zQqUTfTk2qqkj5CUliY&Ni zrX-`UdrK4Jbpu>bV=&|=M+-Pt&26NzdHzjv0-ES;otwkICOTV)f>e&{mLY zznUQpcbG{sDb1N2=6%Iw7K*@<(B$7Q4-p$_9+lDOYy4zU7 zyVGaT8)Pv{et3tUEd1iSseW?KU|2)kr|Lw0us!wsS>Zskj#zrAlrs;kK>)niEQklD zIrfhP!kf$=h_f(~eWT4HNM9T{jQd-IFnf59g^6(49i*Wfl21?7Qu8OZlF;&ML8xf+ zQhX)LXJ1;XmXDocmmM=c3w`~Nkbs=Ivy+&?7yuxy5*M^>ZNB`}5*EV-csL9n`Z80s zWNC}7dvxGU9e7wcU=3gB1;RR$!BJ8HYu6s}oEv=gFnNL52(#L6=;FOJuR{te5)=NF zn2;Q@{%Kg*$}iUaqF?e?Z3=7Uyk4iQF_Yvwni1T;z zp4zXi48jn5&=Fe{vFbUeW$y}W?}E$Q8-&P*kuHaTZYNj*z;=inTLzY{(m&RtF=c`^ zu(@oo>yA@k_}8Wc!Wl}xfW8T10~WuqebKS=r z8je6K|4ZO#j^I=X01m)JVkukMZWp?^$aZgK9n;DjfG2T}QJ@C%&msGdUw zwP?nG7OChakD(CLnOYsp`TEFz4OgD~hwUYaaD>s-A-xbmDcdpqy*GM$Mkotoiu;%A3Q2S#XMp{&jD;SWdZ zH1PhuEEDswlx95ggQBFN`V;>rBwfx+S*6RB7a`WCuWwX6TYtV(MP%+6}1J_ZqHy4`{!v2?uOM zDFm!W)IL{tGDT0S-` zab8_s=b<0w;QjWWJGEP20QV=H32CR7zio}&!mcr}k$iYn!TYdq0J|S@4MlE)zdsJJ zr1vU_jpW;G>64I~;6B(SI9jgEa{Ir6-!t0MW<{)&gTEK#q;Gbs{?itXCdK9+>zBLOj%k2f+pnQ_B09!<+rbYLgWp=zS+^6HVfq*!uCLvi zx?1Y~EIwrBcmjvVT5!qZa&y}{4RFnNn1k9k=v-30dVoaA4V|kai$^SnpR^QUP>s zvwUZv3m})yu+J7Q{0^ucze1eTdn@Hl%kJ5zQep{D+u&A;%>+s0z z!NtPW`?aMK>0z6ro-5o+4S}azc2(Sz(yTZ=hw!v`SS#)gT;1M?N%oN^<9#AuLtwyi zG#X-oCM|1#vELnguk{*-`}$JRDph_DJd;d6+r zoJYtwH}Qb&Zw?G&)fM%K$^@Ks2UtV{obO^95Zw8a-nl{w*I>#Rv>bDKu@#qqvk*oI z;Cdh&tYS}`gin{7m(uwmND1-dfOB8n;>V>EBIo*Z7||K zKjej0R;4)(hhLa!=JFClwCyc~lrxOIAzUj;zS3 zKbT+S^~XzpoKxkq`^w68)Sw_8XX1FDpOc?Lhy+`tM1it{!H41%=5l5~1(B6b2qiSO z++#q6^=S0_sB2F(E<0s_uvKG@am zCMvs(&P4VV?$o)V4bJUy8L>IdP0-U5k;#+F8piXpwK*jM;cu;LsBL)IMC)PuVV!PR zL4k+jY%cCf5lFrzqog#vC$YblD6;jW6LqhjaOB?qrZd3V=H^e)#a4K#oEU%FpT@MK zLHCSQ+2+&cuf3_sjk|0+V;&1*3hj~2#;02i=&ciz(=*AP0WkCV>Fpg@6SLh`<`MD_ e+e5-RgBOQ|Ecu@VKv&a11M%SLtN#HT7M&0P literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8cca49ee39177ed6d003f56dc2e7d2677e71b78e GIT binary patch literal 2013 zcmV<32O{{1P)rmbzY4FVPf;l-dq3=cjMVA(fWBiCd`9M@a zc+f!o03uB-6xy-Oluqf~nYrg{fBA6s+?fGX@P(VK?2~(w`~U5={(G%`Ln zJhJ*ULowpKT4G6_<#lzASua>rr+A;A5?%}sEHHUPBbRQ`a^sp@ln18>GXoFujX;#5J64@j=@Lo-2!;Kj}9pUu3C{R zpDoqW=U!8*S5E`G(PU^O3I!WaZ8Q^9%^&7&HP+L5?OTi4cMu$O+`w7%c@2iOHbM zpc;~tuO16+K4{d<$FX7gKLYfFP9M`}zV(-M`OaM|FhJ19QD7)=WN0!na#C^>1(IS1 zfT5s8hZ^b(>I7;DwIp4A@iwpe!+Pq|_Yl~43xE!a6Z+h-KW4ApJzx(56caf5+iII3 z$jKu>LXM0X@MD0S2H9w+HpK1yDIwOJF-RYn zz{kduP$1Bug}Ur|UFl%d!YGGP4I7;x>nW^j*icXwsDG_|XnYEWVsJ1cpyC$^?0DV; z(lIL&V+cWpK(tc9TqVh+*GgK-4#fQw;)7HC6f@)XEKg06ee8ZZ{D1LwiJE`r|{A^xc$ zke6Z;U@-KH7o0q7#g?Gm9syd>2{!>s55j>?yW^f1jVueOTWH$|V>%eS4a!;Y9@>g9 zId^fKfn6i_;@K+sgcIEkEnq|^*3zvFPzF#Qf&nRFHUnrY$?Lpxf7wD~x@c_&WL*R@ zU_F#Q{QLKx-1HV#TKB|>%iP__ooQ}kGt&XmD2{{RAlKco&j9TpZBta4!>EZJuZ7w` z(?VlA0Ao8SJAwV+l~1Ib00)&lvAgtVhqXM^SDk1Ug*Bb9@Lg)G10|!^;;hjQbSvmJ z8I%Q#ViT&&7D#QnY^;y))B7&E0}D@&OVDnJbJwc&C%;?Czfq-8I6x90iQ>Y6x8MWx zbT{yJ02t6sO0rpsQL_b78>nJdhB@Zrdw)fny)*`R;O0qp&u>S+*zepOD{rVHSqg~* zwV8I`iCY6n(w(*{fkHwBXb;*#)q-?KR=6qOzAlA>RH{DuA*T%UA3*$E)*V{oLu~ zuDXTU6nYu7b=-ZrZR`_G>pCB31GE&sveLzLWt zXpC6izsDY*_WtkZPA2!RF3CehA13=<2C4)K1(k>%2wOhTEuX-2tAF%W-hLn^!XcV+6q8=4Smryb2HRyPA(ROY)Q1NFMdISa8s{0c@c3y>NjU ve^M;?r@~M^<){5CT%r=@e@xT&`t|(ZMHlD%K~&Wr00000NkvXXu0mjf7LB_g literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f580569d988c4a2e4b0b4cf8b578a09d8e378fb2 GIT binary patch literal 1869 zcmV-T2eSByP))q?(Ga~Sr+;~!7>bk`op|J9W$|M zOx3JI;}+HK8__UhZ~2K?dy20v*p*Dbx+|GkzB_q+)xNTmYa54e-+b_i*SG&L=F#2F zqeJDdJePj9(tb-W}asTwh;g5}sEo?~Mi%aogz{J3Uz z&Xu%3KD*g{y+u`1o0^+PKi%K@cNOsL(OJUS15d5!lyC05XtXcOv&zsQDnb!dfP z0(jgPFjs8HSjZ?t=H(^1Z1;EjcRu#P;cuUeJ&=I=j5kwfH}2c?M&hml zPTe~H_GznoE+I|goQn|D9UKT@0laI!BgBI<2a(ajlsrVDN(FVEt+RU1zjH?cvm4h` z|DxYm$}&+diUkDi>|!=?*cOnmv-Ow4v)!|wGclP)p<)4AkODiQij02gnHRP z@Jizb{<j=UB2F4R6zI(+&7Q8wZV9d!W(}fs#x(x|p{96u6z?xx?7_wKyzQhF_ z^E|mOaL8!C>Iq0&d=)Inf{heBjo!8+LV`XQ1nPpFJ&-Fj>jF5;Ag$qJPb0mK2;H}-?4y%C~90@NwH@f4@d0wu_ePBqG8A2-IC?OK@oRzbJ-Z`L&ME!pNqtZr$HFW55 zfk5@aKd1TN3dl1#6V%BBmIH~vq%bga3N=TdgT=7TV9)E=4fr2m;%NDz<-`b`4};T+ zDi!1vftamp1C z*O)d~3`liK4ul%L*63KlC}46qO&y@~nq60C+xbM;LIPAo(2MvPrl|CSD_|(YwIE6a z8AH^wgdB*pEXmr=9HW4*HC!S!OGLr*roGMR*0WDMk(>v%2$47f0_+$>+>pvvS3r4y zJrc_my5tPaI7>6k5&$7&p2w!iDJn|xK%9WChb;&q=s~24-jVE-2Mbjri8Na_pxG6m zO6IwTqM`30JEysv?3~PP>tUSrNc%tr_oxdXB<~jz@OnfNkvOcf$xVo&mSsCy+}O&kwTC`x zx#Jtr=!)RFN0Ml-)JsSq^Fo?r4nj1VrB`>4SfgbCcPvLhp6(3TAz1-gBT8F^ktJ*H z`bxHL`IJo6V0PJ%xb;(}2ccXqvHtePyWRdiA|$#kB`QK9~ zL%}LxWxO;oWl%}kqMC~}E&YBQ-p?oWk&{ykKcAiQ>z-3JYnv`luixK2W7O`{^8>b} zXGS+;tk29WS>65I!z->#pZ3~s(^kLOHtG2I%#9J*ZFxJdi`6+00000NkvXX Hu0mjfr=x{$ literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..06dbc2bc21dddcf0e09b566d5b211aee89570f52 GIT binary patch literal 1849 zcma*odr(tX9tZHtz31lM+(&Y`A`Ou`NeG&R#DrIfV%?hng21vs6v>ooRQQFbk7E_K!V( z{?5!fpZWgIZ%*d6t%i*j24bL}AZUJm9)h6R*;%L4IWse3G#VWaN1#$zSSXcBhlYlH zJ|D}n{r&w2f+Qp)SS*&n?*G4}{}!h?td_mjU6Kad-rW*QwWYCUk7d^e+sjpZAn6kT z5rM;`{~_}-wm+L@%+E;JphLm}C3WzQAQD0wBoY|rOTQX{(@pp-WAA8Iw0HKl|15j) zhGh(SFWu#5zUCw^T!}C~eC}~?{xG-r7ugQC>taC+|L^xr&a%{#cgUOZXIM&v?)k^2 z1i5%0!U00wq)r4vlAwXBA_m5J5WNeuBm-XJQ5pG4GD%vc|K){+TJ{AkHqN@SJKczX zU}QRd9n*_bf^h94)6Ctv{CUfz_;qs#RDuQ$DR%y1&5G-a6rhf*4Y zl+UOD1*GE{GQ7vv;c-tTIMkz0ovO>9j%b5hpa@a*CBJ#W!0@ndSwF|%hMkdFtXiU) z`BEp+yhkt8ZY>tg&uyH@%^%K4jDrbA;et&vnnzZ3z22@e6<27z2Vk13kb7OtISyxv z(XoO-LNQCZe3lfzc%*pNqU<9T+p~teThOEB+~e&U0mC|zS{Q)dJZ)!^1f7L(zg*L> z*vSW%?dR~@@0(}x6-V^A`~ImD;)NaBUnP8;RH=bS2@pk`wp>>8r&jGjmGPy%1BW}v zoPo}ca$~bze@efc3kapuEVW1!%teOZT3j2Tw5=hjiAf02d}7dL0oFC%@=RXp5Ow#% z@a>+AM|YWt$n&e`>sB-32gBcuTi>R>*|8@lp`y6thc7ydyqDsuUn~YzZf|{-R@-3y zL#wx{Ii}xxL_csiW*LBn0-A$>zp4WOmkf6=ilrjlW?-l9+bCd7|i?*b5NTmy<<6NZ0T8$SN@mwdC2f z6jqK=N@bS@!=YSj%>h0}*4p+%0HbTIrE$w7UMT6+AZZ&DAo*qZAAi(OtNbIfl#Dw^ zJWeiCp~zi#&t6x}m9)O^eR4HiLV3QA<<0>HZ8%$^lrSE94Wb}=+MM^!b>n#5&-JQR zkr-CEu9C;_F*7DqDisulV6Pmg$nFL0TPn%~*m^-`Z3^BgU(sNpnx%nW(!eV9A&FvI zHL3X3lw8Wji^6=8KbQDE-e%b?svdFxxdh$8r97@7$ojeI`6AL8Ob6QC$qh&>ZWVDX1F{0vJnT%%mE;GveKWR%C} zM&4d;Jf3s9|HAA)yVUPo`Aq;0do#)uHSXi5*QF*)x@MVVHr+cN)uMZ__F|&Ta#p8d z53TOKtce!PJUuie8UWol-S(`c2nH?UGqJP{!4RR4u$LCfn)q-hj0^f=h(VYy)T6eN zhRO!ja-aDBTcgeyP(8Ua4IdiOog^*CQa?R(cP#9AgL9`j>EX-6Yf1lzX(!~``M1XC zNmM<4<6d~wWZ$Xrk0K}UteTrq@LBBk#MsjkK;pbuVhe)NI7(7Pf(l?lxC7=1Z7Pzl zMbS;nV4NI5_N{1$P)&XC)huOGQ+h^zpYUZfb*1n6>!`#*b3y52LGmi+<4sY5jyD#- zw&$d}DTguLAfnRtjrM*JfqtHqUu6rQoU=g%1E9xk%;)TDm^2<8n-0IhTsQFaek)MY}>PK4;nBk=ow4pF>vzkO& gna%Org-kgQCf=+BeMi^RbuY;YE~rTjend;_cdi8t>i_@% literal 0 HcmV?d00001 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 + + +