'use strict';
goog.provide('Blockly.Constants.variablesDyn');
goog.require('Blockly.Blocks');
goog.require('Blockly');
Blockly.Blocks['vars_set_int'] = {
init: function() {
this.appendValueInput("VALUE")
.appendField("set")
.appendField(new Blockly.FieldVariable("", null, ['varInt'], 'varInt'), "VAR_SET_INT")
.appendField("to");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(230);
this.setTooltip("");
this.setHelpUrl("");
}
};
Blockly.Blocks['vars_get_int'] = {
init: function() {
this.appendDummyInput()
.appendField(new Blockly.FieldVariable("", null, ['varInt'], 'varInt'), "VAR_GET_INT");
this.setOutput(true, "varInt");
this.setColour(230);
this.setTooltip("");
this.setHelpUrl("");
}
};
Blockly.Blocks['vars_set_float'] = {
init: function() {
this.appendValueInput("VALUE")
.appendField("set")
.appendField(new Blockly.FieldVariable("", null, ['varFloat'], 'varFloat'), "VAR_SET_FLOAT")
.appendField("to");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(230);
this.setTooltip("");
this.setHelpUrl("");
}
};
Blockly.Blocks['vars_get_float'] = {
init: function() {
this.appendDummyInput()
.appendField(new Blockly.FieldVariable("", null, ['varFloat'], 'varFloat'), "VAR_GET_FLOAT");
this.setOutput(true, "varFloat");
this.setColour(230);
this.setTooltip("");
this.setHelpUrl("");
}
};'use strict';
goog.provide('Blockly.Arduino.variablesDyn');
goog.require('Blockly.Arduino');
Blockly.Arduino['vars_set_int'] = function(block) {
// Variable setter.
var argument0 = Blockly.Arduino.valueToCode(block, 'VALUE', Blockly.Arduino.ORDER_ASSIGNMENT) || '0';
var varName = Blockly.Arduino.variableDB_.getName(block.getFieldValue('VAR_SET_INT'), Blockly.Variables.NAME_TYPE);
return varName + ' = ' + argument0 + ';\n';
};
Blockly.Arduino['vars_get_int'] = function(block) {
// Variable getter.
var code = Blockly.Arduino.variableDB_.getName(block.getFieldValue('VAR_GET_INT'), Blockly.Variables.NAME_TYPE);
return [code, Blockly.Arduino.ORDER_ATOMIC];
};
Blockly.Arduino['vars_set_float'] = function(block) {
// Variable setter.
var argument0 = Blockly.Arduino.valueToCode(block, 'VALUE', Blockly.Arduino.ORDER_ASSIGNMENT) || '0';
var varName = Blockly.Arduino.variableDB_.getName(block.getFieldValue('VAR_SET_FLOAT'), Blockly.Variables.NAME_TYPE);
return varName + ' = ' + argument0 + ';\n';
};
Blockly.Arduino['vars_get_float'] = function(block) {
// Variable getter.
var code = Blockly.Arduino.variableDB_.getName(block.getFieldValue('VAR_GET_FLOAT'), Blockly.Variables.NAME_TYPE);
return [code, Blockly.Arduino.ORDER_ATOMIC];
}; Code.workspace.registerButtonCallback('createVarBtnInt', createVarBtnIntCallBack);
Code.workspace.registerButtonCallback('createVarBtnFloat', createVarBtnFloatCallBack);
Code.workspace.registerButtonCallback('createVarBtnString', createVarBtnStringCallBack);
Code.workspace.registerToolboxCategoryCallback('VARIABLE_DYNAMIQUE', intVariablesCallBack);
Code.workspace.registerToolboxCategoryCallback('VARIABLE_DYNAMIQUE', floatVariablesCallBack);
Code.workspace.registerToolboxCategoryCallback('VARIABLE_DYNAMIQUE', stringVariablesCallBack);<category name="Dynamic" categorystyle="variable_category" custom="VARIABLE_DYNAMIQUE"></category>
var createVarBtnIntCallBack = function (button) {
Blockly.Variables.createVariableButtonHandler(button.getTargetWorkspace(), null, 'varInt');
};
var createVarBtnFloatCallBack = function (button) {
Blockly.Variables.createVariableButtonHandler(button.getTargetWorkspace(), null, 'varFloat');
};
var intVariablesCallBack = function (currWorkspace) {
var allIntVars = currWorkspace.getVariablesOfType('varInt');
var xmlList = [];
var createVarBtnXml = Blockly.Xml.textToDom('<xml><button text="Create Int Variable" callbackKey="createVarBtnInt">' +
'</button></xml>').firstChild;
xmlList.push(createVarBtnXml);
if (allIntVars.length > 0) {
if (Blockly.Blocks['vars_set_int']) {
var firstVariable = allIntVars[allIntVars.length - 1];
var gap = 24;
var blockText =
'<xml>' +
'<block type="vars_set_int" gap="' + gap + '">' +
'<field name="VAR_SET_INT" variabletype="varInt">' + firstVariable.name + '</field>' +
'</block>' +
'</xml>';
var block = Blockly.Xml.textToDom(blockText).firstChild;
xmlList.push(block);
}
if (Blockly.Blocks['vars_get_int']) {
allIntVars.sort(Blockly.VariableModel.compareByType);
for (var i = 0, variable; variable = allIntVars[i]; i++) {
var blockText =
'<xml>' +
'<block type="vars_get_int" gap="8">' +
'<field name="VAR_GET_INT" variabletype="varInt">' + variable.name + '</field>' +
'</block>' +
'</xml>';
var block = Blockly.Xml.textToDom(blockText).firstChild;
xmlList.push(block);
}
}
}
return xmlList;
};
var floatVariablesCallBack = function (currWorkspace) {
var allFloatVars = currWorkspace.getVariablesOfType('varFloat');
var xmlList = [];
var createVarBtnXml = Blockly.Xml.textToDom('<xml><button text="Create Float Variable" callbackKey="createVarBtnFloat">' +
'</button></xml>').firstChild;
xmlList.push(createVarBtnXml);
if (allFloatVars.length > 0) {
if (Blockly.Blocks['vars_set_float']) {
var firstVariable = allFloatVars[allFloatVars.length - 1];
var gap = 24;
var blockText =
'<xml>' +
'<block type="vars_set_float" gap="' + gap + '">' +
'<field name="VAR_SET_FLOAT" variabletype="varFloat">' + firstVariable.name + '</field>' +
'</block>' +
'</xml>';
var block = Blockly.Xml.textToDom(blockText).firstChild;
xmlList.push(block);
}
if (Blockly.Blocks['vars_get_float']) {
allFloatVars.sort(Blockly.VariableModel.compareByType);
for (var i = 0, variable; variable = allFloatVars[i]; i++) {
var blockText =
'<xml>' +
'<block type="vars_get_float" gap="8">' +
'<field name="VAR_GET_FLOAT" variabletype="varFloat">' + variable.name + '</field>' +
'</block>' +
'</xml>';
var block = Blockly.Xml.textToDom(blockText).firstChild;
xmlList.push(block);
}
}
}
return xmlList;
};<category name="Dynamic" categorystyle="variable_category" custom="VARIABLE_DYNAMIC"></category>"args0": [
{
"type": "field_variable",
"name": "VAR",
"variable": "%{BKY_VARIABLES_DEFAULT_NAME}",
"variableTypes": ["Panda", "toto", "lion"]
},
But where in variable_dynamic.js is the "variableTypes" declared?
Thanks.--
You received this message because you are subscribed to the Google Groups "Blockly" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blockly+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/blockly/e914a012-528a-4c65-b5d2-5be694f318c7%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to blo...@googlegroups.com.