From d3f67c2e306cb1888099f4decba00a9d8727cc43 Mon Sep 17 00:00:00 2001
From: Jon Reid
Date: Tue, 22 May 2012 18:23:36 -0700
Subject: Timeline: New easing selector in spans.
---
js/panels/Timeline/Span.reel/Span.html | 17 +++++-
js/panels/Timeline/Span.reel/Span.js | 78 ++++++++++++++++++++++++-
js/panels/Timeline/Span.reel/css/Span.css | 90 ++++++++++++++++++++++++++---
js/panels/Timeline/Span.reel/scss/Span.scss | 87 ++++++++++++++++++++++++++++
js/panels/Timeline/Span.reel/scss/config.rb | 9 +++
5 files changed, 268 insertions(+), 13 deletions(-)
create mode 100644 js/panels/Timeline/Span.reel/scss/Span.scss
create mode 100644 js/panels/Timeline/Span.reel/scss/config.rb
(limited to 'js/panels/Timeline/Span.reel')
diff --git a/js/panels/Timeline/Span.reel/Span.html b/js/panels/Timeline/Span.reel/Span.html
index 8baa141a..d6c359ad 100644
--- a/js/panels/Timeline/Span.reel/Span.html
+++ b/js/panels/Timeline/Span.reel/Span.html
@@ -13,7 +13,10 @@
"owner": {
"prototype": "js/panels/Timeline/Span.reel",
"properties": {
- "element": {"#": "spanspace"}
+ "element": {"#": "spanspace"},
+ "container_easing" : {"#" : "container_easing"},
+ "easing_choice" : {"#": "easing_choice"},
+ "easing_choices" : {"#" : "easing_choices"}
}
}
@@ -23,6 +26,18 @@
-
+
ease-out
-
- - ease
- - ease-out
- - ease-in
- - ease-in-out
- - linear
-
diff --git a/js/panels/Timeline/Span.reel/Span.js b/js/panels/Timeline/Span.reel/Span.js
index 8d4c25ae..bb8fdf03 100644
--- a/js/panels/Timeline/Span.reel/Span.js
+++ b/js/panels/Timeline/Span.reel/Span.js
@@ -4,8 +4,8 @@
(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
*/
-var Montage = require("montage/core/core").Montage;
-var Component = require("montage/ui/component").Component;
+var Montage = require("montage/core/core").Montage,
+ Component = require("montage/ui/component").Component;
var Span = exports.Span = Montage.create(Component, {
@@ -112,12 +112,14 @@ var Span = exports.Span = Montage.create(Component, {
this.element.classList.remove("spanHighlight");
}
+ /*
// Hide or show the choices menu?
if (this.areChoicesVisible === true) {
this.easing_choices.style.display = "block";
} else {
this.easing_choices.style.display = "none";
}
+ */
// Change easing?
if (this.easing_choice.innerText !== this.easing) {
@@ -131,7 +133,7 @@ var Span = exports.Span = Montage.create(Component, {
init: {
value: function() {
this.easing_choice.addEventListener("click", this.handleEasingChoiceClick.bind(this), false);
- this.easing_choices.addEventListener("click", this.handleEasingChoicesClick.bind(this), false);
+ //this.easing_choices.addEventListener("click", this.handleEasingChoicesClick.bind(this), false);
}
},
@@ -147,15 +149,9 @@ var Span = exports.Span = Montage.create(Component, {
handleEasingChoiceClick: {
value: function(event) {
event.stopPropagation();
- this.areChoicesVisible = true;
-
- // Possibly another menu is already open. If so, we need to close it.
- if (this.application.ninja.timeline.currentOpenSpanMenu !== false) {
- this.application.ninja.timeline.currentOpenSpanMenu.hideEasingMenu();
- }
-
- // Now store a pointer to ourselves for possible future use.
- this.application.ninja.timeline.currentOpenSpanMenu = this;
+ //this.areChoicesVisible = true;
+ this.application.ninja.timeline.easingMenu.show();
+
}
},
handleEasingChoicesClick: {
diff --git a/js/panels/Timeline/Span.reel/scss/Span.scss b/js/panels/Timeline/Span.reel/scss/Span.scss
index b3aff4d2..6afb4780 100644
--- a/js/panels/Timeline/Span.reel/scss/Span.scss
+++ b/js/panels/Timeline/Span.reel/scss/Span.scss
@@ -35,67 +35,3 @@
opacity: 0.4;
}
-/*
- * Easing picker
- */
-
-.container-easing {
- position: absolute;
- top: 2px;
- right: 8px;
- font-size: 10px;
- line-height: 8px;
- border: 1px solid $color-menu-border;
- color: $color-menu-text;
- background-color: $color-menu-bg;
-}
-.container-easing,
-.container-easing .easing-choice,
-.container-easing .easing-choices {
- width: 70px;
- white-space: nowrap;
-}
-.container-easing,
-.container-easing .easing-choice {
- height: 10px;
-}
-.container-easing .easing-choice {
- position: absolute;
- top: 0px;
- left: 3px;
- width: 67px;
- cursor: pointer;
-}
-.container-easing .easing-choices {
- position: absolute;
- display: none;
- bottom: -1px;
- left: -1px;
- z-index: 100;
- height: auto;
- border: 1px solid $color-menu-border;
- color: $color-menu-text;
- background-color: $color-menu-bg;
- overflow: hidden;
- list-style-type: none;
- margin: 0px;
- padding: 0px;
-}
-.container-easing .easing-choices li {
- list-style-type: none;
- margin: 0px;
- padding: 0px;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-left: 3px;
- cursor: pointer;
-}
-
-.container-easing .easing-choices li:hover,
-.container-easing .easing-choices li.easing-selected {
- color: $color-menu-hilite-text;
- background-color: $color-menu-hilite-bg;
-}
-.container-easing .easing-choices li.easing-selected {
- cursor: default;
-}
--
cgit v1.2.3
From 80d1074a5e4a10da8d36c14b8d4f4e9fae47a5ec Mon Sep 17 00:00:00 2001
From: Jon Reid
Date: Wed, 13 Jun 2012 16:00:32 -0700
Subject: Timeline: More work on new easing menu.
---
js/panels/Timeline/Span.reel/Span.js | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
(limited to 'js/panels/Timeline/Span.reel')
diff --git a/js/panels/Timeline/Span.reel/Span.js b/js/panels/Timeline/Span.reel/Span.js
index bb8fdf03..44316469 100644
--- a/js/panels/Timeline/Span.reel/Span.js
+++ b/js/panels/Timeline/Span.reel/Span.js
@@ -150,31 +150,42 @@ var Span = exports.Span = Montage.create(Component, {
value: function(event) {
event.stopPropagation();
//this.areChoicesVisible = true;
+ this.application.ninja.timeline.easingMenu.anchor = this.easing_choice;
+ this.application.ninja.timeline.easingMenu.currentChoice = event.currentTarget.innerText;
+ console.log(event);
+ this.application.ninja.timeline.easingMenu.top = 100;
+ this.application.ninja.timeline.easingMenu.left = 100;
this.application.ninja.timeline.easingMenu.show();
-
+ this.application.ninja.timeline.easingMenu.callingComponent = this;
}
},
handleEasingChoicesClick: {
value: function(event) {
event.stopPropagation();
+
+ console.log("span.handleEasingChoicesClick")
// Remove the pointer to ourselves
- this.application.ninja.timeline.currentOpenSpanMenu = false;
+ //this.application.ninja.timeline.currentOpenSpanMenu = false;
// Un-highlight the old choice and highlight the new choice
- this.easing_choices.querySelector(".easing-selected").classList.remove("easing-selected");
+ this.application.ninja.timeline.easingMenu.popup.contentEl.querySelector(".easing-selected").classList.remove("easing-selected");
event.target.classList.add("easing-selected");
// Set the easing
this.easing = event.target.dataset.ninjaEase;
+ // Unbind the event handler
+ this.application.ninja.timeline.easingMenu.popup.contentEl.removeEventListener("click");
+
// Hide the menu.
this.hideEasingMenu();
}
},
hideEasingMenu: {
value: function() {
- this.areChoicesVisible = false;
+ //this.areChoicesVisible = false;
+ this.application.ninja.timeline.easingMenu.hide();
}
}
});
--
cgit v1.2.3
From 53bb51a38edc6fe7cc80c43d34027590a22a1d32 Mon Sep 17 00:00:00 2001
From: Jon Reid
Date: Thu, 14 Jun 2012 14:29:37 -0700
Subject: Timeline: New easing menu.
---
js/panels/Timeline/Span.reel/Span.js | 24 ++++++++---
js/panels/Timeline/Span.reel/css/Span.css | 66 ++++++-----------------------
js/panels/Timeline/Span.reel/scss/Span.scss | 28 ++++++++++++
3 files changed, 59 insertions(+), 59 deletions(-)
(limited to 'js/panels/Timeline/Span.reel')
diff --git a/js/panels/Timeline/Span.reel/Span.js b/js/panels/Timeline/Span.reel/Span.js
index 44316469..7347ef51 100644
--- a/js/panels/Timeline/Span.reel/Span.js
+++ b/js/panels/Timeline/Span.reel/Span.js
@@ -152,9 +152,25 @@ var Span = exports.Span = Montage.create(Component, {
//this.areChoicesVisible = true;
this.application.ninja.timeline.easingMenu.anchor = this.easing_choice;
this.application.ninja.timeline.easingMenu.currentChoice = event.currentTarget.innerText;
- console.log(event);
- this.application.ninja.timeline.easingMenu.top = 100;
- this.application.ninja.timeline.easingMenu.left = 100;
+
+ function findPos(obj) {
+ var objReturn = {};
+ objReturn.top = 0;
+ objReturn.left = 0;
+
+ if (obj.offsetParent) {
+
+ do {
+ objReturn.left += obj.offsetLeft;
+ objReturn.top += obj.offsetTop;
+
+ } while (obj = obj.offsetParent);
+ }
+ return objReturn;
+ }
+ var objPos = findPos(event.target);
+ this.application.ninja.timeline.easingMenu.top = objPos.top +38 - (this.application.ninja.timeline.layout_tracks.scrollTop);
+ this.application.ninja.timeline.easingMenu.left = objPos.left+18 - (this.application.ninja.timeline.layout_tracks.scrollLeft);
this.application.ninja.timeline.easingMenu.show();
this.application.ninja.timeline.easingMenu.callingComponent = this;
}
@@ -162,8 +178,6 @@ var Span = exports.Span = Montage.create(Component, {
handleEasingChoicesClick: {
value: function(event) {
event.stopPropagation();
-
- console.log("span.handleEasingChoicesClick")
// Remove the pointer to ourselves
//this.application.ninja.timeline.currentOpenSpanMenu = false;
diff --git a/js/panels/Timeline/Span.reel/css/Span.css b/js/panels/Timeline/Span.reel/css/Span.css
index e5cb4263..040379ea 100644
--- a/js/panels/Timeline/Span.reel/css/Span.css
+++ b/js/panels/Timeline/Span.reel/css/Span.css
@@ -27,11 +27,8 @@
opacity: 0.4;
}
-/*
- * Easing picker
- */
-/* line 42, ../scss/Span.scss */
-.container-easing {
+/* line 38, ../scss/Span.scss */
+.container-easing-choice {
position: absolute;
top: 2px;
right: 8px;
@@ -42,65 +39,26 @@
background-color: #474747;
}
-/* line 54, ../scss/Span.scss */
-.container-easing,
-.container-easing .easing-choice,
-.container-easing .easing-choices {
+/* line 50, ../scss/Span.scss */
+.container-easing-choice,
+.container-easing-choice .easing-choice,
+.container-easing-choices .easing-choices {
+ font-size: 10px;
width: 70px;
white-space: nowrap;
}
-/* line 59, ../scss/Span.scss */
-.container-easing,
-.container-easing .easing-choice {
+/* line 56, ../scss/Span.scss */
+.container-easing-choice,
+.container-easing-choice .easing-choice {
height: 10px;
}
-/* line 62, ../scss/Span.scss */
-.container-easing .easing-choice {
+/* line 59, ../scss/Span.scss */
+.container-easing-choice .easing-choice {
position: absolute;
top: 0px;
left: 3px;
width: 67px;
cursor: pointer;
}
-
-/* line 69, ../scss/Span.scss */
-.container-easing .easing-choices {
- position: absolute;
- display: none;
- bottom: -1px;
- left: -1px;
- z-index: 100;
- height: auto;
- border: 1px solid black;
- color: white;
- background-color: #474747;
- overflow: hidden;
- list-style-type: none;
- margin: 0px;
- padding: 0px;
-}
-
-/* line 84, ../scss/Span.scss */
-.container-easing .easing-choices li {
- list-style-type: none;
- margin: 0px;
- padding: 0px;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-left: 3px;
- cursor: pointer;
-}
-
-/* line 95, ../scss/Span.scss */
-.container-easing .easing-choices li:hover,
-.container-easing .easing-choices li.easing-selected {
- color: #242424;
- background-color: #b2b2b2;
-}
-
-/* line 99, ../scss/Span.scss */
-.container-easing .easing-choices li.easing-selected {
- cursor: default;
-}
diff --git a/js/panels/Timeline/Span.reel/scss/Span.scss b/js/panels/Timeline/Span.reel/scss/Span.scss
index 6afb4780..31781f87 100644
--- a/js/panels/Timeline/Span.reel/scss/Span.scss
+++ b/js/panels/Timeline/Span.reel/scss/Span.scss
@@ -35,3 +35,31 @@
opacity: 0.4;
}
+.container-easing-choice {
+ position: absolute;
+ top: 2px;
+ right: 8px;
+ font-size: 10px;
+ line-height: 8px;
+ border: 1px solid $color-menu-border;
+ color: $color-menu-text;
+ background-color: $color-menu-bg;
+}
+.container-easing-choice,
+.container-easing-choice .easing-choice,
+.container-easing-choices .easing-choices {
+ font-size: 10px;
+ width: 70px;
+ white-space: nowrap;
+}
+.container-easing-choice,
+.container-easing-choice .easing-choice {
+ height: 10px;
+}
+.container-easing-choice .easing-choice {
+ position: absolute;
+ top: 0px;
+ left: 3px;
+ width: 67px;
+ cursor: pointer;
+}
--
cgit v1.2.3
From 0b41d5c873b25461e2217782af1c410b89cb56de Mon Sep 17 00:00:00 2001
From: Jon Reid
Date: Fri, 15 Jun 2012 14:03:03 -0700
Subject: Timeline: Bug fix IKNINJA 1716, "Ease options are not correctly
displayed in Timeline after a file is saved and re-opened."
---
js/panels/Timeline/Span.reel/Span.js | 1 -
1 file changed, 1 deletion(-)
(limited to 'js/panels/Timeline/Span.reel')
diff --git a/js/panels/Timeline/Span.reel/Span.js b/js/panels/Timeline/Span.reel/Span.js
index 7347ef51..5b0f3f94 100644
--- a/js/panels/Timeline/Span.reel/Span.js
+++ b/js/panels/Timeline/Span.reel/Span.js
@@ -83,7 +83,6 @@ var Span = exports.Span = Montage.create(Component, {
draw:{
value: function(){
-
this.element.style.width = this.spanWidth + "px";
if ((this.spanWidth <= 70) && (this.spanWidth >0)) {
--
cgit v1.2.3
From 92cca9bf067d048c57aaab85479d36cb902c96c2 Mon Sep 17 00:00:00 2001
From: Jon Reid
Date: Fri, 15 Jun 2012 14:31:48 -0700
Subject: Timeline: Bug fix: Correctly maintain expand/collapse state of layers
and subproperties across document switching.
---
js/panels/Timeline/Span.reel/Span.js | 3 +++
1 file changed, 3 insertions(+)
(limited to 'js/panels/Timeline/Span.reel')
diff --git a/js/panels/Timeline/Span.reel/Span.js b/js/panels/Timeline/Span.reel/Span.js
index 5b0f3f94..59cd13ed 100644
--- a/js/panels/Timeline/Span.reel/Span.js
+++ b/js/panels/Timeline/Span.reel/Span.js
@@ -67,6 +67,9 @@ var Span = exports.Span = Montage.create(Component, {
},
set: function(newVal) {
if (newVal !== this._easing) {
+ if (typeof(newVal) === "undefined") {
+ newVal = "ease-in";
+ }
this._easing = newVal;
this.parentComponent.setKeyframeEase(newVal);
this.needsDraw = true;
--
cgit v1.2.3
From 3163108217677d7eec1c79cf6aa7525cdd6600ef Mon Sep 17 00:00:00 2001
From: Jon Reid
Date: Mon, 18 Jun 2012 16:24:02 -0700
Subject: Timeline: Default easing for new animation keyframes set to "none"
per CSS standard.
---
js/panels/Timeline/Span.reel/Span.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'js/panels/Timeline/Span.reel')
diff --git a/js/panels/Timeline/Span.reel/Span.js b/js/panels/Timeline/Span.reel/Span.js
index 59cd13ed..91ce1cfb 100644
--- a/js/panels/Timeline/Span.reel/Span.js
+++ b/js/panels/Timeline/Span.reel/Span.js
@@ -59,7 +59,7 @@ var Span = exports.Span = Montage.create(Component, {
},
_easing: {
- value: "ease-in"
+ value: "none"
},
easing: {
get: function() {
@@ -68,7 +68,7 @@ var Span = exports.Span = Montage.create(Component, {
set: function(newVal) {
if (newVal !== this._easing) {
if (typeof(newVal) === "undefined") {
- newVal = "ease-in";
+ newVal = "none";
}
this._easing = newVal;
this.parentComponent.setKeyframeEase(newVal);
--
cgit v1.2.3