sproutcore 1.4.5 → 1.5.0.pre.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (792) hide show
  1. data/CHANGELOG +35 -0
  2. data/VERSION.yml +2 -2
  3. data/lib/Buildfile +13 -4
  4. data/lib/buildtasks/build.rake +20 -17
  5. data/lib/buildtasks/manifest.rake +143 -78
  6. data/lib/buildtasks/target.rake +1 -0
  7. data/lib/doc_templates/sproutcore/index.tmpl +18 -4
  8. data/lib/doc_templates/sproutcore/publish.js +1 -1
  9. data/lib/frameworks/sproutcore/Buildfile +24 -13
  10. data/lib/frameworks/sproutcore/{CHANGELOG-1.4.md → CHANGELOG.md} +0 -0
  11. data/lib/frameworks/sproutcore/apps/greenhouse/controllers/file.js +8 -48
  12. data/lib/frameworks/sproutcore/apps/greenhouse/core.js +3 -5
  13. data/lib/frameworks/sproutcore/apps/greenhouse/data_source.js +1 -1
  14. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/app_page.js +26 -4
  15. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/strings.js +7 -1
  16. data/lib/frameworks/sproutcore/apps/greenhouse/main.js +1 -1
  17. data/lib/frameworks/sproutcore/apps/greenhouse/models/design.js +6 -2
  18. data/lib/frameworks/sproutcore/apps/greenhouse/models/dir.js +8 -7
  19. data/lib/frameworks/sproutcore/apps/greenhouse/models/file.js +2 -2
  20. data/lib/frameworks/sproutcore/apps/greenhouse/states/inspector.js +133 -125
  21. data/lib/frameworks/sproutcore/apps/greenhouse/states/library.js +121 -112
  22. data/lib/frameworks/sproutcore/apps/greenhouse/states/main.js +233 -191
  23. data/lib/frameworks/sproutcore/apps/greenhouse/states/modals.js +265 -258
  24. data/lib/frameworks/sproutcore/apps/greenhouse/states/ready.js +153 -141
  25. data/lib/frameworks/sproutcore/apps/test_controls/Buildfile +0 -0
  26. data/lib/frameworks/sproutcore/apps/test_controls/controllers/buttons.js +21 -0
  27. data/lib/frameworks/sproutcore/apps/test_controls/controllers/categories.js +108 -0
  28. data/lib/frameworks/sproutcore/apps/test_controls/controllers/category.js +36 -0
  29. data/lib/frameworks/sproutcore/apps/test_controls/core.js +29 -0
  30. data/lib/frameworks/sproutcore/apps/test_controls/main.js +14 -0
  31. data/lib/frameworks/sproutcore/apps/test_controls/resources/buttons_page.js +142 -0
  32. data/lib/frameworks/sproutcore/apps/test_controls/resources/checkboxes_page.js +45 -0
  33. data/lib/frameworks/sproutcore/apps/test_controls/resources/flow_layout_page.js +84 -0
  34. data/lib/frameworks/sproutcore/apps/test_controls/resources/list_page.js +40 -0
  35. data/lib/frameworks/sproutcore/apps/test_controls/resources/loading.rhtml +9 -0
  36. data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.css +60 -0
  37. data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +144 -0
  38. data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +42 -0
  39. data/lib/frameworks/sproutcore/apps/test_controls/resources/radio_page.js +48 -0
  40. data/lib/frameworks/sproutcore/apps/test_controls/resources/scroll_page.js +76 -0
  41. data/lib/frameworks/sproutcore/apps/test_controls/resources/segmented_page.js +98 -0
  42. data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +60 -0
  43. data/lib/frameworks/sproutcore/apps/test_controls/resources/sliders_page.js +53 -0
  44. data/lib/frameworks/sproutcore/apps/test_controls/resources/strings.js +50 -0
  45. data/lib/frameworks/sproutcore/apps/test_controls/resources/tab_page.js +44 -0
  46. data/lib/frameworks/sproutcore/apps/test_controls/resources/text_field_page.js +41 -0
  47. data/lib/frameworks/sproutcore/apps/test_controls/theme.js +34 -0
  48. data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +7 -0
  49. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/images/main-bg.png +0 -0
  50. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.css +24 -6
  51. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +36 -46
  52. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/controllers/array.js +175 -195
  53. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/controllers/controller.js +0 -0
  54. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/controllers/object.js +0 -0
  55. data/lib/frameworks/sproutcore/frameworks/amber/core.js +201 -0
  56. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/ext/object.js +23 -23
  57. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/ext/run_loop.js +47 -47
  58. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/mixins/delegate_support.js +36 -36
  59. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/mixins/responder_context.js +55 -55
  60. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/mixins/selection_support.js +45 -45
  61. data/lib/frameworks/sproutcore/frameworks/amber/mixins/string.js +163 -0
  62. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/panes/main.js +4 -3
  63. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/panes/pane.js +123 -9
  64. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/protocols/observable_protocol.js +11 -11
  65. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/protocols/sparse_array_delegate.js +40 -40
  66. data/lib/frameworks/sproutcore/frameworks/{foundation/english.lproj → amber/resources}/core.css +0 -103
  67. data/lib/frameworks/sproutcore/frameworks/{foundation/english.lproj → amber/resources}/view.css +0 -0
  68. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/application.js +0 -2
  69. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/browser.js +0 -0
  70. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/builder.js +0 -0
  71. data/lib/frameworks/sproutcore/frameworks/amber/system/core_query.js +141 -0
  72. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/cursor.js +0 -0
  73. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/device.js +0 -0
  74. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/event.js +34 -14
  75. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/json.js +0 -0
  76. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/locale.js +0 -0
  77. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/page.js +0 -0
  78. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/platform.js +30 -10
  79. data/lib/frameworks/sproutcore/frameworks/amber/system/ready.js +77 -0
  80. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/render_context.js +330 -255
  81. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/responder.js +0 -0
  82. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/root_responder.js +152 -60
  83. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/system/selection_set.js +140 -145
  84. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/system/sparse_array.js +101 -87
  85. data/lib/frameworks/sproutcore/frameworks/amber/system/theme.js +316 -0
  86. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/system/timer.js +149 -147
  87. data/lib/frameworks/sproutcore/frameworks/amber/system/utils.js +174 -0
  88. data/lib/frameworks/sproutcore/frameworks/amber/system/utils/rect.js +98 -0
  89. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/array_case.js +41 -41
  90. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/enum_case.js +0 -0
  91. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/null_case.js +0 -0
  92. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/selection_support.js +0 -0
  93. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/array/single_case.js +9 -9
  94. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/object/empty_case.js +0 -0
  95. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/object/multiple_case.js +0 -0
  96. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/object/single_case.js +0 -0
  97. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/controllers/object/single_enumerable_case.js +0 -0
  98. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/mixins/responder_context.js +0 -0
  99. data/lib/frameworks/sproutcore/frameworks/amber/tests/mixins/string.js +55 -0
  100. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/builder.js +0 -0
  101. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/core_query/within.js +7 -8
  102. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/json.js +0 -0
  103. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/locale.js +0 -0
  104. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/begin.js +0 -0
  105. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/element.js +0 -0
  106. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/end.js +1 -1
  107. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/get.js +0 -0
  108. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/helpers_attr.js +0 -0
  109. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/helpers_basic.js +0 -0
  110. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/helpers_className.js +0 -2
  111. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/helpers_style.js +11 -3
  112. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/init.js +0 -0
  113. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/join.js +0 -0
  114. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/push_text.js +0 -0
  115. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/tag.js +0 -0
  116. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/render_context/update.js +0 -0
  117. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/makeKeyPane.js +0 -0
  118. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/makeMainPane.js +0 -0
  119. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/makeMenuPane.js +0 -0
  120. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/root_responder.js +0 -0
  121. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/root_responder/targetForAction.js +46 -9
  122. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/add.js +0 -0
  123. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/copy.js +0 -0
  124. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/indexSetForSource.js +0 -0
  125. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/isEqual.js +0 -0
  126. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/selection_set/remove.js +0 -0
  127. data/lib/frameworks/sproutcore/frameworks/{runtime → amber}/tests/system/sparse_array.js +0 -0
  128. data/lib/frameworks/sproutcore/frameworks/amber/tests/system/theme.js +77 -0
  129. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/invalidate.js +0 -0
  130. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/invokeLater.js +7 -5
  131. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/isPaused.js +0 -0
  132. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/performAction.js +0 -0
  133. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/timer/schedule.js +0 -0
  134. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/utils/normalizeURL.js +0 -0
  135. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/system/utils/rect.js +0 -0
  136. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/main_pane.js +0 -0
  137. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/append_remove.js +0 -0
  138. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/firstResponder.js +0 -0
  139. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/keyPane.js +0 -0
  140. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/layout.js +0 -0
  141. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/pane/sendEvent.js +0 -0
  142. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/pane/sendTouchEvent.js +267 -0
  143. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/animation.js +320 -0
  144. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/build.js +85 -0
  145. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/build_children.js +89 -0
  146. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/clippingFrame.js +3 -2
  147. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/convertFrames.js +0 -0
  148. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/convertLayouts.js +0 -0
  149. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/createChildViews.js +0 -0
  150. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/createLayer.js +2 -2
  151. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/destroyLayer.js +0 -0
  152. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/didAppendToDocument.js +0 -0
  153. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/findLayerInParentLayer.js +0 -0
  154. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/init.js +0 -0
  155. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/insertBefore.js +0 -0
  156. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/isVisible.js +0 -0
  157. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/isVisibleInWindow.js +0 -0
  158. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/layer.js +0 -0
  159. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/layoutChildViews.js +0 -0
  160. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/layoutDidChange.js +22 -0
  161. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/layoutStyle.js +135 -64
  162. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/parentViewDidChange.js +0 -0
  163. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/prepareContext.js +16 -8
  164. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/removeChild.js +0 -0
  165. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/render.js +37 -5
  166. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/render_delegate_support.js +163 -0
  167. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/replaceChild.js +0 -0
  168. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/theme.js +43 -0
  169. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/updateLayer.js +12 -10
  170. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/updateLayerLocation.js +0 -0
  171. data/lib/frameworks/sproutcore/frameworks/amber/tests/views/view/view.js +64 -0
  172. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/tests/views/view/viewDidResize.js +0 -0
  173. data/lib/frameworks/sproutcore/frameworks/amber/views/base.js +1 -0
  174. data/lib/frameworks/sproutcore/frameworks/amber/views/layout_style.js +478 -0
  175. data/lib/frameworks/sproutcore/frameworks/{foundation → amber}/views/view.js +1719 -1029
  176. data/lib/frameworks/sproutcore/frameworks/animation/core.js +32 -18
  177. data/lib/frameworks/sproutcore/frameworks/animation/tests/core.js +10 -5
  178. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/bench.js +14 -0
  179. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +24 -17
  180. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +1 -13
  181. data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +72 -0
  182. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +2 -2
  183. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +7 -3
  184. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +66 -4
  185. data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +4 -1
  186. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +58 -10
  187. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +5 -14
  188. data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +4 -5
  189. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +27 -3
  190. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +5 -8
  191. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +1 -1
  192. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +30 -4
  193. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/navigation_builder.js +130 -0
  194. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +2 -0
  195. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +20 -2
  196. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +9 -27
  197. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +32 -26
  198. data/lib/frameworks/sproutcore/frameworks/desktop/panes/select_button.js +57 -11
  199. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -2
  200. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +78 -0
  201. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +74 -0
  202. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +24 -0
  203. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +41 -0
  204. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/helpers/slicing.js +34 -0
  205. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +30 -0
  206. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +28 -0
  207. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/menu.js +47 -0
  208. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +28 -0
  209. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +43 -0
  210. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +175 -0
  211. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +74 -0
  212. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +109 -0
  213. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +70 -0
  214. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +58 -0
  215. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +39 -0
  216. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/source_list.js +8 -0
  217. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/toolbar.js +18 -0
  218. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +29 -0
  219. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/workspace.js +18 -0
  220. data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +79 -53
  221. data/lib/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +7 -2
  222. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +1 -1
  223. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +45 -3
  224. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +33 -13
  225. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +11 -17
  226. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/image_button/ui.js +25 -0
  227. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +128 -20
  228. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +10 -10
  229. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +35 -15
  230. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +162 -0
  231. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +153 -208
  232. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +18 -48
  233. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +26 -25
  234. data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +3 -20
  235. data/lib/frameworks/sproutcore/frameworks/desktop/views/file.js +112 -0
  236. data/lib/frameworks/sproutcore/frameworks/desktop/views/image_button.js +74 -0
  237. data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +3 -1
  238. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +388 -309
  239. data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +257 -0
  240. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +8 -3
  241. data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation.js +237 -0
  242. data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation_bar.js +181 -0
  243. data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +3 -2
  244. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +14 -76
  245. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +59 -164
  246. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +80 -47
  247. data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +84 -0
  248. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +320 -289
  249. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +212 -76
  250. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +33 -36
  251. data/lib/frameworks/sproutcore/frameworks/desktop/views/source_list.js +2 -0
  252. data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +347 -248
  253. data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +1 -1
  254. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +1 -1
  255. data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +41 -9
  256. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +1 -1
  257. data/lib/frameworks/sproutcore/frameworks/desktop/views/well.js +2 -21
  258. data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +251 -0
  259. data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
  260. data/lib/frameworks/sproutcore/frameworks/forms/english.lproj/default_styles.css +5 -0
  261. data/lib/frameworks/sproutcore/frameworks/forms/english.lproj/strings.js +15 -0
  262. data/lib/frameworks/sproutcore/frameworks/forms/mixins/edit_mode.js +43 -0
  263. data/lib/frameworks/sproutcore/frameworks/forms/mixins/emptiness.js +95 -0
  264. data/lib/frameworks/sproutcore/frameworks/forms/renderer_delegates/form.js +22 -0
  265. data/lib/frameworks/sproutcore/frameworks/forms/renderer_delegates/form_row.js +21 -0
  266. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form.js +15 -0
  267. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_checkbox_field.js +15 -0
  268. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_field.js +15 -0
  269. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_label.js +15 -0
  270. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_radio_field.js +15 -0
  271. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_row.js +15 -0
  272. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_text_field.js +15 -0
  273. data/lib/frameworks/sproutcore/frameworks/forms/views/form.js +280 -0
  274. data/lib/frameworks/sproutcore/frameworks/forms/views/form_row.js +183 -0
  275. data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +5 -2
  276. data/lib/frameworks/sproutcore/frameworks/foundation/core.js +0 -150
  277. data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +0 -2
  278. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/benchmark.css +146 -0
  279. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +2 -14
  280. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/favicon.ico +0 -0
  281. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/sproutcore.png +0 -0
  282. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/strings.js +0 -2
  283. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/text_field.css +4 -6
  284. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/pinch.js +81 -0
  285. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/swipe.js +144 -0
  286. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/tap.js +113 -0
  287. data/lib/frameworks/sproutcore/frameworks/foundation/license.js +24 -26
  288. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_mixin.js +39 -0
  289. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +244 -0
  290. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +68 -23
  291. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +8 -2
  292. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +626 -0
  293. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +214 -0
  294. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +89 -0
  295. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +139 -0
  296. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +25 -33
  297. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/string.js +57 -209
  298. data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +7 -3
  299. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +100 -0
  300. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/container.js +18 -0
  301. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +97 -0
  302. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +111 -0
  303. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +17 -0
  304. data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +360 -156
  305. data/lib/frameworks/sproutcore/frameworks/{runtime → foundation}/system/cookie.js +35 -35
  306. data/lib/frameworks/sproutcore/frameworks/foundation/system/core_query.js +19 -2012
  307. data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +3 -0
  308. data/lib/frameworks/sproutcore/frameworks/foundation/system/gesture.js +363 -0
  309. data/lib/frameworks/sproutcore/frameworks/foundation/system/{image_cache.js → image_queue.js} +19 -22
  310. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +576 -0
  311. data/lib/frameworks/sproutcore/frameworks/foundation/system/request.js +19 -22
  312. data/lib/frameworks/sproutcore/frameworks/foundation/system/response.js +73 -61
  313. data/lib/frameworks/sproutcore/frameworks/foundation/system/routes.js +122 -23
  314. data/lib/frameworks/sproutcore/frameworks/foundation/system/staticqueue.js +53 -0
  315. data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +18 -15
  316. data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +82 -90
  317. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/colors.js +80 -0
  318. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +76 -0
  319. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/range.js +64 -0
  320. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +247 -0
  321. data/lib/frameworks/sproutcore/frameworks/foundation/tasks/preload_bundle.js +3 -3
  322. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +2 -2
  323. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +2 -0
  324. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/string.js +2 -57
  325. data/lib/frameworks/sproutcore/frameworks/{runtime → foundation}/tests/system/cookie.js +0 -0
  326. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/setClass.js +13 -3
  327. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +99 -49
  328. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/routes.js +24 -20
  329. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +9 -1
  330. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +31 -6
  331. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +454 -44
  332. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +10 -1
  333. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/{view → text_field}/nextValidKeyView.js +0 -0
  334. data/lib/frameworks/sproutcore/frameworks/foundation/validators/number.js +1 -0
  335. data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +9 -8
  336. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +1 -3
  337. data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +381 -105
  338. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +44 -171
  339. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +69 -16
  340. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +376 -0
  341. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +205 -0
  342. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +7 -0
  343. data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +7179 -0
  344. data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +4 -2
  345. data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +1 -3
  346. data/lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js +1 -2
  347. data/lib/frameworks/sproutcore/frameworks/mini/license.js +29 -28
  348. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +366 -333
  349. data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/rangeObserver.js +73 -73
  350. data/lib/frameworks/sproutcore/frameworks/runtime/license.js +29 -28
  351. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +160 -150
  352. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/comparable.js +9 -9
  353. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +15 -15
  354. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +228 -220
  355. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +27 -27
  356. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +355 -305
  357. data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +32 -32
  358. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +53 -51
  359. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +49 -106
  360. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +252 -252
  361. data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +22 -22
  362. data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +31 -31
  363. data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +234 -234
  364. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +4 -4
  365. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +167 -157
  366. data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +84 -85
  367. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +104 -91
  368. data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +102 -98
  369. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/IsEqual.js +19 -49
  370. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/guidFor.js +53 -126
  371. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +62 -33
  372. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +41 -5
  373. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +133 -98
  374. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/observer_set.js +50 -0
  375. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +11 -11
  376. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +71 -45
  377. data/lib/frameworks/sproutcore/frameworks/statechart/core.js +3 -9
  378. data/lib/frameworks/sproutcore/frameworks/statechart/debug/monitor.js +136 -0
  379. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +636 -99
  380. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +951 -0
  381. data/lib/frameworks/sproutcore/frameworks/statechart/tests/async.js +94 -0
  382. data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/advanced_event_handling.js +310 -0
  383. data/lib/frameworks/sproutcore/frameworks/statechart/tests/namespace/access_substates.js +252 -0
  384. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/is_current_state.js +64 -0
  385. data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_history_state.js +88 -0
  386. data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_advanced.js +234 -0
  387. data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_async.js +123 -0
  388. data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_basic.js +139 -0
  389. data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_intermediate.js +119 -0
  390. data/lib/frameworks/sproutcore/frameworks/statechart/tests/with_concurrent_states/send_event.js +183 -0
  391. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/default_responder.js +90 -0
  392. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/goto_history_state.js +200 -0
  393. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/goto_state.js +256 -0
  394. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/goto_state_async.js +187 -0
  395. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/send_event.js +122 -0
  396. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/state_plugin.js +99 -0
  397. data/lib/frameworks/sproutcore/frameworks/statechart/tests/without_concurrent_states/transient.js +162 -0
  398. data/lib/frameworks/sproutcore/frameworks/table/views/table_cell.js +2 -1
  399. data/lib/frameworks/sproutcore/frameworks/table/views/table_head.js +1 -1
  400. data/lib/frameworks/sproutcore/frameworks/table/views/table_row.js +1 -1
  401. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +2 -1
  402. data/lib/frameworks/sproutcore/lib/index.rhtml +24 -1
  403. data/lib/frameworks/sproutcore/license.js +31 -30
  404. data/lib/frameworks/sproutcore/themes/ace/designs/dark.png +0 -0
  405. data/lib/frameworks/sproutcore/themes/ace/designs/dark.psd +0 -0
  406. data/lib/frameworks/sproutcore/themes/ace/designs/light.png +0 -0
  407. data/lib/frameworks/sproutcore/themes/ace/designs/light.psd +0 -0
  408. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/active_button.psd +0 -0
  409. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/normal_button.psd +0 -0
  410. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_active_button.psd +0 -0
  411. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_button.psd +0 -0
  412. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button.psd +0 -0
  413. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_capsule.psd +0 -0
  414. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_pointer.psd +0 -0
  415. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button.psd +0 -0
  416. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_capsule.psd +0 -0
  417. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_pointer.psd +0 -0
  418. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button.psd +0 -0
  419. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_capsule.psd +0 -0
  420. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_pointer.psd +0 -0
  421. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button.psd +0 -0
  422. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_capsule.psd +0 -0
  423. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_pointer.psd +0 -0
  424. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button.psd +0 -0
  425. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button_pointer.psd +0 -0
  426. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button.psd +0 -0
  427. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button_pointer.psd +0 -0
  428. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button.psd +0 -0
  429. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button_pointer.psd +0 -0
  430. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button.psd +0 -0
  431. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button_pointer.psd +0 -0
  432. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/active_button.psd +0 -0
  433. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/normal_button.psd +0 -0
  434. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_active_button.psd +0 -0
  435. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_button.psd +0 -0
  436. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button.psd +0 -0
  437. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_capsule.psd +0 -0
  438. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_pointer.psd +0 -0
  439. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button.psd +0 -0
  440. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_capsule.psd +0 -0
  441. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_pointer.psd +0 -0
  442. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button.psd +0 -0
  443. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_capsule.psd +0 -0
  444. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_pointer.psd +0 -0
  445. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button.psd +0 -0
  446. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_capsule.psd +0 -0
  447. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_pointer.psd +0 -0
  448. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button.psd +0 -0
  449. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button_pointer.psd +0 -0
  450. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button.psd +0 -0
  451. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button_pointer.psd +0 -0
  452. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button.psd +0 -0
  453. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button_pointer.psd +0 -0
  454. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button.psd +0 -0
  455. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button_pointer.psd +0 -0
  456. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/popup/active_select.psd +0 -0
  457. data/lib/frameworks/sproutcore/themes/ace/designs/psds/button/popup/normal_select.psd +0 -0
  458. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked.psd +0 -0
  459. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked_active.psd +0 -0
  460. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed.psd +0 -0
  461. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed_active.psd +0 -0
  462. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked.psd +0 -0
  463. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked_active.psd +0 -0
  464. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked.psd +0 -0
  465. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked_active.psd +0 -0
  466. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed.psd +0 -0
  467. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed_active.psd +0 -0
  468. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked.psd +0 -0
  469. data/lib/frameworks/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked_active.psd +0 -0
  470. data/lib/frameworks/sproutcore/themes/ace/designs/psds/collection/source-list/selection.psd +0 -0
  471. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed.psd +0 -0
  472. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed_active.psd +0 -0
  473. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open.psd +0 -0
  474. data/lib/frameworks/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open_active.psd +0 -0
  475. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/checkmark.psd +0 -0
  476. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/checkmark_active.psd +0 -0
  477. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/down.psd +0 -0
  478. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu.psd +0 -0
  479. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/menu_item.psd +0 -0
  480. data/lib/frameworks/sproutcore/themes/ace/designs/psds/menu/up.psd +0 -0
  481. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/panel.psd +0 -0
  482. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover.psd +0 -0
  483. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_empty.psd +0 -0
  484. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_notoolbar.psd +0 -0
  485. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers.psd +0 -0
  486. data/lib/frameworks/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers_notoolbar.psd +0 -0
  487. data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_content.psd +0 -0
  488. data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_indeterminate_content.psd +0 -0
  489. data/lib/frameworks/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_track.psd +0 -0
  490. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_active.psd +0 -0
  491. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_mixed.psd +0 -0
  492. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_mixed_active.psd +0 -0
  493. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_selected.psd +0 -0
  494. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_selected_active.psd +0 -0
  495. data/lib/frameworks/sproutcore/themes/ace/designs/psds/radio/radio_unselected.psd +0 -0
  496. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/thumb.psd +0 -0
  497. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows.psd +0 -0
  498. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows_active.psd +0 -0
  499. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/thumb.psd +0 -0
  500. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows.psd +0 -0
  501. data/lib/frameworks/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows_active.psd +0 -0
  502. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_active.psd +0 -0
  503. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_normal.psd +0 -0
  504. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected.psd +0 -0
  505. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected_active.psd +0 -0
  506. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_active.psd +0 -0
  507. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_normal.psd +0 -0
  508. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected.psd +0 -0
  509. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected_active.psd +0 -0
  510. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_active.psd +0 -0
  511. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_normal.psd +0 -0
  512. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected.psd +0 -0
  513. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected_active.psd +0 -0
  514. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_active.psd +0 -0
  515. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_normal.psd +0 -0
  516. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected.psd +0 -0
  517. data/lib/frameworks/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected_active.psd +0 -0
  518. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob.psd +0 -0
  519. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob_active.psd +0 -0
  520. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob.psd +0 -0
  521. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob_active.psd +0 -0
  522. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob.psd +0 -0
  523. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob_active.psd +0 -0
  524. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/22px/track.psd +0 -0
  525. data/lib/frameworks/sproutcore/themes/ace/designs/psds/slider/ace/track.psd +0 -0
  526. data/lib/frameworks/sproutcore/themes/ace/designs/psds/toolbar/toolbar.psd +0 -0
  527. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch.psd +0 -0
  528. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_handle.png +0 -0
  529. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_handle.psd +0 -0
  530. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_off.png +0 -0
  531. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_off.psd +0 -0
  532. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_on.png +0 -0
  533. data/lib/frameworks/sproutcore/themes/ace/designs/switch/switch_on.psd +0 -0
  534. data/lib/frameworks/sproutcore/themes/ace/resources/body.css +13 -0
  535. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/active_button.png +0 -0
  536. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +27 -0
  537. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/normal_button.png +0 -0
  538. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/selected_active_button.png +0 -0
  539. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/selected_button.png +0 -0
  540. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button.png +0 -0
  541. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button_capsule.png +0 -0
  542. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/active_button_pointer.png +0 -0
  543. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +84 -0
  544. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button.png +0 -0
  545. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button_capsule.png +0 -0
  546. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/normal_button_pointer.png +0 -0
  547. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button.png +0 -0
  548. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button_capsule.png +0 -0
  549. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button_pointer.png +0 -0
  550. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button.png +0 -0
  551. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button_capsule.png +0 -0
  552. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/selected_button_pointer.png +0 -0
  553. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/active_button.png +0 -0
  554. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/active_button_pointer.png +0 -0
  555. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +66 -0
  556. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/normal_button.png +0 -0
  557. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/normal_button_pointer.png +0 -0
  558. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_active_button.png +0 -0
  559. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_active_button_pointer.png +0 -0
  560. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_button.png +0 -0
  561. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/selected_button_pointer.png +0 -0
  562. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/active_button.png +0 -0
  563. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +34 -0
  564. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/normal_button.png +0 -0
  565. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_active_button.png +0 -0
  566. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_button.png +0 -0
  567. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/button.css +28 -0
  568. data/lib/frameworks/sproutcore/themes/ace/resources/button/button.js +69 -0
  569. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button.png +0 -0
  570. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button_capsule.png +0 -0
  571. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/active_button_pointer.png +0 -0
  572. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +84 -0
  573. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button.png +0 -0
  574. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button_capsule.png +0 -0
  575. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/normal_button_pointer.png +0 -0
  576. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button.png +0 -0
  577. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button_capsule.png +0 -0
  578. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button_pointer.png +0 -0
  579. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button.png +0 -0
  580. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button_capsule.png +0 -0
  581. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/selected_button_pointer.png +0 -0
  582. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/active_button.png +0 -0
  583. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/active_button_pointer.png +0 -0
  584. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +66 -0
  585. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/normal_button.png +0 -0
  586. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/normal_button_pointer.png +0 -0
  587. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_active_button.png +0 -0
  588. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_active_button_pointer.png +0 -0
  589. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_button.png +0 -0
  590. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/selected_button_pointer.png +0 -0
  591. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/button.css +17 -0
  592. data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/button.js +3 -0
  593. data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/active_select.png +0 -0
  594. data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/normal_select.png +0 -0
  595. data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/select.css +20 -0
  596. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox.css +40 -0
  597. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked.png +0 -0
  598. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked_active.png +0 -0
  599. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed.png +0 -0
  600. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed_active.png +0 -0
  601. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked.png +0 -0
  602. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked_active.png +0 -0
  603. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox.css +40 -0
  604. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked.png +0 -0
  605. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked_active.png +0 -0
  606. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed.png +0 -0
  607. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed_active.png +0 -0
  608. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked.png +0 -0
  609. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked_active.png +0 -0
  610. data/lib/frameworks/sproutcore/themes/ace/resources/checkbox/ace/checkbox.css +7 -0
  611. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +4 -0
  612. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +17 -0
  613. data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/selection.png +0 -0
  614. data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/source-list.js +3 -0
  615. data/lib/frameworks/sproutcore/themes/ace/resources/collection/source-list/source_list_view.css +36 -0
  616. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +24 -0
  617. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_closed.png +0 -0
  618. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_closed_active.png +0 -0
  619. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_open.png +0 -0
  620. data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure_open_active.png +0 -0
  621. data/lib/frameworks/sproutcore/themes/ace/resources/loading.css +50 -0
  622. data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +27 -0
  623. data/lib/frameworks/sproutcore/themes/ace/resources/menu/checkmark.png +0 -0
  624. data/lib/frameworks/sproutcore/themes/ace/resources/menu/checkmark_active.png +0 -0
  625. data/lib/frameworks/sproutcore/themes/ace/resources/menu/down.png +0 -0
  626. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.css +76 -0
  627. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu.png +0 -0
  628. data/lib/frameworks/sproutcore/themes/ace/resources/menu/menu_item.png +0 -0
  629. data/lib/frameworks/sproutcore/themes/ace/resources/menu/up.png +0 -0
  630. data/lib/frameworks/sproutcore/themes/ace/resources/pane/pane.css +3 -0
  631. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.css +13 -0
  632. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.js +20 -0
  633. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.png +0 -0
  634. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.js +0 -0
  635. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/picker.js +32 -0
  636. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +111 -0
  637. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.js +12 -0
  638. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.png +0 -0
  639. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_empty.png +0 -0
  640. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_notoolbar.png +0 -0
  641. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_pointers.png +0 -0
  642. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover_pointers_notoolbar.png +0 -0
  643. data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/workspace.js +28 -0
  644. data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress.css +27 -0
  645. data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_content.png +0 -0
  646. data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_track.png +0 -0
  647. data/lib/frameworks/sproutcore/themes/ace/resources/progress/progress.js +78 -0
  648. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio.css +63 -0
  649. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_active.png +0 -0
  650. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_mixed.png +0 -0
  651. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_mixed_active.png +0 -0
  652. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_selected.png +0 -0
  653. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_selected_active.png +0 -0
  654. data/lib/frameworks/sproutcore/themes/ace/resources/radio/radio_unselected.png +0 -0
  655. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal.css +78 -0
  656. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/horizontal_touch.css +91 -0
  657. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/thumb.png +0 -0
  658. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/track_and_arrows.png +0 -0
  659. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/horizontal/track_and_arrows_active.png +0 -0
  660. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/thumb.png +0 -0
  661. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/track_and_arrows.png +0 -0
  662. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/track_and_arrows_active.png +0 -0
  663. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical.css +80 -0
  664. data/lib/frameworks/sproutcore/themes/ace/resources/scroller/vertical/vertical_touch.css +92 -0
  665. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +91 -0
  666. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_active.png +0 -0
  667. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_normal.png +0 -0
  668. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_selected.png +0 -0
  669. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented_selected_active.png +0 -0
  670. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +91 -0
  671. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_active.png +0 -0
  672. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_normal.png +0 -0
  673. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_selected.png +0 -0
  674. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_selected_active.png +0 -0
  675. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +91 -0
  676. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_active.png +0 -0
  677. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_normal.png +0 -0
  678. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_selected.png +0 -0
  679. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_selected_active.png +0 -0
  680. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +95 -0
  681. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_active.png +0 -0
  682. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_normal.png +0 -0
  683. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_selected.png +0 -0
  684. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented_selected_active.png +0 -0
  685. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +79 -0
  686. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob.png +0 -0
  687. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/knob_active.png +0 -0
  688. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/14px/slider.css +27 -0
  689. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob.png +0 -0
  690. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/knob_active.png +0 -0
  691. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/16px/slider.css +27 -0
  692. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob.png +0 -0
  693. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/knob_active.png +0 -0
  694. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/slider.css +27 -0
  695. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/22px/track.png +0 -0
  696. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.css +3 -0
  697. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.js +48 -0
  698. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/track.png +0 -0
  699. data/lib/frameworks/sproutcore/themes/ace/resources/split/split.css +5 -0
  700. data/lib/frameworks/sproutcore/themes/ace/resources/tab/tab.css +3 -0
  701. data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.css +8 -0
  702. data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.png +0 -0
  703. data/lib/frameworks/sproutcore/themes/ace/resources/well/well.css +8 -0
  704. data/lib/frameworks/sproutcore/themes/ace/resources/well/well.js +19 -0
  705. data/lib/frameworks/sproutcore/themes/ace/theme.js +14 -0
  706. data/lib/frameworks/sproutcore/themes/empty_theme/theme.js +16 -0
  707. data/lib/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +16 -21
  708. data/lib/sproutcore.rb +9 -2
  709. data/lib/sproutcore/builders.rb +2 -1
  710. data/lib/sproutcore/builders/base.rb +7 -2
  711. data/lib/sproutcore/builders/combine.rb +49 -1
  712. data/lib/sproutcore/builders/html.rb +2 -0
  713. data/lib/sproutcore/builders/javascript.rb +1 -1
  714. data/lib/sproutcore/builders/minify.rb +12 -12
  715. data/lib/sproutcore/builders/module.rb +72 -0
  716. data/lib/sproutcore/builders/string_wrapper.rb +43 -0
  717. data/lib/sproutcore/helpers/entry_sorter.rb +5 -9
  718. data/lib/sproutcore/helpers/static_helper.rb +13 -9
  719. data/lib/sproutcore/models/manifest_entry.rb +2 -2
  720. data/lib/sproutcore/models/target.rb +25 -11
  721. data/lib/sproutcore/rack/dev.rb +3 -3
  722. data/lib/sproutcore/tools.rb +51 -2
  723. data/lib/sproutcore/tools/build.rb +35 -7
  724. data/lib/sproutcore/version.rb +1 -0
  725. data/spec/buildtasks/manifest/prepare_build_tasks/bundle_spec.rb +5 -5
  726. data/spec/fixtures/builder_tests/Buildfile +2 -2
  727. data/spec/lib/builders/bundle_spec.rb +8 -8
  728. data/spec/lib/builders/strings_spec.rb +1 -0
  729. data/sproutcore.gemspec +9 -2
  730. data/vendor/chance/.gitignore +5 -0
  731. data/vendor/chance/Gemfile +4 -0
  732. data/vendor/chance/Rakefile +2 -0
  733. data/vendor/chance/bin/chance +72 -0
  734. data/vendor/chance/chance.gemspec +28 -0
  735. data/vendor/chance/lib/chance.rb +139 -0
  736. data/vendor/chance/lib/chance/imager.rb +13 -0
  737. data/vendor/chance/lib/chance/imagers/data_url.rb +34 -0
  738. data/vendor/chance/lib/chance/importer.rb +64 -0
  739. data/vendor/chance/lib/chance/instance.rb +225 -0
  740. data/vendor/chance/lib/chance/parser.rb +831 -0
  741. data/vendor/chance/lib/chance/perf.rb +17 -0
  742. data/vendor/chance/lib/chance/sass_extensions.rb +24 -0
  743. data/vendor/chance/lib/chance/slicing.rb +104 -0
  744. data/vendor/chance/lib/chance/version.rb +3 -0
  745. data/vendor/chance/test/case/abc.png +0 -0
  746. data/vendor/chance/test/case/more/abc.png +0 -0
  747. data/vendor/chance/test/case/more/another.css +4 -0
  748. data/vendor/chance/test/case/test1.css +22 -0
  749. data/vendor/chance/test/case/test2.css +6 -0
  750. data/vendor/sproutcore/SCCompiler.jar +0 -0
  751. data/vendor/sproutcore/lib/args4j-2.0.12.jar +0 -0
  752. data/vendor/sproutcore/lib/htmlcompressor-0.9.3.jar +0 -0
  753. data/{lib/sproutcore/vendor/yui-compressor → vendor/sproutcore/lib}/yuicompressor-2.4.2.jar +0 -0
  754. data/vendor/sproutcore/src/SCCompiler/build.xml +74 -0
  755. data/vendor/sproutcore/src/SCCompiler/lib/args4j-2.0.12.jar +0 -0
  756. data/vendor/sproutcore/src/SCCompiler/lib/htmlcompressor-0.9.3.jar +0 -0
  757. data/{lib/sproutcore/vendor/yui-compressor/SCyuicompressor-2.4.2.jar → vendor/sproutcore/src/SCCompiler/lib/yuicompressor-2.4.2.jar} +0 -0
  758. data/vendor/sproutcore/src/SCCompiler/lib/yuicompressor-2.4.4.jar +0 -0
  759. data/vendor/sproutcore/src/SCCompiler/manifest.mf +3 -0
  760. data/vendor/sproutcore/src/SCCompiler/nbproject/build-impl.xml +894 -0
  761. data/vendor/sproutcore/src/SCCompiler/nbproject/genfiles.properties +8 -0
  762. data/vendor/sproutcore/src/SCCompiler/nbproject/private/config.properties +0 -0
  763. data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.properties +10 -0
  764. data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.xml +4 -0
  765. data/vendor/sproutcore/src/SCCompiler/nbproject/project.properties +90 -0
  766. data/vendor/sproutcore/src/SCCompiler/nbproject/project.xml +15 -0
  767. data/vendor/sproutcore/src/SCCompiler/src/com/sproutcore/Main.java +348 -0
  768. metadata +686 -177
  769. data/lib/frameworks/sproutcore/CHANGELOG +0 -93
  770. data/lib/frameworks/sproutcore/frameworks/datejs/core.js +0 -865
  771. data/lib/frameworks/sproutcore/frameworks/datejs/english.lproj/en-US.js +0 -186
  772. data/lib/frameworks/sproutcore/frameworks/datejs/extras.js +0 -332
  773. data/lib/frameworks/sproutcore/frameworks/datejs/license.js +0 -25
  774. data/lib/frameworks/sproutcore/frameworks/datejs/parser.js +0 -1116
  775. data/lib/frameworks/sproutcore/frameworks/datejs/spanish.lproj/es-CO.js +0 -186
  776. data/lib/frameworks/sproutcore/frameworks/datejs/sugarpak.js +0 -475
  777. data/lib/frameworks/sproutcore/frameworks/datejs/time.js +0 -269
  778. data/lib/frameworks/sproutcore/frameworks/datejs/validators/datejs.js +0 -34
  779. data/lib/frameworks/sproutcore/frameworks/foundation/protocols/inline_editor_delegate.js +0 -84
  780. data/lib/frameworks/sproutcore/frameworks/foundation/system/bundle.js +0 -337
  781. data/lib/frameworks/sproutcore/frameworks/foundation/system/ready.js +0 -197
  782. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils.js +0 -710
  783. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +0 -1334
  784. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_dimensions.js +0 -387
  785. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_selector.js +0 -405
  786. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/isArray.js +0 -25
  787. data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart.js +0 -336
  788. data/lib/frameworks/sproutcore/frameworks/statechart/tests/basic.js +0 -90
  789. data/lib/frameworks/sproutcore/frameworks/statechart/tests/history.js +0 -71
  790. data/lib/frameworks/sproutcore/frameworks/statechart/tests/nested.js +0 -59
  791. data/lib/frameworks/sproutcore/frameworks/statechart/tests/transient.js +0 -148
  792. data/lib/sproutcore/builders/bundle.rb +0 -63
@@ -56,6 +56,10 @@ SC.RootResponder = SC.Object.extend({
56
56
  init: function() {
57
57
  sc_super();
58
58
  this.panes = SC.Set.create();
59
+
60
+ if (SC.platform.supportsCSSTransitions) {
61
+ this[SC.platform.cssPrefix+'TransitionEnd'] = this.transitionEnd;
62
+ }
59
63
  },
60
64
 
61
65
  // .......................................................
@@ -422,20 +426,20 @@ SC.RootResponder = SC.Object.extend({
422
426
  @returns {Boolean} YES if action was performed, NO otherwise
423
427
  @test in targetForAction
424
428
  */
425
- sendAction: function( action, target, sender, pane, context) {
426
- target = this.targetForAction(action, target, sender, pane) ;
427
-
429
+ sendAction: function( action, target, sender, pane, context, firstResponder) {
430
+ target = this.targetForAction(action, target, sender, pane, firstResponder) ;
431
+
428
432
  // HACK: If the target is a ResponderContext, forward the action.
429
433
  if (target && target.isResponderContext) {
430
- return !!target.sendAction(action, sender, context);
434
+ return !!target.sendAction(action, sender, context, firstResponder);
431
435
  } else return target && target.tryToPerform(action, sender);
432
436
  },
433
437
 
434
- _responderFor: function(target, methodName) {
438
+ _responderFor: function(target, methodName, firstResponder) {
435
439
  var defaultResponder = target ? target.get('defaultResponder') : null;
436
-
440
+
437
441
  if (target) {
438
- target = target.get('firstResponder') || target;
442
+ target = firstResponder || target.get('firstResponder') || target;
439
443
  do {
440
444
  if (target.respondsTo(methodName)) return target ;
441
445
  } while ((target = target.get('nextResponder'))) ;
@@ -472,9 +476,10 @@ SC.RootResponder = SC.Object.extend({
472
476
  @param {String} method name for target
473
477
  @param {Object} sender optional sender
474
478
  @param {SC.Pane} optional pane
479
+ @param {firstResponder} a first responder to use
475
480
  @returns {Object} target object or null if none found
476
481
  */
477
- targetForAction: function(methodName, target, sender, pane) {
482
+ targetForAction: function(methodName, target, sender, pane, firstResponder) {
478
483
 
479
484
  // 1. no action, no target...
480
485
  if (!methodName || (SC.typeOf(methodName) !== SC.T_STRING)) {
@@ -501,7 +506,8 @@ SC.RootResponder = SC.Object.extend({
501
506
 
502
507
  // 3. an explicit pane was passed...
503
508
  if (pane) {
504
- return this._responderFor(pane, methodName) ;
509
+ target = this._responderFor(pane, methodName, firstResponder);
510
+ if (target) return target;
505
511
  }
506
512
 
507
513
  // 4. no target or pane passed... try to find target in the active panes
@@ -588,13 +594,14 @@ SC.RootResponder = SC.Object.extend({
588
594
  @param {Array} keyNames
589
595
  @param {Element} target
590
596
  @param {Object} receiver - optional if you don't want 'this'
597
+ @param {Boolean} useCapture
591
598
  @returns {SC.RootResponder} receiver
592
599
  */
593
- listenFor: function(keyNames, target, receiver) {
600
+ listenFor: function(keyNames, target, receiver, useCapture) {
594
601
  receiver = receiver ? receiver : this;
595
602
  keyNames.forEach( function(keyName) {
596
603
  var method = receiver[keyName] ;
597
- if (method) SC.Event.add(target, keyName, receiver, method) ;
604
+ if (method) SC.Event.add(target, keyName, receiver, method, null, useCapture) ;
598
605
  },this) ;
599
606
  target = null ;
600
607
  return receiver ;
@@ -620,7 +627,12 @@ SC.RootResponder = SC.Object.extend({
620
627
 
621
628
  // handle animation events
622
629
  this.listenFor('webkitAnimationStart webkitAnimationIteration webkitAnimationEnd'.w(), document);
623
-
630
+
631
+ // CSS Transitions
632
+ if (SC.platform.supportsCSSTransitions) {
633
+ this.listenFor(['transitionEnd', SC.platform.cssPrefix+'TransitionEnd'], document);
634
+ }
635
+
624
636
  // handle special case for keypress- you can't use normal listener to block the backspace key on Mozilla
625
637
  if (this.keypress) {
626
638
  if (SC.CAPTURE_BACKSPACE_KEY && SC.browser.mozilla) {
@@ -771,7 +783,7 @@ SC.RootResponder = SC.Object.extend({
771
783
  }
772
784
  }
773
785
  },
774
-
786
+
775
787
  // ................................................................................
776
788
  // TOUCH SUPPORT
777
789
  //
@@ -802,7 +814,7 @@ SC.RootResponder = SC.Object.extend({
802
814
  _touches: {},
803
815
 
804
816
  /**
805
- Returns the touches that are registered to the specified view; undefined if none.
817
+ Returns the touches that are registered to the specified view or responder; undefined if none.
806
818
 
807
819
  When views receive a touch event, they have the option to subscribe to it.
808
820
  They are then mapped to touch events and vice-versa. This returns touches mapped to the view.
@@ -820,53 +832,70 @@ SC.RootResponder = SC.Object.extend({
820
832
  This is useful for implementing scaling.
821
833
  */
822
834
  averagedTouchesForView: function(view, added) {
823
- var t = this.touchesForView(view);
824
- if ((!t || t.length === 0) && !added) return {x: 0, y: 0, d: 0, touchCount: 0};
835
+ var t = this.touchesForView(view),
836
+
837
+ // cache per view to avoid gc
838
+ averaged = view._scrr_averagedTouches || (view._scrr_averagedTouches = {});
839
+
840
+ if ((!t || t.length === 0) && !added) {
841
+ averaged.x = 0;
842
+ averaged.y = 0;
843
+ averaged.d = 0;
844
+ averaged.touchCount = 0;
845
+
846
+ } else {
847
+ // make array of touches using cached array
848
+ var touches = this._averagedTouches_touches || (this._averagedTouches_touches = []);
849
+ touches.length = 0;
850
+
851
+ // copy touches into array
852
+ if (t) {
853
+ var i, len = t.length;
854
+ for(i = 0; i < len; i++) {
855
+ touches.push(t[i]);
856
+ }
857
+ }
825
858
 
826
- // make array of touches
827
- var touches;
828
- if (t) touches = t.toArray();
829
- else touches = [];
859
+ // add added if needed
860
+ if (added) touches.push(added);
830
861
 
831
- // add added if needed
832
- if (added) touches.push(added);
862
+ // prepare variables for looping
863
+ var idx, touch,
864
+ ax = 0, ay = 0, dx, dy, ad = 0;
865
+ len = touches.length;
833
866
 
834
- // prepare variables for looping
835
- var idx, len = touches.length, touch,
836
- ax = 0, ay = 0, dx, dy, ad = 0;
867
+ // first, add
868
+ for (idx = 0; idx < len; idx++) {
869
+ touch = touches[idx];
870
+ ax += touch.pageX; ay += touch.pageY;
871
+ }
837
872
 
838
- // first, add
839
- for (idx = 0; idx < len; idx++) {
840
- touch = touches[idx];
841
- ax += touch.pageX; ay += touch.pageY;
842
- }
873
+ // now, average
874
+ ax /= len;
875
+ ay /= len;
843
876
 
844
- // now, average
845
- ax /= len;
846
- ay /= len;
877
+ // distance
878
+ for (idx = 0; idx < len; idx++) {
879
+ touch = touches[idx];
847
880
 
848
- // distance
849
- for (idx = 0; idx < len; idx++) {
850
- touch = touches[idx];
881
+ // get distance from average
882
+ dx = Math.abs(touch.pageX - ax);
883
+ dy = Math.abs(touch.pageY - ay);
851
884
 
852
- // get distance from average
853
- dx = Math.abs(touch.pageX - ax);
854
- dy = Math.abs(touch.pageY - ay);
885
+ // Pythagoras was clever...
886
+ ad += Math.pow(dx * dx + dy * dy, 0.5);
887
+ }
855
888
 
856
- // Pythagoras was clever...
857
- ad += Math.pow(dx * dx + dy * dy, 0.5);
889
+ // average
890
+ ad /= len;
891
+
892
+ averaged.x = ax;
893
+ averaged.y = ay;
894
+ averaged.d = ad;
895
+ averaged.touchCount = len;
858
896
  }
859
-
860
- // average
861
- ad /= len;
862
-
863
- // return
864
- return {
865
- x: ax,
866
- y: ay,
867
- d: ad,
868
- touchCount: len
869
- };
897
+
898
+ return averaged;
870
899
  },
871
900
 
872
901
  assignTouch: function(touch, view) {
@@ -919,6 +948,14 @@ SC.RootResponder = SC.Object.extend({
919
948
  touch.view = undefined;
920
949
  },
921
950
 
951
+ _flushQueuedTouchResponder: function(){
952
+ if (this._queuedTouchResponder) {
953
+ var queued = this._queuedTouchResponder;
954
+ this._queuedTouchResponder = null;
955
+ this.makeTouchResponder.apply(this, queued);
956
+ }
957
+ },
958
+
922
959
  /**
923
960
  The touch responder for any given touch is the view which will receive touch events
924
961
  for that touch. Quite simple.
@@ -958,13 +995,27 @@ SC.RootResponder = SC.Object.extend({
958
995
  events on the views. The event object is passed so that functions such as stopPropagation may be called.
959
996
  */
960
997
  makeTouchResponder: function(touch, responder, shouldStack, upViewChain) {
998
+
999
+ // In certain cases (SC.Gesture being one), we have to call makeTouchResponder
1000
+ // from inside makeTouchResponder so we queue it up here.
1001
+ if (this._isMakingTouchResponder) {
1002
+ this._queuedTouchResponder = [touch, responder, shouldStack, upViewChain];
1003
+ return;
1004
+ }
1005
+ this._isMakingTouchResponder = YES;
1006
+
1007
+
961
1008
  var stack = touch.touchResponders, touchesForView;
962
1009
 
963
1010
  // find the actual responder (if any, I suppose)
964
1011
  // note that the pane's sendEvent function is slightly clever:
965
1012
  // if the target is already touch responder, it will just return it without calling touchStart
966
1013
  // we must do the same.
967
- if (touch.touchResponder === responder) return;
1014
+ if (touch.touchResponder === responder) {
1015
+ this._isMakingTouchResponder = NO;
1016
+ this._flushQueuedTouchResponder();
1017
+ return;
1018
+ }
968
1019
 
969
1020
  // send touchStart
970
1021
  // get the target pane
@@ -1041,6 +1092,11 @@ SC.RootResponder = SC.Object.extend({
1041
1092
  touch.nextTouchResponder = stack[stack.length - 2];
1042
1093
  }
1043
1094
  }
1095
+
1096
+
1097
+ this._isMakingTouchResponder = NO;
1098
+ this._flushQueuedTouchResponder();
1099
+
1044
1100
  },
1045
1101
 
1046
1102
  /**
@@ -1296,6 +1352,10 @@ SC.RootResponder = SC.Object.extend({
1296
1352
  // update touch
1297
1353
  touchEntry.pageX = touch.pageX;
1298
1354
  touchEntry.pageY = touch.pageY;
1355
+ touchEntry.clientX = touch.clientX;
1356
+ touchEntry.clientY = touch.clientY;
1357
+ touchEntry.screenX = touch.screenX;
1358
+ touchEntry.screenY = touch.screenY;
1299
1359
  touchEntry.timeStamp = evt.timeStamp;
1300
1360
  touchEntry.event = evt;
1301
1361
 
@@ -1332,6 +1392,10 @@ SC.RootResponder = SC.Object.extend({
1332
1392
  firstTouch = viewTouches.firstObject();
1333
1393
  evt.pageX = firstTouch.pageX;
1334
1394
  evt.pageY = firstTouch.pageY;
1395
+ evt.clientX = firstTouch.clientX;
1396
+ evt.clientY = firstTouch.clientY;
1397
+ evt.screenX = firstTouch.screenX;
1398
+ evt.screenY = firstTouch.screenY;
1335
1399
  evt.touchContext = this; // so it can call touchesForView
1336
1400
 
1337
1401
  // and go
@@ -1374,6 +1438,10 @@ SC.RootResponder = SC.Object.extend({
1374
1438
  touchEntry.timeStamp = evt.timeStamp;
1375
1439
  touchEntry.pageX = touch.pageX;
1376
1440
  touchEntry.pageY = touch.pageY;
1441
+ touchEntry.clientX = touch.clientX;
1442
+ touchEntry.clientY = touch.clientY;
1443
+ touchEntry.screenX = touch.screenX;
1444
+ touchEntry.screenY = touch.screenY;
1377
1445
  touchEntry.type = 'touchend';
1378
1446
  touchEntry.event = evt;
1379
1447
 
@@ -1411,7 +1479,7 @@ SC.RootResponder = SC.Object.extend({
1411
1479
  evt.isCancel = YES;
1412
1480
  this.touchend(evt);
1413
1481
  },
1414
-
1482
+
1415
1483
  // ..........................................................
1416
1484
  // KEYBOARD HANDLING
1417
1485
  //
@@ -1508,9 +1576,10 @@ SC.RootResponder = SC.Object.extend({
1508
1576
  */
1509
1577
  keydown: function(evt) {
1510
1578
  if (SC.none(evt)) return YES;
1511
-
1512
1579
  var keyCode = evt.keyCode;
1513
-
1580
+ if(SC.browser.mozilla && evt.keyCode===9){
1581
+ this.keydownCounter=1;
1582
+ }
1514
1583
  // Fix for IME input (japanese, mandarin).
1515
1584
  // If the KeyCode is 229 wait for the keyup and
1516
1585
  // trigger a keyDown if it is is enter onKeyup.
@@ -1580,6 +1649,10 @@ SC.RootResponder = SC.Object.extend({
1580
1649
  keyCode = evt.keyCode,
1581
1650
  isFirefox = !!SC.browser.mozilla;
1582
1651
 
1652
+ if(SC.browser.mozilla && evt.keyCode===9){
1653
+ this.keydownCounter++;
1654
+ if(this.keydownCounter==2) return YES;
1655
+ }
1583
1656
  // delete is handled in keydown() for most browsers
1584
1657
  if (isFirefox && (evt.which === 8)) {
1585
1658
  //get the keycode and set it for which.
@@ -1592,7 +1665,7 @@ SC.RootResponder = SC.Object.extend({
1592
1665
  } else {
1593
1666
  var isFirefoxArrowKeys = (keyCode >= 37 && keyCode <= 40 && isFirefox),
1594
1667
  charCode = evt.charCode;
1595
- if ((charCode !== undefined && charCode === 0) && !isFirefoxArrowKeys) return YES;
1668
+ if ((charCode !== undefined && charCode === 0 && evt.keyCode!==9) && !isFirefoxArrowKeys) return YES;
1596
1669
  if (isFirefoxArrowKeys) evt.which = keyCode;
1597
1670
  return this.sendEvent('keyDown', evt) ? evt.hasCustomEventHandling:YES;
1598
1671
  }
@@ -1649,10 +1722,10 @@ SC.RootResponder = SC.Object.extend({
1649
1722
  if(!SC.browser.msie) window.focus();
1650
1723
 
1651
1724
  // First, save the click count. The click count resets if the mouse down
1652
- // event occurs more than 200 ms later than the mouse up event or more
1725
+ // event occurs more than 250 ms later than the mouse up event or more
1653
1726
  // than 8 pixels away from the mouse down event.
1654
1727
  this._clickCount += 1 ;
1655
- if (!this._lastMouseUpAt || ((Date.now()-this._lastMouseUpAt) > 200)) {
1728
+ if (!this._lastMouseUpAt || ((Date.now()-this._lastMouseUpAt) > 250)) {
1656
1729
  this._clickCount = 1 ;
1657
1730
  } else {
1658
1731
  var deltaX = this._lastMouseDownX - evt.clientX,
@@ -1707,7 +1780,6 @@ SC.RootResponder = SC.Object.extend({
1707
1780
 
1708
1781
  var handler = null, view = this._mouseDownView,
1709
1782
  targetView = this.targetViewForEvent(evt);
1710
- this._lastMouseUpAt = Date.now() ;
1711
1783
 
1712
1784
  // record click count.
1713
1785
  evt.clickCount = this._clickCount ;
@@ -1744,6 +1816,10 @@ SC.RootResponder = SC.Object.extend({
1744
1816
 
1745
1817
  // cleanup
1746
1818
  this._mouseCanDrag = NO; this._mouseDownView = null ;
1819
+
1820
+ // Save timestamp of mouseup at last possible moment.
1821
+ // (This is used to calculate double click events)
1822
+ this._lastMouseUpAt = Date.now() ;
1747
1823
 
1748
1824
  return (handler) ? evt.hasCustomEventHandling : YES ;
1749
1825
  },
@@ -1921,6 +1997,18 @@ SC.RootResponder = SC.Object.extend({
1921
1997
  throw e;
1922
1998
  }
1923
1999
 
2000
+ return view ? evt.hasCustomEventHandling : YES;
2001
+ },
2002
+
2003
+ transitionEnd: function(evt){
2004
+ try {
2005
+ var view = this.targetViewForEvent(evt) ;
2006
+ this.sendEvent('transitionDidEnd', evt, view) ;
2007
+ } catch (e) {
2008
+ console.warn('Exception during transitionDidEnd: %@'.fmt(e)) ;
2009
+ throw e;
2010
+ }
2011
+
1924
2012
  return view ? evt.hasCustomEventHandling : YES;
1925
2013
  }
1926
2014
 
@@ -1964,6 +2052,10 @@ SC.Touch = function(touch, touchContext) {
1964
2052
 
1965
2053
  this.startX = this.pageX = touch.pageX;
1966
2054
  this.startY = this.pageY = touch.pageY;
2055
+ this.clientX = touch.clientX;
2056
+ this.clientY = touch.clientY;
2057
+ this.screenX = touch.screenX;
2058
+ this.screenY = touch.screenY;
1967
2059
  };
1968
2060
 
1969
2061
  SC.Touch.prototype = {
@@ -5,36 +5,31 @@
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
7
 
8
- sc_require('system/object');
9
- sc_require('mixins/enumerable');
10
- sc_require('mixins/copyable');
11
- sc_require('mixins/freezable');
12
-
13
8
  /** @class
14
9
 
15
- A SelectionSet contains a set of objects that represent the current
10
+ A SelectionSet contains a set of objects that represent the current
16
11
  selection. You can select objects by either adding them to the set directly
17
12
  or indirectly by selecting a range of indexes on a source object.
18
-
13
+
19
14
  @extends SC.Object
20
15
  @extends SC.Enumerable
21
16
  @extends SC.Freezable
22
17
  @extends SC.Copyable
23
18
  @since SproutCore 1.0
24
19
  */
25
- SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
20
+ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
26
21
  /** @scope SC.SelectionSet.prototype */ {
27
-
22
+
28
23
  /**
29
24
  Walk like a duck.
30
-
25
+
31
26
  @property {Boolean}
32
27
  */
33
28
  isSelectionSet: YES,
34
-
29
+
35
30
  /**
36
31
  Total number of indexes in the selection set
37
-
32
+
38
33
  @property {Number}
39
34
  */
40
35
  length: function() {
@@ -48,12 +43,12 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
48
43
 
49
44
  // ..........................................................
50
45
  // INDEX-BASED SELECTION
51
- //
46
+ //
52
47
 
53
48
  /**
54
- A set of all the source objects used in the selection set. This
49
+ A set of all the source objects used in the selection set. This
55
50
  property changes automatically as you add or remove index sets.
56
-
51
+
57
52
  @property {SC.Array}
58
53
  */
59
54
  sources: function() {
@@ -61,24 +56,24 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
61
56
  sets = this._sets,
62
57
  len = sets ? sets.length : 0,
63
58
  idx, set, source;
64
-
59
+
65
60
  for(idx=0;idx<len;idx++) {
66
61
  set = sets[idx];
67
62
  if (set && set.get('length')>0 && set.source) ret.push(set.source);
68
63
  }
69
64
  return ret ;
70
65
  }.property().cacheable(),
71
-
66
+
72
67
  /**
73
68
  Returns the index set for the passed source object or null if no items are
74
69
  seleted in the source.
75
-
70
+
76
71
  @param {SC.Array} source the source object
77
72
  @returns {SC.IndexSet} index set or null
78
73
  */
79
74
  indexSetForSource: function(source) {
80
75
  if (!source || !source.isSCArray) return null; // nothing to do
81
-
76
+
82
77
  var cache = this._indexSetCache,
83
78
  objects = this._objects,
84
79
  ret, idx;
@@ -94,7 +89,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
94
89
  if (!ret) {
95
90
  ret = this._indexSetForSource(source, NO);
96
91
  if (ret && ret.get('length')===0) ret = null;
97
-
92
+
98
93
  if (objects) {
99
94
  if (ret) ret = ret.copy();
100
95
  objects.forEach(function(o) {
@@ -104,19 +99,19 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
104
99
  }
105
100
  }, this);
106
101
  }
107
-
102
+
108
103
  if (ret) {
109
104
  ret = cache[SC.guidFor(source)] = ret.frozenCopy();
110
105
  ret._sourceRevision = source.propertyRevision;
111
106
  }
112
107
  }
113
-
108
+
114
109
  return ret;
115
110
  },
116
-
117
- /**
111
+
112
+ /**
118
113
  @private
119
-
114
+
120
115
  Internal method gets the index set for the source, ignoring objects
121
116
  that have been added directly.
122
117
  */
@@ -128,7 +123,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
128
123
  sets = this._sets,
129
124
  len = sets ? sets.length : 0,
130
125
  ret = null;
131
-
126
+
132
127
  if (index >= len) index = null;
133
128
  if (SC.none(index)) {
134
129
  if (canCreate && !this.isFrozen) {
@@ -139,34 +134,34 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
139
134
  this[guid] = len;
140
135
  this.propertyDidChange('sources');
141
136
  }
142
-
137
+
143
138
  } else ret = sets ? sets[index] : null;
144
139
  return ret ;
145
140
  },
146
-
141
+
147
142
  /**
148
143
  Add the passed index, range of indexSet belonging to the passed source
149
144
  object to the selection set.
150
-
145
+
151
146
  The first parameter you pass must be the source array you are selecting
152
- from. The following parameters may be one of a start/length pair, a
147
+ from. The following parameters may be one of a start/length pair, a
153
148
  single index, a range object or an IndexSet. If some or all of the range
154
149
  you are selecting is already in the set, it will not be selected again.
155
-
150
+
156
151
  You can also pass an SC.SelectionSet to this method and all the selected
157
152
  sets will be added from their instead.
158
-
153
+
159
154
  @param {SC.Array} source source object or object to add.
160
155
  @param {Number} start index, start of range, range or IndexSet
161
156
  @param {Number} length length if passing start/length pair.
162
157
  @returns {SC.SelectionSet} receiver
163
158
  */
164
159
  add: function(source, start, length) {
165
-
160
+
166
161
  if (this.isFrozen) throw SC.FROZEN_ERROR ;
167
162
 
168
163
  var sets, len, idx, set, oldlen, newlen, setlen, objects;
169
-
164
+
170
165
  // normalize
171
166
  if (start === undefined && length === undefined) {
172
167
  if (!source) throw "Must pass params to SC.SelectionSet.add()";
@@ -184,7 +179,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
184
179
  if (objects) this.addObjects(objects);
185
180
  this.endPropertyChanges();
186
181
  return this ;
187
-
182
+
188
183
  }
189
184
  }
190
185
 
@@ -192,7 +187,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
192
187
  oldlen = this.get('length');
193
188
  setlen = set.get('length');
194
189
  newlen = oldlen - setlen;
195
-
190
+
196
191
  set.add(start, length);
197
192
 
198
193
  this._indexSetCache = null;
@@ -210,23 +205,23 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
210
205
  /**
211
206
  Removes the passed index, range of indexSet belonging to the passed source
212
207
  object from the selection set.
213
-
208
+
214
209
  The first parameter you pass must be the source array you are selecting
215
- from. The following parameters may be one of a start/length pair, a
210
+ from. The following parameters may be one of a start/length pair, a
216
211
  single index, a range object or an IndexSet. If some or all of the range
217
212
  you are selecting is already in the set, it will not be selected again.
218
-
213
+
219
214
  @param {SC.Array} source source object. must not be null
220
215
  @param {Number} start index, start of range, range or IndexSet
221
216
  @param {Number} length length if passing start/length pair.
222
217
  @returns {SC.SelectionSet} receiver
223
218
  */
224
219
  remove: function(source, start, length) {
225
-
220
+
226
221
  if (this.isFrozen) throw SC.FROZEN_ERROR ;
227
-
222
+
228
223
  var sets, len, idx, set, oldlen, newlen, setlen, objects;
229
-
224
+
230
225
  // normalize
231
226
  if (start === undefined && length === undefined) {
232
227
  if (!source) throw "Must pass params to SC.SelectionSet.remove()";
@@ -235,7 +230,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
235
230
  sets = source._sets;
236
231
  objects = source._objects;
237
232
  len = sets ? sets.length : 0;
238
-
233
+
239
234
  this.beginPropertyChanges();
240
235
  for(idx=0;idx<len;idx++) {
241
236
  set = sets[idx];
@@ -246,22 +241,22 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
246
241
  return this ;
247
242
  }
248
243
  }
249
-
244
+
250
245
  // save starter info
251
246
  set = this._indexSetForSource(source, YES);
252
247
  oldlen = this.get('length');
253
248
  newlen = oldlen - set.get('length');
254
249
 
255
- // if we have objects selected, determine if they are in the index
250
+ // if we have objects selected, determine if they are in the index
256
251
  // set and remove them as well.
257
252
  if (set && (objects = this._objects)) {
258
-
253
+
259
254
  // convert start/length to index set so the iterator below will work...
260
255
  if (length !== undefined) {
261
256
  start = SC.IndexSet.create(start, length);
262
257
  length = undefined;
263
258
  }
264
-
259
+
265
260
  objects.forEach(function(object) {
266
261
  idx = source.indexOf(object);
267
262
  if (start.contains(idx)) {
@@ -270,7 +265,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
270
265
  }
271
266
  }, this);
272
267
  }
273
-
268
+
274
269
  // remove indexes from source index set
275
270
  set.remove(start, length);
276
271
  setlen = set.get('length');
@@ -287,10 +282,10 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
287
282
  return this ;
288
283
  },
289
284
 
290
-
285
+
291
286
  /**
292
287
  Returns YES if the selection contains the named index, range of indexes.
293
-
288
+
294
289
  @param {Object} source source object for range
295
290
  @param {Number} start index, start of range, range object, or indexSet
296
291
  @param {Number} length optional range length
@@ -300,7 +295,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
300
295
  if (start === undefined && length === undefined) {
301
296
  return this.containsObject(source);
302
297
  }
303
-
298
+
304
299
  var set = this.indexSetForSource(source);
305
300
  if (!set) return NO ;
306
301
  return set.contains(start, length);
@@ -309,7 +304,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
309
304
  /**
310
305
  Returns YES if the index set contains any of the passed indexes. You
311
306
  can pass a single index, a range or an index set.
312
-
307
+
313
308
  @param {Object} source source object for range
314
309
  @param {Number} start index, range, or IndexSet
315
310
  @param {Number} length optional range length
@@ -320,37 +315,37 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
320
315
  if (!set) return NO ;
321
316
  return set.intersects(start, length);
322
317
  },
323
-
324
-
318
+
319
+
325
320
  // ..........................................................
326
321
  // OBJECT-BASED API
327
- //
322
+ //
328
323
 
329
324
  _TMP_ARY: [],
330
-
325
+
331
326
  /**
332
- Adds the object to the selection set. Unlike adding an index set, the
333
- selection will actually track the object independent of its location in
327
+ Adds the object to the selection set. Unlike adding an index set, the
328
+ selection will actually track the object independent of its location in
334
329
  the array.
335
-
336
- @param {Object} object
330
+
331
+ @param {Object} object
337
332
  @returns {SC.SelectionSet} receiver
338
333
  */
339
- addObject: function(object) {
334
+ addObject: function(object) {
340
335
  var ary = this._TMP_ARY, ret;
341
336
  ary[0] = object;
342
-
337
+
343
338
  ret = this.addObjects(ary);
344
339
  ary.length = 0;
345
-
340
+
346
341
  return ret;
347
342
  },
348
-
343
+
349
344
  /**
350
345
  Adds objects in the passed enumerable to the selection set. Unlike adding
351
346
  an index set, the seleciton will actually track the object independent of
352
347
  its location the array.
353
-
348
+
354
349
  @param {SC.Enumerable} objects
355
350
  @returns {SC.SelectionSet} receiver
356
351
  */
@@ -362,7 +357,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
362
357
 
363
358
  cur.addEach(objects);
364
359
  newlen = cur.get('length');
365
-
360
+
366
361
  this._indexSetCache = null;
367
362
  if (newlen !== oldlen) {
368
363
  this.propertyDidChange('length');
@@ -373,41 +368,41 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
373
368
 
374
369
  /**
375
370
  Removes the object from the selection set. Note that if the selection
376
- set also selects a range of indexes that includes this object, it may
371
+ set also selects a range of indexes that includes this object, it may
377
372
  still be in the selection set.
378
-
379
- @param {Object} object
373
+
374
+ @param {Object} object
380
375
  @returns {SC.SelectionSet} receiver
381
376
  */
382
- removeObject: function(object) {
377
+ removeObject: function(object) {
383
378
  var ary = this._TMP_ARY, ret;
384
379
  ary[0] = object;
385
-
380
+
386
381
  ret = this.removeObjects(ary);
387
382
  ary.length = 0;
388
-
383
+
389
384
  return ret;
390
385
  },
391
-
386
+
392
387
  /**
393
388
  Removes the objects from the selection set. Note that if the selection
394
- set also selects a range of indexes that includes this object, it may
389
+ set also selects a range of indexes that includes this object, it may
395
390
  still be in the selection set.
396
-
397
- @param {Object} object
391
+
392
+ @param {Object} object
398
393
  @returns {SC.SelectionSet} receiver
399
394
  */
400
395
  removeObjects: function(objects) {
401
396
  var cur = this._objects,
402
397
  oldlen, newlen, sets;
403
-
398
+
404
399
  if (!cur) return this;
405
400
 
406
401
  oldlen = cur.get('length');
407
402
 
408
403
  cur.removeEach(objects);
409
404
  newlen = cur.get('length');
410
-
405
+
411
406
  // also remove from index sets, if present
412
407
  if (sets = this._sets) {
413
408
  sets.forEach(function(set) {
@@ -416,7 +411,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
416
411
  newlen += set.get('length');
417
412
  }, this);
418
413
  }
419
-
414
+
420
415
  this._indexSetCache = null;
421
416
  if (newlen !== oldlen) {
422
417
  this.propertyDidChange('length');
@@ -428,7 +423,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
428
423
  /**
429
424
  Returns YES if the selection contains the passed object. This will search
430
425
  selected ranges in all source objects.
431
-
426
+
432
427
  @param {Object} object the object to search for
433
428
  @returns {Boolean}
434
429
  */
@@ -436,7 +431,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
436
431
  // fast path
437
432
  var objects = this._objects ;
438
433
  if (objects && objects.contains(object)) return YES ;
439
-
434
+
440
435
  var sets = this._sets,
441
436
  len = sets ? sets.length : 0,
442
437
  idx, set;
@@ -444,70 +439,70 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
444
439
  set = sets[idx];
445
440
  if (set && set.indexOf(object)>=0) return YES;
446
441
  }
447
-
442
+
448
443
  return NO ;
449
444
  },
450
-
451
-
445
+
446
+
452
447
  // ..........................................................
453
448
  // GENERIC HELPER METHODS
454
- //
455
-
449
+ //
450
+
456
451
  /**
457
452
  Constrains the selection set to only objects found in the passed source
458
- object. This will remove any indexes selected in other sources, any
453
+ object. This will remove any indexes selected in other sources, any
459
454
  indexes beyond the length of the content, and any objects not found in the
460
455
  set.
461
-
456
+
462
457
  @param {Object} source the source to limit
463
458
  @returns {SC.SelectionSet} receiver
464
459
  */
465
460
  constrain: function(source) {
466
461
  var set, len, max, objects;
467
-
462
+
468
463
  this.beginPropertyChanges();
469
-
464
+
470
465
  // remove sources other than this one
471
466
  this.get('sources').forEach(function(cur) {
472
467
  if (cur === source) return; //skip
473
468
  var set = this._indexSetForSource(source, NO);
474
469
  if (set) this.remove(source, set);
475
- },this);
476
-
470
+ },this);
471
+
477
472
  // remove indexes beyond end of source length
478
473
  set = this._indexSetForSource(source, NO);
479
474
  if (set && ((max=set.get('max'))>(len=source.get('length')))) {
480
475
  this.remove(source, len, max-len);
481
476
  }
482
-
477
+
483
478
  // remove objects not in source
484
479
  if (objects = this._objects) {
485
480
  objects.forEach(function(cur) {
486
481
  if (source.indexOf(cur)<0) this.removeObject(cur);
487
482
  },this);
488
483
  }
489
-
484
+
490
485
  this.endPropertyChanges();
491
486
  return this ;
492
487
  },
493
-
488
+
494
489
  /**
495
- Returns YES if the passed index set or selection set contains the exact
496
- same source objects and indexes as the receiver. If you pass any object
490
+ Returns YES if the passed index set or selection set contains the exact
491
+ same source objects and indexes as the receiver. If you pass any object
497
492
  other than an IndexSet or SelectionSet, returns NO.
498
-
493
+
499
494
  @param {Object} obj another object.
500
495
  @returns {Boolean}
501
496
  */
502
497
  isEqual: function(obj) {
503
498
  var left, right, idx, len, sources, source;
504
-
499
+
505
500
  // fast paths
506
501
  if (!obj || !obj.isSelectionSet) return NO ;
507
502
  if (obj === this) return YES;
508
503
  if ((this._sets === obj._sets) && (this._objects === obj._objects)) return YES;
509
504
  if (this.get('length') !== obj.get('length')) return NO;
510
-
505
+
511
506
  // check objects
512
507
  left = this._objects;
513
508
  right = obj._objects;
@@ -528,31 +523,31 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
528
523
  if (!!right !== !!left) return NO ;
529
524
  if (left && !left.isEqual(right)) return NO ;
530
525
  }
531
-
526
+
532
527
  return YES ;
533
528
  },
534
529
 
535
530
  /**
536
531
  Clears the set. Removes all IndexSets from the object
537
-
532
+
538
533
  @returns {SC.SelectionSet}
539
534
  */
540
535
  clear: function() {
541
536
  if (this.isFrozen) throw SC.FROZEN_ERROR;
542
537
  if (this._sets) this._sets.length = 0 ; // truncate
543
538
  if (this._objects) this._objects = null;
544
-
539
+
545
540
  this._indexSetCache = null;
546
541
  this.propertyDidChange('length');
547
542
  this.enumerableContentDidChange();
548
543
  this.notifyPropertyChange('sources');
549
-
544
+
550
545
  return this ;
551
546
  },
552
-
547
+
553
548
  /**
554
- Clones the set into a new set.
555
-
549
+ Clones the set into a new set.
550
+
556
551
  @returns {SC.SelectionSet}
557
552
  */
558
553
  copy: function() {
@@ -560,7 +555,7 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
560
555
  sets = this._sets,
561
556
  len = sets ? sets.length : 0 ,
562
557
  idx, set;
563
-
558
+
564
559
  if (sets && len>0) {
565
560
  sets = ret._sets = sets.slice();
566
561
  for(idx=0;idx<len;idx++) {
@@ -569,14 +564,14 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
569
564
  ret[SC.guidFor(set.source)] = idx;
570
565
  }
571
566
  }
572
-
567
+
573
568
  if (this._objects) ret._objects = this._objects.copy();
574
569
  return ret ;
575
570
  },
576
-
571
+
577
572
  /**
578
- @private
579
-
573
+ @private
574
+
580
575
  Freezing a SelectionSet also freezes its internal sets.
581
576
  */
582
577
  freeze: function() {
@@ -584,34 +579,34 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
584
579
  var sets = this._sets,
585
580
  loc = sets ? sets.length : 0,
586
581
  set ;
587
-
582
+
588
583
  while(--loc >= 0) {
589
584
  if (set = sets[loc]) set.freeze();
590
585
  }
591
-
586
+
592
587
  if (this._objects) this._objects.freeze();
593
588
  return sc_super();
594
589
  },
595
-
590
+
596
591
  // ..........................................................
597
592
  // ITERATORS
598
- //
599
-
593
+ //
594
+
600
595
  /** @private */
601
596
  toString: function() {
602
597
  var sets = this._sets || [];
603
- sets = sets.map(function(set) {
604
- return set.toString().replace("SC.IndexSet", SC.guidFor(set.source));
598
+ sets = sets.map(function(set) {
599
+ return set.toString().replace("SC.IndexSet", SC.guidFor(set.source));
605
600
  }, this);
606
601
  if (this._objects) sets.push(this._objects.toString());
607
- return "SC.SelectionSet:%@<%@>".fmt(SC.guidFor(this), sets.join(','));
602
+ return "SC.SelectionSet:%@<%@>".fmt(SC.guidFor(this), sets.join(','));
608
603
  },
609
-
604
+
610
605
  /** @private */
611
606
  firstObject: function() {
612
607
  var sets = this._sets,
613
608
  objects = this._objects;
614
-
609
+
615
610
  // if we have sets, get the first one
616
611
  if (sets && sets.get('length')>0) {
617
612
  var set = sets ? sets[0] : null,
@@ -619,22 +614,22 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
619
614
  idx = set ? set.firstObject() : -1;
620
615
  if (src && idx>=0) return src.objectAt(idx);
621
616
  }
622
-
617
+
623
618
  // otherwise if we have objects, get the first one
624
619
  return objects ? objects.firstObject() : undefined;
625
-
620
+
626
621
  }.property(),
627
-
622
+
628
623
  /** @private
629
- Implement primitive enumerable support. Returns each object in the
624
+ Implement primitive enumerable support. Returns each object in the
630
625
  selection.
631
626
  */
632
- nextObject: function(count, lastObject, context) {
627
+ nextObject: function(count, lastObject, context) {
633
628
  var objects, ret;
634
-
629
+
635
630
  // TODO: Make this more efficient. Right now it collects all objects
636
- // first.
637
-
631
+ // first.
632
+
638
633
  if (count === 0) {
639
634
  objects = context.objects = [];
640
635
  this.forEach(function(o) { objects.push(o); }, this);
@@ -643,28 +638,28 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
643
638
 
644
639
  objects = context.objects ;
645
640
  ret = objects[count];
646
-
641
+
647
642
  if (count+1 >= context.max) {
648
643
  context.objects = context.max = null;
649
644
  }
650
-
645
+
651
646
  return ret ;
652
647
  },
653
-
654
- /**
648
+
649
+ /**
655
650
  Iterates over the selection, invoking your callback with each __object__.
656
- This will actually find the object referenced by each index in the
651
+ This will actually find the object referenced by each index in the
657
652
  selection, not just the index.
658
653
 
659
654
  The callback must have the following signature:
660
-
655
+
661
656
  {{{
662
657
  function callback(object, index, source, indexSet) { ... }
663
658
  }}}
664
-
659
+
665
660
  If you pass a target, it will be used when the callback is called.
666
-
667
- @param {Function} callback function to invoke.
661
+
662
+ @param {Function} callback function to invoke.
668
663
  @param {Object} target optional content. otherwise uses window
669
664
  @returns {SC.SelectionSet} receiver
670
665
  */
@@ -673,24 +668,24 @@ SC.SelectionSet = SC.Object.extend(SC.Enumerable, SC.Freezable, SC.Copyable,
673
668
  objects = this._objects,
674
669
  len = sets ? sets.length : 0,
675
670
  set, idx;
676
-
671
+
677
672
  for(idx=0;idx<len;idx++) {
678
673
  set = sets[idx];
679
674
  if (set) set.forEachObject(callback, target);
680
675
  }
681
-
676
+
682
677
  if (objects) objects.forEach(callback, target);
683
678
  return this ;
684
- }
685
-
679
+ }
680
+
686
681
  });
687
682
 
688
683
  /** @private */
689
684
  SC.SelectionSet.prototype.clone = SC.SelectionSet.prototype.copy;
690
685
 
691
- /**
686
+ /**
692
687
  Default frozen empty selection set
693
-
688
+
694
689
  @property {SC.SelectionSet}
695
690
  */
696
691
  SC.SelectionSet.EMPTY = SC.SelectionSet.create().freeze();