diff options
| author | jmoenig <jens@moenig.org> | 2013-04-04 20:08:28 +0200 |
|---|---|---|
| committer | jmoenig <jens@moenig.org> | 2013-04-04 20:08:28 +0200 |
| commit | 80ee7b8c5361e468aef4e2398ecdf2b87059e254 (patch) | |
| tree | 5f159affffca29287c4a5191413054fa1580518c /blocks.js | |
| parent | 8f249e63bb07f978322fc1fa68b44ca70062dda5 (diff) | |
| download | snap-yow-80ee7b8c5361e468aef4e2398ecdf2b87059e254.tar.gz snap-yow-80ee7b8c5361e468aef4e2398ecdf2b87059e254.zip | |
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
Diffstat (limited to 'blocks.js')
| -rw-r--r-- | blocks.js | 27 |
1 files changed, 24 insertions, 3 deletions
@@ -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 |
