From f97e4b6ab1db9fb7de18b2e44c1b0edcf2ba072d Mon Sep 17 00:00:00 2001
From: Jon Reid
Date: Tue, 12 Jun 2012 16:47:15 -0700
Subject: Timeline: New popup menu for easing choices.
---
js/panels/Timeline/Span.reel/Span.html | 12 +-----
js/panels/Timeline/Span.reel/Span.js | 20 ++++-----
js/panels/Timeline/Span.reel/scss/Span.scss | 64 -----------------------------
3 files changed, 10 insertions(+), 86 deletions(-)
(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 a1f3afeb..6e643daa 100644
--- a/js/panels/Timeline/Span.reel/Span.html
+++ b/js/panels/Timeline/Span.reel/Span.html
@@ -15,8 +15,7 @@
"properties": {
"element": {"#": "spanspace"},
"container_easing" : {"#" : "container_easing"},
- "easing_choice" : {"#": "easing_choice"},
- "easing_choices" : {"#" : "easing_choices"}
+ "easing_choice" : {"#": "easing_choice"}
}
}
@@ -27,17 +26,10 @@
-
+
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