sproutcore 1.9.2 → 1.10.0.rc.1
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.
- checksums.yaml +15 -0
- data/VERSION.yml +2 -2
- data/bin/sc-build +12 -9
- data/bin/sc-build-number +12 -9
- data/bin/sc-docs +12 -15
- data/bin/sc-gen +12 -9
- data/bin/sc-init +12 -9
- data/bin/sc-manifest +12 -9
- data/bin/sc-server +12 -9
- data/bin/sproutcore +12 -9
- data/lib/frameworks/sproutcore/Buildfile +14 -17
- data/lib/frameworks/sproutcore/CHANGELOG.md +214 -3
- data/lib/frameworks/sproutcore/README.md +4 -1
- data/lib/frameworks/sproutcore/apps/greenhouse/Buildfile +13 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps/greenhouse/README → apps/greenhouse/README.md} +1 -1
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/TODO +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/beautify.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/design.js +3 -3
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/file.js +3 -3
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/files.js +3 -3
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/layout.js +9 -9
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/library.js +23 -23
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/page.js +1 -1
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/property.js +1 -1
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/property_editor.js +2 -2
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/target.js +1 -1
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/targets.js +12 -12
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/controllers/view_configs.js +15 -15
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/core.js +14 -14
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/core_file.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/data_source.js +42 -42
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/app_page.js +45 -45
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/app-selector.css +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/button.css +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/dock.css +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/general.css +0 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/css/icons.css +5 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/main-page.css +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/menu.css +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/modal.css +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/picker.css +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/search.css +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/css/text-field.css +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/dialogs.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500.eot +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500.otf +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500.woff +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500_italic.eot +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500_italic.otf +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/fonts/museosans_500_italic.woff +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/app-selector/choose-app.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/app-selector/list-item-sel.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/active-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule-xl/regular-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/active-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/active-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/disabled-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/regular-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/regular-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-active-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/capsule/sel-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/active-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/active-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/active-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-active-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/cap-sel-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/disabled-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/disabled-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/disabled-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/regular-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/regular-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/regular-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-active-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-disabled-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/dark/sel-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/active-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/disabled-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/regular-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/sel-active-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/sel-disabled-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/shared/sel-m.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/active-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/active-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/disabled-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/disabled-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/regular-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/regular-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-active-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-active-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-disabled-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/buttons/square/sel-r.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/actions-active.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/actions.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/inspector-active.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/inspector.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/library-active.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/library.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/projects-active.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/projects.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/run-active.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/run.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/save-active.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/icons/save.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/logos/greenhouse-l.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/logos/greenhouse-s.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/logos/sproutcore.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/main-bg.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/bottom-left.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/bottom-right.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/bottom.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/close-active.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/close.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/left.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-bottom.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-left.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-right.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/pointer-top.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/right.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/search-active.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/search.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/top-left.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/top-right.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/picker/top.png +0 -0
- data/lib/frameworks/sproutcore/apps/greenhouse/english.lproj/images/sc-icon-sproutcore-16.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/images/toolbar-bg.png +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/inspectors.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/loading.rhtml +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/main_page.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/english.lproj/strings.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/fixtures/file.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/main.js +5 -5
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/mixins/drop_down.js +14 -14
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/design.js +4 -4
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/dir.js +12 -12
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/file.js +7 -9
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/target.js +12 -12
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/models/view_config.js +10 -10
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/resources/test_page.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/inspector.js +11 -11
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/library.js +10 -10
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/main.js +26 -25
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/modals.js +10 -10
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/states/ready.js +15 -15
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/design.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/designs.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/file.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/controllers/files.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/models/file.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/models/view_config.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/views/list_item.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/tests/views/plist_item.js +1 -5
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/theme.js +6 -6
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/anchor.js +43 -43
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/application_list_item.js +2 -2
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/event_blocker.js +7 -7
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/label_designer.js +0 -0
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/list_item.js +8 -8
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/plist_item.js +23 -23
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/simple_button.js +31 -31
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/tear_off_picker.js +12 -12
- data/lib/frameworks/sproutcore/{frameworks/experimental/apps → apps}/greenhouse/views/web.js +5 -5
- data/lib/frameworks/sproutcore/apps/media_examples/core.js +5 -6
- data/lib/frameworks/sproutcore/apps/media_examples/views/audio_view.js +16 -17
- data/lib/frameworks/sproutcore/apps/media_examples/views/camera_view.js +4 -5
- data/lib/frameworks/sproutcore/apps/media_examples/views/capabilities_view.js +17 -18
- data/lib/frameworks/sproutcore/apps/media_examples/views/microphone_view.js +4 -5
- data/lib/frameworks/sproutcore/apps/media_examples/views/video_view.js +18 -19
- data/lib/frameworks/sproutcore/apps/showcase/Buildfile +2 -2
- data/lib/frameworks/sproutcore/apps/showcase/README +1 -1
- data/lib/frameworks/sproutcore/apps/showcase/controllers/source_tree_controller.js +27 -7
- data/lib/frameworks/sproutcore/apps/showcase/core.js +6 -4
- data/lib/frameworks/sproutcore/apps/showcase/main.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/patch.diff +529 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-128.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/resources/main_page.js +3 -2
- data/lib/frameworks/sproutcore/apps/showcase/resources/stylesheet.css +35 -16
- data/lib/frameworks/sproutcore/apps/showcase/resources/views_page.js +195 -10
- data/lib/frameworks/sproutcore/apps/showcase/system/views_item_content.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/theme.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/checkbox_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/date_field_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/disclosure_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/label_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/list_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/popup_button_views.js +3 -2
- data/lib/frameworks/sproutcore/apps/showcase/views/progress_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/radio_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/scroll_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/segmented_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/select_views.js +10 -9
- data/lib/frameworks/sproutcore/apps/showcase/views/slider_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/source_list_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/split_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/stacked_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/static_content_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/tab_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/text_field_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/toolbar_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/views_item_view.js +15 -6
- data/lib/frameworks/sproutcore/apps/showcase/views/views_list_view.js +5 -4
- data/lib/frameworks/sproutcore/apps/showcase/views/web_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/well_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/showcase/views/workspace_views.js +2 -1
- data/lib/frameworks/sproutcore/apps/statechart_routing/core.js +5 -5
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/login_page.js +15 -15
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/styles.css +3 -0
- data/lib/frameworks/sproutcore/apps/tests/controllers/source.js +11 -11
- data/lib/frameworks/sproutcore/apps/tests/controllers/target.js +6 -12
- data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +28 -33
- data/lib/frameworks/sproutcore/apps/tests/controllers/{detail.js → test.js} +14 -12
- data/lib/frameworks/sproutcore/apps/tests/controllers/tests.js +11 -15
- data/lib/frameworks/sproutcore/apps/tests/core.js +8 -113
- data/lib/frameworks/sproutcore/apps/tests/english.lproj/main_page.css +9 -19
- data/lib/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +81 -92
- data/lib/frameworks/sproutcore/apps/tests/english.lproj/strings.js +3 -1
- data/lib/frameworks/sproutcore/apps/tests/main.js +8 -13
- data/lib/frameworks/sproutcore/apps/tests/statechart.js +268 -0
- data/lib/frameworks/sproutcore/apps/tests/views/offset_checkbox.js +4 -4
- data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +16 -16
- data/lib/frameworks/sproutcore/apps/welcome/core.js +9 -9
- data/lib/frameworks/sproutcore/apps/welcome/english.lproj/images/sproutcore.png +0 -0
- data/lib/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +22 -25
- data/lib/frameworks/sproutcore/apps/welcome/main.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-landscape.jpg b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-landscape.jpg +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-landscape.png b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-landscape.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-portrait.jpg b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-portrait.jpg +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup-portrait.png b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup-portrait.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-startup.png b/data/lib/frameworks/sproutcore/design/Assorted → Images/sproutcore-startup.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +21 -7
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +35 -2
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +142 -75
- data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +20 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/child_view_layouts/horizontal_stack_layout.js +283 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/child_view_layouts/vertical_stack_layout.js +284 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +64 -65
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +14 -14
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +19 -19
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +10 -25
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +12 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/body_overflow.js +53 -34
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +30 -24
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +44 -40
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/manipulation.js +5 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +105 -176
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane_statechart.js +50 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/visibility.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/view_transition_protocol.js +48 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +225 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/core_query.js +54 -34
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +86 -71
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +35 -35
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +283 -120
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +36 -37
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +653 -435
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +49 -42
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +422 -396
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/selection_set.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +10 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/theme.js +37 -16
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils/rect.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/selection_support.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/cursor.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/platform.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +17 -17
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_attr.js +9 -9
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +43 -43
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +4 -14
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +18 -30
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +78 -43
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/theme.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/main_pane.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/append_remove.js +31 -15
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +47 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/firstResponder.js +32 -31
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/keyPane.js +23 -22
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/layout.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/pane/sendEvent.js +17 -16
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/animation.js +626 -211
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/border_frame_test.js +174 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build.js +22 -20
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/childViewLayout_test.js +27 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +11 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertFrames.js +5 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +10 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createLayer.js +17 -12
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/destroy.js +60 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/destroyLayer.js +19 -26
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +14 -13
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/enabled_states_test.js +341 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/findLayerInParentLayer.js +9 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/init.js +26 -16
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +28 -68
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisible.js +35 -23
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/isVisibleInWindow.js +93 -78
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +62 -64
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layer.js +69 -18
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutChildViews.js +26 -21
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +129 -57
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +436 -238
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/removeChild.js +38 -44
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render.js +14 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/render_delegate_support.js +29 -20
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/replaceAllChildren_test.js +229 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayer.js +33 -95
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/viewDidResize.js +87 -39
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view_states_test.js +684 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +767 -625
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/acceleration.js +4 -23
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +645 -77
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/cursor.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/enabled.js +218 -19
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +648 -321
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +326 -534
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +120 -126
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/statechart.js +1526 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +18 -23
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/visibility.js +12 -94
- data/lib/frameworks/sproutcore/frameworks/core_tools/core.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_tools/data_source.js +19 -19
- data/lib/frameworks/sproutcore/frameworks/core_tools/models/target.js +43 -27
- data/lib/frameworks/sproutcore/frameworks/core_tools/models/test.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/core_tools/resources/icons.css +5 -0
- data/lib/frameworks/sproutcore/frameworks/core_tools/resources/sc-icon-sproutcore-16.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +41 -41
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +90 -90
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +31 -31
- data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +2 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +74 -48
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +11 -16
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +187 -253
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/cascade.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +14 -14
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/data_store.js +49 -9
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/builders.js +236 -127
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/instance_management.js +107 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +12 -11
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/loadRecord.js +42 -17
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +20 -15
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +205 -92
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +61 -25
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +39 -9
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +45 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/tests/system/datetime.js +88 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/coders/design.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/coders/object.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/controllers.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/design.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/designs.js +19 -19
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/page_design.js +44 -44
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/controllers/page_files.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/css/css_rule.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/css/css_style.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/css/css_style_sheet.js +37 -37
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/button.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/label.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/object_designer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/tab.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/text_field.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/designers/view_designer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/css/designer.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/design_page.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/high_light.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/controller.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-bg.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-bg.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-divider.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-sel-bg.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/dock-item-sel-divider.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/main-bg.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/page.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/pane.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/images/view.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/english.lproj/selection_handles.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/binding.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/object.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/page.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/ext/view.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/mixins/button.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/mixins/snap_lines.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/tests/coders/page.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/tests/designers/view_designer.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/designer_drop_target.js +36 -37
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/drawing.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/high_light.js +17 -17
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/page_item_view.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/designer → designer}/views/selection_handles.js +14 -14
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +51 -51
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/mixins/split_child.js +63 -52
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/mixins/split_thumb.js +64 -59
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +113 -112
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +182 -203
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +13 -13
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +51 -29
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +513 -307
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +69 -217
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +31 -26
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +15 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +2 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +25 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/picker.js +29 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +19 -23
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +14 -17
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/render_delegates/split.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view → desktop}/render_delegates/split_divider.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/modal.css +2 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/panel.css +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/segmented.css +24 -98
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +446 -442
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +42 -21
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +19 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +26 -28
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/pane_page.js +11 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +5 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +32 -26
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +27 -22
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/methods.js +5 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/select_button/ui.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +11 -8
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/displayProperties.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/keyEquivalents.js +9 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +23 -23
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +15 -17
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/{mixins → views/collection}/collection_fast_path.js +18 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/content.js +46 -53
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/itemViewForContentIndex.js +101 -47
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +26 -26
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +89 -69
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selection.js +27 -25
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/ui_diagram.js +32 -35
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +6 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +3 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/drag_and_drop.js +103 -8
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +76 -38
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/image_button/ui.js +3 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/drag_and_drop.js +91 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/render.js +2 -17
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowHeightForContentIndex.js +70 -38
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_alternatingrows.js +17 -19
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_outline.js +10 -13
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js +37 -30
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js +18 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +115 -28
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +37 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +194 -182
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +2 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +18 -21
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +5 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/slider/methods.js +5 -4
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/children.js +15 -15
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/dividers.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +341 -45
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/split_child.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{experimental/frameworks/split_view/tests → desktop/tests/views/split}/split_thumb.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +6 -8
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +49 -52
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +23 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/ui.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +4 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +47 -38
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +887 -740
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +68 -55
- data/lib/frameworks/sproutcore/frameworks/desktop/views/image_button.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +8 -26
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +189 -167
- data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +55 -54
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +8 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +145 -146
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +21 -21
- data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +66 -66
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +40 -44
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +203 -200
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +11 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +6 -13
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +87 -112
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +192 -179
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +23 -23
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +64 -64
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +56 -56
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +784 -714
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +21 -39
- data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +45 -41
- data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +4 -10
- data/lib/frameworks/sproutcore/frameworks/desktop/views/thumb.js +9 -47
- data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +40 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +62 -50
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +0 -9
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +45 -45
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/platform.js +16 -16
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +46 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +16 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/desktop_scroller.js +12 -12
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/ui.js +38 -40
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +20 -20
- data/lib/frameworks/sproutcore/frameworks/formatters/formatters/date_formatter.js +16 -16
- data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +26 -14
- data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +43 -43
- data/lib/frameworks/sproutcore/frameworks/foundation/debug/test-image.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/delegates/inline_text_field.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +63 -41
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js +60 -61
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +72 -72
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +142 -142
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gesturable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inner_frame.js +10 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +36 -29
- data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/protocols/swap_transition_protocol.js +150 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +54 -29
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/image.js +23 -18
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +12 -11
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/benchmark.css +21 -20
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-128.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-256.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-32.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-48.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-512.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-64.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +5 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/app_cache.js +412 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +2 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +11 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +21 -21
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +8 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/selection_support.js +33 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/delegates/inline_text_field/inline_text_field.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_display.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +5 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +49 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +29 -21
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +3 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/validatable/ui.js +8 -10
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/app_cache_test.js +81 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/image_queue.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +0 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +40 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/transition_test.js +143 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +5 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +187 -84
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +6 -41
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +51 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +11 -16
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/adjust_bounce_transition.js +80 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/adjust_smooth_transition.js +39 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/adjust_spring_transition.js +77 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/bounce_transition.js +211 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/fade_transition.js +57 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/pop_transition.js +82 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/scale_transition.js +54 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/slide_transition.js +140 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/spring_transition.js +203 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_dissolve_transition.js +67 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_fade_color_transition.js +81 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_move_in_transition.js +104 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_push_transition.js +181 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/transitions/swap_reveal_transition.js +90 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/views/container.js +483 -95
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +65 -65
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +111 -100
- data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +30 -222
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +38 -24
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +74 -62
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-1.8.3-patched.js +9485 -0
- data/lib/frameworks/sproutcore/frameworks/media/media_capabilities.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/media/render_delegates/media_slider.js +20 -20
- data/lib/frameworks/sproutcore/frameworks/media/resources/video.css +18 -17
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +19 -19
- data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +10 -11
- data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +7 -8
- data/lib/frameworks/sproutcore/frameworks/media/views/video.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/qunit/test/test.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +32 -21
- data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +72 -53
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +164 -156
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/array.js +20 -20
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +145 -140
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/comparable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +393 -370
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1045 -999
- data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +41 -36
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +10 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +11 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +275 -205
- data/lib/frameworks/sproutcore/frameworks/runtime/system/function.js +27 -27
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +229 -193
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +186 -188
- data/lib/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +138 -65
- data/lib/frameworks/sproutcore/frameworks/runtime/system/set.js +11 -10
- data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +8 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/tupleForPropertyPath.js +4 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +112 -23
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +71 -18
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +97 -57
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/add.js +22 -22
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/infinite.js +184 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/observer_set.js +63 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +73 -36
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +100 -25
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/debug/sequence_matcher.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/statechart/private/state_path_matcher.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/statechart/system/history_state.js +32 -32
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +449 -422
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state_route_handler_context.js +19 -19
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +612 -562
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/with_concurrent_states/basic.js +115 -62
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/without_concurrent_states/basic.js +145 -64
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/respond_to_event.js +17 -1
- data/lib/frameworks/sproutcore/frameworks/table/views/table_head.js +30 -30
- data/lib/frameworks/sproutcore/frameworks/table/views/table_row.js +34 -34
- data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/bind.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/collection.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/template_view/ext/handlebars/view.js +3 -5
- data/lib/frameworks/sproutcore/frameworks/template_view/tests/panes/template.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/template_view/tests/views/template/core.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/template_view/views/bindable_span.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/template_view/views/template.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/template_view/views/template_collection.js +15 -21
- data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +35 -35
- data/lib/frameworks/sproutcore/scripts/run_sc_server_master.sh +34 -0
- data/lib/frameworks/sproutcore/tests/phantomjs_runner.phantomjs +606 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/PanelPane.opacity +0 -0
- data/lib/frameworks/sproutcore/themes/ace/designs/psds/panel/Pointers.opacity +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/active_button@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/normal_button@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_active_button@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/selected_button@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/popup/select.css +3 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list.css +18 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/panel/panel@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/panel.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/panel@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.css +34 -14
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/pointers.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/pointers@2x.png +0 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +5 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +7 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +5 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +6 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/toolbar/toolbar.css +7 -5
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/button.js +7 -7
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/progress.js +37 -37
- data/lib/frameworks/sproutcore/themes/legacy_theme/render_delegates/slider.js +12 -12
- data/lib/sproutcore/helpers/static_helper.rb +35 -27
- data/sproutcore.gemspec +1 -0
- metadata +529 -451
- data/lib/frameworks/sproutcore/apps/showcase/resources/images/sproutcore-logo.png +0 -0
- data/lib/frameworks/sproutcore/apps/showcase/views/button_views.js +0 -55
- data/lib/frameworks/sproutcore/apps/showcase/views/container_views.js +0 -29
- data/lib/frameworks/sproutcore/apps/showcase/views/grid_views.js +0 -28
- data/lib/frameworks/sproutcore/apps/showcase/views/image_button_views.js +0 -22
- data/lib/frameworks/sproutcore/apps/showcase/views/image_views.js +0 -51
- data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +0 -26
- data/lib/frameworks/sproutcore/apps/tests/states/ready.js +0 -56
- data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +0 -41
- data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +0 -48
- data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +0 -41
- data/lib/frameworks/sproutcore/apps/tests/states/ready_loading.js +0 -44
- data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +0 -31
- data/lib/frameworks/sproutcore/apps/tests/states/start.js +0 -39
- data/lib/frameworks/sproutcore/apps/welcome/tests/controllers/targets.js +0 -15
- data/lib/frameworks/sproutcore/frameworks/animation/Buildfile +0 -3
- data/lib/frameworks/sproutcore/frameworks/animation/LICENSE +0 -25
- data/lib/frameworks/sproutcore/frameworks/animation/README.md +0 -79
- data/lib/frameworks/sproutcore/frameworks/animation/core.js +0 -1208
- data/lib/frameworks/sproutcore/frameworks/animation/tests/core.js +0 -152
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/parentViewDidChange.js +0 -67
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/prepareContext.js +0 -203
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/updateLayerLocation.js +0 -213
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +0 -163
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/mixins/border.js +0 -97
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +0 -312
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +0 -961
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split_divider.js +0 -40
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/thumb.js +0 -27
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore-logo.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/images/sproutcore.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +0 -394
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +0 -133
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +0 -18
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +0 -8981
- data/lib/frameworks/sproutcore/frameworks/jquery/tests/set_class.js +0 -40
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/ace/picker.js +0 -0
|
@@ -1,20 +1,75 @@
|
|
|
1
1
|
sc_require("views/view");
|
|
2
2
|
|
|
3
|
+
SC.CoreView.mixin(
|
|
4
|
+
/** @scope SC.CoreView */ {
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
The view is enabled.
|
|
8
|
+
|
|
9
|
+
@static
|
|
10
|
+
@constant
|
|
11
|
+
*/
|
|
12
|
+
ENABLED: 0x08, // 8
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
The view has been disabled.
|
|
16
|
+
|
|
17
|
+
@static
|
|
18
|
+
@constant
|
|
19
|
+
*/
|
|
20
|
+
IS_DISABLED: 0x10, // 16
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
The view is disabled.
|
|
24
|
+
|
|
25
|
+
@static
|
|
26
|
+
@constant
|
|
27
|
+
*/
|
|
28
|
+
DISABLED: 0x11, // 17
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
The view is enabled itself, but is effectively disabled in the pane due to
|
|
32
|
+
a disabled parent view.
|
|
33
|
+
|
|
34
|
+
@static
|
|
35
|
+
@constant
|
|
36
|
+
*/
|
|
37
|
+
DISABLED_BY_PARENT: 0x12 // 18
|
|
38
|
+
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
|
|
3
42
|
SC.View.reopen(
|
|
4
43
|
/** @scope SC.View.prototype */ {
|
|
5
|
-
|
|
6
|
-
//
|
|
44
|
+
|
|
45
|
+
// ------------------------------------------------------------------------
|
|
46
|
+
// Properties
|
|
7
47
|
//
|
|
8
48
|
|
|
49
|
+
/**
|
|
50
|
+
The current enabled state of the view.
|
|
51
|
+
|
|
52
|
+
Views have a few possible enabled states:
|
|
53
|
+
|
|
54
|
+
* SC.CoreView.ENABLED
|
|
55
|
+
* SC.CoreView.DISABLED
|
|
56
|
+
* SC.CoreView.DISABLED_BY_PARENT
|
|
57
|
+
|
|
58
|
+
@type String
|
|
59
|
+
@default SC.CoreView.ENABLED
|
|
60
|
+
@readonly
|
|
61
|
+
*/
|
|
62
|
+
enabledState: SC.CoreView.ENABLED,
|
|
63
|
+
|
|
9
64
|
/**
|
|
10
65
|
Set to true when the item is enabled. Note that changing this value
|
|
11
|
-
will alter the
|
|
66
|
+
will alter the `isEnabledInPane` property for this view and any
|
|
12
67
|
child views as well as to automatically add or remove a 'disabled' CSS
|
|
13
68
|
class name.
|
|
14
69
|
|
|
15
70
|
This property is observable and bindable.
|
|
16
71
|
|
|
17
|
-
@
|
|
72
|
+
@type Boolean
|
|
18
73
|
*/
|
|
19
74
|
isEnabled: YES,
|
|
20
75
|
isEnabledBindingDefault: SC.Binding.oneWay().bool(),
|
|
@@ -24,15 +79,72 @@ SC.View.reopen(
|
|
|
24
79
|
are enabled in the pane. You should use this property when deciding
|
|
25
80
|
whether to respond to an incoming event or not.
|
|
26
81
|
|
|
27
|
-
|
|
82
|
+
@type Boolean
|
|
83
|
+
*/
|
|
84
|
+
// The previous version used a lazy upward search method. This has better
|
|
85
|
+
// performance, but made isEnabledInPane non-bindable.
|
|
86
|
+
// isEnabledInPane: function() {
|
|
87
|
+
// var ret = this.get('isEnabled'), pv ;
|
|
88
|
+
// if (ret && (pv = this.get('parentView'))) { ret = pv.get('isEnabledInPane'); }
|
|
89
|
+
// return ret ;
|
|
90
|
+
// }.property('parentView', 'isEnabled'),
|
|
91
|
+
isEnabledInPane: function () {
|
|
92
|
+
return this.get('enabledState') === SC.CoreView.ENABLED;
|
|
93
|
+
}.property('enabledState').cacheable(),
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
By default, setting isEnabled to false on a view will place all of its
|
|
97
|
+
child views in a disabled state. To block this from happening to a
|
|
98
|
+
specific child view and its children, you can set `shouldInheritEnabled`
|
|
99
|
+
to false.
|
|
100
|
+
|
|
101
|
+
In this way you can set `isEnabled` to false on a main pane to disable all
|
|
102
|
+
buttons, collections and other controls within it, but can still keep a
|
|
103
|
+
section of it editable using `shouldInheritEnabled: false`.
|
|
28
104
|
|
|
29
|
-
@
|
|
105
|
+
@type Boolean
|
|
30
106
|
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
107
|
+
shouldInheritEnabled: true,
|
|
108
|
+
|
|
109
|
+
// ------------------------------------------------------------------------
|
|
110
|
+
// Actions & Events
|
|
111
|
+
//
|
|
112
|
+
|
|
113
|
+
/** @private */
|
|
114
|
+
_doEnable: function () {
|
|
115
|
+
var handled = true;
|
|
116
|
+
|
|
117
|
+
if (this.get('enabledState') & SC.CoreView.IS_DISABLED) {
|
|
118
|
+
this._callOnChildViews('_parentDidEnableInPane');
|
|
119
|
+
this._gotoEnabledState();
|
|
120
|
+
} else {
|
|
121
|
+
handled = false;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return handled;
|
|
125
|
+
},
|
|
126
|
+
|
|
127
|
+
/** @private */
|
|
128
|
+
_doDisable: function () {
|
|
129
|
+
var handled = true;
|
|
130
|
+
|
|
131
|
+
if (this.get('enabledState') !== SC.CoreView.DISABLED) {
|
|
132
|
+
if (this.get('isFirstResponder')) {
|
|
133
|
+
this.resignFirstResponder();
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
this._callOnChildViews('_parentDidDisableInPane');
|
|
137
|
+
this._gotoDisabledState();
|
|
138
|
+
} else {
|
|
139
|
+
handled = false;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return handled;
|
|
143
|
+
},
|
|
144
|
+
|
|
145
|
+
// ------------------------------------------------------------------------
|
|
146
|
+
// Methods
|
|
147
|
+
//
|
|
36
148
|
|
|
37
149
|
/** @private
|
|
38
150
|
Observes the isEnabled property and resigns first responder if set to NO.
|
|
@@ -41,18 +153,105 @@ SC.View.reopen(
|
|
|
41
153
|
|
|
42
154
|
@observes isEnabled
|
|
43
155
|
*/
|
|
44
|
-
_sc_view_isEnabledDidChange: function(){
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
156
|
+
_sc_view_isEnabledDidChange: function () {
|
|
157
|
+
// Filter the input channel.
|
|
158
|
+
this.invokeOnce(this._doUpdateEnabled);
|
|
48
159
|
}.observes('isEnabled'),
|
|
49
160
|
|
|
50
|
-
|
|
161
|
+
/** @private */
|
|
162
|
+
_doUpdateEnabled: function () {
|
|
163
|
+
var state = this.get('viewState');
|
|
164
|
+
|
|
165
|
+
// Call the proper action.
|
|
166
|
+
if (this.get('isEnabled')) {
|
|
167
|
+
this._doEnable();
|
|
168
|
+
} else {
|
|
169
|
+
this._doDisable();
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Update the display if in a visible state.
|
|
173
|
+
switch (state) {
|
|
174
|
+
case SC.CoreView.ATTACHED_SHOWN:
|
|
175
|
+
case SC.CoreView.ATTACHED_SHOWING:
|
|
176
|
+
case SC.CoreView.ATTACHED_BUILDING_IN:
|
|
177
|
+
// Update the display.
|
|
178
|
+
this._doUpdateEnabledStyle();
|
|
179
|
+
break;
|
|
180
|
+
default:
|
|
181
|
+
// Indicate that a display update is required the next time we are visible.
|
|
182
|
+
this._enabledStyleNeedsUpdate = true;
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
|
|
186
|
+
/** @private Enhance. */
|
|
187
|
+
_executeQueuedUpdates: function (original) {
|
|
188
|
+
original();
|
|
189
|
+
|
|
190
|
+
// Update the layout style of the layer if necessary.
|
|
191
|
+
if (this._enabledStyleNeedsUpdate) {
|
|
192
|
+
this._doUpdateEnabledStyle();
|
|
193
|
+
}
|
|
194
|
+
}.enhance(),
|
|
195
|
+
|
|
196
|
+
/** @private */
|
|
197
|
+
_doUpdateEnabledStyle: function () {
|
|
198
|
+
var isEnabled = this.get('isEnabled');
|
|
199
|
+
|
|
200
|
+
this.$().toggleClass('disabled', !isEnabled);
|
|
201
|
+
this.$().attr('aria-disabled', !isEnabled ? true : null);
|
|
202
|
+
|
|
203
|
+
// Reset that an update is required.
|
|
204
|
+
this._enabledStyleNeedsUpdate = false;
|
|
205
|
+
},
|
|
206
|
+
|
|
207
|
+
/** @private */
|
|
208
|
+
_parentDidEnableInPane: function () {
|
|
209
|
+
var isEnabled = this.get('isEnabled');
|
|
210
|
+
|
|
211
|
+
if (isEnabled) {
|
|
212
|
+
this._gotoEnabledState();
|
|
213
|
+
} else {
|
|
214
|
+
// There's no need to continue to further child views.
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
|
|
219
|
+
/** @private */
|
|
220
|
+
_parentDidDisableInPane: function () {
|
|
51
221
|
var isEnabled = this.get('isEnabled');
|
|
52
222
|
|
|
223
|
+
if (isEnabled && this.get('shouldInheritEnabled')) {
|
|
224
|
+
this._gotoDisableByParentState();
|
|
225
|
+
} else {
|
|
226
|
+
// There's no need to continue to further child views.
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
|
|
231
|
+
applyAttributesToContext: function (original, context) {
|
|
53
232
|
original(context);
|
|
54
233
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
234
|
+
if (!this.get('isEnabled')) {
|
|
235
|
+
context.addClass('disabled');
|
|
236
|
+
context.setAttr('aria-disabled', 'true');
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
}.enhance(),
|
|
240
|
+
|
|
241
|
+
/** @private */
|
|
242
|
+
_gotoEnabledState: function () {
|
|
243
|
+
this.set('enabledState', SC.CoreView.ENABLED);
|
|
244
|
+
},
|
|
245
|
+
|
|
246
|
+
/** @private */
|
|
247
|
+
_gotoDisabledState: function () {
|
|
248
|
+
this.set('enabledState', SC.CoreView.DISABLED);
|
|
249
|
+
},
|
|
250
|
+
|
|
251
|
+
/** @private */
|
|
252
|
+
_gotoDisableByParentState: function () {
|
|
253
|
+
// Update the state.
|
|
254
|
+
this.set('enabledState', SC.CoreView.DISABLED_BY_PARENT);
|
|
255
|
+
}
|
|
256
|
+
|
|
58
257
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
sc_require("views/view");
|
|
2
|
-
sc_require('views/view/layout_style')
|
|
2
|
+
sc_require('views/view/layout_style');
|
|
3
3
|
|
|
4
4
|
/** Select a horizontal layout for various views.*/
|
|
5
5
|
SC.LAYOUT_HORIZONTAL = 'sc-layout-horizontal';
|
|
@@ -32,33 +32,30 @@ SC.ANCHOR_CENTER = { centerX: 0, centerY: 0 };
|
|
|
32
32
|
|
|
33
33
|
SC.LAYOUT_AUTO = 'auto';
|
|
34
34
|
|
|
35
|
+
|
|
35
36
|
SC.View.reopen(
|
|
36
37
|
/** @scope SC.View.prototype */ {
|
|
37
38
|
|
|
38
39
|
/**
|
|
39
|
-
Set to YES to indicate the view has
|
|
40
|
+
Set to YES to indicate the view has layout support added.
|
|
40
41
|
*/
|
|
41
42
|
hasLayout: YES,
|
|
42
43
|
|
|
43
|
-
concatenatedProperties: ["layoutProperties"],
|
|
44
|
-
|
|
45
44
|
/**
|
|
46
45
|
Optional background color. Will be applied to the view's element if
|
|
47
46
|
set. This property is intended for one-off views that need a background
|
|
48
47
|
element. If you plan to create many view instances it is probably better
|
|
49
48
|
to use CSS.
|
|
50
49
|
|
|
51
|
-
@
|
|
50
|
+
@type String
|
|
52
51
|
*/
|
|
53
52
|
backgroundColor: null,
|
|
54
53
|
|
|
55
|
-
displayProperties: ['backgroundColor'],
|
|
56
|
-
|
|
57
54
|
/**
|
|
58
55
|
Activates use of brower's static layout. To activate, set this
|
|
59
56
|
property to YES.
|
|
60
57
|
|
|
61
|
-
@
|
|
58
|
+
@type Boolean
|
|
62
59
|
*/
|
|
63
60
|
useStaticLayout: NO,
|
|
64
61
|
|
|
@@ -66,13 +63,38 @@ SC.View.reopen(
|
|
|
66
63
|
// LAYOUT
|
|
67
64
|
//
|
|
68
65
|
|
|
69
|
-
|
|
66
|
+
/** @private */
|
|
67
|
+
init: function (original) {
|
|
70
68
|
original();
|
|
71
69
|
|
|
72
|
-
// TODO: This makes it impossible to override
|
|
73
|
-
this.layoutStyleCalculator = SC.View.LayoutStyleCalculator.create({ view: this });
|
|
74
|
-
|
|
75
70
|
this._previousLayout = this.get('layout');
|
|
71
|
+
|
|
72
|
+
// Apply the automatic child view layout if it is defined.
|
|
73
|
+
var childViewLayout = this.childViewLayout;
|
|
74
|
+
if (childViewLayout) {
|
|
75
|
+
// Layout the child views once.
|
|
76
|
+
this.set('childViewsNeedLayout', true);
|
|
77
|
+
this.layoutChildViewsIfNeeded();
|
|
78
|
+
|
|
79
|
+
// If the child view layout is live, start observing affecting properties.
|
|
80
|
+
if (this.get('isChildViewLayoutLive')) {
|
|
81
|
+
this.addObserver('childViews.[]', this, this._cvl_childViewsDidChange);
|
|
82
|
+
// DISABLED. this.addObserver('childViewLayout', this, this._cvl_childViewLayoutDidChange);
|
|
83
|
+
this.addObserver('childViewLayoutOptions', this, this._cvl_childViewLayoutDidChange);
|
|
84
|
+
|
|
85
|
+
// Initialize the child views.
|
|
86
|
+
this._cvl_setupChildViewsLiveLayout();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
}.enhance(),
|
|
91
|
+
|
|
92
|
+
/** @private */
|
|
93
|
+
destroy: function (original) {
|
|
94
|
+
// Clean up.
|
|
95
|
+
this._previousLayout = null;
|
|
96
|
+
|
|
97
|
+
return original();
|
|
76
98
|
}.enhance(),
|
|
77
99
|
|
|
78
100
|
/**
|
|
@@ -86,7 +108,7 @@ SC.View.reopen(
|
|
|
86
108
|
be invalid, we need to force layoutDidChange() to always immediately run
|
|
87
109
|
whenever 'layout' is set.
|
|
88
110
|
*/
|
|
89
|
-
propertyDidChange: function(key, value, _keepCache) {
|
|
111
|
+
propertyDidChange: function (key, value, _keepCache) {
|
|
90
112
|
// If the key is 'layout', we need to call layoutDidChange() immediately
|
|
91
113
|
// so that if the frame has changed any cached values (for both this view
|
|
92
114
|
// and any child views) can be appropriately invalidated.
|
|
@@ -95,11 +117,11 @@ SC.View.reopen(
|
|
|
95
117
|
// changed and if layout is dependent on the property.
|
|
96
118
|
// If it is we call layoutDidChange.
|
|
97
119
|
var layoutChange = false;
|
|
98
|
-
if(typeof this.layout === "function" && this._kvo_dependents) {
|
|
120
|
+
if (typeof this.layout === "function" && this._kvo_dependents) {
|
|
99
121
|
var dependents = this._kvo_dependents[key];
|
|
100
|
-
if(dependents && dependents.indexOf('layout')
|
|
122
|
+
if (dependents && dependents.indexOf('layout') != -1) { layoutChange = true; }
|
|
101
123
|
}
|
|
102
|
-
if(key==='layout' || layoutChange) { this.layoutDidChange(); }
|
|
124
|
+
if (key === 'layout' || layoutChange) { this.layoutDidChange(); }
|
|
103
125
|
// Resume notification as usual.
|
|
104
126
|
sc_super();
|
|
105
127
|
},
|
|
@@ -120,47 +142,45 @@ SC.View.reopen(
|
|
|
120
142
|
@param {Object} value
|
|
121
143
|
@returns {SC.View} receiver
|
|
122
144
|
*/
|
|
123
|
-
adjust: function(key, value) {
|
|
145
|
+
adjust: function (key, value) {
|
|
124
146
|
var layout = this.get('layout'), didChange = NO, cur, hash;
|
|
125
147
|
|
|
126
|
-
if (key === undefined) { return this
|
|
148
|
+
if (key === undefined) { return this; } // nothing to do.
|
|
127
149
|
|
|
128
150
|
// handle string case
|
|
129
151
|
if (SC.typeOf(key) === SC.T_STRING) {
|
|
130
152
|
// this is copied from below
|
|
131
153
|
cur = layout[key];
|
|
132
154
|
|
|
133
|
-
if(value === undefined || cur == value) return this;
|
|
155
|
+
if (value === undefined || cur == value) return this;
|
|
134
156
|
|
|
135
157
|
layout = SC.clone(layout);
|
|
136
158
|
|
|
137
|
-
if(value === null) {
|
|
159
|
+
if (value === null) {
|
|
138
160
|
delete layout[key];
|
|
139
161
|
} else {
|
|
140
162
|
layout[key] = value;
|
|
141
163
|
}
|
|
142
164
|
|
|
143
165
|
didChange = YES;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
else {
|
|
166
|
+
} else {
|
|
147
167
|
hash = key;
|
|
148
168
|
|
|
149
|
-
for(key in hash) {
|
|
169
|
+
for (key in hash) {
|
|
150
170
|
if (!hash.hasOwnProperty(key)) { continue; }
|
|
151
171
|
|
|
152
|
-
value = hash[key]
|
|
153
|
-
cur = layout[key]
|
|
172
|
+
value = hash[key];
|
|
173
|
+
cur = layout[key];
|
|
154
174
|
|
|
155
175
|
if (value === undefined || cur == value) { continue; }
|
|
156
176
|
|
|
157
177
|
// only clone the layout the first time we see a change
|
|
158
|
-
if(!didChange) layout = SC.clone(layout);
|
|
178
|
+
if (!didChange) layout = SC.clone(layout);
|
|
159
179
|
|
|
160
180
|
if (value === null) {
|
|
161
|
-
delete layout[key]
|
|
181
|
+
delete layout[key];
|
|
162
182
|
} else {
|
|
163
|
-
layout[key] = value
|
|
183
|
+
layout[key] = value;
|
|
164
184
|
}
|
|
165
185
|
|
|
166
186
|
didChange = YES;
|
|
@@ -169,10 +189,30 @@ SC.View.reopen(
|
|
|
169
189
|
|
|
170
190
|
// now set adjusted layout
|
|
171
191
|
if (didChange) {
|
|
172
|
-
this.
|
|
192
|
+
var transitionAdjust = this.get('transitionAdjust');
|
|
193
|
+
|
|
194
|
+
if (this.get('viewState') & SC.CoreView.IS_SHOWN && transitionAdjust) {
|
|
195
|
+
// Run the adjust transition.
|
|
196
|
+
this._transitionAdjust(layout);
|
|
197
|
+
} else {
|
|
198
|
+
this.set('layout', layout);
|
|
199
|
+
}
|
|
173
200
|
}
|
|
174
201
|
|
|
175
|
-
return this
|
|
202
|
+
return this;
|
|
203
|
+
},
|
|
204
|
+
|
|
205
|
+
/** @private Attempts to run a transition adjust, ensuring any showing transitions are stopped in place. */
|
|
206
|
+
_transitionAdjust: function (layout) {
|
|
207
|
+
var transitionAdjust = this.get('transitionAdjust'),
|
|
208
|
+
options = this.get('transitionAdjustOptions') || {};
|
|
209
|
+
|
|
210
|
+
// Execute the adjusting transition.
|
|
211
|
+
transitionAdjust.run(this, options, layout);
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
/** @private */
|
|
215
|
+
didTransitionAdjust: function () {
|
|
176
216
|
},
|
|
177
217
|
|
|
178
218
|
/**
|
|
@@ -196,6 +236,7 @@ SC.View.reopen(
|
|
|
196
236
|
- borderRight: right border
|
|
197
237
|
- borderBottom: bottom border
|
|
198
238
|
- borderLeft: bottom left
|
|
239
|
+
- opacity: the opacity of the view
|
|
199
240
|
- zIndex: position above or below other views
|
|
200
241
|
|
|
201
242
|
Note that you can only use certain combinations to set layout. For
|
|
@@ -221,7 +262,7 @@ SC.View.reopen(
|
|
|
221
262
|
@returns {Boolean} YES if fixed, NO otherwise
|
|
222
263
|
@test in layoutStyle
|
|
223
264
|
*/
|
|
224
|
-
isFixedLayout: function() {
|
|
265
|
+
isFixedLayout: function () {
|
|
225
266
|
return this.get('isFixedPosition') && this.get('isFixedSize');
|
|
226
267
|
}.property('isFixedPosition', 'isFixedSize').cacheable(),
|
|
227
268
|
|
|
@@ -233,7 +274,7 @@ SC.View.reopen(
|
|
|
233
274
|
@returns {Boolean} YES if fixed, NO otherwise
|
|
234
275
|
@test in layoutStyle
|
|
235
276
|
*/
|
|
236
|
-
isFixedPosition: function() {
|
|
277
|
+
isFixedPosition: function () {
|
|
237
278
|
var layout = this.get('layout'),
|
|
238
279
|
ret;
|
|
239
280
|
|
|
@@ -245,7 +286,7 @@ SC.View.reopen(
|
|
|
245
286
|
|
|
246
287
|
// The position may appear fixed, but only if none of the values are percentages.
|
|
247
288
|
if (ret) {
|
|
248
|
-
ret = (
|
|
289
|
+
ret = (!SC.isPercentage(layout.top) && !SC.isPercentage(layout.left));
|
|
249
290
|
}
|
|
250
291
|
|
|
251
292
|
return ret;
|
|
@@ -271,7 +312,7 @@ SC.View.reopen(
|
|
|
271
312
|
|
|
272
313
|
// The size may appear fixed, but only if none of the values are percentages.
|
|
273
314
|
if (ret) {
|
|
274
|
-
ret = (
|
|
315
|
+
ret = (!SC.isPercentage(layout.width) && !SC.isPercentage(layout.height));
|
|
275
316
|
}
|
|
276
317
|
|
|
277
318
|
return ret;
|
|
@@ -294,28 +335,32 @@ SC.View.reopen(
|
|
|
294
335
|
@returns {Rect} converted frame
|
|
295
336
|
@test in convertFrames
|
|
296
337
|
*/
|
|
297
|
-
convertFrameToView: function(frame, targetView) {
|
|
298
|
-
var myX=0, myY=0, targetX=0, targetY=0, view = this, f
|
|
338
|
+
convertFrameToView: function (frame, targetView) {
|
|
339
|
+
var myX = 0, myY = 0, targetX = 0, targetY = 0, view = this, f;
|
|
299
340
|
|
|
300
341
|
// walk up this side
|
|
301
342
|
while (view) {
|
|
302
|
-
f = view.get('frame');
|
|
303
|
-
|
|
343
|
+
f = view.get('frame');
|
|
344
|
+
myX += f.x;
|
|
345
|
+
myY += f.y;
|
|
346
|
+
view = view.get('layoutView');
|
|
304
347
|
}
|
|
305
348
|
|
|
306
349
|
// walk up other size
|
|
307
350
|
if (targetView) {
|
|
308
|
-
view = targetView
|
|
351
|
+
view = targetView;
|
|
309
352
|
while (view) {
|
|
310
|
-
f = view.get('frame');
|
|
311
|
-
|
|
353
|
+
f = view.get('frame');
|
|
354
|
+
targetX += f.x;
|
|
355
|
+
targetY += f.y;
|
|
356
|
+
view = view.get('layoutView');
|
|
312
357
|
}
|
|
313
358
|
}
|
|
314
359
|
|
|
315
360
|
// now we can figure how to translate the origin.
|
|
316
|
-
myX = frame.x + myX - targetX
|
|
317
|
-
myY = frame.y + myY - targetY
|
|
318
|
-
return { x: myX, y: myY, width: frame.width, height: frame.height }
|
|
361
|
+
myX = frame.x + myX - targetX;
|
|
362
|
+
myY = frame.y + myY - targetY;
|
|
363
|
+
return { x: myX, y: myY, width: frame.width, height: frame.height };
|
|
319
364
|
},
|
|
320
365
|
|
|
321
366
|
/**
|
|
@@ -334,29 +379,32 @@ SC.View.reopen(
|
|
|
334
379
|
@returns {Rect} converted frame
|
|
335
380
|
@test in converFrames
|
|
336
381
|
*/
|
|
337
|
-
convertFrameFromView: function(frame, targetView) {
|
|
338
|
-
var myX=0, myY=0, targetX=0, targetY=0, view = this, f
|
|
382
|
+
convertFrameFromView: function (frame, targetView) {
|
|
383
|
+
var myX = 0, myY = 0, targetX = 0, targetY = 0, view = this, f;
|
|
339
384
|
|
|
340
385
|
// walk up this side
|
|
341
386
|
//Note: Intentional assignment of variable f
|
|
342
387
|
while (view && (f = view.get('frame'))) {
|
|
343
|
-
myX += f.x;
|
|
344
|
-
|
|
388
|
+
myX += f.x;
|
|
389
|
+
myY += f.y;
|
|
390
|
+
view = view.get('parentView');
|
|
345
391
|
}
|
|
346
392
|
|
|
347
393
|
// walk up other size
|
|
348
394
|
if (targetView) {
|
|
349
|
-
view = targetView
|
|
350
|
-
while(view) {
|
|
351
|
-
f = view.get('frame');
|
|
352
|
-
|
|
395
|
+
view = targetView;
|
|
396
|
+
while (view) {
|
|
397
|
+
f = view.get('frame');
|
|
398
|
+
targetX += f.x;
|
|
399
|
+
targetY += f.y;
|
|
400
|
+
view = view.get('parentView');
|
|
353
401
|
}
|
|
354
402
|
}
|
|
355
403
|
|
|
356
404
|
// now we can figure how to translate the origin.
|
|
357
|
-
myX = frame.x - myX + targetX
|
|
358
|
-
myY = frame.y - myY + targetY
|
|
359
|
-
return { x: myX, y: myY, width: frame.width, height: frame.height }
|
|
405
|
+
myX = frame.x - myX + targetX;
|
|
406
|
+
myY = frame.y - myY + targetY;
|
|
407
|
+
return { x: myX, y: myY, width: frame.width, height: frame.height };
|
|
360
408
|
},
|
|
361
409
|
|
|
362
410
|
/**
|
|
@@ -368,24 +416,30 @@ SC.View.reopen(
|
|
|
368
416
|
|
|
369
417
|
@returns {Boolean}
|
|
370
418
|
*/
|
|
371
|
-
scrollToVisible: function() {
|
|
419
|
+
scrollToVisible: function () {
|
|
372
420
|
var pv = this.get('parentView');
|
|
373
|
-
while(pv && !pv.get('isScrollable')) { pv = pv.get('parentView'); }
|
|
421
|
+
while (pv && !pv.get('isScrollable')) { pv = pv.get('parentView'); }
|
|
374
422
|
|
|
375
423
|
// found view, first make it scroll itself visible then scroll this.
|
|
376
424
|
if (pv) {
|
|
377
425
|
pv.scrollToVisible();
|
|
378
426
|
return pv.scrollToVisible(this);
|
|
379
427
|
} else {
|
|
380
|
-
return NO
|
|
428
|
+
return NO;
|
|
381
429
|
}
|
|
382
430
|
},
|
|
383
431
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
432
|
+
/** @private */
|
|
433
|
+
_effectiveBorderFor: function (layoutName, layout) {
|
|
434
|
+
return ((layout[layoutName] !== undefined) ? layout[layoutName] : layout.border) || 0;
|
|
435
|
+
},
|
|
436
|
+
|
|
437
|
+
/** @private */
|
|
438
|
+
_adjustForBorder: function (frame, layout) {
|
|
439
|
+
var borderTop = this._effectiveBorderFor('borderTop', layout),
|
|
440
|
+
borderLeft = this._effectiveBorderFor('borderLeft', layout),
|
|
441
|
+
borderBottom = this._effectiveBorderFor('borderBottom', layout),
|
|
442
|
+
borderRight = this._effectiveBorderFor('borderRight', layout);
|
|
389
443
|
|
|
390
444
|
frame.x += borderLeft; // The border on the left pushes the frame to the right
|
|
391
445
|
frame.y += borderTop; // The border on the top pushes the frame down
|
|
@@ -410,7 +464,7 @@ SC.View.reopen(
|
|
|
410
464
|
@param {Rect} pdim the projected parent dimensions
|
|
411
465
|
@returns {Rect} the computed frame
|
|
412
466
|
*/
|
|
413
|
-
computeFrameWithParentFrame: function(original, pdim) {
|
|
467
|
+
computeFrameWithParentFrame: function (original, pdim) {
|
|
414
468
|
var f, layout = this.get('layout');
|
|
415
469
|
|
|
416
470
|
// We can't predict the frame for static layout, so just return the view's
|
|
@@ -435,124 +489,124 @@ SC.View.reopen(
|
|
|
435
489
|
lcY = layout.centerY;
|
|
436
490
|
|
|
437
491
|
if (lW === AUTO) {
|
|
438
|
-
error = SC.Error.desc(("%@.layout() cannot use width:auto if "+
|
|
439
|
-
|
|
440
|
-
SC.Logger.error(error.toString())
|
|
441
|
-
throw error
|
|
492
|
+
error = SC.Error.desc(("%@.layout() cannot use width:auto if " +
|
|
493
|
+
"staticLayout is disabled").fmt(this), "%@".fmt(this), -1);
|
|
494
|
+
SC.Logger.error(error.toString());
|
|
495
|
+
throw error;
|
|
442
496
|
}
|
|
443
497
|
|
|
444
498
|
if (lH === AUTO) {
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
throw error
|
|
499
|
+
error = SC.Error.desc(("%@.layout() cannot use height:auto if " +
|
|
500
|
+
"staticLayout is disabled").fmt(this), "%@".fmt(this), -1);
|
|
501
|
+
SC.Logger.error(error.toString());
|
|
502
|
+
throw error;
|
|
449
503
|
}
|
|
450
504
|
|
|
451
|
-
if (!pdim) { pdim = this.computeParentDimensions(layout)
|
|
505
|
+
if (!pdim) { pdim = this.computeParentDimensions(layout); }
|
|
452
506
|
dH = pdim.height;
|
|
453
507
|
dW = pdim.width;
|
|
454
508
|
|
|
455
509
|
// handle left aligned and left/right
|
|
456
510
|
if (!SC.none(lL)) {
|
|
457
|
-
if(SC.isPercentage(lL)){
|
|
458
|
-
f.x = dW*lL;
|
|
459
|
-
}else{
|
|
460
|
-
f.x = lL
|
|
511
|
+
if (SC.isPercentage(lL)) {
|
|
512
|
+
f.x = dW * lL;
|
|
513
|
+
} else {
|
|
514
|
+
f.x = lL;
|
|
461
515
|
}
|
|
462
516
|
if (lW !== undefined) {
|
|
463
|
-
if(lW === AUTO) { f.width = AUTO
|
|
464
|
-
else if(SC.isPercentage(lW)) { f.width = dW*lW
|
|
465
|
-
else { f.width = lW
|
|
517
|
+
if (lW === AUTO) { f.width = AUTO; }
|
|
518
|
+
else if (SC.isPercentage(lW)) { f.width = dW * lW; }
|
|
519
|
+
else { f.width = lW; }
|
|
466
520
|
} else { // better have lR!
|
|
467
|
-
f.width = dW - f.x
|
|
468
|
-
if(lR && SC.isPercentage(lR)) { f.width = f.width - (lR*dW)
|
|
469
|
-
else { f.width = f.width - (lR || 0)
|
|
521
|
+
f.width = dW - f.x;
|
|
522
|
+
if (lR && SC.isPercentage(lR)) { f.width = f.width - (lR * dW); }
|
|
523
|
+
else { f.width = f.width - (lR || 0); }
|
|
470
524
|
}
|
|
471
525
|
// handle right aligned
|
|
472
526
|
} else if (!SC.none(lR)) {
|
|
473
527
|
if (SC.none(lW)) {
|
|
474
528
|
if (SC.isPercentage(lR)) {
|
|
475
|
-
f.width = dW - (dW*lR)
|
|
529
|
+
f.width = dW - (dW * lR);
|
|
476
530
|
}
|
|
477
|
-
else f.width = dW - lR
|
|
478
|
-
f.x = 0
|
|
531
|
+
else f.width = dW - lR;
|
|
532
|
+
f.x = 0;
|
|
479
533
|
} else {
|
|
480
|
-
if(lW === AUTO) f.width = AUTO
|
|
481
|
-
else if(SC.isPercentage(lW)) f.width = dW*lW
|
|
482
|
-
else f.width = (lW || 0)
|
|
483
|
-
if (SC.isPercentage(lW)) f.x = dW - (lR*dW) - f.width
|
|
484
|
-
else f.x = dW - lR - f.width
|
|
534
|
+
if (lW === AUTO) f.width = AUTO;
|
|
535
|
+
else if (SC.isPercentage(lW)) f.width = dW * lW;
|
|
536
|
+
else f.width = (lW || 0);
|
|
537
|
+
if (SC.isPercentage(lW)) f.x = dW - (lR * dW) - f.width;
|
|
538
|
+
else f.x = dW - lR - f.width;
|
|
485
539
|
}
|
|
486
540
|
|
|
487
541
|
// handle centered
|
|
488
542
|
} else if (!SC.none(lcX)) {
|
|
489
|
-
if(lW === AUTO) f.width = AUTO
|
|
490
|
-
else if (SC.isPercentage(lW)) f.width = lW*dW
|
|
491
|
-
else f.width = (lW || 0)
|
|
492
|
-
if(SC.isPercentage(lcX)) f.x = (dW - f.width)/2 + (lcX*dW)
|
|
493
|
-
else f.x = (dW - f.width)/2 + lcX
|
|
543
|
+
if (lW === AUTO) f.width = AUTO;
|
|
544
|
+
else if (SC.isPercentage(lW)) f.width = lW * dW;
|
|
545
|
+
else f.width = (lW || 0);
|
|
546
|
+
if (SC.isPercentage(lcX)) f.x = (dW - f.width) / 2 + (lcX * dW);
|
|
547
|
+
else f.x = (dW - f.width) / 2 + lcX;
|
|
494
548
|
} else {
|
|
495
|
-
f.x = 0
|
|
549
|
+
f.x = 0; // fallback
|
|
496
550
|
if (SC.none(lW)) {
|
|
497
|
-
f.width = dW
|
|
551
|
+
f.width = dW;
|
|
498
552
|
} else {
|
|
499
|
-
if(lW === AUTO) f.width = AUTO
|
|
500
|
-
if (SC.isPercentage(lW)) f.width = lW*dW
|
|
501
|
-
else f.width = (lW || 0)
|
|
553
|
+
if (lW === AUTO) f.width = AUTO;
|
|
554
|
+
if (SC.isPercentage(lW)) f.width = lW * dW;
|
|
555
|
+
else f.width = (lW || 0);
|
|
502
556
|
}
|
|
503
557
|
}
|
|
504
558
|
|
|
505
559
|
// handle top aligned and top/bottom
|
|
506
560
|
if (!SC.none(lT)) {
|
|
507
|
-
if(SC.isPercentage(lT)) f.y = lT*dH
|
|
508
|
-
else f.y = lT
|
|
561
|
+
if (SC.isPercentage(lT)) f.y = lT * dH;
|
|
562
|
+
else f.y = lT;
|
|
509
563
|
if (lH !== undefined) {
|
|
510
|
-
if(lH === AUTO) f.height = AUTO
|
|
511
|
-
else if(SC.isPercentage(lH)) f.height = lH*dH
|
|
512
|
-
else f.height = lH
|
|
564
|
+
if (lH === AUTO) f.height = AUTO;
|
|
565
|
+
else if (SC.isPercentage(lH)) f.height = lH * dH;
|
|
566
|
+
else f.height = lH;
|
|
513
567
|
} else { // better have lB!
|
|
514
|
-
if(lB && SC.isPercentage(lB)) f.height = dH - f.y - (lB*dH)
|
|
515
|
-
else f.height = dH - f.y - (lB || 0)
|
|
568
|
+
if (lB && SC.isPercentage(lB)) f.height = dH - f.y - (lB * dH);
|
|
569
|
+
else f.height = dH - f.y - (lB || 0);
|
|
516
570
|
}
|
|
517
571
|
|
|
518
572
|
// handle bottom aligned
|
|
519
573
|
} else if (!SC.none(lB)) {
|
|
520
574
|
if (SC.none(lH)) {
|
|
521
|
-
if (SC.isPercentage(lB)) f.height = dH - (lB*dH)
|
|
522
|
-
else f.height = dH - lB
|
|
523
|
-
f.y = 0
|
|
575
|
+
if (SC.isPercentage(lB)) f.height = dH - (lB * dH);
|
|
576
|
+
else f.height = dH - lB;
|
|
577
|
+
f.y = 0;
|
|
524
578
|
} else {
|
|
525
|
-
if(lH === AUTO) f.height = AUTO
|
|
526
|
-
if (lH && SC.isPercentage(lH)) f.height = lH*dH
|
|
527
|
-
else f.height = (lH || 0)
|
|
528
|
-
if (SC.isPercentage(lB)) f.y = dH - (lB*dH) - f.height
|
|
529
|
-
else f.y = dH - lB - f.height
|
|
579
|
+
if (lH === AUTO) f.height = AUTO;
|
|
580
|
+
if (lH && SC.isPercentage(lH)) f.height = lH * dH;
|
|
581
|
+
else f.height = (lH || 0);
|
|
582
|
+
if (SC.isPercentage(lB)) f.y = dH - (lB * dH) - f.height;
|
|
583
|
+
else f.y = dH - lB - f.height;
|
|
530
584
|
}
|
|
531
585
|
|
|
532
586
|
// handle centered
|
|
533
587
|
} else if (!SC.none(lcY)) {
|
|
534
|
-
if(lH === AUTO) f.height = AUTO
|
|
535
|
-
if (lH && SC.isPercentage(lH)) f.height = lH*dH
|
|
536
|
-
else f.height = (lH || 0)
|
|
537
|
-
if (SC.isPercentage(lcY)) f.y = (dH - f.height)/2 + (lcY*dH)
|
|
538
|
-
else f.y = (dH - f.height)/2 + lcY
|
|
588
|
+
if (lH === AUTO) f.height = AUTO;
|
|
589
|
+
if (lH && SC.isPercentage(lH)) f.height = lH * dH;
|
|
590
|
+
else f.height = (lH || 0);
|
|
591
|
+
if (SC.isPercentage(lcY)) f.y = (dH - f.height) / 2 + (lcY * dH);
|
|
592
|
+
else f.y = (dH - f.height) / 2 + lcY;
|
|
539
593
|
|
|
540
594
|
// fallback
|
|
541
595
|
} else {
|
|
542
|
-
f.y = 0
|
|
596
|
+
f.y = 0; // fallback
|
|
543
597
|
if (SC.none(lH)) {
|
|
544
|
-
f.height = dH
|
|
598
|
+
f.height = dH;
|
|
545
599
|
} else {
|
|
546
|
-
if(lH === AUTO) f.height = AUTO
|
|
547
|
-
if (SC.isPercentage(lH)) f.height = lH*dH
|
|
548
|
-
else f.height = lH || 0
|
|
600
|
+
if (lH === AUTO) f.height = AUTO;
|
|
601
|
+
if (SC.isPercentage(lH)) f.height = lH * dH;
|
|
602
|
+
else f.height = lH || 0;
|
|
549
603
|
}
|
|
550
604
|
}
|
|
551
605
|
|
|
552
606
|
f.x = Math.floor(f.x);
|
|
553
607
|
f.y = Math.floor(f.y);
|
|
554
|
-
if(f.height !== AUTO) f.height = Math.floor(f.height);
|
|
555
|
-
if(f.width !== AUTO) f.width = Math.floor(f.width);
|
|
608
|
+
if (f.height !== AUTO) f.height = Math.floor(f.height);
|
|
609
|
+
if (f.width !== AUTO) f.width = Math.floor(f.width);
|
|
556
610
|
|
|
557
611
|
// if width or height were set to auto and we have a layer, try lookup
|
|
558
612
|
if (f.height === AUTO || f.width === AUTO) {
|
|
@@ -573,30 +627,30 @@ SC.View.reopen(
|
|
|
573
627
|
|
|
574
628
|
// make sure the width/height fix min/max...
|
|
575
629
|
if (!SC.none(layout.maxHeight) && (f.height > layout.maxHeight)) {
|
|
576
|
-
f.height = layout.maxHeight
|
|
630
|
+
f.height = layout.maxHeight;
|
|
577
631
|
}
|
|
578
632
|
|
|
579
633
|
if (!SC.none(layout.minHeight) && (f.height < layout.minHeight)) {
|
|
580
|
-
f.height = layout.minHeight
|
|
634
|
+
f.height = layout.minHeight;
|
|
581
635
|
}
|
|
582
636
|
|
|
583
637
|
if (!SC.none(layout.maxWidth) && (f.width > layout.maxWidth)) {
|
|
584
|
-
f.width = layout.maxWidth
|
|
638
|
+
f.width = layout.maxWidth;
|
|
585
639
|
}
|
|
586
640
|
|
|
587
641
|
if (!SC.none(layout.minWidth) && (f.width < layout.minWidth)) {
|
|
588
|
-
f.width = layout.minWidth
|
|
642
|
+
f.width = layout.minWidth;
|
|
589
643
|
}
|
|
590
644
|
|
|
591
645
|
// make sure width/height are never < 0
|
|
592
|
-
if (f.height < 0) f.height = 0
|
|
593
|
-
if (f.width < 0) f.width = 0
|
|
646
|
+
if (f.height < 0) f.height = 0;
|
|
647
|
+
if (f.width < 0) f.width = 0;
|
|
594
648
|
|
|
595
649
|
return f;
|
|
596
650
|
}.enhance(),
|
|
597
651
|
|
|
598
|
-
computeParentDimensions: function(frame) {
|
|
599
|
-
var ret, pv = this.get('parentView'), pf = (pv) ? pv.get('frame') : null
|
|
652
|
+
computeParentDimensions: function (frame) {
|
|
653
|
+
var ret, pv = this.get('parentView'), pf = (pv) ? pv.get('frame') : null;
|
|
600
654
|
|
|
601
655
|
if (pf) {
|
|
602
656
|
ret = { width: pf.width, height: pf.height };
|
|
@@ -607,27 +661,26 @@ SC.View.reopen(
|
|
|
607
661
|
height: (f.top || 0) + (f.height || 0) + (f.bottom || 0)
|
|
608
662
|
};
|
|
609
663
|
}
|
|
610
|
-
return ret
|
|
664
|
+
return ret;
|
|
611
665
|
},
|
|
612
666
|
|
|
613
667
|
/**
|
|
614
668
|
The frame of the view including the borders
|
|
615
669
|
*/
|
|
616
|
-
borderFrame: function(){
|
|
670
|
+
borderFrame: function () {
|
|
617
671
|
var layout = this.get('layout'),
|
|
618
672
|
frame = this.get('frame'),
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
};
|
|
673
|
+
borderTop = this._effectiveBorderFor('borderTop', layout),
|
|
674
|
+
borderRight = this._effectiveBorderFor('borderRight', layout),
|
|
675
|
+
borderBottom = this._effectiveBorderFor('borderBottom', layout),
|
|
676
|
+
borderLeft = this._effectiveBorderFor('borderLeft', layout);
|
|
677
|
+
|
|
678
|
+
return frame ? {
|
|
679
|
+
x: frame.x - borderLeft,
|
|
680
|
+
y: frame.y - borderTop,
|
|
681
|
+
width: frame.width + borderLeft + borderRight,
|
|
682
|
+
height: frame.height + borderTop + borderBottom
|
|
683
|
+
} : null;
|
|
631
684
|
}.property('frame').cacheable(),
|
|
632
685
|
|
|
633
686
|
/**
|
|
@@ -640,14 +693,14 @@ SC.View.reopen(
|
|
|
640
693
|
@returns {void}
|
|
641
694
|
@test in viewDidResize
|
|
642
695
|
*/
|
|
643
|
-
parentViewDidResize: function() {
|
|
696
|
+
parentViewDidResize: function () {
|
|
644
697
|
var positionMayHaveChanged,
|
|
645
698
|
sizeMayHaveChanged;
|
|
646
699
|
|
|
647
700
|
// If this view uses static layout, our "do we think the frame changed?"
|
|
648
701
|
// result of isFixedLayout is not applicable and we simply have to assume
|
|
649
702
|
// that the frame may have changed.
|
|
650
|
-
sizeMayHaveChanged = this.useStaticLayout || !this.get('isFixedSize');
|
|
703
|
+
sizeMayHaveChanged = this.get('useStaticLayout') || !this.get('isFixedSize');
|
|
651
704
|
positionMayHaveChanged = !this.get('isFixedPosition');
|
|
652
705
|
|
|
653
706
|
if (sizeMayHaveChanged) {
|
|
@@ -659,8 +712,6 @@ SC.View.reopen(
|
|
|
659
712
|
}
|
|
660
713
|
},
|
|
661
714
|
|
|
662
|
-
|
|
663
|
-
|
|
664
715
|
/**
|
|
665
716
|
This method is invoked on your view when the view resizes due to a layout
|
|
666
717
|
change or potentially due to the parent view resizing (if your view’s size
|
|
@@ -673,12 +724,12 @@ SC.View.reopen(
|
|
|
673
724
|
|
|
674
725
|
@returns {void}
|
|
675
726
|
*/
|
|
676
|
-
viewDidResize: function() {
|
|
727
|
+
viewDidResize: function () {
|
|
677
728
|
this._viewFrameDidChange();
|
|
678
729
|
|
|
679
730
|
// Also notify our children.
|
|
680
|
-
var cv = this.childViews, len, idx, view
|
|
681
|
-
for (idx=0; idx<(len= cv.length); ++idx) {
|
|
731
|
+
var cv = this.childViews, len, idx, view;
|
|
732
|
+
for (idx = 0; idx < (len = cv.length); ++idx) {
|
|
682
733
|
view = cv[idx];
|
|
683
734
|
view.tryToPerform('parentViewDidResize');
|
|
684
735
|
}
|
|
@@ -690,9 +741,9 @@ SC.View.reopen(
|
|
|
690
741
|
This notifies the view that its frame property has changed,
|
|
691
742
|
then propagates those changes to its child views.
|
|
692
743
|
*/
|
|
693
|
-
_viewFrameDidChange: function() {
|
|
744
|
+
_viewFrameDidChange: function () {
|
|
694
745
|
this.notifyPropertyChange('frame');
|
|
695
|
-
this._sc_view_clippingFrameDidChange
|
|
746
|
+
this._callOnChildViews('_sc_view_clippingFrameDidChange');
|
|
696
747
|
},
|
|
697
748
|
|
|
698
749
|
// Implementation note: As a general rule, paired method calls, such as
|
|
@@ -702,7 +753,7 @@ SC.View.reopen(
|
|
|
702
753
|
//
|
|
703
754
|
// -> View A.beginXXX()
|
|
704
755
|
// -> View B.beginXXX()
|
|
705
|
-
// -> View C.
|
|
756
|
+
// -> View C.beginXXX()
|
|
706
757
|
// -> View D.beginXXX()
|
|
707
758
|
//
|
|
708
759
|
// ...later on, endXXX methods are called in reverse order of beginXXX...
|
|
@@ -722,17 +773,17 @@ SC.View.reopen(
|
|
|
722
773
|
@returns {SC.View} receiver
|
|
723
774
|
@test in viewDidResize
|
|
724
775
|
*/
|
|
725
|
-
beginLiveResize: function() {
|
|
776
|
+
beginLiveResize: function () {
|
|
726
777
|
// call before children have been notified...
|
|
727
|
-
if (this.willBeginLiveResize) this.willBeginLiveResize()
|
|
778
|
+
if (this.willBeginLiveResize) this.willBeginLiveResize();
|
|
728
779
|
|
|
729
780
|
// notify children in order
|
|
730
|
-
var ary = this.get('childViews'), len = ary.length, idx, view
|
|
731
|
-
for (idx=0; idx<len; ++idx) {
|
|
732
|
-
view = ary[idx]
|
|
781
|
+
var ary = this.get('childViews'), len = ary.length, idx, view;
|
|
782
|
+
for (idx = 0; idx < len; ++idx) {
|
|
783
|
+
view = ary[idx];
|
|
733
784
|
if (view.beginLiveResize) view.beginLiveResize();
|
|
734
785
|
}
|
|
735
|
-
return this
|
|
786
|
+
return this;
|
|
736
787
|
},
|
|
737
788
|
|
|
738
789
|
/**
|
|
@@ -743,25 +794,25 @@ SC.View.reopen(
|
|
|
743
794
|
@returns {SC.View} receiver
|
|
744
795
|
@test in viewDidResize
|
|
745
796
|
*/
|
|
746
|
-
endLiveResize: function() {
|
|
797
|
+
endLiveResize: function () {
|
|
747
798
|
// notify children in *reverse* order
|
|
748
|
-
var ary = this.get('childViews'), len = ary.length, idx, view
|
|
749
|
-
for (idx=len-1; idx>=0; --idx) { // loop backwards
|
|
750
|
-
view = ary[idx]
|
|
751
|
-
if (view.endLiveResize) view.endLiveResize()
|
|
799
|
+
var ary = this.get('childViews'), len = ary.length, idx, view;
|
|
800
|
+
for (idx = len - 1; idx >= 0; --idx) { // loop backwards
|
|
801
|
+
view = ary[idx];
|
|
802
|
+
if (view.endLiveResize) view.endLiveResize();
|
|
752
803
|
}
|
|
753
804
|
|
|
754
805
|
// call *after* all children have been notified...
|
|
755
|
-
if (this.didEndLiveResize) this.didEndLiveResize()
|
|
756
|
-
return this
|
|
806
|
+
if (this.didEndLiveResize) this.didEndLiveResize();
|
|
807
|
+
return this;
|
|
757
808
|
},
|
|
758
809
|
|
|
759
810
|
/**
|
|
760
811
|
The view responsible for laying out this view. The default version
|
|
761
812
|
returns the current parent view.
|
|
762
813
|
*/
|
|
763
|
-
layoutView: function() {
|
|
764
|
-
return this.get('parentView')
|
|
814
|
+
layoutView: function () {
|
|
815
|
+
return this.get('parentView');
|
|
765
816
|
}.property('parentView').cacheable(),
|
|
766
817
|
|
|
767
818
|
/**
|
|
@@ -777,87 +828,77 @@ SC.View.reopen(
|
|
|
777
828
|
|
|
778
829
|
@returns {SC.View} receiver
|
|
779
830
|
*/
|
|
780
|
-
layoutDidChange: function() {
|
|
781
|
-
|
|
782
|
-
// not, then there's no need to invalidate the frames of our child views.
|
|
783
|
-
var previousLayout = this._previousLayout,
|
|
784
|
-
currentLayout = this.get('layout'),
|
|
785
|
-
didResize = YES,
|
|
786
|
-
previousWidth, previousHeight, currentWidth, currentHeight;
|
|
787
|
-
|
|
831
|
+
layoutDidChange: function () {
|
|
832
|
+
var currentLayout = this.get('layout');
|
|
788
833
|
|
|
789
|
-
// Handle old style rotation
|
|
834
|
+
// Handle old style rotation.
|
|
790
835
|
if (!SC.none(currentLayout.rotate)) {
|
|
836
|
+
//@if (debug)
|
|
837
|
+
SC.Logger.warn('Developer Warning: Please set rotateX instead of rotate.');
|
|
838
|
+
//@endif
|
|
791
839
|
if (SC.none(currentLayout.rotateX)) {
|
|
792
840
|
currentLayout.rotateX = currentLayout.rotate;
|
|
793
|
-
SC.Logger.warn('Please set rotateX instead of rotate');
|
|
794
841
|
}
|
|
795
|
-
}
|
|
796
|
-
if (!SC.none(currentLayout.rotateX)) {
|
|
797
|
-
currentLayout.rotate = currentLayout.rotateX;
|
|
798
|
-
} else {
|
|
799
842
|
delete currentLayout.rotate;
|
|
800
843
|
}
|
|
801
844
|
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
845
|
+
// Optimize notifications depending on if we resized or just moved.
|
|
846
|
+
this._checkForResize();
|
|
847
|
+
|
|
848
|
+
// Notify layoutView/parentView, unless we are transitioning.
|
|
849
|
+
var layoutView = this.get('layoutView');
|
|
850
|
+
if (layoutView) {
|
|
851
|
+
layoutView.set('childViewsNeedLayout', YES);
|
|
852
|
+
layoutView.layoutDidChangeFor(this);
|
|
853
|
+
|
|
854
|
+
// Check if childViewsNeedLayout is still true.
|
|
855
|
+
if (layoutView.get('childViewsNeedLayout')) {
|
|
856
|
+
layoutView.invokeOnce(layoutView.layoutChildViewsIfNeeded);
|
|
814
857
|
}
|
|
858
|
+
} else {
|
|
859
|
+
this.invokeOnce(this.updateLayout);
|
|
815
860
|
}
|
|
816
861
|
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
862
|
+
return this;
|
|
863
|
+
},
|
|
864
|
+
|
|
865
|
+
/** @private */
|
|
866
|
+
_checkForResize: function () {
|
|
867
|
+
// Did our layout change in a way that could cause us to be resized? If
|
|
868
|
+
// not, then there's no need to invalidate the frames of our child views.
|
|
869
|
+
var previousLayout = this._previousLayout,
|
|
870
|
+
currentLayout = this.get('layout'),
|
|
871
|
+
didResize = true;
|
|
872
|
+
|
|
873
|
+
// We test the new layout to see if we believe it will affect the view's frame.
|
|
874
|
+
// Since all the child view frames may depend on the parent's frame, it's
|
|
875
|
+
// best only to notify a frame change when it actually happens.
|
|
876
|
+
if (previousLayout && !SC.none(previousLayout.width) && !SC.none(previousLayout.height) && previousLayout !== currentLayout) {
|
|
877
|
+
var currentTest,
|
|
878
|
+
previousTest;
|
|
879
|
+
|
|
880
|
+
// This code already exists in _adjustForBorder, so we use it to test the effective width/height.
|
|
881
|
+
// TODO: consider checking min/max sizes
|
|
882
|
+
previousTest = this._adjustForBorder({ x: 0, y: 0, width: previousLayout.width, height: previousLayout.height },
|
|
883
|
+
previousLayout);
|
|
884
|
+
currentTest = this._adjustForBorder({ x: 0, y: 0, width: currentLayout.width || 0, height: currentLayout.height || 0 },
|
|
885
|
+
currentLayout);
|
|
886
|
+
|
|
887
|
+
if (previousTest.width === currentTest.width && previousTest.height === currentTest.height) {
|
|
888
|
+
didResize = false;
|
|
832
889
|
}
|
|
833
890
|
}
|
|
834
891
|
|
|
835
|
-
this.beginPropertyChanges() ;
|
|
836
|
-
this.notifyPropertyChange('hasAcceleratedLayer');
|
|
837
|
-
this.notifyPropertyChange('layoutStyle') ;
|
|
838
892
|
if (didResize) {
|
|
839
893
|
this.viewDidResize();
|
|
840
|
-
}
|
|
841
|
-
|
|
842
|
-
//
|
|
843
|
-
// viewDidResize() handles this in the other case.
|
|
894
|
+
} else {
|
|
895
|
+
// Even if we didn't resize, our frame may have changed
|
|
896
|
+
// TODO: consider checking for position changes by testing the resulting frame against the cached frame. This is difficult to do.
|
|
844
897
|
this._viewFrameDidChange();
|
|
845
898
|
}
|
|
846
|
-
this.endPropertyChanges() ;
|
|
847
|
-
|
|
848
|
-
// notify layoutView...
|
|
849
|
-
var layoutView = this.get('layoutView');
|
|
850
|
-
if (layoutView) {
|
|
851
|
-
layoutView.set('childViewsNeedLayout', YES);
|
|
852
|
-
layoutView.layoutDidChangeFor(this) ;
|
|
853
|
-
if (layoutView.get('childViewsNeedLayout')) {
|
|
854
|
-
layoutView.invokeOnce(layoutView.layoutChildViewsIfNeeded);
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
899
|
|
|
900
|
+
// Cache the last layout to fine-tune notifications when the layout changes.
|
|
858
901
|
this._previousLayout = currentLayout;
|
|
859
|
-
|
|
860
|
-
return this ;
|
|
861
902
|
},
|
|
862
903
|
|
|
863
904
|
/**
|
|
@@ -865,7 +906,7 @@ SC.View.reopen(
|
|
|
865
906
|
views. Normally this property is set automatically whenever the layout
|
|
866
907
|
property for a child view changes.
|
|
867
908
|
|
|
868
|
-
@
|
|
909
|
+
@type Boolean
|
|
869
910
|
*/
|
|
870
911
|
childViewsNeedLayout: NO,
|
|
871
912
|
|
|
@@ -888,8 +929,10 @@ SC.View.reopen(
|
|
|
888
929
|
@param {SC.View} childView the view whose layout has changed.
|
|
889
930
|
@returns {void}
|
|
890
931
|
*/
|
|
891
|
-
layoutDidChangeFor: function(childView) {
|
|
892
|
-
var set = this._needLayoutViews
|
|
932
|
+
layoutDidChangeFor: function (childView) {
|
|
933
|
+
var set = this._needLayoutViews;
|
|
934
|
+
|
|
935
|
+
// Track this view.
|
|
893
936
|
if (!set) set = this._needLayoutViews = SC.CoreSet.create();
|
|
894
937
|
set.add(childView);
|
|
895
938
|
},
|
|
@@ -898,17 +941,18 @@ SC.View.reopen(
|
|
|
898
941
|
Called your layout method if the view currently needs to layout some
|
|
899
942
|
child views.
|
|
900
943
|
|
|
901
|
-
@param {Boolean}
|
|
944
|
+
@param {Boolean} force if true assume view is visible even if it is not.
|
|
902
945
|
@returns {SC.View} receiver
|
|
903
946
|
@test in layoutChildViews
|
|
904
947
|
*/
|
|
905
|
-
layoutChildViewsIfNeeded: function(
|
|
906
|
-
if (
|
|
907
|
-
|
|
948
|
+
layoutChildViewsIfNeeded: function (force) {
|
|
949
|
+
if (this.get('childViewsNeedLayout')) {
|
|
950
|
+
this.layoutChildViews(force);
|
|
951
|
+
|
|
908
952
|
this.set('childViewsNeedLayout', NO);
|
|
909
|
-
this.layoutChildViews();
|
|
910
953
|
}
|
|
911
|
-
|
|
954
|
+
|
|
955
|
+
return this;
|
|
912
956
|
},
|
|
913
957
|
|
|
914
958
|
/**
|
|
@@ -917,19 +961,90 @@ SC.View.reopen(
|
|
|
917
961
|
own layout updating method if you want, though usually the better option
|
|
918
962
|
is to override the layout method from the parent view.
|
|
919
963
|
|
|
920
|
-
The default implementation of this method simply calls the
|
|
964
|
+
The default implementation of this method simply calls the updateLayout()
|
|
921
965
|
method on the views that need layout.
|
|
922
966
|
|
|
967
|
+
@param {Boolean} force Force the update to the layer's layout style immediately even if the view is not in a shown state. Otherwise the style will be updated when the view returns to a shown state.
|
|
923
968
|
@returns {void}
|
|
924
969
|
*/
|
|
925
|
-
layoutChildViews: function() {
|
|
926
|
-
var
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
970
|
+
layoutChildViews: function (force) {
|
|
971
|
+
var childViewLayout = this.childViewLayout,
|
|
972
|
+
set, len, i;
|
|
973
|
+
|
|
974
|
+
// Allow the child view layout plugin to layout all child views.
|
|
975
|
+
if (childViewLayout) {
|
|
976
|
+
// Adjust all other child views right now.
|
|
977
|
+
// Note: this will add the affected child views to the set so they will be updated only once in this run loop
|
|
978
|
+
childViewLayout.layoutChildViews(this);
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
// Retreive these values after they may have been updated by adjustments by
|
|
982
|
+
// the childViewLayout plugin.
|
|
983
|
+
set = this._needLayoutViews;
|
|
984
|
+
if (set) {
|
|
985
|
+
for (i = 0, len = set.length; i < len; ++i) {
|
|
986
|
+
set[i].updateLayout(force);
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
set.clear(); // reset & reuse
|
|
990
|
+
}
|
|
991
|
+
},
|
|
992
|
+
|
|
993
|
+
/** @private Called when the child view layout plugin or options change. */
|
|
994
|
+
_cvl_childViewLayoutDidChange: function () {
|
|
995
|
+
this.set('childViewsNeedLayout', true);
|
|
996
|
+
|
|
997
|
+
// Filter the input channel.
|
|
998
|
+
this.invokeOnce(this.layoutChildViewsIfNeeded);
|
|
999
|
+
},
|
|
1000
|
+
|
|
1001
|
+
/** @private Called when the child views change. */
|
|
1002
|
+
_cvl_childViewsDidChange: function () {
|
|
1003
|
+
this._cvl_teardownChildViewsLiveLayout();
|
|
1004
|
+
this._cvl_setupChildViewsLiveLayout();
|
|
1005
|
+
|
|
1006
|
+
this.set('childViewsNeedLayout', true);
|
|
1007
|
+
|
|
1008
|
+
// Filter the input channel.
|
|
1009
|
+
this.invokeOnce(this.layoutChildViewsIfNeeded);
|
|
1010
|
+
},
|
|
1011
|
+
|
|
1012
|
+
/** @private Add observers to the child views for automatic child view layout. */
|
|
1013
|
+
_cvl_setupChildViewsLiveLayout: function () {
|
|
1014
|
+
var childViewLayout = this.childViewLayout,
|
|
1015
|
+
childViews,
|
|
1016
|
+
childLayoutProperties = childViewLayout.childLayoutProperties || [];
|
|
1017
|
+
|
|
1018
|
+
// Create a reference to the current child views so that we can clean them if they change.
|
|
1019
|
+
childViews = this._cvl_childViews = this.get('childViews');
|
|
1020
|
+
for (var i = 0, len = childLayoutProperties.length; i < len; i++) {
|
|
1021
|
+
var observedProperty = childLayoutProperties[i];
|
|
1022
|
+
|
|
1023
|
+
for (var j = 0, jlen = childViews.get('length'); j < jlen; j++) {
|
|
1024
|
+
var childView = childViews.objectAt(j);
|
|
1025
|
+
if (!childView.get('useAbsoluteLayout') && !childView.get('useStaticLayout')) {
|
|
1026
|
+
childView.addObserver(observedProperty, this, this._cvl_childViewLayoutDidChange);
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
1030
|
+
},
|
|
1031
|
+
|
|
1032
|
+
/** @private Remove observers from the child views for automatic child view layout. */
|
|
1033
|
+
_cvl_teardownChildViewsLiveLayout: function () {
|
|
1034
|
+
var childViewLayout = this.childViewLayout,
|
|
1035
|
+
childViews = this._cvl_childViews || [],
|
|
1036
|
+
childLayoutProperties = childViewLayout.childLayoutProperties || [];
|
|
1037
|
+
|
|
1038
|
+
for (var i = 0, len = childLayoutProperties.length; i < len; i++) {
|
|
1039
|
+
var observedProperty = childLayoutProperties[i];
|
|
1040
|
+
|
|
1041
|
+
for (var j = 0, jlen = childViews.get('length'); j < jlen; j++) {
|
|
1042
|
+
var childView = childViews.objectAt(j);
|
|
1043
|
+
if (!childView.get('useAbsoluteLayout') && !childView.get('useStaticLayout')) {
|
|
1044
|
+
childView.removeObserver(observedProperty, this, this._cvl_childViewLayoutDidChange);
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
931
1047
|
}
|
|
932
|
-
set.clear(); // reset & reuse
|
|
933
1048
|
},
|
|
934
1049
|
|
|
935
1050
|
/**
|
|
@@ -941,22 +1056,14 @@ SC.View.reopen(
|
|
|
941
1056
|
You will not usually override this method, but you may call it if you
|
|
942
1057
|
implement layoutChildViews() in a view yourself.
|
|
943
1058
|
|
|
1059
|
+
@param {Boolean} force Force the update to the layer's layout style immediately even if the view is not in a shown state. Otherwise the style will be updated when the view returns to a shown state.
|
|
944
1060
|
@returns {SC.View} receiver
|
|
945
1061
|
@test in layoutChildViews
|
|
946
1062
|
*/
|
|
947
|
-
updateLayout: function() {
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
this.renderLayout(context, NO);
|
|
952
|
-
context.update();
|
|
953
|
-
|
|
954
|
-
// If this view uses static layout, then notify if the frame changed.
|
|
955
|
-
// (viewDidResize will do a comparison)
|
|
956
|
-
if (this.useStaticLayout) this.viewDidResize();
|
|
957
|
-
}
|
|
958
|
-
layer = null ;
|
|
959
|
-
return this ;
|
|
1063
|
+
updateLayout: function (force) {
|
|
1064
|
+
this._doUpdateLayout(force);
|
|
1065
|
+
|
|
1066
|
+
return this;
|
|
960
1067
|
},
|
|
961
1068
|
|
|
962
1069
|
/**
|
|
@@ -969,25 +1076,245 @@ SC.View.reopen(
|
|
|
969
1076
|
@returns {void}
|
|
970
1077
|
@test in layoutChildViews
|
|
971
1078
|
*/
|
|
972
|
-
renderLayout: function(context
|
|
973
|
-
this.get('
|
|
974
|
-
context.addStyle(this.get('layoutStyle'));
|
|
975
|
-
this.get('layoutStyleCalculator').didRenderAnimations();
|
|
1079
|
+
renderLayout: function (context) {
|
|
1080
|
+
context.setStyle(this.get('layoutStyle'));
|
|
976
1081
|
},
|
|
977
1082
|
|
|
978
|
-
|
|
979
|
-
original(context, firstTime);
|
|
980
|
-
this.renderLayout(context, firstTime);
|
|
981
|
-
}.enhance(),
|
|
982
|
-
|
|
983
|
-
applyAttributesToContext: function(original, context) {
|
|
1083
|
+
applyAttributesToContext: function (original, context) {
|
|
984
1084
|
original(context);
|
|
985
1085
|
|
|
1086
|
+
// Have to pass 'true' for second argument for legacy.
|
|
1087
|
+
this.renderLayout(context, true);
|
|
1088
|
+
|
|
986
1089
|
if (this.get('useStaticLayout')) { context.addClass('sc-static-layout'); }
|
|
987
|
-
|
|
988
|
-
|
|
1090
|
+
|
|
1091
|
+
var backgroundColor = this.get('backgroundColor');
|
|
1092
|
+
if (backgroundColor) {
|
|
1093
|
+
context.setStyle('backgroundColor', backgroundColor);
|
|
1094
|
+
}
|
|
1095
|
+
}.enhance(),
|
|
1096
|
+
|
|
1097
|
+
// ------------------------------------------------------------------------
|
|
1098
|
+
// Child View Layouts
|
|
1099
|
+
//
|
|
1100
|
+
|
|
1101
|
+
/**
|
|
1102
|
+
The child view layout plugin to use when laying out child views.
|
|
1103
|
+
|
|
1104
|
+
You can set this property to a child layout plugin object to
|
|
1105
|
+
automatically set and adjust the layouts of this view's child views
|
|
1106
|
+
according to some specific layout style. For instance, SproutCore includes
|
|
1107
|
+
two such plugins, SC.View.VERTICAL_STACK and SC.View.HORIZONTAL_STACK.
|
|
1108
|
+
|
|
1109
|
+
SC.View.VERTICAL_STACK will arrange child views in order in a vertical
|
|
1110
|
+
stack, which only requires that the height of each child view be specified.
|
|
1111
|
+
Likewise, SC.View.HORIZONTAL_STACK does the same in the horizontal
|
|
1112
|
+
direction, which requires that the width of each child view be specified.
|
|
1113
|
+
|
|
1114
|
+
Where child layout plugins are extremely useful, besides simplifying
|
|
1115
|
+
the amount of layout code you need to write, is that they can update the
|
|
1116
|
+
layouts automatically as things change. For more details and examples,
|
|
1117
|
+
please see the documentation for SC.View.VERTICAL_STACK and
|
|
1118
|
+
SC.View.HORIZONTAL_STACK.
|
|
1119
|
+
|
|
1120
|
+
To define your own child view layout plugin, simply create an object that
|
|
1121
|
+
conforms to the SC.ChildViewLayoutProtocol protocol.
|
|
1122
|
+
|
|
1123
|
+
**Note** This should only be set once and is not bindable.
|
|
1124
|
+
|
|
1125
|
+
@type Object
|
|
1126
|
+
@default null
|
|
1127
|
+
*/
|
|
1128
|
+
childViewLayout: null,
|
|
1129
|
+
|
|
1130
|
+
/**
|
|
1131
|
+
The options for the given child view layout plugin.
|
|
1132
|
+
|
|
1133
|
+
These options are specific to the current child layout plugin being used and
|
|
1134
|
+
are used to modify the applied layouts. For example, SC.View.VERTICAL_STACK
|
|
1135
|
+
accepts options like:
|
|
1136
|
+
|
|
1137
|
+
childViewLayoutOptions: {
|
|
1138
|
+
paddingAfter: 20,
|
|
1139
|
+
paddingBefore: 20,
|
|
1140
|
+
spacing: 10
|
|
1141
|
+
}
|
|
1142
|
+
|
|
1143
|
+
To determine what options may be used for a given plugin and to see what the
|
|
1144
|
+
default options are, please refer to the documentation for the child layout
|
|
1145
|
+
plugin being used.
|
|
1146
|
+
|
|
1147
|
+
@type Object
|
|
1148
|
+
@default null
|
|
1149
|
+
*/
|
|
1150
|
+
childViewLayoutOptions: null,
|
|
1151
|
+
|
|
1152
|
+
/**
|
|
1153
|
+
Whether the view and its child views should be monitored for changes that
|
|
1154
|
+
affect the current child view layout.
|
|
1155
|
+
|
|
1156
|
+
When `true` and using a childViewLayout plugin, the view and its child views
|
|
1157
|
+
will be observed for any changes that would affect the layout of all the
|
|
1158
|
+
child views. For example, if `isChildViewLayout` is true and using
|
|
1159
|
+
SC.View.VERTICAL_STACK, if any child view's height or visibility changes
|
|
1160
|
+
all of the child views will be re-adjusted.
|
|
1161
|
+
|
|
1162
|
+
If you only want to automatically layout the child views once, you can
|
|
1163
|
+
set this to `false` to improve performance.
|
|
1164
|
+
|
|
1165
|
+
@type Boolean
|
|
1166
|
+
@default true
|
|
1167
|
+
*/
|
|
1168
|
+
isChildViewLayoutLive: true,
|
|
1169
|
+
|
|
1170
|
+
// ------------------------------------------------------------------------
|
|
1171
|
+
// Statechart
|
|
1172
|
+
//
|
|
1173
|
+
|
|
1174
|
+
/** @private Update this view's layout action. */
|
|
1175
|
+
_doUpdateLayout: function (force) {
|
|
1176
|
+
var isRendered = this.get('_isRendered'),
|
|
1177
|
+
isVisibleInWindow = this.get('isVisibleInWindow'),
|
|
1178
|
+
handled = true;
|
|
1179
|
+
|
|
1180
|
+
if (isRendered) {
|
|
1181
|
+
if (isVisibleInWindow || force) {
|
|
1182
|
+
// Only in the visible states do we allow updates without being forced.
|
|
1183
|
+
this._doUpdateLayoutStyle();
|
|
1184
|
+
} else {
|
|
1185
|
+
// Otherwise mark the view as needing an update when we enter a shown state again.
|
|
1186
|
+
this._layoutStyleNeedsUpdate = true;
|
|
1187
|
+
}
|
|
1188
|
+
} else {
|
|
1189
|
+
handled = false;
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
return handled;
|
|
1193
|
+
},
|
|
1194
|
+
|
|
1195
|
+
/** @private */
|
|
1196
|
+
_doUpdateLayoutStyle: function () {
|
|
1197
|
+
var context;
|
|
1198
|
+
|
|
1199
|
+
context = this.renderContext(this.get('layer'));
|
|
1200
|
+
context.setStyle(this.get('layoutStyle'));
|
|
1201
|
+
context.update();
|
|
1202
|
+
|
|
1203
|
+
// Reset that an update is required.
|
|
1204
|
+
this._layoutStyleNeedsUpdate = false;
|
|
1205
|
+
|
|
1206
|
+
// Notify updated.
|
|
1207
|
+
this._updatedLayout();
|
|
1208
|
+
},
|
|
1209
|
+
|
|
1210
|
+
/** @private Enhance. */
|
|
1211
|
+
_executeQueuedUpdates: function (original) {
|
|
1212
|
+
original();
|
|
1213
|
+
|
|
1214
|
+
// Update the layout style of the layer if necessary.
|
|
1215
|
+
if (this._layoutStyleNeedsUpdate) {
|
|
1216
|
+
this._doUpdateLayoutStyle();
|
|
1217
|
+
}
|
|
1218
|
+
}.enhance(),
|
|
1219
|
+
|
|
1220
|
+
/** @private Override: Notify on attached (avoids notify of frame changed). */
|
|
1221
|
+
_notifyAttached: function () {
|
|
1222
|
+
// If we are using static layout then we don't know the frame until appended to the document.
|
|
1223
|
+
if (this.get('useStaticLayout') || !this.get('isFixedLayout')) {
|
|
1224
|
+
// We call viewDidResize so that it calls parentViewDidResize on all child views.
|
|
1225
|
+
this.viewDidResize();
|
|
989
1226
|
}
|
|
990
|
-
|
|
1227
|
+
|
|
1228
|
+
// Notify.
|
|
1229
|
+
if (this.didAppendToDocument) { this.didAppendToDocument(); }
|
|
1230
|
+
},
|
|
1231
|
+
|
|
1232
|
+
/** @private Override: The 'adopted' event (uses _checkForResize so our childViews are notified if our frame changes). */
|
|
1233
|
+
_adopted: function (beforeView) {
|
|
1234
|
+
// Our frame may change once we've been adopted to a parent.
|
|
1235
|
+
this._checkForResize();
|
|
1236
|
+
},
|
|
1237
|
+
|
|
1238
|
+
/** @private Extension: The 'orphaned' event. */
|
|
1239
|
+
_orphaned: function (oldParentView) {
|
|
1240
|
+
sc_super();
|
|
1241
|
+
|
|
1242
|
+
// Our frame may change once we've been removed from a parent.
|
|
1243
|
+
if (!this.isDestroyed) { this._checkForResize(); }
|
|
1244
|
+
},
|
|
1245
|
+
|
|
1246
|
+
/** @private Extension: The 'updatedContent' event. */
|
|
1247
|
+
_updatedContent: function () {
|
|
1248
|
+
sc_super();
|
|
1249
|
+
|
|
1250
|
+
// If this view uses static layout, then notify that the frame (likely)
|
|
1251
|
+
// changed.
|
|
1252
|
+
if (this.get('useStaticLayout')) { this.viewDidResize(); }
|
|
1253
|
+
},
|
|
1254
|
+
|
|
1255
|
+
/** @private The 'updatedLayout' event. */
|
|
1256
|
+
_updatedLayout: function () {
|
|
1257
|
+
// Notify.
|
|
1258
|
+
this.didRenderAnimations();
|
|
1259
|
+
},
|
|
1260
|
+
|
|
1261
|
+
// ------------------------------------------------------------------------
|
|
1262
|
+
// Transitions
|
|
1263
|
+
//
|
|
1264
|
+
|
|
1265
|
+
/**
|
|
1266
|
+
The transition plugin to use when this view is moved or resized by adjusting
|
|
1267
|
+
its layout.
|
|
1268
|
+
|
|
1269
|
+
SC.CoreView uses a pluggable transition architecture where the transition
|
|
1270
|
+
setup, execution and cleanup can be handled by a plugin. This allows you
|
|
1271
|
+
to create complex transition animations and share them across all your views
|
|
1272
|
+
with only a single line of code.
|
|
1273
|
+
|
|
1274
|
+
There are a number of pre-built transition adjust plugins available in
|
|
1275
|
+
the SproutCore foundation framework:
|
|
1276
|
+
|
|
1277
|
+
SC.View.SMOOTH_ADJUST
|
|
1278
|
+
SC.View.BOUNCE_ADJUST
|
|
1279
|
+
SC.View.SPRING_ADJUST
|
|
1280
|
+
|
|
1281
|
+
To create a custom transition plugin simply create a regular JavaScript
|
|
1282
|
+
object that conforms to the SC.ViewTransitionProtocol protocol.
|
|
1283
|
+
|
|
1284
|
+
NOTE: When creating custom transition adjust plugins, be aware that SC.View
|
|
1285
|
+
will not call the `setup` method of the plugin, only the `run` method.
|
|
1286
|
+
|
|
1287
|
+
@type Object (SC.ViewTransitionProtocol)
|
|
1288
|
+
@default null
|
|
1289
|
+
@since Version 1.10
|
|
1290
|
+
*/
|
|
1291
|
+
transitionAdjust: null,
|
|
1292
|
+
|
|
1293
|
+
/**
|
|
1294
|
+
The options for the given `transitionAdjust` plugin.
|
|
1295
|
+
|
|
1296
|
+
These options are specific to the current transition plugin used and are
|
|
1297
|
+
used to modify the transition animation. To determine what options
|
|
1298
|
+
may be used for a given plugin and to see what the default options are,
|
|
1299
|
+
see the documentation for the transition plugin being used.
|
|
1300
|
+
|
|
1301
|
+
Most transitions will accept a duration and timing option, but may
|
|
1302
|
+
also use other options. For example, SC.View.BOUNCE_ADJUST accepts options
|
|
1303
|
+
like:
|
|
1304
|
+
|
|
1305
|
+
transitionAdjustOptions: {
|
|
1306
|
+
bounciness: 0.5, // how much the adjustment should bounce back each time
|
|
1307
|
+
bounces: 4, // the number of bounces
|
|
1308
|
+
duration: 0.25,
|
|
1309
|
+
delay: 1
|
|
1310
|
+
}
|
|
1311
|
+
|
|
1312
|
+
@type Object
|
|
1313
|
+
@default null
|
|
1314
|
+
@since Version 1.10
|
|
1315
|
+
*/
|
|
1316
|
+
transitionAdjustOptions: null
|
|
1317
|
+
|
|
991
1318
|
});
|
|
992
1319
|
|
|
993
1320
|
SC.View.mixin(
|
|
@@ -996,7 +1323,7 @@ SC.View.mixin(
|
|
|
996
1323
|
/**
|
|
997
1324
|
Convert any layout to a Top, Left, Width, Height layout
|
|
998
1325
|
*/
|
|
999
|
-
convertLayoutToAnchoredLayout: function(layout, parentFrame){
|
|
1326
|
+
convertLayoutToAnchoredLayout: function (layout, parentFrame) {
|
|
1000
1327
|
var ret = {top: 0, left: 0, width: parentFrame.width, height: parentFrame.height},
|
|
1001
1328
|
pFW = parentFrame.width, pFH = parentFrame.height, //shortHand for parentDimensions
|
|
1002
1329
|
lR = layout.right,
|
|
@@ -1011,14 +1338,14 @@ SC.View.mixin(
|
|
|
1011
1338
|
// X Conversion
|
|
1012
1339
|
// handle left aligned and left/right
|
|
1013
1340
|
if (!SC.none(lL)) {
|
|
1014
|
-
if(SC.isPercentage(lL)) ret.left = lL*pFW;
|
|
1341
|
+
if (SC.isPercentage(lL)) ret.left = lL * pFW;
|
|
1015
1342
|
else ret.left = lL;
|
|
1016
1343
|
if (lW !== undefined) {
|
|
1017
|
-
if(lW === SC.LAYOUT_AUTO) ret.width = SC.LAYOUT_AUTO
|
|
1018
|
-
else if(SC.isPercentage(lW)) ret.width = lW*pFW
|
|
1019
|
-
else ret.width = lW
|
|
1344
|
+
if (lW === SC.LAYOUT_AUTO) ret.width = SC.LAYOUT_AUTO;
|
|
1345
|
+
else if (SC.isPercentage(lW)) ret.width = lW * pFW;
|
|
1346
|
+
else ret.width = lW;
|
|
1020
1347
|
} else {
|
|
1021
|
-
if (lR && SC.isPercentage(lR)) ret.width = pFW - ret.left - (lR*pFW);
|
|
1348
|
+
if (lR && SC.isPercentage(lR)) ret.width = pFW - ret.left - (lR * pFW);
|
|
1022
1349
|
else ret.width = pFW - ret.left - (lR || 0);
|
|
1023
1350
|
}
|
|
1024
1351
|
|
|
@@ -1028,14 +1355,14 @@ SC.View.mixin(
|
|
|
1028
1355
|
// if no width, calculate it from the parent frame
|
|
1029
1356
|
if (SC.none(lW)) {
|
|
1030
1357
|
ret.left = 0;
|
|
1031
|
-
if(lR && SC.isPercentage(lR)) ret.width = pFW - (lR*pFW);
|
|
1358
|
+
if (lR && SC.isPercentage(lR)) ret.width = pFW - (lR * pFW);
|
|
1032
1359
|
else ret.width = pFW - (lR || 0);
|
|
1033
1360
|
|
|
1034
1361
|
// If has width, calculate the left anchor from the width and right and parent frame
|
|
1035
1362
|
} else {
|
|
1036
|
-
if(lW === SC.LAYOUT_AUTO) ret.width = SC.LAYOUT_AUTO
|
|
1363
|
+
if (lW === SC.LAYOUT_AUTO) ret.width = SC.LAYOUT_AUTO;
|
|
1037
1364
|
else {
|
|
1038
|
-
if (SC.isPercentage(lW)) ret.width = lW*pFW;
|
|
1365
|
+
if (SC.isPercentage(lW)) ret.width = lW * pFW;
|
|
1039
1366
|
else ret.width = lW;
|
|
1040
1367
|
if (SC.isPercentage(lR)) ret.left = pFW - (ret.width + lR);
|
|
1041
1368
|
else ret.left = pFW - (ret.width + lR);
|
|
@@ -1044,18 +1371,18 @@ SC.View.mixin(
|
|
|
1044
1371
|
|
|
1045
1372
|
// handle centered
|
|
1046
1373
|
} else if (!SC.none(lcX)) {
|
|
1047
|
-
if(lW && SC.isPercentage(lW)) ret.width = (lW*pFW)
|
|
1048
|
-
else ret.width = (lW || 0)
|
|
1049
|
-
ret.left = ((pFW - ret.width)/2);
|
|
1050
|
-
if (SC.isPercentage(lcX)) ret.left = ret.left + lcX*pFW;
|
|
1374
|
+
if (lW && SC.isPercentage(lW)) ret.width = (lW * pFW);
|
|
1375
|
+
else ret.width = (lW || 0);
|
|
1376
|
+
ret.left = ((pFW - ret.width) / 2);
|
|
1377
|
+
if (SC.isPercentage(lcX)) ret.left = ret.left + lcX * pFW;
|
|
1051
1378
|
else ret.left = ret.left + lcX;
|
|
1052
1379
|
|
|
1053
1380
|
// if width defined, assume left of zero
|
|
1054
1381
|
} else if (!SC.none(lW)) {
|
|
1055
1382
|
ret.left = 0;
|
|
1056
|
-
if(lW === SC.LAYOUT_AUTO) ret.width = SC.LAYOUT_AUTO
|
|
1383
|
+
if (lW === SC.LAYOUT_AUTO) ret.width = SC.LAYOUT_AUTO;
|
|
1057
1384
|
else {
|
|
1058
|
-
if(SC.isPercentage(lW)) ret.width = lW*pFW;
|
|
1385
|
+
if (SC.isPercentage(lW)) ret.width = lW * pFW;
|
|
1059
1386
|
else ret.width = lW;
|
|
1060
1387
|
}
|
|
1061
1388
|
|
|
@@ -1066,21 +1393,21 @@ SC.View.mixin(
|
|
|
1066
1393
|
}
|
|
1067
1394
|
|
|
1068
1395
|
// handle min/max
|
|
1069
|
-
if (layout.minWidth !== undefined) ret.minWidth = layout.minWidth
|
|
1070
|
-
if (layout.maxWidth !== undefined) ret.maxWidth = layout.maxWidth
|
|
1396
|
+
if (layout.minWidth !== undefined) ret.minWidth = layout.minWidth;
|
|
1397
|
+
if (layout.maxWidth !== undefined) ret.maxWidth = layout.maxWidth;
|
|
1071
1398
|
|
|
1072
1399
|
// Y Conversion
|
|
1073
1400
|
// handle left aligned and top/bottom
|
|
1074
1401
|
if (!SC.none(lT)) {
|
|
1075
|
-
if(SC.isPercentage(lT)) ret.top = lT*pFH;
|
|
1402
|
+
if (SC.isPercentage(lT)) ret.top = lT * pFH;
|
|
1076
1403
|
else ret.top = lT;
|
|
1077
1404
|
if (lH !== undefined) {
|
|
1078
|
-
if(lH === SC.LAYOUT_AUTO) ret.height = SC.LAYOUT_AUTO
|
|
1079
|
-
else if (SC.isPercentage(lH)) ret.height = lH*pFH;
|
|
1080
|
-
else ret.height = lH
|
|
1405
|
+
if (lH === SC.LAYOUT_AUTO) ret.height = SC.LAYOUT_AUTO;
|
|
1406
|
+
else if (SC.isPercentage(lH)) ret.height = lH * pFH;
|
|
1407
|
+
else ret.height = lH;
|
|
1081
1408
|
} else {
|
|
1082
1409
|
ret.height = pFH - ret.top;
|
|
1083
|
-
if(lB && SC.isPercentage(lB)) ret.height = ret.height - (lB*pFH);
|
|
1410
|
+
if (lB && SC.isPercentage(lB)) ret.height = ret.height - (lB * pFH);
|
|
1084
1411
|
else ret.height = ret.height - (lB || 0);
|
|
1085
1412
|
}
|
|
1086
1413
|
|
|
@@ -1090,34 +1417,34 @@ SC.View.mixin(
|
|
|
1090
1417
|
// if no height, calculate it from the parent frame
|
|
1091
1418
|
if (SC.none(lH)) {
|
|
1092
1419
|
ret.top = 0;
|
|
1093
|
-
if (lB && SC.isPercentage(lB)) ret.height = pFH - (lB*pFH);
|
|
1420
|
+
if (lB && SC.isPercentage(lB)) ret.height = pFH - (lB * pFH);
|
|
1094
1421
|
else ret.height = pFH - (lB || 0);
|
|
1095
1422
|
|
|
1096
1423
|
// If has height, calculate the top anchor from the height and bottom and parent frame
|
|
1097
1424
|
} else {
|
|
1098
|
-
if(lH === SC.LAYOUT_AUTO) ret.height = SC.LAYOUT_AUTO
|
|
1425
|
+
if (lH === SC.LAYOUT_AUTO) ret.height = SC.LAYOUT_AUTO;
|
|
1099
1426
|
else {
|
|
1100
|
-
if (SC.isPercentage(lH)) ret.height = lH*pFH;
|
|
1427
|
+
if (SC.isPercentage(lH)) ret.height = lH * pFH;
|
|
1101
1428
|
else ret.height = lH;
|
|
1102
1429
|
ret.top = pFH - ret.height;
|
|
1103
|
-
if (SC.isPercentage(lB)) ret.top = ret.top - (lB*pFH);
|
|
1430
|
+
if (SC.isPercentage(lB)) ret.top = ret.top - (lB * pFH);
|
|
1104
1431
|
else ret.top = ret.top - lB;
|
|
1105
1432
|
}
|
|
1106
1433
|
}
|
|
1107
1434
|
|
|
1108
1435
|
// handle centered
|
|
1109
1436
|
} else if (!SC.none(lcY)) {
|
|
1110
|
-
if(lH && SC.isPercentage(lH)) ret.height = (lH*pFH)
|
|
1111
|
-
else ret.height = (lH || 0)
|
|
1112
|
-
ret.top = ((pFH - ret.height)/2);
|
|
1113
|
-
if(SC.isPercentage(lcY)) ret.top = ret.top + lcY*pFH;
|
|
1437
|
+
if (lH && SC.isPercentage(lH)) ret.height = (lH * pFH);
|
|
1438
|
+
else ret.height = (lH || 0);
|
|
1439
|
+
ret.top = ((pFH - ret.height) / 2);
|
|
1440
|
+
if (SC.isPercentage(lcY)) ret.top = ret.top + lcY * pFH;
|
|
1114
1441
|
else ret.top = ret.top + lcY;
|
|
1115
1442
|
|
|
1116
1443
|
// if height defined, assume top of zero
|
|
1117
1444
|
} else if (!SC.none(lH)) {
|
|
1118
1445
|
ret.top = 0;
|
|
1119
|
-
if(lH === SC.LAYOUT_AUTO) ret.height = SC.LAYOUT_AUTO
|
|
1120
|
-
else if (SC.isPercentage(lH)) ret.height = lH*pFH;
|
|
1446
|
+
if (lH === SC.LAYOUT_AUTO) ret.height = SC.LAYOUT_AUTO;
|
|
1447
|
+
else if (SC.isPercentage(lH)) ret.height = lH * pFH;
|
|
1121
1448
|
else ret.height = lH;
|
|
1122
1449
|
|
|
1123
1450
|
// fallback, full height.
|
|
@@ -1126,16 +1453,16 @@ SC.View.mixin(
|
|
|
1126
1453
|
ret.height = 0;
|
|
1127
1454
|
}
|
|
1128
1455
|
|
|
1129
|
-
if(ret.top) ret.top = Math.floor(ret.top);
|
|
1130
|
-
if(ret.bottom) ret.bottom = Math.floor(ret.bottom);
|
|
1131
|
-
if(ret.left) ret.left = Math.floor(ret.left);
|
|
1132
|
-
if(ret.right) ret.right = Math.floor(ret.right);
|
|
1133
|
-
if(ret.width !== SC.LAYOUT_AUTO) ret.width = Math.floor(ret.width);
|
|
1134
|
-
if(ret.height !== SC.LAYOUT_AUTO) ret.height = Math.floor(ret.height);
|
|
1456
|
+
if (ret.top) ret.top = Math.floor(ret.top);
|
|
1457
|
+
if (ret.bottom) ret.bottom = Math.floor(ret.bottom);
|
|
1458
|
+
if (ret.left) ret.left = Math.floor(ret.left);
|
|
1459
|
+
if (ret.right) ret.right = Math.floor(ret.right);
|
|
1460
|
+
if (ret.width !== SC.LAYOUT_AUTO) ret.width = Math.floor(ret.width);
|
|
1461
|
+
if (ret.height !== SC.LAYOUT_AUTO) ret.height = Math.floor(ret.height);
|
|
1135
1462
|
|
|
1136
1463
|
// handle min/max
|
|
1137
|
-
if (layout.minHeight !== undefined) ret.minHeight = layout.minHeight
|
|
1138
|
-
if (layout.maxHeight !== undefined) ret.maxHeight = layout.maxHeight
|
|
1464
|
+
if (layout.minHeight !== undefined) ret.minHeight = layout.minHeight;
|
|
1465
|
+
if (layout.maxHeight !== undefined) ret.maxHeight = layout.maxHeight;
|
|
1139
1466
|
|
|
1140
1467
|
return ret;
|
|
1141
1468
|
},
|
|
@@ -1143,7 +1470,7 @@ SC.View.mixin(
|
|
|
1143
1470
|
/**
|
|
1144
1471
|
For now can only convert Top/Left/Width/Height to a Custom Layout
|
|
1145
1472
|
*/
|
|
1146
|
-
convertLayoutToCustomLayout: function(layout, layoutParams, parentFrame){
|
|
1473
|
+
convertLayoutToCustomLayout: function (layout, layoutParams, parentFrame) {
|
|
1147
1474
|
// TODO: [EG] Create Top/Left/Width/Height to a Custom Layout conversion
|
|
1148
1475
|
}
|
|
1149
1476
|
});
|