From 80ee7b8c5361e468aef4e2398ecdf2b87059e254 Mon Sep 17 00:00:00 2001 From: jmoenig Date: Thu, 4 Apr 2013 20:08:28 +0200 Subject: [PATCH] Display Custom Block Comments as Help Selecting "Help" for a custom block now pops up the comment attached to its definition's prototype hat, if any --- blocks.js | 27 ++++++++++++++++++++++++--- history.txt | 1 + 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/blocks.js b/blocks.js index 6805bca8..fc8d90e4 100644 --- a/blocks.js +++ b/blocks.js @@ -153,7 +153,7 @@ DialogBoxMorph, BlockInputFragmentMorph, PrototypeHatBlockMorph*/ // Global stuff //////////////////////////////////////////////////////// -modules.blocks = '2013-April-03'; +modules.blocks = '2013-April-04'; var SyntaxElementMorph; var BlockMorph; @@ -2029,7 +2029,10 @@ BlockMorph.prototype.showHelp = function () { var myself = this, pic = new Image(), help, - spec = this.selector === 'evaluateCustomBlock' ? + comment, + block, + isCustomBlock = this.selector === 'evaluateCustomBlock', + spec = isCustomBlock ? this.definition.helpSpec() : this.selector, ctx; @@ -2044,7 +2047,25 @@ BlockMorph.prototype.showHelp = function () { help ); }; - pic.src = 'help/' + spec + '.png'; + + if (isCustomBlock && this.definition.comment) { + block = this.fullCopy(); + block.addShadow(); + comment = this.definition.comment.fullCopy(); + comment.contents.parse(); + help = ''; + comment.contents.lines.forEach(function (line) { + help = help + '\n' + line; + }); + new DialogBoxMorph().inform( + 'Help', + help.substr(1), + myself.world(), + block.fullImage() + ); + } else { + pic.src = 'help/' + spec + '.png'; + } }; // BlockMorph drawing diff --git a/history.txt b/history.txt index e69d7011..d2dd002e 100755 --- a/history.txt +++ b/history.txt @@ -1583,3 +1583,4 @@ ______ 130404 ------ * loading shared projects in presentation mode, exporting URL for shared projects +* Selecting "Help" for a custom block now pops up the comment attached to its definition's prototype hat, if any