sproutcore 1.9.2 → 1.10.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (746) hide show
  1. checksums.yaml +15 -0
  2. data/VERSION.yml +2 -2
  3. data/bin/sc-build +12 -9
  4. data/bin/sc-build-number +12 -9
  5. data/bin/sc-docs +12 -15
  6. data/bin/sc-gen +12 -9
  7. data/bin/sc-init +12 -9
  8. data/bin/sc-manifest +12 -9
  9. data/bin/sc-server +12 -9
  10. data/bin/sproutcore +12 -9
  11. data/lib/frameworks/sproutcore/Buildfile +14 -17
  12. data/lib/frameworks/sproutcore/CHANGELOG.md +214 -3
  13. data/lib/frameworks/sproutcore/README.md +4 -1
  14. data/lib/frameworks/sproutcore/apps/greenhouse/Buildfile +13 -0
  15. data/lib/frameworks/sproutcore/{frameworks/experimental/apps/greenhouse/README → apps/greenhouse/README.md} +1 -1
  16. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/TODO +0 -0
  17. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/beautify.js +0 -0
  18. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/design.js +3 -3
  19. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/file.js +3 -3
  20. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/files.js +3 -3
  21. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/layout.js +9 -9
  22. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/library.js +23 -23
  23. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/page.js +1 -1
  24. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/property.js +1 -1
  25. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/property_editor.js +2 -2
  26. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/target.js +1 -1
  27. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/targets.js +12 -12
  28. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/view_configs.js +15 -15
  29. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/core.js +14 -14
  30. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/core_file.js +0 -0
  31. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/data_source.js +42 -42
  32. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/app_page.js +45 -45
  33. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/app-selector.css +0 -0
  34. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/button.css +0 -0
  35. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/dock.css +0 -0
  36. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/general.css +0 -0
  37. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/icons.css +5 -0
  38. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/main-page.css +0 -0
  39. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/menu.css +0 -0
  40. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/modal.css +0 -0
  41. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/picker.css +0 -0
  42. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/search.css +0 -0
  43. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/text-field.css +0 -0
  44. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/dialogs.js +0 -0
  45. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500.eot +0 -0
  46. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500.otf +0 -0
  47. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500.woff +0 -0
  48. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500_italic.eot +0 -0
  49. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500_italic.otf +0 -0
  50. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500_italic.woff +0 -0
  51. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/app-selector/choose-app.png +0 -0
  52. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/app-selector/list-item-sel.png +0 -0
  53. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-l.png +0 -0
  54. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-m.png +0 -0
  55. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-r.png +0 -0
  56. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-l.png +0 -0
  57. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-m.png +0 -0
  58. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-r.png +0 -0
  59. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/active-l.png +0 -0
  60. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/active-r.png +0 -0
  61. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-l.png +0 -0
  62. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-r.png +0 -0
  63. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/regular-l.png +0 -0
  64. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/regular-r.png +0 -0
  65. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-l.png +0 -0
  66. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-r.png +0 -0
  67. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-l.png +0 -0
  68. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-r.png +0 -0
  69. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-l.png +0 -0
  70. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-r.png +0 -0
  71. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/active-l.png +0 -0
  72. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/active-m.png +0 -0
  73. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/active-r.png +0 -0
  74. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-l.png +0 -0
  75. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-r.png +0 -0
  76. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-l.png +0 -0
  77. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-r.png +0 -0
  78. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-l.png +0 -0
  79. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-r.png +0 -0
  80. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-l.png +0 -0
  81. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-r.png +0 -0
  82. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/disabled-l.png +0 -0
  83. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/disabled-m.png +0 -0
  84. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/disabled-r.png +0 -0
  85. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/regular-l.png +0 -0
  86. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/regular-m.png +0 -0
  87. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/regular-r.png +0 -0
  88. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-l.png +0 -0
  89. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-m.png +0 -0
  90. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-r.png +0 -0
  91. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-l.png +0 -0
  92. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-m.png +0 -0
  93. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-r.png +0 -0
  94. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-l.png +0 -0
  95. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-m.png +0 -0
  96. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-r.png +0 -0
  97. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/active-m.png +0 -0
  98. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/disabled-m.png +0 -0
  99. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/regular-m.png +0 -0
  100. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/sel-active-m.png +0 -0
  101. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/sel-disabled-m.png +0 -0
  102. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/sel-m.png +0 -0
  103. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/active-l.png +0 -0
  104. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/active-r.png +0 -0
  105. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/disabled-l.png +0 -0
  106. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/disabled-r.png +0 -0
  107. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/regular-l.png +0 -0
  108. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/regular-r.png +0 -0
  109. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-active-l.png +0 -0
  110. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-active-r.png +0 -0
  111. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-l.png +0 -0
  112. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-r.png +0 -0
  113. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-l.png +0 -0
  114. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-r.png +0 -0
  115. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/actions-active.png +0 -0
  116. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/actions.png +0 -0
  117. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/inspector-active.png +0 -0
  118. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/inspector.png +0 -0
  119. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/library-active.png +0 -0
  120. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/library.png +0 -0
  121. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/projects-active.png +0 -0
  122. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/projects.png +0 -0
  123. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/run-active.png +0 -0
  124. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/run.png +0 -0
  125. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/save-active.png +0 -0
  126. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/save.png +0 -0
  127. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/logos/greenhouse-l.png +0 -0
  128. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/logos/greenhouse-s.png +0 -0
  129. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/logos/sproutcore.png +0 -0
  130. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/main-bg.png +0 -0
  131. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/bottom-left.png +0 -0
  132. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/bottom-right.png +0 -0
  133. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/bottom.png +0 -0
  134. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/close-active.png +0 -0
  135. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/close.png +0 -0
  136. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/left.png +0 -0
  137. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-bottom.png +0 -0
  138. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-left.png +0 -0
  139. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-right.png +0 -0
  140. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-top.png +0 -0
  141. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/right.png +0 -0
  142. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/search-active.png +0 -0
  143. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/search.png +0 -0
  144. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/top-left.png +0 -0
  145. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/top-right.png +0 -0
  146. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/top.png +0 -0
  147. data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/images/sc-icon-sproutcore-16.png +0 -0
  148. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/toolbar-bg.png +0 -0
  149. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/inspectors.js +0 -0
  150. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/loading.rhtml +0 -0
  151. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/main_page.js +0 -0
  152. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/strings.js +0 -0
  153. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/fixtures/file.js +0 -0
  154. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/main.js +5 -5
  155. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/mixins/drop_down.js +14 -14
  156. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/design.js +4 -4
  157. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/dir.js +12 -12
  158. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/file.js +7 -9
  159. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/target.js +12 -12
  160. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/view_config.js +10 -10
  161. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/resources/test_page.js +0 -0
  162. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/inspector.js +11 -11
  163. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/library.js +10 -10
  164. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/main.js +26 -25
  165. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/modals.js +10 -10
  166. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/ready.js +15 -15
  167. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/design.js +0 -0
  168. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/designs.js +0 -0
  169. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/file.js +0 -0
  170. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/files.js +0 -0
  171. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/models/file.js +0 -0
  172. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/models/view_config.js +0 -0
  173. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/views/list_item.js +0 -0
  174. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/views/plist_item.js +1 -5
  175. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/theme.js +6 -6
  176. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/anchor.js +43 -43
  177. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/application_list_item.js +2 -2
  178. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/event_blocker.js +7 -7
  179. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/label_designer.js +0 -0
  180. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/list_item.js +8 -8
  181. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/plist_item.js +23 -23
  182. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/simple_button.js +31 -31
  183. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/tear_off_picker.js +12 -12
  184. data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/web.js +5 -5
  185. data/lib/frameworks/sproutcore/apps/media_examples/core.js +5 -6
  186. data/lib/frameworks/sproutcore/apps/media_examples/views/audio_view.js +16 -17
  187. data/lib/frameworks/sproutcore/apps/media_examples/views/camera_view.js +4 -5
  188. data/lib/frameworks/sproutcore/apps/media_examples/views/capabilities_view.js +17 -18
  189. data/lib/frameworks/sproutcore/apps/media_examples/views/microphone_view.js +4 -5
  190. data/lib/frameworks/sproutcore/apps/media_examples/views/video_view.js +18 -19
  191. data/lib/frameworks/sproutcore/apps/showcase/Buildfile +2 -2
  192. data/lib/frameworks/sproutcore/apps/showcase/README +1 -1
  193. data/lib/frameworks/sproutcore/apps/showcase/controllers/source_tree_controller.js +27 -7
  194. data/lib/frameworks/sproutcore/apps/showcase/core.js +6 -4
  195. data/lib/frameworks/sproutcore/apps/showcase/main.js +2 -1
  196. data/lib/frameworks/sproutcore/apps/showcase/patch.diff +529 -0
  197. data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-128.png +0 -0
  198. data/lib/frameworks/sproutcore/apps/showcase/resources/main_page.js +3 -2
  199. data/lib/frameworks/sproutcore/apps/showcase/resources/stylesheet.css +35 -16
  200. data/lib/frameworks/sproutcore/apps/showcase/resources/views_page.js +195 -10
  201. data/lib/frameworks/sproutcore/apps/showcase/system/views_item_content.js +2 -1
  202. data/lib/frameworks/sproutcore/apps/showcase/theme.js +2 -1
  203. data/lib/frameworks/sproutcore/apps/showcase/views/checkbox_views.js +2 -1
  204. data/lib/frameworks/sproutcore/apps/showcase/views/date_field_views.js +2 -1
  205. data/lib/frameworks/sproutcore/apps/showcase/views/disclosure_views.js +2 -1
  206. data/lib/frameworks/sproutcore/apps/showcase/views/label_views.js +2 -1
  207. data/lib/frameworks/sproutcore/apps/showcase/views/list_views.js +2 -1
  208. data/lib/frameworks/sproutcore/apps/showcase/views/popup_button_views.js +3 -2
  209. data/lib/frameworks/sproutcore/apps/showcase/views/progress_views.js +2 -1
  210. data/lib/frameworks/sproutcore/apps/showcase/views/radio_views.js +2 -1
  211. data/lib/frameworks/sproutcore/apps/showcase/views/scroll_views.js +2 -1
  212. data/lib/frameworks/sproutcore/apps/showcase/views/segmented_views.js +2 -1
  213. data/lib/frameworks/sproutcore/apps/showcase/views/select_views.js +10 -9
  214. data/lib/frameworks/sproutcore/apps/showcase/views/slider_views.js +2 -1
  215. data/lib/frameworks/sproutcore/apps/showcase/views/source_list_views.js +2 -1
  216. data/lib/frameworks/sproutcore/apps/showcase/views/split_views.js +2 -1
  217. data/lib/frameworks/sproutcore/apps/showcase/views/stacked_views.js +2 -1
  218. data/lib/frameworks/sproutcore/apps/showcase/views/static_content_views.js +2 -1
  219. data/lib/frameworks/sproutcore/apps/showcase/views/tab_views.js +2 -1
  220. data/lib/frameworks/sproutcore/apps/showcase/views/text_field_views.js +2 -1
  221. data/lib/frameworks/sproutcore/apps/showcase/views/toolbar_views.js +2 -1
  222. data/lib/frameworks/sproutcore/apps/showcase/views/views_item_view.js +15 -6
  223. data/lib/frameworks/sproutcore/apps/showcase/views/views_list_view.js +5 -4
  224. data/lib/frameworks/sproutcore/apps/showcase/views/web_views.js +2 -1
  225. data/lib/frameworks/sproutcore/apps/showcase/views/well_views.js +2 -1
  226. data/lib/frameworks/sproutcore/apps/showcase/views/workspace_views.js +2 -1
  227. data/lib/frameworks/sproutcore/apps/statechart_routing/core.js +5 -5
  228. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/login_page.js +15 -15
  229. data/lib/frameworks/sproutcore/apps/statechart_routing/resources/styles.css +3 -0
  230. data/lib/frameworks/sproutcore/apps/tests/controllers/source.js +11 -11
  231. data/lib/frameworks/sproutcore/apps/tests/controllers/target.js +6 -12
  232. data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +28 -33
  233. data/lib/frameworks/sproutcore/apps/tests/controllers/{detail.js → test.js} +14 -12
  234. data/lib/frameworks/sproutcore/apps/tests/controllers/tests.js +11 -15
  235. data/lib/frameworks/sproutcore/apps/tests/core.js +8 -113
  236. data/lib/frameworks/sproutcore/apps/tests/english.lproj/main_page.css +9 -19
  237. data/lib/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +81 -92
  238. data/lib/frameworks/sproutcore/apps/tests/english.lproj/strings.js +3 -1
  239. data/lib/frameworks/sproutcore/apps/tests/main.js +8 -13
  240. data/lib/frameworks/sproutcore/apps/tests/statechart.js +268 -0
  241. data/lib/frameworks/sproutcore/apps/tests/views/offset_checkbox.js +4 -4
  242. data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +16 -16
  243. data/lib/frameworks/sproutcore/apps/welcome/core.js +9 -9
  244. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/images/sproutcore.png +0 -0
  245. data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +22 -25
  246. data/lib/frameworks/sproutcore/apps/welcome/main.js +3 -3
  247. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-landscape.jpg b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-landscape.jpg +0 -0
  248. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-landscape.png b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-landscape.png +0 -0
  249. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-portrait.jpg b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-portrait.jpg +0 -0
  250. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-portrait.png b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-portrait.png +0 -0
  251. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup.png b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup.png +0 -0
  252. data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +21 -7
  253. data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +35 -2
  254. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +142 -75
  255. data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +20 -2
  256. data/lib/frameworks/sproutcore/frameworks/core_foundation/child_view_layouts/horizontal_stack_layout.js +283 -0
  257. data/lib/frameworks/sproutcore/frameworks/core_foundation/child_view_layouts/vertical_stack_layout.js +284 -0
  258. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +64 -65
  259. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +14 -14
  260. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +8 -8
  261. data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +19 -19
  262. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +10 -25
  263. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +12 -6
  264. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/body_overflow.js +53 -34
  265. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +30 -24
  266. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +44 -40
  267. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/manipulation.js +5 -2
  268. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +105 -176
  269. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane_statechart.js +50 -0
  270. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/visibility.js +4 -4
  271. data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/view_transition_protocol.js +48 -0
  272. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +225 -7
  273. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/core_query.js +54 -34
  274. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +86 -71
  275. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +35 -35
  276. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +2 -2
  277. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +2 -2
  278. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +283 -120
  279. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +36 -37
  280. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +653 -435
  281. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +49 -42
  282. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +422 -396
  283. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/selection_set.js +5 -5
  284. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +10 -8
  285. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/theme.js +37 -16
  286. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +5 -5
  287. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils/rect.js +1 -1
  288. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +15 -0
  289. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/selection_support.js +21 -0
  290. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/cursor.js +28 -0
  291. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/platform.js +18 -0
  292. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +17 -17
  293. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_attr.js +9 -9
  294. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +43 -43
  295. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +4 -14
  296. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +18 -30
  297. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +78 -43
  298. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/theme.js +7 -7
  299. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/main_pane.js +4 -3
  300. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/append_remove.js +31 -15
  301. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +47 -2
  302. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/firstResponder.js +32 -31
  303. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/keyPane.js +23 -22
  304. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/layout.js +3 -2
  305. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/sendEvent.js +17 -16
  306. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/animation.js +626 -211
  307. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/border_frame_test.js +174 -0
  308. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build.js +22 -20
  309. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/childViewLayout_test.js +27 -0
  310. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +11 -10
  311. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertFrames.js +5 -4
  312. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +10 -6
  313. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createLayer.js +17 -12
  314. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/destroy.js +60 -7
  315. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/destroyLayer.js +19 -26
  316. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +14 -13
  317. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/enabled_states_test.js +341 -0
  318. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/findLayerInParentLayer.js +9 -8
  319. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/init.js +26 -16
  320. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +28 -68
  321. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisible.js +35 -23
  322. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisibleInWindow.js +93 -78
  323. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +62 -64
  324. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layer.js +69 -18
  325. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutChildViews.js +26 -21
  326. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +129 -57
  327. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +436 -238
  328. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/removeChild.js +38 -44
  329. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render.js +14 -4
  330. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render_delegate_support.js +29 -20
  331. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/replaceAllChildren_test.js +229 -0
  332. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayer.js +33 -95
  333. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/viewDidResize.js +87 -39
  334. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view_states_test.js +684 -0
  335. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +767 -625
  336. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/acceleration.js +4 -23
  337. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +645 -77
  338. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/cursor.js +1 -1
  339. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +218 -19
  340. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +648 -321
  341. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +326 -534
  342. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +120 -126
  343. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/statechart.js +1526 -0
  344. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +18 -23
  345. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/visibility.js +12 -94
  346. data/lib/frameworks/sproutcore/frameworks/core_tools/core.js +2 -2
  347. data/lib/frameworks/sproutcore/frameworks/core_tools/data_source.js +19 -19
  348. data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +43 -27
  349. data/lib/frameworks/sproutcore/frameworks/core_tools/models/test.js +5 -5
  350. data/lib/frameworks/sproutcore/frameworks/core_tools/resources/icons.css +5 -0
  351. data/lib/frameworks/sproutcore/frameworks/core_tools/resources/sc-icon-sproutcore-16.png +0 -0
  352. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +41 -41
  353. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +1 -1
  354. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +90 -90
  355. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +1 -1
  356. data/lib/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +31 -31
  357. data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +3 -3
  358. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +6 -6
  359. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +1 -1
  360. data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +1 -1
  361. data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +1 -1
  362. data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +2 -8
  363. data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +74 -48
  364. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +11 -16
  365. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +187 -253
  366. data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/cascade.js +5 -5
  367. data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +14 -14
  368. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/data_store.js +49 -9
  369. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +2 -2
  370. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/builders.js +236 -127
  371. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/instance_management.js +107 -0
  372. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +17 -0
  373. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +12 -11
  374. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/loadRecord.js +42 -17
  375. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +20 -15
  376. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +205 -92
  377. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +61 -25
  378. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +39 -9
  379. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +45 -1
  380. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/tests/system/datetime.js +88 -0
  381. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/coders/design.js +0 -0
  382. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/coders/object.js +0 -0
  383. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/controllers.js +3 -3
  384. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/design.js +2 -2
  385. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/designs.js +19 -19
  386. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/page_design.js +44 -44
  387. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/page_files.js +4 -4
  388. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/core.js +0 -0
  389. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/css/css_rule.js +0 -0
  390. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/css/css_style.js +6 -6
  391. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/css/css_style_sheet.js +37 -37
  392. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/button.js +0 -0
  393. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/label.js +0 -0
  394. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/object_designer.js +0 -0
  395. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/tab.js +0 -0
  396. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/text_field.js +0 -0
  397. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/view_designer.js +1 -1
  398. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/css/designer.css +0 -0
  399. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/design_page.js +0 -0
  400. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/high_light.css +0 -0
  401. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/controller.png +0 -0
  402. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-bg.png +0 -0
  403. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-bg.png +0 -0
  404. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-divider.png +0 -0
  405. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-sel-bg.png +0 -0
  406. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-sel-divider.png +0 -0
  407. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/main-bg.png +0 -0
  408. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/page.png +0 -0
  409. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/pane.png +0 -0
  410. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/view.png +0 -0
  411. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/selection_handles.css +0 -0
  412. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/binding.js +0 -0
  413. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/object.js +0 -0
  414. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/page.js +0 -0
  415. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/view.js +0 -0
  416. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/mixins/button.js +0 -0
  417. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/mixins/snap_lines.js +0 -0
  418. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/tests/coders/page.js +0 -0
  419. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/tests/designers/view_designer.js +0 -0
  420. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/designer_drop_target.js +36 -37
  421. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/drawing.js +1 -1
  422. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/high_light.js +17 -17
  423. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/page_item_view.js +0 -0
  424. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/selection_handles.js +14 -14
  425. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +1 -2
  426. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +51 -51
  427. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/mixins/split_child.js +63 -52
  428. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/mixins/split_thumb.js +64 -59
  429. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +113 -112
  430. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +182 -203
  431. data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +13 -13
  432. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +51 -29
  433. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +513 -307
  434. data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +69 -217
  435. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +31 -26
  436. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +15 -20
  437. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +2 -6
  438. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +6 -6
  439. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +25 -16
  440. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +6 -6
  441. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +29 -16
  442. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +1 -1
  443. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +19 -23
  444. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +14 -17
  445. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +24 -24
  446. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -4
  447. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +5 -5
  448. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/render_delegates/split.js +0 -0
  449. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/render_delegates/split_divider.js +0 -0
  450. data/lib/frameworks/sproutcore/frameworks/desktop/resources/modal.css +2 -0
  451. data/lib/frameworks/sproutcore/frameworks/desktop/resources/panel.css +1 -1
  452. data/lib/frameworks/sproutcore/frameworks/desktop/resources/segmented.css +24 -98
  453. data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +446 -442
  454. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +42 -21
  455. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +19 -3
  456. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +26 -28
  457. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +3 -2
  458. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/pane_page.js +11 -7
  459. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +5 -4
  460. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +32 -26
  461. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +27 -22
  462. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/methods.js +5 -4
  463. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/ui.js +0 -2
  464. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +11 -8
  465. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/displayProperties.js +5 -5
  466. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/keyEquivalents.js +9 -11
  467. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +23 -23
  468. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +15 -17
  469. data/lib/frameworks/sproutcore/frameworks/desktop/tests/{mixins → views/collection}/collection_fast_path.js +18 -12
  470. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/content.js +46 -53
  471. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/itemViewForContentIndex.js +101 -47
  472. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +26 -26
  473. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +89 -69
  474. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selection.js +27 -25
  475. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/ui_diagram.js +32 -35
  476. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +1 -0
  477. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +6 -11
  478. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +3 -5
  479. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/drag_and_drop.js +103 -8
  480. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +76 -38
  481. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/image_button/ui.js +3 -5
  482. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/drag_and_drop.js +91 -3
  483. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/render.js +2 -17
  484. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowHeightForContentIndex.js +70 -38
  485. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_alternatingrows.js +17 -19
  486. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_outline.js +10 -13
  487. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js +37 -30
  488. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js +18 -20
  489. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +115 -28
  490. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +0 -2
  491. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +37 -1
  492. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +194 -182
  493. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +2 -3
  494. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +18 -21
  495. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +5 -6
  496. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/methods.js +5 -4
  497. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/children.js +15 -15
  498. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/dividers.js +0 -0
  499. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +341 -45
  500. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/split_child.js +0 -0
  501. data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/split_thumb.js +0 -0
  502. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +6 -8
  503. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +49 -52
  504. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +23 -6
  505. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/ui.js +2 -4
  506. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +4 -5
  507. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +47 -38
  508. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +24 -24
  509. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +887 -740
  510. data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +2 -2
  511. data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +68 -55
  512. data/lib/frameworks/sproutcore/frameworks/desktop/views/image_button.js +3 -3
  513. data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +8 -26
  514. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +189 -167
  515. data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +55 -54
  516. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +8 -4
  517. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +145 -146
  518. data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +21 -21
  519. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +2 -2
  520. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +66 -66
  521. data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +40 -44
  522. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +203 -200
  523. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +11 -12
  524. data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +6 -13
  525. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +87 -112
  526. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +192 -179
  527. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +23 -23
  528. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +64 -64
  529. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +56 -56
  530. data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +784 -714
  531. data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +21 -39
  532. data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +45 -41
  533. data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +1 -1
  534. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +4 -10
  535. data/lib/frameworks/sproutcore/frameworks/desktop/views/thumb.js +9 -47
  536. data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +40 -16
  537. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +2 -1
  538. data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +62 -50
  539. data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +0 -9
  540. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +45 -45
  541. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/platform.js +16 -16
  542. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +46 -6
  543. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +16 -2
  544. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/desktop_scroller.js +12 -12
  545. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/ui.js +38 -40
  546. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +8 -8
  547. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +20 -20
  548. data/lib/frameworks/sproutcore/frameworks/formatters/formatters/date_formatter.js +16 -16
  549. data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +26 -14
  550. data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +43 -43
  551. data/lib/frameworks/sproutcore/frameworks/foundation/debug/test-image.png +0 -0
  552. data/lib/frameworks/sproutcore/frameworks/foundation/delegates/inline_text_field.js +11 -11
  553. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +63 -41
  554. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +1 -1
  555. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js +60 -61
  556. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +72 -72
  557. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +142 -142
  558. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gesturable.js +1 -1
  559. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +1 -1
  560. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +10 -8
  561. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +36 -29
  562. data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +4 -4
  563. data/lib/frameworks/sproutcore/frameworks/foundation/protocols/swap_transition_protocol.js +150 -0
  564. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +54 -29
  565. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +23 -18
  566. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +12 -11
  567. data/lib/frameworks/sproutcore/frameworks/foundation/resources/benchmark.css +21 -20
  568. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-128.png +0 -0
  569. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-256.png +0 -0
  570. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-32.png +0 -0
  571. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-48.png +0 -0
  572. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-512.png +0 -0
  573. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-64.png +0 -0
  574. data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +5 -0
  575. data/lib/frameworks/sproutcore/frameworks/foundation/system/app_cache.js +412 -0
  576. data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +2 -3
  577. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +11 -5
  578. data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +21 -21
  579. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +8 -3
  580. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/selection_support.js +33 -8
  581. data/lib/frameworks/sproutcore/frameworks/foundation/tests/delegates/inline_text_field/inline_text_field.js +2 -1
  582. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_display.js +9 -3
  583. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +5 -4
  584. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +49 -4
  585. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +29 -21
  586. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +3 -5
  587. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/validatable/ui.js +8 -10
  588. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/app_cache_test.js +81 -0
  589. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/image_queue.js +2 -2
  590. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +0 -3
  591. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +40 -1
  592. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/transition_test.js +143 -0
  593. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +5 -7
  594. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +187 -84
  595. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +6 -41
  596. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +51 -7
  597. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +11 -16
  598. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/adjust_bounce_transition.js +80 -0
  599. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/adjust_smooth_transition.js +39 -0
  600. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/adjust_spring_transition.js +77 -0
  601. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/bounce_transition.js +211 -0
  602. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/fade_transition.js +57 -0
  603. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/pop_transition.js +82 -0
  604. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/scale_transition.js +54 -0
  605. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/slide_transition.js +140 -0
  606. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/spring_transition.js +203 -0
  607. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_dissolve_transition.js +67 -0
  608. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_fade_color_transition.js +81 -0
  609. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_move_in_transition.js +104 -0
  610. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_push_transition.js +181 -0
  611. data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_reveal_transition.js +90 -0
  612. data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +2 -2
  613. data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +483 -95
  614. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +65 -65
  615. data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +111 -100
  616. data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +30 -222
  617. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +38 -24
  618. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +74 -62
  619. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-1.8.3-patched.js +9485 -0
  620. data/lib/frameworks/sproutcore/frameworks/media/media_capabilities.js +4 -4
  621. data/lib/frameworks/sproutcore/frameworks/media/render_delegates/media_slider.js +20 -20
  622. data/lib/frameworks/sproutcore/frameworks/media/resources/video.css +18 -17
  623. data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +19 -19
  624. data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +10 -11
  625. data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +7 -8
  626. data/lib/frameworks/sproutcore/frameworks/media/views/video.js +24 -24
  627. data/lib/frameworks/sproutcore/frameworks/qunit/test/test.js +2 -2
  628. data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +32 -21
  629. data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +72 -53
  630. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +164 -156
  631. data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +20 -20
  632. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +145 -140
  633. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/comparable.js +1 -1
  634. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +2 -2
  635. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +393 -370
  636. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +3 -3
  637. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1045 -999
  638. data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +41 -36
  639. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +10 -4
  640. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +11 -1
  641. data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +7 -7
  642. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +275 -205
  643. data/lib/frameworks/sproutcore/frameworks/runtime/system/function.js +27 -27
  644. data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +229 -193
  645. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +24 -24
  646. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +186 -188
  647. data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +1 -1
  648. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +138 -65
  649. data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +11 -10
  650. data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +8 -4
  651. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/tupleForPropertyPath.js +4 -0
  652. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +112 -23
  653. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +71 -18
  654. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +97 -57
  655. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/add.js +22 -22
  656. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/infinite.js +184 -0
  657. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/observer_set.js +63 -1
  658. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +73 -36
  659. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +100 -25
  660. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +7 -0
  661. data/lib/frameworks/sproutcore/frameworks/statechart/debug/sequence_matcher.js +1 -1
  662. data/lib/frameworks/sproutcore/frameworks/statechart/private/state_path_matcher.js +2 -2
  663. data/lib/frameworks/sproutcore/frameworks/statechart/system/history_state.js +32 -32
  664. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +449 -422
  665. data/lib/frameworks/sproutcore/frameworks/statechart/system/state_route_handler_context.js +19 -19
  666. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +612 -562
  667. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/with_concurrent_states/basic.js +115 -62
  668. data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/without_concurrent_states/basic.js +145 -64
  669. data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/respond_to_event.js +17 -1
  670. data/lib/frameworks/sproutcore/frameworks/table/views/table_head.js +30 -30
  671. data/lib/frameworks/sproutcore/frameworks/table/views/table_row.js +34 -34
  672. data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/bind.js +1 -1
  673. data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/collection.js +2 -2
  674. data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/view.js +3 -5
  675. data/lib/frameworks/sproutcore/frameworks/template_view/tests/panes/template.js +2 -0
  676. data/lib/frameworks/sproutcore/frameworks/template_view/tests/views/template/core.js +2 -2
  677. data/lib/frameworks/sproutcore/frameworks/template_view/views/bindable_span.js +7 -7
  678. data/lib/frameworks/sproutcore/frameworks/template_view/views/template.js +4 -4
  679. data/lib/frameworks/sproutcore/frameworks/template_view/views/template_collection.js +15 -21
  680. data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +4 -4
  681. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +35 -35
  682. data/lib/frameworks/sproutcore/scripts/run_sc_server_master.sh +34 -0
  683. data/lib/frameworks/sproutcore/tests/phantomjs_runner.phantomjs +606 -0
  684. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/PanelPane.opacity +0 -0
  685. data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/Pointers.opacity +0 -0
  686. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/active_button@2x.png +0 -0
  687. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/normal_button@2x.png +0 -0
  688. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_active_button@2x.png +0 -0
  689. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_button@2x.png +0 -0
  690. data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/select.css +3 -4
  691. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +18 -0
  692. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.png +0 -0
  693. data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel@2x.png +0 -0
  694. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/panel.png +0 -0
  695. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/panel@2x.png +0 -0
  696. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.css +34 -14
  697. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/pointers.png +0 -0
  698. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/pointers@2x.png +0 -0
  699. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +5 -4
  700. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +7 -2
  701. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +5 -4
  702. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +6 -3
  703. data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.css +7 -5
  704. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/button.js +7 -7
  705. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/progress.js +37 -37
  706. data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/slider.js +12 -12
  707. data/lib/sproutcore/helpers/static_helper.rb +35 -27
  708. data/sproutcore.gemspec +1 -0
  709. metadata +529 -451
  710. data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-logo.png +0 -0
  711. data/lib/frameworks/sproutcore/apps/showcase/views/button_views.js +0 -55
  712. data/lib/frameworks/sproutcore/apps/showcase/views/container_views.js +0 -29
  713. data/lib/frameworks/sproutcore/apps/showcase/views/grid_views.js +0 -28
  714. data/lib/frameworks/sproutcore/apps/showcase/views/image_button_views.js +0 -22
  715. data/lib/frameworks/sproutcore/apps/showcase/views/image_views.js +0 -51
  716. data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +0 -26
  717. data/lib/frameworks/sproutcore/apps/tests/states/ready.js +0 -56
  718. data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +0 -41
  719. data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +0 -48
  720. data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +0 -41
  721. data/lib/frameworks/sproutcore/apps/tests/states/ready_loading.js +0 -44
  722. data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +0 -31
  723. data/lib/frameworks/sproutcore/apps/tests/states/start.js +0 -39
  724. data/lib/frameworks/sproutcore/apps/welcome/tests/controllers/targets.js +0 -15
  725. data/lib/frameworks/sproutcore/frameworks/animation/Buildfile +0 -3
  726. data/lib/frameworks/sproutcore/frameworks/animation/LICENSE +0 -25
  727. data/lib/frameworks/sproutcore/frameworks/animation/README.md +0 -79
  728. data/lib/frameworks/sproutcore/frameworks/animation/core.js +0 -1208
  729. data/lib/frameworks/sproutcore/frameworks/animation/tests/core.js +0 -152
  730. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/parentViewDidChange.js +0 -67
  731. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/prepareContext.js +0 -203
  732. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayerLocation.js +0 -213
  733. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +0 -163
  734. data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/border.js +0 -97
  735. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +0 -312
  736. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +0 -961
  737. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split_divider.js +0 -40
  738. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/thumb.js +0 -27
  739. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-logo.png +0 -0
  740. data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore.png +0 -0
  741. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +0 -394
  742. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +0 -133
  743. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +0 -18
  744. data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +0 -8981
  745. data/lib/frameworks/sproutcore/frameworks/jquery/tests/set_class.js +0 -40
  746. data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.js +0 -0
@@ -15,13 +15,14 @@ module("SC.Pane#layout", {
15
15
  });
16
16
  pane.append();
17
17
  },
18
-
18
+
19
19
  teardown: function() {
20
20
  pane.remove();
21
+ pane.destroy();
21
22
  }
22
23
  });
23
24
 
24
- test("make sure that a call to adjust actually adjusts the view's size", function() {
25
+ test("make sure that a call to adjust actually adjusts the view's size", function() {
25
26
  SC.RunLoop.begin();
26
27
  pane.adjust({ width: 100, height: 50 });
27
28
  SC.RunLoop.end();
@@ -14,7 +14,7 @@ module("SC.Pane#sendEvent", {
14
14
  callCount++ ;
15
15
  equals(theEvent, evt, 'should pass event');
16
16
  };
17
-
17
+
18
18
  defaultResponder = SC.Object.create({ defaultEvent: handler });
19
19
  pane = SC.Pane.create({
20
20
  defaultResponder: defaultResponder,
@@ -33,9 +33,10 @@ module("SC.Pane#sendEvent", {
33
33
  ok(barView.barEvent, 'has barEvent handler');
34
34
 
35
35
  evt = SC.Object.create(); // mock
36
- },
37
-
36
+ },
37
+
38
38
  teardown: function() {
39
+ pane.destroy();
39
40
  pane = fooView = barView = defaultResponder = evt = null ;
40
41
  }
41
42
  });
@@ -66,7 +67,7 @@ test("when invoked with target = nested view", function() {
66
67
  handler = pane.sendEvent('imaginary', evt, barView);
67
68
  equals(callCount, 0, 'should not invoke handler');
68
69
  equals(handler, null, 'should return no responder');
69
-
70
+
70
71
  });
71
72
 
72
73
 
@@ -80,7 +81,7 @@ test("when invoked with target = middle view", function() {
80
81
  equals(callCount, 0, 'should not invoke handler');
81
82
  equals(handler, null, 'should return no responder');
82
83
 
83
- // test event handler on target
84
+ // test event handler on target
84
85
  callCount = 0;
85
86
  handler = pane.sendEvent('fooEvent', evt, fooView);
86
87
  equals(callCount, 1, 'should invoke handler');
@@ -97,7 +98,7 @@ test("when invoked with target = middle view", function() {
97
98
  handler = pane.sendEvent('imaginary', evt, fooView);
98
99
  equals(callCount, 0, 'should not invoke handler');
99
100
  equals(handler, null, 'should return no responder');
100
-
101
+
101
102
  });
102
103
 
103
104
 
@@ -111,7 +112,7 @@ test("when invoked with target = pane", function() {
111
112
  equals(callCount, 0, 'should not invoke handler');
112
113
  equals(handler, null, 'should return no responder');
113
114
 
114
- // test event handler on target
115
+ // test event handler on target
115
116
  callCount = 0;
116
117
  handler = pane.sendEvent('fooEvent', evt, pane);
117
118
  equals(callCount, 0, 'should not invoke handler');
@@ -128,7 +129,7 @@ test("when invoked with target = pane", function() {
128
129
  handler = pane.sendEvent('imaginary', evt, pane);
129
130
  equals(callCount, 0, 'should not invoke handler');
130
131
  equals(handler, null, 'should return no responder');
131
-
132
+
132
133
  });
133
134
 
134
135
 
@@ -138,14 +139,14 @@ test("when invoked with target = null", function() {
138
139
 
139
140
  // should start @ first responder
140
141
  pane.firstResponder = fooView;
141
-
142
+
142
143
  // test event handler on child view of target
143
144
  callCount = 0;
144
145
  handler = pane.sendEvent('barEvent', evt);
145
146
  equals(callCount, 0, 'should not invoke handler');
146
147
  equals(handler, null, 'should return no responder');
147
148
 
148
- // test event handler on target
149
+ // test event handler on target
149
150
  callCount = 0;
150
151
  handler = pane.sendEvent('fooEvent', evt);
151
152
  equals(callCount, 1, 'should invoke handler');
@@ -162,12 +163,12 @@ test("when invoked with target = null", function() {
162
163
  handler = pane.sendEvent('imaginary', evt);
163
164
  equals(callCount, 0, 'should not invoke handler');
164
165
  equals(handler, null, 'should return no responder');
165
-
166
+
166
167
  // test event handler on pane itself
167
168
  callCount = 0;
168
169
  handler = pane.sendEvent('paneEvent', evt);
169
170
  equals(callCount, 1, 'should invoke handler on pane');
170
- equals(handler, pane, 'should return pane as responder that handled event');
171
+ equals(handler, pane, 'should return pane as responder that handled event');
171
172
 
172
173
  });
173
174
 
@@ -177,14 +178,14 @@ test("when invoked with target = null, no default or first responder", function(
177
178
  // no first or default responder
178
179
  pane.set('firstResponder', null);
179
180
  pane.set('defaultResponder', null);
180
-
181
+
181
182
  // test event handler on child view of target
182
183
  callCount = 0;
183
184
  handler = pane.sendEvent('barEvent', evt);
184
185
  equals(callCount, 0, 'should not invoke handler');
185
186
  equals(handler, null, 'should return no responder');
186
187
 
187
- // test event handler on target
188
+ // test event handler on target
188
189
  callCount = 0;
189
190
  handler = pane.sendEvent('fooEvent', evt);
190
191
  equals(callCount, 0, 'should not invoke handler');
@@ -195,12 +196,12 @@ test("when invoked with target = null, no default or first responder", function(
195
196
  handler = pane.sendEvent('imaginary', evt);
196
197
  equals(callCount, 0, 'should not invoke handler');
197
198
  equals(handler, null, 'should return no responder');
198
-
199
+
199
200
  // test event handler on pane itself
200
201
  callCount = 0;
201
202
  handler = pane.sendEvent('paneEvent', evt);
202
203
  equals(callCount, 1, 'should invoke handler on pane');
203
- equals(handler, pane, 'should return pane as responder that handled event');
204
+ equals(handler, pane, 'should return pane as responder that handled event');
204
205
 
205
206
  });
206
207
 
@@ -7,43 +7,42 @@
7
7
  // ========================================================================
8
8
  // View Animation Unit Tests
9
9
  // ========================================================================
10
+ /*global module, test, ok, equals, stop, start, expect*/
10
11
 
11
- /*globals module test ok same equals */
12
12
 
13
13
  /* These unit tests verify: animate(). */
14
-
15
14
  var view, pane, originalSupportsTransitions = SC.platform.supportsCSSTransitions;
16
15
 
17
16
  function styleFor(view) {
18
17
  return view.get('layer').style;
19
18
  }
20
19
 
21
- function transitionFor(view){
22
- return styleFor(view)[SC.platform.domCSSPrefix+"Transition"];
20
+ function transitionFor(view) {
21
+ return styleFor(view)[SC.browser.experimentalStyleNameFor('transition')];
23
22
  }
24
23
 
25
24
  var commonSetup = {
26
- setup: function() {
27
-
28
- SC.RunLoop.begin();
25
+ setup: function (wantsAcceleratedLayer) {
29
26
 
30
- pane = SC.Pane.create({
31
- backgroundColor: '#ccc',
32
- layout: { top: 0, right: 0, width: 200, height: 200, zIndex: 100 }
33
- });
34
- pane.append();
27
+ SC.run(function () {
28
+ pane = SC.Pane.create({
29
+ backgroundColor: '#ccc',
30
+ layout: { top: 0, right: 0, width: 200, height: 200, zIndex: 100 }
31
+ });
32
+ pane.append();
35
33
 
36
- view = SC.View.create({
37
- backgroundColor: '#888',
38
- layout: { left: 0, top: 0, height: 100, width: 100 }
34
+ view = SC.View.create({
35
+ backgroundColor: '#888',
36
+ layout: { left: 0, top: 0, height: 100, width: 100 },
37
+ wantsAcceleratedLayer: wantsAcceleratedLayer || NO
38
+ });
39
+ pane.appendChild(view);
39
40
  });
40
- pane.appendChild(view);
41
-
42
- SC.RunLoop.end();
43
41
  },
44
42
 
45
- teardown: function(){
43
+ teardown: function () {
46
44
  pane.remove();
45
+ pane.destroy();
47
46
  }
48
47
  };
49
48
 
@@ -51,201 +50,319 @@ if (SC.platform.supportsCSSTransitions) {
51
50
 
52
51
  module("ANIMATION", commonSetup);
53
52
 
54
- test("should work", function(){
53
+ test("should work", function () {
54
+ stop(2000);
55
55
  SC.RunLoop.begin();
56
56
  view.animate('left', 100, { duration: 1 });
57
57
  SC.RunLoop.end();
58
- equals(transitionFor(view), 'left 1s linear', 'add transition');
59
- equals(100, view.get('layout').left, 'left is 100');
58
+
59
+ setTimeout(function () {
60
+ equals(transitionFor(view), 'left 1s ease 0s', 'add transition');
61
+ equals(100, view.get('layout').left, 'left is 100');
62
+
63
+ start();
64
+ }, 5);
60
65
  });
61
66
 
62
- test("should accept shorthand notation", function(){
63
- SC.RunLoop.begin();
64
- view.animate('left', 100, 1);
65
- SC.RunLoop.end();
66
- equals(transitionFor(view), 'left 1s linear', 'add transition');
67
+ test("callbacks work in general", function () {
68
+ stop(2000);
69
+
70
+ SC.run(function () {
71
+ view.animate('left', 100, { duration: 0.5 }, function () {
72
+ ok(true, "Callback was called.");
73
+ equals(view, this, "`this` should be the view");
74
+
75
+ start();
76
+ });
77
+ });
67
78
  });
68
79
 
69
- test("callbacks work in general", function(){
80
+ test("callbacks work in general with target method", function () {
70
81
  stop(2000);
71
82
 
72
- SC.RunLoop.begin();
73
- // We shouldn't have to use invokeLater, but it's the only way to get this to work!
74
- view.invokeLater('animate', 1, 'left', 100, 0.500, function() {
75
- start();
76
- ok(true, "Callback was called.");
83
+ var ob = SC.Object.create({
84
+ callback: function () {
85
+ ok(true, "Callback was called.");
86
+ equals(ob, this, "`this` should be the target object");
87
+
88
+ start();
89
+ }
90
+ });
91
+
92
+ SC.run(function () {
93
+ view.animate('left', 100, { duration: 0.5 }, ob, 'callback');
77
94
  });
78
- SC.RunLoop.end();
79
95
  });
80
96
 
81
- test("callbacks should have appropriate data", function(){
97
+ test("callbacks should have appropriate data", function () {
82
98
  stop(2000);
83
99
 
84
100
  SC.RunLoop.begin();
85
- // We shouldn't have to use invokeLater, but it's the only way to get this to work!
86
- view.invokeLater('animate', 1, 'left', 100, 0.500, function(data) {
87
- start();
88
-
101
+ view.animate('left', 100, { duration: 0.5 }, function (data) {
89
102
  // TODO: Test this better
90
103
  ok(data.event, "has event");
91
104
  equals(data.view, view, "view is correct");
92
105
  equals(data.isCancelled, false, "animation is not cancelled");
106
+
107
+ start();
93
108
  });
94
109
  SC.RunLoop.end();
95
110
  });
96
111
 
97
- test("handles timing function string", function(){
112
+ test("handles delay function string", function () {
113
+ stop(2000);
114
+
115
+ SC.RunLoop.begin();
116
+ view.animate('left', 100, { duration: 1, delay: 1 });
117
+ SC.RunLoop.end();
118
+
119
+ setTimeout(function () {
120
+ equals(transitionFor(view), 'left 1s ease 1s', 'uses delay');
121
+
122
+ start();
123
+ }, 5);
124
+ });
125
+
126
+ test("handles timing function string", function () {
127
+ stop(2000);
128
+
98
129
  SC.RunLoop.begin();
99
130
  view.animate('left', 100, { duration: 1, timing: 'ease-in' });
100
131
  SC.RunLoop.end();
101
- equals(transitionFor(view), 'left 1s ease-in', 'uses ease-in timing');
132
+
133
+ setTimeout(function () {
134
+ equals(transitionFor(view), 'left 1s ease-in 0s', 'uses ease-in timing');
135
+
136
+ start();
137
+ }, 5);
102
138
  });
103
139
 
104
- test("handles timing function array", function(){
140
+ test("handles timing function array", function () {
141
+ stop(2000);
142
+
105
143
  SC.RunLoop.begin();
106
144
  view.animate('left', 100, { duration: 1, timing: [0.1, 0.2, 0.3, 0.4] });
107
145
  SC.RunLoop.end();
108
- equals(transitionFor(view), 'left 1s cubic-bezier(0.1, 0.2, 0.3, 0.4)', 'uses cubic-bezier timing');
146
+
147
+ setTimeout(function () {
148
+ equals(transitionFor(view), 'left 1s cubic-bezier(0.1, 0.2, 0.3, 0.4) 0s', 'uses cubic-bezier timing');
149
+
150
+ start();
151
+ }, 5);
152
+ });
153
+
154
+ test("should allow multiple keys to be set at once", function () {
155
+ stop(2000);
156
+
157
+ SC.RunLoop.begin();
158
+ view.animate({ top: 100, left: 100 }, { duration: 1 });
159
+ SC.RunLoop.end();
160
+
161
+ setTimeout(function () {
162
+ equals(transitionFor(view), 'top 1s ease 0s, left 1s ease 0s', 'should add transition');
163
+ equals(100, view.get('layout').top, 'top is 100');
164
+ equals(100, view.get('layout').left, 'left is 100');
165
+
166
+ start();
167
+ }, 5);
109
168
  });
110
169
 
111
- test("should allow multiple keys to be set at once", function(){
170
+ test("should not animate any keys that don't change", function () {
171
+ stop(2000);
172
+
112
173
  SC.RunLoop.begin();
113
- view.animate({ top: 100, left: 100 }, 1);
174
+ view.animate({ top: 0, left: 100 }, { duration: 1 });
114
175
  SC.RunLoop.end();
115
- equals(transitionFor(view), 'top 1s linear, left 1s linear', 'should add transition');
116
- equals(100, view.get('layout').top, 'top is 100');
117
- equals(100, view.get('layout').left, 'left is 100');
176
+
177
+ setTimeout(function () {
178
+ equals(transitionFor(view), 'left 1s ease 0s', 'should only add left transition');
179
+ equals(0, view.get('layout').top, 'top is 0');
180
+ equals(100, view.get('layout').left, 'left is 100');
181
+
182
+ start();
183
+ }, 5);
184
+ });
185
+
186
+ test("animating height with a centerY layout should also animate margin-top", function () {
187
+ stop(2000);
188
+
189
+ SC.RunLoop.begin();
190
+ view.adjust({ top: null, centerY: 0 });
191
+ view.animate({ height: 10 }, { duration: 1 });
192
+ SC.RunLoop.end();
193
+
194
+ setTimeout(function () {
195
+ equals(transitionFor(view), 'height 1s ease 0s, margin-top 1s ease 0s', 'should add height and margin-top transitions');
196
+ equals(view.get('layout').height, 10, 'height');
197
+ equals(view.get('layout').centerY, 0, 'centerY');
198
+
199
+ start();
200
+ }, 5);
201
+ });
202
+
203
+ test("animating width with a centerX layout should also animate margin-left", function () {
204
+ stop(2000);
205
+
206
+ SC.RunLoop.begin();
207
+ view.adjust({ left: null, centerX: 0 });
208
+ view.animate({ width: 10 }, { duration: 1 });
209
+ SC.RunLoop.end();
210
+
211
+ setTimeout(function () {
212
+ equals(transitionFor(view), 'width 1s ease 0s, margin-left 1s ease 0s', 'should add width and margin-left transitions');
213
+ equals(view.get('layout').width, 10, 'width');
214
+ equals(view.get('layout').centerX, 0, 'centerX');
215
+
216
+ start();
217
+ }, 5);
118
218
  });
119
219
 
120
220
  // Pretty sure this does the job
121
- test("callbacks should be called only once for a grouped animation", function(){
221
+ test("callbacks should be called only once for a grouped animation", function () {
122
222
  stop(2000);
123
223
  var stopped = true;
124
224
 
125
225
  expect(1);
126
226
 
127
- SC.RunLoop.begin();
128
- view.invokeLater('animate', 1, { top: 100, left: 100 }, 0.250, function(data) {
129
- if (stopped) {
130
- stopped = false;
131
- // Continue on in a short moment. Before the test times out, but after
132
- // enough time for a second callback to possibly come in.
133
- setTimeout(function() {
134
- start();
135
- }, 100);
136
- }
137
-
138
- ok(true, 'callback called back');
227
+ SC.run(function () {
228
+ view.animate({ top: 100, left: 100, width: 400 }, { duration: 0.5 }, function () {
229
+ ok(stopped, 'callback called back');
230
+ if (stopped) {
231
+ stopped = false;
232
+ // Continue on in a short moment. Before the test times out, but after
233
+ // enough time for a second callback to possibly come in.
234
+ setTimeout(function () {
235
+ start();
236
+ }, 200);
237
+ }
238
+ });
139
239
  });
140
- SC.RunLoop.end();
141
240
  });
142
241
 
143
242
  // This behavior should be up for debate. Does the callback call immediately, or does it wait until the end of
144
243
  // the specified animation period? Currently we're calling it immediately.
145
- test("callback should be called immediately when a property is animated to its current value.", function() {
146
-
244
+ test("callback should be called immediately when a property is animated to its current value.", function () {
147
245
  stop(2000);
148
246
 
149
247
  expect(1);
150
248
 
151
- SC.RunLoop.begin();
152
- view.invokeLater('animate', 1, 'top', view.getPath('layout.top'), 0.250, function(){
153
- ok(true, 'callback called back');
154
- start();
249
+ SC.run(function () {
250
+ view.animate('top', view.getPath('layout.top'), { duration: 0.5 }, function () {
251
+ ok(true, 'callback called back');
252
+
253
+ start();
254
+ });
155
255
  });
156
- SC.RunLoop.end();
157
256
  });
158
257
 
159
- test("callback should be called when a property is animated with a duration of zero.", function() {
258
+ test("callback should be called when a property is animated with a duration of zero.", function () {
160
259
  stop(2000);
161
260
 
162
261
  expect(1);
163
262
 
164
263
  SC.RunLoop.begin();
165
- view.invokeLater('animate', 1, 'top', 20, 0, function(){
264
+ view.animate('top', 20, { duration: 0 }, function () {
166
265
  ok(true, 'callback called back');
167
266
  start();
168
267
  });
169
268
  SC.RunLoop.end();
170
269
  });
171
270
 
172
- test("multiple animations should be able to run simultaneously", function() {
271
+ test("multiple animations should be able to run simultaneously", function () {
173
272
  stop(2000);
174
273
 
175
274
  expect(2);
176
275
 
177
- SC.RunLoop.begin();
178
- view.invokeLater('animate', 1, 'top', 100, 0.250, function(){
179
- ok(true, 'top finished');
180
- });
181
- view.invokeLater('animate', 2, 'left', 100, 0.500, function(){
182
- ok(true, 'left finished');
183
- start();
276
+ SC.run(function () {
277
+ view.animate('top', 100, { duration: 0.25 }, function () {
278
+ ok(true, 'top finished');
279
+ });
280
+
281
+ view.animate('left', 100, { duration: 0.5 }, function () {
282
+ ok(true, 'left finished');
283
+ start();
284
+ });
184
285
  });
185
- SC.RunLoop.end();
186
286
  });
187
287
 
188
- test("altering existing animation should call callback as cancelled", function(){
288
+ test("altering existing animation should call callback as cancelled", function () {
189
289
  stop(2000);
190
290
 
191
- expect(2);
291
+ var order = 0;
292
+ expect(6);
192
293
 
193
- SC.RunLoop.begin();
194
- view.invokeLater('animate', 1, 'top', 100, 0.500, function(data){
195
- equals(data.isCancelled, true, 'first cancelled');
196
- });
197
- view.invokeLater('animate', 250, 'top', 0, 0.500, function(data){
198
- equals(data.isCancelled, false, 'second not cancelled');
199
- start();
294
+ SC.run(function () {
295
+ view.animate('top', 100, { duration: 0.5 }, function (data) {
296
+ // Test the order to ensure that this is the proper callback that is used.
297
+ equals(order, 0, 'should be called first');
298
+ order = 1;
299
+ equals(data.isCancelled, true, 'first cancelled');
300
+ });
301
+
302
+ // Test calling animate twice in the same run loop.
303
+ view.animate('top', 100, { duration: 0.75 }, function (data) {
304
+ // Test the order to ensure that this is the proper callback that is used.
305
+ equals(order, 1, 'should be called second');
306
+ order = 2;
307
+ equals(data.isCancelled, true, 'second cancelled');
308
+ });
200
309
  });
201
- SC.RunLoop.end();
310
+
311
+ setTimeout(function () {
312
+ SC.run(function () {
313
+ view.animate('top', 0, { duration: 0.75 }, function (data) {
314
+ // Test the order to ensure that this is the proper callback that is used.
315
+ equals(order, 2, 'should be called third');
316
+ equals(data.isCancelled, false, 'third not cancelled');
317
+ start();
318
+ });
319
+ });
320
+ }, 100);
202
321
  });
203
322
 
204
- test("should not cancel callback when value hasn't changed", function() {
323
+ test("should not cancel callback when value hasn't changed", function () {
205
324
  var callbacks = 0, wasCancelled = NO, check = 0;
206
325
  stop(2000);
207
326
 
208
- SC.RunLoop.begin();
209
- view.invokeLater(function() {
327
+ SC.run(function () {
210
328
  // this triggers the initial layoutStyle code
211
- view.animate('left', 79, 0.500, function(data) {
329
+ view.animate('left', 79, { duration: 0.5 }, function (data) {
212
330
  callbacks++;
213
331
  wasCancelled = data.isCancelled;
214
332
  });
333
+
215
334
  // this triggers a re-render, re-running the layoutStyle code
216
335
  view.displayDidChange();
217
- }, 1);
218
- SC.RunLoop.end();
336
+ });
219
337
 
220
- setTimeout(function() {
338
+ setTimeout(function () {
221
339
  // capture the callbacks value
222
340
  check = callbacks;
223
341
  }, 250);
224
342
 
225
- setTimeout(function() {
226
- start();
343
+ setTimeout(function () {
227
344
  equals(check, 0, "the callback should not have been cancelled initially");
228
345
  equals(callbacks, 1, "the callback should have been fired");
229
346
  equals(wasCancelled, NO, "the callback should not have been cancelled");
347
+
348
+ start();
230
349
  }, 1000);
231
350
  });
232
351
 
233
- /**
234
- There was a bug in animation that once one property was animated, a null
235
- version of it existed in _activeAnimations, such that when another property
236
- was animated it would throw an exception iterating through _activeAnimations
237
- and not expecting a null value.
238
- */
239
- test("animating different attributes at different times should not throw an error" , function(){
352
+ // There was a bug in animation that once one property was animated, a null
353
+ // version of it existed in _activeAnimations, such that when another property
354
+ // was animated it would throw an exception iterating through _activeAnimations
355
+ // and not expecting a null value.
356
+ test("animating different attributes at different times should not throw an error", function () {
240
357
  // Run test.
241
358
  stop(2000);
242
359
 
243
360
  expect(0);
244
361
 
245
362
  // Override and wrap the problematic method to capture the error.
246
- view.layoutStyleCalculator.transitionDidEnd = function() {
363
+ view.transitionDidEnd = function () {
247
364
  try {
248
- SC.View.LayoutStyleCalculator.prototype.transitionDidEnd.apply(this, arguments);
365
+ SC.View.prototype.transitionDidEnd.apply(this, arguments);
249
366
  ok(true);
250
367
  } catch (ex) {
251
368
  ok(false);
@@ -253,190 +370,488 @@ if (SC.platform.supportsCSSTransitions) {
253
370
  };
254
371
 
255
372
  SC.RunLoop.begin();
256
- // We shouldn't have to use invokeLater, but it's the only way to get this to work!
257
- view.invokeLater(function() {
258
- view.animate('left', 75, 0.2);
259
- }, 1);
373
+ view.animate('left', 75, { duration: 0.2 });
260
374
  SC.RunLoop.end();
261
375
 
262
- setTimeout(function() {
376
+ setTimeout(function () {
263
377
  SC.RunLoop.begin();
264
- view.animate('top', 50, 0.2);
378
+ view.animate('top', 50, { duration: 0.2 });
265
379
  SC.RunLoop.end();
266
380
  }, 400);
267
381
 
268
- setTimeout(function() {
382
+ setTimeout(function () {
269
383
  start();
270
384
  }, 1000);
271
385
  });
272
386
 
273
- test("should handle transform attributes", function(){
274
- SC.RunLoop.begin();
275
- view.animate('rotateX', 45, { duration: 1 });
276
- SC.RunLoop.end();
277
- equals(transitionFor(view), '-'+SC.platform.cssPrefix+'-transform 1s linear', 'add transition');
278
- equals(styleFor(view)[SC.platform.domCSSPrefix+'Transform'], 'rotateX(45deg)', 'has both transforms');
279
- equals(45, view.get('layout').rotateX, 'rotateX is 45deg');
387
+ test("should handle transform attributes", function () {
388
+ stop(2000);
389
+
390
+ SC.run(function () {
391
+ view.animate('rotateX', 45, { duration: 1 });
392
+ });
393
+
394
+ setTimeout(function () {
395
+ equals(transitionFor(view), SC.browser.experimentalCSSNameFor('transform') + ' 1s ease 0s', 'add transition');
396
+ equals(styleFor(view)[SC.browser.experimentalStyleNameFor('transform')], 'rotateX(45deg)', 'has both transforms');
397
+ equals(45, view.get('layout').rotateX, 'rotateX is 45deg');
398
+
399
+ start();
400
+ }, 50);
280
401
  });
281
402
 
282
- test("should handle conflicting transform animations", function(){
283
- expect(5);
403
+ test("should handle conflicting transform animations", function () {
404
+ /*global console*/
405
+ stop(2000);
284
406
 
285
407
  var originalConsoleWarn = console.warn;
286
- console.warn = function(warning){
287
- equals(warning, "Can't animate transforms with different durations! Using first duration specified.", "proper warning");
408
+ console.warn = function (warning) {
409
+ equals(warning, "Developer Warning: Can't animate transforms with different durations, timings or delays! Using the first options specified.", "proper warning");
288
410
  };
289
411
 
290
- SC.RunLoop.begin();
291
- view.animate('rotateX', 45, 1).animate('scale', 2, 2);
292
- SC.RunLoop.end();
412
+ SC.run(function () {
413
+ view.animate('rotateX', 45, { duration: 1 }).animate('scale', 2, { duration: 2 });
414
+ });
293
415
 
294
- equals(transitionFor(view), '-'+SC.platform.cssPrefix+'-transform 1s linear', 'use duration of first');
295
- equals(styleFor(view)[SC.platform.domCSSPrefix+'Transform'], 'rotateX(45deg) scale(2)');
296
- equals(45, view.get('layout').rotateX, 'rotateX is 45deg');
297
- equals(2, view.get('layout').scale, 'scale is 2');
416
+ setTimeout(function () {
417
+ expect(5);
298
418
 
299
- console.warn = originalConsoleWarn;
300
- });
419
+ equals(transitionFor(view), SC.browser.experimentalCSSNameFor('transform') + ' 1s ease 0s', 'use duration of first');
420
+ equals(styleFor(view)[SC.browser.experimentalStyleNameFor('transform')], 'rotateX(45deg) scale(2)');
421
+ equals(45, view.get('layout').rotateX, 'rotateX is 45deg');
422
+ equals(2, view.get('layout').scale, 'scale is 2');
301
423
 
302
- test("should properly handle callbacks from conflicting transforms");
424
+ console.warn = originalConsoleWarn;
303
425
 
304
- test("removes animation property when done", function(){
426
+ start();
427
+ }, 25);
428
+ });
429
+
430
+ test("removes animation property when done", function () {
305
431
  stop(2000);
306
432
 
307
433
  SC.RunLoop.begin();
308
- view.invokeLater('animate', 1000, { top: 100, scale: 2 }, 0.500);
434
+ view.animate({ top: 100, scale: 2 }, { duration: 0.5 });
309
435
  SC.RunLoop.end();
310
436
 
311
- setTimeout(function(){
312
- start();
437
+ setTimeout(function () {
313
438
  equals(view.get('layout').animateTop, undefined, "animateTop is undefined");
314
439
  equals(view.get('layout').animateScale, undefined, "animateScale is undefined");
440
+
441
+ start();
315
442
  }, 1000);
316
443
  });
317
444
 
318
- module("ANIMATION WITH ACCELERATED LAYER", {
319
- setup: function(){
320
- commonSetup.setup();
321
- view.wantsAcceleratedLayer = YES;
322
- },
445
+ test("Test that cancelAnimation() removes the animation style and fires the callback with isCancelled set.", function () {
446
+ stop(2000);
323
447
 
324
- teardown: commonSetup.teardown
325
- });
448
+ expect(7);
326
449
 
327
- test("handles acceleration when appropriate", function(){
328
- SC.RunLoop.begin();
329
- view.animate('top', 100, 1);
330
- SC.RunLoop.end();
331
- equals(transitionFor(view), '-'+SC.platform.cssPrefix+'-transform 1s linear', 'transition is on transform');
332
- });
450
+ SC.run(function () {
451
+ view.animate({ left: 100 }, { duration: 0.5 }, function (data) {
452
+ ok(data.isCancelled, "The isCancelled property of the data should be true.");
453
+ });
454
+ });
333
455
 
334
- test("doesn't use acceleration when not appropriate", function(){
335
- SC.RunLoop.begin();
336
- view.adjust({ height: null, bottom: 0 });
337
- view.animate('top', 100, 1);
338
- SC.RunLoop.end();
339
- equals(transitionFor(view), 'top 1s linear', 'transition is not on transform');
340
- });
456
+ setTimeout(function () {
457
+ SC.run(function () {
458
+ var style = styleFor(view);
341
459
 
342
- test("combines accelerated layer animation with compatible transform animations", function(){
343
- SC.RunLoop.begin();
344
- view.animate('top', 100, 1).animate('rotateX', 45, 1);
345
- SC.RunLoop.end();
460
+ equals(style.left, '100px', 'Tests the left style after animate');
461
+ equals(style.top, '0px', 'Tests the top style after animate');
462
+ equals(transitionFor(view), 'left 0.5s ease 0s', 'Tests the CSS transition property');
463
+ view.cancelAnimation();
464
+ });
465
+ }, 5);
346
466
 
347
- var transform = styleFor(view)[SC.platform.domCSSPrefix+'Transform'];
467
+ setTimeout(function () {
468
+ var style = styleFor(view);
348
469
 
349
- // We need to check these separately because in some cases we'll also have translateZ, this way we don't have to worry about it
350
- ok(transform.match(/translateX\(0px\) translateY\(100px\)/), 'has translate');
351
- ok(transform.match(/rotateX\(45deg\)/), 'has rotateX');
470
+ equals(style.left, '100px', 'Tests the left style after cancel');
471
+ equals(style.top, '0px', 'Tests the top style after cancel');
472
+ equals(transitionFor(view), '', 'Tests the CSS transition property');
473
+ start();
474
+ }, 50);
352
475
  });
353
476
 
354
- test("should not use accelerated layer if other transforms are being animated at different speeds", function(){
355
- SC.RunLoop.begin();
356
- view.animate('rotateX', 45, 2).animate('top', 100, 1);
357
- SC.RunLoop.end();
477
+ test("Test that cancelAnimation(SC.LayoutState.CURRENT) removes the animation style, stops at the current position and fires the callback with isCancelled set.", function () {
478
+ stop(2000);
479
+
480
+ expect(9);
481
+
482
+ SC.run(function () {
483
+ view.animate({ left: 100, top: 100, width: 400 }, { duration: 0.5 }, function (data) {
484
+ ok(data.isCancelled, "The isCancelled property of the data should be true.");
485
+ });
486
+ });
487
+
488
+ setTimeout(function () {
489
+ SC.run(function () {
490
+ var style = styleFor(view);
358
491
 
359
- var style = styleFor(view);
492
+ equals(style.left, '100px', 'Tests the left style after animate');
493
+ equals(style.top, '100px', 'Tests the top style after animate');
494
+ equals(style.width, '400px', 'Tests the width style after animate');
495
+ equals(transitionFor(view), 'left 0.5s ease 0s, top 0.5s ease 0s, width 0.5s ease 0s', 'Tests the CSS transition property');
496
+ view.cancelAnimation(SC.LayoutState.CURRENT);
497
+ });
498
+ }, 100);
360
499
 
361
- equals(style[SC.platform.domCSSPrefix+'Transform'], 'rotateX(45deg)', 'transform should only have rotateX');
362
- equals(style['top'], '100px', 'should not accelerate top');
500
+ setTimeout(function () {
501
+ var style = styleFor(view);
502
+
503
+ ok((parseInt(style.left, 10) > 0) && (parseInt(style.left, 10) < 100), 'Tests the left style after cancel');
504
+ ok((parseInt(style.top, 10) > 0) && (parseInt(style.top, 10) < 100), 'Tests the top style after cancel');
505
+ ok((parseInt(style.width, 10) > 100) && (parseInt(style.width, 10) < 400), 'Tests the width style after cancel');
506
+ equals(transitionFor(view), '', 'Tests the CSS transition property');
507
+ start();
508
+ }, 200);
363
509
  });
364
510
 
365
- test("callbacks should work properly with acceleration", function(){
511
+ test("Test that cancelAnimation(SC.LayoutState.START) removes the animation style, returns to the start position and fires the callback with isCancelled set.", function () {
366
512
  stop(2000);
367
- var stopped = true;
368
513
 
369
- expect(1);
514
+ expect(9);
515
+
516
+ SC.run(function () {
517
+ view.animate({ left: 100, top: 100, width: 400 }, { duration: 0.5 }, function (data) {
518
+ ok(data.isCancelled, "The isCancelled property of the data should be true.");
519
+ });
520
+ });
521
+
522
+ setTimeout(function () {
523
+ SC.run(function () {
524
+ var style = styleFor(view);
525
+
526
+ equals(style.left, '100px', 'Tests the left style after animate');
527
+ equals(style.top, '100px', 'Tests the top style after animate');
528
+ equals(style.width, '400px', 'Tests the width style after animate');
529
+ equals(transitionFor(view), 'left 0.5s ease 0s, top 0.5s ease 0s, width 0.5s ease 0s', 'Tests the CSS transition property');
530
+ view.cancelAnimation(SC.LayoutState.START);
531
+ });
532
+ }, 100);
533
+
534
+ setTimeout(function () {
535
+ var style = styleFor(view);
536
+
537
+ equals(style.left, '0px', 'Tests the left style after cancel');
538
+ equals(style.top, '0px', 'Tests the top style after cancel');
539
+ equals(style.width, '100px', 'Tests the width style after animate');
540
+ equals(transitionFor(view), '', 'Tests the CSS transition property');
541
+ start();
542
+ }, 200);
543
+ });
544
+
545
+ if (SC.platform.supportsCSS3DTransforms) {
546
+ module("ANIMATION WITH ACCELERATED LAYER", {
547
+ setup: function () {
548
+ commonSetup.setup(YES);
549
+ },
550
+
551
+ teardown: commonSetup.teardown
552
+ });
553
+
554
+ test("handles acceleration when appropriate", function () {
555
+ stop(2000);
556
+
557
+ SC.RunLoop.begin();
558
+ view.animate('top', 100, { duration: 1 });
559
+ SC.RunLoop.end();
560
+
561
+ setTimeout(function () {
562
+ equals(transitionFor(view), SC.browser.experimentalCSSNameFor('transform') + ' 1s ease 0s', 'transition is on transform');
370
563
 
371
- SC.RunLoop.begin();
372
- // We shouldn't have to use invokeLater, but it's the only way to get this to work!
373
- view.invokeLater('animate', 1, { top: 100, left: 100, scale: 2 }, 0.500, function(data) {
374
- if (stopped) {
375
564
  start();
376
- stopped = false;
377
- }
565
+ }, 5);
566
+ });
567
+
568
+ test("doesn't use acceleration when not appropriate", function () {
569
+ stop(1000);
570
+
571
+ SC.RunLoop.begin();
572
+ view.adjust({ height: null, bottom: 0 });
573
+ view.animate('top', 100, { duration: 1 });
574
+ SC.RunLoop.end();
378
575
 
379
- ok(true);
576
+ setTimeout(function () {
577
+ equals(transitionFor(view), 'top 1s ease 0s', 'transition is not on transform');
578
+
579
+ start();
580
+ }, 5);
380
581
  });
381
- SC.RunLoop.end();
382
- });
383
582
 
384
- test("should not add animation for properties that have the same value as existing layout", function() {
385
- var callbacks = 0;
583
+ test("combines accelerated layer animation with compatible transform animations", function () {
584
+ stop(1000);
386
585
 
387
- SC.RunLoop.begin();
388
- // we set width to the same value, but we change height
389
- view.invokeLater('animate', 1, {width: 100, height: 50}, 0.5, function() { callbacks++; });
390
- SC.RunLoop.end();
586
+ SC.RunLoop.begin();
587
+ view.animate('top', 100, { duration: 1 }).animate('rotateX', 45, { duration: 1 });
588
+ SC.RunLoop.end();
391
589
 
392
- ok(callbacks === 0, "precond - callback should not have been run yet");
590
+ setTimeout(function () {
591
+ var transform = styleFor(view)[SC.browser.experimentalStyleNameFor('transform')];
393
592
 
394
- stop(2000);
593
+ // We need to check these separately because in some cases we'll also have translateZ, this way we don't have to worry about it
594
+ ok(transform.match(/translateX\(0px\) translateY\(100px\)/), 'has translate');
595
+ ok(transform.match(/rotateX\(45deg\)/), 'has rotateX');
395
596
 
396
- // we need to test changing the width at a later time
397
- setTimeout(function() {
398
- start();
597
+ start();
598
+ }, 5);
599
+ });
399
600
 
400
- equals(callbacks, 1, "callback should have been run once, for height change");
601
+ test("should not use accelerated layer if other transforms are being animated at different speeds", function () {
602
+ stop(1000);
401
603
 
402
604
  SC.RunLoop.begin();
403
- view.animate('width', 50, 0.5);
605
+ view.animate('rotateX', 45, { duration: 2 }).animate('top', 100, { duration: 1 });
404
606
  SC.RunLoop.end();
405
607
 
406
- equals(callbacks, 1, "callback should still have only been called once, even though width has now been animated");
407
- }, 1000);
408
- });
608
+ setTimeout(function () {
609
+ var style = styleFor(view);
610
+
611
+ equals(style[SC.browser.experimentalStyleNameFor('transform')], 'rotateX(45deg)', 'transform should only have rotateX');
612
+ equals(style.top, '100px', 'should not accelerate top');
613
+
614
+ start();
615
+ }, 5);
616
+ });
617
+
618
+ test("callbacks should work properly with acceleration", function () {
619
+ stop(1000);
620
+
621
+ SC.run(function () {
622
+ view.animate({ top: 100, left: 100, scale: 2 }, { duration: 0.25 }, function () {
623
+ ok(true);
624
+
625
+ start();
626
+ });
627
+ });
628
+ });
629
+
630
+ test("should not add animation for properties that have the same value as existing layout", function () {
631
+ var callbacks = 0;
632
+
633
+ SC.RunLoop.begin();
634
+ // we set width to the same value, but we change height
635
+ view.animate({width: 100, height: 50}, { duration: 0.5 }, function () { callbacks++; });
636
+ SC.RunLoop.end();
637
+
638
+ ok(callbacks === 0, "precond - callback should not have been run yet");
639
+
640
+ stop(2000);
641
+
642
+ // we need to test changing the width at a later time
643
+ setTimeout(function () {
644
+ start();
645
+
646
+ equals(callbacks, 1, "callback should have been run once, for height change");
647
+
648
+ SC.RunLoop.begin();
649
+ view.animate('width', 50, { duration: 0.5 });
650
+ SC.RunLoop.end();
651
+
652
+ equals(callbacks, 1, "callback should still have only been called once, even though width has now been animated");
653
+ }, 1000);
654
+ });
655
+
656
+ test("Test that cancelAnimation() removes the animation style and fires the callback with isCancelled set.", function () {
657
+ stop(2000);
658
+
659
+ SC.run(function () {
660
+ view.animate({ left: 100, top: 100, width: 400 }, { duration: 0.5 }, function (data) {
661
+ ok(data.isCancelled, "The isCancelled property of the data should be true.");
662
+ });
663
+ });
664
+
665
+ setTimeout(function () {
666
+ SC.run(function () {
667
+ var style = styleFor(view),
668
+ transform = style[SC.browser.experimentalStyleNameFor('transform')];
669
+ transform = transform.match(/\d+/g);
670
+
671
+ // We need to check these separately because in some cases we'll also have translateZ, this way we don't have to worry about it
672
+ equals(transform[0], '100', "Test translateX after animate.");
673
+ equals(transform[1], '100', "Test translateY after animate.");
674
+
675
+ equals(transitionFor(view), SC.browser.experimentalCSSNameFor('transform') + ' 0.5s ease 0s, width 0.5s ease 0s', 'Tests the CSS transition property');
676
+
677
+ equals(style.left, '0px', 'Tests the left style after animate');
678
+ equals(style.top, '0px', 'Tests the top style after animate');
679
+ equals(style.width, '400px', 'Tests the width style after animate');
680
+
681
+ view.cancelAnimation();
682
+ });
683
+ }, 250);
684
+
685
+ setTimeout(function () {
686
+ var style = styleFor(view);
687
+ equals(style.width, '400px', 'Tests the width style after cancel');
688
+
689
+ var transform = style[SC.browser.experimentalStyleNameFor('transform')];
690
+ transform = transform.match(/\d+/g);
691
+
692
+ equals(transform[0], '100', "Test translateX after cancel.");
693
+ equals(transform[1], '100', "Test translateY after cancel.");
694
+
695
+ equals(transitionFor(view), '', 'Tests that there is no CSS transition property after cancel');
696
+
697
+ start();
698
+ }, 350);
699
+ });
700
+
701
+ test("Test that cancelAnimation(SC.LayoutState.CURRENT) removes the animation style, stops at the current position and fires the callback with isCancelled set.", function () {
702
+ stop(2000);
703
+
704
+
705
+ SC.run(function () {
706
+ view.animate({ left: 200, top: 200, width: 400 }, { duration: 1 }, function (data) {
707
+ ok(data.isCancelled, "The isCancelled property of the data should be true.");
708
+ });
709
+ });
710
+
711
+ setTimeout(function () {
712
+ SC.run(function () {
713
+ var style = styleFor(view),
714
+ transform = style[SC.browser.experimentalStyleNameFor('transform')];
715
+ transform = transform.match(/\d+/g);
716
+
717
+ // We need to check these separately because in some cases we'll also have translateZ, this way we don't have to worry about it
718
+ equals(transform[0], '200', "Test translateX after animate.");
719
+ equals(transform[1], '200', "Test translateY after animate.");
720
+ equals(transitionFor(view), SC.browser.experimentalCSSNameFor('transform') + ' 1s ease 0s, width 1s ease 0s', 'Tests the CSS transition property');
721
+
722
+ equals(style.left, '0px', 'Tests the left style after animate');
723
+ equals(style.top, '0px', 'Tests the top style after animate');
724
+ equals(style.width, '400px', 'Tests the width style after animate');
409
725
 
410
- test("should warn if multiple callbacks for transitions");
726
+ view.cancelAnimation(SC.LayoutState.CURRENT);
727
+ });
728
+ }, 250);
411
729
 
730
+ setTimeout(function () {
731
+ var style = styleFor(view),
732
+ layout = view.get('layout');
733
+
734
+ equals(transitionFor(view), '', 'Tests that there is no CSS transition property after cancel');
735
+
736
+ // We need to check these separately because in some cases we'll also have translateZ, this way we don't have to worry about it
737
+ ok((layout.left > 0) && (layout.left < 200), 'Tests the left style, %@, after cancel is greater than 0 and less than 200'.fmt(style.left));
738
+ ok((layout.top > 0) && (layout.top < 200), 'Tests the top style, %@, after cancel is greater than 0 and less than 200'.fmt(style.top));
739
+ ok((parseInt(style.width, 10) > 100) && (parseInt(style.width, 10) < 400), 'Tests the width style, %@, after cancel is greater than 100 and less than 400'.fmt(style.width));
740
+ start();
741
+ }, 750);
742
+ });
743
+
744
+ test("Test that cancelAnimation(SC.LayoutState.START) removes the animation style, goes back to the start position and fires the callback with isCancelled set.", function () {
745
+ stop(2000);
746
+
747
+ // expect(12);
748
+
749
+ SC.run(function () {
750
+ view.animate({ left: 100, top: 100, width: 400 }, { duration: 0.5 }, function (data) {
751
+ ok(data.isCancelled, "The isCancelled property of the data should be true.");
752
+ });
753
+ });
754
+
755
+ setTimeout(function () {
756
+ SC.run(function () {
757
+ var style = styleFor(view),
758
+ transform = style[SC.browser.experimentalStyleNameFor('transform')];
759
+ equals(style.left, '0px', 'Tests the left style after animate');
760
+ equals(style.top, '0px', 'Tests the top style after animate');
761
+ equals(style.width, '400px', 'Tests the width style after animate');
762
+
763
+ transform = transform.match(/\d+/g);
764
+
765
+ // We need to check these separately because in some cases we'll also have translateZ, this way we don't have to worry about it
766
+ equals(transform[0], '100', "Test translateX after animate.");
767
+ equals(transform[1], '100', "Test translateY after animate.");
768
+
769
+ equals(transitionFor(view), SC.browser.experimentalCSSNameFor('transform') + ' 0.5s ease 0s, width 0.5s ease 0s', 'Tests the CSS transition property');
770
+ view.cancelAnimation(SC.LayoutState.START);
771
+ });
772
+ }, 250);
773
+
774
+ setTimeout(function () {
775
+ var style = styleFor(view);
776
+
777
+ var transform = style[SC.browser.experimentalStyleNameFor('transform')];
778
+ transform = transform.match(/\d+/g);
779
+
780
+ equals(transitionFor(view), '', 'Tests that there is no CSS transition property after cancel');
781
+
782
+ // We need to check these separately because in some cases we'll also have translateZ, this way we don't have to worry about it
783
+ equals(transform[0], '0', "Test translateX after cancel.");
784
+ equals(transform[1], '0', "Test translateY after cancel.");
785
+ equals(style.width, '100px', 'Tests the width style after cancel');
786
+ start();
787
+ }, 350);
788
+ });
789
+ } else {
790
+ test("This platform appears to not support CSS 3D transforms.");
791
+ }
792
+ } else {
793
+ test("This platform appears to not support CSS transitions.");
412
794
  }
413
795
 
414
796
  module("ANIMATION WITHOUT TRANSITIONS", {
415
- setup: function(){
797
+ setup: function () {
416
798
  commonSetup.setup();
417
799
  SC.platform.supportsCSSTransitions = NO;
418
800
  },
419
801
 
420
- teardown: function(){
802
+ teardown: function () {
421
803
  commonSetup.teardown();
422
804
  SC.platform.supportsCSSTransitions = originalSupportsTransitions;
423
805
  }
424
806
  });
425
807
 
426
- test("should update layout", function(){
427
- view.animate('left', 100, 1);
428
- equals(100, view.get('layout').left, 'left is 100');
808
+ test("should update layout", function () {
809
+ stop(2000);
810
+ SC.RunLoop.begin();
811
+ view.animate('left', 100, { duration: 1 });
812
+ SC.RunLoop.end();
813
+
814
+ setTimeout(function () {
815
+ equals(view.get('layout').left, 100, 'left is 100');
816
+ start();
817
+ }, 5);
429
818
  });
430
819
 
431
- test("should still run callback", function(){
820
+ test("should still run callback", function () {
432
821
  stop(2000);
433
822
 
434
823
  expect(1);
435
824
 
436
825
  SC.RunLoop.begin();
437
- view.animate({ top: 200, left: 100 }, 1, function() {
826
+ view.animate({ top: 200, left: 100 }, { duration: 1 }, function () {
438
827
  ok(true, "callback called");
439
828
  start();
440
829
  });
441
830
  SC.RunLoop.end();
442
831
  });
832
+
833
+ module("Animating in the next run loop", commonSetup);
834
+
835
+ test("Calling animate while flusing the invokeNext queue should not throw an exception", function () {
836
+ try {
837
+ SC.run(function () {
838
+ view.invokeNext(function () {
839
+ this.animate({ top: 250 }, { duration: 1 });
840
+ });
841
+
842
+ view.animate({ top: 200 }, { duration: 1 });
843
+ });
844
+
845
+ SC.run(function () {
846
+ // The first call to _animate and the function with animate in it run.
847
+ });
848
+
849
+ SC.run(function () {
850
+ // The second call to _animate from the function with animate in it.
851
+ });
852
+ } catch (ex) {
853
+ ok(false, "failure");
854
+ }
855
+
856
+ ok(true, "success");
857
+ });