diff --git a/apps/code/code.js b/apps/code/code.js index ae879eb6b..45cf73ebe 100644 --- a/apps/code/code.js +++ b/apps/code/code.js @@ -160,7 +160,7 @@ Code.init = function() { var toolbox = document.getElementById('toolbox'); Blockly.inject(document.getElementById('content_blocks'), - {path: '../../', + {media: '../../media/', rtl: rtl, toolbox: toolbox}); diff --git a/apps/common.js b/apps/common.js index 9c1510ac5..35f057059 100644 --- a/apps/common.js +++ b/apps/common.js @@ -349,7 +349,7 @@ BlocklyApps.init = function() { */ BlocklyApps.initReadonly = function() { Blockly.inject(document.getElementById('blockly'), - {path: '../../', + {media: '../../media/', readOnly: true, rtl: BlocklyApps.isRtl(), scrollbars: false}); diff --git a/apps/graph/graph.js b/apps/graph/graph.js index a9486851c..e27889354 100644 --- a/apps/graph/graph.js +++ b/apps/graph/graph.js @@ -71,7 +71,7 @@ Graph.init = function() { var toolbox = document.getElementById('toolbox'); Blockly.inject(document.getElementById('blockly'), - {path: '../../', + {media: '../../media/', rtl: rtl, toolbox: toolbox}); diff --git a/apps/json/en.json b/apps/json/en.json index 4ca54753e..2fff3f0d9 100644 --- a/apps/json/en.json +++ b/apps/json/en.json @@ -1,7 +1,7 @@ { "@metadata": { "author": "Ellen Spertus ", - "lastupdated": "2014-10-16 16:49:33.038080", + "lastupdated": "2014-11-09 15:54:40.943716", "locale": "en", "messagedocumentation" : "qqq" }, diff --git a/apps/maze/maze.js b/apps/maze/maze.js index f54b02c5a..db779a803 100644 --- a/apps/maze/maze.js +++ b/apps/maze/maze.js @@ -53,6 +53,9 @@ Maze.CRASH_STOP = 1; Maze.CRASH_SPIN = 2; Maze.CRASH_FALL = 3; +// Relative path from Blockly's media directory to Maze's directory. +Maze.MEDIA_TO_MAZE_PATH = '../apps/maze/'; + Maze.SKINS = [ // sprite: A 1029x51 set of 21 avatar images. // tiles: A 250x200 set of 20 map images. @@ -70,8 +73,10 @@ Maze.SKINS = [ background: false, graph: false, look: '#000', - winSound: ['apps/maze/win.mp3', 'apps/maze/win.ogg'], - crashSound: ['apps/maze/fail_pegman.mp3', 'apps/maze/fail_pegman.ogg'], + winSound: [Maze.MEDIA_TO_MAZE_PATH + 'win.mp3', + Maze.MEDIA_TO_MAZE_PATH + 'win.ogg'], + crashSound: [Maze.MEDIA_TO_MAZE_PATH + 'fail_pegman.mp3', + Maze.MEDIA_TO_MAZE_PATH + 'fail_pegman.ogg'], crashType: Maze.CRASH_STOP }, { @@ -82,8 +87,10 @@ Maze.SKINS = [ // Coma star cluster, photo by George Hatfield, used with permission. graph: false, look: '#fff', - winSound: ['apps/maze/win.mp3', 'apps/maze/win.ogg'], - crashSound: ['apps/maze/fail_astro.mp3', 'apps/maze/fail_astro.ogg'], + winSound: [Maze.MEDIA_TO_MAZE_PATH + 'win.mp3', + Maze.MEDIA_TO_MAZE_PATH + 'win.ogg'], + crashSound: [Maze.MEDIA_TO_MAZE_PATH + 'fail_astro.mp3', + Maze.MEDIA_TO_MAZE_PATH + 'fail_astro.ogg'], crashType: Maze.CRASH_SPIN }, { @@ -94,8 +101,10 @@ Maze.SKINS = [ // Spring canopy, photo by Rupert Fleetingly, CC licensed for reuse. graph: false, look: '#000', - winSound: ['apps/maze/win.mp3', 'apps/maze/win.ogg'], - crashSound: ['apps/maze/fail_panda.mp3', 'apps/maze/fail_panda.ogg'], + winSound: [Maze.MEDIA_TO_MAZE_PATH + 'win.mp3', + Maze.MEDIA_TO_MAZE_PATH + 'win.ogg'], + crashSound: [Maze.MEDIA_TO_MAZE_PATH + 'fail_panda.mp3', + Maze.MEDIA_TO_MAZE_PATH + 'fail_panda.ogg'], crashType: Maze.CRASH_FALL } ]; @@ -517,7 +526,7 @@ Maze.init = function() { var toolbox = document.getElementById('toolbox'); Blockly.inject(document.getElementById('blockly'), - {path: '../../', + {media: '../../media/', maxBlocks: Maze.MAX_BLOCKS, rtl: rtl, toolbox: toolbox, diff --git a/apps/plane/plane.js b/apps/plane/plane.js index b0a28683e..95540f7c5 100644 --- a/apps/plane/plane.js +++ b/apps/plane/plane.js @@ -93,7 +93,7 @@ Plane.init = function() { var rtl = BlocklyApps.isRtl(); var toolbox = document.getElementById('toolbox'); Blockly.inject(document.getElementById('blockly'), - {path: '../../', + {media: '../../media/', rtl: rtl, toolbox: toolbox}); diff --git a/apps/turtle/turtle.js b/apps/turtle/turtle.js index 0a5c7495e..a11323906 100644 --- a/apps/turtle/turtle.js +++ b/apps/turtle/turtle.js @@ -75,7 +75,7 @@ Turtle.init = function() { var toolbox = document.getElementById('toolbox'); Blockly.inject(document.getElementById('blockly'), - {path: '../../', + {media: '../../media/', rtl: rtl, toolbox: toolbox, trashcan: true}); diff --git a/blockly_compressed.js b/blockly_compressed.js index 617ea67ce..789acf582 100644 --- a/blockly_compressed.js +++ b/blockly_compressed.js @@ -856,8 +856,8 @@ Blockly.Scrollbar.insertAfter_=function(a,b){var c=b.nextSibling,d=b.parentNode; 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.lidAngle_=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.pathToBlockly+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.pathToBlockly+Blockly.SPRITE.url); -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_)}; +"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);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.onMouseMove=function(a){if(this.svgGroup_){a=Blockly.mouseToSvg(a);var b=Blockly.getSvgXY_(this.svgGroup_);a=a.x>b.x-this.MARGIN_HOTSPOT_&&a.xb.y-this.MARGIN_HOTSPOT_&&a.ythis.lidAngle_:0>>/g,b);goog.cssom.addCssText(a)}; -Blockly.Css.CONTENT=[".blocklySvg {"," background-color: #fff;"," border: 1px solid #ddd;"," overflow: hidden;","}",".blocklyWidgetDiv {"," position: absolute;"," display: none;"," z-index: 999;","}",".blocklyDraggable {"," cursor: url(<<>>/media/handopen.cur) 8 5, auto;","}",".blocklyResizeSE {"," fill: #aaa;"," cursor: se-resize;","}",".blocklyResizeSW {"," fill: #aaa;"," cursor: sw-resize;","}",".blocklyResizeLine {"," stroke-width: 1;"," stroke: #888;","}",".blocklyHighlightedConnectionPath {", +Blockly.Css={};Blockly.Css.inject=function(){var a=Blockly.Css.CONTENT.join("\n"),b=Blockly.pathToMedia.replace(/[\\\/]$/,""),a=a.replace(/<<>>/g,b);goog.cssom.addCssText(a)}; +Blockly.Css.CONTENT=[".blocklySvg {"," background-color: #fff;"," border: 1px solid #ddd;"," overflow: hidden;","}",".blocklyWidgetDiv {"," position: absolute;"," display: none;"," z-index: 999;","}",".blocklyDraggable {"," cursor: url(<<>>/handopen.cur) 8 5, auto;","}",".blocklyResizeSE {"," fill: #aaa;"," cursor: se-resize;","}",".blocklyResizeSW {"," fill: #aaa;"," cursor: sw-resize;","}",".blocklyResizeLine {"," stroke-width: 1;"," stroke: #888;","}",".blocklyHighlightedConnectionPath {", " stroke-width: 4px;"," stroke: #fc3;"," fill: none;","}",".blocklyPathLight {"," fill: none;"," stroke-width: 2;"," stroke-linecap: round;","}",".blocklySelected>.blocklyPath {"," stroke-width: 3px;"," stroke: #fc3;","}",".blocklySelected>.blocklyPathLight {"," display: none;","}",".blocklyDragging>.blocklyPath,",".blocklyDragging>.blocklyPathLight {"," fill-opacity: .8;"," stroke-opacity: .8;","}",".blocklyDragging>.blocklyPathDark {"," display: none;","}",".blocklyDisabled>.blocklyPath {", " fill-opacity: .5;"," stroke-opacity: .5;","}",".blocklyDisabled>.blocklyPathLight,",".blocklyDisabled>.blocklyPathDark {"," display: none;","}",".blocklyText {"," cursor: default;"," font-family: sans-serif;"," font-size: 11pt;"," fill: #fff;","}",".blocklyNonEditableText>text {"," pointer-events: none;","}",".blocklyNonEditableText>rect,",".blocklyEditableText>rect {"," fill: #fff;"," fill-opacity: .6;","}",".blocklyNonEditableText>text,",".blocklyEditableText>text {"," fill: #000;", "}",".blocklyEditableText:hover>rect {"," stroke-width: 2;"," stroke: #fff;","}",".blocklyBubbleText {"," fill: #000;","}",".blocklySvg text {"," -moz-user-select: none;"," -webkit-user-select: none;"," user-select: none;"," cursor: inherit;","}",".blocklyHidden {"," display: none;","}",".blocklyFieldDropdown:not(.blocklyHidden) {"," display: block;","}",".blocklyTooltipBackground {"," fill: #ffffc7;"," stroke-width: 1px;"," stroke: #d8d8d8;","}",".blocklyTooltipShadow,",".blocklyDropdownMenuShadow {", " fill: #bbb;"," filter: url(#blocklyShadowFilter);","}",".blocklyTooltipText {"," font-family: sans-serif;"," font-size: 9pt;"," fill: #000;","}",".blocklyIconShield {"," cursor: default;"," fill: #00c;"," stroke-width: 1px;"," stroke: #ccc;","}",".blocklyIconGroup:hover>.blocklyIconShield {"," fill: #00f;"," stroke: #fff;","}",".blocklyIconGroup:hover>.blocklyIconMark {"," fill: #fff;","}",".blocklyIconMark {"," cursor: default !important;"," font-family: sans-serif;"," font-size: 9pt;", " font-weight: bold;"," fill: #ccc;"," text-anchor: middle;","}",".blocklyWarningBody {","}",".blocklyMinimalBody {"," margin: 0;"," padding: 0;","}",".blocklyCommentTextarea {"," margin: 0;"," padding: 2px;"," border: 0;"," resize: none;"," background-color: #ffc;","}",".blocklyHtmlInput {"," font-family: sans-serif;"," font-size: 11pt;"," border: none;"," outline: none;"," width: 100%","}",".blocklyMutatorBackground {"," fill: #fff;"," stroke-width: 1;"," stroke: #ddd;","}",".blocklyFlyoutBackground {", " fill: #ddd;"," fill-opacity: .8;","}",".blocklyColourBackground {"," fill: #666;","}",".blocklyScrollbarBackground {"," fill: #fff;"," stroke-width: 1;"," stroke: #e4e4e4;","}",".blocklyScrollbarKnob {"," fill: #ccc;","}",".blocklyScrollbarBackground:hover+.blocklyScrollbarKnob,",".blocklyScrollbarKnob:hover {"," fill: #bbb;","}",".blocklyInvalidInput {"," background: #faa;","}",".blocklyAngleCircle {"," stroke: #444;"," stroke-width: 1;"," fill: #ddd;"," fill-opacity: .8;","}",".blocklyAngleMarks {", -" stroke: #444;"," stroke-width: 1;","}",".blocklyAngleGauge {"," fill: #f88;"," fill-opacity: .8; ","}",".blocklyAngleLine {"," stroke: #f00;"," stroke-width: 2;"," stroke-linecap: round;","}",".blocklyContextMenu {"," border-radius: 4px;","}",".blocklyDropdownMenu {"," padding: 0 !important;","}",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon {"," background: url(<<>>/media/sprites.png) no-repeat -48px -16px !important;", +" stroke: #444;"," stroke-width: 1;","}",".blocklyAngleGauge {"," fill: #f88;"," fill-opacity: .8; ","}",".blocklyAngleLine {"," stroke: #f00;"," stroke-width: 2;"," stroke-linecap: round;","}",".blocklyContextMenu {"," border-radius: 4px;","}",".blocklyDropdownMenu {"," padding: 0 !important;","}",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon {"," background: url(<<>>/sprites.png) no-repeat -48px -16px !important;", "}",".blocklyToolboxDiv {"," background-color: #ddd;"," display: none;"," overflow-x: visible;"," overflow-y: auto;"," position: absolute;","}",".blocklyTreeRoot {"," padding: 4px 0;","}",".blocklyTreeRoot:focus {"," outline: none;","}",".blocklyTreeRow {"," line-height: 22px;"," height: 22px;"," padding-right: 1em;"," white-space: nowrap;","}",'.blocklyToolboxDiv[dir="RTL"] .blocklyTreeRow {'," padding-right: 0;"," padding-left: 1em !important;","}",".blocklyTreeRow:hover {"," background-color: #e4e4e4;", -"}",".blocklyTreeIcon {"," height: 16px;"," width: 16px;"," vertical-align: middle;"," background-image: url(<<>>/media/sprites.png);","}",".blocklyTreeIconClosedLtr {"," background-position: -32px -1px;","}",".blocklyTreeIconClosedRtl {"," background-position: 0px -1px;","}",".blocklyTreeIconOpen {"," background-position: -16px -1px;","}",".blocklyTreeSelected>.blocklyTreeIconClosedLtr {"," background-position: -32px -17px;","}",".blocklyTreeSelected>.blocklyTreeIconClosedRtl {"," background-position: 0px -17px;", +"}",".blocklyTreeIcon {"," height: 16px;"," width: 16px;"," vertical-align: middle;"," background-image: url(<<>>/sprites.png);","}",".blocklyTreeIconClosedLtr {"," background-position: -32px -1px;","}",".blocklyTreeIconClosedRtl {"," background-position: 0px -1px;","}",".blocklyTreeIconOpen {"," background-position: -16px -1px;","}",".blocklyTreeSelected>.blocklyTreeIconClosedLtr {"," background-position: -32px -17px;","}",".blocklyTreeSelected>.blocklyTreeIconClosedRtl {"," background-position: 0px -17px;", "}",".blocklyTreeSelected>.blocklyTreeIconOpen {"," background-position: -16px -17px;","}",".blocklyTreeIconNone,",".blocklyTreeSelected>.blocklyTreeIconNone {"," background-position: -48px -1px;","}",".blocklyTreeLabel {"," cursor: default;"," font-family: sans-serif;"," font-size: 16px;"," padding: 0 3px;"," vertical-align: middle;","}",".blocklyTreeSelected {"," background-color: #57e !important;","}",".blocklyTreeSelected .blocklyTreeLabel {"," color: #fff;","}",".blocklyWidgetDiv .goog-palette {", " outline: none;"," cursor: default;","}",".blocklyWidgetDiv .goog-palette-table {"," border: 1px solid #666;"," border-collapse: collapse;","}",".blocklyWidgetDiv .goog-palette-cell {"," height: 13px;"," width: 15px;"," margin: 0;"," border: 0;"," text-align: center;"," vertical-align: middle;"," border-right: 1px solid #666;"," font-size: 1px;","}",".blocklyWidgetDiv .goog-palette-colorswatch {"," position: relative;"," height: 13px;"," width: 15px;"," border: 1px solid #666;","}", ".blocklyWidgetDiv .goog-palette-cell-hover .goog-palette-colorswatch {"," border: 1px solid #FFF;","}",".blocklyWidgetDiv .goog-palette-cell-selected .goog-palette-colorswatch {"," border: 1px solid #000;"," color: #fff;","}",".blocklyWidgetDiv .goog-menu {"," background: #fff;"," border-color: #ccc #666 #666 #ccc;"," border-style: solid;"," border-width: 1px;"," cursor: default;"," font: normal 13px Arial, sans-serif;"," margin: 0;"," outline: none;"," padding: 4px 0;"," position: absolute;", @@ -1233,7 +1233,7 @@ Blockly.WidgetDiv.isVisible=function(){return!!Blockly.WidgetDiv.owner_};Blockly Blockly.inject=function(a,b){if(!goog.dom.contains(document,a))throw"Error: container is not in current document.";b&&Blockly.parseOptions_(b);var c=function(){Blockly.createDom_(a);Blockly.init_()};if(Blockly.enableRealtime){var d=document.getElementById("realtime");d&&(d.style.display="block");Blockly.Realtime.startRealtime(c,a,Blockly.realtimeOptions)}else c()}; Blockly.parseToolboxTree_=function(a){a?("string"!=typeof a&&"undefined"==typeof XSLTProcessor&&(a=a.outerHTML),"string"==typeof a&&(a=Blockly.Xml.textToDom(a))):a=null;return a}; Blockly.parseOptions_=function(a){var b=!!a.readOnly;if(b)var c=!1,d=!1,e=!1,f=!1,g=!1,h=null;else h=Blockly.parseToolboxTree_(a.toolbox),c=Boolean(h&&h.getElementsByTagName("category").length),d=a.trashcan,void 0===d&&(d=c),e=a.collapse,void 0===e&&(e=c),f=a.comments,void 0===f&&(f=c),g=a.disable,void 0===g&&(g=c);if(h&&!c)var k=!1;else k=a.scrollbars,void 0===k&&(k=!0);var l=a.sounds;void 0===l&&(l=!0);var p=!!a.realtime,m=p?a.realtimeOptions:void 0;Blockly.RTL=!!a.rtl;Blockly.collapse=e;Blockly.comments= -f;Blockly.disable=g;Blockly.readOnly=b;Blockly.maxBlocks=a.maxBlocks||Infinity;Blockly.pathToBlockly=a.path||"./";Blockly.hasCategories=c;Blockly.hasScrollbars=k;Blockly.hasTrashcan=d;Blockly.hasSounds=l;Blockly.languageTree=h;Blockly.enableRealtime=p;Blockly.realtimeOptions=m}; +f;Blockly.disable=g;Blockly.readOnly=b;Blockly.maxBlocks=a.maxBlocks||Infinity;a.media?Blockly.pathToMedia=a.media:a.path&&(Blockly.pathToMedia=a.path+"media/");Blockly.hasCategories=c;Blockly.hasScrollbars=k;Blockly.hasTrashcan=d;Blockly.hasSounds=l;Blockly.languageTree=h;Blockly.enableRealtime=p;Blockly.realtimeOptions=m}; 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}, @@ -1243,8 +1243,8 @@ a.viewWidth+a.viewLeft))for(var b=Blockly.mainWorkspace.getTopBlocks(!1),c=0,d;d 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.documentEventsBound_||(Blockly.bindEvent_(window,"resize",document,Blockly.svgResize),Blockly.bindEvent_(document,"keydown",null,Blockly.onKeyDown_),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.hasCategories)Blockly.Toolbox.init();else{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());Blockly.mainWorkspace.addTrashcan();if(Blockly.hasSounds){Blockly.loadAudio_(["media/click.mp3","media/click.wav","media/click.ogg"],"click");Blockly.loadAudio_(["media/delete.mp3","media/delete.ogg","media/delete.wav"],"delete");var b=[],a=function(){for(;b.length;)Blockly.unbindEvent_(b.pop()); -Blockly.preloadAudio_()};b.push(Blockly.bindEvent_(document,"mousemove",null,a));b.push(Blockly.bindEvent_(document,"touchstart",null,a))}}; +a);Blockly.mainWorkspace.getBubbleCanvas().setAttribute("transform",a)}Blockly.hasScrollbars&&(Blockly.mainWorkspace.scrollbar=new Blockly.ScrollbarPair(Blockly.mainWorkspace),Blockly.mainWorkspace.scrollbar.resize());Blockly.mainWorkspace.addTrashcan();if(Blockly.hasSounds){Blockly.loadAudio_(["click.mp3","click.wav","click.ogg"],"click");Blockly.loadAudio_(["delete.mp3","delete.ogg","delete.wav"],"delete");var b=[],a=function(){for(;b.length;)Blockly.unbindEvent_(b.pop());Blockly.preloadAudio_()}; +b.push(Blockly.bindEvent_(document,"mousemove",null,a));b.push(Blockly.bindEvent_(document,"touchstart",null,a))}}; Blockly.updateToolbox=function(a){if(a=Blockly.parseToolboxTree_(a)){if(!Blockly.languageTree)throw"Existing toolbox is null. Can't create new toolbox.";if(a.getElementsByTagName("category").length){if(!Blockly.hasCategories)throw"Existing toolbox has no categories. Can't change mode.";Blockly.languageTree=a;Blockly.Toolbox.populate_()}else{if(Blockly.hasCategories)throw"Existing toolbox has categories. Can't change mode.";Blockly.languageTree=a;Blockly.mainWorkspace.flyout_.show(Blockly.languageTree.childNodes)}}else if(Blockly.languageTree)throw"Can't nullify an existing toolbox."; }; // Copyright 2012 Google Inc. Apache License 2.0 @@ -1258,9 +1258,9 @@ Blockly.convertCoordinates=function(a,b,c){c&&(a-=window.scrollX||window.pageXOf Blockly.shortestStringLength=function(a){if(!a.length)return 0;for(var b=a[0].length,c=1;c>>/g, path); goog.cssom.addCssText(text); }; @@ -66,7 +66,7 @@ Blockly.Css.CONTENT = [ required in the CSS due to a Chrome bug. https://code.google.com/p/chromium/issues/detail?id=1446 */ - ' cursor: url(<<>>/media/handopen.cur) 8 5, auto;', + ' cursor: url(<<>>/handopen.cur) 8 5, auto;', '}', '.blocklyResizeSE {', @@ -310,7 +310,7 @@ Blockly.Css.CONTENT = [ /* Override the default Closure URL. */ '.blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,', '.blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon {', - ' background: url(<<>>/media/sprites.png) no-repeat -48px -16px !important;', + ' background: url(<<>>/sprites.png) no-repeat -48px -16px !important;', '}', /* Category tree in Toolbox. */ @@ -350,7 +350,7 @@ Blockly.Css.CONTENT = [ ' height: 16px;', ' width: 16px;', ' vertical-align: middle;', - ' background-image: url(<<>>/media/sprites.png);', + ' background-image: url(<<>>/sprites.png);', '}', '.blocklyTreeIconClosedLtr {', diff --git a/core/inject.js b/core/inject.js index f6581e399..c45723596 100644 --- a/core/inject.js +++ b/core/inject.js @@ -139,7 +139,12 @@ Blockly.parseOptions_ = function(options) { Blockly.disable = hasDisable; Blockly.readOnly = readOnly; Blockly.maxBlocks = options['maxBlocks'] || Infinity; - Blockly.pathToBlockly = options['path'] || './'; + if (options['media']) { + Blockly.pathToMedia = options['media']; + } else if (options['path']) { + // 'path' is a deprecated option which has been replaced by 'media'. + Blockly.pathToMedia = options['path'] + 'media/'; + } Blockly.hasCategories = hasCategories; Blockly.hasScrollbars = hasScrollbars; Blockly.hasTrashcan = hasTrashcan; @@ -412,9 +417,9 @@ Blockly.init_ = function() { // Load the sounds. if (Blockly.hasSounds) { Blockly.loadAudio_( - ['media/click.mp3', 'media/click.wav', 'media/click.ogg'], 'click'); + ['click.mp3', 'click.wav', 'click.ogg'], 'click'); Blockly.loadAudio_( - ['media/delete.mp3', 'media/delete.ogg', 'media/delete.wav'], 'delete'); + ['delete.mp3', 'delete.ogg', 'delete.wav'], 'delete'); // Bind temporary hooks that preload the sounds. var soundBinds = []; diff --git a/core/realtime.js b/core/realtime.js index 748a79e6a..19a5af34f 100644 --- a/core/realtime.js +++ b/core/realtime.js @@ -42,13 +42,6 @@ goog.require('goog.dom'); goog.require('goog.style'); goog.require('rtclient'); -/** - * URL for progress indicator. - * @type {string} - * @private - */ -Blockly.Realtime.PROGRESS_URL_ = 'media/progress.gif'; - /** * Is realtime collaboration enabled? * @type {boolean} @@ -152,14 +145,14 @@ Blockly.Realtime.redoElementId_ = null; * @type {string} * @private */ -Blockly.Realtime.PROGRESS_URL_ = 'media/progress.gif'; +Blockly.Realtime.PROGRESS_URL_ = 'progress.gif'; /** * URL of the anonymous user image. * @type {string} * @private */ -Blockly.Realtime.ANONYMOUS_URL_ = 'media/anon.jpeg'; +Blockly.Realtime.ANONYMOUS_URL_ = 'anon.jpeg'; /** * This function is called the first time that the Realtime model is created @@ -747,7 +740,7 @@ Blockly.Realtime.startRealtime = function(uiInitialize, uiContainer, options) { */ Blockly.Realtime.addAuthUi_ = function(uiContainer) { // Add progess indicator to the UI container. - uiContainer.style.background = 'url(' + Blockly.pathToBlockly + + uiContainer.style.background = 'url(' + Blockly.pathToMedia + Blockly.Realtime.PROGRESS_URL_ + ') no-repeat center center'; // Setup authorization button var blocklyDivBounds = goog.style.getBounds(uiContainer); @@ -792,7 +785,7 @@ Blockly.Realtime.updateCollabUi_ = function() { for (var i = 0; i < collaboratorsList.length; i++) { var collaborator = collaboratorsList[i]; var imgSrc = collaborator.photoUrl || - Blockly.pathToBlockly + Blockly.Realtime.ANONYMOUS_URL_; + Blockly.pathToMedia + Blockly.Realtime.ANONYMOUS_URL_; var img = goog.dom.createDom('img', { 'src': imgSrc, diff --git a/core/toolbox.js b/core/toolbox.js index 472a08d90..1c76172ba 100644 --- a/core/toolbox.js +++ b/core/toolbox.js @@ -102,7 +102,7 @@ Blockly.Toolbox.createDom = function(svg, container) { */ Blockly.Toolbox.init = function() { Blockly.Toolbox.CONFIG_['cleardotPath'] = - Blockly.pathToBlockly + 'media/1x1.gif'; + Blockly.pathToMedia + '1x1.gif'; Blockly.Toolbox.CONFIG_['cssCollapsedFolderIcon'] = 'blocklyTreeIconClosed' + (Blockly.RTL ? 'Rtl' : 'Ltr'); var tree = new Blockly.Toolbox.TreeControl(goog.html.SafeHtml.EMPTY, diff --git a/core/trashcan.js b/core/trashcan.js index 4ba6c5d70..6d4a26485 100644 --- a/core/trashcan.js +++ b/core/trashcan.js @@ -172,7 +172,7 @@ Blockly.Trashcan.prototype.createDom = function() { 'clip-path': 'url(#blocklyTrashBodyClipPath)'}, this.svgGroup_); body.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', - Blockly.pathToBlockly + Blockly.SPRITE.url); + Blockly.pathToMedia + Blockly.SPRITE.url); var clip = Blockly.createSvgElement('clipPath', {'id': 'blocklyTrashLidClipPath'}, @@ -184,7 +184,7 @@ Blockly.Trashcan.prototype.createDom = function() { 'clip-path': 'url(#blocklyTrashLidClipPath)'}, this.svgGroup_); this.svgLid_.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', - Blockly.pathToBlockly + Blockly.SPRITE.url); + Blockly.pathToMedia + Blockly.SPRITE.url); return this.svgGroup_; }; diff --git a/demos/blockfactory/factory.js b/demos/blockfactory/factory.js index 129048b6c..4d7d2379f 100644 --- a/demos/blockfactory/factory.js +++ b/demos/blockfactory/factory.js @@ -454,8 +454,7 @@ function init() { window.addEventListener('resize', onresize); var toolbox = document.getElementById('toolbox'); - Blockly.inject(document.getElementById('blockly'), - {path: '../../', toolbox: toolbox}); + Blockly.inject(document.getElementById('blockly'), {toolbox: toolbox}); // Create the root block. if ('BlocklyStorage' in window && window.location.hash.length > 1) { diff --git a/demos/blockfactory/preview.js b/demos/blockfactory/preview.js index 3cec465d0..d1831f776 100644 --- a/demos/blockfactory/preview.js +++ b/demos/blockfactory/preview.js @@ -53,7 +53,7 @@ function updateFunc(type, code) { */ function init() { var rtl = (document.location.search == '?rtl'); - Blockly.inject(document.body, {path: '../../', rtl: rtl}); + Blockly.inject(document.body, {rtl: rtl}); try { // Let the top-level application know that Blockly is ready. diff --git a/demos/fixed/index.html b/demos/fixed/index.html index 0f4a9c421..e78bdd559 100644 --- a/demos/fixed/index.html +++ b/demos/fixed/index.html @@ -39,7 +39,7 @@ diff --git a/demos/generator/index.html b/demos/generator/index.html index 282241cfb..60eae46e8 100644 --- a/demos/generator/index.html +++ b/demos/generator/index.html @@ -65,7 +65,7 @@ diff --git a/tests/generators/index.html b/tests/generators/index.html index 143a21fd6..7df2e7f7f 100644 --- a/tests/generators/index.html +++ b/tests/generators/index.html @@ -50,7 +50,7 @@ function start() { var toolbox = document.getElementById('toolbox'); Blockly.inject(document.getElementById('svg'), - {path: '../../', toolbox: toolbox}); + {media: '../../media/', toolbox: toolbox}); } function loadXml() { diff --git a/tests/playground.html b/tests/playground.html index 0728af70a..ab8b9249b 100644 --- a/tests/playground.html +++ b/tests/playground.html @@ -57,7 +57,7 @@ function start() { var toolbox = document.getElementById('toolbox'); Blockly.inject(document.getElementById('blocklyDiv'), {rtl: rtl, - path: '../', + media: '../media/', toolbox: toolbox, comments: true, disable: true,