sproutit-sproutcore 1.0.0.20090407205609 → 1.0.0.20090408130025
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/frameworks/sproutcore/Buildfile +63 -0
- data/frameworks/sproutcore/HISTORY +682 -0
- data/frameworks/sproutcore/README +22 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/controllers/docs.js +149 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/core.js +16 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.css +17 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.js +99 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/main.js +27 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/models/doc.js +21 -0
- data/frameworks/sproutcore/apps/sc_qunit/controllers/runner.js +209 -0
- data/frameworks/sproutcore/apps/sc_qunit/core.js +16 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.css +17 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.js +107 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/sc_qunit/main.js +18 -0
- data/frameworks/sproutcore/apps/sc_qunit/models/test.js +24 -0
- data/frameworks/sproutcore/apps/sc_qunit/views/test_iframe.js +52 -0
- data/frameworks/sproutcore/apps/tests/controllers/targets.js +47 -0
- data/frameworks/sproutcore/apps/tests/controllers/test.js +20 -0
- data/frameworks/sproutcore/apps/tests/controllers/tests.js +38 -0
- data/frameworks/sproutcore/apps/tests/core.js +35 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/loading.rhtml +9 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.css +19 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +86 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/strings.js +17 -0
- data/frameworks/sproutcore/apps/tests/fixtures/target.js +43 -0
- data/frameworks/sproutcore/apps/tests/fixtures/test.js +43 -0
- data/frameworks/sproutcore/apps/tests/main.js +39 -0
- data/frameworks/sproutcore/apps/tests/models/target.js +49 -0
- data/frameworks/sproutcore/apps/tests/models/test.js +20 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/targets.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/test.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/tests.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/models/target.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/models/test.js +15 -0
- data/frameworks/sproutcore/apps/welcome/core.js +23 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/loading.rhtml +8 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +43 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/welcome/main.js +36 -0
- data/frameworks/sproutcore/design/Design Charts.graffle +15819 -0
- data/frameworks/sproutcore/design/Record State Table.numbers +0 -0
- data/frameworks/sproutcore/frameworks/datastore/core.js +14 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +113 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +256 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +196 -0
- data/frameworks/sproutcore/frameworks/datastore/debug/json.js +71 -0
- data/frameworks/sproutcore/frameworks/datastore/debug/standard_setup.js +96 -0
- data/frameworks/sproutcore/frameworks/datastore/fixtures/author_fixtures.js +2503 -0
- data/frameworks/sproutcore/frameworks/datastore/fixtures/sample.js +17 -0
- data/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +92 -0
- data/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +38 -0
- data/frameworks/sproutcore/frameworks/datastore/models/record.js +430 -0
- data/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +361 -0
- data/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +305 -0
- data/frameworks/sproutcore/frameworks/datastore/system/query.js +128 -0
- data/frameworks/sproutcore/frameworks/datastore/system/record_array.js +149 -0
- data/frameworks/sproutcore/frameworks/datastore/system/store.js +1689 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +86 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/contact_model.js +114 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/mail_model.js +91 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/test_runner_model.js +56 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +73 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/readAttribute.js +48 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +42 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/storeDidChangeProperties.js +138 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/unknownProperty.js +46 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/writeAttribute.js +71 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +115 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +40 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChanges.js +116 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +135 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/dataHashDidChange.js +110 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/discardChanges.js +99 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +180 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readEditableDataHash.js +126 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/removeDataHash.js +163 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/writeDataHash.js +166 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +175 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +54 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +126 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +127 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +57 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataHashDidChange.js +78 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataSourceCallbacks.js +247 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +106 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/init.js +21 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +61 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +74 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/readEditableDataHash.js +74 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/recordDidChange.js +74 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/removeDataHash.js +144 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/retrieveRecord.js +137 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/writeDataHash.js +130 -0
- data/frameworks/sproutcore/frameworks/debug/core.js +1 -0
- data/frameworks/sproutcore/frameworks/deprecated/core.js +61 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/button_views.rb +330 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/collection_view.rb +83 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/core_views.rb +326 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/form_views.rb +253 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/index.rhtml +75 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/menu_views.rb +93 -0
- data/frameworks/sproutcore/frameworks/deprecated/server/rails_server.js +80 -0
- data/frameworks/sproutcore/frameworks/deprecated/server/rest_server.js +178 -0
- data/frameworks/sproutcore/frameworks/deprecated/server/server.js +674 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/animator.js +679 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/binding.js +36 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/browser.js +77 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/classic_responder.js +314 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/event.js +60 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/globals.js +20 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/misc.js +60 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/node_descriptor.js +72 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/object.js +124 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/path_module.js +433 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/string.js +109 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/application/application.rhtml +125 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/clippingFrame.rhtml +401 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/frame.rhtml +357 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/isVisibleInWindow.rhtml +147 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/base.rhtml +298 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/incremental_rendering.rhtml +260 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/source_list_rendering.rhtml +143 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/popup_button.rhtml +128 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/text_field.rhtml +37 -0
- data/frameworks/sproutcore/frameworks/deprecated/views/collection.js +24 -0
- data/frameworks/sproutcore/frameworks/designer/coders/design.js +30 -0
- data/frameworks/sproutcore/frameworks/designer/coders/localization.js +28 -0
- data/frameworks/sproutcore/frameworks/designer/coders/object.js +347 -0
- data/frameworks/sproutcore/frameworks/designer/controllers/page_design.js +102 -0
- data/frameworks/sproutcore/frameworks/designer/css/css_rule.js +22 -0
- data/frameworks/sproutcore/frameworks/designer/css/css_style.js +29 -0
- data/frameworks/sproutcore/frameworks/designer/css/css_style_sheet.js +201 -0
- data/frameworks/sproutcore/frameworks/designer/ext/page.js +88 -0
- data/frameworks/sproutcore/frameworks/designer/ext/view.js +40 -0
- data/frameworks/sproutcore/frameworks/designer/views/controls/button.js +18 -0
- data/frameworks/sproutcore/frameworks/designer/views/designer.js +553 -0
- data/frameworks/sproutcore/frameworks/designer/views/label.js +17 -0
- data/frameworks/sproutcore/frameworks/designer/views/mixins/button.js +13 -0
- data/frameworks/sproutcore/frameworks/designer/views/tab.js +17 -0
- data/frameworks/sproutcore/frameworks/desktop/core.js +6 -0
- data/frameworks/sproutcore/frameworks/desktop/debug/drag.js +41 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/alert.css +56 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/a_sample_image.jpg +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/apple-logo1.jpeg +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/iframe.html +23 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/disclosure.css +71 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/icons.css +943 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/blank.gif +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_222222.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_454545.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_888888.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_ffffff.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/shared.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/indicator.gif +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/panels/sprite-x.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/panels/sprite-y.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/sc-theme-sprite.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/000000.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/ffffff.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/sticky-note.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +156 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu.css +83 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +99 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/palette.css +3 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +94 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/picker.css +39 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/progress.css +31 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/radio.css +10 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/scroller.css +26 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +141 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/separator.css +19 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +57 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/split.css +70 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/split_divider.css +8 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/strings.js +14 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/tab.css +12 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/text_field.css +29 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/toolbar.css +6 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/border.js +53 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_group.js +22 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_item.js +22 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +226 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +247 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/alert.js +377 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/menu.js +504 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/modal.js +68 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/palette.js +63 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/panel.js +184 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/picker.js +402 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +46 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +39 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +81 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +175 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +280 -0
- data/frameworks/sproutcore/frameworks/desktop/system/drag.js +721 -0
- data/frameworks/sproutcore/frameworks/desktop/system/key_bindings.js +40 -0
- data/frameworks/sproutcore/frameworks/desktop/system/root_responder.js +641 -0
- data/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +187 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +43 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +152 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +57 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +36 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +40 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +80 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +38 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +45 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +140 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +145 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +99 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectPreviousItem.js +39 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +64 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/grid/ui.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui.js +110 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +255 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/ui.js +44 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/methods.js +128 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +240 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +113 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/radio/ui.js +202 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/methods.js +139 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +111 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/methods.js +63 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/ui.js +70 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +94 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +206 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +81 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +85 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +37 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/ui.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +50 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +52 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +54 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +88 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/text_field/methods.js +76 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/text_field/ui.js +198 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/web/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +110 -0
- data/frameworks/sproutcore/frameworks/desktop/views/button.js +320 -0
- data/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +98 -0
- data/frameworks/sproutcore/frameworks/desktop/views/collection.js +2141 -0
- data/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +44 -0
- data/frameworks/sproutcore/frameworks/desktop/views/form.js +595 -0
- data/frameworks/sproutcore/frameworks/desktop/views/grid.js +199 -0
- data/frameworks/sproutcore/frameworks/desktop/views/list.js +706 -0
- data/frameworks/sproutcore/frameworks/desktop/views/list_item.js +523 -0
- data/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +437 -0
- data/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +62 -0
- data/frameworks/sproutcore/frameworks/desktop/views/progress.js +207 -0
- data/frameworks/sproutcore/frameworks/desktop/views/radio.js +332 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scene.js +56 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scroll.js +648 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scroller.js +203 -0
- data/frameworks/sproutcore/frameworks/desktop/views/segmented.js +509 -0
- data/frameworks/sproutcore/frameworks/desktop/views/select_field.js +292 -0
- data/frameworks/sproutcore/frameworks/desktop/views/separator.js +37 -0
- data/frameworks/sproutcore/frameworks/desktop/views/slider.js +178 -0
- data/frameworks/sproutcore/frameworks/desktop/views/source_list.js +1117 -0
- data/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +169 -0
- data/frameworks/sproutcore/frameworks/desktop/views/split.js +651 -0
- data/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +55 -0
- data/frameworks/sproutcore/frameworks/desktop/views/tab.js +190 -0
- data/frameworks/sproutcore/frameworks/desktop/views/text_field.js +233 -0
- data/frameworks/sproutcore/frameworks/desktop/views/thumb.js +49 -0
- data/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +49 -0
- data/frameworks/sproutcore/frameworks/desktop/views/web.js +86 -0
- data/frameworks/sproutcore/frameworks/foundation/TESTING +46 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/array.js +490 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/controller.js +317 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/object.js +421 -0
- data/frameworks/sproutcore/frameworks/foundation/core.js +111 -0
- data/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +172 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/blank.gif +0 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +53 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/button_view.css +55 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/core.css +5 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/debug/control-test-pane.css +8 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/static_layout.css +5 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/view.css +40 -0
- data/frameworks/sproutcore/frameworks/foundation/ext/object.js +81 -0
- data/frameworks/sproutcore/frameworks/foundation/ext/run_loop.js +158 -0
- data/frameworks/sproutcore/frameworks/foundation/fixtures/file_exists.json +1 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/button.js +291 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +88 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/control.js +352 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +146 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/responder.js +156 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/selection_support.js +154 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +101 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/string.js +237 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +176 -0
- data/frameworks/sproutcore/frameworks/foundation/panes/main.js +47 -0
- data/frameworks/sproutcore/frameworks/foundation/panes/pane.js +555 -0
- data/frameworks/sproutcore/frameworks/foundation/protocols/inline_editor_delegate.js +84 -0
- data/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +244 -0
- data/frameworks/sproutcore/frameworks/foundation/system/browser.js +64 -0
- data/frameworks/sproutcore/frameworks/foundation/system/builder.js +210 -0
- data/frameworks/sproutcore/frameworks/foundation/system/core_query.js +2015 -0
- data/frameworks/sproutcore/frameworks/foundation/system/cursor.js +129 -0
- data/frameworks/sproutcore/frameworks/foundation/system/error.js +93 -0
- data/frameworks/sproutcore/frameworks/foundation/system/event.js +817 -0
- data/frameworks/sproutcore/frameworks/foundation/system/image_cache.js +433 -0
- data/frameworks/sproutcore/frameworks/foundation/system/json.js +440 -0
- data/frameworks/sproutcore/frameworks/foundation/system/locale.js +288 -0
- data/frameworks/sproutcore/frameworks/foundation/system/page.js +106 -0
- data/frameworks/sproutcore/frameworks/foundation/system/ready.js +189 -0
- data/frameworks/sproutcore/frameworks/foundation/system/render_context.js +865 -0
- data/frameworks/sproutcore/frameworks/foundation/system/request.js +255 -0
- data/frameworks/sproutcore/frameworks/foundation/system/root_responder.js +368 -0
- data/frameworks/sproutcore/frameworks/foundation/system/routes.js +446 -0
- data/frameworks/sproutcore/frameworks/foundation/system/time.js +478 -0
- data/frameworks/sproutcore/frameworks/foundation/system/timer.js +549 -0
- data/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +158 -0
- data/frameworks/sproutcore/frameworks/foundation/system/utils.js +330 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array.js +118 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/controller.js +268 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object.js +433 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/ui.js +113 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/integration/creating_views.js +113 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/content.js +195 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/displayProperties.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/content.js +168 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/builder.js +42 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +1323 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_dimensions.js +387 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_selector.js +405 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/setClass.js +49 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/within.js +66 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/error.js +41 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/json.js +14 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/locale.js +128 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/begin.js +47 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/element.js +44 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/end.js +119 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/get.js +51 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_attr.js +50 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_basic.js +28 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_className.js +179 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_style.js +100 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/init.js +55 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/join.js +28 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/push_text.js +74 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/tag.js +45 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/update.js +205 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeKeyPane.js +124 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeMainPane.js +68 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/root_responder.js +97 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/targetForAction.js +238 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/routes.js +33 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invalidate.js +38 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invokeLater.js +201 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/isPaused.js +71 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/performAction.js +67 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/schedule.js +170 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/user_defaults.js +27 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/utils/normalizeURL.js +18 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/utils/range.js +62 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/credit_card.js +35 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/date.js +21 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/number.js +47 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/password.js +13 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +83 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +39 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/main_pane.js +31 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/append_remove.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/firstResponder.js +148 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/keyPane.js +133 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/sendEvent.js +165 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/clippingFrame.js +132 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/convertFrames.js +246 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createChildViews.js +87 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createLayer.js +97 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/destroyLayer.js +85 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/findLayerInParentLayer.js +52 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/init.js +50 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/insertBefore.js +200 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisibleInWindow.js +102 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layer.js +150 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutChildViews.js +162 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutDidChange.js +127 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutStyle.js +248 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/parentViewDidChange.js +67 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/prepareContext.js +166 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/removeChild.js +189 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/render.js +83 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/replaceChild.js +29 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayer.js +142 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayerLocation.js +194 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/viewDidResize.js +185 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +125 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/date.js +52 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/email.js +45 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/not_empty.js +33 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/number.js +82 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/password.js +86 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/validator.js +311 -0
- data/frameworks/sproutcore/frameworks/foundation/views/container.js +136 -0
- data/frameworks/sproutcore/frameworks/foundation/views/field.js +276 -0
- data/frameworks/sproutcore/frameworks/foundation/views/image.js +158 -0
- data/frameworks/sproutcore/frameworks/foundation/views/label.js +261 -0
- data/frameworks/sproutcore/frameworks/foundation/views/view.js +2160 -0
- data/frameworks/sproutcore/frameworks/mobile/english.lproj/core.css +12 -0
- data/frameworks/sproutcore/frameworks/mobile/lib/index.rhtml +126 -0
- data/frameworks/sproutcore/frameworks/mobile/system/root_responder.js +109 -0
- data/frameworks/sproutcore/frameworks/mobile/tests/views/button/ui.js +9 -0
- data/frameworks/sproutcore/frameworks/mobile/views/button.js +190 -0
- data/frameworks/sproutcore/frameworks/runtime/README +11 -0
- data/frameworks/sproutcore/frameworks/runtime/core.js +777 -0
- data/frameworks/sproutcore/frameworks/runtime/license.js +28 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/array.js +403 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/delegate_support.js +70 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +1193 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1149 -0
- data/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +135 -0
- data/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +108 -0
- data/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +128 -0
- data/frameworks/sproutcore/frameworks/runtime/protocols/sparse_array_delegate.js +131 -0
- data/frameworks/sproutcore/frameworks/runtime/system/binding.js +891 -0
- data/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +107 -0
- data/frameworks/sproutcore/frameworks/runtime/system/object.js +783 -0
- data/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +99 -0
- data/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +214 -0
- data/frameworks/sproutcore/frameworks/runtime/system/set.js +246 -0
- data/frameworks/sproutcore/frameworks/runtime/system/sparse_array.js +286 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/IsEqual.js +56 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/beget.js +23 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/clone.js +66 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/guidFor.js +147 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/inspect.js +27 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/isArray.js +25 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +38 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/keys.js +20 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +30 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +19 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/tupleForPropertyPath.js +37 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +592 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +467 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +123 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/registerDependentKeys.js +79 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/propertyChanges.js +80 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/array.js +263 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +190 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/object/base.js +135 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/object/bindings.js +339 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +120 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +313 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/sparse_array.js +84 -0
- data/frameworks/sproutcore/frameworks/testing/core.js +13 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/additions.css +8 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/testsuite.css +131 -0
- data/frameworks/sproutcore/frameworks/testing/extras.js +43 -0
- data/frameworks/sproutcore/frameworks/testing/jquery.js +3559 -0
- data/frameworks/sproutcore/frameworks/testing/qunit.js +819 -0
- data/frameworks/sproutcore/frameworks/testing/tests/debug/qunit.js +25 -0
- data/frameworks/sproutcore/frameworks/testing/utils.js +55 -0
- data/frameworks/sproutcore/lib/index.rhtml +118 -0
- data/frameworks/sproutcore/license.js +28 -0
- data/frameworks/sproutcore/themes/empty_theme/tests/mini_icons.rhtml +69 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/button.css +41 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/core.css +8 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/backButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/blueButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/cancel.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/grayButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/leftButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listArrow.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listArrowSel.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listGroup.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/loading.gif +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/pinstripes.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/rightButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/selection.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/thumb.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toggle.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toggleOn.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toolButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toolbar.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/whiteButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/button.css +333 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/checkbox.css +90 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/collection.css +53 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/core.css +47 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/disclosure.css +55 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-sprite.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-ysprite.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-toolbar-view.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/label.css +37 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/pane.css +8 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/background-fat.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/background-thin.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-left-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-right-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/left-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/overlay.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/right-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-left-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-right-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/progress.css +23 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/radio.css +113 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +141 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/slider.css +62 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/split_view.css +27 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/tab.css +12 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/text_field.css +13 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/toolbar.css +4 -0
- data/lib/thor/.autotest +7 -0
- data/lib/thor/CHANGELOG.rdoc +52 -0
- data/lib/thor/LICENSE +20 -0
- data/lib/thor/README.markdown +76 -0
- data/lib/thor/Rakefile +6 -0
- data/lib/thor/Thorfile +45 -0
- data/lib/thor/bin/rake2thor +83 -0
- data/lib/thor/bin/thor +7 -0
- data/lib/thor/lib/thor/error.rb +3 -0
- data/lib/thor/lib/thor/options.rb +267 -0
- data/lib/thor/lib/thor/ordered_hash.rb +64 -0
- data/lib/thor/lib/thor/runner.rb +305 -0
- data/lib/thor/lib/thor/task.rb +83 -0
- data/lib/thor/lib/thor/task_hash.rb +22 -0
- data/lib/thor/lib/thor/tasks/package.rb +18 -0
- data/lib/thor/lib/thor/tasks.rb +77 -0
- data/lib/thor/lib/thor/util.rb +75 -0
- data/lib/thor/lib/thor.rb +170 -0
- data/lib/thor/script/destroy +14 -0
- data/lib/thor/script/generate +14 -0
- data/lib/thor/spec/fixtures/task.thor +10 -0
- data/lib/thor/spec/options_spec.rb +271 -0
- data/lib/thor/spec/ordered_hash_spec.rb +84 -0
- data/lib/thor/spec/spec.opts +1 -0
- data/lib/thor/spec/spec_helper.rb +30 -0
- data/lib/thor/spec/task_spec.rb +11 -0
- data/lib/thor/spec/tasks_spec.rb +28 -0
- data/lib/thor/spec/thor_runner_spec.rb +194 -0
- data/lib/thor/spec/thor_spec.rb +206 -0
- data/lib/thor/spec/util_spec.rb +99 -0
- data/lib/thor/task.thor +15 -0
- data/lib/thor/thor.gemspec +29 -0
- metadata +3 -4
- data/sproutcore.gemspec +0 -47
@@ -0,0 +1,184 @@
|
|
1
|
+
// ========================================================================
|
2
|
+
// SproutCore -- JavaScript Application Framework
|
3
|
+
// Copyright ©2006-2008, Sprout Systems, Inc. and contributors.
|
4
|
+
// Portions copyright ©2008 Apple, Inc. All rights reserved.
|
5
|
+
// ========================================================================
|
6
|
+
|
7
|
+
sc_require('panes/modal');
|
8
|
+
|
9
|
+
/**
|
10
|
+
Shadow views from top-left corner clockwise
|
11
|
+
*/
|
12
|
+
|
13
|
+
/** @class
|
14
|
+
|
15
|
+
Most SproutCore applications need modal panels. The default way to use the
|
16
|
+
panel pane is to simply add it to your page like this:
|
17
|
+
|
18
|
+
{{{
|
19
|
+
SC.PanelPane.create({
|
20
|
+
contentView: SC.View.extend({
|
21
|
+
layout: { width: 400, height: 200, centerX: 0, centerY: 0 }
|
22
|
+
})
|
23
|
+
}).append();
|
24
|
+
}}}
|
25
|
+
|
26
|
+
This will cause your panel to display. The default layout for a Panel
|
27
|
+
is to cover the entire document window with a semi-opaque background, and to
|
28
|
+
resize with the window.
|
29
|
+
|
30
|
+
@extends SC.Pane
|
31
|
+
@author Erich Ocean
|
32
|
+
@since SproutCore 1.0
|
33
|
+
*/
|
34
|
+
SC.PanelPane = SC.Pane.extend({
|
35
|
+
|
36
|
+
layout: { left:0, right:0, top:0, bottom:0 },
|
37
|
+
classNames: ['sc-panel'],
|
38
|
+
acceptsKeyPane: YES,
|
39
|
+
|
40
|
+
/**
|
41
|
+
Indicates that a pane is modal and should not allow clicks to pass
|
42
|
+
though to panes underneath it. This will usually cause the pane to show
|
43
|
+
the modalPane underneath it.
|
44
|
+
|
45
|
+
@property {Boolean}
|
46
|
+
*/
|
47
|
+
isModal: YES,
|
48
|
+
|
49
|
+
/**
|
50
|
+
The modal pane to place behind this pane if this pane is modal. This
|
51
|
+
must be a subclass or a insance of SC.ModalPane.
|
52
|
+
*/
|
53
|
+
modalPane: SC.ModalPane.extend({
|
54
|
+
classNames: 'for-sc-panel'
|
55
|
+
}),
|
56
|
+
|
57
|
+
// ..........................................................
|
58
|
+
// CONTENT VIEW
|
59
|
+
//
|
60
|
+
|
61
|
+
/**
|
62
|
+
Set this to the view you want to act as the content within the panel.
|
63
|
+
|
64
|
+
@property {SC.View}
|
65
|
+
*/
|
66
|
+
contentView: null,
|
67
|
+
contentViewBindingDefault: SC.Binding.single(),
|
68
|
+
|
69
|
+
/**
|
70
|
+
Replaces any child views with the passed new content.
|
71
|
+
|
72
|
+
This method is automatically called whenever your contentView property
|
73
|
+
changes. You can override it if you want to provide some behavior other
|
74
|
+
than the default.
|
75
|
+
|
76
|
+
@param {SC.View} newContent the new panel view or null.
|
77
|
+
@returns {void}
|
78
|
+
*/
|
79
|
+
|
80
|
+
render: function(context, firstTime) {
|
81
|
+
if (context.needsContent) {
|
82
|
+
this.renderChildViews(context, firstTime) ;
|
83
|
+
context.push("<div class='top-left-edge'></div>",
|
84
|
+
"<div class='top-edge'></div>",
|
85
|
+
"<div class='top-right-edge'></div>",
|
86
|
+
"<div class='right-edge'></div>",
|
87
|
+
"<div class='bottom-right-edge'></div>",
|
88
|
+
"<div class='bottom-edge'></div>",
|
89
|
+
"<div class='bottom-left-edge'></div>",
|
90
|
+
"<div class='left-edge'></div>");
|
91
|
+
}
|
92
|
+
},
|
93
|
+
|
94
|
+
replaceContent: function(newContent) {
|
95
|
+
this.removeAllChildren() ;
|
96
|
+
if (newContent) this.appendChild(newContent) ;
|
97
|
+
},
|
98
|
+
|
99
|
+
/** @private */
|
100
|
+
createChildViews: function() {
|
101
|
+
// if contentView is defined, then create the content
|
102
|
+
var view = this.contentView ;
|
103
|
+
if (view) {
|
104
|
+
view = this.contentView = this.createChildView(view) ;
|
105
|
+
this.childViews = [view] ;
|
106
|
+
}
|
107
|
+
},
|
108
|
+
|
109
|
+
|
110
|
+
/**
|
111
|
+
Invoked whenever the content property changes. This method will simply
|
112
|
+
call replaceContent. Override replaceContent to change how the view is
|
113
|
+
swapped out.
|
114
|
+
*/
|
115
|
+
contentViewDidChange: function() {
|
116
|
+
this.replaceContent(this.get('contentView'));
|
117
|
+
}.observes('contentView'),
|
118
|
+
|
119
|
+
// ..........................................................
|
120
|
+
// INTERNAL SUPPORT
|
121
|
+
//
|
122
|
+
|
123
|
+
// get the modal pane.
|
124
|
+
_modalPane: function() {
|
125
|
+
var pane = this.get('modalPane');
|
126
|
+
|
127
|
+
// instantiate if needed
|
128
|
+
if (pane && pane.isClass) {
|
129
|
+
pane = pane.create({ owner: this });
|
130
|
+
this.set('modalPane', pane);
|
131
|
+
}
|
132
|
+
|
133
|
+
return pane ;
|
134
|
+
},
|
135
|
+
|
136
|
+
/** @private - whenever showing on screen, deal with modal pane as well */
|
137
|
+
appendTo: function(elem) {
|
138
|
+
var pane ;
|
139
|
+
if (!this.get('isVisibleInWindow') && this.get('isModal') && (pane = this._modalPane())) {
|
140
|
+
this._isShowingModal = YES;
|
141
|
+
pane.paneWillAppend(this);
|
142
|
+
}
|
143
|
+
return sc_super();
|
144
|
+
},
|
145
|
+
|
146
|
+
/** @private - when removing from screen, deal with modal pane as well. */
|
147
|
+
remove: function() {
|
148
|
+
var pane, ret = sc_super();
|
149
|
+
|
150
|
+
if (this._isShowingModal) {
|
151
|
+
this._isShowingModal = NO ;
|
152
|
+
if (pane = this._modalPane()) pane.paneDidRemove(this);
|
153
|
+
}
|
154
|
+
return ret ;
|
155
|
+
},
|
156
|
+
|
157
|
+
/** @private - if isModal state changes, update pane state if needed. */
|
158
|
+
_isModalDidChange: function() {
|
159
|
+
var pane, isModal = this.get('isModal');
|
160
|
+
if (isModal) {
|
161
|
+
if (!this._isShowingModal && this.get('isVisibleInWindow') && (pane = this._modalPane())) {
|
162
|
+
this._isShowingModal = YES;
|
163
|
+
pane.paneWillAppend(this);
|
164
|
+
}
|
165
|
+
|
166
|
+
} else {
|
167
|
+
if (this._isShowingModal && (pane = this._modalPane())) {
|
168
|
+
this._isShowingModal = NO ;
|
169
|
+
pane.paneDidRemove(this);
|
170
|
+
}
|
171
|
+
}
|
172
|
+
}.observes('isModal'),
|
173
|
+
|
174
|
+
/** @private - extends SC.Pane's method - make panel keyPane when shown */
|
175
|
+
paneDidAttach: function() {
|
176
|
+
var ret = sc_super();
|
177
|
+
this.get('rootResponder').makeKeyPane(this);
|
178
|
+
return ret ;
|
179
|
+
},
|
180
|
+
|
181
|
+
/** @private - suppress all mouse events on panel itself. */
|
182
|
+
mouseDown: function(evt) { return YES; }
|
183
|
+
|
184
|
+
});
|
@@ -0,0 +1,402 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
|
4
|
+
// portions copyright @2009 Apple, Inc.
|
5
|
+
// License: Licened under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
|
8
|
+
|
9
|
+
sc_require('panes/palette');
|
10
|
+
|
11
|
+
/**
|
12
|
+
Popular customized picker position rules:
|
13
|
+
default: initiated just below the anchor.
|
14
|
+
shift x, y to optimized picker visibility and make sure top-left corner is always visible.
|
15
|
+
menu : same as default rule +
|
16
|
+
default(1,4,3) or custom offset below the anchor for default location to fine tunned visual alignment +
|
17
|
+
enforce min left(7px)/right(8px) padding to the window
|
18
|
+
fixed : default(1,4,3) or custom offset below the anchor for default location to cope with specific anchor and skip fitPositionToScreen
|
19
|
+
pointer :take default [0,1,2,3,2] or custom matrix to choose one of four perfect pointer positions.Ex:
|
20
|
+
perfect right (0) > perfect left (1) > perfect top (2) > perfect bottom (3)
|
21
|
+
fallback to perfect top (2)
|
22
|
+
*/
|
23
|
+
SC.PICKER_MENU = 'menu';
|
24
|
+
SC.PICKER_FIXED = 'fixed';
|
25
|
+
SC.PICKER_POINTER = 'pointer';
|
26
|
+
/**
|
27
|
+
Pointer layout for perfect right/left/top/bottom
|
28
|
+
*/
|
29
|
+
SC.POINTER_LAYOUT = ["perfectRight", "perfectLeft", "perfectTop", "perfectBottom"];
|
30
|
+
|
31
|
+
/**
|
32
|
+
Displays a non-modal, self anchor positioned picker pane.
|
33
|
+
|
34
|
+
The default way to use the picker pane is to simply add it to your page like this:
|
35
|
+
|
36
|
+
{{{
|
37
|
+
SC.PickerPane.create({
|
38
|
+
contentView: SC.View.extend({
|
39
|
+
layout: { width: 400, height: 200 }
|
40
|
+
})
|
41
|
+
}).popup(anchor);
|
42
|
+
}}}
|
43
|
+
|
44
|
+
This will cause your picker pane to display.
|
45
|
+
|
46
|
+
Picker pane is a simple way to provide non-modal messaging that won't
|
47
|
+
blocks the user's interaction with your application. Picker panes are
|
48
|
+
useful for showing important detail informations with optimized position around anchor.
|
49
|
+
They provide a better user experience than modal panel.
|
50
|
+
|
51
|
+
Examples for applying popular customized picker position rules:
|
52
|
+
|
53
|
+
1. default:
|
54
|
+
{{{
|
55
|
+
SC.PickerPane.create({contentView: SC.View.extend({layout: { width: 400, height: 200 }})
|
56
|
+
}).popup(anchor);
|
57
|
+
}}}
|
58
|
+
|
59
|
+
2. menu below the anchor with default offset matrix [1,4,3]:
|
60
|
+
{{{
|
61
|
+
SC.PickerPane.create({contentView: SC.View.extend({layout: { width: 400, height: 200 }})
|
62
|
+
}).popup(anchor, SC.PICKER_MENU);
|
63
|
+
}}}
|
64
|
+
|
65
|
+
3. menu on the right side of anchor with custom offset matrix [2,6,0]:
|
66
|
+
{{{
|
67
|
+
SC.PickerPane.create({contentView: SC.View.extend({layout: { width: 400, height: 200 }})
|
68
|
+
}).popup(anchor, SC.PICKER_MENU, [2,6,0]);
|
69
|
+
}}}
|
70
|
+
|
71
|
+
4. fixed below the anchor with default offset matrix [1,4,3]:
|
72
|
+
{{{
|
73
|
+
SC.PickerPane.create({contentView: SC.View.extend({layout: { width: 400, height: 200 }})
|
74
|
+
}).popup(anchor, SC.PICKER_FIXED);
|
75
|
+
}}}
|
76
|
+
|
77
|
+
5. fixed on the right side of anchor with custom offset matrix [-22,-17,0]:
|
78
|
+
{{{
|
79
|
+
SC.PickerPane.create({contentView: SC.View.extend({layout: { width: 400, height: 200 }})
|
80
|
+
}).popup(anchor, SC.PICKER_FIXED, [-22,-17,0]);
|
81
|
+
}}}
|
82
|
+
|
83
|
+
6. pointer with default position pref matrix [0,1,2,3,2]:
|
84
|
+
{{{
|
85
|
+
SC.PickerPane.create({contentView: SC.View.extend({layout: { width: 400, height: 200 }})
|
86
|
+
}).popup(anchor, SC.PICKER_POINTER);
|
87
|
+
}}}
|
88
|
+
perfect right (0) > perfect left (1) > perfect top (2) > perfect bottom (3)
|
89
|
+
fallback to perfect top (2)
|
90
|
+
|
91
|
+
7. pointer with custom position pref matrix [3,0,1,2,2]:
|
92
|
+
{{{
|
93
|
+
SC.PickerPane.create({contentView: SC.View.extend({layout: { width: 400, height: 200 }})
|
94
|
+
}).popup(anchor, SC.PICKER_POINTER, [3,0,1,2,2]);
|
95
|
+
}}}
|
96
|
+
|
97
|
+
perfect bottom (3) > perfect right (0) > perfect left (1) > perfect top (2)
|
98
|
+
fallback to perfect top (2)
|
99
|
+
|
100
|
+
@extends SC.PalettePane
|
101
|
+
@since SproutCore 1.0
|
102
|
+
*/
|
103
|
+
SC.PickerPane = SC.PalettePane.extend({
|
104
|
+
|
105
|
+
classNames: 'sc-picker',
|
106
|
+
isAnchored: YES,
|
107
|
+
|
108
|
+
isModal: YES,
|
109
|
+
|
110
|
+
pointerPos: 'perfectRight',
|
111
|
+
|
112
|
+
/**
|
113
|
+
This property will be set to the element (or view.get('layer')) that
|
114
|
+
triggered your picker to show. You can use this to properly position your
|
115
|
+
picker.
|
116
|
+
|
117
|
+
@property {Object}
|
118
|
+
*/
|
119
|
+
anchorElement: null,
|
120
|
+
|
121
|
+
/**
|
122
|
+
popular customized picker position rule
|
123
|
+
|
124
|
+
@property {String}
|
125
|
+
*/
|
126
|
+
preferType: null,
|
127
|
+
|
128
|
+
/**
|
129
|
+
default/custom offset or position pref matrix for specific preferType
|
130
|
+
|
131
|
+
@property {String}
|
132
|
+
*/
|
133
|
+
preferMatrix: null,
|
134
|
+
|
135
|
+
/**
|
136
|
+
Displays a new picker pane according to the passed parameters.
|
137
|
+
Every parameter except for the anchorViewOrElement is optional.
|
138
|
+
|
139
|
+
@param {Object} anchorViewOrElement view or element to anchor to
|
140
|
+
@param {String} preferType optional apply picker position rule
|
141
|
+
@param {Array} preferMatrix optional apply custom offset or position pref matrix for specific preferType
|
142
|
+
@returns {SC.PickerPane} receiver
|
143
|
+
*/
|
144
|
+
popup: function(anchorViewOrElement, preferType, preferMatrix) {
|
145
|
+
var anchor = anchorViewOrElement.isView ? anchorViewOrElement.get('layer') : anchorViewOrElement;
|
146
|
+
|
147
|
+
this.beginPropertyChanges();
|
148
|
+
this.set('anchorElement',anchor) ;
|
149
|
+
if (preferType) this.set('preferType',preferType) ;
|
150
|
+
if (preferMatrix) this.set('preferMatrix',preferMatrix) ;
|
151
|
+
this.positionPane();
|
152
|
+
this.endPropertyChanges();
|
153
|
+
|
154
|
+
this.append();
|
155
|
+
},
|
156
|
+
|
157
|
+
/** @private
|
158
|
+
The ideal position for a picker pane is just below the anchor that
|
159
|
+
triggered it + offset of specific preferType. Find that ideal position,
|
160
|
+
then call fitPositionToScreen to get final position. If anchor is missing,
|
161
|
+
fallback to center.
|
162
|
+
*/
|
163
|
+
positionPane: function() {
|
164
|
+
var anchor = this.get('anchorElement'),
|
165
|
+
preferType = this.get('preferType'),
|
166
|
+
preferMatrix = this.get('preferMatrix'),
|
167
|
+
layout = this.get('layout'),
|
168
|
+
origin ;
|
169
|
+
|
170
|
+
// usually an anchorElement will be passed. The ideal position is just
|
171
|
+
// below the anchor + default or custom offset according to preferType.
|
172
|
+
// If that is not possible, fitPositionToScreen will take care of that for
|
173
|
+
// other alternative and fallback position.
|
174
|
+
if (anchor) {
|
175
|
+
anchor = this.computeAnchorRect(anchor);
|
176
|
+
origin = SC.cloneRect(anchor);
|
177
|
+
|
178
|
+
if (preferType) {
|
179
|
+
switch (preferType) {
|
180
|
+
case SC.PICKER_MENU:
|
181
|
+
case SC.PICKER_FIXED:
|
182
|
+
if(!preferMatrix || preferMatrix.length != 3) {
|
183
|
+
// default below the anchor with fine tunned visual alignment
|
184
|
+
// for Menu to appear just below the anchorElement.
|
185
|
+
this.set('preferMatrix', [1, 4, 3]) ;
|
186
|
+
}
|
187
|
+
|
188
|
+
// fine tunned visual alignment from preferMatrix
|
189
|
+
origin.x += ((this.preferMatrix[2]===0) ? origin.width : 0) + this.preferMatrix[0] ;
|
190
|
+
origin.y += ((this.preferMatrix[2]===3) ? origin.height : 0) + this.preferMatrix[1];
|
191
|
+
break;
|
192
|
+
default:
|
193
|
+
origin.y += origin.height ;
|
194
|
+
break;
|
195
|
+
}
|
196
|
+
} else {
|
197
|
+
origin.y += origin.height ;
|
198
|
+
}
|
199
|
+
origin = this.fitPositionToScreen(origin, this.get('frame'), anchor) ;
|
200
|
+
layout = { width: layout.width, height: layout.height, left: origin.x, top: origin.y };
|
201
|
+
|
202
|
+
// if no anchor view has been set for some reason, just center.
|
203
|
+
} else {
|
204
|
+
layout = { width: layout.width, height: layout.height, centerX: 0, centerY: 0 };
|
205
|
+
}
|
206
|
+
this.set('layout', layout).updateLayout();
|
207
|
+
return this ;
|
208
|
+
},
|
209
|
+
|
210
|
+
/** @private
|
211
|
+
This method will return ret (x, y, width, height) from a rectangular element
|
212
|
+
*/
|
213
|
+
computeAnchorRect: function(anchor) {
|
214
|
+
var ret = SC.viewportOffset(anchor); // get x & y
|
215
|
+
var cq = SC.$(anchor);
|
216
|
+
ret.width = cq.width();
|
217
|
+
ret.height = cq.height();
|
218
|
+
return ret ;
|
219
|
+
},
|
220
|
+
|
221
|
+
/** @private
|
222
|
+
This method will dispatch to the right re-position rule according to preferType
|
223
|
+
*/
|
224
|
+
fitPositionToScreen: function(preferredPosition, picker, anchor) {
|
225
|
+
// get window rect.
|
226
|
+
var wret = { x: 0, y: 0, width: SC.$().width(), height: SC.$().height() } ;
|
227
|
+
picker.x = preferredPosition.x ; picker.y = preferredPosition.y ;
|
228
|
+
|
229
|
+
if(this.preferType) {
|
230
|
+
switch(this.preferType) {
|
231
|
+
case SC.PICKER_MENU:
|
232
|
+
// apply default + menu re-position rule
|
233
|
+
picker = this.fitPositionToScreenDefault(wret, picker, anchor) ;
|
234
|
+
picker = this.fitPositionToScreenMenu(wret, picker) ;
|
235
|
+
break;
|
236
|
+
case SC.PICKER_POINTER:
|
237
|
+
// apply pointer re-position rule
|
238
|
+
picker = this.fitPositionToScreenPointer(wret, picker, anchor) ;
|
239
|
+
break;
|
240
|
+
|
241
|
+
case SC.PICKER_FIXED:
|
242
|
+
// skip fitPositionToScreen
|
243
|
+
break;
|
244
|
+
default:
|
245
|
+
break;
|
246
|
+
}
|
247
|
+
} else {
|
248
|
+
// apply default re-position rule
|
249
|
+
picker = this.fitPositionToScreenDefault(wret, picker, anchor) ;
|
250
|
+
}
|
251
|
+
this.displayDidChange();
|
252
|
+
return picker ;
|
253
|
+
},
|
254
|
+
|
255
|
+
/** @private
|
256
|
+
re-position rule migrated from old SC.OverlayPaneView.
|
257
|
+
shift x, y to optimized picker visibility and make sure top-left corner is always visible.
|
258
|
+
*/
|
259
|
+
fitPositionToScreenDefault: function(w, f, a) {
|
260
|
+
// make sure the right edge fits on the screen. If not, anchor to
|
261
|
+
// right edge of anchor or right edge of window, whichever is closer.
|
262
|
+
if (SC.maxX(f) > w.width) {
|
263
|
+
var mx = Math.max(SC.maxX(a), f.width) ;
|
264
|
+
f.x = Math.min(mx, w.width) - f.width ;
|
265
|
+
}
|
266
|
+
|
267
|
+
// if the left edge is off of the screen, try to position at left edge
|
268
|
+
// of anchor. If that pushes right edge off screen, shift back until
|
269
|
+
// right is on screen or left = 0
|
270
|
+
if (SC.minX(f) < 0) {
|
271
|
+
f.x = SC.minX(Math.max(a,0)) ;
|
272
|
+
if (SC.maxX(f) > w.width) {
|
273
|
+
f.x = Math.max(0, w.width - f.width);
|
274
|
+
}
|
275
|
+
}
|
276
|
+
|
277
|
+
// make sure bottom edge fits on screen. If not, try to anchor to top
|
278
|
+
// of anchor or bottom edge of screen.
|
279
|
+
if (SC.maxY(f) > w.height) {
|
280
|
+
mx = Math.max((a.y - f.height), 0) ;
|
281
|
+
if (mx > w.height) {
|
282
|
+
f.y = Math.max(0, w.height - f.height) ;
|
283
|
+
} else f.y = mx ;
|
284
|
+
}
|
285
|
+
|
286
|
+
// if Top edge is off screen, try to anchor to bottom of anchor. If that
|
287
|
+
// pushes off bottom edge, shift up until it is back on screen or top =0
|
288
|
+
if (SC.minY(f) < 0) {
|
289
|
+
mx = Math.min(SC.maxY(a), (w.height - a.height)) ;
|
290
|
+
f.y = Math.max(mx, 0) ;
|
291
|
+
}
|
292
|
+
return f ;
|
293
|
+
},
|
294
|
+
|
295
|
+
/** @private
|
296
|
+
re-position rule optimized for Menu to enforce min left(7px)/right(8px) padding to the window
|
297
|
+
*/
|
298
|
+
fitPositionToScreenMenu: function(w, f) {
|
299
|
+
// min left/right padding to the window
|
300
|
+
if( (f.x + f.width) > (w.width-8) ) f.x = w.width - f.width - 8;
|
301
|
+
if( f.x < 7 ) f.x = 7;
|
302
|
+
return f ;
|
303
|
+
},
|
304
|
+
|
305
|
+
/** @private
|
306
|
+
re-position rule for triangle pointer picker: take default [0,1,2,3,2] or custom matrix to choose one of four perfect pointer positions.
|
307
|
+
*/
|
308
|
+
fitPositionToScreenPointer: function(w, f, a) {
|
309
|
+
// initiate perfect positions matrix
|
310
|
+
// 4 perfect positions: right > left > top > bottom
|
311
|
+
// 2 coordinates: x, y
|
312
|
+
// top-left corner of 4 perfect positioned f (4x2)
|
313
|
+
var prefP1 =[[a.x+a.width-15, a.y+parseInt(a.height/3,0)-35],
|
314
|
+
[a.x-f.width+15, a.y+parseInt(a.height/3,0)-35],
|
315
|
+
[a.x+parseInt(a.width/2,0)-parseInt(f.width/2,0), a.y-f.height-5],
|
316
|
+
[a.x+parseInt(a.width/2,0)-parseInt(f.width/2,0), a.y+a.height+5]];
|
317
|
+
// bottom-right corner of 4 perfect positioned f (4x2)
|
318
|
+
var prefP2 =[[a.x+a.width+f.width-15, a.y+parseInt(a.height/3,0)+f.height-35],
|
319
|
+
[a.x+15, a.y+parseInt(a.height/3,0)+f.height-35],
|
320
|
+
[a.x+parseInt(a.width/2,0)-parseInt(f.width/2,0)+f.width, a.y-5],
|
321
|
+
[a.x+parseInt(a.width/2,0)-parseInt(f.width/2,0)+f.width, a.y+a.height+f.height+5]];
|
322
|
+
// cutoff of 4 perfect positioned f: top, right, bottom, left (4x4)
|
323
|
+
var cutoffPrefP =[[prefP1[0][1]>0 ? 0 : 0-prefP1[0][1], prefP2[0][0]<w.width ? 0 : prefP2[0][0]-w.width, prefP2[0][1]<w.height ? 0 : prefP2[0][1]-w.height, prefP1[0][0]>0 ? 0 : 0-prefP1[0][0]],
|
324
|
+
[prefP1[1][1]>0 ? 0 : 0-prefP1[1][1], prefP2[1][0]<w.width ? 0 : prefP2[1][0]-w.width, prefP2[1][1]<w.height ? 0 : prefP2[1][1]-w.height, prefP1[1][0]>0 ? 0 : 0-prefP1[1][0]],
|
325
|
+
[prefP1[2][1]>0 ? 0 : 0-prefP1[2][1], prefP2[2][0]<w.width ? 0 : prefP2[2][0]-w.width, prefP2[2][1]<w.height ? 0 : prefP2[2][1]-w.height, prefP1[2][0]>0 ? 0 : 0-prefP1[2][0]],
|
326
|
+
[prefP1[3][1]>0 ? 0 : 0-prefP1[3][1], prefP2[3][0]<w.width ? 0 : prefP2[3][0]-w.width, prefP2[3][1]<w.height ? 0 : prefP2[3][1]-w.height, prefP1[3][0]>0 ? 0 : 0-prefP1[3][0]]];
|
327
|
+
|
328
|
+
if(!this.preferMatrix || this.preferMatrix.length != 5) {
|
329
|
+
// default re-position rule : perfect right (0) > perfect left (1) > perfect top (2) > perfect bottom (3)
|
330
|
+
// fallback to perfect top (2)
|
331
|
+
this.set('preferMatrix', [0,1,2,3,2]) ;
|
332
|
+
}
|
333
|
+
var m = this.preferMatrix;
|
334
|
+
//var pointer = this.contentView.childViews[this.contentView.childViews.length-1];
|
335
|
+
|
336
|
+
// initiated with fallback position
|
337
|
+
// Will be used only if the following preferred alternative can not be found
|
338
|
+
f.x = prefP1[m[4]][0] ;
|
339
|
+
f.y = prefP1[m[4]][1] ;
|
340
|
+
this.set('pointerPos', SC.POINTER_LAYOUT[m[4]]);
|
341
|
+
|
342
|
+
for(var i=0; i<SC.POINTER_LAYOUT.length; i++) {
|
343
|
+
if (cutoffPrefP[m[i]][0]===0 && cutoffPrefP[m[i]][1]===0 && cutoffPrefP[m[i]][2]===0 && cutoffPrefP[m[i]][3]===0) {
|
344
|
+
// alternative i in preferMatrix by priority
|
345
|
+
if (m[4] != m[i]) {
|
346
|
+
f.x = prefP1[m[i]][0] ;
|
347
|
+
f.y = prefP1[m[i]][1] ;
|
348
|
+
this.set('pointerPos', SC.POINTER_LAYOUT[m[i]]);
|
349
|
+
}
|
350
|
+
i = SC.POINTER_LAYOUT.length;
|
351
|
+
}
|
352
|
+
}
|
353
|
+
return f ;
|
354
|
+
},
|
355
|
+
|
356
|
+
|
357
|
+
|
358
|
+
render: function(context, firstTime) {
|
359
|
+
var ret = sc_super();
|
360
|
+
if (context.needsContent) {
|
361
|
+
if (this.get('preferType') == SC.PICKER_POINTER) {
|
362
|
+
context.push('<div class="%@"></div>'.fmt(this.get('pointerPos')));
|
363
|
+
}
|
364
|
+
} else {
|
365
|
+
// var divs = this.$('div'),
|
366
|
+
// el = SC.$(divs[10]);
|
367
|
+
// el.attr('class', this.get('pointerPos'));
|
368
|
+
}
|
369
|
+
return ret ;
|
370
|
+
},
|
371
|
+
|
372
|
+
|
373
|
+
/** @private - click away picker. */
|
374
|
+
modalPaneDidClick: function(evt) {
|
375
|
+
var f = this.get("frame");
|
376
|
+
if(!this.clickInside(f, evt)) this.remove();
|
377
|
+
return YES ;
|
378
|
+
},
|
379
|
+
|
380
|
+
mouseDown: function(evt) {
|
381
|
+
return this.modalPaneDidClick(evt);
|
382
|
+
},
|
383
|
+
|
384
|
+
/** @private
|
385
|
+
internal method to define the range for clicking inside so the picker
|
386
|
+
won't be clicked away default is the range of contentView frame.
|
387
|
+
Over-write for adjustments. ex: shadow
|
388
|
+
*/
|
389
|
+
clickInside: function(frame, evt) {
|
390
|
+
return SC.pointInRect({ x: evt.pageX, y: evt.pageY }, frame);
|
391
|
+
},
|
392
|
+
|
393
|
+
/**
|
394
|
+
Invoked by the root responder. Re-position picker whenever the window resizes.
|
395
|
+
*/
|
396
|
+
windowSizeDidChange: function(oldSize, newSize) {
|
397
|
+
sc_super();
|
398
|
+
this.positionPane();
|
399
|
+
}
|
400
|
+
|
401
|
+
});
|
402
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
|
4
|
+
// portions copyright @2009 Apple, Inc.
|
5
|
+
// License: Licened under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
|
8
|
+
sc_require('panes/panel');
|
9
|
+
|
10
|
+
/**
|
11
|
+
Displays a modal sheet pane animated drop down from top.
|
12
|
+
|
13
|
+
The default way to use the sheet pane is to simply add it to your page like this:
|
14
|
+
|
15
|
+
{{{
|
16
|
+
SC.SheetPane.create({
|
17
|
+
contentView: SC.View.extend({
|
18
|
+
layout: { width: 400, height: 200, centerX: 0 }
|
19
|
+
})
|
20
|
+
}).append();
|
21
|
+
}}}
|
22
|
+
|
23
|
+
This will cause your sheet panel to display. The default layout for a Sheet
|
24
|
+
is to cover the entire document window with a semi-opaque background, and to
|
25
|
+
resize with the window.
|
26
|
+
|
27
|
+
@extends SC.PanelPane
|
28
|
+
@since SproutCore 1.0
|
29
|
+
*/
|
30
|
+
SC.SheetPane = SC.PanelPane.extend({
|
31
|
+
|
32
|
+
classNames: 'sc-sheet',
|
33
|
+
|
34
|
+
init: function() {
|
35
|
+
sc_super() ;
|
36
|
+
|
37
|
+
/** TODO: Implement Anition
|
38
|
+
this.visibleAnimation = {
|
39
|
+
visible: 'top: 0px',
|
40
|
+
hidden: 'top: -500px',
|
41
|
+
duration: 300
|
42
|
+
} ;
|
43
|
+
*/
|
44
|
+
}
|
45
|
+
|
46
|
+
});
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// ========================================================================
|
2
|
+
// SproutCore -- JavaScript Application Framework
|
3
|
+
// Copyright ©2006-2008, Sprout Systems, Inc. and contributors.
|
4
|
+
// Portions copyright ©2008 Apple, Inc. All rights reserved.
|
5
|
+
// ========================================================================
|
6
|
+
|
7
|
+
require('system/drag') ;
|
8
|
+
|
9
|
+
|
10
|
+
/**
|
11
|
+
@namespace
|
12
|
+
|
13
|
+
This mixin can be used to implement a dynamic data source for a drag
|
14
|
+
operation. You can return a set of allowed data types and then the
|
15
|
+
method will be used to actually get data in that format when requested.
|
16
|
+
*/
|
17
|
+
SC.DragDataSource = {
|
18
|
+
|
19
|
+
/** @property
|
20
|
+
Implement this property as an array of data types you want to support
|
21
|
+
for drag operations.
|
22
|
+
*/
|
23
|
+
dragDataTypes: [],
|
24
|
+
|
25
|
+
/**
|
26
|
+
Implement this method to return the data in the format passed. Return
|
27
|
+
null if the requested data type cannot be generated.
|
28
|
+
|
29
|
+
@param {SC.Drag} drag The Drag instance managing this drag.
|
30
|
+
@param {Object} dataType The proposed dataType to return. This will
|
31
|
+
always be one of the data types declared in dragDataTypes.
|
32
|
+
|
33
|
+
@returns The data object for the specified type
|
34
|
+
*/
|
35
|
+
dragDataForType: function(drag, dataType) { return null; }
|
36
|
+
|
37
|
+
};
|
38
|
+
|
39
|
+
|