aboutsummaryrefslogtreecommitdiff
path: root/js/panels/Timeline/EasingMenu.reel/EasingMenu.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/panels/Timeline/EasingMenu.reel/EasingMenu.js')
-rw-r--r--js/panels/Timeline/EasingMenu.reel/EasingMenu.js251
1 files changed, 126 insertions, 125 deletions
diff --git a/js/panels/Timeline/EasingMenu.reel/EasingMenu.js b/js/panels/Timeline/EasingMenu.reel/EasingMenu.js
index 6d41afb0..7712e3bb 100644
--- a/js/panels/Timeline/EasingMenu.reel/EasingMenu.js
+++ b/js/panels/Timeline/EasingMenu.reel/EasingMenu.js
@@ -1,24 +1,25 @@
1/* <copyright> 1/* <copyright>
2Copyright (c) 2012, Motorola Mobility, Inc 2Copyright (c) 2012, Motorola Mobility LLC.
3All Rights Reserved. 3All Rights Reserved.
4BSD License.
5 4
6Redistribution and use in source and binary forms, with or without 5Redistribution and use in source and binary forms, with or without
7modification, are permitted provided that the following conditions are met: 6modification, are permitted provided that the following conditions are met:
8 7
9 - Redistributions of source code must retain the above copyright notice, 8* Redistributions of source code must retain the above copyright notice,
10 this list of conditions and the following disclaimer. 9 this list of conditions and the following disclaimer.
11 - Redistributions in binary form must reproduce the above copyright 10
12 notice, this list of conditions and the following disclaimer in the 11* Redistributions in binary form must reproduce the above copyright notice,
13 documentation and/or other materials provided with the distribution. 12 this list of conditions and the following disclaimer in the documentation
14 - Neither the name of Motorola Mobility nor the names of its contributors 13 and/or other materials provided with the distribution.
15 may be used to endorse or promote products derived from this software 14
16 without specific prior written permission. 15* Neither the name of Motorola Mobility LLC nor the names of its
16 contributors may be used to endorse or promote products derived from this
17 software without specific prior written permission.
17 18
18THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 22ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
@@ -29,8 +30,8 @@ POSSIBILITY OF SUCH DAMAGE.
29</copyright> */ 30</copyright> */
30 31
31var Montage = require("montage/core/core").Montage, 32var Montage = require("montage/core/core").Montage,
32 Component = require("montage/ui/component").Component, 33 Component = require("montage/ui/component").Component,
33 Popup = require("montage/ui/popup/popup.reel").Popup; 34 Popup = require("montage/ui/popup/popup.reel").Popup;
34 35
35var EasingMenu = exports.EasingMenu = Montage.create(Component, { 36var EasingMenu = exports.EasingMenu = Montage.create(Component, {
36 37
@@ -38,127 +39,127 @@ var EasingMenu = exports.EasingMenu = Montage.create(Component, {
38 value: true 39 value: true
39 }, 40 },
40 41
41 /* Begin: Models */ 42 /* Begin: Models */
42 43
43 // popup: the initialized component. 44 // popup: the initialized component.
44 _popup: { 45 _popup: {
45 value: null 46 value: null
46 }, 47 },
47 popup: { 48 popup: {
48 get: function() { 49 get: function() {
49 return this._popup; 50 return this._popup;
50 }, 51 },
51 set: function(newVal) { 52 set: function(newVal) {
52 this._popup = newVal 53 this._popup = newVal
53 } 54 }
54 }, 55 },
55 56
56 // callingComponent: pointer to the span that called for the menu 57 // callingComponent: pointer to the span that called for the menu
57 _callingComponent: { 58 _callingComponent: {
58 value: null 59 value: null
59 }, 60 },
60 callingComponent: { 61 callingComponent: {
61 get: function() { 62 get: function() {
62 return this._callingComponent; 63 return this._callingComponent;
63 }, 64 },
64 set: function(newVal) { 65 set: function(newVal) {
65 this._callingComponent = newVal; 66 this._callingComponent = newVal;
66 } 67 }
67 }, 68 },
68 69
69 // anchor: pointer to the anchoring element 70 // anchor: pointer to the anchoring element
70 _anchor: { 71 _anchor: {
71 value: null 72 value: null
72 }, 73 },
73 anchor: { 74 anchor: {
74 get: function() { 75 get: function() {
75 return this._anchor; 76 return this._anchor;
76 }, 77 },
77 set: function(newVal) { 78 set: function(newVal) {
78 this._anchor = newVal; 79 this._anchor = newVal;
79 } 80 }
80 }, 81 },
81 82
82 83
83 _top: { 84 _top: {
84 value: null 85 value: null
85 }, 86 },
86 top: { 87 top: {
87 get: function() { 88 get: function() {
88 return this._top; 89 return this._top;
89 }, 90 },
90 set: function(newVal) { 91 set: function(newVal) {
91 this._top = newVal; 92 this._top = newVal;
92 } 93 }
93 }, 94 },
94 _left: { 95 _left: {
95 value: null 96 value: null
96 }, 97 },
97 left: { 98 left: {
98 get: function() { 99 get: function() {
99 return this._left; 100 return this._left;
100 }, 101 },
101 set: function(newVal) { 102 set: function(newVal) {
102 this._left = newVal; 103 this._left = newVal;
103 } 104 }
104 }, 105 },
105 106
106 // currentChoice: The data attribute of the current choice 107 // currentChoice: The data attribute of the current choice
107 _currentChoice: { 108 _currentChoice: {
108 value: "none" 109 value: "none"
109 }, 110 },
110 currentChoice: { 111 currentChoice: {
111 get: function() { 112 get: function() {
112 return this._currentChoice; 113 return this._currentChoice;
113 }, 114 },
114 set: function(newVal) { 115 set: function(newVal) {
115 this._currentChoice = newVal; 116 this._currentChoice = newVal;
116 } 117 }
117 }, 118 },
118 119
119 _isShown: { 120 _isShown: {
120 value: false 121 value: false
121 }, 122 },
122 123
123 /* End: Models */ 124 /* End: Models */
124 125
125 /* Begin: Draw Cycle */ 126 /* Begin: Draw Cycle */
126 willDraw: { 127 willDraw: {
127 value: function() { 128 value: function() {
128 this.element.addEventListener("click", this.handleEasingChoicesClick.bind(this), false); 129 this.element.addEventListener("click", this.handleEasingChoicesClick.bind(this), false);
129 document.addEventListener("scroll", this.handleDocumentScroll.bind(this), false); 130 document.addEventListener("scroll", this.handleDocumentScroll.bind(this), false);
130 } 131 }
131 }, 132 },
132 133
133 draw: { 134 draw: {
134 value: function() { 135 value: function() {
135 // Update the selection classes. 136 // Update the selection classes.
136 var easingSelected = this.element.querySelector(".easing-selected"); 137 var easingSelected = this.element.querySelector(".easing-selected");
137 if (easingSelected !== null) { 138 if (easingSelected !== null) {
138 easingSelected.classList.remove("easing-selected"); 139 easingSelected.classList.remove("easing-selected");
139 } 140 }
140 var dataEl = this.element.querySelector('[data-ninja-ease="'+this.currentChoice+'"]'); 141 var dataEl = this.element.querySelector('[data-ninja-ease="'+this.currentChoice+'"]');
141 if (dataEl !== null) { 142 if (dataEl !== null) {
142 dataEl.classList.add("easing-selected"); 143 dataEl.classList.add("easing-selected");
143 } 144 }
144 } 145 }
145 }, 146 },