sproutcore 1.0.1049.pre.2 → 1.4.0.rc

Sign up to get free protection for your applications and to get access to all the features.
Files changed (552) hide show
  1. data/Rakefile +1 -1
  2. data/VERSION.yml +4 -4
  3. data/lib/Buildfile +1 -1
  4. data/lib/frameworks/sproutcore/Buildfile +13 -27
  5. data/lib/frameworks/sproutcore/apps/greenhouse/controllers/library.js +0 -42
  6. data/lib/frameworks/sproutcore/apps/greenhouse/controllers/view_configs.js +100 -0
  7. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/app_page.js +1 -1
  8. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/dialogs.js +33 -9
  9. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/strings.js +5 -2
  10. data/lib/frameworks/sproutcore/apps/greenhouse/states/main.js +1 -0
  11. data/lib/frameworks/sproutcore/apps/greenhouse/states/modals.js +21 -11
  12. data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +0 -7
  13. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.css +6 -24
  14. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +46 -36
  15. data/lib/frameworks/sproutcore/frameworks/animation/core.js +32 -50
  16. data/lib/frameworks/sproutcore/frameworks/animation/tests/core.js +2 -7
  17. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +1 -1
  18. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +66 -42
  19. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +4 -12
  20. data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +1 -1
  21. data/lib/frameworks/sproutcore/frameworks/{desktop/tests → datastore/tests/models}/datetime_recordattribute.js +0 -0
  22. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +3 -27
  23. data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/touch-scroller.css +196 -0
  24. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +21 -8
  25. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +3 -3
  26. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +15 -19
  27. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +22 -5
  28. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +54 -12
  29. data/lib/frameworks/sproutcore/frameworks/desktop/panes/select_button.js +45 -18
  30. data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +52 -32
  31. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +3 -28
  32. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +10 -30
  33. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +17 -11
  34. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +2 -1
  35. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js +1 -1
  36. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +20 -128
  37. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +39 -8
  38. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +47 -23
  39. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +90 -59
  40. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +39 -29
  41. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +15 -11
  42. data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +16 -17
  43. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +278 -457
  44. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +5 -5
  45. data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +101 -5
  46. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +87 -85
  47. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +278 -33
  48. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +146 -60
  49. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +80 -211
  50. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +10 -1
  51. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +34 -33
  52. data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +248 -331
  53. data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +12 -1
  54. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +1 -1
  55. data/lib/frameworks/sproutcore/frameworks/foundation/controllers/object.js +1 -1
  56. data/lib/frameworks/sproutcore/frameworks/foundation/core.js +2 -33
  57. data/lib/frameworks/sproutcore/frameworks/foundation/ext/run_loop.js +1 -1
  58. data/lib/frameworks/sproutcore/frameworks/foundation/license.js +11 -0
  59. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +6 -12
  60. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +9 -4
  61. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +1 -83
  62. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +7 -6
  63. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/selection_support.js +4 -2
  64. data/lib/frameworks/sproutcore/frameworks/foundation/panes/main.js +2 -1
  65. data/lib/frameworks/sproutcore/frameworks/foundation/panes/pane.js +107 -143
  66. data/lib/frameworks/sproutcore/frameworks/foundation/system/bundle.js +8 -4
  67. data/lib/frameworks/sproutcore/frameworks/foundation/system/core_query.js +4 -3
  68. data/lib/frameworks/sproutcore/frameworks/foundation/system/event.js +44 -33
  69. data/lib/frameworks/sproutcore/frameworks/foundation/system/exception_handler.js +85 -0
  70. data/lib/frameworks/sproutcore/frameworks/foundation/system/image_cache.js +9 -9
  71. data/lib/frameworks/sproutcore/frameworks/foundation/system/platform.js +114 -6
  72. data/lib/frameworks/sproutcore/frameworks/foundation/system/ready.js +37 -38
  73. data/lib/frameworks/sproutcore/frameworks/foundation/system/render_context.js +5 -33
  74. data/lib/frameworks/sproutcore/frameworks/foundation/system/response.js +17 -19
  75. data/lib/frameworks/sproutcore/frameworks/foundation/system/root_responder.js +311 -255
  76. data/lib/frameworks/sproutcore/frameworks/foundation/system/routes.js +3 -3
  77. data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +10 -10
  78. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils.js +53 -44
  79. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/keyEquivalents.js +17 -16
  80. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +0 -1
  81. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/end.js +1 -1
  82. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_style.js +3 -11
  83. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/update.js +4 -2
  84. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invokeLater.js +5 -7
  85. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/pane/sendEvent.js +41 -0
  86. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +2 -2
  87. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/clippingFrame.js +2 -2
  88. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/createLayer.js +2 -2
  89. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutStyle.js +56 -118
  90. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/prepareContext.js +4 -12
  91. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/render.js +5 -48
  92. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayer.js +3 -3
  93. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayerLocation.js +2 -2
  94. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/viewDidResize.js +2 -24
  95. data/lib/frameworks/sproutcore/frameworks/foundation/validators/date_time.js +2 -0
  96. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +3 -3
  97. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +49 -21
  98. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +85 -54
  99. data/lib/frameworks/sproutcore/frameworks/foundation/views/view.js +256 -1174
  100. data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +81 -74
  101. data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +2 -2
  102. data/lib/frameworks/sproutcore/frameworks/media/views/miniControls.js +1 -1
  103. data/lib/frameworks/sproutcore/frameworks/mobile/tests/views/button/ui.js +1 -8
  104. data/lib/frameworks/sproutcore/frameworks/mobile/views/button.js +1 -1
  105. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +54 -25
  106. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +1 -11
  107. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +8 -5
  108. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +1 -1
  109. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +24 -25
  110. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +9 -6
  111. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +13 -6
  112. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +26 -11
  113. data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +140 -33
  114. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/guidFor.js +33 -0
  115. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/base.js +48 -1
  116. data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart.js +2 -3
  117. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +1 -1
  118. data/lib/frameworks/sproutcore/themes/standard_theme/english.lproj/scroller.css +8 -4
  119. data/lib/sproutcore/helpers/entry_sorter.rb +14 -1
  120. data/sproutcore.gemspec +0 -2
  121. metadata +12 -443
  122. data/lib/frameworks/sproutcore/Gemfile +0 -8
  123. data/lib/frameworks/sproutcore/Gemfile.lock +0 -33
  124. data/lib/frameworks/sproutcore/apps/test_controls/Buildfile +0 -0
  125. data/lib/frameworks/sproutcore/apps/test_controls/controllers/categories.js +0 -108
  126. data/lib/frameworks/sproutcore/apps/test_controls/controllers/category.js +0 -31
  127. data/lib/frameworks/sproutcore/apps/test_controls/core.js +0 -29
  128. data/lib/frameworks/sproutcore/apps/test_controls/main.js +0 -14
  129. data/lib/frameworks/sproutcore/apps/test_controls/resources/buttons_page.js +0 -124
  130. data/lib/frameworks/sproutcore/apps/test_controls/resources/checkboxes_page.js +0 -45
  131. data/lib/frameworks/sproutcore/apps/test_controls/resources/flow_layout_page.js +0 -77
  132. data/lib/frameworks/sproutcore/apps/test_controls/resources/list_page.js +0 -40
  133. data/lib/frameworks/sproutcore/apps/test_controls/resources/loading.rhtml +0 -9
  134. data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.css +0 -54
  135. data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +0 -136
  136. data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +0 -42
  137. data/lib/frameworks/sproutcore/apps/test_controls/resources/radio_page.js +0 -41
  138. data/lib/frameworks/sproutcore/apps/test_controls/resources/scroll_page.js +0 -76
  139. data/lib/frameworks/sproutcore/apps/test_controls/resources/segmented_page.js +0 -75
  140. data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +0 -60
  141. data/lib/frameworks/sproutcore/apps/test_controls/resources/sliders_page.js +0 -53
  142. data/lib/frameworks/sproutcore/apps/test_controls/resources/strings.js +0 -50
  143. data/lib/frameworks/sproutcore/apps/test_controls/resources/tab_page.js +0 -15
  144. data/lib/frameworks/sproutcore/apps/test_controls/resources/text_field_page.js +0 -40
  145. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/images/main-bg.png +0 -0
  146. data/lib/frameworks/sproutcore/bin/edit_json.rb +0 -14
  147. data/lib/frameworks/sproutcore/bin/erubis +0 -14
  148. data/lib/frameworks/sproutcore/bin/prettify_json.rb +0 -14
  149. data/lib/frameworks/sproutcore/bin/rackup +0 -14
  150. data/lib/frameworks/sproutcore/bin/rake2thor +0 -14
  151. data/lib/frameworks/sproutcore/bin/sc-build +0 -14
  152. data/lib/frameworks/sproutcore/bin/sc-build-number +0 -14
  153. data/lib/frameworks/sproutcore/bin/sc-docs +0 -14
  154. data/lib/frameworks/sproutcore/bin/sc-gen +0 -14
  155. data/lib/frameworks/sproutcore/bin/sc-init +0 -14
  156. data/lib/frameworks/sproutcore/bin/sc-manifest +0 -14
  157. data/lib/frameworks/sproutcore/bin/sc-server +0 -14
  158. data/lib/frameworks/sproutcore/bin/sproutcore +0 -14
  159. data/lib/frameworks/sproutcore/bin/thin +0 -14
  160. data/lib/frameworks/sproutcore/bin/thor +0 -14
  161. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/navigation_builder.js +0 -130
  162. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/button.js +0 -147
  163. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/checkbox.js +0 -87
  164. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/checkbox_control.js +0 -103
  165. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/disclosure.js +0 -82
  166. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/disclosure_control.js +0 -103
  167. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/image_button.js +0 -33
  168. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/list_item.js +0 -334
  169. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/masterDetail.js +0 -23
  170. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/panel.js +0 -34
  171. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/picker.js +0 -50
  172. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/segment.js +0 -79
  173. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/segmented.js +0 -172
  174. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/slider.js +0 -86
  175. data/lib/frameworks/sproutcore/frameworks/desktop/renderers/workspace.js +0 -22
  176. data/lib/frameworks/sproutcore/frameworks/desktop/views/file.js +0 -112
  177. data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +0 -249
  178. data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation.js +0 -237
  179. data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation_bar.js +0 -181
  180. data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +0 -270
  181. data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
  182. data/lib/frameworks/sproutcore/frameworks/forms/english.lproj/default_styles.css +0 -5
  183. data/lib/frameworks/sproutcore/frameworks/forms/english.lproj/strings.js +0 -15
  184. data/lib/frameworks/sproutcore/frameworks/forms/mixins/auto_hide.js +0 -85
  185. data/lib/frameworks/sproutcore/frameworks/forms/mixins/edit_mode.js +0 -43
  186. data/lib/frameworks/sproutcore/frameworks/forms/renderers/form.js +0 -24
  187. data/lib/frameworks/sproutcore/frameworks/forms/renderers/form_row.js +0 -24
  188. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form.js +0 -15
  189. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_checkbox_field.js +0 -15
  190. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_field.js +0 -15
  191. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_label.js +0 -15
  192. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_radio_field.js +0 -15
  193. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_row.js +0 -15
  194. data/lib/frameworks/sproutcore/frameworks/forms/tests/views/form_text_field.js +0 -15
  195. data/lib/frameworks/sproutcore/frameworks/forms/views/form.js +0 -266
  196. data/lib/frameworks/sproutcore/frameworks/forms/views/form_row.js +0 -188
  197. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/images/sproutcore.png +0 -0
  198. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/pinch.js +0 -81
  199. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/swipe.js +0 -142
  200. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_mixin.js +0 -33
  201. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +0 -74
  202. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +0 -415
  203. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +0 -106
  204. data/lib/frameworks/sproutcore/frameworks/foundation/renderers/control.js +0 -122
  205. data/lib/frameworks/sproutcore/frameworks/foundation/renderers/image.js +0 -51
  206. data/lib/frameworks/sproutcore/frameworks/foundation/renderers/label.js +0 -96
  207. data/lib/frameworks/sproutcore/frameworks/foundation/renderers/renderer.js +0 -316
  208. data/lib/frameworks/sproutcore/frameworks/foundation/renderers/title.js +0 -108
  209. data/lib/frameworks/sproutcore/frameworks/foundation/renderers/view.js +0 -62
  210. data/lib/frameworks/sproutcore/frameworks/foundation/system/gesture.js +0 -245
  211. data/lib/frameworks/sproutcore/frameworks/foundation/system/theme.js +0 -108
  212. data/lib/frameworks/sproutcore/frameworks/foundation/tests/renderers/renderer/base.js +0 -170
  213. data/lib/frameworks/sproutcore/frameworks/foundation/tests/renderers/renderer/inheritance.js +0 -39
  214. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/theme.js +0 -86
  215. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/pane/sendTouchEvent.js +0 -267
  216. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/animation.js +0 -321
  217. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/build.js +0 -85
  218. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/build_children.js +0 -89
  219. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/renderer.js +0 -443
  220. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/view/theme.js +0 -41
  221. data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +0 -6240
  222. data/lib/frameworks/sproutcore/frameworks/test +0 -77
  223. data/lib/frameworks/sproutcore/themes/ace/Buildfile +0 -0
  224. data/lib/frameworks/sproutcore/themes/ace/README.md +0 -161
  225. data/lib/frameworks/sproutcore/themes/ace/build +0 -2
  226. data/lib/frameworks/sproutcore/themes/ace/build-d +0 -2
  227. data/lib/frameworks/sproutcore/themes/ace/chance/README.md +0 -113
  228. data/lib/frameworks/sproutcore/themes/ace/chance/chance.rb +0 -203
  229. data/lib/frameworks/sproutcore/themes/ace/chance/lib/css.rb +0 -202
  230. data/lib/frameworks/sproutcore/themes/ace/chance/lib/slicedice.rb +0 -391
  231. data/lib/frameworks/sproutcore/themes/ace/chance/sc-theme.rb +0 -0
  232. data/lib/frameworks/sproutcore/themes/ace/chance/scripts/setup.rb +0 -126
  233. data/lib/frameworks/sproutcore/themes/ace/mockups/dark.png +0 -0
  234. data/lib/frameworks/sproutcore/themes/ace/mockups/dark.psd +0 -0
  235. data/lib/frameworks/sproutcore/themes/ace/mockups/light.png +0 -0
  236. data/lib/frameworks/sproutcore/themes/ace/mockups/light.psd +0 -0
  237. data/lib/frameworks/sproutcore/themes/ace/resources/images/1.png +0 -0
  238. data/lib/frameworks/sproutcore/themes/ace/resources/images/2.png +0 -0
  239. data/lib/frameworks/sproutcore/themes/ace/resources/images/3.png +0 -0
  240. data/lib/frameworks/sproutcore/themes/ace/resources/theme.css +0 -1832
  241. data/lib/frameworks/sproutcore/themes/ace/scroll_test/resources/images/1.png +0 -0
  242. data/lib/frameworks/sproutcore/themes/ace/scroll_test/resources/images/2.png +0 -0
  243. data/lib/frameworks/sproutcore/themes/ace/scroll_test/resources/images/3.png +0 -0
  244. data/lib/frameworks/sproutcore/themes/ace/scroll_test/resources/theme.css +0 -147
  245. data/lib/frameworks/sproutcore/themes/ace/scroll_test/scrollbars.html +0 -326
  246. data/lib/frameworks/sproutcore/themes/ace/src/body.css +0 -13
  247. data/lib/frameworks/sproutcore/themes/ace/src/collections/list.css +0 -4
  248. data/lib/frameworks/sproutcore/themes/ace/src/collections/list_item.css +0 -7
  249. data/lib/frameworks/sproutcore/themes/ace/src/collections/source_list/selection.png +0 -0
  250. data/lib/frameworks/sproutcore/themes/ace/src/collections/source_list/selection.psd +0 -0
  251. data/lib/frameworks/sproutcore/themes/ace/src/collections/source_list/source_list_view.css +0 -37
  252. data/lib/frameworks/sproutcore/themes/ace/src/containers/container.css +0 -3
  253. data/lib/frameworks/sproutcore/themes/ace/src/containers/masterdetail/master-detail.css +0 -26
  254. data/lib/frameworks/sproutcore/themes/ace/src/containers/split/split.css +0 -4
  255. data/lib/frameworks/sproutcore/themes/ace/src/containers/tab/tab.css +0 -9
  256. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button.js +0 -23
  257. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/18px/active_button.png +0 -0
  258. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/18px/active_button.psd +0 -0
  259. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/18px/button_view.css +0 -53
  260. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/18px/normal_button.png +0 -0
  261. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/18px/normal_button.psd +0 -0
  262. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/18px/selected_active_button.png +0 -0
  263. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/18px/selected_active_button.psd +0 -0
  264. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/18px/selected_button.png +0 -0
  265. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/18px/selected_button.psd +0 -0
  266. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/active_button.png +0 -0
  267. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/active_button.psd +0 -0
  268. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/active_button_capsule.png +0 -0
  269. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/active_button_capsule.psd +0 -0
  270. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/active_button_pointer.png +0 -0
  271. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/active_button_pointer.psd +0 -0
  272. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/button_view.css +0 -144
  273. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/normal_button.png +0 -0
  274. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/normal_button.psd +0 -0
  275. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/normal_button_capsule.png +0 -0
  276. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/normal_button_capsule.psd +0 -0
  277. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/normal_button_pointer.png +0 -0
  278. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/normal_button_pointer.psd +0 -0
  279. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/selected_active_button.png +0 -0
  280. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/selected_active_button.psd +0 -0
  281. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/selected_active_button_capsule.png +0 -0
  282. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/selected_active_button_capsule.psd +0 -0
  283. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/selected_active_button_pointer.png +0 -0
  284. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/selected_active_button_pointer.psd +0 -0
  285. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/selected_button.png +0 -0
  286. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/selected_button.psd +0 -0
  287. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/selected_button_capsule.png +0 -0
  288. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/selected_button_capsule.psd +0 -0
  289. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/selected_button_pointer.png +0 -0
  290. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/24px/selected_button_pointer.psd +0 -0
  291. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/active_button.png +0 -0
  292. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/active_button.psd +0 -0
  293. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/active_button_pointer.png +0 -0
  294. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/active_button_pointer.psd +0 -0
  295. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/button_view_30.css +0 -111
  296. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/normal_button.png +0 -0
  297. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/normal_button.psd +0 -0
  298. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/normal_button_pointer.png +0 -0
  299. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/normal_button_pointer.psd +0 -0
  300. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/selected_active_button.png +0 -0
  301. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/selected_active_button.psd +0 -0
  302. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/selected_active_button_pointer.png +0 -0
  303. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/selected_active_button_pointer.psd +0 -0
  304. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/selected_button.png +0 -0
  305. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/selected_button.psd +0 -0
  306. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/selected_button_pointer.png +0 -0
  307. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/30px/selected_button_pointer.psd +0 -0
  308. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/44px/active_button.png +0 -0
  309. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/44px/active_button.psd +0 -0
  310. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/44px/button_view.css +0 -57
  311. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/44px/normal_button.png +0 -0
  312. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/44px/normal_button.psd +0 -0
  313. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/44px/selected_active_button.png +0 -0
  314. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/44px/selected_active_button.psd +0 -0
  315. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/44px/selected_button.png +0 -0
  316. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/44px/selected_button.psd +0 -0
  317. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/button_view/button_view.css +0 -56
  318. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/disclosure_view/disclosure_closed.png +0 -0
  319. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/disclosure_view/disclosure_closed.psd +0 -0
  320. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/disclosure_view/disclosure_closed_active.png +0 -0
  321. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/disclosure_view/disclosure_closed_active.psd +0 -0
  322. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/disclosure_view/disclosure_open.png +0 -0
  323. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/disclosure_view/disclosure_open.psd +0 -0
  324. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/disclosure_view/disclosure_open_active.png +0 -0
  325. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/disclosure_view/disclosure_open_active.psd +0 -0
  326. data/lib/frameworks/sproutcore/themes/ace/src/controls/buttons/disclosure_view/disclosure_view.css +0 -64
  327. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox.css +0 -25
  328. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox_checked.png +0 -0
  329. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox_checked.psd +0 -0
  330. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox_checked_active.png +0 -0
  331. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox_checked_active.psd +0 -0
  332. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox_mixed.png +0 -0
  333. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox_mixed.psd +0 -0
  334. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox_mixed_active.png +0 -0
  335. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox_mixed_active.psd +0 -0
  336. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox_unchecked.png +0 -0
  337. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox_unchecked.psd +0 -0
  338. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox_unchecked_active.png +0 -0
  339. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/14px/checkbox_unchecked_active.psd +0 -0
  340. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox.css +0 -25
  341. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox_checked.png +0 -0
  342. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox_checked.psd +0 -0
  343. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox_checked_active.png +0 -0
  344. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox_checked_active.psd +0 -0
  345. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox_mixed.png +0 -0
  346. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox_mixed.psd +0 -0
  347. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox_mixed_active.png +0 -0
  348. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox_mixed_active.psd +0 -0
  349. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox_unchecked.png +0 -0
  350. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox_unchecked.psd +0 -0
  351. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox_unchecked_active.png +0 -0
  352. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/16px/checkbox_unchecked_active.psd +0 -0
  353. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/checkbox.css +0 -4
  354. data/lib/frameworks/sproutcore/themes/ace/src/controls/checkboxes/checkbox_control.css +0 -31
  355. data/lib/frameworks/sproutcore/themes/ace/src/controls/progress/progress_view/progress_view.css +0 -70
  356. data/lib/frameworks/sproutcore/themes/ace/src/controls/progress/progress_view/progress_view_content.png +0 -0
  357. data/lib/frameworks/sproutcore/themes/ace/src/controls/progress/progress_view/progress_view_content.psd +0 -0
  358. data/lib/frameworks/sproutcore/themes/ace/src/controls/progress/progress_view/progress_view_indeterminate_content.psd +0 -0
  359. data/lib/frameworks/sproutcore/themes/ace/src/controls/progress/progress_view/progress_view_track.png +0 -0
  360. data/lib/frameworks/sproutcore/themes/ace/src/controls/progress/progress_view/progress_view_track.psd +0 -0
  361. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio.css +0 -61
  362. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio_active.png +0 -0
  363. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio_active.psd +0 -0
  364. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio_mixed.png +0 -0
  365. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio_mixed.psd +0 -0
  366. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio_mixed_active.png +0 -0
  367. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio_mixed_active.psd +0 -0
  368. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio_selected.png +0 -0
  369. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio_selected.psd +0 -0
  370. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio_selected_active.png +0 -0
  371. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio_selected_active.psd +0 -0
  372. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio_unselected.png +0 -0
  373. data/lib/frameworks/sproutcore/themes/ace/src/controls/radio/radio_unselected.psd +0 -0
  374. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/horizontal/horizontal.css +0 -77
  375. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/horizontal/thumb.png +0 -0
  376. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/horizontal/thumb.psd +0 -0
  377. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/horizontal/track_and_arrows.png +0 -0
  378. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/horizontal/track_and_arrows.psd +0 -0
  379. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/horizontal/track_and_arrows_active.png +0 -0
  380. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/horizontal/track_and_arrows_active.psd +0 -0
  381. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/vertical.psd +0 -0
  382. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/vertical/thumb.png +0 -0
  383. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/vertical/thumb.psd +0 -0
  384. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/vertical/track_and_arrows.png +0 -0
  385. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/vertical/track_and_arrows.psd +0 -0
  386. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/vertical/track_and_arrows_active.png +0 -0
  387. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/vertical/track_and_arrows_active.psd +0 -0
  388. data/lib/frameworks/sproutcore/themes/ace/src/controls/scroll/vertical/vertical.css +0 -74
  389. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/18px/segmented.css +0 -92
  390. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/18px/segmented_active.png +0 -0
  391. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/18px/segmented_active.psd +0 -0
  392. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/18px/segmented_normal.png +0 -0
  393. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/18px/segmented_normal.psd +0 -0
  394. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/18px/segmented_selected.png +0 -0
  395. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/18px/segmented_selected.psd +0 -0
  396. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/18px/segmented_selected_active.png +0 -0
  397. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/18px/segmented_selected_active.psd +0 -0
  398. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/24px/segmented.css +0 -87
  399. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/24px/segmented_active.png +0 -0
  400. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/24px/segmented_active.psd +0 -0
  401. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/24px/segmented_normal.png +0 -0
  402. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/24px/segmented_normal.psd +0 -0
  403. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/24px/segmented_selected.png +0 -0
  404. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/24px/segmented_selected.psd +0 -0
  405. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/24px/segmented_selected_active.png +0 -0
  406. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/24px/segmented_selected_active.psd +0 -0
  407. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/30px/segmented.css +0 -93
  408. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/30px/segmented_active.png +0 -0
  409. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/30px/segmented_active.psd +0 -0
  410. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/30px/segmented_normal.png +0 -0
  411. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/30px/segmented_normal.psd +0 -0
  412. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/30px/segmented_selected.png +0 -0
  413. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/30px/segmented_selected.psd +0 -0
  414. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/30px/segmented_selected_active.png +0 -0
  415. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/30px/segmented_selected_active.psd +0 -0
  416. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/44px/segmented.css +0 -101
  417. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/44px/segmented_active.png +0 -0
  418. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/44px/segmented_active.psd +0 -0
  419. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/44px/segmented_normal.png +0 -0
  420. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/44px/segmented_normal.psd +0 -0
  421. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/44px/segmented_selected.png +0 -0
  422. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/44px/segmented_selected.psd +0 -0
  423. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/44px/segmented_selected_active.png +0 -0
  424. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/44px/segmented_selected_active.psd +0 -0
  425. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/segmented.css +0 -73
  426. data/lib/frameworks/sproutcore/themes/ace/src/controls/segmented/segmented.js +0 -0
  427. data/lib/frameworks/sproutcore/themes/ace/src/controls/select/active_select.png +0 -0
  428. data/lib/frameworks/sproutcore/themes/ace/src/controls/select/active_select.psd +0 -0
  429. data/lib/frameworks/sproutcore/themes/ace/src/controls/select/menu.png +0 -0
  430. data/lib/frameworks/sproutcore/themes/ace/src/controls/select/normal_select.png +0 -0
  431. data/lib/frameworks/sproutcore/themes/ace/src/controls/select/normal_select.psd +0 -0
  432. data/lib/frameworks/sproutcore/themes/ace/src/controls/select/select.css +0 -45
  433. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/14px/knob.png +0 -0
  434. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/14px/knob.psd +0 -0
  435. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/14px/knob_active.png +0 -0
  436. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/14px/knob_active.psd +0 -0
  437. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/14px/slider.css +0 -43
  438. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/16px/knob.png +0 -0
  439. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/16px/knob.psd +0 -0
  440. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/16px/knob_active.png +0 -0
  441. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/16px/knob_active.psd +0 -0
  442. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/16px/slider.css +0 -44
  443. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/22px/knob.png +0 -0
  444. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/22px/knob.psd +0 -0
  445. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/22px/knob_active.png +0 -0
  446. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/22px/knob_active.psd +0 -0
  447. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/22px/slider.css +0 -44
  448. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/22px/track.png +0 -0
  449. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/22px/track.psd +0 -0
  450. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/slider.css +0 -3
  451. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/slider.js +0 -27
  452. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/track.png +0 -0
  453. data/lib/frameworks/sproutcore/themes/ace/src/controls/slider/track.psd +0 -0
  454. data/lib/frameworks/sproutcore/themes/ace/src/controls/switch/24px/switch.psd +0 -0
  455. data/lib/frameworks/sproutcore/themes/ace/src/controls/switch/24px/switch_handle.png +0 -0
  456. data/lib/frameworks/sproutcore/themes/ace/src/controls/switch/24px/switch_handle.psd +0 -0
  457. data/lib/frameworks/sproutcore/themes/ace/src/controls/switch/24px/switch_off.png +0 -0
  458. data/lib/frameworks/sproutcore/themes/ace/src/controls/switch/24px/switch_off.psd +0 -0
  459. data/lib/frameworks/sproutcore/themes/ace/src/controls/switch/24px/switch_on.png +0 -0
  460. data/lib/frameworks/sproutcore/themes/ace/src/controls/switch/24px/switch_on.psd +0 -0
  461. data/lib/frameworks/sproutcore/themes/ace/src/core/loading.css +0 -50
  462. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/active_button.png +0 -0
  463. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/active_button.psd +0 -0
  464. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/active_button_capsule.png +0 -0
  465. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/active_button_capsule.psd +0 -0
  466. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/active_button_pointer.png +0 -0
  467. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/active_button_pointer.psd +0 -0
  468. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/button_view.css +0 -142
  469. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/normal_button.png +0 -0
  470. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/normal_button.psd +0 -0
  471. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/normal_button_capsule.png +0 -0
  472. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/normal_button_capsule.psd +0 -0
  473. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/normal_button_pointer.png +0 -0
  474. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/normal_button_pointer.psd +0 -0
  475. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/selected_active_button.png +0 -0
  476. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/selected_active_button.psd +0 -0
  477. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/selected_active_button_capsule.png +0 -0
  478. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/selected_active_button_capsule.psd +0 -0
  479. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/selected_active_button_pointer.png +0 -0
  480. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/selected_active_button_pointer.psd +0 -0
  481. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/selected_button.png +0 -0
  482. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/selected_button.psd +0 -0
  483. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/selected_button_capsule.png +0 -0
  484. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/selected_button_capsule.psd +0 -0
  485. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/selected_button_pointer.png +0 -0
  486. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/24px/selected_button_pointer.psd +0 -0
  487. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/active_button.png +0 -0
  488. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/active_button.psd +0 -0
  489. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/active_button_pointer.png +0 -0
  490. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/active_button_pointer.psd +0 -0
  491. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/button_view_30.css +0 -111
  492. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/normal_button.png +0 -0
  493. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/normal_button.psd +0 -0
  494. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/normal_button_pointer.png +0 -0
  495. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/normal_button_pointer.psd +0 -0
  496. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/selected_active_button.png +0 -0
  497. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/selected_active_button.psd +0 -0
  498. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/selected_active_button_pointer.png +0 -0
  499. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/selected_active_button_pointer.psd +0 -0
  500. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/selected_button.png +0 -0
  501. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/selected_button.psd +0 -0
  502. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/selected_button_pointer.png +0 -0
  503. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/30px/selected_button_pointer.psd +0 -0
  504. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/button.css +0 -20
  505. data/lib/frameworks/sproutcore/themes/ace/src/dark/buttons/button.js +0 -3
  506. data/lib/frameworks/sproutcore/themes/ace/src/form/iphone/form.js +0 -21
  507. data/lib/frameworks/sproutcore/themes/ace/src/form/iphone/form_row.js +0 -24
  508. data/lib/frameworks/sproutcore/themes/ace/src/form/iphone/iphone.css +0 -51
  509. data/lib/frameworks/sproutcore/themes/ace/src/form/iphone/iphone.js +0 -14
  510. data/lib/frameworks/sproutcore/themes/ace/src/form/iphone/label.js +0 -32
  511. data/lib/frameworks/sproutcore/themes/ace/src/panels/pane.css +0 -3
  512. data/lib/frameworks/sproutcore/themes/ace/src/panels/panel.css +0 -70
  513. data/lib/frameworks/sproutcore/themes/ace/src/panels/panel.png +0 -0
  514. data/lib/frameworks/sproutcore/themes/ace/src/panels/panel.psd +0 -0
  515. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/checkmark.png +0 -0
  516. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/checkmark.psd +0 -0
  517. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/checkmark_active.png +0 -0
  518. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/checkmark_active.psd +0 -0
  519. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/down.png +0 -0
  520. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/down.psd +0 -0
  521. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/menu.css +0 -154
  522. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/menu.png +0 -0
  523. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/menu.psd +0 -0
  524. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/menu_item.png +0 -0
  525. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/menu_item.psd +0 -0
  526. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/up.png +0 -0
  527. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/menu/up.psd +0 -0
  528. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/picker.css +0 -0
  529. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/picker.js +0 -1
  530. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/picker.js +0 -14
  531. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover.css +0 -271
  532. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover.js +0 -5
  533. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover.png +0 -0
  534. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover.psd +0 -0
  535. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover_empty.png +0 -0
  536. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover_empty.psd +0 -0
  537. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover_notoolbar.png +0 -0
  538. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover_notoolbar.psd +0 -0
  539. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover_pointers.png +0 -0
  540. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover_pointers.psd +0 -0
  541. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover_pointers_notoolbar.png +0 -0
  542. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover_pointers_notoolbar.psd +0 -0
  543. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/popover_sourcelist.css +0 -5
  544. data/lib/frameworks/sproutcore/themes/ace/src/panels/picker/popover/workspace.js +0 -51
  545. data/lib/frameworks/sproutcore/themes/ace/src/theme.js +0 -12
  546. data/lib/frameworks/sproutcore/themes/ace/src/toolbars/normal/selection.png +0 -0
  547. data/lib/frameworks/sproutcore/themes/ace/src/toolbars/normal/toolbar.css +0 -8
  548. data/lib/frameworks/sproutcore/themes/ace/src/toolbars/normal/toolbar.png +0 -0
  549. data/lib/frameworks/sproutcore/themes/ace/src/toolbars/normal/toolbar.psd +0 -0
  550. data/lib/frameworks/sproutcore/themes/ace/src/toolbars/panel_header/panel_header.png +0 -0
  551. data/lib/frameworks/sproutcore/themes/ace/src/toolbars/panel_header/panel_header.psd +0 -0
  552. data/lib/frameworks/sproutcore/themes/empty_theme/theme.js +0 -16
@@ -15,9 +15,11 @@ sc_require('views/separator') ;
15
15
  @extends SC.ButtonView
16
16
  @since SproutCore 1.0
17
17
  */
18
- SC.MenuItemView = SC.View.extend( SC.ContentDisplay,
18
+ SC.MenuItemView = SC.View.extend(SC.ContentDisplay,
19
19
  /** @scope SC.MenuItemView.prototype */{
20
20
 
21
+ displayProperties: ['title', 'isEnabled', 'isSeparator'],
22
+
21
23
  classNames: ['sc-menu-item'],
22
24
 
23
25
  escapeHTML: YES,
@@ -37,11 +39,9 @@ SC.MenuItemView = SC.View.extend( SC.ContentDisplay,
37
39
  blocksIEDeactivate: YES,
38
40
 
39
41
  /**
40
- IE only attribute to block bluring of other controls
41
-
42
- @type Boolean
42
+ Disable context menu.
43
43
  */
44
- blocksIEDeactivate: YES,
44
+ isContextMenuEnabled: NO,
45
45
 
46
46
  // ..........................................................
47
47
  // KEY PROPERTIES
@@ -52,15 +52,97 @@ SC.PopupButtonView = SC.ButtonView.extend(
52
52
  @default null
53
53
  */
54
54
  menu: null,
55
+
56
+ /**
57
+ If YES and the menu is a class, this will cause a task that will instantiate the menu
58
+ to be added to SC.backgroundTaskQueue.
59
+ */
60
+ shouldLoadInBackground: NO,
55
61
 
56
62
  // ..........................................................
57
63
  // INTERNAL SUPPORT
58
64
  //
65
+
66
+ /**
67
+ @private
68
+ If necessary, adds the loading of the menu to the background task queue.
69
+ */
70
+ init: function() {
71
+ sc_super();
72
+ this._setupMenu();
73
+ if (this.get('shouldLoadInBackground')) {
74
+ SC.backgroundTaskQueue.push(SC.PopupButtonMenuLoader.create({ popupButton: this }));
75
+ }
76
+ },
77
+
78
+ /**
79
+ @private
80
+ Sets up binding on the menu, removing any old ones if necessary.
81
+ */
82
+ _setupMenu: function() {
83
+ var menu = this.get('instantiatedMenu');
84
+
85
+ // clear existing bindings
86
+ if (this.isActiveBinding) this.isActiveBinding.disconnect();
87
+ this.isActiveBinding = null;
88
+
89
+ // if there is a menu
90
+ if (menu && !menu.isClass) {
91
+ this.isActiveBinding = this.bind('isActive', menu, 'isVisibleInWindow');
92
+ }
93
+ },
94
+
95
+ /**
96
+ Setup the bindings for menu...
97
+ */
98
+ _popup_menuDidChange: function() {
99
+ this._setupMenu();
100
+ }.observes('menu'),
59
101
 
60
102
  /** @private
61
- Binds the button's selection state to the menu's visibility.
103
+ isActive is NO, but when the menu is instantiated, it is bound to the menu's isVisibleInWindow property.
62
104
  */
63
- isActiveBinding: '*menu.isVisibleInWindow',
105
+ isActive: NO,
106
+
107
+ /**
108
+ @private
109
+ Instantiates the menu if it is not already instantiated.
110
+ */
111
+ _instantiateMenu: function() {
112
+ // get menu
113
+ var menu = this.get('menu');
114
+
115
+ // if it is already instantiated or does not exist, we cannot do anything
116
+ if (!menu.isClass || !menu) return;
117
+
118
+ // create
119
+ this.menu = menu.create();
120
+
121
+ // setup
122
+ this._setupMenu();
123
+ },
124
+
125
+ acceptsFirstResponder: YES,
126
+
127
+ /**
128
+ The guaranteed-instantiated menu.
129
+ */
130
+ instantiatedMenu: function() {
131
+ // get the menu
132
+ var menu = this.get('menu');
133
+
134
+ // if it is a class, we need to instantiate it
135
+ if (menu && menu.isClass) {
136
+ // do so
137
+ this._instantiateMenu();
138
+
139
+ // get the new version of the local
140
+ menu = this.get('menu');
141
+ }
142
+
143
+ // return
144
+ return menu;
145
+ }.property('menu').cacheable(),
64
146
 
65
147
  /** @private
66
148
  Displays the menu.
@@ -69,7 +151,7 @@ SC.PopupButtonView = SC.ButtonView.extend(
69
151
  */
70
152
  action: function(evt)
71
153
  {
72
- var menu = this.get('menu') ;
154
+ var menu = this.get('instantiatedMenu') ;
73
155
 
74
156
  if (!menu) {
75
157
  //@ if (debug)
@@ -105,6 +187,8 @@ SC.PopupButtonView = SC.ButtonView.extend(
105
187
  // pressed.
106
188
  this.invokeLast(this._recordMouseDownTimestamp);
107
189
 
190
+ this.becomeFirstResponder();
191
+
108
192
  return YES ;
109
193
  },
110
194
 
@@ -136,7 +220,7 @@ SC.PopupButtonView = SC.ButtonView.extend(
136
220
  mouseUp: function(evt) {
137
221
  var timestamp = new Date().getTime(),
138
222
  previousTimestamp = this._menuRenderedTimestamp,
139
- menu = this.get('menu'),
223
+ menu = this.get('instantiatedMenu'),
140
224
  touch = SC.platform.touch,
141
225
  targetMenuItem;
142
226
 
@@ -189,7 +273,7 @@ SC.PopupButtonView = SC.ButtonView.extend(
189
273
  performKeyEquivalent: function( charCode, evt )
190
274
  {
191
275
  if (!this.get('isEnabled')) return NO ;
192
- var menu = this.get('menu') ;
276
+ var menu = this.get('instantiatedMenu') ;
193
277
  return (!!menu && menu.performKeyEquivalent(charCode, evt)) ;
194
278
  },
195
279
 
@@ -200,3 +284,15 @@ SC.PopupButtonView = SC.ButtonView.extend(
200
284
  }.property('isEnabled')
201
285
 
202
286
  });
287
+
288
+ /**
289
+ @private
290
+ Handles lazy instantiation of popup button menu.
291
+ */
292
+ SC.PopupButtonMenuLoader = SC.Task.extend({
293
+ popupButton: null,
294
+ run: function() {
295
+ if (this.popupButton) this.popupButton._instantiateMenu();
296
+ }
297
+ });
298
+
@@ -294,9 +294,14 @@ SC.ScrollView = SC.View.extend(SC.Border, {
294
294
 
295
295
  @property {SC.View}
296
296
  */
297
- horizontalScrollerView: function() {
298
- return SC.ScrollerView;
299
- }.property().cacheable(),
297
+ horizontalScrollerView: SC.ScrollerView,
298
+
299
+ /**
300
+ The horizontal scroller view for touch. This will be replaced with a view
301
+ instance when touch is enabled when the ScrollView is created unless
302
+ hasHorizontalScroller is NO.
303
+ */
304
+ horizontalTouchScrollerView: SC.TouchScrollerView,
300
305
 
301
306
  /**
302
307
  YES if the horizontal scroller should be visible. You can change this
@@ -342,9 +347,13 @@ SC.ScrollView = SC.View.extend(SC.Border, {
342
347
 
343
348
  @property {SC.View}
344
349
  */
345
- verticalScrollerView: function() {
346
- return SC.ScrollerView;
347
- }.property().cacheable(),
350
+ verticalScrollerView: SC.ScrollerView,
351
+
352
+ /**
353
+ The vertical touch scroller view class. This will be replaced with a view
354
+ instance when the ScrollView is created.
355
+ */
356
+ verticalTouchScrollerView: SC.TouchScrollerView,
348
357
 
349
358
  /**
350
359
  YES if the vertical scroller should be visible. You can change this
@@ -689,17 +698,13 @@ SC.ScrollView = SC.View.extend(SC.Border, {
689
698
  additional controls you have added to the view.
690
699
  */
691
700
  tile: function() {
692
-
693
- // for now just hide scroll bars on touch platforms
694
- var isTouch = SC.platform.touch;
695
-
696
701
  // get horizontal scroller/determine if we should have a scroller
697
702
  var hscroll = this.get('hasHorizontalScroller') ? this.get('horizontalScrollerView') : null ;
698
- var hasHorizontal = hscroll && !isTouch && this.get('isHorizontalScrollerVisible');
703
+ var hasHorizontal = hscroll && this.get('isHorizontalScrollerVisible');
699
704
 
700
705
  // get vertical scroller/determine if we should have a scroller
701
706
  var vscroll = this.get('hasVerticalScroller') ? this.get('verticalScrollerView') : null ;
702
- var hasVertical = vscroll && !isTouch && this.get('isVerticalScrollerVisible') ;
707
+ var hasVertical = vscroll && this.get('isVerticalScrollerVisible') ;
703
708
 
704
709
  // get the containerView
705
710
  var clip = this.get('containerView') ;
@@ -919,10 +924,8 @@ SC.ScrollView = SC.View.extend(SC.Border, {
919
924
  this.updateScale(this._scale);
920
925
  transform += 'translate3d('+ -this._scroll_horizontalScrollOffset +'px, '+ -Math.round(this._scroll_verticalScrollOffset)+'px,0) ';
921
926
  transform += this._scale_css;
922
- if (layer) {
923
- layer.style.webkitTransform = transform;
924
- layer.style.webkitTransformOrigin = "top left";
925
- }
927
+ layer.style.webkitTransform = transform;
928
+ layer.style.webkitTransformOrigin = "top left";
926
929
  },
927
930
 
928
931
  captureTouch: function(touch) {
@@ -945,11 +948,22 @@ SC.ScrollView = SC.View.extend(SC.Border, {
945
948
 
946
949
  beginTouchesInContent: function(gen) {
947
950
  if (gen !== this.touchGeneration) return;
951
+
948
952
  var touch = this.touch, itemView;
949
953
  if (touch && this.tracking && !this.dragging && !touch.touch.scrollHasEnded) {
950
954
  // try to capture the touch
951
955
  touch.touch.captureTouch(this, YES);
952
- if (!touch.touch.touchResponder) touch.touch.makeTouchResponder(this);
956
+
957
+ if (!touch.touch.touchResponder) {
958
+ // if it DIDN'T WORK!!!!!
959
+ // then we need to take possession again.
960
+ touch.touch.makeTouchResponder(this);
961
+ } else {
962
+ // Otherwise, it did work, and if we had a pending scroll end, we must do it now
963
+ if (touch.needsScrollEnd) {
964
+ this._touchScrollDidEnd();
965
+ }
966
+ }
953
967
  }
954
968
  },
955
969
 
@@ -967,7 +981,8 @@ SC.ScrollView = SC.View.extend(SC.Border, {
967
981
  var verticalScrollOffset = this._scroll_verticalScrollOffset || 0,
968
982
  horizontalScrollOffset = this._scroll_horizontalScrollOffset || 0,
969
983
  startClipOffsetX = horizontalScrollOffset,
970
- startClipOffsetY = verticalScrollOffset;
984
+ startClipOffsetY = verticalScrollOffset,
985
+ needsScrollEnd = NO;
971
986
 
972
987
  if (this.touch && this.touch.timeout) {
973
988
  // clear the timeout
@@ -977,6 +992,7 @@ SC.ScrollView = SC.View.extend(SC.Border, {
977
992
  // get the scroll offsets
978
993
  startClipOffsetX = this.touch.startClipOffset.x;
979
994
  startClipOffsetY = this.touch.startClipOffset.y;
995
+ needsScrollEnd = YES;
980
996
  }
981
997
 
982
998
  // calculate container+content width/height
@@ -995,19 +1011,16 @@ SC.ScrollView = SC.View.extend(SC.Border, {
995
1011
  var globalFrame = this.convertFrameToView(this.get("frame"), null),
996
1012
  positionInContentX = (horizontalScrollOffset + (avg.x - globalFrame.x)) / this._scale,
997
1013
  positionInContentY = (verticalScrollOffset + (avg.y - globalFrame.y)) / this._scale;
998
-
1014
+
999
1015
  this.touch = {
1000
1016
  startTime: touch.timeStamp,
1001
1017
  notCalculated: YES,
1002
1018
 
1003
1019
  enableScrolling: {
1004
1020
  x: contentWidth * this._scale > containerWidth || this.get("alwaysBounceHorizontal"),
1005
- y: contentHeight * this._scale > containerHeight || this.get("alwaysBounceVertical")
1006
- },
1021
+ y: contentHeight * this._scale > containerHeight || this.get("alwaysBounceVertical") }, // TODO: get from class properties
1007
1022
  scrolling: { x: NO, y: NO },
1008
1023
 
1009
- enableBouncing: SC.platform.bounceOnScroll,
1010
-
1011
1024
  // offsets and velocities
1012
1025
  startClipOffset: { x: startClipOffsetX, y: startClipOffsetY },
1013
1026
  lastScrollOffset: { x: horizontalScrollOffset, y: verticalScrollOffset },
@@ -1021,7 +1034,7 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1021
1034
 
1022
1035
  startScale: this._scale,
1023
1036
  startDistance: avg.d,
1024
- canScale: this.get("canScale") && SC.platform.pinchToZoom,
1037
+ canScale: this.get("canScale"),
1025
1038
  minimumScale: this.get("minimumScale"),
1026
1039
  maximumScale: this.get("maximumScale"),
1027
1040
 
@@ -1048,7 +1061,16 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1048
1061
  lastEventTime: touch.timeStamp,
1049
1062
 
1050
1063
  // the touch used
1051
- touch: (starting ? touch : (this.touch ? this.touch.touch : null))
1064
+ touch: (starting ? touch : (this.touch ? this.touch.touch : null)),
1065
+
1066
+ // needsScrollEnd will cause a scrollDidEnd even if this particular touch does not start a scroll.
1067
+ // the reason for this is because we don't want to say we've stopped scrolling just because we got
1068
+ // another touch, but simultaneously, we still need to send a touch end eventually.
1069
+ // there are two cases in which this will be used:
1070
+ //
1071
+ // 1. If the touch was sent to content touches (in which case we will not be scrolling)
1072
+ // 2. If the touch ends before scrolling starts (no scrolling then, either)
1073
+ needsScrollEnd: needsScrollEnd
1052
1074
  };
1053
1075
 
1054
1076
  if (!this.tracking) {
@@ -1138,7 +1160,7 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1138
1160
  if (deltaY > touch.scrollLock && !touch.scrolling.x) touch.enableScrolling.x = NO;
1139
1161
  }
1140
1162
 
1141
- // handle scaling through pinch gesture
1163
+ // handle scaling
1142
1164
  if (touch.canScale) {
1143
1165
 
1144
1166
  var startDistance = touch.startDistance, dd = distance - startDistance;
@@ -1158,46 +1180,30 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1158
1180
  }
1159
1181
  }
1160
1182
 
1161
- // these do exactly what they sound like. So, this comment is just to
1162
- // block off the code a bit
1163
- // In english, these calculate the minimum X/Y offsets
1183
+
1164
1184
  minOffsetX = this.minimumScrollOffset(touch.contentSize.width * this._scale, touch.containerSize.width, this.get("horizontalAlign"));
1165
1185
  minOffsetY = this.minimumScrollOffset(touch.contentSize.height * this._scale, touch.containerSize.height, this.get("verticalAlign"));
1166
1186
 
1167
- // and now, maximum...
1168
1187
  maxOffsetX = this.maximumScrollOffset(touch.contentSize.width * this._scale, touch.containerSize.width, this.get("horizontalAlign"));
1169
1188
  maxOffsetY = this.maximumScrollOffset(touch.contentSize.height * this._scale, touch.containerSize.height, this.get("verticalAlign"));
1170
1189
 
1171
-
1172
- // So, the following is the completely written out algebra:
1173
1190
  // (offsetY + touchYInFrame) / this._scale = touch.startTouchOffsetInContent.y
1174
1191
  // offsetY + touchYInFrame = touch.startTouchOffsetInContent.y * this._scale;
1175
1192
  // offsetY = touch.startTouchOffset * this._scale - touchYInFrame
1176
-
1177
- // and the result applied:
1178
1193
  offsetX = touch.startTouchOffsetInContent.x * this._scale - touchXInFrame;
1179
1194
  offsetY = touch.startTouchOffsetInContent.y * this._scale - touchYInFrame;
1180
1195
 
1181
1196
 
1182
- // we need to adjust for edge resistance, or, if bouncing is disabled, just stop flat.
1183
- if (touch.enableBouncing) {
1184
- offsetX = this._adjustForEdgeResistance(offsetX, minOffsetX, maxOffsetX, touch.resistanceCoefficient, touch.resistanceAsymptote);
1185
- offsetY = this._adjustForEdgeResistance(offsetY, minOffsetY, maxOffsetY, touch.resistanceCoefficient, touch.resistanceAsymptote);
1186
- } else {
1187
- offsetX = Math.max(minOffsetX, Math.min(maxOffsetX, offsetX));
1188
- offsetY = Math.max(minOffsetY, Math.min(maxOffsetY, offsetY));
1189
- }
1197
+ // update immediately, without consulting anyone else.
1198
+ offsetX = this._adjustForEdgeResistance(offsetX, minOffsetX, maxOffsetX, touch.resistanceCoefficient, touch.resistanceAsymptote);
1199
+ offsetY = this._adjustForEdgeResistance(offsetY, minOffsetY, maxOffsetY, touch.resistanceCoefficient, touch.resistanceAsymptote);
1190
1200
 
1191
- // and now, _if_ scrolling is enabled, set the new coordinates
1192
1201
  if (touch.scrolling.x) this._scroll_horizontalScrollOffset = offsetX;
1193
1202
  if (touch.scrolling.y) this._scroll_verticalScrollOffset = offsetY;
1194
1203
 
1195
- // and apply the CSS transforms.
1196
1204
  this._applyCSSTransforms(touch.layer);
1197
1205
  this._touchScrollDidChange();
1198
1206
 
1199
-
1200
- // now we must prepare for momentum scrolling by calculating the momentum.
1201
1207
  if (timeStamp - touch.lastEventTime >= 1 || touch.notCalculated) {
1202
1208
  touch.notCalculated = NO;
1203
1209
  var horizontalOffset = this._scroll_horizontalScrollOffset;
@@ -1227,6 +1233,9 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1227
1233
 
1228
1234
  this.startDecelerationAnimation();
1229
1235
  } else {
1236
+ // well. The scrolling stopped. Let us tell everyone if there was a pending one that this non-drag op interrupted.
1237
+ if (touchStatus.needsScrollEnd) this._touchScrollDidEnd();
1238
+
1230
1239
  // this part looks weird, but it is actually quite simple.
1231
1240
  // First, we send the touch off for capture+starting again, but telling it to return to us
1232
1241
  // if nothing is found or if it is released.
@@ -1235,17 +1244,18 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1235
1244
  // if we went anywhere, did anything, etc., call end()
1236
1245
  if (touch.touchResponder && touch.touchResponder !== this) {
1237
1246
  touch.end();
1238
- }
1239
-
1240
- // now check if it was released to us or stayed with us the whole time, or is for some
1241
- // wacky reason empty (in which case it is ours still). If so, and there is a next responder,
1242
- // relay to that.
1243
- if (!touch.touchResponder || touch.touchResponder === this) {
1247
+ } else if (!touch.touchResponder || touch.touchResponder === this) {
1248
+ // if it was released to us or stayed with us the whole time, or is for some
1249
+ // wacky reason empty (in which case it is ours still). If so, and there is a next responder,
1250
+ // relay to that.
1251
+
1244
1252
  if (touch.nextTouchResponder) touch.makeTouchResponder(touch.nextTouchResponder);
1245
1253
  } else {
1246
1254
  // in this case, the view that captured it and changed responder should have handled
1247
1255
  // everything for us.
1248
1256
  }
1257
+
1258
+ this.touch = null;
1249
1259
  }
1250
1260
 
1251
1261
  this.tracking = NO;
@@ -1254,19 +1264,25 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1254
1264
  },
1255
1265
 
1256
1266
  touchCancelled: function(touch) {
1257
- this.beginPropertyChanges();
1258
- this.set("scale", this._scale);
1259
- this.set("verticalScrollOffset", this._scroll_verticalScrollOffset);
1260
- this.set("horizontalScrollOffset", this._scroll_horizontalScrollOffset);
1261
- this.endPropertyChanges();
1262
- this.tracking = NO;
1263
-
1264
- if (this.dragging) {
1265
- this._touchScrollDidEnd();
1266
- }
1267
+ var touchStatus = this.touch,
1268
+ avg = touch.averagedTouchesForView(this);
1269
+
1270
+ // if we are decelerating, we don't want to stop that. That would be bad. Because there's no point.
1271
+ if (!this.touch || !this.touch.timeout) {
1272
+ this.beginPropertyChanges();
1273
+ this.set("scale", this._scale);
1274
+ this.set("verticalScrollOffset", this._scroll_verticalScrollOffset);
1275
+ this.set("horizontalScrollOffset", this._scroll_horizontalScrollOffset);
1276
+ this.endPropertyChanges();
1277
+ this.tracking = NO;
1267
1278
 
1268
- this.dragging = NO;
1269
- this.touch = null;
1279
+ if (this.dragging) {
1280
+ this._touchScrollDidEnd();
1281
+ }
1282
+
1283
+ this.dragging = NO;
1284
+ this.touch = null;
1285
+ }
1270
1286
  },
1271
1287
 
1272
1288
  startDecelerationAnimation: function(evt) {
@@ -1338,11 +1354,6 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1338
1354
 
1339
1355
  var de = touch.decelerationFromEdge, ac = touch.accelerationToEdge;
1340
1356
 
1341
- // under a few circumstances, we may want to force a valid X/Y position.
1342
- // For instance, if bouncing is disabled, or if position was okay before
1343
- // adjusting scale.
1344
- var forceValidXPosition = !touch.enableBouncing, forceValidYPosition = !touch.enableBouncing;
1345
-
1346
1357
  // determine if position was okay before adjusting scale (which we do, in
1347
1358
  // a lovely, animated way, for the scaled out/in too far bounce-back).
1348
1359
  // if the position was okay, then we are going to make sure that we keep the
@@ -1350,8 +1361,8 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1350
1361
  //
1351
1362
  // Position OKness, here, referring to if the position is valid (within
1352
1363
  // minimum and maximum scroll offsets)
1353
- if (newX >= minOffsetX && newX <= maxOffsetX) forceValidXPosition = YES;
1354
- if (newY >= minOffsetY && newY <= maxOffsetY) forceValidYPosition = YES;
1364
+ var validXPosition = newX >= minOffsetX && newX <= maxOffsetX;
1365
+ var validYPosition = newY >= minOffsetY && newY <= maxOffsetY;
1355
1366
 
1356
1367
  // We are going to change scale in a moment, but the position should stay the
1357
1368
  // same, if possible (unless it would be more jarring, as described above, in
@@ -1399,21 +1410,15 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1399
1410
  maxOffsetY = this.maximumScrollOffset(touch.contentSize.height * this._scale, touch.containerSize.height, this.get("verticalAlign"));
1400
1411
 
1401
1412
  // see if scaling messed up the X position (but ignore if 'tweren't right to begin with).
1402
- if (forceValidXPosition && (newX < minOffsetX || newX > maxOffsetX)) {
1413
+ if (validXPosition && (newX < minOffsetX || newX > maxOffsetX)) {
1403
1414
  // Correct the position
1404
1415
  newX = Math.max(minOffsetX, Math.min(newX, maxOffsetX));
1405
-
1406
- // also, make the velocity be ZERO; it is obviously not needed...
1407
- touch.decelerationVelocity.x = 0;
1408
1416
  }
1409
1417
 
1410
1418
  // now the y
1411
- if (forceValidYPosition && (newY < minOffsetY || newY > maxOffsetY)) {
1419
+ if (validYPosition && (newY < minOffsetY || newY > maxOffsetY)) {
1412
1420
  // again, correct it...
1413
1421
  newY = Math.max(minOffsetY, Math.min(newY, maxOffsetY));
1414
-
1415
- // also, make the velocity be ZERO; it is obviously not needed...
1416
- touch.decelerationVelocity.y = 0;
1417
1422
  }
1418
1423
 
1419
1424
 
@@ -1488,9 +1493,7 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1488
1493
  var self = this;
1489
1494
  touch.lastEventTime = Date.now();
1490
1495
  this.touch.timeout = setTimeout(function(){
1491
- SC.RunLoop.begin();
1492
1496
  self.decelerateAnimation();
1493
- SC.RunLoop.end();
1494
1497
  }, 10);
1495
1498
  },
1496
1499
 
@@ -1518,7 +1521,7 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1518
1521
  this.contentView = this.containerView.get('contentView');
1519
1522
 
1520
1523
  // create a horizontal scroller view if needed...
1521
- view = this.get("horizontalScrollerView");
1524
+ view = SC.platform.touch ? this.get("horizontalTouchScrollerView") : this.get("horizontalScrollerView");
1522
1525
  if (view) {
1523
1526
  if (this.get('hasHorizontalScroller')) {
1524
1527
  view = this.horizontalScrollerView = this.createChildView(view, {
@@ -1530,7 +1533,7 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1530
1533
  }
1531
1534
 
1532
1535
  // create a vertical scroller view if needed...
1533
- view = this.get("verticalScrollerView");
1536
+ view = SC.platform.touch ? this.get("verticalTouchScrollerView") : this.get("verticalScrollerView");
1534
1537
  if (view) {
1535
1538
  if (this.get('hasVerticalScroller')) {
1536
1539
  view = this.verticalScrollerView = this.createChildView(view, {
@@ -1641,7 +1644,7 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1641
1644
  this._scroll_contentWidth = width;
1642
1645
  this._scroll_contentHeight = height;
1643
1646
 
1644
- dim = this.get('frame');
1647
+ dim = this.getPath('containerView.frame');
1645
1648
  dimWidth = dim.width;
1646
1649
  dimHeight = dim.height;
1647
1650
 
@@ -1659,7 +1662,6 @@ SC.ScrollView = SC.View.extend(SC.Border, {
1659
1662
  if (this.get('autohidesVerticalScroller')) {
1660
1663
  this.set('isVerticalScrollerVisible', height > dimHeight);
1661
1664
  }
1662
- height -= this.get('verticalScrollerBottom') ;
1663
1665
  view.setIfChanged('maximum', height-dimHeight) ;
1664
1666
  view.setIfChanged('proportion', dimHeight/height);
1665
1667
  }