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
@@ -42,6 +42,15 @@ SC.ScrollerView = SC.View.extend(
42
42
  // PROPERTIES
43
43
  //
44
44
 
45
+ /**
46
+ If YES, a click on the track will cause the scrollbar to scroll to that position.
47
+ Otherwise, a click on the track will cause a page down.
48
+
49
+ In either case, alt-clicks will perform the opposite behavior.
50
+ */
51
+ shouldScrollToClick: NO,
52
+
53
+
45
54
  /**
46
55
  @private
47
56
  The in-touch-scroll value.
@@ -419,6 +428,24 @@ SC.ScrollerView = SC.View.extend(
419
428
  // ..........................................................
420
429
  // MOUSE EVENTS
421
430
  //
431
+
432
+ /**
433
+ Returns the value for a position within the scroller's frame.
434
+
435
+ @private
436
+ */
437
+ valueForPosition: function(pos) {
438
+ var max = this.get('maximum'),
439
+ trackLength = this.get('trackLength'),
440
+ thumbLength = this.get('thumbLength'),
441
+ capLength = this.get('capLength'),
442
+ capOverlap = this.get('capOverlap'), value;
443
+
444
+ value = pos - (capLength - capOverlap);
445
+ value = value / (trackLength - thumbLength);
446
+ value = value * max;
447
+ return value;
448
+ },
422
449
 
423
450
  /**
424
451
  Handles mouse down events and adjusts the value property depending where
@@ -429,9 +456,11 @@ SC.ScrollerView = SC.View.extend(
429
456
  If the user clicks the thumb, we note the position of the mouse event but
430
457
  do not take further action until they begin to drag.
431
458
 
432
- If the user clicks the track, we adjust the value a page at a time.
459
+ If the user clicks the track, we adjust the value a page at a time, unless
460
+ alt is pressed, in which case we scroll to that position.
433
461
 
434
- If the user clicks the buttons, we adjust the value by a fixed amount.
462
+ If the user clicks the buttons, we adjust the value by a fixed amount, unless
463
+ alt is pressed, in which case we adjust by a page.
435
464
 
436
465
  If the user clicks and holds on either the track or buttons, those actions
437
466
  are repeated until they release the mouse button.
@@ -441,11 +470,16 @@ SC.ScrollerView = SC.View.extend(
441
470
  */
442
471
  mouseDown: function(evt) {
443
472
  if (!this.get('isEnabled')) return NO;
473
+
474
+ // keep note of altIsDown for later.
475
+ this._altIsDown = evt.altKey;
476
+ this._shiftIsDown = evt.shiftKey;
444
477
 
445
478
  var target = evt.target,
446
479
  thumbPosition = this.get('thumbPosition'),
447
- value, clickLocation, clickOffset;
448
-
480
+ value, clickLocation, clickOffset,
481
+ scrollerLength = this.get('scrollerLength');
482
+
449
483
  // Determine the subcontrol that was clicked
450
484
  if (target.className.indexOf('thumb') >= 0) {
451
485
  // Convert the mouseDown coordinates to the view's coordinates
@@ -460,23 +494,30 @@ SC.ScrollerView = SC.View.extend(
460
494
  this._thumbOffset = clickLocation;
461
495
  this._mouseDownLocation = { x: evt.pageX, y: evt.pageY };
462
496
  this._thumbPositionAtDragStart = this.get('thumbPosition');
497
+ this._valueAtDragStart = this.get("value");
463
498
  } else if (target.className.indexOf('button-top') >= 0) {
464
499
  // User clicked the up/left button
465
- // Decrement the value by a fixed amount
466
- this.decrementProperty('value', 30);
500
+ // Decrement the value by a fixed amount or page size
501
+ this.decrementProperty('value', (this._altIsDown ? scrollerLength : 30));
467
502
  this.makeButtonActive('.button-top');
468
503
  // start a timer that will continue to fire until mouseUp is called
469
504
  this.startMouseDownTimer('scrollUp');
505
+ this._isScrollingUp = YES;
470
506
  } else if (target.className.indexOf('button-bottom') >= 0) {
471
507
  // User clicked the down/right button
472
508
  // Increment the value by a fixed amount
473
- this.incrementProperty('value', 30);
509
+ this.incrementProperty('value', (this._altIsDown ? scrollerLength : 30));
474
510
  this.makeButtonActive('.button-bottom');
475
511
  // start a timer that will continue to fire until mouseUp is called
476
512
  this.startMouseDownTimer('scrollDown');
513
+ this._isScrollingDown = YES;
477
514
  } else {
478
515
  // User clicked in the track
479
- var scrollerLength = this.get('scrollerLength'),
516
+ var scrollToClick = this.get("shouldScrollToClick");
517
+ if (evt.altKey) scrollToClick = !scrollToClick;
518
+
519
+ var trackLength = this.get('trackLength'),
520
+ thumbLength = this.get('thumbLength'),
480
521
  frame = this.convertFrameFromView({ x: evt.pageX, y: evt.pageY }),
481
522
  mousePosition;
482
523
 
@@ -488,16 +529,30 @@ SC.ScrollerView = SC.View.extend(
488
529
  this._mouseDownLocation = mousePosition = frame.x;
489
530
  break;
490
531
  }
491
-
492
- // Move the thumb up or down a page depending on whether the click
493
- // was above or below the thumb
494
- if (mousePosition < thumbPosition) {
495
- this.decrementProperty('value',scrollerLength);
496
- this.startMouseDownTimer('page');
532
+
533
+ if (scrollToClick) {
534
+ this.set('value', this.valueForPosition(mousePosition - (thumbLength / 2)));
535
+
536
+ // and start a normal mouse down
537
+ thumbPosition = this.get('thumbPosition');
538
+
539
+ this._thumbDragging = YES;
540
+ this._thumbOffset = {x: frame.x - thumbPosition, y: frame.y - thumbPosition };
541
+ this._mouseDownLocation = {x:evt.pageX, y:evt.pageY};
542
+ this._thumbPositionAtDragStart = thumbPosition;
543
+ this._valueAtDragStart = this.get("value");
497
544
  } else {
498
- this.incrementProperty('value', scrollerLength);
499
- this.startMouseDownTimer('page');
545
+ // Move the thumb up or down a page depending on whether the click
546
+ // was above or below the thumb
547
+ if (mousePosition < thumbPosition) {
548
+ this.decrementProperty('value',scrollerLength);
549
+ this.startMouseDownTimer('page');
550
+ } else {
551
+ this.incrementProperty('value', scrollerLength);
552
+ this.startMouseDownTimer('page');
553
+ }
500
554
  }
555
+
501
556
  }
502
557
 
503
558
  return YES;
@@ -529,6 +584,8 @@ SC.ScrollerView = SC.View.extend(
529
584
  }
530
585
 
531
586
  this._thumbDragging = NO;
587
+ this._isScrollingDown = NO;
588
+ this._isScrollingUp = NO;
532
589
 
533
590
  return ret;
534
591
  },
@@ -537,29 +594,99 @@ SC.ScrollerView = SC.View.extend(
537
594
  If the user began the drag on the thumb, we calculate the difference
538
595
  between the mouse position at click and where it is now. We then
539
596
  offset the thumb by that amount, within the bounds of the track.
597
+
598
+ If the user began scrolling up/down using the buttons, this will track
599
+ what component they are currently over, changing the scroll direction.
540
600
 
541
601
  @param evt {SC.Event} the mousedragged event
542
602
  @private
543
603
  */
544
604
  mouseDragged: function(evt) {
545
605
  var value, length, delta, thumbPosition,
546
- thumbPositionAtDragStart = this._thumbPositionAtDragStart;
606
+ target = evt.target,
607
+ thumbPositionAtDragStart = this._thumbPositionAtDragStart,
608
+ isScrollingUp = this._isScrollingUp,
609
+ isScrollingDown = this._isScrollingDown,
610
+ active = this._scs_buttonActive,
611
+ timer;
547
612
 
548
613
  // Only move the thumb if the user clicked on the thumb during mouseDown
549
- if (!this._thumbDragging) return NO;
614
+ if (this._thumbDragging) {
615
+
616
+ switch (this.get('layoutDirection')) {
617
+ case SC.LAYOUT_VERTICAL:
618
+ delta = (evt.pageY - this._mouseDownLocation.y);
619
+ break;
620
+ case SC.LAYOUT_HORIZONTAL:
621
+ delta = (evt.pageX - this._mouseDownLocation.x);
622
+ break;
623
+ }
624
+
625
+ // if we are in alt now, but were not before, update the old thumb position to the new one
626
+ if (evt.altKey) {
627
+ if (!this._altIsDown || (this._shiftIsDown !== evt.shiftKey)) {
628
+ thumbPositionAtDragStart = this._thumbPositionAtDragStart = thumbPositionAtDragStart+delta;
629
+ delta = 0;
630
+ this._mouseDownLocation = { x: evt.pageX, y: evt.pageY };
631
+ this._valueAtDragStart = this.get("value");
632
+ }
633
+
634
+ // because I feel like it. Probably almost no one will find this tiny, buried feature.
635
+ // Too bad.
636
+ if (evt.shiftKey) delta = -delta;
637
+
638
+ this.set('value', Math.round(this._valueAtDragStart + delta * 2));
639
+ } else {
640
+ thumbPosition = thumbPositionAtDragStart + delta;
641
+ length = this.get('trackLength') - this.get('thumbLength');
642
+ this.set('value', Math.round( (thumbPosition/length) * this.get('maximum')));
643
+ }
644
+
645
+ } else if (isScrollingUp || isScrollingDown) {
646
+ var nowScrollingUp = NO, nowScrollingDown = NO;
647
+
648
+ var topButtonRect = this.$('.button-top')[0].getBoundingClientRect();
649
+ var bottomButtonRect = this.$('.button-bottom')[0].getBoundingClientRect();
650
+
651
+ switch (this.get('layoutDirection')) {
652
+ case SC.LAYOUT_VERTICAL:
653
+ if (evt.pageY < topButtonRect.bottom) nowScrollingUp = YES;
654
+ else nowScrollingDown = YES;
655
+ break;
656
+ case SC.LAYOUT_HORIZONTAL:
657
+ if (evt.pageX < topButtonRect.right) nowScrollingUp = YES;
658
+ else nowScrollingDown = YES;
659
+ break;
660
+ }
661
+
662
+ if ((nowScrollingUp || nowScrollingDown) && nowScrollingUp !== isScrollingUp){
663
+ //
664
+ // STOP OLD
665
+ //
666
+
667
+ // If we have an element that was set as active in mouseDown,
668
+ // remove its active state
669
+ if (active) {
670
+ active.removeClass('active');
671
+ }
550
672
 
551
- switch (this.get('layoutDirection')) {
552
- case SC.LAYOUT_VERTICAL:
553
- delta = (evt.pageY - this._mouseDownLocation.y);
554
- break;
555
- case SC.LAYOUT_HORIZONTAL:
556
- delta = (evt.pageX - this._mouseDownLocation.x);
557
- break;
673
+ // Stop firing repeating events after mouseup
674
+ this._mouseDownTimerAction = nowScrollingUp ? "scrollUp" : "scrollDown";
675
+
676
+ if (nowScrollingUp) {
677
+ this.makeButtonActive('.button-top');
678
+ } else if (nowScrollingDown) {
679
+ this.makeButtonActive('.button-bottom');
680
+ }
681
+
682
+ this._isScrollingUp = nowScrollingUp;
683
+ this._isScrollingDown = nowScrollingDown;
684
+ }
558
685
  }
559
-
560
- thumbPosition = thumbPositionAtDragStart + delta;
561
- length = this.get('trackLength') - this.get('thumbLength');
562
- this.set('value', Math.round( (thumbPosition/length) * this.get('maximum')));
686
+
687
+
688
+ this._altIsDown = evt.altKey;
689
+ this._shiftIsDown = evt.shiftKey;
563
690
  return YES;
564
691
  },
565
692
 
@@ -568,15 +695,17 @@ SC.ScrollerView = SC.View.extend(
568
695
  clicks a button or inside the track to move a page at a time. If they
569
696
  continue holding the mouse button down, we want to repeat that action
570
697
  after a small delay. This timer will be invalidated in mouseUp.
698
+
699
+ Specify "immediate" as YES if it should not wait.
571
700
 
572
701
  @private
573
702
  */
574
- startMouseDownTimer: function(action) {
703
+ startMouseDownTimer: function(action, immediate) {
575
704
  var timer;
576
705
 
577
706
  this._mouseDownTimerAction = action;
578
707
  this._mouseDownTimer = SC.Timer.schedule({
579
- target: this, action: this.mouseDownTimerDidFire, interval: 300
708
+ target: this, action: this.mouseDownTimerDidFire, interval: immediate ? 0 : 300
580
709
  });
581
710
  },
582
711
 
@@ -604,10 +733,10 @@ SC.ScrollerView = SC.View.extend(
604
733
 
605
734
  switch (this._mouseDownTimerAction) {
606
735
  case 'scrollDown':
607
- this.incrementProperty('value', 30);
736
+ this.incrementProperty('value', this._altIsDown ? scrollerLength : 30);
608
737
  break;
609
738
  case 'scrollUp':
610
- this.decrementProperty('value', 30);
739
+ this.decrementProperty('value', this._altIsDown ? scrollerLength : 30);
611
740
  break;
612
741
  case 'page':
613
742
  timerInterval = 150;
@@ -636,4 +765,120 @@ SC.ScrollerView = SC.View.extend(
636
765
  }
637
766
  });
638
767
 
768
+ // TO BE EVENTUALLY REPLACED W/RENDERERS FROM QUILMES
769
+ SC.TouchScrollerView = SC.ScrollerView.extend({
770
+ classNames: ['sc-touch-scroller-view'],
771
+ scrollbarThickness: 12,
772
+ capLength: 5,
773
+ capOverlap: 0,
774
+ hasButtons: NO,
775
+ buttonOverlap: 36,
776
+
777
+ adjustThumb: function(thumb, position, length) {
778
+ var thumbInner = this.$('.thumb-inner');
779
+ var max = this.get("scrollerLength") - this.capLength, min = this.get("minimum") + this.capLength;
780
+
781
+ if (position + length > max) {
782
+ position = Math.min(max - 20, position);
783
+ length = max - position;
784
+ }
785
+
786
+ if (position < min) {
787
+ length -= min - position;
788
+ position = min;
789
+ }
790
+
791
+ switch (this.get('layoutDirection')) {
792
+ case SC.LAYOUT_VERTICAL:
793
+ if (this._thumbPosition !== position) thumb.css('-webkit-transform', 'translate3d(0px,' + position + 'px,0px)');
794
+ if (this._thumbSize !== length) {
795
+ thumbInner.css('-webkit-transform', 'translate3d(0px,' + Math.round(length - 1044) + 'px,0px)');
796
+ }
797
+ break;
798
+ case SC.LAYOUT_HORIZONTAL:
799
+ if (this._thumbPosition !== position) thumb.css('-webkit-transform', 'translate3d(' + position + 'px,0px,0px)');
800
+ if (this._thumbSize !== length) {
801
+ thumbInner.css('-webkit-transform', 'translate3d(' + Math.round(length - 1044) + 'px,0px,0px)');
802
+ }
803
+ break;
804
+ }
805
+
806
+ this._thumbPosition = position;
807
+ this._thumbSize = length;
808
+ },
809
+
810
+ render: function(context, firstTime) {
811
+ var classNames = [],
812
+ buttons = '',
813
+ thumbPosition, thumbLength, thumbCenterLength, thumbElement,
814
+ value, max, scrollerLength, length, pct;
815
+
816
+ // We set a class name depending on the layout direction so that we can
817
+ // style them differently using CSS.
818
+ switch (this.get('layoutDirection')) {
819
+ case SC.LAYOUT_VERTICAL:
820
+ classNames.push('sc-vertical');
821
+ break;
822
+ case SC.LAYOUT_HORIZONTAL:
823
+ classNames.push('sc-horizontal');
824
+ break;
825
+ }
639
826
 
827
+ // The appearance of the scroller changes if disabled
828
+ if (!this.get('isEnabled')) classNames.push('disabled');
829
+ // Whether to hide the thumb and buttons
830
+ if (this.get('controlsHidden')) classNames.push('controls-hidden');
831
+
832
+ // Change the class names of the DOM element all at once to improve
833
+ // performance
834
+ context.addClass(classNames);
835
+
836
+ // Calculate the position and size of the thumb
837
+ thumbLength = this.get('thumbLength');
838
+ thumbPosition = this.get('thumbPosition');
839
+
840
+ // If this is the first time, generate the actual HTML
841
+ if (firstTime) {
842
+ if (this.get('hasButtons')) {
843
+ buttons = '<div class="button-bottom"></div><div class="button-top"></div>';
844
+ } else {
845
+ buttons = '<div class="endcap"></div>';
846
+ }
847
+
848
+ switch (this.get('layoutDirection')) {
849
+ case SC.LAYOUT_VERTICAL:
850
+ context.push('<div class="track"></div>',
851
+ '<div class="cap"></div>',
852
+ buttons,
853
+ '<div class="thumb">',
854
+ '<div class="thumb-top"></div>',
855
+ '<div class="thumb-clip">',
856
+ '<div class="thumb-inner" style="-webkit-transform: translateY('+(thumbLength-1044)+'px);">',
857
+ '<div class="thumb-center"></div>',
858
+ '<div class="thumb-bottom"></div></div></div></div>');
859
+ break;
860
+ case SC.LAYOUT_HORIZONTAL:
861
+ context.push('<div class="track"></div>',
862
+ '<div class="cap"></div>',
863
+ buttons,
864
+ '<div class="thumb">',
865
+ '<div class="thumb-top"></div>',
866
+ '<div class="thumb-clip">',
867
+ '<div class="thumb-inner" style="-webkit-transform: translateX('+(thumbLength-1044)+'px);">',
868
+ '<div class="thumb-center"></div>',
869
+ '<div class="thumb-bottom"></div></div></div></div>');
870
+ }
871
+ } else {
872
+ // The HTML has already been generated, so all we have to do is
873
+ // reposition and resize the thumb
874
+
875
+ // If we aren't displaying controls don't bother
876
+ if (this.get('controlsHidden')) return;
877
+
878
+ thumbElement = this.$('.thumb');
879
+
880
+ this.adjustThumb(thumbElement, thumbPosition, thumbLength);
881
+ }
882
+ }
883
+
884
+ });
@@ -43,7 +43,7 @@ SC.SegmentedView = SC.View.extend(SC.Control,
43
43
 
44
44
  classNames: ['sc-segmented-view'],
45
45
 
46
- controlStyle: 'square',
46
+ theme: 'square',
47
47
 
48
48
  /**
49
49
  The value of the segmented view.
@@ -196,16 +196,7 @@ SC.SegmentedView = SC.View.extend(SC.Control,
196
196
  // if the item is a string, build the array using defaults...
197
197
  itemType = SC.typeOf(item);
198
198
  if (itemType === SC.T_STRING) {
199
- cur = {
200
- title: item.humanize().titleize(),
201
- value: item,
202
- isEnabled: YES,
203
- icon: null,
204
- width: null,
205
- toolTip: null,
206
- index: idx
207
- };
208
- // cur = [item.humanize().titleize(), item, YES, null, null, null, idx] ;
199
+ cur = [item.humanize().titleize(), item, YES, null, null, null, idx] ;
209
200
 
210
201
  // if the item is not an array, try to use the itemKeys.
211
202
  } else if (itemType !== SC.T_ARRAY) {
@@ -216,33 +207,23 @@ SC.SegmentedView = SC.View.extend(SC.Control,
216
207
 
217
208
  // now loop through the keys and try to get the values on the item
218
209
  cur = keys.map(fetchItem, item);
219
-
220
- // create the actual item
221
- cur = {
222
- title: cur[0],
223
- value: cur[1],
224
- isEnabled: cur[2],
225
- icon: cur[3],
226
- width: cur[4],
227
- toolTip: cur[5],
228
- index: idx
229
- };
210
+ cur[cur.length] = idx; // save current index
230
211
 
231
212
  // special case 1...if title key is null, try to make into string
232
- if (!keys[0] && item.toString) cur.title = item.toString();
213
+ if (!keys[0] && item.toString) cur[0] = item.toString();
233
214
 
234
215
  // special case 2...if value key is null, use item itself
235
- if (!keys[1]) cur.value = item;
216
+ if (!keys[1]) cur[1] = item;
236
217
 
237
218
  // special case 3...if isEnabled is null, default to yes.
238
- if (!keys[2]) cur.isEnabled = YES ;
219
+ if (!keys[2]) cur[2] = YES ;
239
220
  }
240
221
 
241
222
  // finally, be sure to loc the title if needed
242
- if (loc && cur.title) cur.title = cur.title.loc();
223
+ if (loc && cur[0]) cur[0] = cur[0].loc();
243
224
 
244
225
  // finally, be sure to loc the toolTip if needed
245
- if (loc && cur.toolTip && SC.typeOf(cur.toolTip) === SC.T_STRING) cur.toolTip = cur.toolTip.loc();
226
+ if (loc && cur[5] && SC.typeOf(cur[5]) === SC.T_STRING) cur[5] = cur[5].loc();
246
227
 
247
228
  // add to return array
248
229
  ret[ret.length] = cur;
@@ -274,10 +255,6 @@ SC.SegmentedView = SC.View.extend(SC.Control,
274
255
  },
275
256
 
276
257
  init: function() {
277
- var classnames = SC.clone(this.get('classNames'));
278
- classnames.push(this.get('controlStyle'));
279
- this.set('classNames', classnames);
280
-
281
258
  sc_super();
282
259
  this.itemsDidChange() ;
283
260
  },
@@ -289,34 +266,110 @@ SC.SegmentedView = SC.View.extend(SC.Control,
289
266
 
290
267
  displayProperties: ['displayItems', 'value', 'activeIndex'],
291
268
 
292
- createRenderer: function(theme) {
293
- return theme.segmented();
269
+
270
+ render: function(context, firstTime) {
271
+
272
+ // collect some data
273
+ var items = this.get('displayItems');
274
+
275
+ var theme = this.get('theme');
276
+ if (theme) context.addClass(theme);
277
+ if (firstTime || this.get('renderLikeFirstTime')) {
278
+ this._seg_displayItems = items; // save for future
279
+ this.renderDisplayItems(context, items) ;
280
+ context.addStyle('text-align', this.get('align'));
281
+ this.set('renderLikeFirstTime',NO);
282
+ }else{
283
+ // update selection and active state
284
+ var activeIndex = this.get('activeIndex'),
285
+ value = this.get('value'),
286
+ isArray = SC.isArray(value);
287
+ if (isArray && value.get('length')===1) {
288
+ value = value.objectAt(0); isArray = NO ;
289
+ }
290
+ var names = {}, // reuse
291
+ loc = items.length, cq = this.$('.sc-segment'), item;
292
+ while(--loc>=0) {
293
+ item = items[loc];
294
+ names.sel = isArray ? (value.indexOf(item[1])>=0) : (item[1]===value);
295
+ names.active = (activeIndex === loc);
296
+ names.disabled = !item[2];
297
+ SC.$(cq[loc]).setClass(names);
298
+ }
299
+ names = items = value = items = null; // cleanup
300
+ }
294
301
  },
295
302
 
296
- updateRenderer: function(r) {
297
- var items = this.get('displayItems'), value = this.get('value'), isArray = SC.isArray(value),
298
- activeIndex = this.get("activeIndex"), item;
299
- for (var idx = 0, len = items.length; idx < len; idx++) {
300
- item = items[idx];
303
+ /**
304
+ Actually generates the segment HTML for the display items. This method
305
+ is called the first time a view is constructed and any time the display
306
+ items change thereafter. This will construct the HTML but will not set
307
+ any "transient" states such as the global isEnabled property or selection.
308
+ */
309
+ renderDisplayItems: function(context, items) {
310
+ var value = this.get('value'),
311
+ isArray = SC.isArray(value),
312
+ activeIndex = this.get('activeIndex'),
313
+ len = items.length,
314
+ title, icon, url, className, ic, item, toolTip, width, i, stylesHash,
315
+ classArray;
316
+
317
+ for(i=0; i< len; i++){
318
+ ic = context.begin('a').attr('role', 'button');
319
+ item=items[i];
320
+ title = item[0];
321
+ icon = item[3];
322
+ toolTip = item[5];
301
323
 
302
- // change active
303
- if (activeIndex == idx) item.isActive = YES;
304
- else item.isActive = NO;
324
+ stylesHash = {};
325
+ classArray = [];
326
+
327
+ if (this.get('layoutDirection') == SC.LAYOUT_HORIZONTAL) {
328
+ stylesHash['display'] = 'inline-block' ;
329
+ }
330
+
331
+ classArray.push('sc-segment');
305
332
 
306
- // chance selection
307
- if (isArray ? value.indexOf(item.value) : value === item.value) {
308
- item.isSelected = YES;
333
+ if(!item[2]){
334
+ classArray.push('disabled');
309
335
  }
310
- else item.isSelected = NO;
311
- }
312
-
313
- // set the attributes
314
- r.attr({
315
- segments: items,
316
- align: this.get('align'),
317
- layoutDirection: this.get('layoutDirection')
318
- });
319
- },
336
+ if(i===0){
337
+ classArray.push('sc-first-segment');
338
+ }
339
+ if(i===(len-1)){
340
+ classArray.push('sc-last-segment');
341
+ }
342
+ if(i!==0 && i!==(len-1)){
343
+ classArray.push('sc-middle-segment');
344
+ }
345
+ if( isArray ? (value.indexOf(item[1])>=0) : (item[1]===value)){
346
+ classArray.push('sel');
347
+ }
348
+ if(activeIndex === i) {
349
+ classArray.push('active') ;
350
+ }
351
+ if(item[4]){
352
+ width=item[4];
353
+ stylesHash['width'] = width+'px';
354
+ }
355
+ ic.addClass(classArray);
356
+ ic.addStyle(stylesHash);
357
+ if(toolTip) {
358
+ ic.attr('title', toolTip) ;
359
+ }
360
+
361
+ if (icon) {
362
+ url = (icon.indexOf('/')>=0) ? icon : SC.BLANK_IMAGE_URL;
363
+ className = (url === icon) ? '' : icon ;
364
+ icon = '<img src="'+url+'" alt="" class="icon '+className+'" />';
365
+ } else {
366
+ icon = '';
367
+ }
368
+ ic.push('<span class="sc-button-inner"><label class="sc-button-label">',
369
+ icon+title, '</label></span>');
370
+ ic.end();
371
+ }
372
+ },
320
373
 
321
374
  // ..........................................................
322
375
  // EVENT HANDLING
@@ -327,7 +380,40 @@ SC.SegmentedView = SC.View.extend(SC.Control,
327
380
  event occurred.
328
381
  */
329
382
  displayItemIndexForEvent: function(evt) {
330
- if (this.renderer) return this.renderer.indexForEvent(evt);
383
+ return this.displayItemIndexForPosition(evt.pageX, evt.pageY);
384
+ },
385
+
386
+ /**
387
+ Determines an item index based on a position. The position does not have to be within the view's
388
+ bounding rectangle. If no item is at that position, this will return -1.
389
+
390
+ NOTE: Eventually, this sort of function should be implemented in a renderer.
391
+ */
392
+ displayItemIndexForPosition: function(pageX, pageY) {
393
+ // find the segments
394
+ var segments = this.$('.sc-segment'), len = segments.length, idx, segment, r;
395
+
396
+ // loop through them (yes, this comment is mostly because it looks nice in TextMate)
397
+ for (idx = 0; idx < len; idx++) {
398
+ // get the segment
399
+ segment = segments[idx];
400
+
401
+ // get its rectangle
402
+ r = segment.getBoundingClientRect();
403
+
404
+ // based on orientation, check the position left-to-right or up-to-down.
405
+ if (this.get('layoutDirection') == SC.LAYOUT_VERTICAL) {
406
+ // if it fits, return it right away
407
+ if (pageY > r.top && pageY < r.bottom) return idx;
408
+ }
409
+ else {
410
+ // if it fits, return it right away.
411
+ if (pageX > r.left && pageX < r.right) return idx;
412
+ }
413
+ }
414
+
415
+ // if we didn't find anything, return the old standard -1 for "not found."
416
+ return -1;
331
417
  },
332
418
 
333
419
  keyDown: function(evt) {
@@ -347,7 +433,7 @@ SC.SegmentedView = SC.View.extend(SC.Control,
347
433
  if (evt.which === 39 || evt.which === 40) {
348
434
  for(i=0; i< len-1; i++){
349
435
  item=items[i];
350
- if( isArray ? (value.indexOf(item.value)>=0) : (item.value===value)){
436
+ if( isArray ? (value.indexOf(item[1])>=0) : (item[1]===value)){
351
437
  this.triggerItemAtIndex(i+1);
352
438
  }
353
439
  }
@@ -356,7 +442,7 @@ SC.SegmentedView = SC.View.extend(SC.Control,
356
442
  else if (evt.which === 37 || evt.which === 38) {
357
443
  for(i=1; i< len; i++){
358
444
  item=items[i];
359
- if( isArray ? (value.indexOf(item.value)>=0) : (item.value===value)){
445
+ if( isArray ? (value.indexOf(item[1])>=0) : (item[1]===value)){
360
446
  this.triggerItemAtIndex(i-1);
361
447
  }
362
448
  }
@@ -486,14 +572,14 @@ SC.SegmentedView = SC.View.extend(SC.Control,
486
572
  item = items.objectAt(idx),
487
573
  sel, value, val, empty, mult;
488
574
 
489
- if (!item.isEnabled) return this; // nothing to do!
575
+ if (!item[2]) return this; // nothing to do!
490
576
 
491
577
  empty = this.get('allowsEmptySelection');
492
578
  mult = this.get('allowsMultipleSelection');
493
579
 
494
580
 
495
581
  // get new value... bail if not enabled. Also save original for later.
496
- sel = item.value;
582
+ sel = item[1];
497
583
  value = val = this.get('value') ;
498
584
  if (!SC.isArray(value)) value = [value]; // force to array
499
585
 
@@ -536,7 +622,7 @@ SC.SegmentedView = SC.View.extend(SC.Control,
536
622
  action, target = null,
537
623
  resp = this.getPath('pane.rootResponder');
538
624
 
539
- if (actionKey && (item = this.get('items').objectAt(item.index))) {
625
+ if (actionKey && (item = this.get('items').objectAt(item[6]))) {
540
626
  // get the source item from the item array. use the index stored...
541
627
  action = item.get ? item.get(actionKey) : item[actionKey];
542
628
  if (targetKey) {