mirror of
https://github.com/scratchfoundation/scratch-blocks.git
synced 2025-08-28 22:10:31 -04:00
parent
dd24b9e4e1
commit
f5de79ee4f
4 changed files with 36 additions and 17 deletions
|
@ -49,7 +49,9 @@ Blockly.Blocks['math_number'] = {
|
|||
],
|
||||
"output": "Number",
|
||||
"outputShape": Blockly.OUTPUT_SHAPE_ROUND,
|
||||
"colour": Blockly.Colours.textField
|
||||
"colour": Blockly.Colours.textField,
|
||||
"colourSecondary": Blockly.Colours.textField,
|
||||
"colourTertiary": Blockly.Colours.textField
|
||||
});
|
||||
}
|
||||
};
|
||||
|
@ -71,7 +73,9 @@ Blockly.Blocks['math_integer'] = {
|
|||
],
|
||||
"output": "Number",
|
||||
"outputShape": Blockly.OUTPUT_SHAPE_ROUND,
|
||||
"colour": Blockly.Colours.textField
|
||||
"colour": Blockly.Colours.textField,
|
||||
"colourSecondary": Blockly.Colours.textField,
|
||||
"colourTertiary": Blockly.Colours.textField
|
||||
});
|
||||
}
|
||||
};
|
||||
|
@ -94,7 +98,9 @@ Blockly.Blocks['math_whole_number'] = {
|
|||
],
|
||||
"output": "Number",
|
||||
"outputShape": Blockly.OUTPUT_SHAPE_ROUND,
|
||||
"colour": Blockly.Colours.textField
|
||||
"colour": Blockly.Colours.textField,
|
||||
"colourSecondary": Blockly.Colours.textField,
|
||||
"colourTertiary": Blockly.Colours.textField
|
||||
});
|
||||
}
|
||||
};
|
||||
|
@ -116,7 +122,9 @@ Blockly.Blocks['math_positive_number'] = {
|
|||
],
|
||||
"output": "Number",
|
||||
"outputShape": Blockly.OUTPUT_SHAPE_ROUND,
|
||||
"colour": Blockly.Colours.textField
|
||||
"colour": Blockly.Colours.textField,
|
||||
"colourSecondary": Blockly.Colours.textField,
|
||||
"colourTertiary": Blockly.Colours.textField
|
||||
});
|
||||
}
|
||||
};
|
||||
|
@ -138,7 +146,9 @@ Blockly.Blocks['math_angle'] = {
|
|||
],
|
||||
"output": "Number",
|
||||
"outputShape": Blockly.OUTPUT_SHAPE_ROUND,
|
||||
"colour": Blockly.Colours.textField
|
||||
"colour": Blockly.Colours.textField,
|
||||
"colourSecondary": Blockly.Colours.textField,
|
||||
"colourTertiary": Blockly.Colours.textField
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
|
@ -48,7 +48,9 @@ Blockly.Blocks['text'] = {
|
|||
],
|
||||
"output": "String",
|
||||
"outputShape": Blockly.OUTPUT_SHAPE_ROUND,
|
||||
"colour": Blockly.Colours.textField
|
||||
"colour": Blockly.Colours.textField,
|
||||
"colourSecondary": Blockly.Colours.textField,
|
||||
"colourTertiary": Blockly.Colours.textField
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
|
@ -193,8 +193,7 @@ Blockly.Blocks['data_listindexall'] = {
|
|||
}
|
||||
],
|
||||
"category": Blockly.Categories.data,
|
||||
"colour": Blockly.Colours.textField,
|
||||
"extensions": ["output_string"]
|
||||
"extensions": ["colours_textfield", "output_string"]
|
||||
});
|
||||
}
|
||||
};
|
||||
|
@ -222,8 +221,7 @@ Blockly.Blocks['data_listindexrandom'] = {
|
|||
}
|
||||
],
|
||||
"category": Blockly.Categories.data,
|
||||
"colour": Blockly.Colours.textField,
|
||||
"extensions": ["output_string"]
|
||||
"extensions": ["colours_textfield", "output_string"]
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
|
@ -35,7 +35,7 @@ goog.require('Blockly.constants');
|
|||
|
||||
/**
|
||||
* Helper function that generates an extension based on a category name.
|
||||
* The generated function with set primary, secondary, and tertiary colours
|
||||
* The generated function will set primary, secondary, and tertiary colours
|
||||
* based on the category name.
|
||||
* @param {String} category The name of the category to set colours for.
|
||||
* @return {function} An extension function that sets colours based on the given
|
||||
|
@ -43,12 +43,8 @@ goog.require('Blockly.constants');
|
|||
*/
|
||||
Blockly.ScratchBlocks.VerticalExtensions.colourHelper = function(category) {
|
||||
var colours = Blockly.Colours[category];
|
||||
if (!(colours.primary && colours.secondary && colours.tertiary)) {
|
||||
/**
|
||||
* Return an empty function, rather than throwing an error later.
|
||||
* @this {Blockly.Block}
|
||||
*/
|
||||
return function() { };
|
||||
if (!(colours && colours.primary && colours.secondary && colours.tertiary)) {
|
||||
throw new Error('Could not find colours for category "' + category + '"');
|
||||
}
|
||||
/**
|
||||
* Set the primary, secondary, and tertiary colours on this block for the
|
||||
|
@ -61,6 +57,14 @@ Blockly.ScratchBlocks.VerticalExtensions.colourHelper = function(category) {
|
|||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Extension to set the colours of a text field, which are all the same.
|
||||
*/
|
||||
Blockly.ScratchBlocks.VerticalExtensions.COLOUR_TEXTFIELD = function() {
|
||||
this.setColourFromRawValues_(Blockly.Colours.textField,
|
||||
Blockly.Colours.textField, Blockly.Colours.textField);
|
||||
};
|
||||
|
||||
/**
|
||||
* Extension to make a block fit into a stack of statements, regardless of its
|
||||
* inputs. That means the block should have a previous connection and a next
|
||||
|
@ -151,6 +155,11 @@ Blockly.ScratchBlocks.VerticalExtensions.registerAll = function() {
|
|||
Blockly.Extensions.register('colours_' + name,
|
||||
Blockly.ScratchBlocks.VerticalExtensions.colourHelper(name));
|
||||
}
|
||||
|
||||
// Text fields transcend categories.
|
||||
Blockly.Extensions.register('colours_textfield',
|
||||
Blockly.ScratchBlocks.VerticalExtensions.COLOUR_TEXTFIELD);
|
||||
|
||||
// Register extensions for common block shapes.
|
||||
Blockly.Extensions.register('shape_statement',
|
||||
Blockly.ScratchBlocks.VerticalExtensions.SHAPE_STATEMENT);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue