From 1916f2351d6356ea30c39eb11e0b288085deec26 Mon Sep 17 00:00:00 2001 From: Neil Fraser Date: Wed, 25 Mar 2015 17:24:28 -0700 Subject: [PATCH] Remove failed attempt at spriting icons. --- blockly_compressed.js | 17 +++++++------- core/blockly.js | 2 +- core/trashcan.js | 10 +++++--- media/sprites.png | Bin 4498 -> 1129 bytes media/sprites.svg | 53 ++---------------------------------------- 5 files changed, 18 insertions(+), 64 deletions(-) diff --git a/blockly_compressed.js b/blockly_compressed.js index ddef7852d..2b48444d3 100644 --- a/blockly_compressed.js +++ b/blockly_compressed.js @@ -963,12 +963,12 @@ Blockly.Scrollbar.insertAfter_=function(a,b){var c=b.nextSibling,d=b.parentNode; // Copyright 2011 Google Inc. Apache License 2.0 Blockly.Trashcan=function(a){this.workspace_=a};Blockly.Trashcan.prototype.SPRITE_URL_="media/sprites.png";Blockly.Trashcan.prototype.LID_URL_="media/trashlid.png";Blockly.Trashcan.prototype.WIDTH_=47;Blockly.Trashcan.prototype.BODY_HEIGHT_=45;Blockly.Trashcan.prototype.LID_HEIGHT_=15;Blockly.Trashcan.prototype.MARGIN_BOTTOM_=35;Blockly.Trashcan.prototype.MARGIN_SIDE_=35;Blockly.Trashcan.prototype.MARGIN_HOTSPOT_=25;Blockly.Trashcan.prototype.isOpen=!1;Blockly.Trashcan.prototype.svgGroup_=null; Blockly.Trashcan.prototype.svgLid_=null;Blockly.Trashcan.prototype.lidTask_=0;Blockly.Trashcan.prototype.lidOpen_=0;Blockly.Trashcan.prototype.left_=0;Blockly.Trashcan.prototype.top_=0; -Blockly.Trashcan.prototype.createDom=function(){this.svgGroup_=Blockly.createSvgElement("g",{filter:"url(#blocklyTrashcanShadowFilter)"},null);var a=Blockly.createSvgElement("clipPath",{id:"blocklyTrashBodyClipPath"},this.svgGroup_);Blockly.createSvgElement("rect",{width:this.WIDTH_,height:this.BODY_HEIGHT_,y:this.LID_HEIGHT_},a);Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,height:Blockly.SPRITE.height,y:-32,"clip-path":"url(#blocklyTrashBodyClipPath)"},this.svgGroup_).setAttributeNS("http://www.w3.org/1999/xlink", -"xlink:href",Blockly.pathToMedia+Blockly.SPRITE.url);a=Blockly.createSvgElement("clipPath",{id:"blocklyTrashLidClipPath"},this.svgGroup_);Blockly.createSvgElement("rect",{width:this.WIDTH_,height:this.LID_HEIGHT_},a);this.svgLid_=Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,height:Blockly.SPRITE.height,y:-32,"clip-path":"url(#blocklyTrashLidClipPath)"},this.svgGroup_);this.svgLid_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",Blockly.pathToMedia+Blockly.SPRITE.url);this.animateLid_(); +Blockly.Trashcan.prototype.createDom=function(){this.svgGroup_=Blockly.createSvgElement("g",{},null);var a=Blockly.createSvgElement("clipPath",{id:"blocklyTrashBodyClipPath"},this.svgGroup_);Blockly.createSvgElement("rect",{width:this.WIDTH_,height:this.BODY_HEIGHT_,y:this.LID_HEIGHT_},a);Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,height:Blockly.SPRITE.height,y:-32,"clip-path":"url(#blocklyTrashBodyClipPath)"},this.svgGroup_).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href", +Blockly.pathToMedia+Blockly.SPRITE.url);a=Blockly.createSvgElement("clipPath",{id:"blocklyTrashLidClipPath"},this.svgGroup_);Blockly.createSvgElement("rect",{width:this.WIDTH_,height:this.LID_HEIGHT_},a);this.svgLid_=Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,height:Blockly.SPRITE.height,y:-32,"clip-path":"url(#blocklyTrashLidClipPath)"},this.svgGroup_);this.svgLid_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",Blockly.pathToMedia+Blockly.SPRITE.url);this.animateLid_(); return this.svgGroup_};Blockly.Trashcan.prototype.init=function(){this.setOpen_(!1);this.position_();Blockly.bindEvent_(window,"resize",this,this.position_)};Blockly.Trashcan.prototype.dispose=function(){this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null);this.workspace_=this.svgLid_=null;goog.Timer.clear(this.lidTask_)}; Blockly.Trashcan.prototype.position_=function(){var a=this.workspace_.getMetrics();a&&(this.left_=Blockly.RTL?this.MARGIN_SIDE_:a.viewWidth+a.absoluteLeft-this.WIDTH_-this.MARGIN_SIDE_,this.top_=a.viewHeight+a.absoluteTop-(this.BODY_HEIGHT_+this.LID_HEIGHT_)-this.MARGIN_BOTTOM_,this.svgGroup_.setAttribute("transform","translate("+this.left_+","+this.top_+")"))}; Blockly.Trashcan.prototype.getRect=function(){var a=Blockly.getSvgXY_(this.svgGroup_);return new goog.math.Rect(a.x-this.MARGIN_HOTSPOT_,a.y-this.MARGIN_HOTSPOT_,this.WIDTH_+2*this.MARGIN_HOTSPOT_,this.BODY_HEIGHT_+this.LID_HEIGHT_+2*this.MARGIN_HOTSPOT_)};Blockly.Trashcan.prototype.setOpen_=function(a){this.isOpen!=a&&(goog.Timer.clear(this.lidTask_),this.isOpen=a,this.animateLid_())}; -Blockly.Trashcan.prototype.animateLid_=function(){this.lidOpen_+=this.isOpen?.2:-.2;this.lidOpen_=goog.math.clamp(this.lidOpen_,0,1);var a=45*this.lidOpen_;this.svgLid_.setAttribute("transform","rotate("+(Blockly.RTL?-a:a)+", "+(Blockly.RTL?4:this.WIDTH_-4)+", "+(this.LID_HEIGHT_-2)+")");a=goog.math.lerp(.2,.4,this.lidOpen_);this.svgGroup_.style.opacity=a;0this.lidOpen_&&(this.lidTask_=goog.Timer.callOnce(this.animateLid_,20,this))};Blockly.Trashcan.prototype.close=function(){this.setOpen_(!1)}; +Blockly.Trashcan.prototype.animateLid_=function(){this.lidOpen_+=this.isOpen?.2:-.2;this.lidOpen_=goog.math.clamp(this.lidOpen_,0,1);var a=45*this.lidOpen_;this.svgLid_.setAttribute("transform","rotate("+(Blockly.RTL?-a:a)+", "+(Blockly.RTL?4:this.WIDTH_-4)+", "+(this.LID_HEIGHT_-2)+")");a=goog.math.lerp(.4,.8,this.lidOpen_);this.svgGroup_.style.opacity=a;0this.lidOpen_&&(this.lidTask_=goog.Timer.callOnce(this.animateLid_,20,this))};Blockly.Trashcan.prototype.close=function(){this.setOpen_(!1)}; // Copyright 2012 Google Inc. Apache License 2.0 Blockly.Xml={};Blockly.Xml.workspaceToDom=function(a){var b;Blockly.RTL&&(b=a.getWidth());var c=goog.dom.createDom("xml");a=a.getTopBlocks(!0);for(var d=0,e;e=a[d];d++){var f=Blockly.Xml.blockToDom_(e);e=e.getRelativeToSurfaceXY();f.setAttribute("x",Blockly.RTL?b-e.x:e.x);f.setAttribute("y",e.y);c.appendChild(f)}return c}; Blockly.Xml.blockToDom_=function(a){var b=goog.dom.createDom("block");b.setAttribute("type",a.type);b.setAttribute("id",a.id);if(a.mutationToDom){var c=a.mutationToDom();c&&b.appendChild(c)}for(var c=0,d;d=a.inputList[c];c++)for(var e=0,f;f=d.fieldRow[e];e++)if(f.name&&f.EDITABLE){var g=goog.dom.createDom("field",null,f.getValue());g.setAttribute("name",f.name);b.appendChild(g)}if(c=a.getCommentText())c=goog.dom.createDom("comment",null,c),"object"==typeof a.comment&&(c.setAttribute("pinned",a.comment.isVisible()), @@ -1317,12 +1317,11 @@ m.length=m.length?parseFloat(m.length):1;m.snap=!!m.snap;var p=!!a.realtime,n=p? n}; Blockly.createDom_=function(a){a.setAttribute("dir","LTR");goog.ui.Component.setDefaultRightToLeft(Blockly.RTL);Blockly.Css.inject();var b=Blockly.createSvgElement("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1","class":"blocklySvg"},null),c=Blockly.createSvgElement("defs",{},b),d,e;d=Blockly.createSvgElement("filter",{id:"blocklyEmboss"},c);Blockly.createSvgElement("feGaussianBlur",{"in":"SourceAlpha",stdDeviation:1, result:"blur"},d);e=Blockly.createSvgElement("feSpecularLighting",{"in":"blur",surfaceScale:1,specularConstant:.5,specularExponent:10,"lighting-color":"white",result:"specOut"},d);Blockly.createSvgElement("fePointLight",{x:-5E3,y:-1E4,z:2E4},e);Blockly.createSvgElement("feComposite",{"in":"specOut",in2:"SourceAlpha",operator:"in",result:"specOut"},d);Blockly.createSvgElement("feComposite",{"in":"SourceGraphic",in2:"specOut",operator:"arithmetic",k1:0,k2:1,k3:1,k4:0},d);d=Blockly.createSvgElement("filter", -{id:"blocklyTrashcanShadowFilter"},c);Blockly.createSvgElement("feGaussianBlur",{"in":"SourceAlpha",stdDeviation:2,result:"blur"},d);Blockly.createSvgElement("feOffset",{"in":"blur",dx:1,dy:1,result:"offsetBlur"},d);d=Blockly.createSvgElement("feMerge",{},d);Blockly.createSvgElement("feMergeNode",{"in":"offsetBlur"},d);Blockly.createSvgElement("feMergeNode",{"in":"SourceGraphic"},d);d=Blockly.createSvgElement("filter",{id:"blocklyShadowFilter"},c);Blockly.createSvgElement("feGaussianBlur",{stdDeviation:2}, -d);d=Blockly.createSvgElement("pattern",{id:"blocklyDisabledPattern",patternUnits:"userSpaceOnUse",width:10,height:10},c);Blockly.createSvgElement("rect",{width:10,height:10,fill:"#aaa"},d);Blockly.createSvgElement("path",{d:"M 0 0 L 10 10 M 10 0 L 0 10",stroke:"#cc0"},d);d=Blockly.createSvgElement("pattern",{id:"blocklyGridPattern",patternUnits:"userSpaceOnUse",width:Blockly.gridOptions.spacing,height:Blockly.gridOptions.spacing},c);if(0a.viewHeight+c||a.contentLeft<(Blockly.RTL?a.viewLeft:b)||a.contentLeft+ -a.contentWidth>(Blockly.RTL?a.viewWidth:a.viewWidth+b))for(var d=Blockly.mainWorkspace.getTopBlocks(!1),e=0,f;f=d[e];e++){var p=f.getRelativeToSurfaceXY(),n=f.getHeightWidth(),r=c+25-n.height-p.y;0r&&f.moveBy(0,r);r=25+b-p.x-(Blockly.RTL?0:n.width);0r&&f.moveBy(r,0)}}}));b.appendChild(Blockly.Tooltip.createDom());a.appendChild(b);Blockly.svg=b;Blockly.svgResize();Blockly.WidgetDiv.DIV=goog.dom.createDom("div", -"blocklyWidgetDiv");Blockly.WidgetDiv.DIV.style.direction=Blockly.RTL?"rtl":"ltr";document.body.appendChild(Blockly.WidgetDiv.DIV)}; +{id:"blocklyShadowFilter"},c);Blockly.createSvgElement("feGaussianBlur",{stdDeviation:2},d);d=Blockly.createSvgElement("pattern",{id:"blocklyDisabledPattern",patternUnits:"userSpaceOnUse",width:10,height:10},c);Blockly.createSvgElement("rect",{width:10,height:10,fill:"#aaa"},d);Blockly.createSvgElement("path",{d:"M 0 0 L 10 10 M 10 0 L 0 10",stroke:"#cc0"},d);d=Blockly.createSvgElement("pattern",{id:"blocklyGridPattern",patternUnits:"userSpaceOnUse",width:Blockly.gridOptions.spacing,height:Blockly.gridOptions.spacing}, +c);if(0 +a.viewHeight+c||a.contentLeft<(Blockly.RTL?a.viewLeft:b)||a.contentLeft+a.contentWidth>(Blockly.RTL?a.viewWidth:a.viewWidth+b))for(var d=Blockly.mainWorkspace.getTopBlocks(!1),e=0,f;f=d[e];e++){var p=f.getRelativeToSurfaceXY(),n=f.getHeightWidth(),r=c+25-n.height-p.y;0r&&f.moveBy(0,r);r=25+b-p.x-(Blockly.RTL?0:n.width);0r&&f.moveBy(r,0)}}}));b.appendChild(Blockly.Tooltip.createDom());a.appendChild(b); +Blockly.svg=b;Blockly.svgResize();Blockly.WidgetDiv.DIV=goog.dom.createDom("div","blocklyWidgetDiv");Blockly.WidgetDiv.DIV.style.direction=Blockly.RTL?"rtl":"ltr";document.body.appendChild(Blockly.WidgetDiv.DIV)}; Blockly.init_=function(){Blockly.bindEvent_(Blockly.svg,"mousedown",null,Blockly.onMouseDown_);Blockly.bindEvent_(Blockly.svg,"contextmenu",null,Blockly.onContextMenu_);Blockly.bindEvent_(Blockly.WidgetDiv.DIV,"contextmenu",null,Blockly.onContextMenu_);Blockly.bindEvent_(Blockly.svg,"touchstart",null,function(a){Blockly.longStart_(a,null)});Blockly.documentEventsBound_||(Blockly.bindEvent_(window,"resize",document,Blockly.svgResize),Blockly.bindEvent_(document,"keydown",null,Blockly.onKeyDown_),Blockly.bindEvent_(document, "touchend",null,Blockly.longStop_),Blockly.bindEvent_(document,"touchcancel",null,Blockly.longStop_),document.addEventListener("mouseup",Blockly.onMouseUp_,!1),goog.userAgent.IPAD&&Blockly.bindEvent_(window,"orientationchange",document,function(){Blockly.fireUiEvent(window,"resize")}),Blockly.documentEventsBound_=!0);if(Blockly.languageTree)if(Blockly.mainWorkspace.toolbox_)Blockly.mainWorkspace.toolbox_.init(Blockly.mainWorkspace);else if(Blockly.mainWorkspace.flyout_){Blockly.mainWorkspace.flyout_.init(Blockly.mainWorkspace); Blockly.mainWorkspace.flyout_.show(Blockly.languageTree.childNodes);Blockly.mainWorkspace.scrollX=Blockly.mainWorkspace.flyout_.width_;Blockly.RTL&&(Blockly.mainWorkspace.scrollX*=-1);var a="translate("+Blockly.mainWorkspace.scrollX+", 0)";Blockly.mainWorkspace.getCanvas().setAttribute("transform",a);Blockly.mainWorkspace.getBubbleCanvas().setAttribute("transform",a)}Blockly.hasScrollbars&&(Blockly.mainWorkspace.scrollbar=new Blockly.ScrollbarPair(Blockly.mainWorkspace),Blockly.mainWorkspace.scrollbar.resize()); diff --git a/core/blockly.js b/core/blockly.js index e31fed091..3d5e89d64 100644 --- a/core/blockly.js +++ b/core/blockly.js @@ -86,7 +86,7 @@ Blockly.HSV_VALUE = 0.65; * Sprited icons and images. */ Blockly.SPRITE = { - width: 84, + width: 64, height: 92, url: 'sprites.png' }; diff --git a/core/trashcan.js b/core/trashcan.js index 4b88fedfa..4802d28cc 100644 --- a/core/trashcan.js +++ b/core/trashcan.js @@ -150,14 +150,18 @@ Blockly.Trashcan.prototype.top_ = 0; * @return {!Element} The trash can's SVG group. */ Blockly.Trashcan.prototype.createDom = function() { - /* + /* Here's the markup that will be generated: - - + + + + */ this.svgGroup_ = Blockly.createSvgElement('g', {}, null); diff --git a/media/sprites.png b/media/sprites.png index bb5ceeed0ff3d3cf5658df6c32634530c25004a0..9505e627970ef6f9663acd20cd7a5b3acf9f759f 100644 GIT binary patch delta 1070 zcmbQF{E|blGr-TCmrII^fq{Y7)59eQNIL*=3{OzuS8E{W?1jm(O?i zm%KYB!;r@iExT?buMShYRZP9|tjGsC8~8FxL@eFXdYJliPp$v<<4^PhqYcaVny5Wy z`OtD+SmSZn$sMa6ryZ3!T6n%;azpkUPnFLH_6j-LF@O8~GB&6*XF~3Bqg6@M8rDlc z6LI0+!Ie{WBt(*-V4<4df%Ee!;_rwRNdG8WbS7&CqaU+Alh6mr4blQ`R^DD9{fCvu=6OBSy{%iq)J^U(CCg1YV#C#8e4EMjS>tXw!%`VmyC=u; zg}w$bTG1o-K`4TGA4iYmd3)2=fO(dWydM^) zJZm+Yy0l>84E|{|FJ3%)r?Z81lGSeC-E(%=8&2Z$*rm8~b6vxdT+i-F%bqK0WQJXe z^n5K9X!LBx65ZC#v1MC}pWpY|rL%JF^#?MMqLpe|UY9sM{kvXiAG_CO@BkPruJb&t zG*^1sC-8r;E?~bQDx#PfcWJNIS5d>?Q+IpY*ZcozWnk9&&1hN}Jt@z->!-vo#tQzL=;=RtmRz0`$D;DUIAQyeRR0%UHovV> zay{3pepS8tl{u}^z9GJ*IqEID#q+G+jOTXh{bpoutX;g{e`0NO3|C*+VciL{pF4U+ zlZw@p5XcBYm7&L{Q{Mbp`IK6Hgu;%|ME(SS-Rqu(+Z_^>MxfrG4*u(+Ys}} zmrIeohV{)Hg=^Y*eiN5&SW-Nx={Mu7V?jGQlF9Ii342uf)8`GJobWX#qL delta 4465 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 - + - - - - - - ? - - - - ? - - - - ! - - - - ! - - - - - - - - - - +