Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- plus: function() {
- this.addArg_();
- Blockly.Procedures.mutateCallers(this);
- },
- minus: function(argId) {
- if (!this.argIds_.length) {
- return;
- }
- this.removeArg_(argId);
- Blockly.Procedures.mutateCallers(this);
- },
- addArg_: function(opt_name, opt_varId) {
- if (!this.arguments_.length) {
- var withField = new Blockly.FieldLabel(
- Blockly.Msg['PROCEDURES_BEFORE_PARAMS']);
- this.getInput('TOP')
- .appendField(withField, 'WITH');
- }
- var name = opt_name || Blockly.Variables.generateUniqueNameFromOptions(
- Blockly.Procedures.DEFAULT_ARG, this.arguments_);
- var variable = Blockly.Variables.getOrCreateVariablePackage(
- this.workspace, opt_varId, name, '');
- var argId = Blockly.utils.genUid();
- this.addVarInput_(name, argId);
- this.moveInputBefore(argId, 'STACK');
- this.arguments_.push(name);
- this.varIds_.push(variable.getId());
- this.argumentVarModels_.push(variable);
- this.argIds_.push(argId);
- },
- removeArg_: function(argId) {
- if (!this.getInput(argId)) {
- return;
- }
- // TODO: My life would be so much happier if this returned a boolean instead
- // of throwing an error. I'm saying at least 15% more joy.
- this.removeInput(argId);
- if (this.arguments_.length == 1) { // Becoming argumentless.
- this.getInput('TOP').removeField('WITH');
- }
- var index = this.argIds_.indexOf(argId);
- this.arguments_.splice(index, 1);
- this.varIds_.splice(index, 1);
- this.argumentVarModels_.splice(index, 1);
- this.argIds_.splice(index, 1);
- },
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement