mutator_minus.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. 'use strict';
  2. goog.provide('Blockly.MutatorMinus');
  3. goog.require('Blockly.Mutator');
  4. goog.require('Blockly.Bubble');
  5. goog.require('Blockly.Icon');
  6. goog.require('goog.dom');
  7. Blockly.MutatorMinus = function(quarkNames) {
  8. Blockly.MutatorMinus.superClass_.constructor.call(this, this, null);
  9. };
  10. goog.inherits(Blockly.MutatorMinus, Blockly.Mutator,Blockly.Icon);
  11. Blockly.MutatorMinus.prototype.clicked_ = false;
  12. /**
  13. * Icon in base64 format.
  14. * @private
  15. */
  16. // Blockly.Mutator.prototype.png_ = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAANyAAADcgBffIlqAAAAAd0SU1FB98DGhULOIajyb8AAAHMSURBVDjLnZS9SiRBFIXP/CQ9iIHgPoGBTo8vIAaivoKaKJr6DLuxYqKYKIqRgSCMrblmIxqsICgOmAriziIiRXWjYPdnUDvT2+PMsOyBoop7qk71vedWS5KAkrWsGUMjSYjpgSQhNoZGFLEKeGoKGMNttUpULkOhAFL3USiA70MQEBnDDeDJWtaqVaJeB7uNICAKQ1ZkDI1yufOm+XnY2YHl5c6874MxPClJiDulkMvBxYWrw/095POdU0sS4hxALqcWtreloSGpVJLGxtL49bX0+Ci9vUkzM2kcXGFbypUKxHHLBXZ3YW4ONjfh4yN1aGIiPQOQEenrg6MjR+zvZz99Y8PFT09hYCArktdfsFY6PHTr83NlUKu5+eREennJchmR/n5pYcGtJyezG6em3Dw7Kw0OZrlMOr6f1gTg4ACWlmBvz9WoifHxbDpf3Flfd+54njQ9ncYvL6WHB+n9XVpcbHOnW59IUKu5m+p11zftfLHo+qRorZ6Hh/Xt7k5fsLUl1evS1dWfG9swMiJZq9+KIlaD4P/eztkZNgz5LsAzhpvjY6JK5d9e8eioE3h95SdQbDrkhSErxvArjkl6/U/imMQYnsKQH02BT7vbZZfVOiWhAAAAAElFTkSuQmCC';
  17. /**
  18. * Create the icon on the block.
  19. */
  20. Blockly.MutatorMinus.prototype.createIcon = function() {
  21. if (this.iconMark_) {
  22. // Icon already exists.
  23. return;
  24. }
  25. Blockly.Icon.prototype.createIconOld.call(this);
  26. Blockly.Icon.radius = 8;
  27. /* Here's the markup that will be generated:
  28. <rect class="blocklyIconShield" width="16" height="16" rx="4" ry="4"/>
  29. <text class="blocklyIconMark" x="8" y="12">+</text>
  30. */
  31. var quantum = Blockly.Icon.radius / 2;
  32. var iconShield = Blockly.createSvgElement('rect',
  33. {'class': 'blocklyIconShield',
  34. 'width': 4 * quantum,
  35. 'height': 4 * quantum,
  36. 'rx': quantum,
  37. 'ry': quantum}, this.iconGroup_);
  38. this.iconMark_ = Blockly.createSvgElement('text',
  39. {'class': 'blocklyIconMark',
  40. 'x': Blockly.Icon.radius,
  41. 'y': 2 * Blockly.Icon.radius - 4}, this.iconGroup_);
  42. this.iconMark_.appendChild(document.createTextNode('\u2212'));
  43. };
  44. Blockly.MutatorMinus.prototype.iconClick_ = function(e) {
  45. if (Blockly.dragMode_ == 2) {
  46. // Drag operation is concluding. Don't activate the mutator.
  47. return;
  48. }
  49. if (this.block_.isEditable()) {
  50. this.block_.updateShape_(-1);
  51. }
  52. };