diff options
author | Alex Xu <alex_y_xu@yahoo.ca> | 2014-01-01 13:19:22 -0500 |
---|---|---|
committer | Alex Xu <alex_y_xu@yahoo.ca> | 2014-01-01 13:19:22 -0500 |
commit | 864d115f229ce8cbd20deb8670831802da8c9216 (patch) | |
tree | 1d4eaf7e137eed57cc29c642a9ab558aea1b7e95 /www/js/menu.js | |
parent | 8f9c4bc6783633407cbc5799a0df2e618bb66c22 (diff) | |
download | html5ks-864d115f229ce8cbd20deb8670831802da8c9216.tar.xz html5ks-864d115f229ce8cbd20deb8670831802da8c9216.zip |
More stuff.
Diffstat (limited to 'www/js/menu.js')
-rw-r--r-- | www/js/menu.js | 62 |
1 files changed, 28 insertions, 34 deletions
diff --git a/www/js/menu.js b/www/js/menu.js index eb878a5..c03523e 100644 --- a/www/js/menu.js +++ b/www/js/menu.js @@ -45,26 +45,6 @@ var target = e.target; html5ks.persistent[target.id] = target.type === "checkbox" ? target.checked : target.value; switch (target.id) { - case "fullscreen": - if (target.checked) { - html5ks.fullscreen(); - } else { - html5ks.fullscreen(false); - } - break; - case "scaleAll": - var scaleVideo = document.getElementById("scaleVideo"); - if (!target.checked) { - scaleVideo.checked = false; - scaleVideo.parentNode.className += " disabled"; - } else { - scaleVideo.checked = true; - scaleVideo.parentNode.className = scaleVideo.parentNode.className.replace("disabled", ""); - } - // fall-through - case "scaleVideo": - html5ks.scale(); - break; case "musicVolume": case "soundVolume": html5ks.api.set_volume(target.value, 0, target.id.replace("Volume", "")); @@ -121,21 +101,25 @@ case "scene": case "context": this.context(); + e.stopPropagation(); } e.preventDefault(); - }.bind(this), false); + }.bind(this), true); document.getElementById("context-return").addEventListener("click", function () { html5ks.menu.context(false); }, false); document.getElementById("show-image").addEventListener("click", function () { + var state = html5ks.menu._state; + html5ks.menu._state = {}; html5ks.menu.context(false); - html5ks.elements.window.style.display = "none"; - html5ks.elements.container.addEventListener("click", function click() { - this.removeEventListener("click", click, true); + var done = function () { + this.removeEventListener("click", done, true); + html5ks.menu._state = state; html5ks.menu.context(true); - }, true); + }; + html5ks.elements.container.addEventListener("click", done, true); }, false); document.getElementById("skip-mode").addEventListener("click", function () { @@ -194,28 +178,38 @@ }.bind(this)); }, - _hadWindow: null, + _state: null, context: function (show) { switch (show) { case true: - this._hadWindow = this._hadWindow !== null ? this._hadWindow : html5ks.api.window(); + // return early if context already on + if (this.context("status")) return; + this._state = this._state || { + window: html5ks.api.window(), + nvl: html5ks.api.nvl("status"), + status: html5ks.state.status + }; + html5ks.api.window("hide"); + html5ks.api.nvl("hide"); html5ks.state.status = "context"; html5ks.elements.gray.style.display = "block"; - html5ks.elements.window.style.display = "none"; this.elements.context.style.display = "block"; break; case false: - html5ks.state.status = "scene"; + this.elements.context.style.display = "none"; html5ks.elements.gray.style.display = "none"; - if (html5ks.state.status === "scene" && this._hadWindow) { - this._hadWindow = null; - html5ks.elements.window.style.display = "block"; + if (this._state) { + html5ks.api.window(this._state.window); + html5ks.api.nvl(this._state.nvl); + html5ks.state.status = this._state.status; + this._state = null; } - this.elements.context.style.display = "none"; break; + case "status": + return this.elements.context.style.display === "block"; default: - this.context(this.elements.context.style.display !== "block"); + this.context(!this.context("status")); } } }; |