From 09e3a296c25a73b4b4a21e1d0a2d9f6ce673f01f Mon Sep 17 00:00:00 2001 From: jmoenig Date: Fri, 28 Jun 2013 20:42:28 +0200 Subject: improved importing costumes by dragging in pictures from other web pages, which now allows for dragging links to pictures as well --- gui.js | 7 +++++-- history.txt | 4 ++++ morphic.js | 22 +++++++++++++++++++++- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/gui.js b/gui.js index 4f4f94b..11cecf6 100644 --- a/gui.js +++ b/gui.js @@ -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 diff --git a/morphic.js b/morphic.js index b154dc8..1a20946 100644 --- a/morphic.js +++ b/morphic.js @@ -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; -- cgit v1.3.1