diff options
| author | jmoenig <jens@moenig.org> | 2013-06-28 20:42:28 +0200 |
|---|---|---|
| committer | jmoenig <jens@moenig.org> | 2013-06-28 20:42:28 +0200 |
| commit | 09e3a296c25a73b4b4a21e1d0a2d9f6ce673f01f (patch) | |
| tree | 46c0a7d75e5029c86ef6acf35e2064d6de1dfa39 | |
| parent | b8c48040a26befd6a4670dbc89f5e91ef51210ea (diff) | |
| download | snap-yow-09e3a296c25a73b4b4a21e1d0a2d9f6ce673f01f.tar.gz snap-yow-09e3a296c25a73b4b4a21e1d0a2d9f6ce673f01f.zip | |
improved importing costumes
by dragging in pictures from other web pages, which now allows for
dragging links to pictures as well
| -rw-r--r-- | gui.js | 7 | ||||
| -rwxr-xr-x | history.txt | 4 | ||||
| -rw-r--r-- | morphic.js | 22 |
3 files changed, 30 insertions, 3 deletions
@@ -68,7 +68,7 @@ sb, CommentMorph, CommandBlockMorph*/ // Global stuff //////////////////////////////////////////////////////// -modules.gui = '2013-June-26'; +modules.gui = '2013-June-28'; // Declarations @@ -1477,7 +1477,10 @@ IDE_Morph.prototype.reactToWorldResize = function (rect) { }; IDE_Morph.prototype.droppedImage = function (aCanvas, name) { - var costume = new Costume(aCanvas, name.split('.')[0]); // up to period + var costume = new Costume( + aCanvas, + name ? name.split('.')[0] : '' // up to period + ); this.currentSprite.addCostume(costume); this.currentSprite.wearCostume(costume); this.spriteBar.tabBar.tabTo('costumes'); diff --git a/history.txt b/history.txt index d248eb4..633db8d 100755 --- a/history.txt +++ b/history.txt @@ -1769,3 +1769,7 @@ ______ 130627 ------ * Objects: fixed speech bubble scaling when sprite is not onstage (reported in the forums) + +130628 +------ +* Morphic, GUI: improved importing costumes by dragging in pictures from other web pages @@ -1035,7 +1035,7 @@ /*global window, HTMLCanvasElement, getMinimumFontHeight, FileReader, Audio, FileList, getBlurredShadowSupport*/ -var morphicVersion = '2013-June-21'; +var morphicVersion = '2013-June-28'; var modules = {}; // keep track of additional loaded modules var useBlurredShadows = getBlurredShadowSupport(); // check for Chrome-bug @@ -9708,6 +9708,8 @@ HandMorph.prototype.processDrop = function (event) { var files = event instanceof FileList ? event : event.target.files || event.dataTransfer.files, file, + url = event.dataTransfer ? + event.dataTransfer.getData('URL') : null, txt = event.dataTransfer ? event.dataTransfer.getData('Text/HTML') : null, src, @@ -9818,6 +9820,24 @@ HandMorph.prototype.processDrop = function (event) { readBinary(file); } } + } else if (url) { + if ( + contains( + ['gif', 'png', 'jpg', 'jpeg', 'bmp'], + url.slice(url.lastIndexOf('.') + 1).toLowerCase() + ) + ) { + while (!target.droppedImage) { + target = target.parent; + } + img = new Image(); + img.onload = function () { + canvas = newCanvas(new Point(img.width, img.height)); + canvas.getContext('2d').drawImage(img, 0, 0); + target.droppedImage(canvas); + }; + img.src = url; + } } else if (txt) { while (!target.droppedImage) { target = target.parent; |
