sproutcore 1.8.2.1 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (274) hide show
  1. data/VERSION.yml +2 -2
  2. data/lib/buildtasks/helpers/file_rule_list.rb +3 -3
  3. data/lib/frameworks/sproutcore/Buildfile +1 -1
  4. data/lib/frameworks/sproutcore/CHANGELOG.md +235 -16
  5. data/lib/frameworks/sproutcore/apps/media_examples/Buildfile +13 -0
  6. data/lib/frameworks/sproutcore/apps/media_examples/core.js +35 -0
  7. data/lib/frameworks/sproutcore/apps/media_examples/resources/loading.rhtml +3 -0
  8. data/lib/frameworks/sproutcore/apps/media_examples/resources/main_page.js +53 -0
  9. data/lib/frameworks/sproutcore/apps/media_examples/views/audio_view.js +100 -0
  10. data/lib/frameworks/sproutcore/apps/media_examples/views/camera_view.js +39 -0
  11. data/lib/frameworks/sproutcore/apps/media_examples/views/capabilities_view.js +116 -0
  12. data/lib/frameworks/sproutcore/apps/media_examples/views/microphone_view.js +40 -0
  13. data/lib/frameworks/sproutcore/apps/media_examples/views/video_view.js +107 -0
  14. data/lib/frameworks/sproutcore/apps/showcase/Buildfile +11 -0
  15. data/lib/frameworks/sproutcore/apps/showcase/README +15 -0
  16. data/lib/frameworks/sproutcore/apps/showcase/controllers/source_controller.js +15 -0
  17. data/lib/frameworks/sproutcore/apps/showcase/controllers/source_tree_controller.js +212 -0
  18. data/lib/frameworks/sproutcore/apps/showcase/core.js +170 -0
  19. data/lib/frameworks/sproutcore/apps/showcase/main.js +27 -0
  20. data/lib/frameworks/sproutcore/apps/showcase/resources/_theme.css +18 -0
  21. data/lib/frameworks/sproutcore/apps/showcase/resources/api.css +80 -0
  22. data/lib/frameworks/sproutcore/apps/showcase/resources/favicon.ico +0 -0
  23. data/lib/frameworks/sproutcore/apps/showcase/resources/images/alarm-clock.png +0 -0
  24. data/lib/frameworks/sproutcore/apps/showcase/resources/images/balloon-facebook.png +0 -0
  25. data/lib/frameworks/sproutcore/apps/showcase/resources/images/balloon-twitter.png +0 -0
  26. data/lib/frameworks/sproutcore/apps/showcase/resources/images/balloon.png +0 -0
  27. data/lib/frameworks/sproutcore/apps/showcase/resources/images/bullet.png +0 -0
  28. data/lib/frameworks/sproutcore/apps/showcase/resources/images/calendar-insert.png +0 -0
  29. data/lib/frameworks/sproutcore/apps/showcase/resources/images/cross.png +0 -0
  30. data/lib/frameworks/sproutcore/apps/showcase/resources/images/example-box-bg.png +0 -0
  31. data/lib/frameworks/sproutcore/apps/showcase/resources/images/fruit-grape.png +0 -0
  32. data/lib/frameworks/sproutcore/apps/showcase/resources/images/fruit-lime.png +0 -0
  33. data/lib/frameworks/sproutcore/apps/showcase/resources/images/fruit-orange.png +0 -0
  34. data/lib/frameworks/sproutcore/apps/showcase/resources/images/fruit.png +0 -0
  35. data/lib/frameworks/sproutcore/apps/showcase/resources/images/glow.png +0 -0
  36. data/lib/frameworks/sproutcore/apps/showcase/resources/images/green-dot.png +0 -0
  37. data/lib/frameworks/sproutcore/apps/showcase/resources/images/grey-dot.png +0 -0
  38. data/lib/frameworks/sproutcore/apps/showcase/resources/images/logo.png +0 -0
  39. data/lib/frameworks/sproutcore/apps/showcase/resources/images/pixels.png +0 -0
  40. data/lib/frameworks/sproutcore/apps/showcase/resources/images/red-dot.png +0 -0
  41. data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-logo.png +0 -0
  42. data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-startup-landscape.jpg +0 -0
  43. data/lib/frameworks/sproutcore/apps/{test_controls → showcase}/resources/loading.rhtml +1 -1
  44. data/lib/frameworks/sproutcore/apps/showcase/resources/main_page.js +61 -0
  45. data/lib/frameworks/sproutcore/apps/showcase/resources/stylesheet.css +365 -0
  46. data/lib/frameworks/sproutcore/apps/showcase/resources/views_page.js +64 -0
  47. data/lib/frameworks/sproutcore/apps/showcase/system/views_item_content.js +59 -0
  48. data/lib/frameworks/sproutcore/apps/showcase/theme.js +27 -0
  49. data/lib/frameworks/sproutcore/apps/showcase/views/button_views.js +55 -0
  50. data/lib/frameworks/sproutcore/apps/showcase/views/checkbox_views.js +34 -0
  51. data/lib/frameworks/sproutcore/apps/showcase/views/container_views.js +29 -0
  52. data/lib/frameworks/sproutcore/apps/showcase/views/date_field_views.js +30 -0
  53. data/lib/frameworks/sproutcore/apps/showcase/views/disclosure_views.js +22 -0
  54. data/lib/frameworks/sproutcore/apps/showcase/views/grid_views.js +28 -0
  55. data/lib/frameworks/sproutcore/apps/showcase/views/image_button_views.js +22 -0
  56. data/lib/frameworks/sproutcore/apps/showcase/views/image_views.js +51 -0
  57. data/lib/frameworks/sproutcore/apps/showcase/views/label_views.js +53 -0
  58. data/lib/frameworks/sproutcore/apps/showcase/views/list_views.js +31 -0
  59. data/lib/frameworks/sproutcore/apps/showcase/views/popup_button_views.js +24 -0
  60. data/lib/frameworks/sproutcore/apps/showcase/views/progress_views.js +26 -0
  61. data/lib/frameworks/sproutcore/apps/showcase/views/radio_views.js +30 -0
  62. data/lib/frameworks/sproutcore/apps/showcase/views/scroll_views.js +40 -0
  63. data/lib/frameworks/sproutcore/apps/showcase/views/segmented_views.js +90 -0
  64. data/lib/frameworks/sproutcore/apps/showcase/views/select_views.js +64 -0
  65. data/lib/frameworks/sproutcore/apps/showcase/views/slider_views.js +46 -0
  66. data/lib/frameworks/sproutcore/apps/showcase/views/source_list_views.js +23 -0
  67. data/lib/frameworks/sproutcore/apps/showcase/views/split_views.js +22 -0
  68. data/lib/frameworks/sproutcore/apps/showcase/views/stacked_views.js +23 -0
  69. data/lib/frameworks/sproutcore/apps/showcase/views/static_content_views.js +23 -0
  70. data/lib/frameworks/sproutcore/apps/showcase/views/tab_views.js +51 -0
  71. data/lib/frameworks/sproutcore/apps/showcase/views/text_field_views.js +52 -0
  72. data/lib/frameworks/sproutcore/apps/showcase/views/toolbar_views.js +23 -0
  73. data/lib/frameworks/sproutcore/apps/showcase/views/views_item_view.js +91 -0
  74. data/lib/frameworks/sproutcore/apps/showcase/views/views_list_view.js +67 -0
  75. data/lib/frameworks/sproutcore/apps/showcase/views/web_views.js +32 -0
  76. data/lib/frameworks/sproutcore/apps/showcase/views/well_views.js +29 -0
  77. data/lib/frameworks/sproutcore/apps/showcase/views/workspace_views.js +23 -0
  78. data/lib/frameworks/sproutcore/apps/tests/english.lproj/strings.js +2 -1
  79. data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +91 -51
  80. data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +93 -27
  81. data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +196 -15
  82. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +1 -1
  83. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +26 -10
  84. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +90 -92
  85. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +69 -39
  86. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +1 -1
  87. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/color.js +769 -0
  88. data/lib/frameworks/sproutcore/frameworks/{desktop → core_foundation}/system/key_bindings.js +0 -0
  89. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +4 -4
  90. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/req_anim_frame.js +31 -0
  91. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +7 -1
  92. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +8 -6
  93. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +49 -0
  94. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/selection_support.js +1 -1
  95. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/ext/object_test.js +106 -0
  96. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/color.js +448 -0
  97. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/escape_html.js +8 -1
  98. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/timer/invokeLater.js +24 -24
  99. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/utils/offset.js +5 -5
  100. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/animation.js +90 -30
  101. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/class_name_bindings_test.js +14 -6
  102. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/touch.js +113 -0
  103. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +64 -8
  104. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +20 -4
  105. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +58 -38
  106. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/touch.js +32 -39
  107. data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +20 -15
  108. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +19 -15
  109. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_record.js +1 -1
  110. data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +16 -16
  111. data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +32 -32
  112. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +53 -38
  113. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +9 -8
  114. data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +26 -26
  115. data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +1 -3
  116. data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +4 -3
  117. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +0 -4
  118. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +96 -8
  119. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/datetime_recordattribute.js +22 -4
  120. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/data_store.js +24 -24
  121. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +376 -37
  122. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +51 -53
  123. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +108 -66
  124. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +33 -35
  125. data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +6 -4
  126. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +33 -3
  127. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +181 -15
  128. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +6 -0
  129. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +3 -1
  130. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +2 -1
  131. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +153 -6
  132. data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +39 -18
  133. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -1
  134. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +6 -7
  135. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +139 -50
  136. data/lib/frameworks/sproutcore/frameworks/{foundation → desktop}/resources/button_view.css +3 -3
  137. data/lib/frameworks/sproutcore/frameworks/{foundation → desktop}/resources/checkbox_view.css +4 -0
  138. data/lib/frameworks/sproutcore/frameworks/desktop/resources/disclosure.css +2 -2
  139. data/lib/frameworks/sproutcore/frameworks/{foundation → desktop}/resources/radio_view.css +0 -0
  140. data/lib/frameworks/sproutcore/frameworks/desktop/resources/segmented.css +23 -17
  141. data/lib/frameworks/sproutcore/frameworks/desktop/resources/web.css +5 -0
  142. data/lib/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +4 -5
  143. data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/border.js +3 -12
  144. data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/collection_fast_path.js +58 -0
  145. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +2 -2
  146. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +79 -12
  147. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +13 -0
  148. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +2 -2
  149. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/drag_and_drop.js +147 -0
  150. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +123 -2
  151. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/drag_and_drop.js +150 -0
  152. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +58 -44
  153. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/methods.js +9 -80
  154. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +54 -130
  155. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/observers.js +78 -0
  156. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +64 -9
  157. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/methods.js +11 -11
  158. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +28 -2
  159. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/methods.js +74 -0
  160. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/ui.js +141 -0
  161. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +4 -1
  162. data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +69 -36
  163. data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +27 -11
  164. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +41 -25
  165. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +51 -89
  166. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +59 -34
  167. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +59 -49
  168. data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/scroll.js +1 -1
  169. data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +4 -1
  170. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +14 -14
  171. data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +8 -8
  172. data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +13 -1
  173. data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +4 -1
  174. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/colors.js +21 -22
  175. data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/selection_support.js +26 -0
  176. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +4 -5
  177. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/image_queue.js +68 -44
  178. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/user_defaults.js +10 -0
  179. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +0 -10
  180. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +24 -59
  181. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +47 -34
  182. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +96 -12
  183. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +38 -0
  184. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +38 -50
  185. data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +6 -2
  186. data/lib/frameworks/sproutcore/frameworks/media/media_capabilities.js +211 -0
  187. data/lib/frameworks/sproutcore/frameworks/media/render_delegates/media_slider.js +77 -0
  188. data/lib/frameworks/sproutcore/frameworks/media/resources/playeras3.fla +0 -0
  189. data/lib/frameworks/sproutcore/frameworks/media/resources/video.css +129 -115
  190. data/lib/frameworks/sproutcore/frameworks/media/resources/videoCanvas.swf +0 -0
  191. data/lib/frameworks/sproutcore/frameworks/media/tests/media_capabilities.js +194 -0
  192. data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +56 -173
  193. data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +15 -18
  194. data/lib/frameworks/sproutcore/frameworks/media/views/media_slider.js +63 -219
  195. data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +4 -2
  196. data/lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js +4 -8
  197. data/lib/frameworks/sproutcore/frameworks/media/views/video.js +51 -160
  198. data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +138 -102
  199. data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +8 -0
  200. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +2 -2
  201. data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +8 -2
  202. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +32 -12
  203. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +28 -24
  204. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +0 -2
  205. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +111 -12
  206. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/compare.js +9 -7
  207. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +8 -2
  208. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable/enumerable.js +160 -115
  209. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +64 -19
  210. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/mixin.js +83 -0
  211. data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/bind.js +3 -0
  212. data/lib/frameworks/sproutcore/frameworks/template_view/tests/views/template/collection.js +13 -0
  213. data/lib/frameworks/sproutcore/frameworks/template_view/tests/views/template/handlebars.js +4 -2
  214. data/lib/frameworks/sproutcore/frameworks/template_view/views/template_collection.js +5 -5
  215. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +5 -1
  216. data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +13 -12
  217. data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +9 -2
  218. data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress.css +105 -5
  219. data/lib/frameworks/sproutcore/themes/ace/resources/progress/ace/progress_view_indeterminate_content.png +0 -0
  220. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +19 -15
  221. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +93 -21
  222. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_vertical_active.png +0 -0
  223. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_vertical_normal.png +0 -0
  224. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_vertical_selected.png +0 -0
  225. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented_vertical_selected_active.png +0 -0
  226. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +91 -15
  227. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_vertical_active.png +0 -0
  228. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_vertical_normal.png +0 -0
  229. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_vertical_selected.png +0 -0
  230. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented_vertical_selected_active.png +0 -0
  231. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +21 -17
  232. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +26 -25
  233. data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/menu_item_view.css +2 -4
  234. data/lib/sproutcore/helpers/minifier.rb +5 -5
  235. data/lib/sproutcore/tools/build.rb +1 -1
  236. data/sproutcore.gemspec +6 -1
  237. data/vendor/chance/lib/chance/instance/slicing.rb +2 -2
  238. metadata +143 -60
  239. data/lib/frameworks/sproutcore/apps/test_controls/Buildfile +0 -0
  240. data/lib/frameworks/sproutcore/apps/test_controls/controllers/alert.js +0 -39
  241. data/lib/frameworks/sproutcore/apps/test_controls/controllers/buttons.js +0 -21
  242. data/lib/frameworks/sproutcore/apps/test_controls/controllers/categories.js +0 -125
  243. data/lib/frameworks/sproutcore/apps/test_controls/controllers/category.js +0 -36
  244. data/lib/frameworks/sproutcore/apps/test_controls/controllers/select.js +0 -12
  245. data/lib/frameworks/sproutcore/apps/test_controls/controllers/split.js +0 -74
  246. data/lib/frameworks/sproutcore/apps/test_controls/core.js +0 -29
  247. data/lib/frameworks/sproutcore/apps/test_controls/main.js +0 -14
  248. data/lib/frameworks/sproutcore/apps/test_controls/resources/buttons_page.js +0 -158
  249. data/lib/frameworks/sproutcore/apps/test_controls/resources/checkboxes_page.js +0 -53
  250. data/lib/frameworks/sproutcore/apps/test_controls/resources/flow_layout_page.js +0 -85
  251. data/lib/frameworks/sproutcore/apps/test_controls/resources/list_page.js +0 -40
  252. data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.css +0 -60
  253. data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +0 -151
  254. data/lib/frameworks/sproutcore/apps/test_controls/resources/panels_page.js +0 -62
  255. data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +0 -33
  256. data/lib/frameworks/sproutcore/apps/test_controls/resources/radio_page.js +0 -55
  257. data/lib/frameworks/sproutcore/apps/test_controls/resources/scroll_page.js +0 -77
  258. data/lib/frameworks/sproutcore/apps/test_controls/resources/segmented_page.js +0 -99
  259. data/lib/frameworks/sproutcore/apps/test_controls/resources/select_page.js +0 -75
  260. data/lib/frameworks/sproutcore/apps/test_controls/resources/sliders_page.js +0 -54
  261. data/lib/frameworks/sproutcore/apps/test_controls/resources/split_page.js +0 -141
  262. data/lib/frameworks/sproutcore/apps/test_controls/resources/strings.js +0 -50
  263. data/lib/frameworks/sproutcore/apps/test_controls/resources/tab_page.js +0 -53
  264. data/lib/frameworks/sproutcore/apps/test_controls/resources/text_field_page.js +0 -65
  265. data/lib/frameworks/sproutcore/apps/test_controls/theme.js +0 -34
  266. data/lib/frameworks/sproutcore/apps/tests/tests/controllers/detail.js +0 -15
  267. data/lib/frameworks/sproutcore/apps/tests/tests/controllers/source.js +0 -15
  268. data/lib/frameworks/sproutcore/apps/tests/tests/controllers/target.js +0 -15
  269. data/lib/frameworks/sproutcore/apps/tests/tests/controllers/targets.js +0 -15
  270. data/lib/frameworks/sproutcore/apps/tests/tests/controllers/tests.js +0 -15
  271. data/lib/frameworks/sproutcore/apps/tests/tests/models/target.js +0 -15
  272. data/lib/frameworks/sproutcore/apps/tests/tests/models/test.js +0 -15
  273. data/lib/frameworks/sproutcore/apps/tests/tests/views/offset_checkbox.js +0 -15
  274. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/console.js +0 -21
@@ -0,0 +1,64 @@
1
+ // ==========================================================================
2
+ // Project: Showcase
3
+ // Copyright: @2012 Tyler Keating
4
+ // ==========================================================================
5
+ /*globals Showcase */
6
+
7
+
8
+ Showcase.viewsPage = SC.Page.create({
9
+
10
+ buttonViews: Showcase.buttonViews,
11
+
12
+ checkboxViews: Showcase.checkboxViews,
13
+
14
+ containerViews: Showcase.containerViews,
15
+
16
+ dateFieldViews: Showcase.dateFieldViews,
17
+
18
+ disclosureViews: Showcase.disclosureViews,
19
+
20
+ gridViews: Showcase.gridViews,
21
+
22
+ imageButtonViews: Showcase.imageButtonViews,
23
+
24
+ imageViews: Showcase.imageViews,
25
+
26
+ labelViews: Showcase.labelViews,
27
+
28
+ listViews: Showcase.listViews,
29
+
30
+ popupButtonViews: Showcase.popupButtonViews,
31
+
32
+ progressViews: Showcase.progressViews,
33
+
34
+ radioViews: Showcase.radioViews,
35
+
36
+ scrollViews: Showcase.scrollViews,
37
+
38
+ segmentedViews: Showcase.segmentedViews,
39
+
40
+ selectViews: Showcase.selectViews,
41
+
42
+ sliderViews: Showcase.sliderViews,
43
+
44
+ sourceListViews: Showcase.sourceListViews,
45
+
46
+ splitViews: Showcase.splitViews,
47
+
48
+ stackedViews: Showcase.stackedViews,
49
+
50
+ staticContentViews: Showcase.staticContentViews,
51
+
52
+ tabViews: Showcase.tabViews,
53
+
54
+ textFieldViews: Showcase.textFieldViews,
55
+
56
+ toolbarViews: Showcase.toolbarViews,
57
+
58
+ webViews: Showcase.webViews,
59
+
60
+ wellViews: Showcase.wellViews,
61
+
62
+ workspaceViews: Showcase.workspaceViews
63
+
64
+ });
@@ -0,0 +1,59 @@
1
+ // ==========================================================================
2
+ // Project: Showcase
3
+ // Copyright: @2012 Tyler Keating
4
+ // ==========================================================================
5
+ /*globals Showcase */
6
+
7
+
8
+ /**
9
+ This class is used to provide content to the lists of Views & Controls.
10
+ */
11
+ Showcase.ViewsItemContent = SC.Object.extend({
12
+
13
+ example: null,
14
+
15
+ /**
16
+ Takes the example snippet and generates a multiline String.
17
+ */
18
+ exampleString: function() {
19
+ var example = this.get('example'),
20
+ padding = ' ',
21
+ parts;
22
+
23
+ parts = example.split(' ');
24
+ parts.forEach(function(part, index) {
25
+ if (part.indexOf('.extend(') >= 0 || part.indexOf('function(') >= 0 || part.indexOf('({') >= 0) {
26
+ parts[index] = padding + part;
27
+ padding += ' ';
28
+ } else if (part.indexOf('}.property') >= 0 || part.indexOf('})') >= 0) {
29
+ padding = padding.substr(2);
30
+ parts[index] = padding + part;
31
+ } else {
32
+ parts[index] = padding + part;
33
+ }
34
+ });
35
+
36
+ return '\n' + parts.join('\n') + '\n';
37
+ }.property().cacheable(),
38
+
39
+ /**
40
+ Takes the example snippet and generates a JavaScript class.
41
+ */
42
+ exampleView: function() {
43
+ var el,
44
+ example = this.get('example');
45
+
46
+ // Remove the HTML formatting from the snippet.
47
+ // el = document.createElement("div");
48
+ // el.innerHTML = example;
49
+ // example = el.textContent || el.innerText;
50
+
51
+ // Return the JavaScript interpretation.
52
+ return eval(example);
53
+ }.property().cacheable(),
54
+
55
+ supportTitle: null,
56
+
57
+ title: null
58
+
59
+ });
@@ -0,0 +1,27 @@
1
+ // ==========================================================================
2
+ // Project: Showcase
3
+ // Copyright: @2012 My Company, Inc.
4
+ // ==========================================================================
5
+ /*globals Showcase */
6
+
7
+ // This is the theme that defines how your app renders.
8
+ //
9
+ // Your app is given its own theme so it is easier and less
10
+ // messy for you to override specific things just for your
11
+ // app.
12
+ //
13
+ // You don't have to create the whole theme on your own, though:
14
+ // your app's theme is based on SproutCore's Ace theme.
15
+ //
16
+ // NOTE: if you want to change the theme this one is based on, don't
17
+ // forget to change the :css_theme property in your buildfile.
18
+ Showcase.Theme = SC.AceTheme.create({
19
+ name: 'showcase'
20
+ });
21
+
22
+ // SproutCore needs to know that your app's theme exists
23
+ SC.Theme.addTheme(Showcase.Theme);
24
+
25
+ // Setting it as the default theme makes every pane SproutCore
26
+ // creates default to this theme unless otherwise specified.
27
+ SC.defaultTheme = 'showcase';
@@ -0,0 +1,55 @@
1
+ // ==========================================================================
2
+ // Project: Showcase
3
+ // Copyright: @2012 Tyler Keating
4
+ // ==========================================================================
5
+ /*globals Showcase */
6
+ sc_require('system/views_item_content.js');
7
+ sc_require('views/views_list_view.js');
8
+
9
+
10
+ /**
11
+ This pre-configured view demonstrates SC.ButtonView.
12
+ */
13
+ Showcase.buttonViews = SC.ScrollView.design({
14
+ contentView: Showcase.ViewsListView.design({
15
+ content: [
16
+ Showcase.ViewsItemContent.create({
17
+ title: 'Regular',
18
+ example: "SC.View.extend({ childViews: ['regularButton', 'iconButton'], regularButton: SC.ButtonView.extend({ layout: { width: 120, height: 24, centerX: -70, centerY: 0 }, title: 'Push Me' }), iconButton: SC.ButtonView.extend({ icon: 'sc-icon-favorite-16', layout: { width: 120, height: 24, centerX: 70, centerY: 0 }, title: 'Love Me' }) })"
19
+ }),
20
+ Showcase.ViewsItemContent.create({
21
+ title: 'Small',
22
+ example: "SC.View.extend({ childViews: ['regularButton', 'iconButton'], regularButton: SC.ButtonView.extend({ controlSize: SC.SMALL_CONTROL_SIZE, layout: { width: 100, height: 18, centerX: -60, centerY: 0 }, title: 'Push Me' }), iconButton: SC.ButtonView.extend({ controlSize: SC.SMALL_CONTROL_SIZE, icon: sc_static('images/green-dot.png'), layout: { width: 100, height: 18, centerX: 60, centerY: 0 }, title: 'Status OK' }) })"
23
+ }),
24
+ Showcase.ViewsItemContent.create({
25
+ title: 'Huge',
26
+ example: "SC.View.extend({ childViews: ['regularButton', 'iconButton'], regularButton: SC.ButtonView.extend({ controlSize: SC.HUGE_CONTROL_SIZE, layout: { width: 120, height: 30, centerX: -70, centerY: 0 }, title: 'Push Me' }), iconButton: SC.ButtonView.extend({ controlSize: SC.HUGE_CONTROL_SIZE, icon: 'sc-icon-options-16', layout: { width: 120, height: 30, centerX: 70, centerY: 0 }, title: 'Configure' }) })"
27
+ }),
28
+ Showcase.ViewsItemContent.create({
29
+ title: 'Jumbo',
30
+ example: "SC.View.extend({ childViews: ['regularButton', 'iconButton'], regularButton: SC.ButtonView.extend({ controlSize: SC.JUMBO_CONTROL_SIZE, layout: { width: 150, height: 44, centerX: -85, centerY: 0 }, title: 'Push Me' }), iconButton: SC.ButtonView.extend({ controlSize: SC.JUMBO_CONTROL_SIZE, icon: 'sc-icon-cancel-24', layout: { width: 150, height: 44, centerX: 85, centerY: 0 }, title: 'Delete' }) })"
31
+ }),
32
+ Showcase.ViewsItemContent.create({
33
+ title: 'Toggles',
34
+ example: "SC.View.extend({ childViews: ['toggle', 'toggleOn', 'toggleOff'], toggle: SC.ButtonView.extend({ buttonBehavior: SC.TOGGLE_BEHAVIOR, layout: { width: 120, height: 24, centerX: -135, centerY: 0 }, title: 'Toggle Me' }), toggleOn: SC.ButtonView.extend({ buttonBehavior: SC.TOGGLE_ON_BEHAVIOR, layout: { width: 120, height: 24, centerX: 0, centerY: 0 }, title: 'Toggle On', value: false }), toggleOff: SC.ButtonView.extend({ buttonBehavior: SC.TOGGLE_OFF_BEHAVIOR, layout: { width: 120, height: 24, centerX: 135, centerY: 0 }, title: 'Toggle Off', value: true }) });",
35
+ supportAction: function() {
36
+ this.setPath('parentView.exampleBox.contentView.toggleOn.value', false);
37
+ this.setPath('parentView.exampleBox.contentView.toggleOff.value', true);
38
+ },
39
+ supportTitle: 'Reset Values'
40
+ }),
41
+ Showcase.ViewsItemContent.create({
42
+ title: 'States',
43
+ example: "SC.View.extend({ childViews: ['disabledButton', 'defaultButton'], disabledButton: SC.ButtonView.extend({ isEnabled: false, layout: { width: 100, height: 24, centerX: 60, centerY: 0 }, title: 'Disabled' }), defaultButton: SC.ButtonView.extend({ isDefault: true, layout: { width: 100, height: 24, centerX: -60, centerY: 0 }, title: 'Default' }) })"
44
+ }),
45
+ Showcase.ViewsItemContent.create({
46
+ title: 'Capsule',
47
+ example: "SC.ButtonView.extend({ layout: { width: 100, height: 24, centerX: 0, centerY: 0 }, themeName: 'capsule', title: 'Click Me' });"
48
+ }),
49
+ Showcase.ViewsItemContent.create({
50
+ title: 'Pointers',
51
+ example: "SC.View.extend({ childViews: ['pointLeftButton', 'pointRightButton'], pointLeftButton: SC.ButtonView.extend({ layout: { width: 100, height: 24, centerX: -50, centerY: 0 }, themeName: 'point-left', title: 'Back' }), pointRightButton: SC.ButtonView.extend({ layout: { width: 100, height: 24, centerX: 50, centerY: 0 }, themeName: 'point-right', title: 'Forward' }) });"
52
+ })
53
+ ]
54
+ })
55
+ });
@@ -0,0 +1,34 @@
1
+ // ==========================================================================
2
+ // Project: Showcase
3
+ // Copyright: @2012 Tyler Keating
4
+ // ==========================================================================
5
+ /*globals Showcase */
6
+ sc_require('system/views_item_content.js');
7
+ sc_require('views/views_list_view.js');
8
+
9
+
10
+ /**
11
+ This pre-configured view demonstrates SC.CheckboxView.
12
+ */
13
+ Showcase.checkboxViews = SC.ScrollView.design({
14
+ contentView: Showcase.ViewsListView.design({
15
+ content: [
16
+ Showcase.ViewsItemContent.create({
17
+ title: 'Regular',
18
+ example: "SC.View.extend({ childViews: ['regularCheckbox', 'iconCheckbox'], regularCheckbox: SC.CheckboxView.extend({ layout: { width: 120, height: 16, centerX: -70, centerY: 0 }, title: 'Check Me' }), iconCheckbox: SC.CheckboxView.extend({ icon: 'sc-icon-bookmark-16', layout: { width: 120, height: 16, centerX: 70, centerY: 0 }, title: 'Bookmark It' }) })"
19
+ }),
20
+ Showcase.ViewsItemContent.create({
21
+ title: 'Small',
22
+ example: "SC.View.extend({ childViews: ['regularCheckbox', 'iconCheckbox'], regularCheckbox: SC.CheckboxView.extend({ controlSize: SC.SMALL_CONTROL_SIZE, layout: { width: 120, height: 14, centerX: -70, centerY: 0 }, title: 'Check Me' }), iconCheckbox: SC.CheckboxView.extend({ controlSize: SC.SMALL_CONTROL_SIZE, icon: sc_static('images/alarm-clock.png'), layout: { width: 120, height: 14, centerX: 70, centerY: 0 }, title: 'Save Alarm' }) })"
23
+ }),
24
+ Showcase.ViewsItemContent.create({
25
+ title: 'States',
26
+ example: "SC.View.extend({ childViews: ['mixedCheckbox', 'disabledCheckbox'], mixedCheckbox: SC.CheckboxView.extend({ layout: { width: 120, height: 16, centerX: -70, centerY: 0 }, title: 'Mixed State', toggleOnValue: 'a', value: ['a', 'b'] }), disabledCheckbox: SC.CheckboxView.extend({ isEnabled: false, layout: { width: 120, height: 16, centerX: 70, centerY: 0 }, title: 'Disabled' }) })",
27
+ supportAction: function() {
28
+ this.setPath('parentView.exampleBox.contentView.mixedCheckbox.value', ['a', 'b']);
29
+ },
30
+ supportTitle: 'Reset Mixed Value'
31
+ })
32
+ ]
33
+ })
34
+ });
@@ -0,0 +1,29 @@
1
+ // ==========================================================================
2
+ // Project: Showcase
3
+ // Copyright: @2012 Tyler Keating
4
+ // ==========================================================================
5
+ /*globals Showcase */
6
+ sc_require('system/views_item_content.js');
7
+ sc_require('views/views_list_view.js');
8
+
9
+
10
+ /**
11
+ This pre-configured view demonstrates SC.ContainerView.
12
+ */
13
+ Showcase.containerViews = SC.ScrollView.design({
14
+ contentView: Showcase.ViewsListView.design({
15
+ content: [
16
+ Showcase.ViewsItemContent.create({
17
+ title: 'Regular',
18
+ example: "SC.ContainerView.extend({ layout: { left: 20, right: 20, top: 20, bottom: 20 }, nowShowing: 'blueSampleView', blueSampleView: SC.LabelView.extend({ classNames:['blue-sample-view'], value: 'Blue View' }), redSampleView: SC.LabelView.extend({ classNames:['red-sample-view'], value: 'Red View' }) });",
19
+ supportAction: function() {
20
+ var containerView = this.getPath('parentView.exampleBox.contentView');
21
+ if (containerView.get('nowShowing') === 'blueSampleView') containerView.set('nowShowing', 'redSampleView');
22
+ else containerView.set('nowShowing', 'blueSampleView');
23
+ },
24
+ supportTitle: 'Toggle nowShowing'
25
+ })
26
+ ],
27
+ exampleHeight: 300
28
+ })
29
+ });
@@ -0,0 +1,30 @@
1
+ // ==========================================================================
2
+ // Project: Showcase
3
+ // Copyright: @2012 Tyler Keating
4
+ // ==========================================================================
5
+ /*globals Showcase */
6
+ sc_require('system/views_item_content.js');
7
+ sc_require('views/views_list_view.js');
8
+
9
+
10
+ /**
11
+ This pre-configured view demonstrates SC.DateFieldView.
12
+ */
13
+ Showcase.dateFieldViews = SC.ScrollView.design({
14
+ contentView: Showcase.ViewsListView.design({
15
+ content: [
16
+ Showcase.ViewsItemContent.create({
17
+ title: 'Regular',
18
+ example: "SC.View.extend({ childViews: ['regularField', 'formattedLabel', 'formattedField'], regularField: SC.DateFieldView.extend({ classNames: ['centered-field'], layout: { width: 160, height: 24, centerX: -90, centerY: 0 }, value: SC.DateTime.create() }), formattedLabel: SC.LabelView.extend({ layout: { width: 160, height: 18, centerX: 90, centerY: -20 }, value: 'Custom format' }), formattedField: SC.DateFieldView.extend({ classNames: ['centered-field'], formatDate: '%b | %d | %Y', layout: { width: 160, height: 24, centerX: 90, centerY: 0 }, value: SC.DateTime.create() }) })"
19
+ }),
20
+ Showcase.ViewsItemContent.create({
21
+ title: 'Date and Time',
22
+ example: "SC.View.extend({ childViews: ['regularField', 'formattedLabel', 'formattedField'], regularField: SC.DateFieldView.extend({ classNames: ['centered-field'], layout: { width: 160, height: 24, centerX: -90, centerY: 0 }, showTime: true, value: SC.DateTime.create() }), formattedLabel: SC.LabelView.extend({ layout: { width: 160, height: 18, centerX: 90, centerY: -20 }, value: 'Custom format' }), formattedField: SC.DateFieldView.extend({ classNames: ['centered-field'], formatDateTime: '%y-%m-%d @ %H:%M', layout: { width: 160, height: 24, centerX: 90, centerY: 0 }, showTime: true, value: SC.DateTime.create() }) })"
23
+ }),
24
+ Showcase.ViewsItemContent.create({
25
+ title: 'Time Only',
26
+ example: "SC.View.extend({ childViews: ['regularField', 'formattedLabel', 'formattedField'], regularField: SC.DateFieldView.extend({ classNames: ['centered-field'], layout: { width: 160, height: 24, centerX: -90, centerY: 0 }, showDate: false, showTime: true, value: SC.DateTime.create() }), formattedLabel: SC.LabelView.extend({ layout: { width: 160, height: 18, centerX: 90, centerY: -20 }, value: 'Custom format' }), formattedField: SC.DateFieldView.extend({ classNames: ['centered-field'], formatTime: '%Hh%Mm%Ss', layout: { width: 160, height: 24, centerX: 90, centerY: 0 }, showDate: false, showTime: true, value: SC.DateTime.create() }) })"
27
+ })
28
+ ]
29
+ })
30
+ });
@@ -0,0 +1,22 @@
1
+ // ==========================================================================
2
+ // Project: Showcase
3
+ // Copyright: @2012 Tyler Keating
4
+ // ==========================================================================
5
+ /*globals Showcase */
6
+ sc_require('system/views_item_content.js');
7
+ sc_require('views/views_list_view.js');
8
+
9
+
10
+ /**
11
+ This pre-configured view demonstrates SC.DisclosureView.
12
+ */
13
+ Showcase.disclosureViews = SC.ScrollView.design({
14
+ contentView: Showcase.ViewsListView.design({
15
+ content: [
16
+ Showcase.ViewsItemContent.create({
17
+ title: 'Regular',
18
+ example: "SC.DisclosureView.extend({ layout: { width: 150, height: 24, centerX: 0, centerY: 0 }, title: function() { return this.get('value') ? 'Collapse something' : 'Expand something'; }.property('value').cacheable() })"
19
+ })
20
+ ]
21
+ })
22
+ });
@@ -0,0 +1,28 @@
1
+ // ==========================================================================
2
+ // Project: Showcase
3
+ // Copyright: @2012 Tyler Keating
4
+ // ==========================================================================
5
+ /*globals Showcase */
6
+ sc_require('system/views_item_content.js');
7
+ sc_require('views/views_list_view.js');
8
+
9
+
10
+ /**
11
+ This pre-configured view demonstrates SC.DisclosureView.
12
+ */
13
+ Showcase.gridViews = SC.ScrollView.design({
14
+ contentView: Showcase.ViewsListView.design({
15
+ content: [
16
+ Showcase.ViewsItemContent.create({
17
+ title: 'Regular',
18
+ example: "SC.GridView.extend({ columnWidth: 120, rowHeight: 58, contentBinding: SC.Binding.oneWay('Showcase.collectionItems'), layout: { left: 20, right: 20, top: 20, bottom: 20 }, exampleView: SC.View.extend(SC.Control, { classNames: ['grid-example-view'], childViews: ['image', 'title'], image: SC.ImageView.extend({ layout: { centerX: 0, centerY: 0, height: 24, width: 24 }, valueBinding: SC.Binding.oneWay('.parentView.content.icon') }), title: SC.LabelView.extend({ layout: { centerX: 0, bottom: 0, height: 18, width: 120 }, valueBinding: SC.Binding.oneWay('.parentView.content.title') }) }) })"
19
+ }),
20
+
21
+ Showcase.ViewsItemContent.create({
22
+ title: 'Scrollable with Minimum Width',
23
+ example: "SC.ScrollView.extend({ layout: { left: 20, right: 20, top: 20, bottom: 20 }, contentView: SC.GridView.extend({ columnWidth: 200, rowHeight: 200, layout: { minWidth: 600 }, contentBinding: SC.Binding.oneWay('Showcase.collectionItems'), exampleView: SC.View.extend(SC.Control, { classNames: ['grid-example-view'], childViews: ['image', 'title'], image: SC.ImageView.extend({ layout: { centerX: 0, centerY: 0, height: 24, width: 24 }, valueBinding: SC.Binding.oneWay('.parentView.content.icon') }), title: SC.LabelView.extend({ layout: { centerX: 0, bottom: 0, height: 18, width: 120 }, valueBinding: SC.Binding.oneWay('.parentView.content.title') }) }) }) })"
24
+ })
25
+ ],
26
+ exampleHeight: 360
27
+ })
28
+ });
@@ -0,0 +1,22 @@
1
+ // ==========================================================================
2
+ // Project: Showcase
3
+ // Copyright: @2012 Tyler Keating
4
+ // ==========================================================================
5
+ /*globals Showcase */
6
+ sc_require('system/views_item_content.js');
7
+ sc_require('views/views_list_view.js');
8
+
9
+
10
+ /**
11
+ This pre-configured view demonstrates SC.ImageButtonView.
12
+ */
13
+ Showcase.imageButtonViews = SC.ScrollView.design({
14
+ contentView: Showcase.ViewsListView.design({
15
+ content: [
16
+ Showcase.ViewsItemContent.create({
17
+ title: 'Regular',
18
+ example: "SC.ImageButtonView.extend({ classNames: ['my-image-button'], layout: { width: 56, height: 56, centerX: 0, centerY: 0 }, image: 'sc-icon-alert-48' });"
19
+ })
20
+ ]
21
+ })
22
+ });
@@ -0,0 +1,51 @@
1
+ // ==========================================================================
2
+ // Project: Showcase
3
+ // Copyright: @2012 Tyler Keating
4
+ // ==========================================================================
5
+ /*globals Showcase */
6
+ sc_require('system/views_item_content.js');
7
+ sc_require('views/views_list_view.js');
8
+
9
+
10
+ /**
11
+ This pre-configured view demonstrates SC.ImageView.
12
+ */
13
+ Showcase.imageViews = SC.ScrollView.design({
14
+ contentView: Showcase.ViewsListView.design({
15
+ content: [
16
+ Showcase.ViewsItemContent.create({
17
+ title: 'Regular (Fill)',
18
+ example: "SC.View.extend({ childViews: ['smallerImage', 'largerImage'], smallerImage: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: -120, centerY: 0 }, value: sc_static('sproutcore-logo.png') }), largerImage: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: 120, centerY: 0 }, value: sc_static('sproutcore-startup-landscape.jpg') }) })"
19
+ }),
20
+ Showcase.ViewsItemContent.create({
21
+ title: 'No Scaling',
22
+ example: "SC.View.extend({ childViews: ['smallerImage', 'largerImage'], smallerImage: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: -120, centerY: 0 }, scale: SC.SCALE_NONE, value: sc_static('sproutcore-logo.png') }), largerImage: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: 120, centerY: 0 }, scale: SC.SCALE_NONE, value: sc_static('sproutcore-startup-landscape.jpg') }) })"
23
+ }),
24
+ Showcase.ViewsItemContent.create({
25
+ title: 'Best Fit Scaling',
26
+ example: "SC.View.extend({ childViews: ['smallerImage', 'largerImage'], smallerImage: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: -120, centerY: 0 }, scale: SC.BEST_FIT, value: sc_static('sproutcore-logo.png') }), largerImage: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: 120, centerY: 0 }, scale: SC.BEST_FIT, value: sc_static('sproutcore-startup-landscape.jpg') }) })"
27
+ }),
28
+ Showcase.ViewsItemContent.create({
29
+ title: 'Best Fit Scaling Down Only',
30
+ example: "SC.View.extend({ childViews: ['smallerImage', 'largerImage'], smallerImage: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: -120, centerY: 0 }, scale: SC.BEST_FIT_DOWN_ONLY, value: sc_static('sproutcore-logo.png') }), largerImage: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: 120, centerY: 0 }, scale: SC.BEST_FIT_DOWN_ONLY, value: sc_static('sproutcore-startup-landscape.jpg') }) })"
31
+ }),
32
+ Showcase.ViewsItemContent.create({
33
+ title: 'Fill Proportionally',
34
+ example: "SC.View.extend({ childViews: ['smallerImage', 'largerImage'], smallerImage: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: -120, centerY: 0 }, scale: SC.FILL_PROPORTIONALLY, value: sc_static('sproutcore-logo.png') }), largerImage: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: 120, centerY: 0 }, scale: SC.FILL_PROPORTIONALLY, value: sc_static('sproutcore-startup-landscape.jpg') }) })"
35
+ }),
36
+ Showcase.ViewsItemContent.create({
37
+ title: 'Top Alignments',
38
+ example: "SC.View.extend({ childViews: ['left', 'middle', 'right'], left: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: -230, centerY: 0 }, align: SC.ALIGN_TOP_LEFT, scale: SC.SCALE_NONE, value: sc_static('sproutcore-logo.png') }), middle: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: 0, centerY: 0 }, align: SC.ALIGN_TOP, scale: SC.SCALE_NONE, value: sc_static('sproutcore-logo.png') }), right: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: 230, centerY: 0 }, align: SC.ALIGN_TOP_RIGHT, scale: SC.SCALE_NONE, value: sc_static('sproutcore-logo.png') }) })"
39
+ }),
40
+ Showcase.ViewsItemContent.create({
41
+ title: 'Middle Alignments',
42
+ example: "SC.View.extend({ childViews: ['left', 'middle', 'right'], left: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: -230, centerY: 0 }, align: SC.ALIGN_LEFT, scale: SC.SCALE_NONE, value: sc_static('sproutcore-logo.png') }), middle: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: 0, centerY: 0 }, scale: SC.SCALE_NONE, value: sc_static('sproutcore-logo.png') }), right: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: 230, centerY: 0 }, align: SC.ALIGN_RIGHT, scale: SC.SCALE_NONE, value: sc_static('sproutcore-logo.png') }) })"
43
+ }),
44
+ Showcase.ViewsItemContent.create({
45
+ title: 'Bottom Alignments',
46
+ example: "SC.View.extend({ childViews: ['left', 'middle', 'right'], left: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: -230, centerY: 0 }, align: SC.ALIGN_BOTTOM_LEFT, scale: SC.SCALE_NONE, value: sc_static('sproutcore-logo.png') }), middle: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: 0, centerY: 0 }, align: SC.ALIGN_BOTTOM, scale: SC.SCALE_NONE, value: sc_static('sproutcore-logo.png') }), right: SC.ImageView.extend({ classNames: ['my-image-view'], layout: { width: 220, height: 220, centerX: 230, centerY: 0 }, align: SC.ALIGN_BOTTOM_RIGHT, scale: SC.SCALE_NONE, value: sc_static('sproutcore-logo.png') }) })"
47
+ })
48
+ ],
49
+ exampleHeight: 256
50
+ })
51
+ });
@@ -0,0 +1,53 @@
1
+ // ==========================================================================
2
+ // Project: Showcase
3
+ // Copyright: @2012 Tyler Keating
4
+ // ==========================================================================
5
+ /*globals Showcase */
6
+ sc_require('system/views_item_content.js');
7
+ sc_require('views/views_item_view.js');
8
+ sc_require('views/views_list_view.js');
9
+
10
+
11
+ /**
12
+ This pre-configured view demonstrates SC.LabelView.
13
+ */
14
+ Showcase.labelViews = SC.ScrollView.design({
15
+ contentView: Showcase.ViewsListView.design({
16
+ action: 'beginEditing',
17
+ isSelectable: false,
18
+ content: [
19
+ Showcase.ViewsItemContent.create({
20
+ title: 'Regular',
21
+ example: "SC.View.extend({ childViews: ['regularLabel', 'iconLabel'], regularLabel: SC.LabelView.extend({ classNames: ['my-label-view'], layout: { width: 220, height: 16, centerX: -120, centerY: 0 }, value: 'This is a Label' }), iconLabel: SC.LabelView.extend({ classNames: ['my-label-view'], icon: 'sc-icon-document-16', layout: { width: 220, height: 16, centerX: 120, centerY: 0 }, value: 'This label has an icon.' }) })"
22
+ }),
23
+ Showcase.ViewsItemContent.create({
24
+ title: 'Tiny',
25
+ example: "SC.View.extend({ childViews: ['regularLabel', 'iconLabel'], regularLabel: SC.LabelView.extend({ classNames: ['my-label-view'], controlSize: SC.TINY_CONTROL_SIZE, layout: { width: 220, height: 11, centerX: -120, centerY: 0 }, value: 'This is a Label' }), iconLabel: SC.LabelView.extend({ classNames: ['my-label-view'], icon: sc_static('bullet.png'), controlSize: SC.TINY_CONTROL_SIZE, layout: { width: 220, height: 11, centerX: 120, centerY: 0 }, value: 'This label has an icon.' }) })"
26
+ }),
27
+ Showcase.ViewsItemContent.create({
28
+ title: 'Small',
29
+ example: "SC.View.extend({ childViews: ['regularLabel', 'iconLabel'], regularLabel: SC.LabelView.extend({ classNames: ['my-label-view'], controlSize: SC.SMALL_CONTROL_SIZE, layout: { width: 220, height: 15, centerX: -120, centerY: 0 }, value: 'This is a Label' }), iconLabel: SC.LabelView.extend({ classNames: ['my-label-view'], icon: sc_static('grey-dot.png'), controlSize: SC.SMALL_CONTROL_SIZE, layout: { width: 220, height: 15, centerX: 120, centerY: 0 }, value: 'This label has an icon.' }) })"
30
+ }),
31
+ Showcase.ViewsItemContent.create({
32
+ title: 'Large',
33
+ example: "SC.View.extend({ childViews: ['regularLabel', 'iconLabel'], regularLabel: SC.LabelView.extend({ classNames: ['my-label-view'], controlSize: SC.LARGE_CONTROL_SIZE, layout: { width: 220, height: 24, centerX: -120, centerY: 0 }, value: 'This is a Label' }), iconLabel: SC.LabelView.extend({ classNames: ['my-label-view'], icon: 'sc-icon-folder-24', controlSize: SC.LARGE_CONTROL_SIZE, layout: { width: 220, height: 24, centerX: 120, centerY: 0 }, value: 'This label has an icon.' }) })"
34
+ }),
35
+ Showcase.ViewsItemContent.create({
36
+ title: 'Inline Editing',
37
+ example: "SC.LabelView.extend({ classNames: ['my-label-view'], isEditable: true, layout: { width: 300, height: 16, centerX: 0, centerY: 0 }, value: 'Double-click this label to edit inline.' })",
38
+ supportAction: function() {
39
+ var label = this.getPath('parentView.exampleBox.contentView');
40
+ label.beginEditing();
41
+ },
42
+ supportTitle: 'Manually Start Editing'
43
+ })
44
+ ],
45
+
46
+ exampleView: Showcase.ViewsItemView.extend({
47
+ beginEditing: function() {
48
+ var label = this.getPath('exampleBox.contentView.regularLabel');
49
+ label.beginEditing();
50
+ }
51
+ })
52
+ })
53
+ });