@@ -12,6 +12,10 @@ var CONF_TEXT_DO = 'do';
1212var CONF_TEXT_CALL = 'call' ;
1313var CONF_TEXT_SET = 'set' ;
1414var CONF_SCALE_LEVEL = 1 ;
15+ var CONF_MARGIN_LEFT = 0 ;
16+ var CONF_MARGIN_TOP = 0 ;
17+ var CONF_MARGIN_RIGHT = 0 ;
18+ var CONF_MARGIN_BOTTOM = 0 ;
1519
1620// will be increased automatically by getBlock(json)
1721var blockIndex = 0 ;
@@ -26,6 +30,10 @@ require(['gitbook', 'jQuery'], function(gitbook, $) {
2630 CONF_TEXT_CALL = conf [ 'ai2-blocks' ] [ 'text_call' ] || CONF_TEXT_CALL ;
2731 CONF_TEXT_SET = conf [ 'ai2-blocks' ] [ 'text_set' ] || CONF_TEXT_SET ;
2832 CONF_SCALE_LEVEL = conf [ 'ai2-blocks' ] [ 'scale_level' ] || CONF_SCALE_LEVEL ;
33+ CONF_MARGIN_LEFT = conf [ 'ai2-blocks' ] [ 'margin_left' ] || conf [ 'ai2-blocks' ] [ 'margin' ] || CONF_MARGIN_LEFT ;
34+ CONF_MARGIN_TOP = conf [ 'ai2-blocks' ] [ 'margin_top' ] || conf [ 'ai2-blocks' ] [ 'margin' ] || CONF_MARGIN_TOP ;
35+ CONF_MARGIN_RIGHT = conf [ 'ai2-blocks' ] [ 'margin_right' ] || conf [ 'ai2-blocks' ] [ 'margin' ] || CONF_MARGIN_RIGHT ;
36+ CONF_MARGIN_BOTTOM = conf [ 'ai2-blocks' ] [ 'margin_bottom' ] || conf [ 'ai2-blocks' ] [ 'margin' ] || CONF_MARGIN_BOTTOM ;
2937
3038 render ( ) ;
3139 } ) ;
@@ -45,6 +53,10 @@ function render() {
4553 var param = block [ 'param' ] || block [ 'arg' ] || [ ] ;
4654 var output = block [ 'output' ] === true ;
4755 var scale = block [ 'scale' ] || CONF_SCALE_LEVEL ;
56+ var margin_left = block [ 'margin_left' ] || block [ 'margin' ] || CONF_MARGIN_LEFT ;
57+ var margin_top = block [ 'margin_top' ] || block [ 'margin' ] || CONF_MARGIN_TOP ;
58+ var margin_right = block [ 'margin_right' ] || block [ 'margin' ] || CONF_MARGIN_RIGHT ;
59+ var margin_bottom = block [ 'margin_bottom' ] || block [ 'margin' ] || CONF_MARGIN_BOTTOM ;
4860
4961 $ ( this ) . attr ( 'id' , blockId ) . show ( ) ;
5062
@@ -67,7 +79,7 @@ function render() {
6779 }
6880 } ;
6981
70- newBlockAndWorkspace ( blockId , scale ) ;
82+ newBlockAndWorkspace ( blockId , scale , margin_left , margin_top , margin_right , margin_bottom ) ;
7183 } ) ;
7284
7385 // EVENT
@@ -78,6 +90,10 @@ function render() {
7890 var name = block [ 'name' ] ;
7991 var param = block [ 'param' ] || block [ 'arg' ] || [ ] ;
8092 var scale = block [ 'scale' ] || CONF_SCALE_LEVEL ;
93+ var margin_left = block [ 'margin_left' ] || block [ 'margin' ] || CONF_MARGIN_LEFT ;
94+ var margin_top = block [ 'margin_top' ] || block [ 'margin' ] || CONF_MARGIN_TOP ;
95+ var margin_right = block [ 'margin_right' ] || block [ 'margin' ] || CONF_MARGIN_RIGHT ;
96+ var margin_bottom = block [ 'margin_bottom' ] || block [ 'margin' ] || CONF_MARGIN_BOTTOM ;
8197
8298 $ ( this ) . attr ( 'id' , blockId ) . show ( ) ;
8399
@@ -100,7 +116,7 @@ function render() {
100116 }
101117 } ;
102118
103- newBlockAndWorkspace ( blockId , scale ) ;
119+ newBlockAndWorkspace ( blockId , scale , margin_left , margin_top , margin_right , margin_bottom ) ;
104120 } ) ;
105121
106122 // PROPERTY
@@ -114,6 +130,10 @@ function render() {
114130 getter = true ;
115131 }
116132 var scale = block [ 'scale' ] || CONF_SCALE_LEVEL ;
133+ var margin_left = block [ 'margin_left' ] || block [ 'margin' ] || CONF_MARGIN_LEFT ;
134+ var margin_top = block [ 'margin_top' ] || block [ 'margin' ] || CONF_MARGIN_TOP ;
135+ var margin_right = block [ 'margin_right' ] || block [ 'margin' ] || CONF_MARGIN_RIGHT ;
136+ var margin_bottom = block [ 'margin_bottom' ] || block [ 'margin' ] || CONF_MARGIN_BOTTOM ;
117137
118138 $ ( this ) . attr ( 'id' , blockId ) . show ( ) ;
119139
@@ -137,7 +157,7 @@ function render() {
137157 }
138158 } ;
139159
140- newBlockAndWorkspace ( blockId , scale ) ;
160+ newBlockAndWorkspace ( blockId , scale , margin_left , margin_top , margin_right , margin_bottom ) ;
141161 } ) ;
142162}
143163
@@ -160,7 +180,7 @@ function getBlock(json) {
160180 return blockData ;
161181}
162182
163- function newBlockAndWorkspace ( id , scale ) {
183+ function newBlockAndWorkspace ( id , scale , margin_left , margin_top , margin_right , margin_bottom ) {
164184 var workspace = Blockly . inject ( id , {
165185 toolbox : false ,
166186 trashcan : false ,
@@ -171,11 +191,13 @@ function newBlockAndWorkspace(id, scale) {
171191
172192 var block = workspace . newBlock ( 'dynamicCreated_' + id ) ;
173193 block . initSvg ( ) ;
174- block . moveBy ( 8 , 0 ) ;
194+ block . moveBy ( 8 + margin_left , margin_top ) ;
175195 block . render ( ) ;
176196
177197 var metrics = workspace . getMetrics ( ) ;
178- $ ( "#" + id ) . height ( metrics . contentHeight ) . width ( metrics . contentWidth + 8 ) ;
198+ $ ( "#" + id )
199+ . height ( metrics . contentHeight + margin_top + margin_bottom )
200+ . width ( metrics . contentWidth + 8 + margin_left + margin_right ) ;
179201 Blockly . svgResize ( workspace ) ;
180202 workspace . render ( ) ;
181203}
0 commit comments