Mercurial > hg > webaudioevaluationtool
changeset 2391:521e828089eb
Fix for #77
author | Nicholas Jillings <nicholas.jillings@mail.bcu.ac.uk> |
---|---|
date | Wed, 25 May 2016 16:31:50 +0100 |
parents | 32f077f5849a |
children | 8f4b70c56e87 |
files | interfaces/ape.css interfaces/ape.js |
diffstat | 2 files changed, 17 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/interfaces/ape.css Wed May 25 15:51:14 2016 +0100 +++ b/interfaces/ape.css Wed May 25 16:31:50 2016 +0100 @@ -32,7 +32,7 @@ /* Specify any structure for the slider holder interface */ background-color: #eee; height: 150px; - margin-bottom: 5px; + margin: 5px 50px; -moz-user-select: -moz-none; -khtml-user-select: none; -webkit-user-select: none; @@ -50,6 +50,8 @@ /* Any formatting of text below scale */ font-size: 1.2em; min-width: 5px; + max-width: 100px; + text-align: center; height: 20px; position: absolute; }
--- a/interfaces/ape.js Wed May 25 15:51:14 2016 +0100 +++ b/interfaces/ape.js Wed May 25 16:31:50 2016 +0100 @@ -416,6 +416,7 @@ audioEngineContext.audioObjects[id].metric.moved(time,rate); interfaceContext.interfaceSliders[interfaceID].metrics[trackID].moved(time,rate); console.log("slider "+id+" moved to "+rate+' ('+time+')'); + obj.setAttribute("slider-value",convSliderPosToRate(obj)); } else { var id = Number(obj.attributes['trackIndex'].value); //audioEngineContext.metric.sliderPlayed(id); @@ -496,13 +497,6 @@ event.dataTransfer.dropEffect = 'copy'; return false; },false); - var sliderMargin = document.createAttribute('marginsize'); - sliderMargin.nodeValue = 42; // Set default margins to 42px either side - // Must have a known EXACT width, as this is used later to determine the ratings - var w = (Number(sliderMargin.nodeValue)+8)*2; - this.canvas.style.width = window.innerWidth - w +"px"; - this.canvas.style.marginLeft = sliderMargin.nodeValue +'px'; - this.canvas.setAttributeNode(sliderMargin); this.sliderDOM.appendChild(this.canvas); // Create the div to hold any scale objects @@ -512,13 +506,14 @@ this.scale.align = 'left'; this.sliderDOM.appendChild(this.scale); var positionScale = this.canvas.style.width.substr(0,this.canvas.style.width.length-2); - var offset = Number(this.canvas.attributes['marginsize'].value); + var offset = 50; var dest = document.getElementById("slider-holder").appendChild(this.sliderDOM); for (var scaleObj of interfaceObject.scales) { var position = Number(scaleObj.position)*0.01; var pixelPosition = (position*$(this.canvas).width())+offset; var scaleDOM = document.createElement('span'); + scaleDOM.className = "ape-marker-text"; scaleDOM.textContent = scaleObj.text; scaleDOM.setAttribute('value',position) this.scale.appendChild(scaleDOM); @@ -537,7 +532,7 @@ } else { trackObj.setAttribute('interface-name',this.id); } - var offset = Number(this.canvas.attributes['marginsize'].value); + var offset = 50; // Distribute it randomnly var w = window.innerWidth - (offset+8)*2; w = Math.random()*w; @@ -549,30 +544,24 @@ var labelHolder = document.createElement("span"); labelHolder.textContent = label; trackObj.appendChild(labelHolder); - this.metrics[this.metrics.length-1].initialise(convSliderPosToRate(trackObj)); + var rate = convSliderPosToRate(trackObj); + this.metrics[this.metrics.length-1].initialise(rate); + trackObj.setAttribute("slider-value",rate); return trackObj; }; this.resize = function(event) { - var holdValues = []; - for (var index = 0; index < this.sliders.length; index++) - { - holdValues.push(convSliderPosToRate(this.sliders[index])); - } - var width = event.target.innerWidth; + var width = window.innerWidth; var sliderDiv = this.canvas; var sliderScaleDiv = this.scale; - var marginsize = Number(sliderDiv.attributes['marginsize'].value); - var w = (marginsize+8)*2; - sliderDiv.style.width = width - w + 'px'; - var width = width - w; + var width = $(sliderDiv).width(); + var marginsize = 50; // Move sliders into new position for (var index = 0; index < this.sliders.length; index++) { - var pos = holdValues[index]; - var pix = pos * width; - this.sliders[index].style.left = pix+marginsize+'px'; + var pix = Number(this.sliders[index].getAttribute("slider-value")) * width; + this.sliders[index].style.left = (pix+marginsize)+'px'; } // Move scale labels @@ -822,9 +811,8 @@ function convSliderPosToRate(trackSlider) { var slider = trackSlider.parentElement; - var w = slider.style.width; - var marginsize = Number(slider.attributes['marginsize'].value); - var maxPix = w.substr(0,w.length-2); + var maxPix = $(slider).width(); + var marginsize = 50; var pix = trackSlider.style.left; pix = pix.substr(0,pix.length-2); var rate = (pix-marginsize)/maxPix;