This commit is contained in:
Rachel Fenichel 2017-06-22 14:42:03 -07:00 committed by GitHub
parent dd24b9e4e1
commit f5de79ee4f
4 changed files with 36 additions and 17 deletions

View file

@ -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
});
}
};

View file

@ -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
});
}
};

View file

@ -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"]
});
}
};

View file

@ -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);