@@ -54,6 +54,12 @@ goog.require('goog.color');
54
54
goog . require ( 'goog.userAgent' ) ;
55
55
56
56
57
+ /**
58
+ * Path to Blockly's media directory. Can be relative, absolute, or remote.
59
+ * Used for loading sounds and sprites. Defaults to demo server.
60
+ */
61
+ Blockly . pathToMedia = 'https://blockly-demo.appspot.com/static/media/' ;
62
+
57
63
/**
58
64
* Required name space for SVG elements.
59
65
* @const
@@ -377,6 +383,7 @@ Blockly.onKeyDown_ = function(e) {
377
383
// When focused on an HTML text input widget, don't trap any keys.
378
384
return ;
379
385
}
386
+ // TODO: Add keyboard support for cursoring around the context menu.
380
387
if ( e . keyCode == 27 ) {
381
388
// Pressing esc closes the context menu.
382
389
Blockly . hideChaff ( ) ;
@@ -487,18 +494,17 @@ Blockly.copy_ = function(block) {
487
494
* @private
488
495
*/
489
496
Blockly . showContextMenu_ = function ( e ) {
490
- var workspace = Blockly . mainWorkspace ;
491
- if ( workspace . options . readOnly ) {
497
+ if ( Blockly . readOnly ) {
492
498
return ;
493
499
}
494
500
var options = [ ] ;
495
501
// Add a little animation to collapsing and expanding.
496
502
var COLLAPSE_DELAY = 10 ;
497
503
498
- if ( workspace . options . collapse ) {
504
+ if ( Blockly . collapse ) {
499
505
var hasCollapsedBlocks = false ;
500
506
var hasExpandedBlocks = false ;
501
- var topBlocks = workspace . getTopBlocks ( false ) ;
507
+ var topBlocks = Blockly . mainWorkspace . getTopBlocks ( false ) ;
502
508
for ( var i = 0 ; i < topBlocks . length ; i ++ ) {
503
509
var block = topBlocks [ i ] ;
504
510
while ( block ) {
@@ -696,20 +702,19 @@ Blockly.playAudio = function(name, opt_volume) {
696
702
* @private
697
703
*/
698
704
Blockly . getMainWorkspaceMetrics_ = function ( ) {
699
- var mainWorkspace = Blockly . mainWorkspace ;
700
705
var svgSize = Blockly . svgSize ( ) ;
701
- if ( mainWorkspace . toolbox_ ) {
702
- svgSize . width -= mainWorkspace . toolbox_ . width ;
706
+ if ( Blockly . mainWorkspace . toolbox_ ) {
707
+ svgSize . width -= Blockly . mainWorkspace . toolbox_ . width ;
703
708
}
704
709
var viewWidth = svgSize . width - Blockly . Scrollbar . scrollbarThickness ;
705
710
var viewHeight = svgSize . height - Blockly . Scrollbar . scrollbarThickness ;
706
711
try {
707
- var blockBox = mainWorkspace . getCanvas ( ) . getBBox ( ) ;
712
+ var blockBox = Blockly . mainWorkspace . getCanvas ( ) . getBBox ( ) ;
708
713
} catch ( e ) {
709
714
// Firefox has trouble with hidden elements (Bug 528969).
710
715
return null ;
711
716
}
712
- if ( mainWorkspace . scrollbar ) {
717
+ if ( Blockly . mainWorkspace . scrollbar ) {
713
718
// Add a border around the content that is at least half a screenful wide.
714
719
// Ensure border is wide enough that blocks can scroll over entire screen.
715
720
var MARGIN = 5 ;
@@ -731,16 +736,16 @@ Blockly.getMainWorkspaceMetrics_ = function() {
731
736
var bottomEdge = topEdge + blockBox . height ;
732
737
}
733
738
var absoluteLeft = 0 ;
734
- if ( ! Blockly . RTL && mainWorkspace . toolbox_ ) {
735
- absoluteLeft = mainWorkspace . toolbox_ . width ;
739
+ if ( ! Blockly . RTL && Blockly . mainWorkspace . toolbox_ ) {
740
+ absoluteLeft = Blockly . mainWorkspace . toolbox_ . width ;
736
741
}
737
742
var metrics = {
738
743
viewHeight : svgSize . height ,
739
744
viewWidth : svgSize . width ,
740
745
contentHeight : bottomEdge - topEdge ,
741
746
contentWidth : rightEdge - leftEdge ,
742
- viewTop : - mainWorkspace . scrollY ,
743
- viewLeft : - mainWorkspace . scrollX ,
747
+ viewTop : - Blockly . mainWorkspace . scrollY ,
748
+ viewLeft : - Blockly . mainWorkspace . scrollX ,
744
749
contentTop : topEdge ,
745
750
contentLeft : leftEdge ,
746
751
absoluteTop : 0 ,
@@ -756,24 +761,23 @@ Blockly.getMainWorkspaceMetrics_ = function() {
756
761
* @private
757
762
*/
758
763
Blockly . setMainWorkspaceMetrics_ = function ( xyRatio ) {
759
- var mainWorkspace = Blockly . mainWorkspace ;
760
- if ( ! mainWorkspace . scrollbar ) {
764
+ if ( ! Blockly . mainWorkspace . scrollbar ) {
761
765
throw 'Attempt to set main workspace scroll without scrollbars.' ;
762
766
}
763
767
var metrics = Blockly . getMainWorkspaceMetrics_ ( ) ;
764
768
if ( goog . isNumber ( xyRatio . x ) ) {
765
- mainWorkspace . scrollX = - metrics . contentWidth * xyRatio . x -
769
+ Blockly . mainWorkspace . scrollX = - metrics . contentWidth * xyRatio . x -
766
770
metrics . contentLeft ;
767
771
}
768
772
if ( goog . isNumber ( xyRatio . y ) ) {
769
- mainWorkspace . scrollY = - metrics . contentHeight * xyRatio . y -
773
+ Blockly . mainWorkspace . scrollY = - metrics . contentHeight * xyRatio . y -
770
774
metrics . contentTop ;
771
775
}
772
- var x = mainWorkspace . scrollX + metrics . absoluteLeft ;
773
- var y = mainWorkspace . scrollY + metrics . absoluteTop ;
774
- mainWorkspace . translate ( x , y ) ;
775
- mainWorkspace . gridPattern_ . setAttribute ( 'x' , x ) ;
776
- mainWorkspace . gridPattern_ . setAttribute ( 'y' , y ) ;
776
+ var x = Blockly . mainWorkspace . scrollX + metrics . absoluteLeft ;
777
+ var y = Blockly . mainWorkspace . scrollY + metrics . absoluteTop ;
778
+ Blockly . mainWorkspace . translate ( x , y ) ;
779
+ Blockly . mainWorkspacePattern_ . setAttribute ( 'x' , x ) ;
780
+ Blockly . mainWorkspacePattern_ . setAttribute ( 'y' , y ) ;
777
781
} ;
778
782
779
783
/**
0 commit comments