init: function() {
this.jsonInit(
{
"type": "buttonenabled",
"message0": "set %1 enabled to %2",
"args0": [
{
"type": "field_dropdown",
"name": "setbtnenabledoption",
"options": [
[
"button1",
"button1"
],
[
"button2",
"button2"
],
[
"button3",
"button3"
]
]
},
{
"type": "input_value",
"name": "setbtnenabled",
"check": "Boolean"
}
],
"previousStatement": null,
"nextStatement": null,
"colour": 135,
"tooltip": "It is used to enable/disable the button.",
"helpUrl": ""
}
);
},
customContextMenu: function(options) {
var option = {enabled: true};
option.text = "Export block as png";
option.callback = function() {
var scaleFactor = 1;
var cp = Blockly.mainWorkspace.svgBlockCanvas_.cloneNode(true);
cp.removeAttribute("width");
cp.removeAttribute("height");
cp.removeAttribute("transform");
styleElem.textContent = Blockly.Css.CONTENT.join('') + ".blocklyToolboxDiv {background: rgba(0, 0, 0, 0.05);}.blocklyMainBackground {stroke:none !important;}.blocklyTreeLabel, .blocklyText, .blocklyHtmlInput {font-family:'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace !important;}.blocklyText { font-size:1rem !important;}.rtl .blocklyText {text-align:right;} .blocklyTreeLabel { font-size:1.25rem !important;} .blocklyCheckbox {fill: #ff3030 !important;text-shadow: 0px 0px 6px #f00;font-size: 17pt !important;}";
cp.insertBefore(styleElem, cp.firstChild);
var bbox = Blockly.mainWorkspace.svgBlockCanvas_.getBBox();
var xml = new XMLSerializer().serializeToString(cp);
xml = '<svg version="1.1" xmlns="
http://www.w3.org/2000/svg" xmlns:xlink="
http://www.w3.org/1999/xlink" width="'+bbox.width+'" height="'+bbox.height+'" viewBox="' + bbox.x + ' ' + bbox.y + ' ' + bbox.width + ' ' + bbox.height + '"><rect width="100%" height="100%" fill="white"></rect>'+xml+'</svg>';
var svgBase64 = "data:image/svg+xml;base64," + btoa(unescape(encodeURIComponent(xml)));
var img = document.createElement('img');
img.src = svgBase64;
var canvas = document.getElementById('img');
canvas.width = Math.ceil(bbox.width) * scaleFactor;
canvas.height = Math.ceil(bbox.height) * scaleFactor;
var ctx = canvas.getContext('2d');
ctx.scale(scaleFactor, scaleFactor);
ctx.drawImage(img, 0, 0);
window.open(canvas.toDataURL(), '_blank');
};
options.push(option);
}