not really known
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

85 lines
3.0 KiB

//Copyright (c) 2013, Playful Invention Company.
//Permission is hereby granted, free of charge, to any person obtaining a copy
//of this software and associated documentation files (the "Software"), to deal
//in the Software without restriction, including without limitation the rights
//to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//copies of the Software, and to permit persons to whom the Software is
//furnished to do so, subject to the following conditions:
//The above copyright notice and this permission notice shall be included in
//all copies or substantial portions of the Software.
//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
//THE SOFTWARE.
// -----
// GridPaint has been kept extremely minimal as an explicit design choice.
// If you want to add features please make a fork with a different name.
// Thanks in advance
var onStart, onMove, onEnd;
var zoom;
var touchScreen = false;
function eventInit(){
touchScreen = ("ontouchstart" in document.documentElement);
if (touchScreen) {
document.getElementById("canvas").addEventListener("touchstart", evMousedown, false);
frame.addEventListener("touchmove", evMousemove, false);
frame.addEventListener("touchend", evMouseup, false);
} else {
document.getElementById("canvas").onmousedown = evMousedown;
frame.onmousemove = evMousemove;
frame.onmouseup = evMouseup;
}
var wsize = document.body.clientHeight-55;
zoom = wsize/748;
document.getElementById("canvas").style.zoom = zoom;
var useragent = navigator.userAgent.toLowerCase();
if (useragent.indexOf('chrome') == -1) {
document.getElementById("canvas").style.MozTransform = "scale("+zoom+")";
document.getElementById("canvas").style.MozTransformOrigin = "0 0";
document.getElementById("canvas").style.width = "1024px";
document.getElementById("canvas").style.height = "748px";
}
}
function evMousedown(e){
e.preventDefault();
if (touchScreen) e = e.touches[0];
var x=localx(e.clientX), y=localy(e.clientY);
onStart(x,y);
// HACK: Force refresh on Android
if (/Android/i.test(navigator.userAgent) && document.location.protocol.substr(0,4) != "http") {
cnv.style.display='none';
cnv.offsetHeight;
cnv.style.display='block';
}
}
function evMousemove(e){
e.preventDefault();
if (touchScreen) e = e.touches[0];
if(!onMove) return;
var x=localx(e.clientX), y=localy(e.clientY);
onMove(x,y);
}
function evMouseup(e){
e.preventDefault();
if(!onEnd) return;
onEnd();
}
function localx(gx){return (gx/zoom-frame.getBoundingClientRect().left);}
function localy(gy){
return (gy/zoom-frame.getBoundingClientRect().top);
}