summaryrefslogtreecommitdiff
path: root/blocks.js
diff options
context:
space:
mode:
authorGubolin <gubolin@fantasymail.de>2015-03-24 18:29:54 +0100
committerGubolin <gubolin@fantasymail.de>2015-03-24 18:29:54 +0100
commitbdd780e0030507626c947f85880a9eaa36e24194 (patch)
tree070a36fee08b43b5e231b2a1e8e5fe28314a7cb8 /blocks.js
parentc8de6a00e38e52bfc4b9b3a095cbcad1861687de (diff)
parent457224dd620eea4f20f24ebc62391363333cd00f (diff)
downloadsnap-bdd780e0030507626c947f85880a9eaa36e24194.tar.gz
snap-bdd780e0030507626c947f85880a9eaa36e24194.zip
merge branch OOP
Diffstat (limited to 'blocks.js')
-rw-r--r--blocks.js39
1 files changed, 37 insertions, 2 deletions
diff --git a/blocks.js b/blocks.js
index bec9b5a..e0f0b6f 100644
--- a/blocks.js
+++ b/blocks.js
@@ -155,7 +155,7 @@ DialogBoxMorph, BlockInputFragmentMorph, PrototypeHatBlockMorph, Costume*/
// Global stuff ////////////////////////////////////////////////////////
-modules.blocks = '2015-March-09';
+modules.blocks = '2015-March-23';
var SyntaxElementMorph;
@@ -1212,6 +1212,15 @@ SyntaxElementMorph.prototype.labelPart = function (spec) {
);
part.isStatic = true;
break;
+ case '%shd':
+ part = new InputSlotMorph(
+ null,
+ false,
+ 'shadowedVariablesMenu',
+ true
+ );
+ part.isStatic = true;
+ break;
case '%lst':
part = new InputSlotMorph(
null,
@@ -1910,7 +1919,8 @@ SyntaxElementMorph.prototype.endLayout = function () {
%att - chameleon colored rectangular drop-down for attributes
%fun - chameleon colored rectangular drop-down for math functions
%typ - chameleon colored rectangular drop-down for data types
- %var - chameleon colored rectangular drop-down for variable names
+ %var - chameleon colored rectangular drop-down for variable names
+ %shd - Chameleon colored rectuangular drop-down for shadowed var names
%lst - chameleon colored rectangular drop-down for list names
%b - chameleon colored hexagonal slot (for predicates)
%l - list icon
@@ -3037,6 +3047,12 @@ BlockMorph.prototype.alternateBlockColor = function () {
this.fixChildrensBlockColor(true); // has issues if not forced
};
+BlockMorph.prototype.ghost = function () {
+ this.setColor(
+ SpriteMorph.prototype.blockColor[this.category].lighter(35)
+ );
+};
+
BlockMorph.prototype.fixLabelColor = function () {
if (this.zebraContrast > 0 && this.category) {
var clr = SpriteMorph.prototype.blockColor[this.category];
@@ -3117,6 +3133,10 @@ BlockMorph.prototype.mouseClickLeft = function () {
}
};
+BlockMorph.prototype.reactToTemplateCopy = function () {
+ this.forceNormalColoring();
+};
+
// BlockMorph thumbnail
BlockMorph.prototype.thumbnail = function (scale, clipWidth, noShadow) {
@@ -6913,6 +6933,21 @@ InputSlotMorph.prototype.getVarNamesDict = function () {
return {};
};
+InputSlotMorph.prototype.shadowedVariablesMenu = function () {
+ var block = this.parentThatIsA(BlockMorph),
+ rcvr,
+ dict = {};
+
+ if (!block) {return dict; }
+ rcvr = block.receiver();
+ if (rcvr) {
+ rcvr.inheritedVariableNames(true).forEach(function (name) {
+ dict[name] = name;
+ });
+ }
+ return dict;
+};
+
InputSlotMorph.prototype.setChoices = function (dict, readonly) {
// externally specify choices and read-only status,
// used for custom blocks