aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorPushkar Joshi2012-03-28 11:15:45 -0700
committerPushkar Joshi2012-03-28 11:15:45 -0700
commitfa5c9dbdc3e8618d494e142e0967fa69049d0c97 (patch)
tree2b1574c193f91cee04975f95d19d025080c7cea2 /js
parent0f5967e1124da8d65e1c35d2a9e1ef6259269348 (diff)
parenta25e50a429dfa87522ed7616dcae7b472f3c785c (diff)
downloadninja-fa5c9dbdc3e8618d494e142e0967fa69049d0c97.tar.gz
Merge branch 'master' into brushtool
Diffstat (limited to 'js')
-rwxr-xr-xjs/components/layout/bread-crumb.reel/bread-crumb.css10
-rw-r--r--js/controllers/presets-controller.js108
-rwxr-xr-xjs/document/templates/montage-html/default_html.css4
-rwxr-xr-xjs/ninja.reel/ninja.html107
-rwxr-xr-xjs/ninja.reel/ninja.js120
-rwxr-xr-xjs/panels/Splitter.js2
-rw-r--r--js/panels/Timeline/TimelinePanel.reel/css/TimelinePanel.css4
-rw-r--r--js/panels/presets/animations-presets.reel/animations-presets.js47
-rw-r--r--js/panels/presets/default-animation-presets.js2
-rw-r--r--js/panels/presets/default-style-presets.js11
-rw-r--r--js/panels/presets/default-transition-presets.js8
-rw-r--r--js/panels/presets/style-presets.reel/style-presets.js49
-rw-r--r--js/panels/presets/transitions-presets.reel/transitions-presets.js20
-rw-r--r--js/panels/resize-composer.js34
-rwxr-xr-xjs/stage/stage-view.reel/stage-view.js12
-rwxr-xr-xjs/tools/TextTool.js5
16 files changed, 370 insertions, 173 deletions
diff --git a/js/components/layout/bread-crumb.reel/bread-crumb.css b/js/components/layout/bread-crumb.reel/bread-crumb.css
index dcfd471c..26a56b45 100755
--- a/js/components/layout/bread-crumb.reel/bread-crumb.css
+++ b/js/components/layout/bread-crumb.reel/bread-crumb.css
@@ -4,14 +4,20 @@
4 (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. 4 (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5 </copyright> */ 5 </copyright> */
6 6
7.breadcrumbTrail{ 7.breadcrumbTrail {
8
8 background-color: #282828; 9 background-color: #282828;
9 border-style: double;
10 height: 26px; 10 height: 26px;
11 position:relative; 11 position:relative;
12 -webkit-box-flex: 0; 12 -webkit-box-flex: 0;
13} 13}
14 14
15.mainContentContainer > section.breadcrumbTrail {
16 border:0;
17 margin:0;
18 border-bottom:1px solid #000;
19 margin-bottom:1px;
20}
15.breadcrumbTrail button.nj-skinned { 21.breadcrumbTrail button.nj-skinned {
16 float: left; 22 float: left;
17 width: 60px; 23 width: 60px;
diff --git a/js/controllers/presets-controller.js b/js/controllers/presets-controller.js
new file mode 100644
index 00000000..7152ba93
--- /dev/null
+++ b/js/controllers/presets-controller.js
@@ -0,0 +1,108 @@
1/* <copyright>
2 This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
3 No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
4 (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5 </copyright> */
6
7
8var Montage = require("montage/core/core").Montage,
9 Component = require("montage/ui/component").Component;
10
11exports.PresetsController = Montage.create(Component, {
12
13 hasTemplate : {
14 value: false
15 },
16
17 transitionClass : {
18 value : "nj-preset-transition"
19 },
20
21 addTransition: {
22 value: function(element) {
23 element.classList.add(this.transitionClass);
24 element.addEventListener("webkitTransitionEnd", this, true);
25 }
26 },
27
28 captureWebkitTransitionEnd : {
29 value : function(e) {
30 var el = e.target;
31 el.classList.remove(this.transitionClass);
32 el.removeEventListener("webkitTransitionEnd", this, true);
33 }
34 },
35
36 applyPreset : {
37 value: function(presetData, useTransition) {
38 var selection = this.application.ninja.selectedElements;
39
40 if(!selection || !selection.length || selection.length === 0) { return false; }
41
42 var stylesController = this.application.ninja.stylesController,
43 selectorBase = presetData.selectorBase,
44 rules = [];
45
46 selectorBase = stylesController.generateClassName(selectorBase);
47
48 presetData.rules.forEach(function(rule, i) {
49 ///// Treat keyframed rules differently
50 if(rule.isKeyFrameRule) {
51 this.application.ninja.stylesController.addRule(
52 '@-webkit-keyframes ' + presetData.selectorBase,
53 this.stringifyKeys(rule.keys)
54 );
55 } else {
56 var suffix = rule.selectorSuffix || '';
57 rules.push(stylesController.addRule('.'+selectorBase + suffix, rule.styles));
58 }
59 }, this);
60
61 selection.forEach(function(element) {
62 var el = element._element;
63
64 if(useTransition) {
65 this.addTransition(el);
66 }
67
68 el.classList.add(selectorBase);
69
70 //// Keep track of elements with presets and don't add duplicates
71 this.setCachedPreset(el, presetData.id, rules);
72
73 }, this);
74
75 }
76 },
77
78 setCachedPreset : {
79 value: function(el, presetId, rules) {
80
81 }
82 },
83
84 getPresets : {
85 value: function(element) {
86
87 }
88
89 },
90
91 stringifyKeys : {
92 value: function(keysArray) {
93 var keysString = '';
94
95 keysArray.forEach(function(key) {
96 var styles = '', style;
97
98 for(style in key.styles) {
99 styles += style + ':' + key.styles[style] + '; ';
100 }
101
102 keysString += key.keyText + ' {' + styles + ' }';
103 });
104
105 return keysString;
106 }
107 }
108}); \ No newline at end of file
diff --git a/js/document/templates/montage-html/default_html.css b/js/document/templates/montage-html/default_html.css
index 68300edf..6c2b415f 100755
--- a/js/document/templates/montage-html/default_html.css
+++ b/js/document/templates/montage-html/default_html.css
@@ -72,4 +72,8 @@ body
72 72
73.elem-red-outline { 73.elem-red-outline {
74 outline: red solid thin; 74 outline: red solid thin;
75}
76
77.nj-preset-transition {
78 -webkit-transition: all 450ms linear !important;
75} \ No newline at end of file 79} \ No newline at end of file
diff --git a/js/ninja.reel/ninja.html b/js/ninja.reel/ninja.html
index f9e1efdd..ead7f576 100755
--- a/js/ninja.reel/ninja.html
+++ b/js/ninja.reel/ninja.html
@@ -77,34 +77,83 @@
77 "name": "Splitter", 77 "name": "Splitter",
78 "properties": { 78 "properties": {
79 "element": {"#": "bottomSplitter"}, 79 "element": {"#": "bottomSplitter"},
80 "panel": {"#": "bottomPanelContainer"}, 80 "panel": {"@": "timeline"}
81 "resizeBar": {"#": "timelineResizer"}
82 } 81 }
83 }, 82 },
84 83
85 "resizer1": { 84 "resizer1": {
86 "module": "js/panels/Resizer", 85 "module": "js/panels/resize-composer",
87 "name": "Resizer", 86 "name": "ResizeComposer",
88 "properties": { 87 "properties": {
89 "element": {"#": "rightPanelResizer"}, 88 "element": {"#": "rightPanelResizer"},
90 "id": "rightPanelResizer", 89 "component": {"@": "owner"},
91 "panel": {"#": "rightPanelContainer"}, 90 "yAxis": false
92 "isVertical": false, 91 },
93 "redrawStage": true 92 "listeners": [
94 } 93 {
94 "type": "resizeStart",
95 "listener": {"@": "owner"}
96 },
97 {
98 "type": "resizeMove",
99 "listener": {"@": "owner"}
100 },
101 {
102 "type": "resizeEnd",
103 "listener": {"@": "owner"}
104 }
105 ]
95 }, 106 },
96 107
97 "resizer2": { 108 "resizer2": {
98 "module": "js/panels/Resizer", 109 "module": "js/panels/resize-composer",
99 "name": "Resizer", 110 "name": "ResizeComposer",
100 "properties": { 111 "properties": {
101 "element": {"#": "timelineResizer"}, 112 "element": {"#": "timelineResizer"},
102 "id": "timelineResizer",