// Main Menu functions
// This is also a good template for writing imagejs modules.
// The main thing is to keep your code within a function call and not generate global variables.
// use instead imagejs.modules[yourModule].
imagejs.msg('mainMenu loaded'); // to notify via console and div#msg
function handleDownloadImage() {
document.getElementById('cvBase').getContext('2d').drawImage(document.getElementById('cvTop'),0,0);
var downloadImage = imagejs.canvas2Image('cvBase'); //Get updated base canvas
document.getElementById('dButton').href = downloadImage.replace("image/png");
}
(function(){
var listOfModules={
'Hello world':function(evt){imagejs.loadModule('http://imagejs.googlecode.com/git/helloWorld.js')},
'Chromomarkers':function(evt){imagejs.loadModule('http://module.imagejs.googlecode.com/git/mathbiol.chromomarkers.js')},
'Count Shapes':function(evt){imagejs.loadModules(['http://module.imagejs.googlecode.com/git/mathbiol.chromomarkers.js','http://module.imagejs.googlecode.com/git/mathbiol.countshapes.js'])}
}
var menu={
Load:function(){
console.log('Load Module');
var msg=jmat.gId('msg'); // message div
msg.innerHTML='Load module from or from URL:';
jmat.gId('listOfModules').appendChild(imagejs.menu(listOfModules,'List'));
cvTop.style.left=cvBase.offsetLeft;cvTop.style.top=cvBase.offsetTop; // make sure the two canvas are aligned
},
Save:function(){
console.log('Save Results');
}
}
var name= 'Main Menu';
jmat.gId('menu').appendChild(imagejs.menu(menu,name)); // <-- this
cvTop.style.left=cvBase.offsetLeft;cvTop.style.top=cvBase.offsetTop; // make sure the two canvas are aligned
// --------------
var a = document.createElement('a');
document.body.appendChild(a);
a.id = "dButton";
a.href="";
a.download="samplefilename.png";
a.textContent="Download Image";
a.addEventListener('click', handleDownloadImage, false);
})()