summaryrefslogtreecommitdiff
path: root/blocks.js
diff options
context:
space:
mode:
authorJens Mönig <jens@moenig.org>2015-03-21 11:12:43 +0100
committerJens Mönig <jens@moenig.org>2015-03-21 11:12:43 +0100
commit4acf1896bd9fa57d3dbe3f4721b6790c6f3b0d56 (patch)
tree8d44be9ed6bb5458d4354d59200783669dbc5cb2 /blocks.js
parentfdd2ecf7d91d8026d3ca42c4bd52774877c72645 (diff)
downloadsnap-4acf1896bd9fa57d3dbe3f4721b6790c6f3b0d56.tar.gz
snap-4acf1896bd9fa57d3dbe3f4721b6790c6f3b0d56.zip
Prototypal inheritance of sprite-local variables
(experimental) slotwise inheritance à la Henry Lieberman for sprite-local variables. see http://web.media.mit.edu/~lieber/Lieberary/OOP/Delegation/Delegation.htm l Let a sprite inherit another sprite’s local variables by making it the “parent” in the sprite-icon’s context menu (the button icon in the sprite corral underneath the stage). The child not only inherits the variable slot but also - dynamically - the parent variable’s value. Changing the parent’s variable value also changes it for every child. If a child uses SET or CHANGE on an inherited variable it automatically “shadows” it with its own value, thereby stopping dynamic participation in the parent slot’s value (in effect dis-inheriting that slot). Deleting a shadowed variable slot once again reinstates its inheritance status. inherited variables are shown as “ghosted” both in the child’s variables palette and in such stage watchers. “Shadowing” them un-ghosts both the variable blob template in the palette and the watcher onstage (if any). Deleting a shadowed variable once again ghosts the watcher and the palette block template. Delete a (shadowed) variable either via the “Delete a variable” button in the IDE or using the new “Delete” block in the variables category
Diffstat (limited to 'blocks.js')
-rw-r--r--blocks.js12
1 files changed, 11 insertions, 1 deletions
diff --git a/blocks.js b/blocks.js
index aef09da..711976f 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-21';
var SyntaxElementMorph;
@@ -3016,6 +3016,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];
@@ -3096,6 +3102,10 @@ BlockMorph.prototype.mouseClickLeft = function () {
}
};
+BlockMorph.prototype.reactToTemplateCopy = function () {
+ this.forceNormalColoring();
+};
+
// BlockMorph thumbnail
BlockMorph.prototype.thumbnail = function (scale, clipWidth, noShadow) {