var canvas = document.getElementsByTagName('canvas')[0];
var count;
function ggbOnInit() {
var clickOrTouchStart = window.ontouchstart===null?'touchstart':'click';
var mouseMoveOrTouchStart = window.ontouchstart===null?'touchstart':'mousemove';
eventListenerAdder(clickOrTouchStart);
eventListenerAdder(mouseMoveOrTouchStart);
Executor();
}
function eventListenerAdder(event){
window.addEventListener(event, pixelPicker);
canvas.addEventListener(event, pixelPicker);
window.addEventListener(event, Executor);
canvas.addEventListener(event, Executor);
window.addEventListener(event, Spuit);
canvas.addEventListener(event, Spuit);
}
function pixelPicker(event){
var canvasPageX = event.pageX;
var canvasPageY = event.pageY;
var clientRect = canvas.getBoundingClientRect();
var rectX = window.pageXOffset + clientRect.left;
var rectY = window.pageYOffset + clientRect.top;
var transformText = document.getElementsByClassName('applet_scaler')[0].style.transform;
ggbApplet.setValue('pageX', canvasPageX);
ggbApplet.setValue('pageY', canvasPageY);
ggbApplet.setValue('rectX', rectX);
ggbApplet.setValue('rectY', rectY);
ggbApplet.setTextValue('transformText', transformText);
if(transformText == "none"){
ggbApplet.evalCommand('SetValue[Ratio,(1,1)]');
}
else{
var editedText = transformText.slice(5);
ggbApplet.evalCommand('SetValue[Ratio,'+editedText+']');
}
}
function Executor(){
count = 0;
}
function Spuit(){
var spuitX = ggbApplet.getValue('spuitX');
var spuitY = ggbApplet.getValue('spuitY');
var context = canvas.getContext('2d');
var dRatioX = ggbApplet.getValue('ratioX');
var dRatioY = ggbApplet.getValue('ratioY');
var touchX = window.ontouchstart===null?dRatioX*2:dRatioX;
var touchY = window.ontouchstart===null?dRatioY*2:dRatioY;
var spuitImage = context.getImageData(spuitX*touchX, spuitY*touchY, 1, 1);
var r = spuitImage.data[0];
var g = spuitImage.data[1];
var b = spuitImage.data[2];
console.log('spuitcolor is'+r+','+g+','+b+'.');
ggbApplet.setValue('r',r);
ggbApplet.setValue('g',g);
ggbApplet.setValue('b',b);
ggbApplet.evalCommand('SetBackgroundColor[text2,r/255,g/255,b/255]');
}