colour.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. /**
  2. * @license
  3. * Visual Blocks Editor
  4. *
  5. * Copyright 2012 Google Inc.
  6. * https://developers.google.com/blockly/
  7. *
  8. * Licensed under the Apache License, Version 2.0 (the "License");
  9. * you may not use this file except in compliance with the License.
  10. * You may obtain a copy of the License at
  11. *
  12. * http://www.apache.org/licenses/LICENSE-2.0
  13. *
  14. * Unless required by applicable law or agreed to in writing, software
  15. * distributed under the License is distributed on an "AS IS" BASIS,
  16. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  17. * See the License for the specific language governing permissions and
  18. * limitations under the License.
  19. */
  20. /**
  21. * @fileoverview Colour blocks for Blockly.
  22. * @author fraser@google.com (Neil Fraser)
  23. */
  24. 'use strict';
  25. goog.provide('Blockly.Blocks.colour');
  26. goog.require('Blockly.Blocks');
  27. Blockly.Blocks['colour_picker'] = {
  28. /**
  29. * Block for colour picker.
  30. * @this Blockly.Block
  31. */
  32. init: function() {
  33. this.setHelpUrl(Blockly.Msg.COLOUR_PICKER_HELPURL);
  34. this.setColour(Blockscad.Toolbox.HEX_TRANSFORM);
  35. this.appendDummyInput()
  36. .appendField(new Blockly.FieldColour('#ff0000'), 'COLOUR');
  37. this.setOutput(true, 'Colour');
  38. this.setTooltip(Blockly.Msg.COLOUR_PICKER_TOOLTIP);
  39. }
  40. };
  41. Blockly.Blocks['colour_random'] = {
  42. /**
  43. * Block for random colour.
  44. * @this Blockly.Block
  45. */
  46. init: function() {
  47. this.setHelpUrl(Blockly.Msg.COLOUR_RANDOM_HELPURL);
  48. this.setColour(Blockscad.Toolbox.HEX_TRANSFORM);
  49. this.appendDummyInput()
  50. .appendField(Blockly.Msg.COLOUR_RANDOM_TITLE);
  51. this.setOutput(true, 'Colour');
  52. this.setTooltip(Blockly.Msg.COLOUR_RANDOM_TOOLTIP);
  53. }
  54. };
  55. Blockly.Blocks['colour_rgb'] = {
  56. /**
  57. * Block for composing a colour from RGB components.
  58. * @this Blockly.Block
  59. */
  60. init: function() {
  61. this.setHelpUrl(Blockly.Msg.COLOUR_RGB_HELPURL);
  62. this.setColour(Blockscad.Toolbox.HEX_TRANSFORM);
  63. this.appendValueInput('RED')
  64. .setCheck('Number')
  65. .setAlign(Blockly.ALIGN_RIGHT)
  66. .appendField(Blockly.Msg.COLOUR_RGB_TITLE)
  67. .appendField(Blockly.Msg.COLOUR_RGB_RED);
  68. this.appendValueInput('GREEN')
  69. .setCheck('Number')
  70. .setAlign(Blockly.ALIGN_RIGHT)
  71. .appendField(Blockly.Msg.COLOUR_RGB_GREEN);
  72. this.appendValueInput('BLUE')
  73. .setCheck('Number')
  74. .setAlign(Blockly.ALIGN_RIGHT)
  75. .appendField(Blockly.Msg.COLOUR_RGB_BLUE);
  76. this.setOutput(true, 'Colour');
  77. this.setTooltip(Blockly.Msg.COLOUR_RGB_TOOLTIP);
  78. }
  79. };
  80. Blockly.Blocks['colour_blend'] = {
  81. /**
  82. * Block for blending two colours together.
  83. * @this Blockly.Block
  84. */
  85. init: function() {
  86. this.setHelpUrl(Blockly.Msg.COLOUR_BLEND_HELPURL);
  87. this.setColour(Blockscad.Toolbox.HEX_TRANSFORM);
  88. this.appendValueInput('COLOUR1')
  89. .setCheck('Colour')
  90. .setAlign(Blockly.ALIGN_RIGHT)
  91. .appendField(Blockly.Msg.COLOUR_BLEND_TITLE)
  92. .appendField(Blockly.Msg.COLOUR_BLEND_COLOUR1);
  93. this.appendValueInput('COLOUR2')
  94. .setCheck('Colour')
  95. .setAlign(Blockly.ALIGN_RIGHT)
  96. .appendField(Blockly.Msg.COLOUR_BLEND_COLOUR2);
  97. this.appendValueInput('RATIO')
  98. .setCheck('Number')
  99. .setAlign(Blockly.ALIGN_RIGHT)
  100. .appendField(Blockly.Msg.COLOUR_BLEND_RATIO);
  101. this.setOutput(true, 'Colour');
  102. this.setTooltip(Blockly.Msg.COLOUR_BLEND_TOOLTIP);
  103. }
  104. };